From efe516549d3737f4b3263d95faf6d5728af431d6 Mon Sep 17 00:00:00 2001 From: ArgobargSoup Date: Mon, 1 Oct 2018 20:01:43 -0700 Subject: [PATCH 01/68] adding icons Buggo abdomen icons --- icons/mob/vore/tails_vr.dmi | Bin 73310 -> 80465 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/vore/tails_vr.dmi b/icons/mob/vore/tails_vr.dmi index f628277b97f4ba246376c9b02d84c69bc9f5f42a..bf2129b3dda90a3b3182d9626b6ec299fa4c9341 100644 GIT binary patch literal 80465 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

Admin Help Ticket #[id]: [LinkedReplyName(ref_src)]

" + dat += "State: " + switch(state) + if(AHELP_ACTIVE) + dat += "OPEN" + if(AHELP_RESOLVED) + dat += "RESOLVED" + if(AHELP_CLOSED) + dat += "CLOSED" + else + dat += "UNKNOWN" + dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]" + if(state != AHELP_ACTIVE) + dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]" + dat += "

Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)" + if(closed_at) + dat += "
Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)" + dat += "

" + if(initiator) + dat += "Actions: [FullMonty(ref_src)]
" + else + dat += "DISCONNECTED[GLOB.TAB][ClosureLinks(ref_src)]
" + dat += "
Log:

" + for(var/I in _interactions) + dat += "[I]
" + + usr << browse(dat.Join(), "window=ahelp[id];size=620x480") + +/datum/admin_help/proc/Retitle() + var/new_title = input(usr, "Enter a title for the ticket", "Rename Ticket", name) as text|null + if(new_title) + name = new_title + //not saying the original name cause it could be a long ass message + var/msg = "Ticket [TicketHref("#[id]")] titled [name] by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + TicketPanel() //we have to be here to do this + +//Forwarded action from admin/Topic +/datum/admin_help/proc/Action(action) + testing("Ahelp action: [action]") + switch(action) + if("ticket") + TicketPanel() + if("retitle") + Retitle() + if("reject") + Reject() + if("reply") + usr.client.cmd_ahelp_reply(initiator) + if("icissue") + ICIssue() + if("close") + Close() + if("resolve") + Resolve() + if("handleissue") + HandleIssue() + if("reopen") + Reopen() + +// +// TICKET STATCLICK +// + +/obj/effect/statclick/ahelp + var/datum/admin_help/ahelp_datum + +/obj/effect/statclick/ahelp/New(loc, datum/admin_help/AH) + ahelp_datum = AH + ..(loc) + +/obj/effect/statclick/ahelp/update() + return ..(ahelp_datum.name) + +/obj/effect/statclick/ahelp/Click() + ahelp_datum.TicketPanel() + +/obj/effect/statclick/ahelp/Destroy() + ahelp_datum = null + return ..() + +// +// CLIENT PROCS +// /client/verb/adminhelp(msg as text) set category = "Admin" set name = "Adminhelp" if(say_disabled) //This is here to try to identify lag problems - usr << "Speech is currently admin-disabled." + to_chat(usr, "Speech is currently admin-disabled.") return //handle muting and automuting if(prefs.muted & MUTE_ADMINHELP) - src << "Error: Admin-PM: You cannot send adminhelps (Muted)." + to_chat(src, "Error: Admin-PM: You cannot send adminhelps (Muted).") + return + if(handle_spam_prevention(msg,MUTE_ADMINHELP)) return - adminhelped = 1 //Determines if they get the message to reply by clicking the name. - - if(msg) - handle_spam_prevention(MUTE_ADMINHELP) - - //clean the input msg if(!msg) return - msg = sanitize(msg) - if(!msg) + + //remove out adminhelp verb temporarily to prevent spamming of admins. + src.verbs -= /client/verb/adminhelp + spawn(1200) + src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps + + feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(current_ticket) + if(alert(usr, "You already have a ticket open. Is this for the same issue?",,"Yes","No") != "No") + if(current_ticket) + current_ticket.MessageNoRecipient(msg) + return + else + to_chat(usr, "Ticket not found, creating new one...") + else + current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") + current_ticket.Close() + + new /datum/admin_help(msg, src, FALSE) + +//admin proc +/client/proc/cmd_admin_ticket_panel() + set name = "Show Ticket List" + set category = "Admin" + + if(!check_rights(R_ADMIN, TRUE)) return - var/original_msg = msg + + var/browse_to + + switch(input("Display which ticket list?") as null|anything in list("Active Tickets", "Closed Tickets", "Resolved Tickets")) + if("Active Tickets") + browse_to = AHELP_ACTIVE + if("Closed Tickets") + browse_to = AHELP_CLOSED + if("Resolved Tickets") + browse_to = AHELP_RESOLVED + else + return + + GLOB.ahelp_tickets.BrowseTickets(browse_to) + +// +// LOGGING +// + +//Use this proc when an admin takes action that may be related to an open ticket on what +//what can be a client, ckey, or mob +/proc/admin_ticket_log(what, message) + var/client/C + var/mob/Mob = what + if(istype(Mob)) + C = Mob.client + else + C = what + if(istype(C) && C.current_ticket) + C.current_ticket.AddInteraction(message) + return C.current_ticket + if(istext(what)) //ckey + var/datum/admin_help/AH = GLOB.ahelp_tickets.CKey2ActiveTicket(what) + if(AH) + AH.AddInteraction(message) + return AH + +// +// HELPER PROCS +// + +/proc/get_admin_counts(requiredflags = R_BAN) + . = list("total" = list(), "noflags" = list(), "afk" = list(), "stealth" = list(), "present" = list()) + for(var/client/X in admins) + .["total"] += X + if(requiredflags != 0 && !check_rights(X)) + .["noflags"] += X + else if(X.is_afk()) + .["afk"] += X + else if(X.holder.fakekey) + .["stealth"] += X + else + .["present"] += X + +/proc/send2irc_adminless_only(source, msg, requiredflags = R_BAN) + var/list/adm = get_admin_counts() + var/list/activemins = adm["present"] + . = activemins.len + if(. <= 0) + var/final = "" + var/list/afkmins = adm["afk"] + var/list/stealthmins = adm["stealth"] + var/list/powerlessmins = adm["noflags"] + var/list/allmins = adm["total"] + if(!afkmins.len && !stealthmins.len && !powerlessmins.len) + final = "[msg] - No admins online" + else + final = "[msg] - All admins stealthed\[[english_list(stealthmins)]\], AFK\[[english_list(afkmins)]\], or lacks +BAN\[[english_list(powerlessmins)]\]! Total: [allmins.len] " + send2irc(source,final) + +/proc/ircadminwho() + var/list/message = list("Admins: ") + var/list/admin_keys = list() + for(var/adm in admins) + var/client/C = adm + admin_keys += "[C][C.holder.fakekey ? "(Stealth)" : ""][C.is_afk() ? "(AFK)" : ""]" + + for(var/admin in admin_keys) + if(LAZYLEN(admin_keys) > 1) + message += ", [admin]" + else + message += "[admin]" + + return jointext(message, "") + +/proc/keywords_lookup(msg,irc) + + //This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! + var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i") //explode the input msg into a list var/list/msglist = splittext(msg, " ") @@ -35,9 +602,11 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/list/surnames = list() var/list/forenames = list() var/list/ckeys = list() + var/founds = "" for(var/mob/M in mob_list) var/list/indexing = list(M.real_name, M.name) - if(M.mind) indexing += M.mind.name + if(M.mind) + indexing += M.mind.name for(var/string in indexing) var/list/L = splittext(string, " ") @@ -77,8 +646,13 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," mobs_found += found if(!ai_found && isAI(found)) ai_found = 1 - msg += "[original_word] (?) " + var/is_antag = 0 + if(found.mind && found.mind.special_role) + is_antag = 1 + founds += "Name: [found.name]([found.real_name]) Ckey: [found.ckey] [is_antag ? "(Antag)" : null] " + msg += "[original_word](?|F) " continue +<<<<<<< HEAD msg += "[original_word] " if(!mob) //this doesn't happen @@ -125,4 +699,13 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," world.Export("[config.chat_webhook_url]?[query_string]") // VoreStation Edit End return +======= + msg += "[original_word] " + if(irc) + if(founds == "") + return "Search Failed" + else + return founds +>>>>>>> 039d34c... Merge pull request #5617 from Poojawa/admin_reforms + return msg \ No newline at end of file diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 7485aa2531..56af4e7e15 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -109,8 +109,10 @@ if(!check_rights(R_ADMIN|R_MOD|R_DEBUG)) return if(config.allow_admin_jump) - log_admin("[key_name(usr)] teleported [key_name(M)]") - message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]", 1) + log_admin("[key_name(usr)] jumped to [key_name(M)]") + var/msg = "[key_name_admin(usr)] jumped to [key_name_admin(M)]" + message_admins(msg) + admin_ticket_log(M, msg) M.on_mob_jump() M.loc = get_turf(usr) feedback_add_details("admin_verb","GM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -137,7 +139,9 @@ if(!M) return log_admin("[key_name(usr)] teleported [key_name(M)]") - message_admins("[key_name_admin(usr)] teleported [key_name(M)]", 1) + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)]" + message_admins(msg) + admin_ticket_log(M, msg) if(M) M.on_mob_jump() M.loc = get_turf(usr) @@ -157,7 +161,9 @@ M.loc = pick(get_area_turfs(A)) feedback_add_details("admin_verb","SMOB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] teleported [key_name(M)] to [A]") - message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]", 1) + log_admin("[key_name(usr)] teleported [key_name(M)]") + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)]" + message_admins(msg) + admin_ticket_log(M, msg) else - alert("Admin jumping disabled") + alert("Admin jumping disabled") \ No newline at end of file diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 4ff94877f4..2bf3a1f5cc 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -1,145 +1,286 @@ +#define IRCREPLYCOUNT 2 + + //allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm -/client/proc/cmd_admin_pm_context(mob/M as mob in mob_list) +/client/proc/cmd_admin_pm_context(mob/M in mob_list) set category = null set name = "Admin PM Mob" if(!holder) - src << "Error: Admin-PM-Context: Only administrators may use this command." + to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.") + return + if( !ismob(M) || !M.client ) return - if( !ismob(M) || !M.client ) return cmd_admin_pm(M.client,null) - feedback_add_details("admin_verb","APMM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + feedback_add_details("admin_verb","Admin PM Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //shows a list of clients we could send PMs to, then forwards our choice to cmd_admin_pm /client/proc/cmd_admin_pm_panel() set category = "Admin" set name = "Admin PM" if(!holder) - src << "Error: Admin-PM-Panel: Only administrators may use this command." + to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.") return var/list/client/targets[0] for(var/client/T) if(T.mob) - if(istype(T.mob, /mob/new_player)) + if(isnewplayer(T.mob)) targets["(New Player) - [T]"] = T - else if(istype(T.mob, /mob/observer/dead)) + else if(isobserver(T.mob)) targets["[T.mob.name](Ghost) - [T]"] = T else targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T else targets["(No Mob) - [T]"] = T - var/list/sorted = sortList(targets) - var/target = input(src,"To whom shall we send a message?","Admin PM",null) in sorted|null + var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets) cmd_admin_pm(targets[target],null) - feedback_add_details("admin_verb","APM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + feedback_add_details("admin_verb","Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/cmd_ahelp_reply(whom) + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + return + var/client/C + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + C = GLOB.directory[whom] + else if(istype(whom,/client)) + C = whom + if(!C) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + return + + var/datum/admin_help/AH = C.current_ticket + + if(AH) + message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") + var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null + if (!msg) + message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") + return + cmd_admin_pm(whom, msg, AH) //takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. //Fetching a message if needed. src is the sender and C is the target client - -/client/proc/cmd_admin_pm(var/client/C, var/msg = null) +/client/proc/cmd_admin_pm(whom, msg, datum/admin_help/AH) if(prefs.muted & MUTE_ADMINHELP) - src << "Error: Private-Message: You are unable to use PM-s (muted)." + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") return - if(!istype(C,/client)) - if(holder) src << "Error: Private-Message: Client not found." - else src << "Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!" + if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo + to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.") + to_chat(src, "Message: [msg]") return - //get message text, limit it's length.and clean/escape html - if(!msg) - msg = input(src,"Message:", "Private message to [key_name(C, 0, holder ? 1 : 0)]") as text|null + var/client/recipient + var/irc = 0 + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + if(whom == "IRCKEY") + irc = 1 + else + recipient = GLOB.directory[whom] + else if(istype(whom,/client)) + recipient = whom - if(!msg) return - if(!C) - if(holder) src << "Error: Admin-PM: Client not found." - else src << "Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!" + + if(irc) + if(!ircreplyamount) //to prevent people from spamming irc + return + if(!msg) + msg = input(src,"Message:", "Private message to Administrator") as text|null + + if(!msg) + return + if(holder) + to_chat(src, "Error: Use the admin IRC channel, nerd.") return - //clean the message if it's not sent by a high-rank admin - //todo: sanitize for all??? - if(!check_rights(R_SERVER|R_DEBUG,0)) - msg = sanitize(msg) - if(!msg) return - var/recieve_pm_type = "Player" - if(holder) - //mod PMs are maroon - //PMs sent from admins and mods display their rank - if(holder) - if(!C.holder && holder && holder.fakekey) - recieve_pm_type = "Admin" + else + if(!recipient) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + to_chat(src, msg) else - recieve_pm_type = holder.rank + current_ticket.MessageNoRecipient(msg) + return - else if(!C.holder) - src << "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden." - return + //get message text, limit it's length.and clean/escape html + if(!msg) + msg = input(src,"Message:", "Private message to [key_name(recipient, 0, 0)]") as text|null - var/recieve_message - - if(holder && !C.holder) - recieve_message = "-- Click the [recieve_pm_type]'s name to reply --\n" - if(C.adminhelped) - C << recieve_message - C.adminhelped = 0 - - //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn - if(config.popup_admin_pm) - spawn(0) //so we don't hold the caller proc up - var/sender = src - var/sendername = key - var/reply = sanitize(input(C, msg,"[recieve_pm_type] PM from [sendername]", "") as text|null) //show message and await a reply - if(C && reply) - if(sender) - C.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them - else - adminhelp(reply) //sender has left, adminhelp instead + if(!msg) return - src << "" + create_text_tag("pm_out_alt", "PM", src) + " to [get_options_bar(C, holder ? 1 : 0, holder ? 1 : 0, 1)]: [msg]" - C << "" + create_text_tag("pm_in", "", C) + " \[[recieve_pm_type] PM\] [get_options_bar(src, C.holder ? 1 : 0, C.holder ? 1 : 0, 1)]: [msg]" - //play the recieving admin the adminhelp sound (if they have them enabled) - //non-admins shouldn't be able to disable this - if(C.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) - C << 'sound/effects/adminhelp.ogg' + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + return - log_adminpm(msg,src,C) - send2adminirc("Reply: [key_name(src)]->[key_name(C)]: [html_decode(msg)]") + if(!recipient) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + else + current_ticket.MessageNoRecipient(msg) + return - //we don't use message_admins here because the sender/receiver might get it too - for(var/client/X in admins) - //check client/X is an admin and isn't the sender or recipient - if(X == C || X == src) - continue - if(X.key != key && X.key != C.key && (X.holder.rights & R_ADMIN|R_MOD|R_EVENT)) - X << "" + create_text_tag("pm_other", "PM:", X) + " [key_name(src, X, 0)] to [key_name(C, X, 0)]: [msg]" - -/client/proc/cmd_admin_irc_pm(sender) - if(prefs.muted & MUTE_ADMINHELP) - src << "Error: Private-Message: You are unable to use PM-s (muted)." + if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) return - var/msg = input(src,"Message:", "Reply private message to [sender] on IRC / 400 character limit") as text|null + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||irc)//no sending html to the poor bots + msg = trim(sanitize(copytext(msg,1,MAX_MESSAGE_LEN))) + if(!msg) + return + var/rawmsg = msg + + var/keywordparsedmsg = keywords_lookup(msg) + + if(irc) + to_chat(src, "PM to-Admins: [rawmsg]") + admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to IRC: [keywordparsedmsg]") + ircreplyamount-- + send2irc("Reply: [ckey]",rawmsg) + else + if(recipient.holder) + if(holder) //both are admins + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]") + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]") + + //omg this is dumb, just fill in both their tickets + var/interaction_message = "PM from-[key_name(src, recipient, 1)] to-[key_name(recipient, src, 1)]: [keywordparsedmsg]" + admin_ticket_log(src, interaction_message) + if(recipient != src) //reeee + admin_ticket_log(recipient, interaction_message) + + else //recipient is an admin but sender is not + var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]" + admin_ticket_log(src, replymsg) + to_chat(recipient, replymsg) + to_chat(src, "PM to-Admins: [msg]") + + //play the recieving admin the adminhelp sound (if they have them enabled) + if(recipient.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + recipient << 'sound/effects/adminhelp.ogg' + + else + if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT + if(!recipient.current_ticket) + new /datum/admin_help(msg, recipient, TRUE) + + to_chat(recipient, "-- Administrator private message --") + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]") + to_chat(recipient, "Click on the administrator's name to reply.") + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]") + + admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]") + + //always play non-admin recipients the adminhelp sound + recipient << 'sound/effects/adminhelp.ogg' + + //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn + if(config.popup_admin_pm) + spawn() //so we don't hold the caller proc up + var/sender = src + var/sendername = key + var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply + if(recipient && reply) + if(sender) + recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them + else + adminhelp(reply) //sender has left, adminhelp instead + return + + else //neither are admins + to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.") + return + + if(irc) + log_admin("PM: [key_name(src)]->IRC: [rawmsg]") + for(var/client/X in admins) + to_chat(X, "PM: [key_name(src, X, 0)]->IRC: [keywordparsedmsg]") + else + log_admin("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") + //we don't use message_admins here because the sender/receiver might get it too + for(var/client/X in admins) + if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient + to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" ) + +/proc/IrcPm(target,msg,sender) + var/client/C = GLOB.directory[target] + + var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target) + var/compliant_msg = trim(lowertext(msg)) + var/irc_tagged = "[sender](IRC)" + var/list/splits = splittext(compliant_msg, " ") + if(splits.len && splits[1] == "ticket") + if(splits.len < 2) + return "Usage: ticket " + switch(splits[2]) + if("close") + if(ticket) + ticket.Close(irc_tagged) + return "Ticket #[ticket.id] successfully closed" + if("resolve") + if(ticket) + ticket.Resolve(irc_tagged) + return "Ticket #[ticket.id] successfully resolved" + if("icissue") + if(ticket) + ticket.ICIssue(irc_tagged) + return "Ticket #[ticket.id] successfully marked as IC issue" + if("reject") + if(ticket) + ticket.Reject(irc_tagged) + return "Ticket #[ticket.id] successfully rejected" + else + return "Usage: ticket " + return "Error: Ticket could not be found" + + var/static/stealthkey + var/adminname = "Administrator" + + if(!C) + return "Error: No client" + + if(!stealthkey) + stealthkey = GenIrcStealthKey() + + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) if(!msg) - return + return "Error: No message" - sanitize(msg) + message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") + log_admin("IRC PM: [sender] -> [key_name(C)] : [msg]") - // Handled on Bot32's end, unsure about other bots -// if(length(msg) > 400) // TODO: if message length is over 400, divide it up into seperate messages, the message length restriction is based on IRC limitations. Probably easier to do this on the bots ends. -// src << "Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting" -// src << "[msg]" -// return + to_chat(C, "-- Administrator private message --") + to_chat(C, "Admin PM from-[adminname]: [msg]") + to_chat(C, "Click on the administrator's name to reply.") - send2adminirc("PlayerPM to [sender] from [key_name(src)]: [html_decode(msg)]") + admin_ticket_log(C, "PM From [irc_tagged]: [msg]") - src << "" + create_text_tag("pm_out_alt", "", src) + " to IRC-[sender]: [msg]" + window_flash(C, ignorepref = TRUE) + //always play non-admin recipients the adminhelp sound + C << 'sound/effects/adminhelp.ogg' - log_admin("PM: [key_name(src)]->IRC-[sender]: [msg]") - for(var/client/X in admins) - if(X == src) - continue - if(X.holder.rights & R_ADMIN|R_MOD) - X << "" + create_text_tag("pm_other", "PM:", X) + " [key_name(src, X, 0)] to IRC-[sender]: [msg]" + C.ircreplyamount = IRCREPLYCOUNT + + return "Message Successful" + +/proc/GenIrcStealthKey() + var/num = (rand(0,1000)) + var/i = 0 + while(i == 0) + i = 1 + for(var/P in GLOB.stealthminID) + if(num == GLOB.stealthminID[P]) + num++ + i = 0 + var/stealth = "@[num2text(num)]" + GLOB.stealthminID["IRCKEY"] = stealth + return stealth + +#undef IRCREPLYCOUNT \ No newline at end of file diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index e3f2c3db56..1e8528acb9 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -96,7 +96,9 @@ M << "You hear a voice in your head... [msg]" log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]") - message_admins("SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1) + msg = " SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]" + message_admins(msg) + admin_ticket_log(M, msg) feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_world_narrate() // Allows administrators to fluff events a little easier -- TLE @@ -135,9 +137,11 @@ if( !msg ) return - M << msg + to_chat(M, msg) log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]") - message_admins(" DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
", 1) + msg = " DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
" + message_admins(msg) + admin_ticket_log(M, msg) feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M as mob in mob_list) @@ -150,7 +154,9 @@ usr << " Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]" log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]") - message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]", 1) + var/msg = "[key_name_admin(usr)] has toggled [ADMIN_LOOKUPFLW(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]" + message_admins(msg) + admin_ticket_log(M, msg) feedback_add_details("admin_verb","GOD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -550,7 +556,9 @@ Traitors and the like can also be revived with the previous role mostly intact. M.revive() log_admin("[key_name(usr)] healed / revived [key_name(M)]") - message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1) + var/msg = "Admin [key_name_admin(usr)] healed / revived [ADMIN_LOOKUPFLW(M)]!" + message_admins(msg) + admin_ticket_log(M, msg) else alert("Admin revive disabled") feedback_add_details("admin_verb","REJU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 11ad7e7ecd..807faab47f 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -12,6 +12,7 @@ var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming. var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent. + var/ircreplyamount = 0 ///////// //OTHER// diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index db2e2790a8..97fc1afdaf 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -57,7 +57,7 @@ if(mute_irc) usr << "" return - cmd_admin_irc_pm(href_list["irc_msg"]) + send2adminirc(href_list["irc_msg"]) return @@ -111,6 +111,8 @@ clients += src directory[ckey] = src + GLOB.ahelp_tickets.ClientLogin(src) + //Admin Authorisation holder = admin_datums[ckey] if(holder) @@ -178,6 +180,7 @@ if(holder) holder.owner = null admins -= src + GLOB.ahelp_tickets.ClientLogout(src) directory -= ckey clients -= src return ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e925eee185..c7c0c9a253 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -703,7 +703,10 @@ stat(null) for(var/datum/controller/subsystem/SS in Master.subsystems) SS.stat_entry() - + + if(statpanel("Tickets")) + GLOB.ahelp_tickets.stat_entry() + if(listed_turf && client) if(!TurfAdjacent(listed_turf)) listed_turf = null diff --git a/code/world.dm b/code/world.dm index a5c01b849e..785d44c084 100644 --- a/code/world.dm +++ b/code/world.dm @@ -63,6 +63,8 @@ var/global/datum/global_init/init = new () // if(config && config.log_runtime) // log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM-DD-(hh-mm-ss)")]-runtime.log") + GLOB.timezoneOffset = text2num(time2text(0,"hh")) * 36000 + callHook("startup") //Emergency Fix load_mods() @@ -171,7 +173,10 @@ var/world_topic_spam_protect_time = world.timeofday s["players"] = players.len s["playerlist"] = list2params(players) - s["admins"] = admins.len + var/list/adm = get_admin_counts() + var/list/presentmins = adm["present"] + var/list/afkmins = adm["afk"] + s["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho s["adminlist"] = list2params(admins) else var/n = 0 diff --git a/interface/interface.dm b/interface/interface.dm index 9adcfc965a..6ecfde4e7c 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -6,7 +6,7 @@ if(config.wikiurl) if(query) if(config.wikisearchurl) - var/output = replacetext(config.wikisearchurl, "%s", url_encode(query)) + var/output = replacetext(config.wikisearchurl, "%s", url_encode(query)) src << link(output) else src << " The wiki search URL is not set in the server configuration." diff --git a/vorestation.dme b/vorestation.dme index b348bd23b2..0e0772de9f 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -68,6 +68,7 @@ #include "code\__defines\supply.dm" #include "code\__defines\targeting.dm" #include "code\__defines\turfs.dm" +#include "code\__defines\typeids.dm" #include "code\__defines\unit_tests.dm" #include "code\__defines\xenoarcheaology.dm" #include "code\__defines\ZAS.dm" From e362c66f515946489ea8a13976d384e517c83dbe Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 9 Oct 2018 15:35:26 -0500 Subject: [PATCH 36/68] Merge pull request #5641 from avabee/patch-3 Fixes several typos with oxygen_pump.dm. --- code/game/machinery/oxygen_pump.dm | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index fd6a1048c7..2f781129b6 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -33,7 +33,7 @@ if(breather.internals) breather.internals.icon_state = "internal0" breather.remove_from_mob(contained) - visible_message("The mask rapidly retracts just before /the [src] is destroyed!") + visible_message("\The [contained] rapidly retracts just before /the [src] is destroyed!") breather = null QDEL_NULL(tank) @@ -45,11 +45,11 @@ if(istype(target) && CanMouseDrop(target)) if(!can_apply_to_target(target, usr)) // There is no point in attempting to apply a mask if it's impossible. return - usr.visible_message("\The [usr] begins placing the mask onto [target]..") + usr.visible_message("\The [usr] begins placing \the [contained] onto [target].") if(!do_mob(usr, target, 25) || !can_apply_to_target(target, usr)) return // place mask and add fingerprints - usr.visible_message("\The [usr] has placed \the mask on [target]'s mouth.") + usr.visible_message("\The [usr] has placed \the [contained] on [target]'s mouth.") attach_mask(target) src.add_fingerprint(usr) @@ -69,7 +69,7 @@ tank.forceMove(src) breather.remove_from_mob(contained) contained.forceMove(src) - src.visible_message("\The [user] makes \The [contained] rapidly retracts back into \the [src]!") + src.visible_message("\The [user] makes \the [contained] rapidly retract back into \the [src]!") if(breather.internals) breather.internals.icon_state = "internal0" breather = null @@ -112,7 +112,7 @@ to_chat(user, "There is no tank in \the [src].") return if(stat & MAINT) - to_chat(user, "Please close \the maintenance hatch first.") + to_chat(user, "Please close the maintenance hatch first.") return if(!Adjacent(target)) to_chat(user, "Please stay close to \the [src].") @@ -123,18 +123,15 @@ return //Checking if breather is still valid if(target == breather && target.wear_mask != contained) - to_chat(user, "\The [target] is not using the supplied mask.") + to_chat(user, "\The [target] is not using the supplied [contained].") return return 1 /obj/machinery/oxygen_pump/attackby(obj/item/weapon/W as obj, mob/user as mob) if(W.is_screwdriver()) stat ^= MAINT - user.visible_message("\The [user] [stat & MAINT ? "opens" : "closes"] \the [src].", "You [stat & MAINT ? "open" : "close"] \the [src].") - if(stat & MAINT) - icon_state = icon_state_open - if(!stat) - icon_state = icon_state_closed + user.visible_message("\The [user] [(stat & MAINT) ? "opens" : "closes"] \the [src].", "You [(stat & MAINT) ? "open" : "close"] \the [src].") + icon_state = (stat & MAINT) ? icon_state_open : icon_state_closed //TO-DO: Open icon if(istype(W, /obj/item/weapon/tank) && (stat & MAINT)) if(tank) @@ -151,7 +148,7 @@ /obj/machinery/oxygen_pump/examine(var/mob/user) . = ..() if(tank) - to_chat(user, "The meter shows [round(tank.air_contents.return_pressure())]") + to_chat(user, "The meter shows [round(tank.air_contents.return_pressure())] kPa.") else to_chat(user, "It is missing a tank!") From b34714684a154fa210667d99b05ae6e3ee23a025 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Wed, 10 Oct 2018 13:48:22 +0100 Subject: [PATCH 38/68] gives prommie cores an icon --- code/modules/organs/internal/brain.dm | 1 + icons/obj/surgery_vr.dmi | Bin 0 -> 699 bytes 2 files changed, 1 insertion(+) create mode 100644 icons/obj/surgery_vr.dmi diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 12671d584d..a447b24195 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -148,6 +148,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) can_assist = FALSE /obj/item/organ/internal/brain/slime + icon = 'icons/obj/surgery_vr.dmi' name = "slime core" desc = "A complex, organic knot of jelly and crystalline particles." icon_state = "core" diff --git a/icons/obj/surgery_vr.dmi b/icons/obj/surgery_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9b0f9b8aed82064954bb16465faa5c9be1f34668 GIT binary patch literal 699 zcmV;s0!00ZP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex7wuvIWN;^NFm z%}mcIfpCgT5=&AQY!#G}^NUiIxHwZXi;5L&6%4sJ(~1&vQz2{=Me&Kn#hJw=sVTTr zD=WDAxhS~!dU62(N1!LVbT@7)0005{Nklm_`B@D@AON zgOtKmX^+&`S>>;|K9E1b`XGh12f~3^g_K)Jun1_gh)Q;h?Cy-3CJ{Zjb7zd1yUqTZ zgFm1pzRCgh} zW&_XjAcO$t9LL{}i?3MI|C4e^nb@;(g1 zdjO+qwTk?Y{6MvyX?>*t*fm>=2SMO-&V%`U9&pb6#bPlkm&DeZvq zc#LPkBT8w85MmKREJ|sHQhEdclgUK2pS|_F-R_so=2cJ%z`C%C!{HDB^0{0tW81c4 z+qOd~%>+S^Z@1g1TvZM>2>+xH0IutzR;vNP`Wgr2BjA1Yig%ZHgHoyVQA&v@iZGka z(C_yT+Wg=23x&cEz)7dmQLd-;8vIvioHo|OjxmPmbh`CC&J6gk1K8vxj5tkil9*57 z`c0iM##!%*Pt$m h*#Www0hl&mnkV5-4i`(sxzzvw002ovPDHLkV1lTYK-~ZU literal 0 HcmV?d00001 From 726f01e15e1847ba6722842da3c4961fe529b64f Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 10 Oct 2018 15:54:03 -0500 Subject: [PATCH 39/68] Merge pull request #5646 from lbnesquik/Kates-Tiny-Tweak Remove intensity from chemistry machines. --- code/modules/reagents/Chemistry-Machinery.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 73597e6071..4b69151b2b 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -55,7 +55,7 @@ src.beaker = B user.drop_item() B.loc = src - to_chat(user, "You add \the [B] to the machine!") + to_chat(user, "You add \the [B] to the machine.") icon_state = "mixer1" else if(istype(B, /obj/item/weapon/storage/pill_bottle)) @@ -67,7 +67,7 @@ src.loaded_pill_bottle = B user.drop_item() B.loc = src - to_chat(user, "You add \the [loaded_pill_bottle] into the dispenser slot!") + to_chat(user, "You add \the [loaded_pill_bottle] into the dispenser slot.") else if(default_unfasten_wrench(user, B, 20)) return From 68b614d46955cc97ca8647a70d923f95ef6f418f Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 10 Oct 2018 15:53:46 -0500 Subject: [PATCH 41/68] Merge pull request #5645 from lbnesquik/Kates-Condiment-Fix Fix the condimaster not working. --- nano/templates/chem_master.tmpl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nano/templates/chem_master.tmpl b/nano/templates/chem_master.tmpl index 1b8315154a..8799bb05e0 100644 --- a/nano/templates/chem_master.tmpl +++ b/nano/templates/chem_master.tmpl @@ -72,6 +72,11 @@ {{:helper.link('', 'pill pill' + data.pillSprite, {'tab_select' : 'pill'}, null, 'link32')}} {{:helper.link('', 'pill bottle' + data.bottleSprite, {'tab_select' : 'bottle'}, null, 'link32')}} + {{else}} +
+
+ {{:helper.link('Create bottle (50 units max)', null, {'createbottle' : 1})}} +
{{/if}} {{/if}} From dc781b806d9ae7946db99724af19a0954403bce3 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 10 Oct 2018 15:53:33 -0500 Subject: [PATCH 43/68] Merge pull request #5650 from lbnesquik/Kates-Why-Do-I-Have-To-Fix-This Fix incorrect HUD/screen/hologram --- code/game/machinery/computer/atmos_control.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 3826eb3c94..14ba6dd005 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -20,6 +20,7 @@ /obj/machinery/computer/atmoscontrol/laptop name = "Atmospherics Laptop" desc = "A cheap laptop." + icon_screen = "atmoslaptop" icon_state = "laptop" icon_keyboard = "laptop_key" density = 0 From 5644ee00fdc272d8b6c0d1badeafafc97dd0ea4b Mon Sep 17 00:00:00 2001 From: Screemonster Date: Wed, 10 Oct 2018 22:17:20 +0100 Subject: [PATCH 45/68] forgot to mark edit --- code/modules/organs/internal/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index a447b24195..5f8a9dd0d7 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -148,7 +148,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) can_assist = FALSE /obj/item/organ/internal/brain/slime - icon = 'icons/obj/surgery_vr.dmi' + icon = 'icons/obj/surgery_vr.dmi' // Vorestation edit name = "slime core" desc = "A complex, organic knot of jelly and crystalline particles." icon_state = "core" From 164c72267c926476ec7645f891b5a8e45044376c Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Wed, 10 Oct 2018 18:17:13 -0400 Subject: [PATCH 46/68] Vorestation specific tweaks for tickets --- code/modules/admin/verbs/adminhelp.dm | 53 +----------------------- code/modules/admin/verbs/adminhelp_vr.dm | 16 +++++++ vorestation.dme | 1 + 3 files changed, 19 insertions(+), 51 deletions(-) create mode 100644 code/modules/admin/verbs/adminhelp_vr.dm diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index b741ea3139..c27272a421 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -184,7 +184,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") if(admin_number_present <= 0) to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") - + send2adminchat() //VOREStation Add GLOB.ahelp_tickets.active_tickets += src /datum/admin_help/Destroy() @@ -550,7 +550,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) . = list("total" = list(), "noflags" = list(), "afk" = list(), "stealth" = list(), "present" = list()) for(var/client/X in admins) .["total"] += X - if(requiredflags != 0 && !check_rights(X)) + if(requiredflags != 0 && !check_rights(rights_required = requiredflags, show_msg = FALSE, C = X)) //VOREStation Edit .["noflags"] += X else if(X.is_afk()) .["afk"] += X @@ -652,60 +652,11 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) founds += "Name: [found.name]([found.real_name]) Ckey: [found.ckey] [is_antag ? "(Antag)" : null] " msg += "[original_word](?|F) " continue -<<<<<<< HEAD - msg += "[original_word] " - - if(!mob) //this doesn't happen - return - - var/ai_cl - if(ai_found) - ai_cl = " (CL)" - - //Options bar: mob, details ( admin = 2, dev = 3, event manager = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so), - // highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name) - - msg = "Request for Help: [get_options_bar(mob, 2, 1, 1)][ai_cl] [msg]" - - var/admin_number_afk = 0 - - for(var/client/X in admins) - if((R_ADMIN|R_MOD|R_EVENT|R_SERVER) & X.holder.rights) - if(X.is_afk()) - admin_number_afk++ - X << msg - if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) - X << 'sound/effects/adminhelp.ogg' - - //show it to the person adminhelping too - src << "PM to-Staff : [original_msg]" - - var/admin_number_present = admins.len - admin_number_afk - log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.") - if(admin_number_present <= 0) - send2adminirc("Request for Help from [key_name(src)]: [html_decode(original_msg)] - !![admin_number_afk ? "All admins AFK ([admin_number_afk])" : "No admins online"]!!") - else - send2adminirc("Request for Help from [key_name(src)]: [html_decode(original_msg)]") - feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - // VoreStation Edit Start - if (config.chat_webhook_url) - spawn(0) - var/query_string = "type=adminhelp" - query_string += "&key=[url_encode(config.chat_webhook_key)]" - query_string += "&from=[url_encode(key_name(src))]" - query_string += "&msg=[url_encode(html_decode(original_msg))]" - query_string += "&admin_number=[admins.len]" - query_string += "&admin_number_afk=[admin_number_afk]" - world.Export("[config.chat_webhook_url]?[query_string]") - // VoreStation Edit End - return -======= msg += "[original_word] " if(irc) if(founds == "") return "Search Failed" else return founds ->>>>>>> 039d34c... Merge pull request #5617 from Poojawa/admin_reforms return msg \ No newline at end of file diff --git a/code/modules/admin/verbs/adminhelp_vr.dm b/code/modules/admin/verbs/adminhelp_vr.dm new file mode 100644 index 0000000000..9f3aee4a83 --- /dev/null +++ b/code/modules/admin/verbs/adminhelp_vr.dm @@ -0,0 +1,16 @@ +/datum/admin_help/proc/send2adminchat() + if(!config.chat_webhook_url) + return + + var/list/adm = get_admin_counts() + var/list/afkmins = adm["afk"] + var/list/allmins = adm["total"] + + spawn(0) //Unreliable world.Exports() + var/query_string = "type=adminhelp" + query_string += "&key=[url_encode(config.chat_webhook_key)]" + query_string += "&from=[url_encode(key_name(initiator))]" + query_string += "&msg=[url_encode(html_decode(name))]" + query_string += "&admin_number=[allmins.len]" + query_string += "&admin_number_afk=[afkmins.len]" + world.Export("[config.chat_webhook_url]?[query_string]") diff --git a/vorestation.dme b/vorestation.dme index 0e0772de9f..0a6f2d29b0 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1387,6 +1387,7 @@ #include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm" #include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm" #include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminhelp_vr.dm" #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminpm.dm" #include "code\modules\admin\verbs\adminsay.dm" From ea0d6fc5a121e5f46adca435b33bf2ed750b3e06 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Thu, 11 Oct 2018 20:49:33 -0400 Subject: [PATCH 47/68] Log trait and species usage for metrics Just some stuff for use in building statistics about characters --- code/game/jobs/job_controller.dm | 1 + code/modules/client/preference_setup/vore/07_traits.dm | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 278e516aae..8792a7ba35 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -434,6 +434,7 @@ var/global/datum/controller/occupations/job_master H.job = rank log_game("JOINED [key_name(H)] as \"[rank]\"") + log_game("SPECIES [key_name(H)] is a: \"[H.species.name]\"") //VOREStation Add // If they're head, give them the account info for their department if(H.mind && job.head_position) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index c57f485146..4276a41163 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -87,6 +87,10 @@ var/S = pref.custom_base ? pref.custom_base : "Human" var/datum/species/custom/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character) + //Statistics for this would be nice + var/english_traits = english_list(new_CS.traits, and_text = ";", comma_text = ";") + log_game("TRAITS [pref.client_ckey]/([character]) with: [english_traits]") //Terrible 'fake' key_name()... but they aren't in the same entity yet + //Any additional non-trait settings can be applied here new_CS.blood_color = pref.blood_color From 961e6d1857b3879f8dddab5692812841cd7b133a Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 12 Oct 2018 00:20:53 -0400 Subject: [PATCH 48/68] Fixes for VS --- maps/southern_cross/southern_cross-3.dmm | 1829 +--------------------- maps/tether/tether-01-surface1.dmm | 2 +- 2 files changed, 3 insertions(+), 1828 deletions(-) diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm index 01fddc1e48..eabbfeedf6 100644 --- a/maps/southern_cross/southern_cross-3.dmm +++ b/maps/southern_cross/southern_cross-3.dmm @@ -1,4 +1,3 @@ -<<<<<<< HEAD "aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/plains/mountains) "ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/plains/mountains) "ac" = (/turf/simulated/wall/dungeon,/area/surface/outside/path/plains) @@ -99,8 +98,8 @@ "bT" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) "bU" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) "bV" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bW" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bX" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bW" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bX" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) "bY" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) "bZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) "ca" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) @@ -1819,1827 +1818,3 @@ aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADA aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa aaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDZDZDZDZDZDZDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababab "} - -======= -"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/plains/mountains) -"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/plains/mountains) -"ac" = (/turf/simulated/wall/dungeon,/area/surface/outside/path/plains) -"ad" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) -"ae" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains) -"af" = (/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains) -"ag" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains) -"ah" = (/turf/simulated/mineral/ignore_mapgen/sif,/area/surface/outside/plains/mountains) -"ai" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"aj" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) -"ak" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains) -"al" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) -"am" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"an" = (/turf/simulated/wall,/area/surface/outpost/mining_main/exterior) -"ao" = (/obj/machinery/conveyor{dir = 4; id = "mining_north"},/obj/machinery/mineral/input,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/exterior) -"ap" = (/obj/machinery/mineral/unloading_machine,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) -"aq" = (/obj/machinery/conveyor{dir = 2; id = "mining_north"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) -"ar" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/obj/machinery/conveyor_switch/oneway{id = "mining_north"; name = "mining conveyor"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/exterior) -"as" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) -"at" = (/obj/machinery/conveyor{dir = 2; id = "mining_north"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) -"au" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"av" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"aw" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/exterior) -"ax" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/mining_main/exterior) -"ay" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) -"az" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"aA" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/mountains) -"aB" = (/turf/simulated/floor/water,/area/surface/outside/plains/mountains) -"aC" = (/turf/simulated/floor/water/shoreline/corner,/area/surface/outside/ocean) -"aD" = (/turf/simulated/floor/water,/area/surface/outside/ocean) -"aE" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 1},/area/surface/outside/ocean) -"aF" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) -"aG" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 8},/area/surface/outside/ocean) -"aH" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 4},/area/surface/outside/ocean) -"aI" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) -"aJ" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 6},/area/surface/outside/ocean) -"aK" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 10},/area/surface/outside/ocean) -"aL" = (/turf/simulated/floor/water/shoreline,/area/surface/outside/ocean) -"aM" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/ocean) -"aN" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/storage) -"aO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) -"aP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main) -"aQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main) -"aR" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"aS" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"aT" = (/obj/structure/table/steel,/obj/item/weapon/pickaxe,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Storage Room"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"aU" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"aV" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/effect/floor_decal/corner/brown/full{dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"aW" = (/obj/structure/table/steel,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/pickaxe,/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"aX" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/steel,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"aY" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/structure/table/steel,/obj/item/stack/flag/green{pixel_x = -4; pixel_y = 0},/obj/item/stack/flag/red,/obj/item/stack/flag/yellow{pixel_x = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"aZ" = (/obj/structure/closet/secure_closet/miner,/obj/item/clothing/shoes/boots/winter/mining,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"ba" = (/obj/structure/table/steel,/obj/item/weapon/mining_scanner,/obj/item/weapon/mining_scanner,/obj/item/weapon/mining_scanner,/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bb" = (/obj/effect/floor_decal/corner/brown/full{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bc" = (/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bd" = (/obj/effect/floor_decal/corner/brown{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"be" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bf" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bg" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bh" = (/obj/effect/floor_decal/corner/brown{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bi" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/corner/brown{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bk" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 2"; dir = 2},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"bl" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"bm" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"bn" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gateway) -"bo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway) -"bp" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway) -"bq" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"br" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bv" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Mining Storage"; req_access = list(48)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main/storage) -"bw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"by" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bz" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining_airlock_control2"; name = "Mining Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "mining_airlock_exterior2"; tag_interior_door = "mining_airlock_interior2"},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"bD" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_airlock_control2"; name = "Mining Access Button"; pixel_x = 6; pixel_y = 26; req_access = null; req_one_access = list(12,47,48)},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_interior2"; locked = 1; name = "Mining Interior Outpost"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) -"bE" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"bF" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"bG" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_exterior2"; locked = 1; name = "Mining Exterior Outpost"},/obj/effect/decal/cleanable/dirt,/obj/machinery/access_button/airlock_exterior{master_tag = "mining_airlock_control2"; pixel_y = 24; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) -"bH" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/security) -"bI" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security) -"bJ" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security) -"bK" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"bL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"bM" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gateway"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"bN" = (/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"bO" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"bP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/first_aid) -"bQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid) -"bR" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid) -"bS" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown/full,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bT" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bU" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bV" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bW" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bX" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) -"bY" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"bZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"ca" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cb" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cc" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cd" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"ce" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"cf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"cg" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"ch" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/closet/secure_closet/guncabinet/phase,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"ci" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/structure/closet/secure_closet/guncabinet/phase,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"cj" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/standard,/obj/item/weapon/book/codex/corp_regs,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"ck" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway) -"cl" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"cm" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"cn" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"co" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway) -"cp" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/tool/screwdriver,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cq" = (/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cr" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cs" = (/obj/structure/bed/roller,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ct" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/ninja_dojo/planet) -"cu" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/storage) -"cv" = (/turf/simulated/wall,/area/surface/outpost/mining_main/storage) -"cw" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cy" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/corner/brown,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cz" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cA" = (/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/machinery/light,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cB" = (/obj/machinery/mech_recharger,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cC" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"cD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) -"cE" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) -"cF" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"cG" = (/obj/structure/window/reinforced,/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"cH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"cI" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"cJ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"cK" = (/turf/simulated/wall,/area/surface/outpost/main/gateway) -"cL" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"cM" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"cN" = (/obj/machinery/cryopod/robot/door/gateway,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"cO" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"cP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"cQ" = (/obj/structure/table/glass,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cR" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cS" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cT" = (/obj/structure/window/reinforced,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"cU" = (/turf/simulated/floor/water/deep,/area/surface/outside/ocean) -"cV" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"cW" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"cX" = (/obj/structure/table/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/extinguisher,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"cY" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/emergencystorage) -"cZ" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"da" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"db" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dc" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) -"de" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) -"df" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) -"dg" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6; icon_state = "warning_dust"},/obj/machinery/light/small{dir = 1},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) -"dh" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/standard,/obj/item/weapon/storage/box/donut,/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"di" = (/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dk" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dl" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dm" = (/obj/machinery/computer/cryopod/gateway{pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"dn" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"do" = (/obj/machinery/gateway,/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"dp" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) -"dq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/atm{pixel_x = 30},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) -"dr" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ds" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/glass,/obj/item/weapon/tool/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dt" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"du" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"dv" = (/obj/random/maintenance/clean,/obj/random/maintenance/security,/obj/random/contraband,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) -"dw" = (/obj/random/maintenance/clean,/obj/random/contraband,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) -"dx" = (/obj/structure/closet/hydrant{pixel_x = -32; pixel_y = 0},/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"dy" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"dz" = (/obj/item/device/t_scanner,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"dA" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"dB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westright{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"dC" = (/obj/machinery/mineral/input,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/structure/sign/warning/moving_parts{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"dD" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) -"dE" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dF" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dG" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dH" = (/obj/machinery/conveyor{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dI" = (/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"dK" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room) -"dL" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/tiled/steel/sif/planetuse{icon_state = "dark"},/area/surface/outpost/mining_main/gen_room) -"dM" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Security Checkpoint"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dN" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dO" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dP" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"dQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"dR" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"dS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"dT" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dV" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dW" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dX" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - FA Station"; dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"dY" = (/turf/simulated/wall,/area/surface/outpost/mining_main/emergencystorage) -"dZ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) -"ea" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westleft{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"ed" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) -"ee" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"ef" = (/obj/machinery/conveyor_switch{id = "mining_external"},/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) -"eg" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) -"eh" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 5; icon_state = "warning_dust"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/path/plains) -"ei" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"ej" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"ek" = (/obj/machinery/door/window/brigdoor/eastright{name = "Security Checkpoint"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"el" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"em" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"en" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eo" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) -"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"er" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"et" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) -"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ev" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ew" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ex" = (/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ey" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"ez" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"eA" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"eB" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"eC" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eD" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eE" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eF" = (/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eG" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"eH" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Production Area"; req_access = list(48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main/refinery) -"eI" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"eJ" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"eK" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"eL" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"eM" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) -"eN" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/path/plains) -"eO" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/red/border{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eP" = (/obj/machinery/computer/security,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/device/flash,/obj/item/weapon/pen,/obj/item/weapon/tool/crowbar,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eR" = (/obj/structure/closet/crate,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/red/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eT" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"eU" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eV" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eX" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eY" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) -"eZ" = (/obj/structure/closet/l3closet/scientist,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"fa" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"fb" = (/obj/structure/table/glass,/obj/item/weapon/tool/crowbar,/obj/item/bodybag,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"fc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"fd" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) -"fe" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"ff" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"fg" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_exterior"; locked = 1; name = "Mining Exterior Outpost"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = 0; pixel_y = -24; req_access = null; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) -"fh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"fi" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"fj" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_interior"; locked = 1; name = "Mining Interior Outpost"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = -6; pixel_y = -26; req_access = null; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) -"fk" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining1_airlock_control"; name = "Mining Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "mining1_airlock_exterior"; tag_interior_door = "mining1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fl" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fm" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fn" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fo" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fp" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Hallway 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"fr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fs" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) -"ft" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fu" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Production Room"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fv" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) -"fw" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"fx" = (/turf/simulated/wall,/area/surface/outpost/main/security) -"fy" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/obj/structure/closet/crate/secure/gear{name = "explorer crate"; req_access = list(43)},/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fz" = (/obj/machinery/door/window/northright,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fA" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/obj/structure/closet/crate/secure/gear{name = "explorer crate"; req_access = list(43)},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Gateway Access"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gateway) -"fC" = (/turf/simulated/wall,/area/surface/outpost/main/first_aid) -"fD" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/white/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"fE" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"fF" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/white/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"fG" = (/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/gen_room) -"fH" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"fI" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 1"; dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) -"fJ" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fK" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fL" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"fM" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fO" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"fP" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"fQ" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security) -"fR" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"fS" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"fT" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Explorer Prep"; dir = 2},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fV" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fW" = (/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fX" = (/obj/machinery/light{dir = 1},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"fY" = (/turf/simulated/floor/tiled,/area/surface/outpost/main) -"fZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ga" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 1"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"gb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gc" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"ge" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - SAR Prep"; dir = 2},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gf" = (/obj/structure/closet/secure_closet/medical_wall/pills{pixel_y = 32},/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gg" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gh" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main) -"gi" = (/turf/simulated/wall,/area/surface/outpost/mining_main) -"gj" = (/obj/effect/floor_decal/corner/brown/full,/obj/structure/closet,/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"gk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"gl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"gm" = (/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) -"gn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) -"go" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) -"gp" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) -"gq" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"gr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"gs" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"gt" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) -"gu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main5_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main5_airlock_exterior"; tag_interior_door = "main5_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"gv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"gw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"gx" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Explorer Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) -"gy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"gz" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"gA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"gB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "SAR Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) -"gC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gF" = (/obj/effect/landmark/start{name = "Search and Rescue"},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gG" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gH" = (/obj/machinery/computer/crew,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"gI" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"gJ" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gK" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gL" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gM" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gN" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"gO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"gQ" = (/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/structure/sign/warning/moving_parts{pixel_y = -32},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) -"gR" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"gS" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"gT" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"gU" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"gV" = (/obj/machinery/conveyor{dir = 5; icon_state = "conveyor0"; id = "miningout_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) -"gW" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) -"gX" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"gY" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security) -"gZ" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"ha" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) -"hb" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/item/device/gps/explorer{pixel_x = -5; pixel_y = -5},/obj/item/device/gps/explorer{pixel_x = -3; pixel_y = -3},/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"hc" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/machinery/light,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/item/device/paicard,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"hd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/device/binoculars,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"he" = (/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"hf" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"hg" = (/obj/structure/closet/secure_closet/explorer,/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/weapon/pickaxe,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) -"hh" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"hi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"hj" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"hk" = (/obj/machinery/mech_recharger,/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) -"hl" = (/obj/structure/table/steel,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/crowbar,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) -"hm" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) -"hn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/white/bordercorner2,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = 0; pixel_y = -32},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/machinery/iv_drip,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"ho" = (/obj/structure/closet/secure_closet/sar,/obj/machinery/light,/obj/item/weapon/storage/box/bodybags,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/obj/item/roller/adv,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"hp" = (/obj/structure/closet/secure_closet/sar,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/roller/adv{pixel_y = 5},/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"hq" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"hr" = (/obj/structure/table/steel,/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) -"hs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"ht" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hv" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hw" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Mining"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hx" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/mining_main/gen_room) -"hy" = (/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hA" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"hB" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/telecomms) -"hC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter) -"hD" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"hE" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"hF" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/garage) -"hG" = (/turf/simulated/wall,/area/surface/outpost/main/garage) -"hH" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power West"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hK" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hP" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hQ" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hR" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hS" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hT" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"hU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/telecomms/relay/preset/southerncross/cave,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"hV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/telecomms/relay/preset/southerncross/planet,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"hW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Telecomm"},/obj/machinery/telecomms/relay/preset/southerncross/wild,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"hX" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) -"hY" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) -"hZ" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) -"ia" = (/obj/machinery/teleport/hub,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) -"ib" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter) -"ic" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"id" = (/obj/structure/table/steel,/obj/item/weapon/weldpack,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"ie" = (/obj/machinery/space_heater,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"if" = (/obj/item/stack/tile/floor/steel_dirty,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"ig" = (/obj/machinery/mech_recharger,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"ih" = (/obj/structure/closet/hydrant{pixel_y = 32},/obj/item/clothing/glasses/meson,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"ii" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"ij" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"ik" = (/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"il" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"im" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"in" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"io" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"ip" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iq" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"ir" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"},/obj/machinery/atmospherics/binary/pump{dir = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"is" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"it" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iu" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iv" = (/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power East"; dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iw" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/light/small,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"ix" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"iy" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"iz" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"iA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"iB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"iC" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"iD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"iE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"iF" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"iG" = (/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"iH" = (/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"iI" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"iJ" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iK" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iL" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iM" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iO" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power South"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iP" = (/obj/machinery/atmospherics/binary/pump/on{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iQ" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iR" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 7; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iS" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 5; tag_south = 6; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iT" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iU" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iV" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"iW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Telecommunication Hub"; req_one_access = list(10,48,65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) -"iX" = (/obj/structure/table/standard,/obj/item/weapon/tool/crowbar/red,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/item/weapon/tool/crowbar/red,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"iY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"iZ" = (/obj/machinery/bluespace_beacon,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"ja" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) -"jb" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jc" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"jd" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"je" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 2"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jf" = (/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"},/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jg" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"ji" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jj" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jk" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) -"jl" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room) -"jm" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jn" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jo" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jp" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room) -"jq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "Teleport Access"; req_access = list(17)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/teleporter) -"jr" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"js" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jt" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/item/frame/light,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"ju" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"jv" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"jw" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"jx" = (/obj/structure/cable,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) -"jy" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/plains/outpost) -"jz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"jA" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jB" = (/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jD" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room) -"jE" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter Access"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jF" = (/obj/structure/closet/emcloset,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jH" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jI" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jJ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 2"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"jK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"jL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"jM" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/outpost) -"jN" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) -"jO" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) -"jP" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/heavyduty{icon_state = "1-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) -"jQ" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) -"jR" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) -"jS" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/cable/heavyduty{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"jT" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/plains/outpost) -"jU" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jY" = (/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"jZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ka" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ke" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"ki" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"kj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kk" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"kl" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"km" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kn" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ko" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kp" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kq" = (/obj/machinery/status_display,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main) -"kr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ks" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kt" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ku" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kv" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"kw" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/electrical,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"kx" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"ky" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) -"kz" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) -"kA" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) -"kB" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main) -"kC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kD" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kE" = (/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kG" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kH" = (/obj/machinery/mech_recharger,/obj/effect/decal/mecha_wreckage/ripley,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kI" = (/obj/item/inflatable/door/torn,/obj/item/weapon/tool/screwdriver,/turf/simulated/floor,/area/surface/outpost/main/garage) -"kJ" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"kK" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) -"kL" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"kM" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gym) -"kN" = (/turf/simulated/wall,/area/surface/outpost/main/gym) -"kO" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kP" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kS" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"kT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) -"kU" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/construction_area) -"kV" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"kW" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room/smes) -"kX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"kY" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/bar) -"kZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"la" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"lb" = (/obj/structure/fitness/punchingbag,/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"lc" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"ld" = (/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"le" = (/obj/machinery/vending/fitness,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"lf" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"lg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gym) -"lh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"li" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ll" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ln" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lo" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway East"; dir = 9},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lp" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main) -"lq" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ls" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main) -"lt" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) -"lu" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"lv" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/technology_scanner,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"lw" = (/obj/machinery/alarm{pixel_y = 22},/obj/random/toolbox,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"lx" = (/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"ly" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"lz" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes) -"lA" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal{dir = 4},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"lB" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Dorms"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"lC" = (/turf/simulated/wall,/area/surface/outpost/main/bar) -"lD" = (/obj/structure/table/marble,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lE" = (/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lF" = (/obj/structure/table/marble,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lG" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lH" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; operating = 0; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/frame/extinguisher_cabinet,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"lJ" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) -"lK" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) -"lL" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"lM" = (/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) -"lN" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"lO" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"lP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym) -"lQ" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) -"lT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lY" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"lZ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main2_airlock_control"; name = "Main Access Console"; pixel_x = 26; pixel_y = -26; tag_exterior_door = "main2_airlock_exterior"; tag_interior_door = "main2_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ma" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mb" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mc" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"md" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"me" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) -"mf" = (/obj/structure/closet/toolcloset,/obj/item/device/flashlight/maglight,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"mg" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"mh" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"mi" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"mj" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"mk" = (/obj/structure/table/marble,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar West"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"ml" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mm" = (/obj/structure/table/marble,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/stool/padded,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mo" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/item/weapon/stock_parts/motor,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mq" = (/obj/structure/table,/obj/item/stack/material/wood,/obj/item/stack/material/wood,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mr" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) -"ms" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) -"mt" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) -"mu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) -"mv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gym) -"mw" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"my" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mz" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/item/weapon/tool/wrench,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mB" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mD" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mG" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mI" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"mJ" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) -"mK" = (/obj/structure/closet/crate,/obj/item/weapon/tool/crowbar/red,/obj/item/frame/light,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"mL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"mM" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"mN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"mO" = (/obj/machinery/light_construct,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mP" = (/obj/structure/table/marble,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mQ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar East"; dir = 8},/obj/machinery/light_construct,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"mS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) -"mT" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access North"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"mU" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"mV" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"mW" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mX" = (/obj/structure/fitness/weightlifter,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mY" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"mZ" = (/obj/structure/closet/emcloset,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 1"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"na" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"nb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"nc" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/restroom) -"nd" = (/turf/simulated/wall,/area/surface/outpost/main/restroom) -"ne" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nf" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"ng" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"ni" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nj" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nk" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes) -"nl" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) -"nm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"nn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"no" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"np" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"nq" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"nr" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"ns" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"nt" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"nu" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"nv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nx" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"ny" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nA" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/cups,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"nC" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nE" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nF" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nG" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"nH" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nI" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nJ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nK" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"nL" = (/turf/simulated/wall,/area/surface/outpost/main/construction_area) -"nM" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"nN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"nO" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"nP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"nQ" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) -"nR" = (/obj/structure/closet/athletic_mixed,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nS" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nT" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nU" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gym"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nV" = (/obj/item/weapon/stool/padded,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nW" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) -"nX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"nY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"nZ" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom) -"oa" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"ob" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"oc" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"od" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/dorms) -"oe" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"of" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) -"og" = (/obj/structure/table/standard,/obj/item/device/paicard,/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oh" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oi" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Bar"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"oj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) -"ok" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"ol" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"om" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"on" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main4_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = 26; tag_exterior_door = "main4_airlock_exterior"; tag_interior_door = "main4_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oo" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"op" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym) -"oq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/blue,/obj/item/stack/flag/blue,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"or" = (/obj/structure/closet/secure_closet/personal,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"os" = (/obj/structure/table/bench/marble,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"ot" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"ou" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"ov" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) -"ow" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms) -"ox" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) -"oy" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Access"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) -"oz" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms) -"oA" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oB" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oG" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oI" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oL" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oO" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"oP" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main/corridor) -"oQ" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oU" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/junction/yjunction,/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"oZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 2},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ph" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pj" = (/obj/structure/disposalpipe/junction/yjunction{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pk" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pl" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pm" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) -"pn" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) -"po" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) -"pp" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pq" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pr" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main1_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main1_airlock_exterior"; tag_interior_door = "main1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"ps" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pt" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pv" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pw" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"px" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"py" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pz" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pA" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pB" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pC" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"pD" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pE" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pI" = (/obj/effect/floor_decal/spline/plain{icon_state = "spline_plain_full"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main) -"pJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pK" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"pN" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) -"pO" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pP" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pQ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pS" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"pT" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pU" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pV" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pW" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"pX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) -"pY" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/surface/outpost/main/dorms) -"pZ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qa" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qb" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/crate,/obj/item/weapon/bedsheet,/obj/item/weapon/bedsheet/blue,/obj/item/weapon/bedsheet/brown,/obj/item/weapon/bedsheet/green,/obj/item/weapon/bedsheet/orange,/obj/item/weapon/bedsheet/purple,/obj/item/weapon/bedsheet/red,/obj/item/weapon/bedsheet/yellow,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qd" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qe" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qh" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qi" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway East"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qk" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"ql" = (/obj/machinery/vending/snack,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qm" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qn" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qo" = (/obj/machinery/lapvend,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"qp" = (/turf/simulated/wall,/area/surface/outpost/main/corridor) -"qq" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qs" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qt" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qu" = (/obj/effect/floor_decal/spline/plain{icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase{desc = "It looks almost lifelike."; icon = 'icons/obj/statue.dmi'; icon_state = "hos"; name = "Statue"; pixel_y = 2},/obj/item/device/gps/internal/base,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/corridor) -"qv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qw" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qy" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qz" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qA" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway West"; dir = 4},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qB" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qD" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qG" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"qH" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qN" = (/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qO" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"qP" = (/turf/simulated/wall,/area/surface/outpost/main/dorms) -"qQ" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qR" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main3_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = -26; tag_exterior_door = "main3_airlock_exterior"; tag_interior_door = "main3_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qS" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"qU" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"qV" = (/obj/structure/closet/wardrobe/xenos,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"qW" = (/obj/structure/closet/wardrobe/suit,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"qX" = (/obj/structure/closet/wardrobe/grey,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"qY" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"qZ" = (/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"ra" = (/obj/machinery/mech_recharger,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) -"rb" = (/turf/simulated/wall,/area/surface/outpost/main) -"rc" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"rd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"re" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) -"rf" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom) -"rg" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"rh" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"ri" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"rj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"rk" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/purpledouble,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rl" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rm" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rn" = (/obj/machinery/door/airlock{id_tag = "modorm1"; name = "Room 1"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"ro" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rq" = (/obj/machinery/door/airlock{id_tag = "modorm2"; name = "Room 2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rr" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rs" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rt" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/yellow,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"ru" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm5"; name = "Room 5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm6"; name = "Room 6"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rx" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"ry" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"rz" = (/obj/item/weapon/bedsheet/bluedouble,/obj/structure/bed/double/padded,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"rA" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light,/obj/structure/closet/emcloset,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"rB" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = -6; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) -"rC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) -"rD" = (/turf/simulated/wall,/area/surface/outpost/main/pool) -"rE" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool) -"rF" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/pool) -"rG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool) -"rH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"rI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) -"rJ" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rK" = (/obj/item/weapon/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm1"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"rM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rN" = (/obj/machinery/button/remote/airlock{id = "modorm2"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rO" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rP" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rQ" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm5"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) -"rR" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"rS" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm6"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"rT" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"rU" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"rV" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) -"rW" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) -"rX" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"rY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"rZ" = (/obj/machinery/space_heater,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sa" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sb" = (/obj/machinery/light/spot{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sc" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sd" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"se" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool North"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sg" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sh" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"si" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sj" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sk" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sl" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sm" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sn" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"so" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sp" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) -"sq" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) -"sr" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access South"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) -"ss" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) -"st" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"su" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sA" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"sB" = (/obj/machinery/door/airlock{id_tag = "modorm3"; name = "Room 3"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 1"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm4"; name = "Room 4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sF" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"sG" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"sH" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"sI" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"sJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm7"; name = "Room 7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm8"; name = "Room 8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) -"sM" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"sN" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) -"sO" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) -"sP" = (/obj/structure/table/glass,/obj/item/device/paicard,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sR" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sS" = (/obj/effect/floor_decal/spline/plain{dir = 9},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"sT" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"sU" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"sV" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"sW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sX" = (/obj/structure/table/glass,/obj/item/weapon/inflatable_duck,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"sY" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"sZ" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm3"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) -"ta" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm4"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"tb" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"tc" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"td" = (/obj/item/weapon/stool,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm7"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) -"te" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm8"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"tf" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) -"tg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) -"th" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) -"ti" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tj" = (/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tk" = (/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tl" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tm" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool West"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"to" = (/obj/effect/floor_decal/spline/plain{dir = 9},/obj/item/weapon/beach_ball,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tp" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tq" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"ts" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool East"; dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tt" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) -"tu" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"tv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/effect/zone_divider,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) -"tw" = (/obj/structure/table/glass,/obj/item/weapon/book/codex/lore/vir,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"ty" = (/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tz" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tA" = (/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tB" = (/obj/effect/floor_decal/spline/plain{dir = 10},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tC" = (/obj/effect/floor_decal/spline/plain,/obj/machinery/hologram/holopad,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tD" = (/obj/effect/floor_decal/spline/plain{dir = 6},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tE" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tF" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tH" = (/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tI" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/mountains) -"tJ" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline/corner,/area/surface/outside/ocean) -"tK" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/zone_divider,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"tL" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/ocean) -"tM" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/ocean) -"tN" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/normal) -"tO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tQ" = (/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tR" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) -"tS" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tT" = (/obj/effect/floor_decal/spline/plain{dir = 6},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) -"tU" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) -"tV" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tW" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) -"tX" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tY" = (/obj/machinery/light/spot,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"tZ" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"ua" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"ub" = (/obj/structure/table/glass,/obj/item/inflatable{pixel_x = 6; pixel_y = 6},/obj/item/inflatable{pixel_x = 2; pixel_y = 2},/obj/item/inflatable{pixel_x = -2; pixel_y = -3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"uc" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/mountains) -"ud" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_1"; name = "shuttle bay controller"; pixel_x = -26; pixel_y = 0; tag_door = "surface_dock_1_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) -"ue" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"uf" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_2"; name = "shuttle bay controller"; pixel_x = 26; pixel_y = 0; tag_door = "surface_dock_2_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) -"ug" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"uh" = (/obj/structure/table/glass,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool South"; dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"ui" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) -"uj" = (/obj/machinery/light{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) -"uk" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"ul" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"um" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"un" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"uo" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"up" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/planet) -"uq" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"ur" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/planet) -"us" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 6},/area/surface/outside/ocean) -"ut" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"uu" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 5},/area/surface/outside/ocean) -"uv" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 8},/area/surface/outside/ocean) -"uw" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"ux" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) -"uy" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/outpost) -"uz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"uA" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch) -"uB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch) -"uC" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) -"uD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) -"uE" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -24; pixel_y = 0; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch) -"uF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"uG" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/emergencystorage) -"uH" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/smes) -"uI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"uJ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/restroom) -"uK" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch) -"uL" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"uM" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"uN" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"uO" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch) -"uP" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/light/small{dir = 1},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"uQ" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"uR" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/smes) -"uS" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Research"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"uT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"uU" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"uV" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/restroom) -"uW" = (/obj/structure/toilet{dir = 4},/obj/structure/window/reinforced/tinted,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"uX" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"uY" = (/obj/machinery/light{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"uZ" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"va" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vb" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vc" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vd" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Airlock"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"ve" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vf" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vg" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vh" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vi" = (/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vj" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vk" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"vl" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"vm" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"vn" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/plains/outpost) -"vo" = (/turf/simulated/mineral/sif,/area/surface/outside/plains/normal) -"vp" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) -"vq" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/normal) -"vr" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"vs" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"vt" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"vu" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/item/weapon/weldpack,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"vv" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Research Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"vw" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"vx" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vA" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vB" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vC" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vD" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vF" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vG" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vH" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"vK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"vL" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/outpost) -"vM" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/normal) -"vN" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/emergencystorage) -"vO" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) -"vP" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) -"vQ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Research Restroom"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) -"vR" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"vS" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "research_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "research_airlock_exterior"; tag_interior_door = "research_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"vT" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"vU" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vW" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vX" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vY" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"vZ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) -"wa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"wb" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) -"wc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"wd" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"we" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"wf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 1"; dir = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wk" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"ws" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"ww" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wE" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) -"wF" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wG" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wI" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wJ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/bot/secbot/slime,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wK" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wL" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wP" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wS" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wU" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wY" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"wZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 4"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xb" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xc" = (/obj/machinery/light,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xe" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"xf" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xg" = (/obj/structure/bed/chair,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -28; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xi" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xj" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) -"xk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xl" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xm" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 3"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xn" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xo" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora) -"xp" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"xq" = (/obj/machinery/smartfridge,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora) -"xr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xs" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) -"xt" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) -"xu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenoflora) -"xv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xw" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xx" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xy" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"xz" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xA" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xB" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced,/obj/machinery/shower{pixel_y = 3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/xenobiology) -"xC" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xD" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"xF" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xH" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xI" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - First Aid Station"; dir = 2},/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"xJ" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"xK" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"xL" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"xM" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"xN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"xO" = (/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"xP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"xQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"xR" = (/obj/machinery/computer/operating{name = "Xenobiology Operating Computer"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xS" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"xT" = (/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel{pixel_y = 12},/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"xU" = (/obj/structure/table/standard,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"xV" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xW" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xX" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology Access"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"xY" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"xZ" = (/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"ya" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yb" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yc" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"ye" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/paleblue,/obj/structure/table/rack,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yf" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"yg" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"yh" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"yi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora North"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yj" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yl" = (/obj/structure/table/glass,/obj/item/weapon/tape_roll,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"ym" = (/obj/machinery/atmospherics/tvalve{dir = 1; name = "siphon switching valve"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"yn" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yo" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yp" = (/obj/structure/table/glass,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yq" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"yr" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"ys" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yt" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 6; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yu" = (/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yv" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yw" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yx" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/full{density = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"yy" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yz" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"yA" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/obj/item/bodybag/cryobag,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yB" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenoflora) -"yC" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"yD" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"yE" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"yF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics{desc = "All you need to start your own honey farm."; name = "beekeeping crate"},/obj/item/beehive_assembly,/obj/item/bee_smoker,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/bee_pack,/obj/item/weapon/tool/crowbar,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yG" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yH" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yI" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yJ" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yK" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yL" = (/obj/structure/closet/emcloset/legacy,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora) -"yM" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yN" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yO" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -6; pixel_y = 28; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yP" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xeno_airlock_control"; name = "Xenobiology Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "xeno_airlock_exterior"; tag_interior_door = "xeno_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yQ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yR" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yS" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"yT" = (/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"yU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yW" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"yY" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"yZ" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"za" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zc" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zd" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"ze" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zg" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"zh" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zi" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zk" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"zm" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zn" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zo" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zp" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zq" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zr" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zs" = (/obj/structure/table/glass,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/knife/machete/hatchet,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zt" = (/obj/structure/table/glass,/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zu" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zv" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zw" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zx" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zy" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zz" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zA" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zD" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/slime_scanner,/obj/item/device/slime_scanner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"zE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"zF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction/yjunction{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"zG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"zH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"zI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zJ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zK" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"zL" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"zM" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zN" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/obj/item/weapon/tool/wrench,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zO" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zP" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/door/window/westright{name = "Xenoflora Containment"; req_access = list(55)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"zQ" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zR" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zS" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"zT" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/vending/hydronutrients{categories = 3},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"zU" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/botany/editor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"zV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/botany/extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"zW" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zX" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora East"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"zY" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"zZ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"Aa" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ab" = (/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ac" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ad" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/button/remote/blast_door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ae" = (/obj/structure/window/reinforced,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Af" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ag" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ah" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/botanydisk,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ai" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Aj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ak" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Al" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Am" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"An" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ao" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology West"; dir = 4},/obj/structure/closet/firecloset/full/double,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ap" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Aq" = (/obj/structure/table/standard,/obj/item/stack/material/phoron{amount = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ar" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"As" = (/obj/structure/table/standard,/obj/item/glass_jar,/obj/item/glass_jar,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"At" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology East"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Au" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"Av" = (/obj/machinery/door/blast/regular{desc = "Blastdoor divider"; id = "xenobioout7"; name = "Containment Divider"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Aw" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora West"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ax" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ay" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Az" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AA" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AB" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AC" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AE" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AF" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AH" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AI" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AJ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"AK" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"AL" = (/obj/machinery/smartfridge/secure/extract,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"AM" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenobio5"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"AN" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"AO" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AP" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AQ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AS" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"AT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AU" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"AW" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/river/indalsalven) -"AX" = (/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"AY" = (/mob/living/simple_animal/slime,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"AZ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ba" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bb" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Be" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/processor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bg" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bh" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bi" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Isolation"},/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bj" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bk" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bl" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bm" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bn" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bo" = (/obj/structure/window/reinforced,/obj/machinery/biogenerator,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bp" = (/obj/structure/window/reinforced,/obj/machinery/seed_extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bq" = (/obj/machinery/seed_storage/xenobotany,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Br" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bs" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bt" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 2"; dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Bu" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bx" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"By" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"BA" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"BB" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"BC" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/item/weapon/tool/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BD" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BE" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BF" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BG" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BH" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BI" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BJ" = (/obj/machinery/light,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BL" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"BM" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the divider between pens."; id = "xenobioout7"; name = "Containment Divider Switch"; pixel_x = 28; pixel_y = 0; req_access = list(55)},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"BN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BO" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BQ" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BS" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BT" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BV" = (/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"BW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenoflora Storage"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"BX" = (/obj/structure/closet,/obj/item/toy/figure/scientist,/obj/item/clothing/accessory/armband/science,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"BY" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 0; pixel_y = -28; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"BZ" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ca" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/window/brigdoor/northright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/button/remote/blast_door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cc" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology South"; dir = 1},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -38},/obj/structure/reagent_dispensers/watertank/high,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cd" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ce" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cf" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ch" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ci" = (/obj/structure/closet/radiation,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) -"Ck" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cl" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"Cm" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Co" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cp" = (/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cq" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cs" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ct" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"Cu" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"Cv" = (/turf/simulated/wall,/area/surface/outside/path/plains) -"Cw" = (/turf/simulated/floor/wood{outdoors = 1},/area/surface/outside/path/plains) -"Cx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cy" = (/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"Cz" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"CA" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"CB" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"CC" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"CD" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) -"CE" = (/obj/structure/closet/l3closet/general,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) -"CF" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"CG" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"CH" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CI" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CJ" = (/obj/structure/closet/crate/hydroponics/exotic,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) -"CK" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"CL" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"CM" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"CN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"CO" = (/obj/structure/closet/bombcloset,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) -"CP" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) -"CQ" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) -"CR" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora) -"CS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CW" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 1"; dir = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"CX" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"CY" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"CZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Da" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Db" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Dc" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Dd" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"De" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"Df" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Dg" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Dh" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Di" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) -"Dj" = (/obj/machinery/door/blast/regular{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) -"Dk" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) -"Dl" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"Dm" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/normal) -"Dn" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/response_ship/planet) -"Do" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"Dp" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"Dq" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) -"Dr" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Ds" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) -"Dt" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) -"Du" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) -"Dv" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"Dw" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 1},/area/surface/outside/ocean) -"Dx" = (/turf/simulated/floor/water,/area/surface/outside/river/faxalven) -"Dy" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) -"Dz" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/syndicate_station/planet) -"DA" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/plains/normal) -"DB" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/normal) -"DC" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/faxalven) -"DD" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/faxalven) -"DE" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/plains/normal) -"DF" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/faxalven) -"DG" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/normal) -"DH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/normal) -"DI" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 9},/area/surface/outside/ocean) -"DJ" = (/turf/simulated/floor/water,/area/surface/outside/lake/romsele) -"DK" = (/turf/simulated/floor/water/deep,/area/surface/outside/lake/romsele) -"DL" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/skipjack_station/planet) -"DM" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DN" = (/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DO" = (/obj/machinery/light,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DP" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DQ" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall) -"DR" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall) -"DS" = (/turf/simulated/wall/dungeon{icon = 'icons/obj/doors/shuttledoors.dmi'; icon_state = "door_locked"; name = "Wall Gate"},/area/surface/outpost/wall) -"DT" = (/obj/structure/sign/warning/caution{desc = "This appears to be a sign warning people that the other side is dangerous. It also says that NanoTrasen cannot guarantee your safety beyond this point."; name = "\improper WARNING: NO ACCESS"},/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall) -"DU" = (/obj/structure/sign/warning/caution{desc = "This appears to be a sign warning people that the other side is dangerous. It also says that NanoTrasen cannot guarantee your safety beyond this point."; name = "\improper WARNING: NO ACCESS"},/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall) -"DV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DX" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outpost/wall) -"DY" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) -"DZ" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outside/lake/romsele) -"Ea" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 4},/area/surface/outside/ocean) -"Eb" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 8},/area/surface/outside/ocean) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacadadadabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeababababababababab -aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaiajajajahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahalalalalalalalalalalalalalalalalalalalahahahahalalalalalalalahahahahalalahahahahamajajajananananalalalalalalalalalalahahahahahahahahahahahahalalalalahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafafalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahalalalalalalalamajajajaoapaqanalalalalalalalalalalalahahahahahahahahahahalalalalalalahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalamajajajarasatanalalalalalalalalalalalalalahahahahahahalalalalalalalalalahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauavavavawaxayanalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajananananalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafafalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafafalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa -aaafafafafafafalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafaAafafaa -aaafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakaBafafafafaAaAafafaa -aaafafafafafafalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaBaBaBafafaAaAaAaAaAafaa -aaafafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaDaDaDaEaAaAaAaAaAaAafaa -aaafafafafafafafafalalalalalalalafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaHaAaAaAaAaCaEafaa -aaafafafafafafafafafalalalalafafafafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaIalazajajajalaIalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaCaJaDaDaDaHaAaAaAaCaJaKaLaM -aaafafafafafafafafafafafafafafafafafalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaJaDaDaDaDaKaLaLaLaJaDaDaDaM -aaafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaOaOaOaNaNaPaPaPaPaQaQaQaPaPalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalafafafafafafalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaRaSaTaUaVaNaWaXaYaZaZaZbabbaPaPaPaPalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNbcbdbebebfbgaObhbibibibibibibjaPbkblaPbmbmbmazajajajalalalalalalalalalalalalalalalalalbnbnbobpbobnbnalalalalalalalalalalalalalalalalalalahahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaObqbebrbsbtbubvbwbxbybzbybAbBbCbDbEbFbGbmbmbmazajajajalalalalalalalalalalalalbHbIbJbIbHbnbKbLbMbNbObnbPbQbRbQbPalalalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaObSbTbUbVbWbXaObYbZbicacbcccbcdaQcecfaQbmbmbmazajajajalalalalalalalalalalalbHbHcgchcicjckbNclcmcnbNcocpcqcrcsbPbPalalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNcucucvcvcvcvaNcwcxcyaQczcAcBcCcDcDcDcDcEcEcEcFajajajalalalalalalalalalalbHbHcGcGcHcIcJcKcLcMcNcOcPcKcQcRcRcScTbPbPalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDaDcUcUaM -aaafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNcvcvcvcVcWcXcYcZbZdacDcDcDcDcDcDdbdcdddedfdfdgajajajalalalalalalalalalalbIdhdidjdkcIdlcKdmdndodpdqcKdrcRcRdsdtdubQalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDcUcUcUcUaM -aaafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNdvdwcvdxdydzcYdAbZdBcDdCdDdEdFdGdHdIdJdKdKdKdLajajajalalalalalalalalalalbJdMcIdNcIdOdPbIdQdRdRdRdSbQdTdUcRdVdWdXbRalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUaM -aaafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaNaNdYdZcYcYeaebeccDedeeeecDeedbcDcDegefcEehajajajalalalalalalalalalalbIeiejekelemeneoepeqereqeseteuevewexeyezbQalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUaM -aaafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmbmaQeAeBaQeCeDeEeFbheGbieHeIeIeJeKeeeLcDeMeMeMeMeNajajajalalalalalalalalalalbHeOePeQeReSeTbIeUeVeWeXeYbQeZfafbfcfdfebPalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUaM -aaafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmfffgfhfifjfkflfmfnfmfofpfqfrfsftfufvfwcDeMeMeMeMeNajajajajalalalalalalalbHbHbHfxfxfxfyfzfAfxcKbofBbocKfCfDfEfFfCfCfCbPbPalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM -aaafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmfGaPfHfIaPfJfKfLbYbieGbieHeIfMfNfOeefPcDeMeMeMeMeNajajajajajajajajajajfQbIfRfSbIfTfUfVcIfWfXbIfYfZgabQgbgcgcgdgegfgcggbQalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajaPaPghaPgigiaPgjgkglgmcDgneeeegoeedbcDeMeMeMeMgpajajajajajajajajajajfQgqgrgsgtgucIgvelelgwgxgygzgAgBgCgDgDgEgFgFgGgHbQalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIgJgKgLgKgMgIgNgOgPgOcDgQgRgSgTgUgVcDgWgWgWgWgXajajajajajajajajajajgYbHgZhabHhbhchdhehfhgfxhhhihjfChkhlhmhnhohphqhrbPalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIgIhshthuhvhwhxhyhzhyhAgIgIgIgIgIgIgIalalalalamajajajajajalalalalalalbHhBhBhBhBhBhChChChChChDhihEhFhFhFhFhFhGhGhGhFhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIhHhIhyhJhKhLhMhNhOhPhQhRhShShTgIalalalalalamajajajajalalalalalalalalhBhUhVhWhBhXhYhZiaibhDhihEhFicidieifigihiiijhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIikhIhyiliminioipiqirisisitiuivgIalalalalalamajajajalalalalalalalalalhBiwixiyhBiziAiAiBhCiCiDiEhFiFiGiGiGiHiHiGiIhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIiJiKiLhJhyiMiNiOiPiQiRiSiTiUiVgIalalalalalamajajajalalalalalalalalalhBhBiWhBhBiXiYiZjahChDhijbhFiHiHjciiiiiHiHiGhGalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIgIjdjejfjggIgIjhgIgIjijjjkjkgIgIalalalalalamajajajalalalalalalalalaljljmjnjojphChCjqhChCjrhijshGjtiHjujvjwiGiHiHhGalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIgIgIgIjxgIjyjzjygIgIgIgIgIgIalalalalalalamajajajalalalalalalalalaljljAjWjCjDjEjFjGjHjIfYhijJhGjKiHjLiHiGiGiHiHhGaljMjMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalajajajjNjOjOjOjPjOjOjQjRjRjRjRjRjRjRjRjRjRjRjRjRjSjRjRjRjTjTjTjTjTjTjTjTjTjUjVlSjXjYjZkakbkakckakdkekfkgkhkikhkhkjiHiHhGalaljMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajajajajajamajajajajajajajajajajajajajajajajajajajajamajajajalalalalalalalalaljlkkjBkljpkmknkokpkqkrkskthGkuiGjuiHiHiHiHiHhFalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalaljMalalalalajajajajajajajajajajajamajajajajajajajajajajajajajajajajajajajajamajajajalalalalalalalalaljlkvkwkxjpkykzkAkBkBjIkCkDhFhFkEkFkGkHkIkJkKhFalaIalaljMalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalkLalalalalalalalalalalalalalalalalalalalalamajajajalalalalalalalalalkMkNkNkNkNkNkNkNkMkOkPkQkRkShFhGkThGhGhFhFhFhFalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalkUkUkUkUkVkVkWkXkWkYkYkYkYkZkZkYkYkYkYalalalalalalalalalamajajajalalalalalalalalalkMlalblclbldlelflglhliljlkfYjIlllmlnlolplqlrlsltjMalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUkUlulvlwlxlylzlAlBlClDlElFlElGlHlElIkYkYalalalalalalalalamlJlJlKalalalalalalalalalkMlLlMlMlMlMlNlOlPlQlRpIlTlUlVlWlXlYlZmambmcmdmejMjMjMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUmflxlxlxmgmhlzmimjlCmkmlmmmnmomnmnmpmqkYalalalalalalalalmrmsmtmumualalalalalalalalmvmwmxmxmxmxmymzmvhhmAmBmCfYjImDmEmFmGkBmHmIkBmJaljMjMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUlulxmKlxmLlxlzmMmNlCmOlEmPlEmQlElElEmRkYalalalalalalalalmSmTmUmVmsalalalalalalalalmvmWmXmWmXmWmWmYkMmZfYnakRnbncndnendndkBkBkBkBalalaljMjMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUnflxngnhninjlznknllClEnmnnnonpnononqnrkYalalalalalalalalmSnsntnumsalalalalalalalalkMnvnwnxnynzmWnAkMkBjInBkDncncnCnDnEnFnGncalalalaIalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajaIalkUnHnIlxlxnJnKnLnMnNlClElElElEnOlElElEnPkYalalalalalalalmumrmsnQmumumualalalalalalalkMnRnSnTnUnVmWnWkNnXfYiDnYnZoanEobocndndncalalalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalodkUkUkUkVkVoeofnLogohlCkZkZkZlCoilCkZkZojkYmumumsmsmumsmsmuokolomonoomumsmsmumsmsmumukMkNmvopmvkNmvmvkNoqfYnakRndornEosnEotouncalalalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajovowoxoyozoAoBoCoDoEoFoGoHoIoJoJoKoLoMoJoNoOoJoPoQoRoRoSoRoToRoUoVoWoXoYoZoRoRpaoToRoRoPpbpclhpdpepcpfpcpgphphpipjndpknEosplndndncncncalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajpmpnpopppqprpsptpupvpwpxpypvpvpzpvpApvpvpBpvpCpDpEpFpGpGpGpHpGpKpJqupLpGpGpGpFpGpHpGpMpNgylUlUpOpPpPpQpPpPpPkapRpSndpTnEosplndpUpVpWncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajpXodpYpZodqaqbqcpsqdqeqfqgqhqiqjpsqcqkqlqmqnqoqpqqqrqqqsqqqqqtqQqvqwqxqyqqqqqrqzqqqqqqqpqAqBqBqCqBqBqBqBqDfYqEqFqGndqHqIqJqKqLqMqNqOncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalododododqPqPqcpsqPqPqPqPqPqPqPpsqcqPqPodododmumumsmsmumsmsmurAqRntqSqTmumsmsmumsmsmumukBqUqVqWqXqYqZrarbfYrcrdrerfrgnErhrindpUrjpWncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajaIalodrkrlrmrnrorprqrrrsqPrtrurvrprorwrxryrzodalalalalalalalmurVmurBmsmumualalalalalalalkBrCrDrDrDrDrDrDrDrDrErFrGndndndrHndndndrIncncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalowrJrKrLqPqcrMqPrNrOqPrPrQqPrRqcqPrSrTrUowalalalalalalalaltgrWmUmVmsalalalalalalalalalrCrXrYrZrZsasbscsdsesfsgshsisjskslsmsnsorCalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalodqPqPqPqPqcpsqPqPqPqPqPqPqPpsqcqPqPqPqPodalalalalalalaIaltgspsqsrmsalaIalalalalalalalssstsusvswswswswswswsxswswswswswswsyszstssalalalaljMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalodsArlrmsBsCsDsEsFsGqPsHsIsJsKsCsLrxrysModalalalalalalalalrVmusNmsmualalalalalalalalalsOsPstsQsRsSsTsTsTsTsTsTsUsUsUsVsRsWstsXsOalalalaljMalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalododsYsZqPowowqPtatbqPtctdqPowowqPtetfododalalalalalalalaltuthlJlJalalalalalalalalalalssstsRsQsRtitjtjtjtjtjtjtktktktlsRsWsRstssalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalodowododalalododowodowododalalododowodalalalalalalalalaltuajajajalalalalalalalalalalrCrCtmtnsRtitjtjtjtotptqtktktktlsRtrtsrCrCalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaagagaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFttttttaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFtKttttttaFaFaFaFaFaFaFaFaFaFaFtvtwtxtytztAtAtAtBtCtDtEtEtEtFtytGtHtvaFaFaFaFaFaFaFaFaFaFaFaFagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagtItItItItJustLtLtLtLtLtLtLtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalsOsttOsRtitjtjtjtktktktktktktlsRtPstsOalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalsssRsRsRtQtRtRtRtStStStStStStTsRsRsRssalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalrCtUtVsRsRsRsRsRsRsRsRsRsRsRsRsRsRtWrCalalaljMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalalrCrCsttXtYtZsRsRsRsRsRuatYubstrCrCalalalaljMalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafucucaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalmuudajajalalalalalalaluemuuealalalalalalalalalufmualtualajajajalalalalalalalalalalalalrCsssOssrCtXuguhuitXrCsssOssrCalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalujukulululululululululumujukulululululululululumujaltualajajajalalalalalalalalalalalalalalalalrCrCsssOssrCrCalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuououpupupupupuououqueunururuouououououruruqalaltuajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalaljMalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafucaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururuououourururuqalajutajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalaljMjMalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajajutajajajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafucucucaAaAaAaAaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajajutalajajajalajajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafucucucucaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajaluwyCuxuxuxyCyCyCyCyCyCyCyCyCyEajajajajajajajajalalalalaljMjMjMalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqalalalajajajajalalalalalalalalaltualalalalajajajajajajalaljMjMalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqalalalajajajalalalalalalalalalaltualalalalalalajajajajajalalalalalalalalalalalalalalalalalalalalalalalalaluyuyafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaltualalalalalalalalajajajalalalalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyafafafafafafafafafafafafafafagafafafafafafafafafafafafafafucucucucucaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaluzalalalalalaIalaluAuBuBalalaIalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyuyuyafafafafafafafafafafafafagafafafafafafafafafafafafafucucucucucucaAaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaluzalalalalalalaluCuDuEuFuCalalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyafafafafafafafagafafafafafafafafafafafafucucucucucucaAaAaAaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalaluGuGuGuHuHuIuHuJuJuJuJuJuJuJuKuLuMuDuDuDuFuNuFuDuDuFuDuOuDuFuDalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyafafafafagafafafafafafafafafafafucucucucucucucaAaAaAaAaAaAaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalaluGuGuPuQuRuSuTuUuVuWuXuYuZvauJvbvcvduDvevfvgvhvivjuOvkvkvkvlvmuDuDalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvnvovovovovovovovpucucucucucucucucucucaAaAaAvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupuouououpupupuqueunuourururururururuouqalalalajajajalalalaluGvrvsvtuRvuvvvwuVvxvyvzvAvBuJuDvCuFuDvDvEvFvGvHvIuOvkvkvkvJvKuOuDalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupuouououououpupuqueunuouourururururuououqalalalajajajalalalaluGvNvOvNuRuRvPuRuVuVuVvQuVuVuVvRvSvTuOvUvVvWvXvYvZuOuOuOuOwauOuOuDalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalwbwcwdwdwdwdwdwdwdwdwdwewbwcwdwdwdwdwdwdwdwdwdwewbalalajajajalalalaluFwfwgwhwiwjwkwlwmwnwowpwowqwrwowswowtwuwvwwwxwowywzwwwowAwBwCwDuFalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalmuwEalalalalalalalalalwEmuwEalalalalalalalalalwEmualalajajajalalalaluNwFwGwHwIwJwKwLwMwNwOwPwQwQwRwQwSwQwTwUwQwVwQwQwQwWwXwYwZxawFwFuNalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalaluFxbxcxdxexexfxexexgxcxhxixjuFuFxkuFuFuDxlxmxnwFxoxoxpxqxoxrxnxsxtxualalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalxexexvxwxxxyxzxAxBxyxCxDxExexexFxGxHxIxJxoxoxKxLxKxoxMxNxOxoxPxLxQxoxoalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalxexexRxSxTxUxexVxWxXxexYxZyaybxexeycydyexoxoyfygyhyiyjxOykxOylymynyoypxoxoalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalxeyqyrysyryrxexeytxexeyuyvysywyxxeyyyzyAxoyBBjyDBByFyGxOykxOyHyIyJyKyKyLxoalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalxexexexexeyMysyryNyOyPyQyRyrysySxexexexexexoxoyTxOyKyUyVyWyXyYxOyZzazbzcyByBxoxoxoaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalxezdzezfzgzhyrziysyszjysysziyrzkzlzfzezmxeznzozpzqyKzrzsztxOykxOzuzvzwyKxKzxzyxOxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalxezzzzzzzAzByszCzDzEzFzGzHzIzJzKzLzzzzzzxezMzNzOzPzQzRzSzTxOykxOzUzVzWzXxKxOxOzYxLuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalalalxezzzzzzzZAayrysyryrAbyryrysAcAdzlzzzzzzxeAeAfAfzqAgxOxOxOxOAhAiAiAjAiAiAkAiAlzYxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajalalalalalalalxeAmAmAmAnAoyrysApAqArAsyrysAcAtAuAvAvAvxeAwAxAxAyzaAzAAAAABACADyKyKAEAFyBAGAHAIxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajalalalalalalalalalxezzzzzzAJAKyrysyryrALyryrysAcAMANzzzzzzxoAOAPAQAyAgxOxOxOARASATyXyXyXyXAUyXAVzYxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalalalalalalalalxezzAYzzAZzBysBaBbBcBdzEBeBfBgzKBhzzzzzzxoBiyKDrBkBlBmBnBoARyKxOBpBqBrBsxKBtxOzYxLuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalalalalalalalalalalalxeBuBvzfBwBxyrziysysysysysziAcByBzzfBvBAxoDsBCyKAyyKBDBEBFARyKxOBGBHBIyKxKxOBJBKxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalxexexexexeBLysyrysyryryrysyrBgBMxexexexexoxoxoBNBOyKBPAABQBRBSyXBTyVBUBVyBBWxoxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalalalalalalalalalalxeBXyrysBYBZCaCbCcCdCaCeCfCgChCiCjCkClClxoCmCnCoCpyKyGARCqxOyHyKyKCrCsCtxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalCvCwCwCvalalalalalalalalalalalalalalalalalalxexeCxyrxeCyCzCAAmCBCCCDxeyrCExexeClCluexoxoCFCGyBxKxKCHyBCIxKxKyBCsCJxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalCKCwCwCLAXAXAXalalalalalalalalalalalalalalalalxexeCMxeCNzzzzAmzzzzCNxeCOxexeCPbmbmueCQxoxoCRyBCSxOCTCUCVCWxOBWCtxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -AWAXAXAXAXCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXCKCwCwCXCuAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXalxexexeCYzzzzAmzzAYCZxexexealCQCQCQCQCQalxoxoxoDaxODbAHDcxODdxoxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafAXAXAXCuCuCuAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXDeCwCwCXCuCuCuCuAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXalalxeDfzzzzAmzzzzDgxealalalalalalalalalalalxoxOzYzYDhzYzYDixouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafAXAXAXAXCuCuAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuDeCwCwCXAXAXCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuAXAXAXxeDjDjDjxexexexexealalalalalalalalalaluyxoxKxLxKxoxKxLxKxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXCuCuCuCuCKCwCwCLAXAXAXAXAXAXAXAXAXCuCuCuAXCuCuCuCuCuCuCuAXAXAXalalalalalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNAXAXAXAXAXAXAXAXAXCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuCuAXAXAXCKCwCwCLAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXAXCKCwCwCLAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuCuCuAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXAXtNCvCwCwCvtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuCuCuCuAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNajajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpAXAXAXAXAXAXAXCuCuCuCuCuCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXCuAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajajtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXCuCuAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXCuCuCuAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXCuAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalAXAXAXCuCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalAXAXAXAXAXCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalAXAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuAXAXAXAXAXAXtNtNtNtNtNAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuAXAXAXAXAXAXAXAXAXAXAXAXDlAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuAXAXAXAXAXAXAXAXAXDlAXCuCuCuCuCuAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuCuCuAXAXAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXCuCuAXAXAXAXDlAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpajajajajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXDlAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpajajajajajajajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpajajajajajajajajajajajajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpajajajajajajttajajajajajvpvpvpvpvpvpvpajajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpajajajajajajajajajttajajajvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpAXAXCuCuCuAXAXvpvpvpvpajajajajajajvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnvpajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNDmtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpCvDoDoDpDpDpDoDoDqCvajajajajvpvpvpvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnDnajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpajajajCwCwCwCwCwCwCwCwCwCwajajvpvpvpvpvpvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajCwCwCwCwCwCwCwCwCwCwajvpvpvpvpvpvpvpvpvpvpvpDkvpDnDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpCvDtDuDuDvDvDvDuDuCvvpvpvpvpvpvpvpvpvpvpvpvpDkvpDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUaDaDaDDIDwDwDwuuaDaDaDaDcUcUcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvMvMvMvMvMvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUaDaDDIEavqvqvquvDwuuaDaDaDaDcUcUcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUaDaDaHvqvMvMvqvqvquvDwuuaDaDaDaDcUcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUaDaDaDaHvqvqvMvMvMvqvqvquvuuaDaDaDaDcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUaDaDaDDIEavqvqvMvMvMvMvMvqvquvDwuuaDaDcUcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqaCaLaJaDaDaDcUcUcUaDaDDIEavqvqvMvMvpvpvpvMvqvqvqvqaGaDaDaDcUcUaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqaCaLaLaLaJaDaDaDaDaDcUcUcUaDaDaHvqvqvMvMvpvpvpvpvMvMvMvMvquvuuaDaDaDcUaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqaLaLaLaJaDaDaDaDaDaDaDaDaDcUcUcUcUaDaKaEvqvMvMvMvpvpvpvpvMvMvMvMvquvuuaDaDaDaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMAXAXaDaDaDaDaDaDaDaDaDaDaDaDaDaDcUcUcUaDaDaKaEvqvMvMvMvMvpvpvpvpvMvMvMvquvuuaDaDaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMAXAXAXAXAXaDaDaDaDDIDwDwDwDwDwDwuuaDaDcUcUcUaDaDaDaKaEvqvqvMvMvMvMvMvMvMvMvMvqvqaGaDaDaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXaDaDDIDwEavqvqvqvqvqvqaGaDaDaDcUcUcUaDaDaDaKaEvqvqvMvMvMvMvMvMvqvqvqvqaGaDaDaM -aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXDwDwEavqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUaDaDaDaKaLaEvqvqvqvqvqvqvqaCaLaLaJaDaDaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUaDaDaDaDaKaLaLaLaLaLaLaLaJaDaDaDaDaDaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpDkvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaM -aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXAXAXAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDaDaDcUcUcUaM -aaafafafvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxAXAXAXCuCuCuAXAXAXAXCuCuDyCuCuCuAXAXAXAXAXAXAXAXAXvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxAXAXAXAXAXAXCuCuCuCuCuDyCuCuCuCuCuCuCuCuCuAXAXAXvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxAXAXAXAXAXAXAXAXAXAXDlAXAXAXAXAXCuCuAXAXAXAXAXAXvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvpvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMAXAXAXAXAXAXaLaEvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMAXAXAXAXaDaKaEvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADAvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqAXAXAXaDaDaKaLaLaEvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADAvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDBvpDBvpCvCwCwCvvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqAXAXaDaDaDaDaDaKaLaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADAvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvquvDwDwuuaDaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADAvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADAvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDBvpDBvpCvCwCwCvvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADAvMvMDzDzDzDzvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvMDAvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADADADEvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADADEDADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADEDADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDAvMvMvMDADADADADADEDADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaagagagDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDFDFDFDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkttttttttDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDGDGDGDGDGDGDHDHDHDHDHDHDHDHDHDHDHDHEbtLtLtLtLtLtLtLtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM -aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvaDaDaDaDaDaDcUcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUaM -aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDcUcUcUaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwDwuuaDaDaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwDwaM -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafaa -aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvMvMDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvpvpvMvMDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvpvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLvMvMvMDLvMvMvMvMvMDLvMvMvMDLDLDLDLvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJvMvpvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMvMDLDLDLDLDLDLDLvMvMvMDLDLDLDLvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMDLDLDLDLDLDLDLDLDLvMvMDLDLDLDLvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa -aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJvMvMvMDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMDLDLDLDLDLDLDLDLDLvMvMDLDLDLDLvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvpvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafaa -aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafaa -aaafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafaa -aaafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafaa -aaafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafaa -aaafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDJDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafaa -aaafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDMDMDMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDKDKDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDMDMDMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafafafaa -aaafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvMDNDMDODMDPvMDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDNDMDODMDPvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpafafafafafafafvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMDLDLDLDLDLDLDLvMvMvMvMvMvMvMafafafafafafafafafafafafafafafafafafafafafaa -aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADAafafafafafDQDADADADQDADADADQDADADADQDADADADRDSDTDSDRDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADJDJDJDKDKDJDJDJDADQDADAvpDQvpvpvpDQvpvpvpDQvpvpvpDQvpvpvpDQvpvpvpDRDSDUDSDRvpvpvpDQvpvpvpDQvpvpvpDQafafafafafafafafafafafafafagafafafvpvpvpvpvpvpvpafafafafafafafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafafafafafafafafafafafafafafafaa -aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADAafafafafafafafafafafafafafafDADADADkDADADAafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDMDMDMDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDMDMDMDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafvMvMvMvMafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa -aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa -aaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDZDZDZDZDZDZDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababab -"} - ->>>>>>> da69090... Merge pull request #5632 from lbnesquik/Kates-Hammer-Fix diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 496932f07b..ed391bc815 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -1802,7 +1802,7 @@ /area/tether/surfacebase/mining_main/storage) "adU" = ( /obj/structure/table/rack, -/obj/item/weapon/pickaxe/hammer, +/obj/item/weapon/pickaxe, /obj/item/weapon/tool/wrench, /obj/item/weapon/tool/crowbar, /obj/item/weapon/shovel, From 7d6731f39ece7c666a2adc38210968f667395fe7 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Fri, 12 Oct 2018 06:40:17 +0100 Subject: [PATCH 49/68] shove this shit in procs --- .../living/simple_animal/simple_animal_vr.dm | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 38fb508050..b771001898 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -101,19 +101,9 @@ return ..() // If target is standing we might pounce and knock them down instead of attacking - if(target_mob.canmove && prob(vore_pounce_chance) && !issilicon(target_mob) && (world.time > vore_pounce_cooldown)) //pouncing is worth doing, we want to pounce and are not in cooldown. So attempt a pounce! - if(will_eat(target_mob) && vore_standing_too) //creatures that can eat you on the spot don't care how healthy you are and get an autohit - return PounceTarget() - - var/TargetHealthPercent = (target_mob.health/target_mob.maxHealth)*100 - if (TargetHealthPercent <= vore_pounce_maxhealth) //check they're weak enough to bother pouncing - if(prob(vore_pounce_successrate - (vore_pounce_falloff * TargetHealthPercent))) // pounce success! - return PounceTarget() - else // pounce misses! - target_mob.visible_message("\the [src] attempts to pounce \the [target_mob] but misses!!") - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while - return // no you don't get to attack as well, you missed your chance + var/pouncechance = CanPounceTarget() + if(pouncechance) + return PounceTarget(pouncechance) // We're not attempting a pounce, if they're down or we can eat standing, do it as long as they're edible. Otherwise, hit normally. if(will_eat(target_mob) && (!target_mob.canmove || vore_standing_too)) @@ -121,13 +111,33 @@ else return ..() -/mob/living/simple_animal/proc/PounceTarget() - target_mob.Weaken(5) - target_mob.visible_message("\the [src] pounces on \the [target_mob]!!") - if(will_eat(target_mob)) //if they're edible then eat them too +/mob/living/simple_animal/proc/CanPounceTarget() //returns either FALSE or a %chance of success + if(!target_mob.canmove || issilicon(target_mob) || world.time < vore_pounce_cooldown) //eliminate situations where pouncing CANNOT happen + return FALSE + if(!prob(vore_pounce_chance)) //mob doesn't want to pounce + return FALSE + if(will_eat(target_mob) && vore_standing_too) //100% chance of hitting people we can eat on the spot + return 100 + var/TargetHealthPercent = (target_mob.health/target_mob.maxHealth)*100 //now we start looking at the target itself + if (TargetHealthPercent > vore_pounce_maxhealth) //target is too healthy to pounce + return FALSE + else + return max(0,(vore_pounce_successrate - (vore_pounce_falloff * TargetHealthPercent))) + + +/mob/living/simple_animal/proc/PounceTarget(var/successrate = 100) + vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while + if(prob(successrate)) // pounce success! + target_mob.Weaken(5) + target_mob.visible_message("\the [src] pounces on \the [target_mob]!!") + else // pounce misses! + target_mob.visible_message("\the [src] attempts to pounce \the [target_mob] but misses!!") + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + + if(will_eat(target_mob) && (!target_mob.canmove || vore_standing_too)) //if they're edible then eat them too return EatTarget() else - return //just leave them on the ground + return //just leave them // Attempt to eat target // TODO - Review this. Could be some issues here From 95445d808d340cc123b9a0bc81152e2252e75c0b Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Fri, 12 Oct 2018 12:24:30 +0200 Subject: [PATCH 50/68] Reduce Flight cost --- .../living/carbon/human/species/station/traits_vr/positive.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 900ca7b867..44238cc16a 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -96,8 +96,8 @@ /datum/trait/winged_flight name = "Winged Flight" - desc = "Allows you to fly by using your wings." - cost = 2 //Some in game value. + desc = "Allows you to fly by using your wings. Don't forget to bring them!" + cost = 1 /datum/trait/winged_flight/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) From 941896a165866bca7959c53cd7cb9ac89e322da1 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Fri, 12 Oct 2018 12:34:30 +0200 Subject: [PATCH 51/68] Makes it so standard catgirls can appear. --- code/modules/mob/living/simple_animal/vore/catgirl.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/simple_animal/vore/catgirl.dm b/code/modules/mob/living/simple_animal/vore/catgirl.dm index 315ab0bc1b..e66e74219a 100644 --- a/code/modules/mob/living/simple_animal/vore/catgirl.dm +++ b/code/modules/mob/living/simple_animal/vore/catgirl.dm @@ -29,6 +29,7 @@ var/random_skin = 1 var/list/skins = list( + "catgirl", "catgirlnude", "catgirlbikini", "catgirlrednude", From 7bde126b8cdd9126b2e5937831faa9572b818be1 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Fri, 12 Oct 2018 15:49:27 +0200 Subject: [PATCH 52/68] Fixes weird typos. --- .../living/simple_animal/vore/shadekin/types.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm b/code/modules/mob/living/simple_animal/vore/shadekin/types.dm index d5bc1e5ced..6dcf7645c7 100644 --- a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm +++ b/code/modules/mob/living/simple_animal/vore/shadekin/types.dm @@ -68,7 +68,7 @@ slippery gullet of the creature. It's warm, and the air is thick. You can hear its body \ squelch and shift around you as you settle into its stomach! It's oddly calm, and very dark. \ The doughy flesh rolls across your form in gentle waves. The aches and pains across your form slowly begin to \ - diminish, your body is healing much faster than normal! You’re also soon soaked in harmless slime." + diminish, your body is healing much faster than normal! You're also soon soaked in harmless slime." player_msg = "You've chosen to generate your own energy rather than taking \ it from others. Most of the time, anyway. You don't have a need to steal energy from others, and gather it up \ @@ -108,8 +108,8 @@ stalker = TRUE vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet of the creature. \ It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \ - It’s relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \ - You can feel the doughy walls cling to you posessively... It’s almost like you could sink into them. \ + It's relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \ + You can feel the doughy walls cling to you posessively... It's almost like you could sink into them. \ There is also an ominous gurgling from somewhere nearby..." player_msg = "You're familiar with generating your own energy, but occasionally \ @@ -150,7 +150,7 @@ vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ - you out!! There doesn’t appear to be any actual danger here, harmless slime clings to you, but it’s getting \ + you out!! There doesn't appear to be any actual danger here, harmless slime clings to you, but it's getting \ harder and harder to move as those walls press in on you insistently!" player_msg = "Your kind rarely ventures into realspace. Being in any well-lit \ @@ -190,7 +190,7 @@ vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ - you out!! There doesn’t appear to be any actual danger here, harmless slime clings to you, but it’s getting \ + you out!! There doesn't appear to be any actual danger here, harmless slime clings to you, but it's getting \ harder and harder to move as those walls press in on you insistently!" player_msg = "Your kind rarely ventures into realspace. Being in any well-lit area is very taxing on you, but you \ @@ -248,8 +248,8 @@ desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude." icon_state = "rivyr" eye_desc = "" - vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mar’s gullet! \ - Gooey flesh and heat surrounds your form as you’re tucked away into the darkness of her stomach! Thick slimes cling \ + vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mar's gullet! \ + Gooey flesh and heat surrounds your form as you're tucked away into the darkness of her stomach! Thick slimes cling \ to you, but they seem to be harmless. The organ gently churns around you, clinging to your shape and forcing \ you to curl up a bit. You can feel her rub at you some through the layers of flesh and fluff, while aches \ and pains begin to fade away across your body." From f513ca75bbea8052329687d0bba53d8cc52b297e Mon Sep 17 00:00:00 2001 From: Screemonster Date: Fri, 12 Oct 2018 15:34:02 +0100 Subject: [PATCH 53/68] use the proper proc for this thing --- code/modules/mob/living/simple_animal/simple_animal_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index b771001898..dea5206448 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -118,7 +118,7 @@ return FALSE if(will_eat(target_mob) && vore_standing_too) //100% chance of hitting people we can eat on the spot return 100 - var/TargetHealthPercent = (target_mob.health/target_mob.maxHealth)*100 //now we start looking at the target itself + var/TargetHealthPercent = (target_mob.health/target_mob.getMaxHealth())*100 //now we start looking at the target itself if (TargetHealthPercent > vore_pounce_maxhealth) //target is too healthy to pounce return FALSE else From 5fe59a1f2a1a56a8b83ababdaf4fb36770105f94 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 13 Oct 2018 01:36:26 -0400 Subject: [PATCH 54/68] Critical maploader fix Definitely do not update the server without this change. And a gateway tweak thing because that was my original intent with this branch. --- code/modules/awaymissions/gateway.dm | 8 ++++---- code/modules/maps/tg/reader.dm | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 4f92884dfb..558dc668b0 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -39,17 +39,17 @@ wait = world.time + config.gateway_delay //+ thirty minutes default awaygate = locate(/obj/machinery/gateway/centeraway) . = ..() + density = 1 //VOREStation Add /obj/machinery/gateway/centerstation/update_icon() if(active) icon_state = "oncenter" return icon_state = "offcenter" - +/* VOREStation Removal - Doesn't do anything /obj/machinery/gateway/centerstation/New() density = 1 - - +*/ //VOREStation Removal End obj/machinery/gateway/centerstation/process() if(stat & (NOPOWER)) @@ -90,7 +90,7 @@ obj/machinery/gateway/centerstation/process() if(world.time < wait) user << "Error: Warpspace triangulation in progress. Estimated time to completion: [round(((wait - world.time) / 10) / 60)] minutes." return - if(!awaygate.calibrated && LAZYLEN(awaydestinations)) + if(!awaygate.calibrated && !LAZYLEN(awaydestinations)) //VOREStation Edit user << "Error: Destination gate uncalibrated. Gateway unsafe to use without far-end calibration update." return diff --git a/code/modules/maps/tg/reader.dm b/code/modules/maps/tg/reader.dm index ff66d4bdd2..30de8067dc 100644 --- a/code/modules/maps/tg/reader.dm +++ b/code/modules/maps/tg/reader.dm @@ -157,7 +157,7 @@ var/global/use_preloader = FALSE ++turfsSkipped #endif CHECK_TICK - maxx = max(maxx, ++xcrd) + maxx = max(maxx, xcrd++) key_list[++key_list.len] = line_keys // Rotate the list according to orientation From af33eff3f52ae24f125b6064cfb461f34c5e0ac9 Mon Sep 17 00:00:00 2001 From: Very-Soft Date: Sat, 13 Oct 2018 02:51:29 -0400 Subject: [PATCH 55/68] updates admin upload areas to not always be powered --- maps/tether/submaps/admin_use/fun.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maps/tether/submaps/admin_use/fun.dm b/maps/tether/submaps/admin_use/fun.dm index d16b00899c..9fc3c5490a 100644 --- a/maps/tether/submaps/admin_use/fun.dm +++ b/maps/tether/submaps/admin_use/fun.dm @@ -14,12 +14,19 @@ name = "\improper Unknown Area AU" //Nobody will know what this means if they see it, anyway. requires_power = 1 dynamic_lighting = 1 + power_equip = FALSE + power_environ = FALSE + power_light = FALSE /area/submap/admin_upload/pow name = "\improper Unknown Area AU+P" requires_power = 0 /area/submap/admin_upload/lit name = "\improper Unknown Area AU+L" + requires_power = 1 dynamic_lighting = 0 + power_equip = FALSE + power_environ = FALSE + power_light = FALSE /area/submap/admin_upload/powlit name = "\improper Unknown Area AU+PL" requires_power = 0 From 54a24d244ff7e2aa2fb26cefcfd16462de2eaf30 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 13 Oct 2018 14:13:19 -0700 Subject: [PATCH 56/68] Merge pull request #5657 from lbnesquik/Kates-Cap-Fix Move surgery caps into their own selection. --- .../preference_setup/loadout/loadout_head.dm | 28 +++++++------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 80d596bcdc..f3ce3eae43 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -353,25 +353,17 @@ sols[initial(sol.name)] = sol gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sols))*/ // Vorestation removal. -/datum/gear/head/surgical/black - display_name = "surgical cap, black" - path = /obj/item/clothing/head/surgery/black +/datum/gear/head/surgical + display_name = "surgical cap selection" + path = /obj/item/clothing/head/surgery -/datum/gear/head/surgical/blue - display_name = "surgical cap, blue" - path = /obj/item/clothing/head/surgery/blue - -/datum/gear/head/surgical/green - display_name = "surgical cap, green" - path = /obj/item/clothing/head/surgery/green - -/datum/gear/head/surgical/navyblue - display_name = "surgical cap, navy blue" - path = /obj/item/clothing/head/surgery/navyblue - -/datum/gear/head/surgical/purple - display_name = "surgical cap, purple" - path = /obj/item/clothing/head/surgery/purple +/datum/gear/head/surgical/New() + ..() + var/list/caps = list() + for(var/surgery in typesof(/obj/item/clothing/head/surgery)) + var/obj/item/clothing/head/surgery/cap_type = caps + caps[initial(cap_type.name)] = cap_type + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(caps)) /datum/gear/head/circuitry display_name = "headwear, circuitry (empty)" From dde25a46f0a43253545e106ca40c35dd33f17f6c Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 13 Oct 2018 14:13:45 -0700 Subject: [PATCH 58/68] Merge pull request #5648 from king5327/polarissciconfix Prevents people from HREF exploiting around the R&D console lock. --- code/modules/research/rdconsole.dm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) mode change 100644 => 100755 code/modules/research/rdconsole.dm diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm old mode 100644 new mode 100755 index 6872ffba6d..3e8732c423 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -121,7 +121,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, //Loading a disk into it. if(istype(D, /obj/item/weapon/disk)) if(t_disk || d_disk) - user << "A disk is already loaded into the machine." + to_chat(user, "A disk is already loaded into the machine.") return if(istype(D, /obj/item/weapon/disk/tech_disk)) @@ -129,11 +129,11 @@ won't update every console in existence) but it's more of a hassle to do. Also, else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D else - user << "Machine cannot accept disks in that format." + to_chat(user, "Machine cannot accept disks in that format.") return user.drop_item() D.loc = src - user << "You add \the [D] to the machine." + to_chat(user, "You add \the [D] to the machine.") else //The construction/deconstruction of the console code. ..() @@ -145,7 +145,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(!emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 - user << "You you disable the security protocols." + to_chat(user, "You you disable the security protocols.") return 1 /obj/machinery/computer/rdconsole/Topic(href, href_list) @@ -155,12 +155,16 @@ won't update every console in existence) but it's more of a hassle to do. Also, add_fingerprint(usr) usr.set_machine(src) + if((screen < 1 || (screen == 1.6 && href_list["menu"] != "1.0")) && (!allowed(usr) && !emagged)) //Stops people from HREF exploiting out of the lock screen, but allow it if they have the access. + to_chat(usr, "Unauthorized Access") + return + if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code. var/temp_screen = text2num(href_list["menu"]) if(temp_screen <= 1.1 || (3 <= temp_screen && 4.9 >= temp_screen) || allowed(usr) || emagged) //Unless you are making something, you need access. screen = temp_screen else - usr << "Unauthorized Access." + to_chat(usr, "Unauthorized Access.") else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. screen = 0.0 @@ -211,7 +215,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer. if(linked_destroy) if(linked_destroy.busy) - usr << "The destructive analyzer is busy at the moment." + to_chat(usr, "The destructive analyzer is busy at the moment.") else if(linked_destroy.loaded_item) linked_destroy.loaded_item.loc = linked_destroy.loc @@ -222,7 +226,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder. if(linked_destroy) if(linked_destroy.busy) - usr << "The destructive analyzer is busy at the moment." + to_chat(usr, "The destructive analyzer is busy at the moment.") else if(alert("Proceeding will destroy loaded item. Continue?", "Destructive analyzer confirmation", "Yes", "No") == "No" || !linked_destroy) return @@ -234,7 +238,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(linked_destroy) linked_destroy.busy = 0 if(!linked_destroy.loaded_item) - usr <<"The destructive analyzer appears to be empty." + to_chat(usr, "The destructive analyzer appears to be empty.") screen = 1.0 return @@ -270,12 +274,12 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(allowed(usr)) screen = text2num(href_list["lock"]) else - usr << "Unauthorized Access." + to_chat(usr, "Unauthorized Access.") else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected. screen = 0.0 if(!sync) - usr << "You must connect to the network first." + to_chat(usr, "You must connect to the network first.") else griefProtection() //Putting this here because I dont trust the sync process spawn(30) From a74ec39eeda9b5ce297b45684864ecf613f63fb5 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 13 Oct 2018 14:15:04 -0700 Subject: [PATCH 60/68] Merge pull request #5655 from lbnesquik/Kates-Wax-Fix Wax can stacxk --- code/modules/hydroponics/beekeeping/beehive.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index 7f95ac306c..e3da347908 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -179,7 +179,7 @@ qdel(H) spawn(50) new /obj/item/honey_frame(loc) - new /obj/item/stack/wax(loc) + new /obj/item/stack/material/wax(loc) honey += processing processing = 0 icon_state = "centrifuge" @@ -234,14 +234,14 @@ qdel(src) return -/obj/item/stack/wax +/obj/item/stack/material/wax name = "wax" singular_name = "wax piece" desc = "Soft substance produced by bees. Used to make candles." icon = 'icons/obj/beekeeping.dmi' icon_state = "wax" -/obj/item/stack/wax/New() +/obj/item/stack/material/wax/New() ..() recipes = wax_recipes From eb1bbac0427bc869cab9f00096ff1963dcf003f4 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 13 Oct 2018 14:16:51 -0700 Subject: [PATCH 62/68] Merge pull request #5656 from lbnesquik/Kates-AshTray-Fix Fix plastic ashtrays only holding one butt. Now they hold 4 butts. --- code/game/objects/items/weapons/material/ashtray.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/material/ashtray.dm b/code/game/objects/items/weapons/material/ashtray.dm index d5e7cd67bb..8becb48010 100644 --- a/code/game/objects/items/weapons/material/ashtray.dm +++ b/code/game/objects/items/weapons/material/ashtray.dm @@ -14,7 +14,7 @@ var/global/list/ashtray_cache = list() if(!material) qdel(src) return - max_butts = round(material.hardness/10) //This is arbitrary but whatever. + max_butts = round(material.hardness/5) //This is arbitrary but whatever. src.pixel_y = rand(-5, 5) src.pixel_x = rand(-6, 6) update_icon() From 4311c2aa2080f09c3fb8fb3b6a81f7a67642c37d Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 13 Oct 2018 17:43:58 -0400 Subject: [PATCH 64/68] Update Travis so it does faster Sanic --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2559dcab32..c9a8d196fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ sudo: false env: global: - BYOND_MAJOR="512" - - BYOND_MINOR="1412" + - BYOND_MINOR="1453" - MACRO_COUNT=4 matrix: - TEST_DEFINE="MAP_TEST" TEST_FILE="code/_map_tests.dm" RUN="0" From 51a493427d72d4509c0452b20b467025fd65b5a4 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sat, 13 Oct 2018 16:57:42 -0500 Subject: [PATCH 65/68] Graves (#5622) * Adds support for closets storing closets, and graves * More Grave Things --- .../structures/crates_lockers/closets.dm | 131 +++++++++------ .../crates_lockers/closets/coffin.dm | 152 ++++++++++++++++++ .../closets/secure/guncabinet.dm | 4 +- .../closets/secure/secure_closets.dm | 24 +-- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/recycling/sortingmachinery.dm | 4 +- html/changelogs/Anewbe - Graves.yml | 36 +++++ icons/obj/closet.dmi | Bin 83325 -> 82306 bytes 8 files changed, 290 insertions(+), 63 deletions(-) create mode 100644 html/changelogs/Anewbe - Graves.yml diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 18f6c88aa3..4a392c0bfe 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -9,18 +9,26 @@ var/icon_closed = "closed" var/icon_opened = "open" var/opened = 0 - var/welded = 0 + var/sealed = 0 + var/seal_tool = /obj/item/weapon/weldingtool //Tool used to seal the closet, defaults to welder var/wall_mounted = 0 //never solid (You can always pass over it) var/health = 100 + var/breakout = 0 //if someone is currently breaking out. mutex + var/breakout_time = 2 //2 minutes by default + var/breakout_sound = 'sound/effects/grillehit.ogg' //Sound that plays while breaking out + var/storage_capacity = 2 * MOB_MEDIUM //This is so that someone can't pack hundreds of items in a locker/crate //then open it in a populated area to crash clients. + var/storage_cost = 40 //How much space this closet takes up if it's stuffed in another closet + var/open_sound = 'sound/machines/click.ogg' var/close_sound = 'sound/machines/click.ogg' - var/store_misc = 1 - var/store_items = 1 - var/store_mobs = 1 + var/store_misc = 1 //Chameleon item check + var/store_items = 1 //Will the closet store items? + var/store_mobs = 1 //Will the closet store mobs? + var/max_closets = 0 //Number of other closets allowed on tile before it won't close. var/list/starts_with @@ -42,7 +50,7 @@ content_size += Ceiling(I.w_class/2) if(content_size > storage_capacity-5) storage_capacity = content_size + 5 - + update_icon() /obj/structure/closet/examine(mob/user) if(..(user, 1) && !opened) @@ -51,29 +59,33 @@ if(!I.anchored) content_size += Ceiling(I.w_class/2) if(!content_size) - user << "It is empty." + to_chat(user, "It is empty.") else if(storage_capacity > content_size*4) - user << "It is barely filled." + to_chat(user, "It is barely filled.") else if(storage_capacity > content_size*2) - user << "It is less than half full." + to_chat(user, "It is less than half full.") else if(storage_capacity > content_size) - user << "There is still some free space." + to_chat(user, "There is still some free space.") else - user << "It is full." + to_chat(user, "It is full.") /obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0 || wall_mounted)) return 1 return (!density) /obj/structure/closet/proc/can_open() - if(src.welded) + if(src.sealed) return 0 return 1 /obj/structure/closet/proc/can_close() + var/closet_count = 0 for(var/obj/structure/closet/closet in get_turf(src)) if(closet != src) - return 0 + if(!closet.anchored) + closet_count ++ + if(closet_count > max_closets) + return 0 return 1 /obj/structure/closet/proc/dump_contents() @@ -102,7 +114,7 @@ src.icon_state = src.icon_opened src.opened = 1 playsound(src.loc, open_sound, 15, 1, -3) - density = 0 + density = !density return 1 /obj/structure/closet/proc/close() @@ -119,12 +131,14 @@ stored_units += store_items(stored_units) if(store_mobs) stored_units += store_mobs(stored_units) + if(max_closets) + stored_units += store_closets(stored_units) src.icon_state = src.icon_closed src.opened = 0 playsound(src.loc, close_sound, 15, 1, -3) - density = 1 + density = !density return 1 //Cham Projector Exception @@ -162,9 +176,25 @@ added_units += M.mob_size return added_units +/obj/structure/closet/proc/store_closets(var/stored_units) + var/added_units = 0 + for(var/obj/structure/closet/C in src.loc) + if(C == src) //Don't store ourself + continue + if(C.anchored) //Don't worry about anchored things on the same tile + continue + if(C.max_closets) //Prevents recursive storage + continue + if(stored_units + added_units + storage_cost > storage_capacity) + break + C.forceMove(src) + added_units += storage_cost + return added_units + + /obj/structure/closet/proc/toggle(mob/user as mob) if(!(src.opened ? src.close() : src.open())) - user << "It won't budge!" + to_chat(user, "It won't budge!") return update_icon() @@ -222,7 +252,7 @@ if(!WT.isOn()) return else - user << "You need more welding fuel to complete this task." + to_chat(user, "You need more welding fuel to complete this task.") return playsound(src, WT.usesound, 50) new /obj/item/stack/material/steel(src.loc) @@ -248,21 +278,25 @@ W.forceMove(src.loc) else if(istype(W, /obj/item/weapon/packageWrap)) return - else if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(!WT.remove_fuel(0,user)) - if(!WT.isOn()) - return - else - user << "You need more welding fuel to complete this task." - return - playsound(src, WT.usesound, 50) - 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 if(seal_tool) + if(istype(W, seal_tool)) + var/obj/item/weapon/S = W + if(istype(S, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = S + if(!WT.remove_fuel(0,user)) + if(!WT.isOn()) + return + else + to_chat(user, "You need more welding fuel to complete this task.") + return + if(do_after(user, 20 * S.toolspeed)) + playsound(src, S.usesound, 50) + src.sealed = !src.sealed + src.update_icon() + for(var/mob/M in viewers(src)) + M.show_message("[src] has been [sealed?"sealed":"unsealed"] by [user.name].", 3) else if(W.is_wrench()) - if(welded) + if(sealed) if(anchored) user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") else @@ -270,7 +304,7 @@ playsound(src, W.usesound, 50) if(do_after(user, 20 * W.toolspeed)) if(!src) return - user << "You [anchored? "un" : ""]secured \the [src]!" + to_chat(user, "You [anchored? "un" : ""]secured \the [src]!") anchored = !anchored else src.attack_hand(user) @@ -306,7 +340,7 @@ return if(!src.open()) - user << "It won't budge!" + to_chat(user, "It won't budge!") /obj/structure/closet/attack_hand(mob/user as mob) src.add_fingerprint(user) @@ -316,7 +350,7 @@ /obj/structure/closet/attack_self_tk(mob/user as mob) src.add_fingerprint(user) if(!src.toggle()) - usr << "It won't budge!" + to_chat(usr, "It won't budge!") /obj/structure/closet/attack_ghost(mob/ghost) if(ghost.client && ghost.client.inquisitive_ghost) @@ -336,14 +370,14 @@ src.add_fingerprint(usr) src.toggle(usr) else - usr << "This mob type can't use this verb." + to_chat(usr, "This mob type can't use this verb.") -/obj/structure/closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) +/obj/structure/closet/update_icon()//Putting the sealed stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) overlays.Cut() if(!opened) icon_state = icon_closed - if(welded) - overlays += "welded" + if(sealed) + overlays += "sealed" else icon_state = icon_opened @@ -359,20 +393,19 @@ /obj/structure/closet/proc/req_breakout() if(opened) return 0 //Door's open... wait, why are you in it's contents then? - if(!welded) - return 0 //closed but not welded... + if(!sealed) + return 0 //closed but not sealed... return 1 /obj/structure/closet/proc/mob_breakout(var/mob/living/escapee) - var/breakout_time = 2 //2 minutes by default if(breakout || !req_breakout()) return escapee.setClickCooldown(100) - //okay, so the closet is either welded or locked... resist!!! - escapee << "You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)" + //okay, so the closet is either sealed or locked... resist!!! + to_chat(escapee, "You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)") visible_message("\The [src] begins to shake violently!") @@ -389,20 +422,20 @@ breakout = 0 return - playsound(src.loc, 'sound/effects/grillehit.ogg', 100, 1) + playsound(src.loc, breakout_sound, 100, 1) animate_shake() add_fingerprint(escapee) //Well then break it! breakout = 0 - escapee << "You successfully break out!" + to_chat(escapee, "You successfully break out!") visible_message("\The [escapee] successfully broke out of \the [src]!") - playsound(src.loc, 'sound/effects/grillehit.ogg', 100, 1) + playsound(src.loc, breakout_sound, 100, 1) break_open() animate_shake() /obj/structure/closet/proc/break_open() - welded = 0 + sealed = 0 update_icon() //Do this to prevent contents from being opened into nullspace (read: bluespace) if(istype(loc, /obj/structure/bigDelivery)) @@ -421,3 +454,9 @@ /obj/structure/closet/AllowDrop() return TRUE + +/obj/structure/closet/return_air_for_internal_lifeform(var/mob/living/L) + if(src.loc) + if(istype(src.loc, /obj/structure/closet)) + return (loc.return_air_for_internal_lifeform(L)) + return return_air() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 67de5d38b9..6d5df80ed8 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -4,9 +4,161 @@ icon_state = "coffin" icon_closed = "coffin" icon_opened = "coffin_open" + seal_tool = /obj/item/weapon/tool/screwdriver + breakout_sound = 'sound/weapons/tablehit1.ogg' /obj/structure/closet/coffin/update_icon() if(!opened) icon_state = icon_closed else icon_state = icon_opened + +/* Graves */ +/obj/structure/closet/grave + name = "grave" + desc = "Dirt." + icon_state = "grave" + icon_closed = "grave" + icon_opened = "grave_open" + seal_tool = null + breakout_sound = 'sound/weapons/thudswoosh.ogg' + anchored = 1 + max_closets = 1 + opened = 1 + +/obj/structure/closet/grave/attack_hand(mob/user as mob) + if(opened) + visible_message("[user] starts to climb into \the [src.name].", \ + "You start to lower yourself into \the [src.name].") + if(do_after(user, 50)) + user.forceMove(src.loc) + visible_message("[user] climbs into \the [src.name].", \ + "You climb into \the [src.name].") + else + visible_message("[user] decides not to climb into \the [src.name].", \ + "You stop climbing into \the [src.name].") + return + +/obj/structure/closet/grave/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + if(opened && ismob(mover)) + var/mob/M = mover + add_fingerprint(M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.m_intent == "walk") + to_chat(H, "You stop at the edge of \the [src.name].") + return FALSE + else + to_chat(H, "You fall into \the [src.name]!") + fall_in(H) + return TRUE + if(isrobot(M)) + var/mob/living/silicon/robot/R = M + if(R.a_intent == I_HELP) + to_chat(R, "You stop at the edge of \the [src.name].") + return FALSE + else + to_chat(R, "You enter \the [src.name].") + return TRUE + return TRUE //Everything else can move over the graves + +/obj/structure/closet/grave/proc/fall_in(mob/living/L) //Only called on humans for now, but still + L.Weaken(5) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + var/limb_damage = rand(5,25) + H.adjustBruteLoss(limb_damage) + +/obj/structure/closet/grave/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(src.opened) + if(istype(W, /obj/item/weapon/shovel)) + user.visible_message("[user] piles dirt into \the [src.name].", \ + "You start to pile dirt into \the [src.name].", \ + "You hear dirt being moved.") + if(do_after(user, 40 * W.toolspeed)) + user.visible_message("[user] pats down the dirt on top of \the [src.name].", \ + "You finish filling in \the [src.name].") + close() + return + else + user.visible_message("[user] stops filling in \the [src.name].", \ + "You change your mind and stop filling in \the [src.name].") + return + if(istype(W, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = W + src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet + return 0 + if(istype(W,/obj/item/tk_grab)) + return 0 + if(istype(W, /obj/item/weapon/storage/laundry_basket) && W.contents.len) + var/obj/item/weapon/storage/laundry_basket/LB = W + var/turf/T = get_turf(src) + for(var/obj/item/I in LB.contents) + LB.remove_from_storage(I, T) + user.visible_message("[user] empties \the [LB] into \the [src].", \ + "You empty \the [LB] into \the [src].", \ + "You hear rustling of clothes.") + return + if(isrobot(user)) + return + if(W.loc != user) // This should stop mounted modules ending up outside the module. + return + usr.drop_item() + if(W) + W.forceMove(src.loc) + else + if(istype(W, /obj/item/weapon/shovel)) + if(user.a_intent == I_HURT) // Hurt intent means you're trying to kill someone, or just get rid of the grave + user.visible_message("[user] begins to smoothe out the dirt of \the [src.name].", \ + "You start to smoothe out the dirt of \the [src.name].", \ + "You hear dirt being moved.") + if(do_after(user, 40 * W.toolspeed)) + user.visible_message("[user] finishes smoothing out \the [src.name].", \ + "You finish smoothing out \the [src.name].") + if(LAZYLEN(contents)) + alpha = 40 // If we've got stuff inside, like maybe a person, just make it hard to see us + else + qdel(src) // Else, go away + return + else + user.visible_message("[user] stops concealing \the [src.name].", \ + "You stop concealing \the [src.name].") + return + else + user.visible_message("[user] begins to unearth \the [src.name].", \ + "You start to unearth \the [src.name].", \ + "You hear dirt being moved.") + if(do_after(user, 40 * W.toolspeed)) + user.visible_message("[user] reaches the bottom of \the [src.name].", \ + "You finish digging out \the [src.name].") + break_open() + return + else + user.visible_message("[user] stops digging out \the [src.name].", \ + "You stop digging out \the [src.name].") + return + return + +/obj/structure/closet/grave/close() + ..() + if(!opened) + sealed = TRUE + +/obj/structure/closet/grave/open() + .=..() + alpha = 255 // Needed because of grave hiding + +/obj/structure/closet/grave/bullet_act(var/obj/item/projectile/P) + return PROJECTILE_CONTINUE // It's a hole in the ground, doesn't usually stop or even care about bullets + +/obj/structure/closet/grave/return_air_for_internal_lifeform(var/mob/living/L) + var/gasid = "carbon_dioxide" + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.species && H.species.exhale_type) + gasid = H.species.exhale_type + var/datum/gas_mixture/grave_breath = new() + var/datum/gas_mixture/above_air = return_air() + grave_breath.adjust_gas(gasid, BREATH_MOLES) + grave_breath.temperature = (above_air.temperature) - 30 //Underground + return grave_breath \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm index c606151550..62497919fc 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -43,8 +43,8 @@ overlays += icon(src.icon, "door") - if(welded) - overlays += icon(src.icon,"welded") + if(sealed) + overlays += icon(src.icon,"sealed") if(broken) overlays += icon(src.icon,"broken") 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 994fe0eca1..af07ceb9e5 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 @@ -46,23 +46,23 @@ /obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob) if(src.opened) - user << "Close the locker first." + to_chat(user, "Close the locker first.") return if(src.broken) - user << "The locker appears to be broken." + to_chat(user, "The locker appears to be broken.") return if(user.loc == src) - user << "You can't reach the lock from inside." + to_chat(user, "You can't reach the lock from inside.") return if(src.allowed(user)) src.locked = !src.locked playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) - O << "The locker has been [locked ? null : "un"]locked by [user]." + to_chat(O, "The locker has been [locked ? null : "un"]locked by [user].") update_icon() else - user << "Access Denied" + to_chat(user, "Access Denied") /obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob) if(src.opened) @@ -73,7 +73,7 @@ if(src.large) src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet else - user << "The locker is too small to stuff [G.affecting] into!" + to_chat(user, "The locker is too small to stuff [G.affecting] into!") if(isrobot(user)) return if(W.loc != user) // This should stop mounted modules ending up outside the module. @@ -89,14 +89,14 @@ playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) else if(W.is_wrench()) - if(welded) + if(sealed) if(anchored) user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") else user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.") if(do_after(user, 20 * W.toolspeed)) if(!src) return - user << "You [anchored? "un" : ""]secured \the [src]!" + to_chat(user, "You [anchored? "un" : ""]secured \the [src]!") anchored = !anchored return else if(istype(W,/obj/item/weapon/packageWrap) || istype(W,/obj/item/weapon/weldingtool)) @@ -143,9 +143,9 @@ src.add_fingerprint(usr) src.togglelock(usr) else - usr << "This mob type can't use this verb." + to_chat(usr, "This mob type can't use this verb.") -/obj/structure/closet/secure_closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) +/obj/structure/closet/secure_closet/update_icon()//Putting the sealed stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) overlays.Cut() if(!opened) @@ -155,8 +155,8 @@ icon_state = icon_locked else icon_state = icon_closed - if(welded) - overlays += "welded" + if(sealed) + overlays += "sealed" else icon_state = icon_opened diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 6c1fdd2206..71a523c7d0 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -393,7 +393,7 @@ //Resisting out of closets if(istype(loc,/obj/structure/closet)) var/obj/structure/closet/C = loc - if(C.welded) + if(C.sealed) handle_resist() else C.open() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 64f5b923ab..59b690f31a 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -284,7 +284,7 @@ if (src.amount > 3 && !O.opened) var/obj/structure/bigDelivery/P = new /obj/structure/bigDelivery(get_turf(O.loc)) P.wrapped = O - O.welded = 1 + O.sealed = 1 O.loc = P src.amount -= 3 user.visible_message("\The [user] wraps \a [target] with \a [src].",\ @@ -311,7 +311,7 @@ wrapped.forceMove(get_turf(src)) if(istype(wrapped, /obj/structure/closet)) var/obj/structure/closet/O = wrapped - O.welded = 0 + O.sealed = 0 wrapped = null var/turf/T = get_turf(src) for(var/atom/movable/AM in contents) diff --git a/html/changelogs/Anewbe - Graves.yml b/html/changelogs/Anewbe - Graves.yml new file mode 100644 index 0000000000..fd7b71a680 --- /dev/null +++ b/html/changelogs/Anewbe - Graves.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Graves are now a thing in the code, will need some testing and probably more work before they get more common." \ No newline at end of file diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index 5fd95e85d722777a379ea24bb97fbfa60a8a6023..80fb1712be96e51941884d95991aea4d44f55458 100644 GIT binary patch literal 82306 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

upx){jP>CiZrJpq4S62HSyb#C{4i6^44L0+M5 zdYOQl%6O26nvi|DNt+8BrAt3oBeb=^`y2g(&g4J!#3M4;GR33KhqH^^ae>BSe_z_Jy2?U?dnTxtMhJ-fQpM&0!Il|6w%M zi-A`&BB4Ydk+57R!vOXVdu5eiPG}Il47gj8u@R`u>#WoYKwEW{ zwX^lb8nblCg6kK&b!(Ob$}UqzlbXHP4zTTC?5l~r*ns7D9(Hcbbne5~jb$X%q+;#@ P;Lk%9&HF`4mVy5d+VdrR literal 83325 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 _M!h5@H9U~j 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 z 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 From 8243f49aab405fb74c462383da0867167c0be813 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 13 Oct 2018 18:01:01 -0400 Subject: [PATCH 67/68] Add base turfs to a few areas So you can't blow holes into space from the ground. --- maps/tether/submaps/_tether_submaps.dm | 1 + maps/tether/submaps/beach/_beach.dm | 1 + maps/tether/tether_areas2.dm | 2 ++ 3 files changed, 4 insertions(+) diff --git a/maps/tether/submaps/_tether_submaps.dm b/maps/tether/submaps/_tether_submaps.dm index 18be57a76f..8e787a5896 100644 --- a/maps/tether/submaps/_tether_submaps.dm +++ b/maps/tether/submaps/_tether_submaps.dm @@ -36,6 +36,7 @@ /datum/map_z_level/tether_lateload/underdark name = "Underdark" flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER + base_turf = /turf/simulated/mineral/floor/virgo3b /datum/map_template/tether_lateload/tether_underdark/on_map_loaded(z) . = ..() diff --git a/maps/tether/submaps/beach/_beach.dm b/maps/tether/submaps/beach/_beach.dm index e58e678cc5..552a40b23a 100644 --- a/maps/tether/submaps/beach/_beach.dm +++ b/maps/tether/submaps/beach/_beach.dm @@ -189,6 +189,7 @@ /area/tether_away/cave flags = RAD_SHIELDED ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg') + base_turf = /turf/simulated/mineral/floor/ignore_mapgen/cave /area/tether_away/cave/explored/normal name = "\improper Away Mission - Virgo 4 Cave (E)" diff --git a/maps/tether/tether_areas2.dm b/maps/tether/tether_areas2.dm index 659518148d..f102bc216b 100644 --- a/maps/tether/tether_areas2.dm +++ b/maps/tether/tether_areas2.dm @@ -122,8 +122,10 @@ // Mining Underdark /area/mine/unexplored/underdark name = "\improper Mining Underdark" + base_turf = /turf/simulated/mineral/floor/virgo3b /area/mine/explored/underdark name = "\improper Mining Underdark" + base_turf = /turf/simulated/mineral/floor/virgo3b // Mining outpost areas /area/outpost/mining_main/passage From e6bf904252e2d6ff891a9b7cd870d42b56b2db2c Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 13 Oct 2018 19:20:13 -0400 Subject: [PATCH 68/68] VS edit --- code/game/objects/structures/crates_lockers/closets/egg_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets/egg_vr.dm b/code/game/objects/structures/crates_lockers/closets/egg_vr.dm index b47a49c4b5..1a1bd40e2f 100644 --- a/code/game/objects/structures/crates_lockers/closets/egg_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/egg_vr.dm @@ -10,7 +10,7 @@ open_sound = 'sound/vore/schlorp.ogg' close_sound = 'sound/vore/schlorp.ogg' opened = 0 - welded = 0 //Don't touch this. + sealed = 0 //Don't touch this. health = 100 /obj/structure/closet/secure_closet/egg/attackby(obj/item/weapon/W, mob/user as mob) //This also prevents crew from welding the eggs and making them unable to be opened.

K}S>XqP@YHaL&yD=RH6s;#Xp8a{$7 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 JnyUG|{{x58#ee_+ From 5769cf73af9462128edaded169b436191d65c6ed Mon Sep 17 00:00:00 2001 From: ArgobargSoup Date: Mon, 1 Oct 2018 20:03:31 -0700 Subject: [PATCH 02/68] Add buggo abdomens to tail list --- .../vore/appearance/sprite_accessories_vr.dm | 256 ++++++++++++++++++ 1 file changed, 256 insertions(+) diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index ed43a5ff29..e786751e5d 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -1229,3 +1229,259 @@ icon_state = "zenghu_taj" //Taurs moved to a separate file due to extra code around them + +//Buggo Abdomens! + +/datum/sprite_accessory/tail/buggo + name = "Bug abdomen, colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobee + name = "Bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + +/datum/sprite_accessory/tail/buggobeefull + name = "Bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + +/datum/sprite_accessory/tail/buggounder + name = "Bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + +/datum/sprite_accessory/tail/buggofirefly + name = "Bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + +/datum/sprite_accessory/tail/buggofat + name = "Fat bug abdomen, colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggofatbee + name = "Fat bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggofatbeefull + name = "Fat bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggofatunder + name = "Fat bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofatfirefly + name = "Fat bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_markings" + +/datum/sprite_accessory/tail/buggowag + name = "Bug abdomen, colorable, vwag change" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobeewag + name = "Bug abdomen, bee top, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + extra_overlay_w = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggobeefullwag + name = "Bug abdomen, bee full, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + extra_overlay_w = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggounderwag + name = "Bug abdomen, underside, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + extra_overlay_w = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofireflywag + name = "Bug abdomen, firefly, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + extra_overlay_w = "buggofatfirefly_markings" + +//Vass buggo variants! + +/datum/sprite_accessory/tail/buggovass + name = "Bug abdomen, vass, colorable" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbee + name = "Bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefull + name = "Bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunder + name = "Bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfirefly + name = "Bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovassfat + name = "Fat bug abdomen, vass, colorable" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassfatbee + name = "Fat bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatbeefull + name = "Fat bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatunder + name = "Fat bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatfirefly + name = "Fat bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovasswag + name = "Bug abdomen, vass, colorable, vwag change" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbeewag + name = "Bug abdomen, bee top, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + extra_overlay_w = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefullwag + name = "Bug abdomen, bee full, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + extra_overlay_w = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunderwag + name = "Bug abdomen, underside, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + extra_overlay_w = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfireflywag + name = "Bug abdomen, firefly, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + extra_overlay_w = "buggofatfirefly_vass_markings" From fafd85957fe8f3cbe9cb52ecf45e9e030c8031aa Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 5 Oct 2018 22:16:30 -0700 Subject: [PATCH 03/68] Minor issues fix. --- code/__defines/misc.dm | 1 + code/game/machinery/camera/camera.dm | 2 +- .../items/weapons/tools/weldingtool.dm | 615 ++++++++++++++++++ 3 files changed, 617 insertions(+), 1 deletion(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index c44df79802..d8c4c69e0a 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -149,6 +149,7 @@ #define MAT_GLASS "glass" #define MAT_SILVER "silver" #define MAT_GOLD "gold" +#define MAT_URANIUM "uranium" //Did it #define MAT_TITANIUM "titanium" #define MAT_PHORON "phoron" #define MAT_DIAMOND "diamond" diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 4d061899e8..20f5a617cf 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -395,7 +395,7 @@ return 0 // Do after stuff here - user << "You start to weld the [src].." + user << "You start to weld [src].." playsound(src.loc, WT.usesound, 50, 1) WT.eyecheck(user) busy = 1 diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 3a09d6611a..b62bc2013c 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD #define WELDER_FUEL_BURN_INTERVAL 13 /* * Welding Tool @@ -610,3 +611,617 @@ toolspeed = 0.5 #undef WELDER_FUEL_BURN_INTERVAL +======= + +#define WELDER_FUEL_BURN_INTERVAL 13 +/* + * Welding Tool + */ +/obj/item/weapon/weldingtool + name = "\improper welding tool" + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + flags = CONDUCT + slot_flags = SLOT_BELT + + //Amount of OUCH when it's thrown + force = 3.0 + throwforce = 5.0 + throw_speed = 1 + throw_range = 5 + w_class = ITEMSIZE_SMALL + + //Cost to make in the autolathe + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) + + //R&D tech level + origin_tech = list(TECH_ENGINEERING = 1) + + //Welding tool specific stuff + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + + var/acti_sound = 'sound/items/welderactivate.ogg' + var/deac_sound = 'sound/items/welderdeactivate.ogg' + usesound = 'sound/items/Welder2.ogg' + var/change_icons = TRUE + var/flame_intensity = 2 //how powerful the emitted light is when used. + var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. + var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. + var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. + var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. + toolspeed = 1 + +/obj/item/weapon/weldingtool/New() +// var/random_fuel = min(rand(10,20),max_fuel) + var/datum/reagents/R = new/datum/reagents(max_fuel) + reagents = R + R.my_atom = src + R.add_reagent("fuel", max_fuel) + update_icon() + if(always_process) + processing_objects |= src + ..() + +/obj/item/weapon/weldingtool/Destroy() + if(welding || always_process) + processing_objects -= src + return ..() + +/obj/item/weapon/weldingtool/examine(mob/user) + if(..(user, 0)) + if(max_fuel) + to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) + +/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) + if(ishuman(A) && user.a_intent == I_HELP) + var/mob/living/carbon/human/H = A + var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] + + if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) + return ..() + + if(!welding) + to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") + return 1 + + if(S.robo_repair(15, BRUTE, "some dents", src, user)) + remove_fuel(1, user) + return 1 + + return ..() + +/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) + if(istype(W,/obj/item/weapon/tool/screwdriver)) + if(welding) + to_chat(user, "Stop welding first!") + return + status = !status + if(status) + to_chat(user, "You secure the welder.") + else + to_chat(user, "The welder can now be attached and modified.") + src.add_fingerprint(user) + return + + if((!status) && (istype(W,/obj/item/stack/rods))) + var/obj/item/stack/rods/R = W + R.use(1) + var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) + src.loc = F + F.weldtool = src + if (user.client) + user.client.screen -= src + if (user.r_hand == src) + user.remove_from_mob(src) + else + user.remove_from_mob(src) + src.master = F + src.layer = initial(src.layer) + user.remove_from_mob(src) + if (user.client) + user.client.screen -= src + src.loc = F + src.add_fingerprint(user) + return + + ..() + return + + +/obj/item/weapon/weldingtool/process() + if(welding) + ++burned_fuel_for + if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) + remove_fuel(1) + + + + if(get_fuel() < 1) + setWelding(0) + + //I'm not sure what this does. I assume it has to do with starting fires... + //...but it doesnt check to see if the welder is on or not. + var/turf/location = src.loc + if(istype(location, /mob/living)) + var/mob/living/M = location + if(M.item_is_in_hands(src)) + location = get_turf(M) + if (istype(location, /turf)) + location.hotspot_expose(700, 5) + + +/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) + if(!proximity) return + if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) + if(!welding && max_fuel) + O.reagents.trans_to_obj(src, max_fuel) + to_chat(user, "Welder refueled") + playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) + return + else if(!welding) + to_chat(user, "[src] doesn't use fuel.") + return + else + message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") + log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") + to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") + var/obj/structure/reagent_dispensers/fueltank/tank = O + tank.explode() + return + if (src.welding) + remove_fuel(1) + var/turf/location = get_turf(user) + if(isliving(O)) + var/mob/living/L = O + L.IgniteMob() + if (istype(location, /turf)) + location.hotspot_expose(700, 50, 1) + return + + +/obj/item/weapon/weldingtool/attack_self(mob/user as mob) + setWelding(!welding, usr) + return + +//Returns the amount of fuel in the welder +/obj/item/weapon/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("fuel") + +/obj/item/weapon/weldingtool/proc/get_max_fuel() + return max_fuel + +//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() +/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(amount) + burned_fuel_for = 0 // Reset the counter since we're removing fuel. + if(get_fuel() >= amount) + reagents.remove_reagent("fuel", amount) + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more welding fuel to complete this task.") + update_icon() + return 0 + +//Returns whether or not the welding tool is currently on. +/obj/item/weapon/weldingtool/proc/isOn() + return src.welding + +/obj/item/weapon/weldingtool/update_icon() + ..() + overlays.Cut() + // Welding overlay. + if(welding) + var/image/I = image(icon, src, "[icon_state]-on") + overlays.Add(I) + item_state = "[initial(item_state)]1" + else + item_state = initial(item_state) + + // Fuel counter overlay. + if(change_icons && get_max_fuel()) + var/ratio = get_fuel() / get_max_fuel() + ratio = Ceiling(ratio*4) * 25 + var/image/I = image(icon, src, "[icon_state][ratio]") + overlays.Add(I) + + // Lights + if(welding && flame_intensity) + set_light(flame_intensity, flame_intensity, flame_color) + else + set_light(0) + +// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" + var/mob/M = loc + if(istype(M)) + M.update_inv_l_hand() + M.update_inv_r_hand() + +/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) + if(!canremove) + return + + if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist + + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? + return + + if (!( istype(over_object, /obj/screen) )) + return ..() + + //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. + //there's got to be a better way of doing this. + if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) + return + + if (( usr.restrained() ) || ( usr.stat )) + return + + if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) + return + + switch(over_object.name) + if("r_hand") + usr.u_equip(src) + usr.put_in_r_hand(src) + if("l_hand") + usr.u_equip(src) + usr.put_in_l_hand(src) + src.add_fingerprint(usr) + +//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) +//so that the welding tool updates accordingly +/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) + if(!status) return + + var/turf/T = get_turf(src) + //If we're turning it on + if(set_welding && !welding) + if (get_fuel() > 0) + if(M) + to_chat(M, "You switch the [src] on.") + else if(T) + T.visible_message("\The [src] turns on.") + playsound(loc, acti_sound, 50, 1) + src.force = 15 + src.damtype = "fire" + src.w_class = ITEMSIZE_LARGE + src.hitsound = 'sound/items/welder.ogg' + welding = 1 + update_icon() + if(!always_process) + processing_objects |= src + else + if(M) + var/msg = max_fuel ? "welding fuel" : "charge" + to_chat(M, "You need more [msg] to complete this task.") + return + //Otherwise + else if(!set_welding && welding) + if(!always_process) + processing_objects -= src + if(M) + to_chat(M, "You switch \the [src] off.") + else if(T) + T.visible_message("\The [src] turns off.") + playsound(loc, deac_sound, 50, 1) + src.force = 3 + src.damtype = "brute" + src.w_class = initial(src.w_class) + src.welding = 0 + src.hitsound = initial(src.hitsound) + update_icon() + +//Decides whether or not to damage a player's eyes based on what they're wearing as protection +//Note: This should probably be moved to mob +/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) + if(!istype(user)) + return 1 + var/safety = user.eyecheck() + safety = between(-1, safety + eye_safety_modifier, 2) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] + if(!E) + return + switch(safety) + if(1) + to_chat(usr, "Your eyes sting a little.") + E.damage += rand(1, 2) + if(E.damage > 12) + user.eye_blurry += rand(3,6) + if(0) + to_chat(usr, "Your eyes burn.") + E.damage += rand(2, 4) + if(E.damage > 10) + E.damage += rand(4,10) + if(-1) + to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") + user.eye_blurry += rand(12,20) + E.damage += rand(12, 16) + if(safety<2) + + if(E.damage > 10) + to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") + + if (E.damage >= E.min_broken_damage) + to_chat(user, "You go blind!") + user.sdisabilities |= BLIND + else if (E.damage >= E.min_bruised_damage) + to_chat(user, "You go blind!") + user.Blind(5) + user.eye_blurry = 5 + user.disabilities |= NEARSIGHTED + spawn(100) + user.disabilities &= ~NEARSIGHTED + return + +/obj/item/weapon/weldingtool/is_hot() + return isOn() + +/obj/item/weapon/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) + +/obj/item/weapon/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + toolspeed = 0.5 + +/obj/item/weapon/weldingtool/hugetank + name = "upgraded welding tool" + desc = "A much larger welder with a huge tank." + icon_state = "indwelder" + max_fuel = 80 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + +/obj/item/weapon/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = ITEMSIZE_SMALL + matter = list(MAT_METAL = 30, MAT_GLASS = 10) + change_icons = 0 + toolspeed = 2 + eye_safety_modifier = 1 // Safer on eyes. + +/obj/item/weapon/weldingtool/alien + name = "alien welding tool" + desc = "An alien welding tool. Whatever fuel it uses, it never runs out." + icon = 'icons/obj/abductor.dmi' + icon_state = "welder" + toolspeed = 0.1 + flame_color = "#6699FF" // Light bluish. + eye_safety_modifier = 2 + change_icons = 0 + origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) + always_process = TRUE + +/obj/item/weapon/weldingtool/alien/process() + if(get_fuel() <= get_max_fuel()) + reagents.add_reagent("fuel", 1) + ..() + +/obj/item/weapon/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." + icon_state = "exwelder" + max_fuel = 40 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + toolspeed = 0.5 + change_icons = 0 + flame_intensity = 3 + always_process = TRUE + var/nextrefueltick = 0 + +/obj/item/weapon/weldingtool/experimental/process() + ..() + if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("fuel", 1) + +/* + * Backpack Welder. + */ + +/obj/item/weapon/weldingtool/tubefed + name = "tube-fed welding tool" + desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." + icon_state = "tubewelder" + max_fuel = 10 + w_class = ITEMSIZE_NO_CONTAINER + matter = null + toolspeed = 1.25 + change_icons = 0 + flame_intensity = 1 + eye_safety_modifier = 1 + always_process = TRUE + var/obj/item/weapon/weldpack/mounted_pack = null + +/obj/item/weapon/weldingtool/tubefed/New(location) + ..() + if(istype(location, /obj/item/weapon/weldpack)) + var/obj/item/weapon/weldpack/holder = location + mounted_pack = holder + else + qdel(src) + +/obj/item/weapon/weldingtool/tubefed/Destroy() + mounted_pack.nozzle = null + mounted_pack = null + return ..() + +/obj/item/weapon/weldingtool/tubefed/process() + if(mounted_pack) + if(!istype(mounted_pack.loc,/mob/living/carbon/human)) + mounted_pack.return_nozzle() + else + var/mob/living/carbon/human/H = mounted_pack.loc + if(H.back != mounted_pack) + mounted_pack.return_nozzle() + + if(mounted_pack.loc != src.loc && src.loc != mounted_pack) + mounted_pack.return_nozzle() + visible_message("\The [src] retracts to its fueltank.") + + if(get_fuel() <= get_max_fuel()) + mounted_pack.reagents.trans_to_obj(src, 1) + + ..() + +/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) + ..() + if(src.loc != user) + mounted_pack.return_nozzle() + to_chat(user, "\The [src] retracts to its fueltank.") + +/* + * Electric/Arc Welder + */ + +/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC + name = "electric welding tool" + desc = "A welder which runs off of electricity." + icon_state = "arcwelder" + max_fuel = 0 //We'll handle the consumption later. + item_state = "ewelder" + var/obj/item/weapon/cell/power_supply //What type of power cell this uses + var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery + var/cell_type = /obj/item/weapon/cell/device + var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 + flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. + acti_sound = 'sound/effects/sparks4.ogg' + deac_sound = 'sound/effects/sparks4.ogg' + +/obj/item/weapon/weldingtool/electric/unloaded/New() + cell_type = null + +/obj/item/weapon/weldingtool/electric/New() + ..() + if(cell_type == null) + update_icon() + else if(cell_type) + power_supply = new cell_type(src) + else + power_supply = new /obj/item/weapon/cell/device(src) + update_icon() + +/obj/item/weapon/weldingtool/electric/get_cell() + return power_supply + +/obj/item/weapon/weldingtool/electric/examine(mob/user) + if(get_dist(src, user) > 1) + to_chat(user, desc) + else // The << need to stay, for some reason + if(power_supply) + user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) + else + user << text("\icon[] The [] has no power cell!", src, src.name) + +/obj/item/weapon/weldingtool/electric/get_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.charge + else if(power_supply) + return power_supply.charge + else + return 0 + +/obj/item/weapon/weldingtool/electric/get_max_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.maxcharge + else if(power_supply) + return power_supply.maxcharge + return 0 + +/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(get_fuel() >= amount) + power_supply.checked_use(charge_cost) + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(!external || !external.use(charge_cost)) //Take power from the borg... + power_supply.give(charge_cost) //Give it back to the cell. + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more energy to complete this task.") + update_icon() + return 0 + +/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) + if(user.get_inactive_hand() == src) + if(power_supply) + power_supply.update_icon() + user.put_in_hands(power_supply) + power_supply = null + to_chat(user, "You remove the cell from the [src].") + setWelding(0) + update_icon() + return + ..() + else + return ..() + +/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) + if(istype(W, /obj/item/weapon/cell)) + if(istype(W, /obj/item/weapon/cell/device)) + if(!power_supply) + user.drop_item() + W.loc = src + power_supply = W + to_chat(user, "You install a cell in \the [src].") + update_icon() + else + to_chat(user, "\The [src] already has a cell.") + else + to_chat(user, "\The [src] cannot use that type of cell.") + else + ..() + +/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + return R.cell + if(istype(src.loc, /obj/item/rig_module)) + var/obj/item/rig_module/module = src.loc + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit)) + return suit.cell + return null + +/obj/item/weapon/weldingtool/electric/mounted + use_external_power = 1 + +/obj/item/weapon/weldingtool/electric/mounted/cyborg + toolspeed = 0.5 + +#undef WELDER_FUEL_BURN_INTERVAL +>>>>>>> 3398513... Merge pull request #5628 from lbnesquik/Kates-Simple-The From 986dc248b011c7cb4214c2b9c758725fadb782d4 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Sat, 6 Oct 2018 10:06:28 +0200 Subject: [PATCH 04/68] Adds nevrean eggs. --- code/_helpers/global_lists_vr.dm | 2 ++ code/modules/client/preference_setup/vore/03_egg.dm | 1 + 2 files changed, 3 insertions(+) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 97a7feafd2..f691d06452 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -106,6 +106,7 @@ var/global/list/global_egg_types = list( "Tajaran" = TAJARAN_EGG, "Akula" = AKULA_EGG, "Skrell" = SKRELL_EGG, + "nevrean" = NEVREAL_EGG "Sergal" = SERGAL_EGG, "Human" = HUMAN_EGG, "Slime" = SLIME_EGG, @@ -119,6 +120,7 @@ var/global/list/tf_egg_types = list( "Akula" = /obj/structure/closet/secure_closet/egg/shark, "Skrell" = /obj/structure/closet/secure_closet/egg/skrell, "Sergal" = /obj/structure/closet/secure_closet/egg/sergal, + "Nevrean" = /obj/structure/closet/secure_closet/egg/nevrean, "Human" = /obj/structure/closet/secure_closet/egg/human, "Slime" = /obj/structure/closet/secure_closet/egg/slime, "Egg" = /obj/structure/closet/secure_closet/egg, diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm index 51d36960bd..2567ca5021 100644 --- a/code/modules/client/preference_setup/vore/03_egg.dm +++ b/code/modules/client/preference_setup/vore/03_egg.dm @@ -4,6 +4,7 @@ var/AKULA_EGG = "Akula" var/SKRELL_EGG = "Skrell" var/SERGAL_EGG = "Sergal" var/HUMAN_EGG = "Human" +var/NEVREAN_EGG = "nevrean" var/SLIME_EGG = "Slime" var/EGG_EGG = "Egg" var/XENOCHIMERA_EGG = "Xenochimera" From 9b91fff7fcd2064af3a22ae2b2fb5ca8d2faa3d5 Mon Sep 17 00:00:00 2001 From: Kates <24830358+lbnesquik@users.noreply.github.com> Date: Sat, 6 Oct 2018 10:35:15 +0200 Subject: [PATCH 05/68] Update global_lists_vr.dm --- code/_helpers/global_lists_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index f691d06452..4c4ae134a2 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -106,7 +106,7 @@ var/global/list/global_egg_types = list( "Tajaran" = TAJARAN_EGG, "Akula" = AKULA_EGG, "Skrell" = SKRELL_EGG, - "nevrean" = NEVREAL_EGG + "nevrean" = NEVREAN_EGG "Sergal" = SERGAL_EGG, "Human" = HUMAN_EGG, "Slime" = SLIME_EGG, From 7995b54e29dd15dd0bb622675aa15eae1678c5e3 Mon Sep 17 00:00:00 2001 From: Kates <24830358+lbnesquik@users.noreply.github.com> Date: Sat, 6 Oct 2018 12:54:10 +0200 Subject: [PATCH 06/68] Update global_lists_vr.dm --- code/_helpers/global_lists_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 4c4ae134a2..1d7b1a7522 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -111,7 +111,7 @@ var/global/list/global_egg_types = list( "Human" = HUMAN_EGG, "Slime" = SLIME_EGG, "Egg" = EGG_EGG, - "Xenochimera" = XENOCHIMERA_EGG, + "Xenochimera" = XENOCHIMERA_EGG, "Xenomorph" = XENOMORPH_EGG) var/global/list/tf_egg_types = list( @@ -124,7 +124,7 @@ var/global/list/tf_egg_types = list( "Human" = /obj/structure/closet/secure_closet/egg/human, "Slime" = /obj/structure/closet/secure_closet/egg/slime, "Egg" = /obj/structure/closet/secure_closet/egg, - "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, + "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph) var/global/list/edible_trash = list(/obj/item/trash, From 820a4fbb29e419057a574e7bb320ab2329704a8f Mon Sep 17 00:00:00 2001 From: Kates <24830358+lbnesquik@users.noreply.github.com> Date: Sat, 6 Oct 2018 12:55:52 +0200 Subject: [PATCH 07/68] Update global_lists_vr.dm --- code/_helpers/global_lists_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 1d7b1a7522..8c4d62a605 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -106,7 +106,7 @@ var/global/list/global_egg_types = list( "Tajaran" = TAJARAN_EGG, "Akula" = AKULA_EGG, "Skrell" = SKRELL_EGG, - "nevrean" = NEVREAN_EGG + "Nevrean" = NEVREAN_EGG, "Sergal" = SERGAL_EGG, "Human" = HUMAN_EGG, "Slime" = SLIME_EGG, From 0b34d28fa8c7bbcb3adff7fab95fe899756b9366 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 6 Oct 2018 12:24:13 -0400 Subject: [PATCH 08/68] Fixes supply console type Makes it the subtype that controls the shuttle and such. (Also fixes these two .bat files to point at the right folder) --- maps/tether/tether-07-station3.dmm | 6 +++--- tools/mapmerge2/dmm2tgm.bat | 2 +- tools/mapmerge2/tgm2dmm.bat | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index d55b2ed004..7250cc7d82 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -13671,9 +13671,6 @@ /turf/simulated/floor/plating, /area/quartermaster/office) "wb" = ( -/obj/machinery/computer/supplycomp{ - dir = 1 - }, /obj/structure/cable/green{ d1 = 1; d2 = 2; @@ -13685,6 +13682,9 @@ /obj/effect/floor_decal/corner/brown/border{ dir = 8 }, +/obj/machinery/computer/supplycomp/control{ + dir = 1 + }, /turf/simulated/floor/tiled, /area/quartermaster/office) "wc" = ( diff --git a/tools/mapmerge2/dmm2tgm.bat b/tools/mapmerge2/dmm2tgm.bat index bcf6150c2e..b17b03afa0 100644 --- a/tools/mapmerge2/dmm2tgm.bat +++ b/tools/mapmerge2/dmm2tgm.bat @@ -1,5 +1,5 @@ @echo off -set MAPROOT=../../_maps/ +set MAPROOT=../../maps/ set TGM=1 python convert.py pause diff --git a/tools/mapmerge2/tgm2dmm.bat b/tools/mapmerge2/tgm2dmm.bat index 2748533feb..5bf5677453 100644 --- a/tools/mapmerge2/tgm2dmm.bat +++ b/tools/mapmerge2/tgm2dmm.bat @@ -1,5 +1,5 @@ @echo off -set MAPROOT=../../_maps/ +set MAPROOT=../../maps/ set TGM=0 python convert.py pause From dd7c6533a5ea6c17923a380b597424deca55840a Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 6 Oct 2018 12:32:41 -0400 Subject: [PATCH 09/68] Clean up unused merge things --- tools/mapmerge/1prepare_map.bat | 7 ---- tools/mapmerge/2clean_map.bat | 8 ---- tools/mapmerge/MapPatcher.jar | Bin 11419 -> 0 bytes tools/mapmerge/clean_map_git.sh | 9 ----- tools/mapmerge/git_merge_installer.bat | 6 --- tools/mapmerge/git_merge_installer.sh | 6 --- tools/mapmerge/install.txt | 19 --------- tools/mapmerge/mapmerge.sh | 9 ----- tools/mapmerge2/README.txt | 52 ------------------------- tools/mapmerge2/hooks/README.md | 36 ----------------- tools/mapmerge2/hooks/install.bat | 15 ------- tools/mapmerge2/hooks/install.sh | 11 ------ tools/mapmerge2/hooks/pre-commit.hook | 2 - tools/mapmerge2/hooks/python.sh | 17 -------- 14 files changed, 197 deletions(-) delete mode 100644 tools/mapmerge/1prepare_map.bat delete mode 100644 tools/mapmerge/2clean_map.bat delete mode 100644 tools/mapmerge/MapPatcher.jar delete mode 100755 tools/mapmerge/clean_map_git.sh delete mode 100644 tools/mapmerge/git_merge_installer.bat delete mode 100755 tools/mapmerge/git_merge_installer.sh delete mode 100644 tools/mapmerge/install.txt delete mode 100755 tools/mapmerge/mapmerge.sh delete mode 100644 tools/mapmerge2/README.txt delete mode 100644 tools/mapmerge2/hooks/README.md delete mode 100644 tools/mapmerge2/hooks/install.bat delete mode 100644 tools/mapmerge2/hooks/install.sh delete mode 100644 tools/mapmerge2/hooks/pre-commit.hook delete mode 100644 tools/mapmerge2/hooks/python.sh diff --git a/tools/mapmerge/1prepare_map.bat b/tools/mapmerge/1prepare_map.bat deleted file mode 100644 index 43f317e114..0000000000 --- a/tools/mapmerge/1prepare_map.bat +++ /dev/null @@ -1,7 +0,0 @@ -cd ../../maps/tether - -FOR %%f IN (*.dmm) DO ( - copy %%f %%f.backup -) - -pause diff --git a/tools/mapmerge/2clean_map.bat b/tools/mapmerge/2clean_map.bat deleted file mode 100644 index f97ad14793..0000000000 --- a/tools/mapmerge/2clean_map.bat +++ /dev/null @@ -1,8 +0,0 @@ -SET z_levels=10 -cd - -FOR %%f IN (../../maps/tether/*.dmm) DO ( - java -jar MapPatcher.jar -clean ../../maps/tether/%%f.backup ../../maps/tether/%%f ../../maps/tether/%%f -) - -pause diff --git a/tools/mapmerge/MapPatcher.jar b/tools/mapmerge/MapPatcher.jar deleted file mode 100644 index f4351b3603798c5606142a4f2db237f0869b0501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11419 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≪~EwSnCzJ||{( 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 BJ<9+9 diff --git a/tools/mapmerge/clean_map_git.sh b/tools/mapmerge/clean_map_git.sh deleted file mode 100755 index 25cef6da93..0000000000 --- a/tools/mapmerge/clean_map_git.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -for MAPFILE in ../../maps/*.dmm -do - MAPNAME=$(basename $MAPFILE) - git show HEAD:maps/$MAPNAME > tmp.dmm - java -jar MapPatcher.jar -clean tmp.dmm $MAPFILE $MAPFILE - rm tmp.dmm -done diff --git a/tools/mapmerge/git_merge_installer.bat b/tools/mapmerge/git_merge_installer.bat deleted file mode 100644 index 59e3a803e9..0000000000 --- a/tools/mapmerge/git_merge_installer.bat +++ /dev/null @@ -1,6 +0,0 @@ -@echo off -set tab= -echo. >> ../../.git/config -echo [merge "merge-dmm"] >> ../../.git/config -echo %tab%name = mapmerge driver >> ../../.git/config -echo %tab%driver = ./tools/mapmerge/mapmerge.sh %%O %%A %%B >> ../../.git/config diff --git a/tools/mapmerge/git_merge_installer.sh b/tools/mapmerge/git_merge_installer.sh deleted file mode 100755 index c6d70bc0c9..0000000000 --- a/tools/mapmerge/git_merge_installer.sh +++ /dev/null @@ -1,6 +0,0 @@ -F="../../.git/config" - -echo '' >> $F -echo '[merge "merge-dmm"]' >> $F -echo ' name = mapmerge driver' >> $F -echo ' driver = ./tools/mapmerge/mapmerge.sh %O %A %B' >> $F diff --git a/tools/mapmerge/install.txt b/tools/mapmerge/install.txt deleted file mode 100644 index 943b195b5e..0000000000 --- a/tools/mapmerge/install.txt +++ /dev/null @@ -1,19 +0,0 @@ -1. Install java(http://www.java.com/en/download/index.jsp) -2. Make sure java is in your PATH. To test this, open git bash, and type "java". If it says unknown command, you need to add JAVA/bin to your PATH variable (A guide for this can be found at https://www.java.com/en/download/help/path.xml ). - -Committing -1. Before starting to edit the map, double-click "prepare_map.bat" in the tools/mapmerge/ directory. -2. After finishing your edit, and before your commit, double-click "clean_map.bat" in the tools/mapmerge/ directory. - -This will make sure in the new version of your map, no paths are needlessly changed, thus instead of 8000 lines changed you'll get 50 lines changed. This not only reduces size of your commit, it also makes it possible to get an overview of your map changes on the "files changed" page in your pull request. - -Merging -The easiest way to do merging is to install the merge driver. For this, open `Baystation12/.git/config` in a text editor, and paste the following lines to the end of it: - -[merge "merge-dmm"] - name = mapmerge driver - driver = ./tools/mapmerge/mapmerge.sh %O %A %B - -You may optionally instead run git_merge_installer.bat or git_merge_installer.sh which should automatically insert these lines for you at the appropriate location. - -After this, merging maps should happen automagically unless there are conflicts(a tile that both you and someone else changed). If there are conflicts, you will unfortunately still be stuck with opening both versions in a map editor, and manually resolving the issues. diff --git a/tools/mapmerge/mapmerge.sh b/tools/mapmerge/mapmerge.sh deleted file mode 100755 index 9e347ceaa2..0000000000 --- a/tools/mapmerge/mapmerge.sh +++ /dev/null @@ -1,9 +0,0 @@ -java -jar tools/mapmerge/MapPatcher.jar -merge $1 $2 $3 $2 -if [ "$?" -gt 0 ] -then - echo "Unable to automatically resolve map conflicts, please merge manually." - exit 1 -fi -java -jar tools/mapmerge/MapPatcher.jar -clean $3 $2 $2 - -exit 0 diff --git a/tools/mapmerge2/README.txt b/tools/mapmerge2/README.txt deleted file mode 100644 index 0ff4d21ac2..0000000000 --- a/tools/mapmerge2/README.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Map Merge 2 - -**Map Merge 2** is an improvement over previous map merging scripts, with -better merge-conflict prevention, multi-Z support, and automatic handling of -key overflow. For up-to-date tips and tricks, also visit the [Map Merger] wiki article. - -## What Map Merging Is - -The "map merge" operation describes the process of rewriting a map file written -by the DreamMaker map editor to A) use a format more amenable to Git's conflict -resolution and B) differ in the least amount textually from the previous -version of the map while maintaining all the actual changes. It requires an old -version of the map to use as a reference and a new version of the map which -contains the desired changes. - -## Installation - -To install Python dependencies, run `requirements-install.bat`, or run -`python -m pip install -r requirements.txt` directly. See the [Git hooks] -documentation to install the Git pre-commit hook which runs the map merger -automatically, or use `tools/mapmerge/Prepare Maps.bat` to save backups before -running `mapmerge.bat`. - -For up-to-date installation and detailed troubleshooting instructions, visit -the [Map Merger] wiki article. - -## Code Structure - -Frontend scripts are meant to be run directly. They obey the environment -variables `TGM` to set whether files are saved in TGM (1) or DMM (0) format, -and `MAPROOT` to determine where maps are kept. By default, TGM is used and -the map root is autodetected. Each script may either prompt for the desired map -or be run with command-line parameters indicating which maps to act on. The -scripts include: - -* `convert.py` for converting maps to and from the TGM format. Used by - `tgm2dmm.bat` and `dmm2tgm.bat`. -* `mapmerge.py` for running the map merge on map backups saved by - `Prepare Maps.bat`. Used by `mapmerge.bat` - -Implementation modules: - -* `dmm.py` includes the map reader and writer. -* `mapmerge.py` includes the implementation of the map merge operation. -* `frontend.py` includes the common code for the frontend scripts. - -`precommit.py` is run by the [Git hooks] if installed, and merges the new -version of any map saved in the index (`git add`ed) with the old version stored -in Git when run. - -[Map Merger]: https://tgstation13.org/wiki/Map_Merger -[Git hooks]: ../hooks/README.md diff --git a/tools/mapmerge2/hooks/README.md b/tools/mapmerge2/hooks/README.md deleted file mode 100644 index 844f3a3952..0000000000 --- a/tools/mapmerge2/hooks/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Git Integration Hooks - -This folder contains installable scripts for [Git hooks] and [merge drivers]. -Use of these hooks and drivers is optional and they must be installed -explicitly before they take effect. - -To install the current set of hooks, or update if new hooks are added, run -`install.bat` (Windows) or `install.sh` (Unix-like) as appropriate. - -Hooks expect a Unix-like environment on the backend. Usually this is handled -automatically by GUI tools like TortoiseGit and GitHub for Windows, but -[Git for Windows] is an option if you prefer to use a CLI even on Windows. - -## Current Hooks - -* **Pre-commit**: Runs [mapmerge2] on changed maps, if any. - -## Adding New Hooks - -New [Git hooks] may be added by creating a file named `.hook` in -this directory. Git determines what hooks are available and what their names -are. The install script copies the `.hook` file into `.git/hooks`, so editing -the `.hook` file will require a reinstall. - -New [merge drivers] may be added by adding a shell script named `.merge` -and updating `.gitattributes` in the root of the repository to include the line -`*. merge=`. The install script will set up the merge driver to point -to the `.merge` file directly, and editing it will not require a reinstall. - -`tools/hooks/python.sh` may be used as a trampoline to ensure that the correct -version of Python is found. - -[Git hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks -[merge drivers]: https://git-scm.com/docs/gitattributes#_performing_a_three_way_merge -[Git for Windows]: https://gitforwindows.org/ -[mapmerge2]: ../mapmerge2/README.md diff --git a/tools/mapmerge2/hooks/install.bat b/tools/mapmerge2/hooks/install.bat deleted file mode 100644 index 50fa647a66..0000000000 --- a/tools/mapmerge2/hooks/install.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off -cd %~dp0 -for %%f in (*.hook) do ( - echo Installing hook: %%~nf - mkdir ..\..\..\.git\hooks - copy %%f ..\..\..\.git\hooks\%%~nf >nul -) -for %%f in (*.merge) do ( - echo Installing merge driver: %%~nf - echo [merge "%%~nf"]^ - - driver = tools/hooks/%%f %%P %%O %%A %%B %%L >> ..\..\..\.git\config -) -echo Done -pause diff --git a/tools/mapmerge2/hooks/install.sh b/tools/mapmerge2/hooks/install.sh deleted file mode 100644 index be42d2ee96..0000000000 --- a/tools/mapmerge2/hooks/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -cd "$(dirname "$0")" -for f in *.hook; do - echo Installing hook: ${f%.hook} - cp $f ../../../.git/hooks/${f%.hook} -done -for f in *.merge; do - echo Installing merge driver: ${f%.merge} - git config --replace-all merge.${f%.merge}.driver "tools/mapmerge2/hooks/$f %P %O %A %B %L" -done -echo "Done" diff --git a/tools/mapmerge2/hooks/pre-commit.hook b/tools/mapmerge2/hooks/pre-commit.hook deleted file mode 100644 index b78780ccbb..0000000000 --- a/tools/mapmerge2/hooks/pre-commit.hook +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -exec tools/mapmerge2/hooks/python.sh -m precommit diff --git a/tools/mapmerge2/hooks/python.sh b/tools/mapmerge2/hooks/python.sh deleted file mode 100644 index 32557070f4..0000000000 --- a/tools/mapmerge2/hooks/python.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e -if command -v python3 >/dev/null 2>&1; then - PY=python3 -else - PY=python -fi -PATHSEP=$($PY - <<'EOF' -import sys, os -if sys.version_info.major != 3 or sys.version_info.minor < 6: - sys.stderr.write("Python 3.6+ is required: " + sys.version + "\n") - exit(1) -print(os.pathsep) -EOF -) -export PYTHONPATH=tools/mapmerge2/${PATHSEP}${PYTHONPATH} -$PY "$@" From eaf45ccc0845a32947787be76c50ab0237c167e4 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 6 Oct 2018 12:33:04 -0400 Subject: [PATCH 10/68] New hooks folder --- tools/hooks/README.md | 41 +++++++++++++++++++++++++++++++++++++ tools/hooks/dmi.merge | 2 ++ tools/hooks/install.bat | 16 +++++++++++++++ tools/hooks/install.sh | 15 ++++++++++++++ tools/hooks/pre-commit.hook | 2 ++ tools/hooks/python.sh | 17 +++++++++++++++ 6 files changed, 93 insertions(+) create mode 100644 tools/hooks/README.md create mode 100644 tools/hooks/dmi.merge create mode 100644 tools/hooks/install.bat create mode 100644 tools/hooks/install.sh create mode 100644 tools/hooks/pre-commit.hook create mode 100644 tools/hooks/python.sh diff --git a/tools/hooks/README.md b/tools/hooks/README.md new file mode 100644 index 0000000000..b15fb493d8 --- /dev/null +++ b/tools/hooks/README.md @@ -0,0 +1,41 @@ +# Git Integration Hooks + +This folder contains installable scripts for [Git hooks] and [merge drivers]. +Use of these hooks and drivers is optional and they must be installed +explicitly before they take effect. + +To install the current set of hooks, or update if new hooks are added, run +`install.bat` (Windows) or `install.sh` (Unix-like) as appropriate. + +Hooks expect a Unix-like environment on the backend. Usually this is handled +automatically by GUI tools like TortoiseGit and GitHub for Windows, but +[Git for Windows] is an option if you prefer to use a CLI even on Windows. + +## Current Hooks + +* **Pre-commit**: Runs [mapmerge2] on changed maps, if any. +* **DMI merger**: Attempts to [fix icon conflicts] when performing a git merge. + If it succeeds, the file is marked merged. If it fails, it logs what states + are still in conflict and adds them to the .dmi file, where the desired + resolution can be chosen. + +## Adding New Hooks + +New [Git hooks] may be added by creating a file named `.hook` in +this directory. Git determines what hooks are available and what their names +are. The install script copies the `.hook` file into `.git/hooks`, so editing +the `.hook` file will require a reinstall. + +New [merge drivers] may be added by adding a shell script named `.merge` +and updating `.gitattributes` in the root of the repository to include the line +`*. merge=`. The install script will set up the merge driver to point +to the `.merge` file directly, and editing it will not require a reinstall. + +`tools/hooks/python.sh` may be used as a trampoline to ensure that the correct +version of Python is found. + +[Git hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks +[merge drivers]: https://git-scm.com/docs/gitattributes#_performing_a_three_way_merge +[Git for Windows]: https://gitforwindows.org/ +[mapmerge2]: ../mapmerge2/README.md +[fix icon conflicts]: ../mapmerge2/merge_driver_dmi.py diff --git a/tools/hooks/dmi.merge b/tools/hooks/dmi.merge new file mode 100644 index 0000000000..4e2717867e --- /dev/null +++ b/tools/hooks/dmi.merge @@ -0,0 +1,2 @@ +#!/bin/bash +exec tools/hooks/python.sh -m merge_driver_dmi "$@" diff --git a/tools/hooks/install.bat b/tools/hooks/install.bat new file mode 100644 index 0000000000..7a11129a2a --- /dev/null +++ b/tools/hooks/install.bat @@ -0,0 +1,16 @@ +@echo off +cd %~dp0 +for %%f in (*.hook) do ( + echo Installing hook: %%~nf + copy %%f ..\..\.git\hooks\%%~nf >nul +) +for %%f in (*.merge) do ( + echo Installing merge driver: %%~nf + echo [merge "%%~nf"]^ + + driver = tools/hooks/%%f %%P %%O %%A %%B %%L >> ..\..\.git\config +) +echo Installing Python dependencies +python -m pip install -r ..\mapmerge2\requirements.txt +echo Done +pause diff --git a/tools/hooks/install.sh b/tools/hooks/install.sh new file mode 100644 index 0000000000..ccc4cf5227 --- /dev/null +++ b/tools/hooks/install.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +shopt -s nullglob +cd "$(dirname "$0")" +for f in *.hook; do + echo Installing hook: ${f%.hook} + cp $f ../../.git/hooks/${f%.hook} +done +for f in *.merge; do + echo Installing merge driver: ${f%.merge} + git config --replace-all merge.${f%.merge}.driver "tools/hooks/$f %P %O %A %B %L" +done +echo Installing Python dependencies +./python.sh -m pip install -r ../mapmerge2/requirements.txt +echo "Done" diff --git a/tools/hooks/pre-commit.hook b/tools/hooks/pre-commit.hook new file mode 100644 index 0000000000..7eccda6f58 --- /dev/null +++ b/tools/hooks/pre-commit.hook @@ -0,0 +1,2 @@ +#!/bin/bash +exec tools/hooks/python.sh -m precommit diff --git a/tools/hooks/python.sh b/tools/hooks/python.sh new file mode 100644 index 0000000000..32557070f4 --- /dev/null +++ b/tools/hooks/python.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +if command -v python3 >/dev/null 2>&1; then + PY=python3 +else + PY=python +fi +PATHSEP=$($PY - <<'EOF' +import sys, os +if sys.version_info.major != 3 or sys.version_info.minor < 6: + sys.stderr.write("Python 3.6+ is required: " + sys.version + "\n") + exit(1) +print(os.pathsep) +EOF +) +export PYTHONPATH=tools/mapmerge2/${PATHSEP}${PYTHONPATH} +$PY "$@" From e3690cf19664749eca6881793bbc80bc5f11eba5 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 6 Oct 2018 12:33:10 -0400 Subject: [PATCH 11/68] New mapmerge2 --- tools/mapmerge2/dmi.py | 253 ++++++++++ tools/mapmerge2/dmm.py | 74 ++- tools/mapmerge2/dmm2tgm.bat | 2 +- tools/mapmerge2/map_scripts/turfs2decals.txt | 465 +++++++++++++++++++ tools/mapmerge2/merge_driver_dmi.py | 177 +++++++ tools/mapmerge2/precommit.py | 11 +- tools/mapmerge2/readme.md | 24 +- tools/mapmerge2/requirements.txt | 1 + tools/mapmerge2/tgm2dmm.bat | 2 +- tools/mapmerge2/update_paths.py | 163 +++++++ 10 files changed, 1151 insertions(+), 21 deletions(-) create mode 100644 tools/mapmerge2/dmi.py create mode 100644 tools/mapmerge2/map_scripts/turfs2decals.txt create mode 100644 tools/mapmerge2/merge_driver_dmi.py create mode 100644 tools/mapmerge2/update_paths.py diff --git a/tools/mapmerge2/dmi.py b/tools/mapmerge2/dmi.py new file mode 100644 index 0000000000..f0a8182c9f --- /dev/null +++ b/tools/mapmerge2/dmi.py @@ -0,0 +1,253 @@ +# Tools for working with modern DreamMaker icon files (PNGs + metadata) + +import math +from PIL import Image +from PIL.PngImagePlugin import PngInfo + +DEFAULT_SIZE = 32, 32 +LOOP_UNLIMITED = 0 +LOOP_ONCE = 1 + +NORTH = 1 +SOUTH = 2 +EAST = 4 +WEST = 8 +SOUTHEAST = SOUTH|EAST +SOUTHWEST = SOUTH|WEST +NORTHEAST = NORTH|EAST +NORTHWEST = NORTH|WEST + +CARDINALS = [NORTH, SOUTH, EAST, WEST] +DIR_ORDER = [SOUTH, NORTH, EAST, WEST, SOUTHEAST, SOUTHWEST, NORTHEAST, NORTHWEST] +DIR_NAMES = { + 'SOUTH': SOUTH, + 'NORTH': NORTH, + 'EAST': EAST, + 'WEST': WEST, + 'SOUTHEAST': SOUTHEAST, + 'SOUTHWEST': SOUTHWEST, + 'NORTHEAST': NORTHEAST, + 'NORTHWEST': NORTHWEST, + **{str(x): x for x in DIR_ORDER}, + **{x: x for x in DIR_ORDER}, + '0': SOUTH, + None: SOUTH, +} + +class Dmi: + version = "4.0" + + def __init__(self, width, height): + self.width = width + self.height = height + self.states = [] + + @classmethod + def from_file(cls, fname): + image = Image.open(fname) + + # no metadata = regular image file + if 'Description' not in image.info: + dmi = Dmi(*image.size) + state = dmi.state("") + state.frame(image) + return dmi + + # read metadata + metadata = image.info['Description'] + line_iter = iter(metadata.splitlines()) + assert next(line_iter) == "# BEGIN DMI" + assert next(line_iter) == f"version = {cls.version}" + + dmi = Dmi(*DEFAULT_SIZE) + state = None + + for line in line_iter: + if line == "# END DMI": + break + key, value = line.lstrip().split(" = ") + if key == 'width': + dmi.width = int(value) + elif key == 'height': + dmi.height = int(value) + elif key == 'state': + state = dmi.state(unescape(value)) + elif key == 'dirs': + state.dirs = int(value) + elif key == 'frames': + state._nframes = int(value) + elif key == 'delay': + state.delays = [parse_num(x) for x in value.split(',')] + elif key == 'loop': + state.loop = int(value) + elif key == 'rewind': + state.rewind = parse_bool(value) + elif key == 'hotspot': + x, y, frm = [int(x) for x in value.split(',')] + state.hotspot(frm - 1, x, y) + elif key == 'movement': + state.movement = parse_bool(value) + else: + raise NotImplementedError(key) + + # cut image into frames + width, height = image.size + gridwidth = width // dmi.width + i = 0 + for state in dmi.states: + for frame in range(state._nframes): + for dir in range(state.dirs): + px = dmi.width * (i % gridwidth) + py = dmi.height * (i // gridwidth) + im = image.crop((px, py, px + dmi.width, py + dmi.height)) + assert im.size == (dmi.width, dmi.height) + state.frames.append(im) + i += 1 + state._nframes = None + + return dmi + + def state(self, *args, **kwargs): + s = State(self, *args, **kwargs) + self.states.append(s) + return s + + @property + def default_state(self): + return self.states[0] + + def get_state(self, name): + for state in self.states: + if state.name == name: + return state + raise KeyError(name) + return self.default_state + + def _assemble_comment(self): + comment = "# BEGIN DMI\n" + comment += f"version = {self.version}\n" + comment += f"\twidth = {self.width}\n" + comment += f"\theight = {self.height}\n" + for state in self.states: + comment += f"state = {escape(state.name)}\n" + comment += f"\tdirs = {state.dirs}\n" + comment += f"\tframes = {state.framecount}\n" + if state.framecount > 1 and len(state.delays): #any(x != 1 for x in state.delays): + comment += "\tdelay = " + ",".join(map(str, state.delays)) + "\n" + if state.loop != 0: + comment += f"\tloop = {state.loop}\n" + if state.rewind: + comment += "\trewind = 1\n" + if state.movement: + comment += "\tmovement = 1\n" + if state.hotspots and any(state.hotspots): + current = None + for i, value in enumerate(state.hotspots): + if value != current: + x, y = value + comment += f"\thotspot = {x},{y},{i + 1}\n" + current = value + comment += "# END DMI" + return comment + + def to_file(self, filename, *, palette=False): + # assemble comment + comment = self._assemble_comment() + + # assemble spritesheet + W, H = self.width, self.height + num_frames = sum(len(state.frames) for state in self.states) + sqrt = math.ceil(math.sqrt(num_frames)) + output = Image.new('RGBA', (sqrt * W, math.ceil(num_frames / sqrt) * H)) + + i = 0 + for state in self.states: + for frame in state.frames: + output.paste(frame, ((i % sqrt) * W, (i // sqrt) * H)) + i += 1 + + # save + pnginfo = PngInfo() + pnginfo.add_text('Description', comment, zip=True) + if palette: + output = output.convert('P') + output.save(filename, 'png', optimize=True, pnginfo=pnginfo) + +class State: + def __init__(self, dmi, name, *, loop=LOOP_UNLIMITED, rewind=False, movement=False, dirs=1): + self.dmi = dmi + self.name = name + self.loop = loop + self.rewind = rewind + self.movement = movement + self.dirs = dirs + + self._nframes = None # used during loading only + self.frames = [] + self.delays = [] + self.hotspots = None + + @property + def framecount(self): + if self._nframes is not None: + return self._nframes + else: + return len(self.frames) // self.dirs + + def frame(self, image, *, delay=1): + assert image.size == (self.dmi.width, self.dmi.height) + self.delays.append(delay) + self.frames.append(image) + + def hotspot(self, first_frame, x, y): + if self.hotspots is None: + self.hotspots = [None] * self.framecount + for i in range(first_frame, self.framecount): + self.hotspots[i] = x, y + + def _frame_index(self, frame=0, dir=None): + ofs = DIR_ORDER.index(DIR_NAMES[dir]) + if ofs >= self.dirs: + ofs = 0 + return frame * self.dirs + ofs + + def get_frame(self, *args, **kwargs): + return self.frames[self._frame_index(*args, **kwargs)] + +def escape(text): + assert '\\' not in text and '"' not in text + return f'"{text}"' + +def unescape(text, quote='"'): + if text == 'null': + return None + if not (text.startswith(quote) and text.endswith(quote)): + raise ValueError(text) + text = text[1:-1] + assert '\\' not in text and quote not in text + return text + +def parse_num(value): + if '.' in value: + return float(value) + return int(value) + +def parse_bool(value): + if value not in ('0', '1'): + raise ValueError(value) + return value == '1' + +if __name__ == '__main__': + # test: can we load every DMI in the tree + import os + + count = 0 + for dirpath, dirnames, filenames in os.walk('.'): + if '.git' in dirnames: + dirnames.remove('.git') + for filename in filenames: + if filename.endswith('.dmi'): + Dmi.from_file(os.path.join(dirpath, filename)) + count += 1 + + print(f"Successfully parsed {count} dmi files") diff --git a/tools/mapmerge2/dmm.py b/tools/mapmerge2/dmm.py index d76f07e32c..8bb1dca353 100644 --- a/tools/mapmerge2/dmm.py +++ b/tools/mapmerge2/dmm.py @@ -58,6 +58,23 @@ class DMM: raise RuntimeError("ran out of keys, this shouldn't happen") + def overwrite_key(self, key, fixed, bad_keys): + try: + self.dictionary[key] = fixed + return None + except bidict.DuplicationError: + old_key = self.dictionary.inv[fixed] + bad_keys[key] = old_key + print(f"Merging '{num_to_key(key, self.key_length)}' into '{num_to_key(old_key, self.key_length)}'") + return old_key + + def reassign_bad_keys(self, bad_keys): + if not bad_keys: + return + for k, v in self.grid.items(): + # reassign the grid entries which used the old key + self.grid[k] = bad_keys.get(v, v) + def _presave_checks(self): # last-second handling of bogus keys to help prevent and fix broken maps self._ensure_free_keys(0) @@ -70,9 +87,16 @@ class DMM: new_key = bad_keys[k] = self.generate_new_key() self.dictionary.forceput(new_key, self.dictionary[k]) print(f" {num_to_key(k, self.key_length, True)} -> {num_to_key(new_key, self.key_length)}") - for k, v in self.grid.items(): - # reassign the grid entries which used the old key - self.grid[k] = bad_keys.get(v, v) + + # handle entries in the dictionary which have atoms in the wrong order + keys = list(self.dictionary.keys()) + for key in keys: + value = self.dictionary[key] + if is_bad_atom_ordering(num_to_key(key, self.key_length, True), value): + fixed = tuple(fix_atom_ordering(value)) + self.overwrite_key(key, fixed, bad_keys) + + self.reassign_bad_keys(bad_keys) def _ensure_free_keys(self, desired): # ensure that free keys exist by increasing the key length if necessary @@ -179,6 +203,45 @@ def parse_map_atom(atom): return path, vars +def is_bad_atom_ordering(key, atoms): + seen_turfs = 0 + seen_areas = 0 + can_fix = False + for each in atoms: + if each.startswith('/turf'): + if seen_turfs == 1: + print(f"Warning: key '{key}' has multiple turfs!") + if seen_areas: + print(f"Warning: key '{key}' has area before turf (autofixing...)") + can_fix = True + seen_turfs += 1 + elif each.startswith('/area'): + if seen_areas == 1: + print(f"Warning: key '{key}' has multiple areas!!!") + seen_areas += 1 + else: + if (seen_turfs or seen_areas) and not can_fix: + print(f"Warning: key '{key}' has movable after turf or area (autofixing...)") + can_fix = True + if not seen_areas or not seen_turfs: + print(f"Warning: key '{key}' is missing either a turf or area") + return can_fix + +def fix_atom_ordering(atoms): + movables = [] + turfs = [] + areas = [] + for each in atoms: + if each.startswith('/turf'): + turfs.append(each) + elif each.startswith('/area'): + areas.append(each) + else: + movables.append(each) + movables.extend(turfs) + movables.extend(areas) + return movables + # ---------- # TGM writer @@ -307,7 +370,7 @@ def _parse(map_raw_text): continue elif in_comment_line: continue - elif char == "\t": + elif char in "\r\t": continue if char == "/" and not in_quote_block: @@ -415,6 +478,9 @@ def _parse(map_raw_text): # grid block for char in it: + if char == "\r": + continue + if in_coord_block: if char == ",": if reading_coord == "x": diff --git a/tools/mapmerge2/dmm2tgm.bat b/tools/mapmerge2/dmm2tgm.bat index bcf6150c2e..b17b03afa0 100644 --- a/tools/mapmerge2/dmm2tgm.bat +++ b/tools/mapmerge2/dmm2tgm.bat @@ -1,5 +1,5 @@ @echo off -set MAPROOT=../../_maps/ +set MAPROOT=../../maps/ set TGM=1 python convert.py pause diff --git a/tools/mapmerge2/map_scripts/turfs2decals.txt b/tools/mapmerge2/map_scripts/turfs2decals.txt new file mode 100644 index 0000000000..13ae02baf7 --- /dev/null +++ b/tools/mapmerge2/map_scripts/turfs2decals.txt @@ -0,0 +1,465 @@ +/turf/open/floor/circuit/killroom : /turf/open/floor/circuit/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/airless/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/plasteel/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/airless/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/plasteel/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=1} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=@UNSET} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=2} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=4} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=5} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=6} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival {dir=8} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=9} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/arrival {dir=10} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=1} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/arrival/corner {dir=@UNSET} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/arrival/corner {dir=2} : /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=4} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/arrival/corner {dir=8} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/plasteel +/turf/open/floor/plasteel/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/barber : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/blueyellow/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/brownold/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=2} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/checker {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=6} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/corner {@OLD;dir=1} +/turf/open/floor/plasteel/caution {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/checker {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=1} : /turf/open/floor/plasteel/dark/corner {@OLD} +/turf/open/floor/plasteel/caution/corner {dir=@UNSET} : /turf/open/floor/plasteel/dark/corner {@OLD} +/turf/open/floor/plasteel/caution/corner {dir=2} : /turf/open/floor/plasteel/dark/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/caution/corner {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/cmo : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/mainframe : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/server : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/dark/telecomms/server/walkway : /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/side {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkbrown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkred/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=1} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=@UNSET} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=2} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=4} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=5} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=6} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape {dir=8} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=9} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white/corner {@OLD;dir=1} +/turf/open/floor/plasteel/escape {dir=10} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/cafeteria {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=1} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/escape/corner {dir=@UNSET} : /turf/open/floor/plasteel/white/corner {@OLD} +/turf/open/floor/plasteel/escape/corner {dir=2} : /turf/open/floor/plasteel/white/corner {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=4} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/escape/corner {dir=8} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/green/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/greenyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/hydrofloor : /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/neutral/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/orange/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/purple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/red/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/redside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redblue/blueside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/redyellow/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/airless : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/airless {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/snowdin : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/snowdin {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/telecomms : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/telecomms/mainframe : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/killroom : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/vault/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/plasteel/dark {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitegreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/plasteel/white/telecomms {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whitered/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/whiteyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel/white {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} +/turf/open/floor/plasteel/yellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/plasteel {@OLD;dir=@SKIP} \ No newline at end of file diff --git a/tools/mapmerge2/merge_driver_dmi.py b/tools/mapmerge2/merge_driver_dmi.py new file mode 100644 index 0000000000..37c0abd954 --- /dev/null +++ b/tools/mapmerge2/merge_driver_dmi.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +import sys +import dmi + +def images_equal(left, right): + if left.size != right.size: + return False + w, h = left.size + left_load, right_load = left.load(), right.load() + for y in range(0, h): + for x in range(0, w): + lpixel, rpixel = left_load[x, y], right_load[x, y] + # quietly ignore changes where both pixels are fully transparent + if lpixel != rpixel and (lpixel[3] != 0 or rpixel[3] != 0): + return False + return True + +def states_equal(left, right): + result = True + + # basic properties + for attr in ('loop', 'rewind', 'movement', 'dirs', 'delays', 'hotspots', 'framecount'): + lval, rval = getattr(left, attr), getattr(right, attr) + if lval != rval: + result = False + + # frames + for (left_frame, right_frame) in zip(left.frames, right.frames): + if not images_equal(left_frame, right_frame): + result = False + + return result + +def key_of(state): + return (state.name, state.movement) + +def dictify(sheet): + result = {} + for state in sheet.states: + k = key_of(state) + if k in result: + print(f" duplicate {k!r}") + result[k] = state + return result + +def three_way_merge(base, left, right): + base_dims = base.width, base.height + if base_dims != (left.width, left.height) or base_dims != (right.width, right.height): + print("Dimensions have changed:") + print(f" Base: {base.width} x {base.height}") + print(f" Ours: {left.width} x {left.height}") + print(f" Theirs: {right.width} x {right.height}") + return True, None + + base_states, left_states, right_states = dictify(base), dictify(left), dictify(right) + + new_left = {k: v for k, v in left_states.items() if k not in base_states} + new_right = {k: v for k, v in right_states.items() if k not in base_states} + new_both = {} + conflicts = [] + for key, state in list(new_left.items()): + in_right = new_right.get(key, None) + if in_right: + if states_equal(state, in_right): + # allow it + new_both[key] = state + else: + # generate conflict states + print(f" C: {state.name!r}: added differently in both!") + state.name = f"{state.name} !CONFLICT! left" + conflicts.append(state) + in_right.name = f"{state.name} !CONFLICT! right" + conflicts.append(in_right) + # don't add it a second time + del new_left[key] + del new_right[key] + + final_states = [] + # add states that are currently in the base + for state in base.states: + in_left = left_states.get(key_of(state), None) + in_right = right_states.get(key_of(state), None) + left_equals = in_left and states_equal(state, in_left) + right_equals = in_right and states_equal(state, in_right) + + if not in_left and not in_right: + # deleted in both left and right, it's just deleted + print(f" {state.name!r}: deleted in both") + elif not in_left: + # left deletes + print(f" {state.name!r}: deleted in left") + if not right_equals: + print(f" ... but modified in right") + final_states.append(in_right) + elif not in_right: + # right deletes + print(f" {state.name!r}: deleted in right") + if not left_equals: + print(f" ... but modified in left") + final_states.append(in_left) + elif left_equals and right_equals: + # changed in neither + #print(f"Same in both: {state.name!r}") + final_states.append(state) + elif left_equals: + # changed only in right + print(f" {state.name!r}: changed in left") + final_states.append(in_right) + elif right_equals: + # changed only in left + print(f" {state.name!r}: changed in right") + final_states.append(in_left) + elif states_equal(in_left, in_right): + # changed in both, to the same thing + print(f" {state.name!r}: changed same in both") + final_states.append(in_left) # either or + else: + # changed in both + name = state.name + print(f" C: {name!r}: changed differently in both!") + state.name = f"{name} !CONFLICT! base" + conflicts.append(state) + in_left.name = f"{name} !CONFLICT! left" + conflicts.append(in_left) + in_right.name = f"{name} !CONFLICT! right" + conflicts.append(in_right) + + # add states which both left and right added the same + for key, state in new_both.items(): + print(f" {state.name!r}: added same in both") + final_states.append(state) + + # add states that are brand-new in the left + for key, state in new_left.items(): + print(f" {state.name!r}: added in left") + final_states.append(state) + + # add states that are brand-new in the right + for key, state in new_right.items(): + print(f" {state.name!r}: added in right") + final_states.append(state) + + final_states.extend(conflicts) + merged = dmi.Dmi(base.width, base.height) + merged.states = final_states + return len(conflicts), merged + +def main(path, original, left, right): + print(f"Merging icon: {path}") + + icon_orig = dmi.Dmi.from_file(original) + icon_left = dmi.Dmi.from_file(left) + icon_right = dmi.Dmi.from_file(right) + + trouble, merged = three_way_merge(icon_orig, icon_left, icon_right) + if merged: + merged.to_file(left) + if trouble: + print("!!! Manual merge required!") + if merged: + print(" A best-effort merge was performed. You must edit the icon and remove all") + print(" icon states marked with !CONFLICT!, leaving only the desired icon.") + else: + print(" The icon was totally unable to be merged, you must start with one version") + print(" or the other and manually resolve the conflict.") + print(" Information about which states conflicted is listed above.") + return trouble + +if __name__ == '__main__': + if len(sys.argv) != 6: + print("DMI merge driver called with wrong number of arguments") + print(" usage: merge-driver-dmi %P %O %A %B %L") + exit(1) + + # "left" is also the file that ought to be overwritten + _, path, original, left, right, conflict_size_marker = sys.argv + exit(main(path, original, left, right)) diff --git a/tools/mapmerge2/precommit.py b/tools/mapmerge2/precommit.py index 381f1ea8a3..f5ea49a50e 100644 --- a/tools/mapmerge2/precommit.py +++ b/tools/mapmerge2/precommit.py @@ -9,6 +9,13 @@ def main(repo): print("You need to resolve merge conflicts first.") return 1 + try: + repo.lookup_reference('MERGE_HEAD') + print("Not running mapmerge for merge commit.") + return 0 + except KeyError: + pass + changed = 0 for path, status in repo.status().items(): if path.endswith(".dmm") and (status & (pygit2.GIT_STATUS_INDEX_MODIFIED | pygit2.GIT_STATUS_INDEX_NEW)): @@ -20,12 +27,12 @@ def main(repo): head_blob = repo[repo[repo.head.target].tree[path].id] except KeyError: # New map, no entry in HEAD - print(f"Converting new map: {path}") + print(f"Converting new map: {path}", flush=True) assert (status & pygit2.GIT_STATUS_INDEX_NEW) merged_map = index_map else: # Entry in HEAD, merge the index over it - print(f"Merging map: {path}") + print(f"Merging map: {path}", flush=True) assert not (status & pygit2.GIT_STATUS_INDEX_NEW) head_map = dmm.DMM.from_bytes(head_blob.read_raw()) merged_map = merge_map(index_map, head_map) diff --git a/tools/mapmerge2/readme.md b/tools/mapmerge2/readme.md index 251eee19c3..0ff4d21ac2 100644 --- a/tools/mapmerge2/readme.md +++ b/tools/mapmerge2/readme.md @@ -2,7 +2,7 @@ **Map Merge 2** is an improvement over previous map merging scripts, with better merge-conflict prevention, multi-Z support, and automatic handling of -key overflow. +key overflow. For up-to-date tips and tricks, also visit the [Map Merger] wiki article. ## What Map Merging Is @@ -15,17 +15,14 @@ contains the desired changes. ## Installation -* Install Python 3.6.X from the [Python website] - * Make sure to check 'Add Python to PATH' on the first screen of the setup! -* Run `requirements-install.bat` in the tools/mapmerge2 folder (or run `python -m pip install -r requirements.txt`). -* Run `install.bat` in the tools/mapmerge2/hooks folder. - -After this point, any time you make commits in Git, the maps should automatically be converted to tgm format for you. - -If you find it necessary to convert them by hand, there are batch files in the tools/mapmerge2 folder to do so. - -If you re-clone, you will need to re-run `install.bat`. +To install Python dependencies, run `requirements-install.bat`, or run +`python -m pip install -r requirements.txt` directly. See the [Git hooks] +documentation to install the Git pre-commit hook which runs the map merger +automatically, or use `tools/mapmerge/Prepare Maps.bat` to save backups before +running `mapmerge.bat`. +For up-to-date installation and detailed troubleshooting instructions, visit +the [Map Merger] wiki article. ## Code Structure @@ -47,8 +44,9 @@ Implementation modules: * `mapmerge.py` includes the implementation of the map merge operation. * `frontend.py` includes the common code for the frontend scripts. -`precommit.py` is run by the Git hooks if installed, and merges the new +`precommit.py` is run by the [Git hooks] if installed, and merges the new version of any map saved in the index (`git add`ed) with the old version stored in Git when run. -[Python website]: https://www.python.org/downloads/ +[Map Merger]: https://tgstation13.org/wiki/Map_Merger +[Git hooks]: ../hooks/README.md diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index d01a2c6ccf..095843b2d2 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,2 +1,3 @@ pygit2==0.26.0 bidict==0.13.1 +Pillow==5.1.0 diff --git a/tools/mapmerge2/tgm2dmm.bat b/tools/mapmerge2/tgm2dmm.bat index 2748533feb..5bf5677453 100644 --- a/tools/mapmerge2/tgm2dmm.bat +++ b/tools/mapmerge2/tgm2dmm.bat @@ -1,5 +1,5 @@ @echo off -set MAPROOT=../../_maps/ +set MAPROOT=../../maps/ set TGM=0 python convert.py pause diff --git a/tools/mapmerge2/update_paths.py b/tools/mapmerge2/update_paths.py new file mode 100644 index 0000000000..6359b6bb30 --- /dev/null +++ b/tools/mapmerge2/update_paths.py @@ -0,0 +1,163 @@ +# A script and syntax for applying path updates to maps. +import re +import os +import argparse +import frontend +from dmm import * + +desc = """ +Update dmm files given update file/string. +Replacement syntax example: + /turf/open/floor/plasteel/warningline : /obj/effect/turf_decal {dir = @OLD ;tag = @SKIP;icon_state = @SKIP} + /turf/open/floor/plasteel/warningline : /obj/effect/turf_decal {@OLD} , /obj/thing {icon_state = @OLD:name; name = "meme"} + /turf/open/floor/plasteel/warningline{dir=2} : /obj/thing +New paths properties: + @OLD - if used as property name copies all modified properties from original path to this one + property = @SKIP - will not copy this property through when global @OLD is used. + property = @OLD - will copy this modified property from original object even if global @OLD is not used + property = @OLD:name - will copy [name] property from original object even if global @OLD is not used + Anything else is copied as written. +Old paths properties: + Will be used as a filter. + property = @UNSET - will apply the rule only if the property is not mapedited +""" + +default_map_directory = "../../_maps" +replacement_re = re.compile('\s*([^{]*)\s*(\{(.*)\})?') + +#urgent todo: replace with actual parser, this is slow as janitor in crit +split_re = re.compile('((?:[A-Za-z0-9_\-$]+)\s*=\s*(?:"(?:.+?)"|[^";]*)|@OLD)') + + +def props_to_string(props): + return "{{{0}}}".format(";".join([k+" = "+props[k] for k in props])) + + +def string_to_props(propstring, verbose = False): + props = dict() + for raw_prop in re.split(split_re, propstring): + if not raw_prop or raw_prop.strip() == ';': + continue + prop = raw_prop.split('=', maxsplit=1) + props[prop[0].strip()] = prop[1].strip() if len(prop) > 1 else None + if verbose: + print("{0} to {1}".format(propstring, props)) + return props + + +def parse_rep_string(replacement_string, verbose = False): + # translates /blah/blah {meme = "test",} into path,prop dictionary tuple + match = re.match(replacement_re, replacement_string) + path = match.group(1) + props = match.group(3) + if props: + prop_dict = string_to_props(props, verbose) + else: + prop_dict = dict() + return path.strip(), prop_dict + + +def update_path(dmm_data, replacement_string, verbose=False): + old_path_part, new_path_part = replacement_string.split(':', maxsplit=1) + old_path, old_path_props = parse_rep_string(old_path_part, verbose) + new_paths = list() + for replacement_def in new_path_part.split(','): + new_path, new_path_props = parse_rep_string(replacement_def, verbose) + new_paths.append((new_path, new_path_props)) + + def replace_def(match): + if match.group(2): + old_props = string_to_props(match.group(2), verbose) + else: + old_props = dict() + for filter_prop in old_path_props: + if filter_prop not in old_props: + if old_path_props[filter_prop] == "@UNSET": + continue + else: + return [match.group(0)] + else: + if old_props[filter_prop] != old_path_props[filter_prop] or old_path_props[filter_prop] == "@UNSET": + return [match.group(0)] #does not match current filter, skip the change. + if verbose: + print("Found match : {0}".format(match.group(0))) + out_paths = [] + for new_path, new_props in new_paths: + out = new_path + out_props = dict() + for prop_name, prop_value in new_props.items(): + if prop_name == "@OLD": + out_props = dict(old_props) + continue + if prop_value == "@SKIP": + out_props.pop(prop_name, None) + continue + if prop_value.startswith("@OLD"): + params = prop_value.split(":") + if prop_name in old_props: + out_props[prop_name] = old_props[params[1]] if len(params) > 1 else old_props[prop_name] + continue + out_props[prop_name] = prop_value + if out_props: + out += props_to_string(out_props) + out_paths.append(out) + if verbose: + print("Replacing with: {0}".format(out_paths)) + return out_paths + + def get_result(element): + p = re.compile("{0}\s*({{(.*)}})?$".format(re.escape(old_path))) + match = p.match(element) + if match: + return replace_def(match) # = re.sub(p,replace_def,element) + else: + return [element] + + bad_keys = {} + keys = list(dmm_data.dictionary.keys()) + for definition_key in keys: + def_value = dmm_data.dictionary[definition_key] + new_value = tuple(y for x in def_value for y in get_result(x)) + if new_value != def_value: + dmm_data.overwrite_key(definition_key, new_value, bad_keys) + dmm_data.reassign_bad_keys(bad_keys) + + +def update_map(map_filepath, updates, verbose=False): + print("Updating: {0}".format(map_filepath)) + dmm_data = DMM.from_file(map_filepath) + for update_string in updates: + update_path(dmm_data, update_string, verbose) + dmm_data.to_file(map_filepath, True) + + +def update_all_maps(map_directory, updates, verbose=False): + for root, _, files in os.walk(map_directory): + for filepath in files: + if filepath.endswith(".dmm"): + path = os.path.join(root, filepath) + update_map(path, updates, verbose) + + +def main(args): + if args.inline: + updates = [args.update_source] + else: + with open(args.update_source) as f: + updates = [line for line in f if line and not line.startswith("#") and not line.isspace()] + + if args.map: + update_map(args.map, updates, verbose=args.verbose) + else: + map_directory = args.directory or frontend.read_settings().map_folder + update_all_maps(map_directory, updates, verbose=args.verbose) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=desc, formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument("update_source", help="update file path / line of update notation") + parser.add_argument("--map", "-m", help="path to update, defaults to all maps in maps directory") + parser.add_argument("--directory", "-d", help="path to maps directory, defaults to _maps/") + parser.add_argument("--inline", "-i", help="treat update source as update string instead of path", action="store_true") + parser.add_argument("--verbose", "-v", help="toggle detailed update information", action="store_true") + main(parser.parse_args()) From 49d417dcf61fa324f77dac5a78d5275f2ddcb09b Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sat, 6 Oct 2018 13:00:01 -0400 Subject: [PATCH 12/68] Stop using old pygit2 because it's terrible on windows --- tools/mapmerge2/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index 095843b2d2..8d77427c73 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ -pygit2==0.26.0 +pygit2 bidict==0.13.1 Pillow==5.1.0 From 4d3c8d1af0319b2ac1b26e4f6c427291182cb2e3 Mon Sep 17 00:00:00 2001 From: Mewchild Date: Sat, 6 Oct 2018 14:07:47 -0500 Subject: [PATCH 13/68] Changes Security Processing --- maps/tether/tether-07-station3.dmm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index d55b2ed004..e1d584b84d 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -8455,13 +8455,11 @@ opacity = 0 }, /obj/structure/grille, -/obj/structure/window/reinforced/full, -/turf/simulated/floor, -/area/security/security_processing) -"oh" = ( -/obj/machinery/door/firedoor/glass, -/obj/structure/grille, -/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced/polarized{ + dir = 10; + icon_state = "fwindow"; + id = "sec_processing" + }, /turf/simulated/floor, /area/security/security_processing) "oi" = ( @@ -35028,7 +35026,7 @@ cS jk jk jk -oh +qQ oE po pO @@ -35170,7 +35168,7 @@ cT jy jk jk -oh +qQ oF pp pP @@ -35313,9 +35311,9 @@ mH lD lD of -oh -oh -oh +qQ +qQ +qQ qk qQ qQ From 9a4a01a8bb66b9e6e5b089d2116139650ee627a0 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sat, 6 Oct 2018 15:03:31 -0500 Subject: [PATCH 14/68] Merge pull request #5639 from Heroman3003/smes-fix Fixed smes terminal construction requiring more cable than used. --- code/modules/power/smes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index d072797366..2e97d735ba 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -255,7 +255,7 @@ if(istype(W, /obj/item/stack/cable_coil) && !terminal && !building_terminal) building_terminal = 1 var/obj/item/stack/cable_coil/CC = W - if (CC.get_amount() <= 10) + if (CC.get_amount() < 10) to_chat(user, "You need more cables.") building_terminal = 0 return 0 From e1e5109c42d1549541d95e653cdfbfdf1865b017 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 7 Oct 2018 15:43:45 -0500 Subject: [PATCH 16/68] Merge pull request #5638 from lbnesquik/Kates-Chemistry-Fix Fixes chem master dumping reagents. --- code/modules/reagents/Chemistry-Machinery.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 247a517a20..73597e6071 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -31,8 +31,8 @@ /obj/machinery/chem_master/New() ..() - var/datum/reagents/R = new/datum/reagents(120) - reagents = R + var/datum/reagents/R = new/datum/reagents(900) //Just a huge random number so the buffer should (probably) never dump your reagents. + reagents = R //There should be a nano ui thingy to warn of this. R.my_atom = src /obj/machinery/chem_master/ex_act(severity) From 91a67b6b375b17a57e62070ab069fd9f020d99a0 Mon Sep 17 00:00:00 2001 From: Spades Date: Sun, 7 Oct 2018 17:54:35 -0400 Subject: [PATCH 18/68] Update weldingtool.dm --- .../items/weapons/tools/weldingtool.dm | 1228 ++++++++--------- 1 file changed, 613 insertions(+), 615 deletions(-) diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index b62bc2013c..90d71541f9 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -1,4 +1,3 @@ -<<<<<<< HEAD #define WELDER_FUEL_BURN_INTERVAL 13 /* * Welding Tool @@ -611,617 +610,616 @@ toolspeed = 0.5 #undef WELDER_FUEL_BURN_INTERVAL -======= - -#define WELDER_FUEL_BURN_INTERVAL 13 -/* - * Welding Tool - */ -/obj/item/weapon/weldingtool - name = "\improper welding tool" - icon = 'icons/obj/tools.dmi' - icon_state = "welder" - item_state = "welder" - flags = CONDUCT - slot_flags = SLOT_BELT - - //Amount of OUCH when it's thrown - force = 3.0 - throwforce = 5.0 - throw_speed = 1 - throw_range = 5 - w_class = ITEMSIZE_SMALL - - //Cost to make in the autolathe - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) - - //R&D tech level - origin_tech = list(TECH_ENGINEERING = 1) - - //Welding tool specific stuff - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) - var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) - var/max_fuel = 20 //The max amount of fuel the welder can hold - - var/acti_sound = 'sound/items/welderactivate.ogg' - var/deac_sound = 'sound/items/welderdeactivate.ogg' - usesound = 'sound/items/Welder2.ogg' - var/change_icons = TRUE - var/flame_intensity = 2 //how powerful the emitted light is when used. - var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. - var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. - var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. - var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. - toolspeed = 1 - -/obj/item/weapon/weldingtool/New() -// var/random_fuel = min(rand(10,20),max_fuel) - var/datum/reagents/R = new/datum/reagents(max_fuel) - reagents = R - R.my_atom = src - R.add_reagent("fuel", max_fuel) - update_icon() - if(always_process) - processing_objects |= src - ..() - -/obj/item/weapon/weldingtool/Destroy() - if(welding || always_process) - processing_objects -= src - return ..() - -/obj/item/weapon/weldingtool/examine(mob/user) - if(..(user, 0)) - if(max_fuel) - to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) - -/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) - if(ishuman(A) && user.a_intent == I_HELP) - var/mob/living/carbon/human/H = A - var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] - - if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) - return ..() - - if(!welding) - to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") - return 1 - - if(S.robo_repair(15, BRUTE, "some dents", src, user)) - remove_fuel(1, user) - return 1 - - return ..() - -/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) - if(istype(W,/obj/item/weapon/tool/screwdriver)) - if(welding) - to_chat(user, "Stop welding first!") - return - status = !status - if(status) - to_chat(user, "You secure the welder.") - else - to_chat(user, "The welder can now be attached and modified.") - src.add_fingerprint(user) - return - - if((!status) && (istype(W,/obj/item/stack/rods))) - var/obj/item/stack/rods/R = W - R.use(1) - var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) - src.loc = F - F.weldtool = src - if (user.client) - user.client.screen -= src - if (user.r_hand == src) - user.remove_from_mob(src) - else - user.remove_from_mob(src) - src.master = F - src.layer = initial(src.layer) - user.remove_from_mob(src) - if (user.client) - user.client.screen -= src - src.loc = F - src.add_fingerprint(user) - return - - ..() - return - - -/obj/item/weapon/weldingtool/process() - if(welding) - ++burned_fuel_for - if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) - remove_fuel(1) - - - - if(get_fuel() < 1) - setWelding(0) - - //I'm not sure what this does. I assume it has to do with starting fires... - //...but it doesnt check to see if the welder is on or not. - var/turf/location = src.loc - if(istype(location, /mob/living)) - var/mob/living/M = location - if(M.item_is_in_hands(src)) - location = get_turf(M) - if (istype(location, /turf)) - location.hotspot_expose(700, 5) - - -/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) - if(!proximity) return - if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) - if(!welding && max_fuel) - O.reagents.trans_to_obj(src, max_fuel) - to_chat(user, "Welder refueled") - playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) - return - else if(!welding) - to_chat(user, "[src] doesn't use fuel.") - return - else - message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") - log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") - to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") - var/obj/structure/reagent_dispensers/fueltank/tank = O - tank.explode() - return - if (src.welding) - remove_fuel(1) - var/turf/location = get_turf(user) - if(isliving(O)) - var/mob/living/L = O - L.IgniteMob() - if (istype(location, /turf)) - location.hotspot_expose(700, 50, 1) - return - - -/obj/item/weapon/weldingtool/attack_self(mob/user as mob) - setWelding(!welding, usr) - return - -//Returns the amount of fuel in the welder -/obj/item/weapon/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("fuel") - -/obj/item/weapon/weldingtool/proc/get_max_fuel() - return max_fuel - -//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() -/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(amount) - burned_fuel_for = 0 // Reset the counter since we're removing fuel. - if(get_fuel() >= amount) - reagents.remove_reagent("fuel", amount) - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more welding fuel to complete this task.") - update_icon() - return 0 - -//Returns whether or not the welding tool is currently on. -/obj/item/weapon/weldingtool/proc/isOn() - return src.welding - -/obj/item/weapon/weldingtool/update_icon() - ..() - overlays.Cut() - // Welding overlay. - if(welding) - var/image/I = image(icon, src, "[icon_state]-on") - overlays.Add(I) - item_state = "[initial(item_state)]1" - else - item_state = initial(item_state) - - // Fuel counter overlay. - if(change_icons && get_max_fuel()) - var/ratio = get_fuel() / get_max_fuel() - ratio = Ceiling(ratio*4) * 25 - var/image/I = image(icon, src, "[icon_state][ratio]") - overlays.Add(I) - - // Lights - if(welding && flame_intensity) - set_light(flame_intensity, flame_intensity, flame_color) - else - set_light(0) - -// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" - var/mob/M = loc - if(istype(M)) - M.update_inv_l_hand() - M.update_inv_r_hand() - -/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) - if(!canremove) - return - - if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist - - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? - return - - if (!( istype(over_object, /obj/screen) )) - return ..() - - //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. - //there's got to be a better way of doing this. - if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) - return - - if (( usr.restrained() ) || ( usr.stat )) - return - - if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) - return - - switch(over_object.name) - if("r_hand") - usr.u_equip(src) - usr.put_in_r_hand(src) - if("l_hand") - usr.u_equip(src) - usr.put_in_l_hand(src) - src.add_fingerprint(usr) - -//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) -//so that the welding tool updates accordingly -/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) - if(!status) return - - var/turf/T = get_turf(src) - //If we're turning it on - if(set_welding && !welding) - if (get_fuel() > 0) - if(M) - to_chat(M, "You switch the [src] on.") - else if(T) - T.visible_message("\The [src] turns on.") - playsound(loc, acti_sound, 50, 1) - src.force = 15 - src.damtype = "fire" - src.w_class = ITEMSIZE_LARGE - src.hitsound = 'sound/items/welder.ogg' - welding = 1 - update_icon() - if(!always_process) - processing_objects |= src - else - if(M) - var/msg = max_fuel ? "welding fuel" : "charge" - to_chat(M, "You need more [msg] to complete this task.") - return - //Otherwise - else if(!set_welding && welding) - if(!always_process) - processing_objects -= src - if(M) - to_chat(M, "You switch \the [src] off.") - else if(T) - T.visible_message("\The [src] turns off.") - playsound(loc, deac_sound, 50, 1) - src.force = 3 - src.damtype = "brute" - src.w_class = initial(src.w_class) - src.welding = 0 - src.hitsound = initial(src.hitsound) - update_icon() - -//Decides whether or not to damage a player's eyes based on what they're wearing as protection -//Note: This should probably be moved to mob -/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) - if(!istype(user)) - return 1 - var/safety = user.eyecheck() - safety = between(-1, safety + eye_safety_modifier, 2) - if(istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] - if(!E) - return - switch(safety) - if(1) - to_chat(usr, "Your eyes sting a little.") - E.damage += rand(1, 2) - if(E.damage > 12) - user.eye_blurry += rand(3,6) - if(0) - to_chat(usr, "Your eyes burn.") - E.damage += rand(2, 4) - if(E.damage > 10) - E.damage += rand(4,10) - if(-1) - to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") - user.eye_blurry += rand(12,20) - E.damage += rand(12, 16) - if(safety<2) - - if(E.damage > 10) - to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") - - if (E.damage >= E.min_broken_damage) - to_chat(user, "You go blind!") - user.sdisabilities |= BLIND - else if (E.damage >= E.min_bruised_damage) - to_chat(user, "You go blind!") - user.Blind(5) - user.eye_blurry = 5 - user.disabilities |= NEARSIGHTED - spawn(100) - user.disabilities &= ~NEARSIGHTED - return - -/obj/item/weapon/weldingtool/is_hot() - return isOn() - -/obj/item/weapon/weldingtool/largetank - name = "industrial welding tool" - desc = "A slightly larger welder with a larger tank." - icon_state = "indwelder" - max_fuel = 40 - origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) - -/obj/item/weapon/weldingtool/largetank/cyborg - name = "integrated welding tool" - desc = "An advanced welder designed to be used in robotic systems." - toolspeed = 0.5 - -/obj/item/weapon/weldingtool/hugetank - name = "upgraded welding tool" - desc = "A much larger welder with a huge tank." - icon_state = "indwelder" - max_fuel = 80 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - -/obj/item/weapon/weldingtool/mini - name = "emergency welding tool" - desc = "A miniature welder used during emergencies." - icon_state = "miniwelder" - max_fuel = 10 - w_class = ITEMSIZE_SMALL - matter = list(MAT_METAL = 30, MAT_GLASS = 10) - change_icons = 0 - toolspeed = 2 - eye_safety_modifier = 1 // Safer on eyes. - -/obj/item/weapon/weldingtool/alien - name = "alien welding tool" - desc = "An alien welding tool. Whatever fuel it uses, it never runs out." - icon = 'icons/obj/abductor.dmi' - icon_state = "welder" - toolspeed = 0.1 - flame_color = "#6699FF" // Light bluish. - eye_safety_modifier = 2 - change_icons = 0 - origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) - always_process = TRUE - -/obj/item/weapon/weldingtool/alien/process() - if(get_fuel() <= get_max_fuel()) - reagents.add_reagent("fuel", 1) - ..() - -/obj/item/weapon/weldingtool/experimental - name = "experimental welding tool" - desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." - icon_state = "exwelder" - max_fuel = 40 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - toolspeed = 0.5 - change_icons = 0 - flame_intensity = 3 - always_process = TRUE - var/nextrefueltick = 0 - -/obj/item/weapon/weldingtool/experimental/process() - ..() - if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) - nextrefueltick = world.time + 10 - reagents.add_reagent("fuel", 1) - -/* - * Backpack Welder. - */ - -/obj/item/weapon/weldingtool/tubefed - name = "tube-fed welding tool" - desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." - icon_state = "tubewelder" - max_fuel = 10 - w_class = ITEMSIZE_NO_CONTAINER - matter = null - toolspeed = 1.25 - change_icons = 0 - flame_intensity = 1 - eye_safety_modifier = 1 - always_process = TRUE - var/obj/item/weapon/weldpack/mounted_pack = null - -/obj/item/weapon/weldingtool/tubefed/New(location) - ..() - if(istype(location, /obj/item/weapon/weldpack)) - var/obj/item/weapon/weldpack/holder = location - mounted_pack = holder - else - qdel(src) - -/obj/item/weapon/weldingtool/tubefed/Destroy() - mounted_pack.nozzle = null - mounted_pack = null - return ..() - -/obj/item/weapon/weldingtool/tubefed/process() - if(mounted_pack) - if(!istype(mounted_pack.loc,/mob/living/carbon/human)) - mounted_pack.return_nozzle() - else - var/mob/living/carbon/human/H = mounted_pack.loc - if(H.back != mounted_pack) - mounted_pack.return_nozzle() - - if(mounted_pack.loc != src.loc && src.loc != mounted_pack) - mounted_pack.return_nozzle() - visible_message("\The [src] retracts to its fueltank.") - - if(get_fuel() <= get_max_fuel()) - mounted_pack.reagents.trans_to_obj(src, 1) - - ..() - -/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) - ..() - if(src.loc != user) - mounted_pack.return_nozzle() - to_chat(user, "\The [src] retracts to its fueltank.") - -/* - * Electric/Arc Welder - */ - -/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC - name = "electric welding tool" - desc = "A welder which runs off of electricity." - icon_state = "arcwelder" - max_fuel = 0 //We'll handle the consumption later. - item_state = "ewelder" - var/obj/item/weapon/cell/power_supply //What type of power cell this uses - var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery - var/cell_type = /obj/item/weapon/cell/device - var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 - flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. - acti_sound = 'sound/effects/sparks4.ogg' - deac_sound = 'sound/effects/sparks4.ogg' - -/obj/item/weapon/weldingtool/electric/unloaded/New() - cell_type = null - -/obj/item/weapon/weldingtool/electric/New() - ..() - if(cell_type == null) - update_icon() - else if(cell_type) - power_supply = new cell_type(src) - else - power_supply = new /obj/item/weapon/cell/device(src) - update_icon() - -/obj/item/weapon/weldingtool/electric/get_cell() - return power_supply - -/obj/item/weapon/weldingtool/electric/examine(mob/user) - if(get_dist(src, user) > 1) - to_chat(user, desc) - else // The << need to stay, for some reason - if(power_supply) - user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) - else - user << text("\icon[] The [] has no power cell!", src, src.name) - -/obj/item/weapon/weldingtool/electric/get_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.charge - else if(power_supply) - return power_supply.charge - else - return 0 - -/obj/item/weapon/weldingtool/electric/get_max_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.maxcharge - else if(power_supply) - return power_supply.maxcharge - return 0 - -/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(get_fuel() >= amount) - power_supply.checked_use(charge_cost) - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(!external || !external.use(charge_cost)) //Take power from the borg... - power_supply.give(charge_cost) //Give it back to the cell. - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more energy to complete this task.") - update_icon() - return 0 - -/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) - if(user.get_inactive_hand() == src) - if(power_supply) - power_supply.update_icon() - user.put_in_hands(power_supply) - power_supply = null - to_chat(user, "You remove the cell from the [src].") - setWelding(0) - update_icon() - return - ..() - else - return ..() - -/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) - if(istype(W, /obj/item/weapon/cell)) - if(istype(W, /obj/item/weapon/cell/device)) - if(!power_supply) - user.drop_item() - W.loc = src - power_supply = W - to_chat(user, "You install a cell in \the [src].") - update_icon() - else - to_chat(user, "\The [src] already has a cell.") - else - to_chat(user, "\The [src] cannot use that type of cell.") - else - ..() - -/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() - if(isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - return R.cell - if(istype(src.loc, /obj/item/rig_module)) - var/obj/item/rig_module/module = src.loc - if(module.holder && module.holder.wearer) - var/mob/living/carbon/human/H = module.holder.wearer - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit)) - return suit.cell - return null - -/obj/item/weapon/weldingtool/electric/mounted - use_external_power = 1 - -/obj/item/weapon/weldingtool/electric/mounted/cyborg - toolspeed = 0.5 - -#undef WELDER_FUEL_BURN_INTERVAL ->>>>>>> 3398513... Merge pull request #5628 from lbnesquik/Kates-Simple-The +======= + +#define WELDER_FUEL_BURN_INTERVAL 13 +/* + * Welding Tool + */ +/obj/item/weapon/weldingtool + name = "\improper welding tool" + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + flags = CONDUCT + slot_flags = SLOT_BELT + + //Amount of OUCH when it's thrown + force = 3.0 + throwforce = 5.0 + throw_speed = 1 + throw_range = 5 + w_class = ITEMSIZE_SMALL + + //Cost to make in the autolathe + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) + + //R&D tech level + origin_tech = list(TECH_ENGINEERING = 1) + + //Welding tool specific stuff + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + + var/acti_sound = 'sound/items/welderactivate.ogg' + var/deac_sound = 'sound/items/welderdeactivate.ogg' + usesound = 'sound/items/Welder2.ogg' + var/change_icons = TRUE + var/flame_intensity = 2 //how powerful the emitted light is when used. + var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. + var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. + var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. + var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. + toolspeed = 1 + +/obj/item/weapon/weldingtool/New() +// var/random_fuel = min(rand(10,20),max_fuel) + var/datum/reagents/R = new/datum/reagents(max_fuel) + reagents = R + R.my_atom = src + R.add_reagent("fuel", max_fuel) + update_icon() + if(always_process) + processing_objects |= src + ..() + +/obj/item/weapon/weldingtool/Destroy() + if(welding || always_process) + processing_objects -= src + return ..() + +/obj/item/weapon/weldingtool/examine(mob/user) + if(..(user, 0)) + if(max_fuel) + to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) + +/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) + if(ishuman(A) && user.a_intent == I_HELP) + var/mob/living/carbon/human/H = A + var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] + + if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) + return ..() + + if(!welding) + to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") + return 1 + + if(S.robo_repair(15, BRUTE, "some dents", src, user)) + remove_fuel(1, user) + return 1 + + return ..() + +/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) + if(istype(W,/obj/item/weapon/tool/screwdriver)) + if(welding) + to_chat(user, "Stop welding first!") + return + status = !status + if(status) + to_chat(user, "You secure the welder.") + else + to_chat(user, "The welder can now be attached and modified.") + src.add_fingerprint(user) + return + + if((!status) && (istype(W,/obj/item/stack/rods))) + var/obj/item/stack/rods/R = W + R.use(1) + var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) + src.loc = F + F.weldtool = src + if (user.client) + user.client.screen -= src + if (user.r_hand == src) + user.remove_from_mob(src) + else + user.remove_from_mob(src) + src.master = F + src.layer = initial(src.layer) + user.remove_from_mob(src) + if (user.client) + user.client.screen -= src + src.loc = F + src.add_fingerprint(user) + return + + ..() + return + + +/obj/item/weapon/weldingtool/process() + if(welding) + ++burned_fuel_for + if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) + remove_fuel(1) + + + + if(get_fuel() < 1) + setWelding(0) + + //I'm not sure what this does. I assume it has to do with starting fires... + //...but it doesnt check to see if the welder is on or not. + var/turf/location = src.loc + if(istype(location, /mob/living)) + var/mob/living/M = location + if(M.item_is_in_hands(src)) + location = get_turf(M) + if (istype(location, /turf)) + location.hotspot_expose(700, 5) + + +/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) + if(!proximity) return + if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) + if(!welding && max_fuel) + O.reagents.trans_to_obj(src, max_fuel) + to_chat(user, "Welder refueled") + playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) + return + else if(!welding) + to_chat(user, "[src] doesn't use fuel.") + return + else + message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") + log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") + to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") + var/obj/structure/reagent_dispensers/fueltank/tank = O + tank.explode() + return + if (src.welding) + remove_fuel(1) + var/turf/location = get_turf(user) + if(isliving(O)) + var/mob/living/L = O + L.IgniteMob() + if (istype(location, /turf)) + location.hotspot_expose(700, 50, 1) + return + + +/obj/item/weapon/weldingtool/attack_self(mob/user as mob) + setWelding(!welding, usr) + return + +//Returns the amount of fuel in the welder +/obj/item/weapon/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("fuel") + +/obj/item/weapon/weldingtool/proc/get_max_fuel() + return max_fuel + +//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() +/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(amount) + burned_fuel_for = 0 // Reset the counter since we're removing fuel. + if(get_fuel() >= amount) + reagents.remove_reagent("fuel", amount) + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more welding fuel to complete this task.") + update_icon() + return 0 + +//Returns whether or not the welding tool is currently on. +/obj/item/weapon/weldingtool/proc/isOn() + return src.welding + +/obj/item/weapon/weldingtool/update_icon() + ..() + overlays.Cut() + // Welding overlay. + if(welding) + var/image/I = image(icon, src, "[icon_state]-on") + overlays.Add(I) + item_state = "[initial(item_state)]1" + else + item_state = initial(item_state) + + // Fuel counter overlay. + if(change_icons && get_max_fuel()) + var/ratio = get_fuel() / get_max_fuel() + ratio = Ceiling(ratio*4) * 25 + var/image/I = image(icon, src, "[icon_state][ratio]") + overlays.Add(I) + + // Lights + if(welding && flame_intensity) + set_light(flame_intensity, flame_intensity, flame_color) + else + set_light(0) + +// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" + var/mob/M = loc + if(istype(M)) + M.update_inv_l_hand() + M.update_inv_r_hand() + +/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) + if(!canremove) + return + + if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist + + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? + return + + if (!( istype(over_object, /obj/screen) )) + return ..() + + //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. + //there's got to be a better way of doing this. + if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) + return + + if (( usr.restrained() ) || ( usr.stat )) + return + + if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) + return + + switch(over_object.name) + if("r_hand") + usr.u_equip(src) + usr.put_in_r_hand(src) + if("l_hand") + usr.u_equip(src) + usr.put_in_l_hand(src) + src.add_fingerprint(usr) + +//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) +//so that the welding tool updates accordingly +/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) + if(!status) return + + var/turf/T = get_turf(src) + //If we're turning it on + if(set_welding && !welding) + if (get_fuel() > 0) + if(M) + to_chat(M, "You switch the [src] on.") + else if(T) + T.visible_message("\The [src] turns on.") + playsound(loc, acti_sound, 50, 1) + src.force = 15 + src.damtype = "fire" + src.w_class = ITEMSIZE_LARGE + src.hitsound = 'sound/items/welder.ogg' + welding = 1 + update_icon() + if(!always_process) + processing_objects |= src + else + if(M) + var/msg = max_fuel ? "welding fuel" : "charge" + to_chat(M, "You need more [msg] to complete this task.") + return + //Otherwise + else if(!set_welding && welding) + if(!always_process) + processing_objects -= src + if(M) + to_chat(M, "You switch \the [src] off.") + else if(T) + T.visible_message("\The [src] turns off.") + playsound(loc, deac_sound, 50, 1) + src.force = 3 + src.damtype = "brute" + src.w_class = initial(src.w_class) + src.welding = 0 + src.hitsound = initial(src.hitsound) + update_icon() + +//Decides whether or not to damage a player's eyes based on what they're wearing as protection +//Note: This should probably be moved to mob +/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) + if(!istype(user)) + return 1 + var/safety = user.eyecheck() + safety = between(-1, safety + eye_safety_modifier, 2) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] + if(!E) + return + switch(safety) + if(1) + to_chat(usr, "Your eyes sting a little.") + E.damage += rand(1, 2) + if(E.damage > 12) + user.eye_blurry += rand(3,6) + if(0) + to_chat(usr, "Your eyes burn.") + E.damage += rand(2, 4) + if(E.damage > 10) + E.damage += rand(4,10) + if(-1) + to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") + user.eye_blurry += rand(12,20) + E.damage += rand(12, 16) + if(safety<2) + + if(E.damage > 10) + to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") + + if (E.damage >= E.min_broken_damage) + to_chat(user, "You go blind!") + user.sdisabilities |= BLIND + else if (E.damage >= E.min_bruised_damage) + to_chat(user, "You go blind!") + user.Blind(5) + user.eye_blurry = 5 + user.disabilities |= NEARSIGHTED + spawn(100) + user.disabilities &= ~NEARSIGHTED + return + +/obj/item/weapon/weldingtool/is_hot() + return isOn() + +/obj/item/weapon/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) + +/obj/item/weapon/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + toolspeed = 0.5 + +/obj/item/weapon/weldingtool/hugetank + name = "upgraded welding tool" + desc = "A much larger welder with a huge tank." + icon_state = "indwelder" + max_fuel = 80 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + +/obj/item/weapon/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = ITEMSIZE_SMALL + matter = list(MAT_METAL = 30, MAT_GLASS = 10) + change_icons = 0 + toolspeed = 2 + eye_safety_modifier = 1 // Safer on eyes. + +/obj/item/weapon/weldingtool/alien + name = "alien welding tool" + desc = "An alien welding tool. Whatever fuel it uses, it never runs out." + icon = 'icons/obj/abductor.dmi' + icon_state = "welder" + toolspeed = 0.1 + flame_color = "#6699FF" // Light bluish. + eye_safety_modifier = 2 + change_icons = 0 + origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) + always_process = TRUE + +/obj/item/weapon/weldingtool/alien/process() + if(get_fuel() <= get_max_fuel()) + reagents.add_reagent("fuel", 1) + ..() + +/obj/item/weapon/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." + icon_state = "exwelder" + max_fuel = 40 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + toolspeed = 0.5 + change_icons = 0 + flame_intensity = 3 + always_process = TRUE + var/nextrefueltick = 0 + +/obj/item/weapon/weldingtool/experimental/process() + ..() + if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("fuel", 1) + +/* + * Backpack Welder. + */ + +/obj/item/weapon/weldingtool/tubefed + name = "tube-fed welding tool" + desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." + icon_state = "tubewelder" + max_fuel = 10 + w_class = ITEMSIZE_NO_CONTAINER + matter = null + toolspeed = 1.25 + change_icons = 0 + flame_intensity = 1 + eye_safety_modifier = 1 + always_process = TRUE + var/obj/item/weapon/weldpack/mounted_pack = null + +/obj/item/weapon/weldingtool/tubefed/New(location) + ..() + if(istype(location, /obj/item/weapon/weldpack)) + var/obj/item/weapon/weldpack/holder = location + mounted_pack = holder + else + qdel(src) + +/obj/item/weapon/weldingtool/tubefed/Destroy() + mounted_pack.nozzle = null + mounted_pack = null + return ..() + +/obj/item/weapon/weldingtool/tubefed/process() + if(mounted_pack) + if(!istype(mounted_pack.loc,/mob/living/carbon/human)) + mounted_pack.return_nozzle() + else + var/mob/living/carbon/human/H = mounted_pack.loc + if(H.back != mounted_pack) + mounted_pack.return_nozzle() + + if(mounted_pack.loc != src.loc && src.loc != mounted_pack) + mounted_pack.return_nozzle() + visible_message("\The [src] retracts to its fueltank.") + + if(get_fuel() <= get_max_fuel()) + mounted_pack.reagents.trans_to_obj(src, 1) + + ..() + +/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) + ..() + if(src.loc != user) + mounted_pack.return_nozzle() + to_chat(user, "\The [src] retracts to its fueltank.") + +/* + * Electric/Arc Welder + */ + +/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC + name = "electric welding tool" + desc = "A welder which runs off of electricity." + icon_state = "arcwelder" + max_fuel = 0 //We'll handle the consumption later. + item_state = "ewelder" + var/obj/item/weapon/cell/power_supply //What type of power cell this uses + var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery + var/cell_type = /obj/item/weapon/cell/device + var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 + flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. + acti_sound = 'sound/effects/sparks4.ogg' + deac_sound = 'sound/effects/sparks4.ogg' + +/obj/item/weapon/weldingtool/electric/unloaded/New() + cell_type = null + +/obj/item/weapon/weldingtool/electric/New() + ..() + if(cell_type == null) + update_icon() + else if(cell_type) + power_supply = new cell_type(src) + else + power_supply = new /obj/item/weapon/cell/device(src) + update_icon() + +/obj/item/weapon/weldingtool/electric/get_cell() + return power_supply + +/obj/item/weapon/weldingtool/electric/examine(mob/user) + if(get_dist(src, user) > 1) + to_chat(user, desc) + else // The << need to stay, for some reason + if(power_supply) + user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) + else + user << text("\icon[] The [] has no power cell!", src, src.name) + +/obj/item/weapon/weldingtool/electric/get_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.charge + else if(power_supply) + return power_supply.charge + else + return 0 + +/obj/item/weapon/weldingtool/electric/get_max_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.maxcharge + else if(power_supply) + return power_supply.maxcharge + return 0 + +/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(get_fuel() >= amount) + power_supply.checked_use(charge_cost) + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(!external || !external.use(charge_cost)) //Take power from the borg... + power_supply.give(charge_cost) //Give it back to the cell. + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more energy to complete this task.") + update_icon() + return 0 + +/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) + if(user.get_inactive_hand() == src) + if(power_supply) + power_supply.update_icon() + user.put_in_hands(power_supply) + power_supply = null + to_chat(user, "You remove the cell from the [src].") + setWelding(0) + update_icon() + return + ..() + else + return ..() + +/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) + if(istype(W, /obj/item/weapon/cell)) + if(istype(W, /obj/item/weapon/cell/device)) + if(!power_supply) + user.drop_item() + W.loc = src + power_supply = W + to_chat(user, "You install a cell in \the [src].") + update_icon() + else + to_chat(user, "\The [src] already has a cell.") + else + to_chat(user, "\The [src] cannot use that type of cell.") + else + ..() + +/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + return R.cell + if(istype(src.loc, /obj/item/rig_module)) + var/obj/item/rig_module/module = src.loc + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit)) + return suit.cell + return null + +/obj/item/weapon/weldingtool/electric/mounted + use_external_power = 1 + +/obj/item/weapon/weldingtool/electric/mounted/cyborg + toolspeed = 0.5 + +#undef WELDER_FUEL_BURN_INTERVAL From b1b565c352c4242ac65dca7993aba75f40534671 Mon Sep 17 00:00:00 2001 From: Spades Date: Sun, 7 Oct 2018 17:55:01 -0400 Subject: [PATCH 19/68] Update weldingtool.dm --- .../items/weapons/tools/weldingtool.dm | 614 ------------------ 1 file changed, 614 deletions(-) diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 90d71541f9..b77045df22 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -1,617 +1,3 @@ -#define WELDER_FUEL_BURN_INTERVAL 13 -/* - * Welding Tool - */ -/obj/item/weapon/weldingtool - name = "welding tool" - icon = 'icons/obj/tools.dmi' - icon_state = "welder" - item_state = "welder" - flags = CONDUCT - slot_flags = SLOT_BELT - - //Amount of OUCH when it's thrown - force = 3.0 - throwforce = 5.0 - throw_speed = 1 - throw_range = 5 - w_class = ITEMSIZE_SMALL - - //Cost to make in the autolathe - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) - - //R&D tech level - origin_tech = list(TECH_ENGINEERING = 1) - - //Welding tool specific stuff - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) - var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) - var/max_fuel = 20 //The max amount of fuel the welder can hold - - var/acti_sound = 'sound/items/welderactivate.ogg' - var/deac_sound = 'sound/items/welderdeactivate.ogg' - usesound = 'sound/items/Welder2.ogg' - var/change_icons = TRUE - var/flame_intensity = 2 //how powerful the emitted light is when used. - var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. - var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. - var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. - var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. - toolspeed = 1 - -/obj/item/weapon/weldingtool/New() -// var/random_fuel = min(rand(10,20),max_fuel) - var/datum/reagents/R = new/datum/reagents(max_fuel) - reagents = R - R.my_atom = src - R.add_reagent("fuel", max_fuel) - update_icon() - if(always_process) - processing_objects |= src - ..() - -/obj/item/weapon/weldingtool/Destroy() - if(welding || always_process) - processing_objects -= src - return ..() - -/obj/item/weapon/weldingtool/examine(mob/user) - if(..(user, 0)) - if(max_fuel) - to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) - -/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) - if(ishuman(A) && user.a_intent == I_HELP) - var/mob/living/carbon/human/H = A - var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] - - if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) - return ..() - - if(!welding) - to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") - return 1 - - if(S.robo_repair(15, BRUTE, "some dents", src, user)) - remove_fuel(1, user) - return 1 - - return ..() - -/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) - if(istype(W,/obj/item/weapon/tool/screwdriver)) - if(welding) - to_chat(user, "Stop welding first!") - return - status = !status - if(status) - to_chat(user, "You secure the welder.") - else - to_chat(user, "The welder can now be attached and modified.") - src.add_fingerprint(user) - return - - if((!status) && (istype(W,/obj/item/stack/rods))) - var/obj/item/stack/rods/R = W - R.use(1) - var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) - src.loc = F - F.weldtool = src - if (user.client) - user.client.screen -= src - if (user.r_hand == src) - user.remove_from_mob(src) - else - user.remove_from_mob(src) - src.master = F - src.layer = initial(src.layer) - user.remove_from_mob(src) - if (user.client) - user.client.screen -= src - src.loc = F - src.add_fingerprint(user) - return - - ..() - return - - -/obj/item/weapon/weldingtool/process() - if(welding) - ++burned_fuel_for - if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) - remove_fuel(1) - - - - if(get_fuel() < 1) - setWelding(0) - - //I'm not sure what this does. I assume it has to do with starting fires... - //...but it doesnt check to see if the welder is on or not. - var/turf/location = src.loc - if(istype(location, /mob/living)) - var/mob/living/M = location - if(M.item_is_in_hands(src)) - location = get_turf(M) - if (istype(location, /turf)) - location.hotspot_expose(700, 5) - - -/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) - if(!proximity) return - if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) - if(!welding && max_fuel) - O.reagents.trans_to_obj(src, max_fuel) - to_chat(user, "Welder refueled") - playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) - return - else if(!welding) - to_chat(user, "[src] doesn't use fuel.") - return - else - message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") - log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") - to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") - var/obj/structure/reagent_dispensers/fueltank/tank = O - tank.explode() - return - if (src.welding) - remove_fuel(1) - var/turf/location = get_turf(user) - if(isliving(O)) - var/mob/living/L = O - L.IgniteMob() - if (istype(location, /turf)) - location.hotspot_expose(700, 50, 1) - return - - -/obj/item/weapon/weldingtool/attack_self(mob/user as mob) - setWelding(!welding, usr) - return - -//Returns the amount of fuel in the welder -/obj/item/weapon/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("fuel") - -/obj/item/weapon/weldingtool/proc/get_max_fuel() - return max_fuel - -//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() -/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(amount) - burned_fuel_for = 0 // Reset the counter since we're removing fuel. - if(get_fuel() >= amount) - reagents.remove_reagent("fuel", amount) - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more welding fuel to complete this task.") - update_icon() - return 0 - -//Returns whether or not the welding tool is currently on. -/obj/item/weapon/weldingtool/proc/isOn() - return src.welding - -/obj/item/weapon/weldingtool/update_icon() - ..() - overlays.Cut() - // Welding overlay. - if(welding) - var/image/I = image(icon, src, "[icon_state]-on") - overlays.Add(I) - item_state = "[initial(item_state)]1" - else - item_state = initial(item_state) - - // Fuel counter overlay. - if(change_icons && get_max_fuel()) - var/ratio = get_fuel() / get_max_fuel() - ratio = Ceiling(ratio*4) * 25 - var/image/I = image(icon, src, "[icon_state][ratio]") - overlays.Add(I) - - // Lights - if(welding && flame_intensity) - set_light(flame_intensity, flame_intensity, flame_color) - else - set_light(0) - -// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" - var/mob/M = loc - if(istype(M)) - M.update_inv_l_hand() - M.update_inv_r_hand() - -/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) - if(!canremove) - return - - if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist - - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? - return - - if (!( istype(over_object, /obj/screen) )) - return ..() - - //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. - //there's got to be a better way of doing this. - if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) - return - - if (( usr.restrained() ) || ( usr.stat )) - return - - if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) - return - - switch(over_object.name) - if("r_hand") - usr.u_equip(src) - usr.put_in_r_hand(src) - if("l_hand") - usr.u_equip(src) - usr.put_in_l_hand(src) - src.add_fingerprint(usr) - -//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) -//so that the welding tool updates accordingly -/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) - if(!status) return - - var/turf/T = get_turf(src) - //If we're turning it on - if(set_welding && !welding) - if (get_fuel() > 0) - if(M) - to_chat(M, "You switch the [src] on.") - else if(T) - T.visible_message("\The [src] turns on.") - playsound(loc, acti_sound, 50, 1) - src.force = 15 - src.damtype = "fire" - src.w_class = ITEMSIZE_LARGE - src.hitsound = 'sound/items/welder.ogg' - welding = 1 - update_icon() - if(!always_process) - processing_objects |= src - else - if(M) - var/msg = max_fuel ? "welding fuel" : "charge" - to_chat(M, "You need more [msg] to complete this task.") - return - //Otherwise - else if(!set_welding && welding) - if(!always_process) - processing_objects -= src - if(M) - to_chat(M, "You switch \the [src] off.") - else if(T) - T.visible_message("\The [src] turns off.") - playsound(loc, deac_sound, 50, 1) - src.force = 3 - src.damtype = "brute" - src.w_class = initial(src.w_class) - src.welding = 0 - src.hitsound = initial(src.hitsound) - update_icon() - -//Decides whether or not to damage a player's eyes based on what they're wearing as protection -//Note: This should probably be moved to mob -/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) - if(!istype(user)) - return 1 - var/safety = user.eyecheck() - safety = between(-1, safety + eye_safety_modifier, 2) - if(istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] - if(!E) - return - if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF - switch(safety) - if(1) - to_chat(usr, "Your eyes sting a little.") - E.damage += rand(1, 2) - if(E.damage > 12) - user.eye_blurry += rand(3,6) - if(0) - to_chat(usr, "Your eyes burn.") - E.damage += rand(2, 4) - if(E.damage > 10) - E.damage += rand(4,10) - if(-1) - to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") - user.eye_blurry += rand(12,20) - E.damage += rand(12, 16) - if(safety<2) - - if(E.damage > 10) - to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") - - if (E.damage >= E.min_broken_damage) - to_chat(user, "You go blind!") - user.sdisabilities |= BLIND - else if (E.damage >= E.min_bruised_damage) - to_chat(user, "You go blind!") - user.Blind(5) - user.eye_blurry = 5 - user.disabilities |= NEARSIGHTED - spawn(100) - user.disabilities &= ~NEARSIGHTED - return - -/obj/item/weapon/weldingtool/is_hot() - return isOn() - -/obj/item/weapon/weldingtool/largetank - name = "industrial welding tool" - desc = "A slightly larger welder with a larger tank." - icon_state = "indwelder" - max_fuel = 40 - origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) - -/obj/item/weapon/weldingtool/largetank/cyborg - name = "integrated welding tool" - desc = "An advanced welder designed to be used in robotic systems." - toolspeed = 0.5 - -/obj/item/weapon/weldingtool/hugetank - name = "upgraded welding tool" - desc = "A much larger welder with a huge tank." - icon_state = "indwelder" - max_fuel = 80 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - -/obj/item/weapon/weldingtool/mini - name = "emergency welding tool" - desc = "A miniature welder used during emergencies." - icon_state = "miniwelder" - max_fuel = 10 - w_class = ITEMSIZE_SMALL - matter = list(MAT_METAL = 30, MAT_GLASS = 10) - change_icons = 0 - toolspeed = 2 - eye_safety_modifier = 1 // Safer on eyes. - -/obj/item/weapon/weldingtool/alien - name = "alien welding tool" - desc = "An alien welding tool. Whatever fuel it uses, it never runs out." - icon = 'icons/obj/abductor.dmi' - icon_state = "welder" - toolspeed = 0.1 - flame_color = "#6699FF" // Light bluish. - eye_safety_modifier = 2 - change_icons = 0 - origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) - always_process = TRUE - -/obj/item/weapon/weldingtool/alien/process() - if(get_fuel() <= get_max_fuel()) - reagents.add_reagent("fuel", 1) - ..() - -/obj/item/weapon/weldingtool/experimental - name = "experimental welding tool" - desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." - icon_state = "exwelder" - max_fuel = 40 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - toolspeed = 0.5 - change_icons = 0 - flame_intensity = 3 - always_process = TRUE - var/nextrefueltick = 0 - -/obj/item/weapon/weldingtool/experimental/process() - ..() - if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) - nextrefueltick = world.time + 10 - reagents.add_reagent("fuel", 1) - -/* - * Backpack Welder. - */ - -/obj/item/weapon/weldingtool/tubefed - name = "tube-fed welding tool" - desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." - icon_state = "tubewelder" - max_fuel = 10 - w_class = ITEMSIZE_NO_CONTAINER - matter = null - toolspeed = 1.25 - change_icons = 0 - flame_intensity = 1 - eye_safety_modifier = 1 - always_process = TRUE - var/obj/item/weapon/weldpack/mounted_pack = null - -/obj/item/weapon/weldingtool/tubefed/New(location) - ..() - if(istype(location, /obj/item/weapon/weldpack)) - var/obj/item/weapon/weldpack/holder = location - mounted_pack = holder - else - qdel(src) - -/obj/item/weapon/weldingtool/tubefed/Destroy() - mounted_pack.nozzle = null - mounted_pack = null - return ..() - -/obj/item/weapon/weldingtool/tubefed/process() - if(mounted_pack) - if(!istype(mounted_pack.loc,/mob/living/carbon/human)) - mounted_pack.return_nozzle() - else - var/mob/living/carbon/human/H = mounted_pack.loc - if(H.back != mounted_pack) - mounted_pack.return_nozzle() - - if(mounted_pack.loc != src.loc && src.loc != mounted_pack) - mounted_pack.return_nozzle() - visible_message("\The [src] retracts to its fueltank.") - - if(get_fuel() <= get_max_fuel()) - mounted_pack.reagents.trans_to_obj(src, 1) - - ..() - -/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) - ..() - if(src.loc != user) - mounted_pack.return_nozzle() - to_chat(user, "\The [src] retracts to its fueltank.") - -/* - * Electric/Arc Welder - */ - -/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC - name = "electric welding tool" - desc = "A welder which runs off of electricity." - icon_state = "arcwelder" - max_fuel = 0 //We'll handle the consumption later. - item_state = "ewelder" - var/obj/item/weapon/cell/power_supply //What type of power cell this uses - var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery - var/cell_type = /obj/item/weapon/cell/device - var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 - flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. - acti_sound = 'sound/effects/sparks4.ogg' - deac_sound = 'sound/effects/sparks4.ogg' - -/obj/item/weapon/weldingtool/electric/unloaded/New() - cell_type = null - -/obj/item/weapon/weldingtool/electric/New() - ..() - if(cell_type == null) - update_icon() - else if(cell_type) - power_supply = new cell_type(src) - else - power_supply = new /obj/item/weapon/cell/device(src) - update_icon() - -/obj/item/weapon/weldingtool/electric/get_cell() - return power_supply - -/obj/item/weapon/weldingtool/electric/examine(mob/user) - if(get_dist(src, user) > 1) - to_chat(user, desc) - else // The << need to stay, for some reason - if(power_supply) - user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) - else - user << text("\icon[] The [] has no power cell!", src, src.name) - -/obj/item/weapon/weldingtool/electric/get_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.charge - else if(power_supply) - return power_supply.charge - else - return 0 - -/obj/item/weapon/weldingtool/electric/get_max_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.maxcharge - else if(power_supply) - return power_supply.maxcharge - return 0 - -/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(get_fuel() >= amount) - power_supply.checked_use(charge_cost) - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(!external || !external.use(charge_cost)) //Take power from the borg... - power_supply.give(charge_cost) //Give it back to the cell. - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more energy to complete this task.") - update_icon() - return 0 - -/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) - if(user.get_inactive_hand() == src) - if(power_supply) - power_supply.update_icon() - user.put_in_hands(power_supply) - power_supply = null - to_chat(user, "You remove the cell from the [src].") - setWelding(0) - update_icon() - return - ..() - else - return ..() - -/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) - if(istype(W, /obj/item/weapon/cell)) - if(istype(W, /obj/item/weapon/cell/device)) - if(!power_supply) - user.drop_item() - W.loc = src - power_supply = W - to_chat(user, "You install a cell in \the [src].") - update_icon() - else - to_chat(user, "\The [src] already has a cell.") - else - to_chat(user, "\The [src] cannot use that type of cell.") - else - ..() - -/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() - if(isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - return R.cell - if(istype(src.loc, /obj/item/rig_module)) - var/obj/item/rig_module/module = src.loc - if(module.holder && module.holder.wearer) - var/mob/living/carbon/human/H = module.holder.wearer - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit)) - return suit.cell - return null - -/obj/item/weapon/weldingtool/electric/mounted - use_external_power = 1 - -/obj/item/weapon/weldingtool/electric/mounted/cyborg - toolspeed = 0.5 - -#undef WELDER_FUEL_BURN_INTERVAL -======= - #define WELDER_FUEL_BURN_INTERVAL 13 /* * Welding Tool From f379ea2df4d94f7fe85f7489d1696aa0d8765a1d Mon Sep 17 00:00:00 2001 From: Spades Date: Sun, 7 Oct 2018 17:55:35 -0400 Subject: [PATCH 20/68] Update weldingtool.dm --- code/game/objects/items/weapons/tools/weldingtool.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index b77045df22..7c2f2ea26f 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -317,6 +317,7 @@ var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] if(!E) return + if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF switch(safety) if(1) to_chat(usr, "Your eyes sting a little.") From fb4fcf1e181935529e044e125f5732bc63c44705 Mon Sep 17 00:00:00 2001 From: kcin2001 Date: Mon, 8 Oct 2018 11:58:01 -0700 Subject: [PATCH 21/68] fixes copy paste error --- code/modules/mob/new_player/sprite_accessories_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 16f6d9168b..262275fdea 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -988,7 +988,7 @@ color_blend_mode = ICON_MULTIPLY body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO) - spirit_panels_head + spirit_lights_head name = "Ward - Spirit FBP Lights (head)" icon_state = "lights" color_blend_mode = ICON_MULTIPLY From 92eff67417dbf10157b9300bba2ff45c99be8471 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 8 Oct 2018 15:33:48 -0400 Subject: [PATCH 22/68] Alter gateway access on 2 jobs Add gateway access to pathfinder, exploring is their job Removed from HoP (who can readd it to themselves in emergencies if they need it, otherwise during 'normal times' there's no reason they'd need it) Justifcations for leaving it with other jobs: HoS - gateway area is classified as a high-security area, and is an area on the station that has an attack surface from unknown things, so it makes sense they have access to defend it. HoS abusing the access for 'not defense of station' reasons, such as 'I'm going to lead my own expedition, fuck explorers', is ahelpable. CD - literally has all station access, doesn't even have a specific list RD - generally has a superset of all pathfinder access, and the physical gateway structure is their machine, pretty sure --- code/game/jobs/job/captain.dm | 4 ++-- maps/southern_cross/southern_cross_jobs_vr.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 85afcaa294..94a32c3841 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -60,13 +60,13 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) + access_hop, access_RC_announce, access_keycard_auth) //, access_gateway) //VOREStation Edit minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) + access_hop, access_RC_announce, access_keycard_auth) //, access_gateway) //VOREStation Edit /datum/job/secretary title = "Command Secretary" diff --git a/maps/southern_cross/southern_cross_jobs_vr.dm b/maps/southern_cross/southern_cross_jobs_vr.dm index 070281b47a..600ace3885 100644 --- a/maps/southern_cross/southern_cross_jobs_vr.dm +++ b/maps/southern_cross/southern_cross_jobs_vr.dm @@ -19,6 +19,6 @@ var/const/PATHFINDER =(1<<13) //VOREStation Edit - Added Pathfinder idtype = /obj/item/weapon/card/id/science/head/pathfinder economic_modifier = 7 - access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_research) - minimal_access = list(access_eva, access_pilot, access_explorer, access_research) + access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_research, access_gateway) + minimal_access = list(access_eva, access_pilot, access_explorer, access_research, access_gateway) outfit_type = /decl/hierarchy/outfit/job/pathfinder From b237af9eabadec4b58eccb086f67b4a2b4a1c837 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 8 Oct 2018 17:41:07 -0400 Subject: [PATCH 23/68] Rebalances VR Jumpsuits Virgo-specific jumpsuits (KHI and Star Trek) available in loadout are not supposed to have protection bonuses over the non-virgo ones. --- code/modules/vore/fluffstuff/custom_clothes_vr.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index 69f74c3e8a..8163c861f4 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -910,7 +910,7 @@ icon_state = "khi_uniform_cmd_i" item_state = "khi_uniform_cmd" worn_state = "khi_uniform_cmd" - armor = list(melee = 5, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/sec //Security version name = "KHI security suit" @@ -926,7 +926,7 @@ icon_state = "khi_uniform_med_i" item_state = "khi_uniform_med" worn_state = "khi_uniform_med" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 50, rad = 5) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) /obj/item/clothing/under/rank/khi/eng //Engineering version name = "KHI engineering suit" @@ -942,7 +942,7 @@ icon_state = "khi_uniform_sci_i" item_state = "khi_uniform_sci" worn_state = "khi_uniform_sci" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 5, bio = 0, rad = 5) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/fluff/aronai //Aro fluff version name = "KHI meditech suit" @@ -950,7 +950,7 @@ icon_state = "khi_uniform_aro_i" item_state = "khi_uniform_aro" worn_state = "khi_uniform_aro" - armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) //jacobdragon:Earthen Breath /obj/item/clothing/under/fluff/earthenbreath @@ -1192,14 +1192,14 @@ Departamental Swimsuits, for general use desc = "The uniform worn by command officers in the mid 2260s." icon_state = "trek_command" item_state = "trek_command" - armor = list(melee = 10, bullet = 10, laser = 10,energy = 0, bomb = 0, bio = 10, rad = 10, fire = 0, acid = 0) // Considering only staff heads get to pick it + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) // Considering only staff heads get to pick it /obj/item/clothing/under/rank/trek/engsec name = "Operations Uniform" desc = "The uniform worn by operations officers of the mid 2260s. You feel strangely vulnerable just seeing this..." icon_state = "trek_engsec" item_state = "trek_engsec" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0) // since they're shared between jobs and kinda moot. + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) // since they're shared between jobs and kinda moot. /obj/item/clothing/under/rank/trek/medsci name = "MedSci Uniform" @@ -1207,7 +1207,7 @@ Departamental Swimsuits, for general use icon_state = "trek_medsci" item_state = "trek_medsci" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) // basically a copy of vanilla sci/med + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) // basically a copy of vanilla sci/med //TNG /obj/item/clothing/under/rank/trek/command/next From 4faca0b7f8e6f225fab172f73094c6a89da6bb2b Mon Sep 17 00:00:00 2001 From: Screemonster Date: Tue, 9 Oct 2018 11:53:55 +0100 Subject: [PATCH 24/68] gives pounces a chance to fail --- .../living/simple_animal/simple_animal_vr.dm | 40 ++++++++++++++----- .../simple_animal/vore/zz_vore_overrides.dm | 2 + 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 718dfee55b..3750e4fdd7 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -12,6 +12,10 @@ var/vore_bump_chance = 0 // Chance of trying to eat anyone that bumps into them, regardless of hostility var/vore_bump_emote = "grabs hold of" // Allow messages for bumpnom mobs to have a flavorful bumpnom var/vore_pounce_chance = 5 // Chance of this mob knocking down an opponent + var/vore_pounce_cooldown = 0 // Cooldown timer - if it fails a pounce it won't pounce again for a while + var/vore_pounce_successrate = 100 // Chance of a pounce succeeding against a theoretical 0-health opponent + var/vore_pounce_falloff = 1 // Success rate falloff per %health of target mob. + var/vore_pounce_maxhealth = 80 // Mob will not attempt to pounce targets above this %health var/vore_standing_too = 0 // Can also eat non-stunned mobs var/vore_ignores_undigestable = 1 // Refuse to eat mobs who are undigestable by the prefs toggle. var/swallowsound = null // What noise plays when you succeed in eating the mob. @@ -92,21 +96,39 @@ /mob/living/simple_animal/PunchTarget() ai_log("vr/PunchTarget() [target_mob]", 3) - // For things we don't want to eat, call the sideways "parent" to do normal punching - if(!vore_active || !will_eat(target_mob)) + // If we're not hungry, call the sideways "parent" to do normal punching + if(!vore_active) return ..() - // If target is standing we might pounce and eat them - if(target_mob.canmove && prob(vore_pounce_chance)) - target_mob.Weaken(5) - target_mob.visible_message("\the [src] pounces on \the [target_mob]!!") + // If target is standing we might pounce and knock them down instead of attacking + if(target_mob.canmove && prob(vore_pounce_chance) && !issilicon(target_mob) && (world.time > vore_pounce_cooldown)) //pouncing is worth doing, we want to pounce and are not in cooldown. So attempt a pounce! + if(vore_standing_too) //creatures that can eat you on the spot don't care how healthy you are and get an autohit + return PounceTarget() - // If they're down or we can eat standing, do it - if(!target_mob.canmove || vore_standing_too) + var/TargetHealthPercent = (target_mob.health/target_mob.maxHealth)*100 + if (TargetHealthPercent <= vore_pounce_maxhealth) //check they're weak enough to bother pouncing + if(prob(vore_pounce_successrate - (vore_pounce_falloff * TargetHealthPercent))) // pounce success! + return PounceTarget() + else // pounce misses! + target_mob.visible_message("\the [src] attempts to pounce \the [target_mob] but misses!!") + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while + return // no you don't get to attack as well, you missed your chance + + // We're not attempting a pounce, if they're down or we can eat standing, do it as long as they're edible. Otherwise, hit normally. + if(will_eat(target_mob) && (!target_mob.canmove || vore_standing_too)) return EatTarget() else return ..() +/mob/living/simple_animal/proc/PounceTarget() + target_mob.Weaken(5) + target_mob.visible_message("\the [src] pounces on \the [target_mob]!!") + if(will_eat(target_mob)) //if they're edible then eat them too + return EatTarget() + else + return //just leave them on the ground + // Attempt to eat target // TODO - Review this. Could be some issues here /mob/living/simple_animal/proc/EatTarget() @@ -117,7 +139,7 @@ . = animal_nom(target_mob) playsound(src, swallowsound, 50, 1) update_icon() - + if(.) // If we succesfully ate them, lose the target LoseTarget() diff --git a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm b/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm index 3b4074e455..fb4d74d360 100644 --- a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm +++ b/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm @@ -162,6 +162,7 @@ vore_pounce_chance = 100 vore_digest_chance = 0 // just use the toggle vore_default_mode = DM_HOLD //can use the toggle if you wanna be catfood + vore_standing_too = TRUE //gonna get pounced /mob/living/simple_animal/cat/fluff/EatTarget() var/mob/living/TM = target_mob @@ -201,6 +202,7 @@ vore_pounce_chance = 100 vore_digest_chance = 0 // just use the toggle vore_default_mode = DM_HOLD //can use the toggle if you wanna be foxfood + vore_standing_too = TRUE // gonna get pounced /mob/living/simple_animal/fox/fluff/EatTarget() var/mob/living/TM = target_mob From 71f5870b46241cc27a6f4f5ee297aada51e78a12 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Tue, 9 Oct 2018 13:15:13 +0100 Subject: [PATCH 25/68] Minor shadekin fixes --- .../living/simple_animal/vore/shadekin/shadekin.dm | 2 +- .../mob/living/simple_animal/vore/shadekin/types.dm | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm index a435aaaf8c..ca6f035f32 100644 --- a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm @@ -241,7 +241,7 @@ if(specific_targets && isliving(A)) //Healing! var/mob/living/L = A var/health_percent = (L.health/L.maxHealth)*100 - if(health_percent <= 50) + if(health_percent <= 50 && will_eat(A)) return A . = ..() diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm b/code/modules/mob/living/simple_animal/vore/shadekin/types.dm index 3b3d102752..d5bc1e5ced 100644 --- a/code/modules/mob/living/simple_animal/vore/shadekin/types.dm +++ b/code/modules/mob/living/simple_animal/vore/shadekin/types.dm @@ -17,7 +17,7 @@ eye_desc = "red eyes" - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ slippery gullet of the creature. It's warm, and the air is thick. You can hear \ its body squelch and shift around you as you settle into its stomach! Thick digestive \ enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \ @@ -64,7 +64,7 @@ eye_desc = "blue eyes" shy_approach = TRUE stalker = TRUE - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ slippery gullet of the creature. It's warm, and the air is thick. You can hear its body \ squelch and shift around you as you settle into its stomach! It's oddly calm, and very dark. \ The doughy flesh rolls across your form in gentle waves. The aches and pains across your form slowly begin to \ @@ -106,7 +106,7 @@ eye_desc = "purple eyes" shy_approach = TRUE stalker = TRUE - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet of the creature. \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet of the creature. \ It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \ It’s relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \ You can feel the doughy walls cling to you posessively... It’s almost like you could sink into them. \ @@ -147,7 +147,7 @@ eye_desc = "yellow eyes" stalker = FALSE - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ you out!! There doesn’t appear to be any actual danger here, harmless slime clings to you, but it’s getting \ @@ -187,7 +187,7 @@ eye_desc = "green eyes" stalker = TRUE - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \ of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \ as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \ you out!! There doesn’t appear to be any actual danger here, harmless slime clings to you, but it’s getting \ @@ -224,7 +224,7 @@ eye_desc = "orange eyes" - vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \ + vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, \ slippery gullet of the creature. It's warm, and the air is thick. You can hear \ its body squelch and shift around you as you settle into its stomach! Thick digestive \ enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \ From ebd235ed1e54e12dd69e3963cd45af78248a23f0 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Tue, 9 Oct 2018 13:47:45 +0100 Subject: [PATCH 26/68] fix pounces for those dirty nonvore types --- code/modules/mob/living/simple_animal/simple_animal_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 3750e4fdd7..38fb508050 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -102,7 +102,7 @@ // If target is standing we might pounce and knock them down instead of attacking if(target_mob.canmove && prob(vore_pounce_chance) && !issilicon(target_mob) && (world.time > vore_pounce_cooldown)) //pouncing is worth doing, we want to pounce and are not in cooldown. So attempt a pounce! - if(vore_standing_too) //creatures that can eat you on the spot don't care how healthy you are and get an autohit + if(will_eat(target_mob) && vore_standing_too) //creatures that can eat you on the spot don't care how healthy you are and get an autohit return PounceTarget() var/TargetHealthPercent = (target_mob.health/target_mob.maxHealth)*100 From e3356ed5fe0e43dd7f25251b52cfdca5d8abd1b2 Mon Sep 17 00:00:00 2001 From: Screemonster Date: Tue, 9 Oct 2018 14:12:02 +0100 Subject: [PATCH 27/68] Xenochimera tweak --- .../human/species/station/station_special_vr.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 5315840a82..f234244240 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -33,6 +33,7 @@ /mob/living/proc/flying_toggle, /mob/living/proc/start_wings_hovering) //Xenochimera get all the special verbs since they can't select traits. + virus_immune = 1 // They practically ARE one. min_age = 18 max_age = 80 @@ -51,6 +52,16 @@ flags = NO_SCAN | NO_INFECT //Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR + has_organ = list( //Same organ list as tajarans. + O_HEART = /obj/item/organ/internal/heart, + O_LUNGS = /obj/item/organ/internal/lungs, + O_VOICE = /obj/item/organ/internal/voicebox, + O_LIVER = /obj/item/organ/internal/liver, + O_KIDNEYS = /obj/item/organ/internal/kidneys, + O_BRAIN = /obj/item/organ/internal/brain, + O_EYES = /obj/item/organ/internal/eyes + ) + flesh_color = "#AFA59E" base_color = "#333333" blood_color = "#14AD8B" From 6b6f8112789e6dd11566cfffd79194100927c8de Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 9 Oct 2018 10:43:49 -0700 Subject: [PATCH 28/68] Merge pull request #5634 from lbnesquik/Kates-Kobold-Remov Remove kobold.dm --- .../living/simple_animal/humanoids/kobold.dm | 43 ------------------- vorestation.dme | 1 - 2 files changed, 44 deletions(-) delete mode 100644 code/modules/mob/living/simple_animal/humanoids/kobold.dm diff --git a/code/modules/mob/living/simple_animal/humanoids/kobold.dm b/code/modules/mob/living/simple_animal/humanoids/kobold.dm deleted file mode 100644 index 7355fce470..0000000000 --- a/code/modules/mob/living/simple_animal/humanoids/kobold.dm +++ /dev/null @@ -1,43 +0,0 @@ -//kobold -/mob/living/simple_animal/kobold - name = "kobold" - desc = "A small, rat-like creature." - icon = 'icons/mob/mob.dmi' - icon_state = "kobold_idle" - icon_living = "kobold_idle" - icon_dead = "kobold_dead" - intelligence_level = SA_HUMANOID - - run_at_them = 0 - cooperative = 1 - - turns_per_move = 5 - see_in_dark = 6 - - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - - min_oxy = 16 //Require atleast 16kPA oxygen - minbodytemp = 223 //Below -50 Degrees Celcius - maxbodytemp = 323 //Above 50 Degrees Celcius - - speak_chance = 5 - speak = list("You no take candle!","Ooh, pretty shiny.","Me take?","Where gold here...","Me likey.") - speak_emote = list("mutters","hisses","grumbles") - emote_hear = list("mutters under it's breath.","grumbles.", "yips!") - emote_see = list("looks around suspiciously.", "scratches it's arm.","putters around a bit.") - - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/monkey - -/mob/living/simple_animal/kobold/Life() - . = ..() - if(!.) return - - if(prob(5)) - flick("kobold_act",src) - -/mob/living/simple_animal/kobold/Move(var/dir) - ..() - if(!stat) - flick("kobold_walk",src) diff --git a/vorestation.dme b/vorestation.dme index b348bd23b2..a202176561 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2251,7 +2251,6 @@ #include "code\modules\mob\living\simple_animal\constructs\soulstone.dm" #include "code\modules\mob\living\simple_animal\humanoids\clown.dm" #include "code\modules\mob\living\simple_animal\humanoids\head.dm" -#include "code\modules\mob\living\simple_animal\humanoids\kobold.dm" #include "code\modules\mob\living\simple_animal\humanoids\mechamobs.dm" #include "code\modules\mob\living\simple_animal\humanoids\pirate.dm" #include "code\modules\mob\living\simple_animal\humanoids\russian.dm" From 6be6f9a9579f1716f9eb61370d96573afc623788 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 9 Oct 2018 10:47:27 -0700 Subject: [PATCH 30/68] Merge pull request #5635 from lbnesquik/Kates-Emote-Fix Fix yes emote not working correctly. --- code/modules/mob/living/carbon/human/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 676eedbdd9..9ed303732b 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -729,7 +729,7 @@ src << "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \ frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, \ raise, salute, scream, sneeze, shake, shiver, shrug, sigh, signal-#1-10, slap-(none)/mob, smile, sneeze, sniff, snore, stare-(none)/mob, stopsway/swag, sway/wag, swish, tremble, twitch, \ - twitch_v, vomit, whimper, wink, yawn. Synthetics: beep, buzz, yes, no, rcough, rsneeze, ping" + twitch_v, vomit, whimper, wink, yawn. Synthetics: beep, buzz, yess, no, rcough, rsneeze, ping" else src << "Unusable emote '[act]'. Say *help for a list." From 3943ef3dbad34cfa8f4a72e3ab2297b65b84a5b1 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Tue, 9 Oct 2018 10:52:23 -0700 Subject: [PATCH 32/68] Merge pull request #5640 from lbnesquik/Kates-Laptop-Fix Fixes laptop blocking grown adults. --- code/game/machinery/computer/medical.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 31e68c1b50..0a90aef582 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -5,6 +5,7 @@ desc = "Used to view, edit and maintain medical records." icon_keyboard = "med_key" icon_screen = "medcomp" + density = 0 //Why does a laptop blocks peoples. light_color = "#315ab4" req_one_access = list(access_medical, access_forensics_lockers, access_robotics) circuit = /obj/item/weapon/circuitboard/med_data From f0db33294322fad0b7822194174574cd0c51a649 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 9 Oct 2018 15:27:40 -0500 Subject: [PATCH 34/68] Remplace sprite hammer with pickaxe --- code/modules/mining/mine_items.dm | 5 - maps/northern_star/polaris-5.dmm | 4 +- maps/southern_cross/southern_cross-3.dmm | 1824 ++++++++++++++++++++++ 3 files changed, 1826 insertions(+), 7 deletions(-) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index f6315296f1..902694c34d 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -30,11 +30,6 @@ var/excavation_amount = 200 -/obj/item/weapon/pickaxe/hammer - name = "sledgehammer" - //icon_state = "sledgehammer" Waiting on sprite - desc = "A mining hammer made of reinforced metal. You feel like smashing your boss in the face with this." - /obj/item/weapon/pickaxe/silver name = "silver pickaxe" icon_state = "spickaxe" diff --git a/maps/northern_star/polaris-5.dmm b/maps/northern_star/polaris-5.dmm index f4f4ea7608..184ffbd6c1 100644 --- a/maps/northern_star/polaris-5.dmm +++ b/maps/northern_star/polaris-5.dmm @@ -1587,7 +1587,7 @@ "EA" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "EB" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "EC" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) -"ED" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) +"ED" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) "EE" = (/turf/simulated/wall,/area/outpost/mining_main/storage) "EF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Hallway Aft"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) "EG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) @@ -1912,7 +1912,7 @@ "KN" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space) "KO" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "KP" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/engineering/solarsoutside/aft) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm index 16cd2ebfc5..01fddc1e48 100644 --- a/maps/southern_cross/southern_cross-3.dmm +++ b/maps/southern_cross/southern_cross-3.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/plains/mountains) "ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/plains/mountains) "ac" = (/turf/simulated/wall/dungeon,/area/surface/outside/path/plains) @@ -1819,3 +1820,1826 @@ aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaf aaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDZDZDZDZDZDZDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababab "} +======= +"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/plains/mountains) +"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/plains/mountains) +"ac" = (/turf/simulated/wall/dungeon,/area/surface/outside/path/plains) +"ad" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) +"ae" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains) +"af" = (/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains) +"ag" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains) +"ah" = (/turf/simulated/mineral/ignore_mapgen/sif,/area/surface/outside/plains/mountains) +"ai" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"aj" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) +"ak" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains) +"al" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) +"am" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"an" = (/turf/simulated/wall,/area/surface/outpost/mining_main/exterior) +"ao" = (/obj/machinery/conveyor{dir = 4; id = "mining_north"},/obj/machinery/mineral/input,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/exterior) +"ap" = (/obj/machinery/mineral/unloading_machine,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) +"aq" = (/obj/machinery/conveyor{dir = 2; id = "mining_north"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) +"ar" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/obj/machinery/conveyor_switch/oneway{id = "mining_north"; name = "mining conveyor"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/exterior) +"as" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) +"at" = (/obj/machinery/conveyor{dir = 2; id = "mining_north"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) +"au" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"av" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"aw" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/exterior) +"ax" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/mining_main/exterior) +"ay" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/exterior) +"az" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"aA" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/mountains) +"aB" = (/turf/simulated/floor/water,/area/surface/outside/plains/mountains) +"aC" = (/turf/simulated/floor/water/shoreline/corner,/area/surface/outside/ocean) +"aD" = (/turf/simulated/floor/water,/area/surface/outside/ocean) +"aE" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 1},/area/surface/outside/ocean) +"aF" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) +"aG" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 8},/area/surface/outside/ocean) +"aH" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 4},/area/surface/outside/ocean) +"aI" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost) +"aJ" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 6},/area/surface/outside/ocean) +"aK" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 10},/area/surface/outside/ocean) +"aL" = (/turf/simulated/floor/water/shoreline,/area/surface/outside/ocean) +"aM" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/ocean) +"aN" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/storage) +"aO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) +"aP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main) +"aQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main) +"aR" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"aS" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"aT" = (/obj/structure/table/steel,/obj/item/weapon/pickaxe,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Storage Room"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"aU" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"aV" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/effect/floor_decal/corner/brown/full{dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"aW" = (/obj/structure/table/steel,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/pickaxe,/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"aX" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/steel,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"aY" = (/obj/effect/floor_decal/corner/brown{dir = 5},/obj/structure/table/steel,/obj/item/stack/flag/green{pixel_x = -4; pixel_y = 0},/obj/item/stack/flag/red,/obj/item/stack/flag/yellow{pixel_x = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"aZ" = (/obj/structure/closet/secure_closet/miner,/obj/item/clothing/shoes/boots/winter/mining,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/effect/floor_decal/corner/brown{dir = 5},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"ba" = (/obj/structure/table/steel,/obj/item/weapon/mining_scanner,/obj/item/weapon/mining_scanner,/obj/item/weapon/mining_scanner,/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bb" = (/obj/effect/floor_decal/corner/brown/full{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bc" = (/obj/effect/floor_decal/corner/brown/full{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bd" = (/obj/effect/floor_decal/corner/brown{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"be" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bf" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bg" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bh" = (/obj/effect/floor_decal/corner/brown{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bi" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/corner/brown{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bk" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 2"; dir = 2},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"bl" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"bm" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"bn" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gateway) +"bo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway) +"bp" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway) +"bq" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"br" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bv" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Mining Storage"; req_access = list(48)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main/storage) +"bw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"by" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bz" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining_airlock_control2"; name = "Mining Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "mining_airlock_exterior2"; tag_interior_door = "mining_airlock_interior2"},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"bD" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_airlock_control2"; name = "Mining Access Button"; pixel_x = 6; pixel_y = 26; req_access = null; req_one_access = list(12,47,48)},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_interior2"; locked = 1; name = "Mining Interior Outpost"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) +"bE" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"bF" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"bG" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_exterior2"; locked = 1; name = "Mining Exterior Outpost"},/obj/effect/decal/cleanable/dirt,/obj/machinery/access_button/airlock_exterior{master_tag = "mining_airlock_control2"; pixel_y = 24; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) +"bH" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/security) +"bI" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security) +"bJ" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security) +"bK" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"bL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"bM" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gateway"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"bN" = (/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"bO" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"bP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/first_aid) +"bQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid) +"bR" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid) +"bS" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown/full,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bT" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bU" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bV" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bW" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bX" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage) +"bY" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"bZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"ca" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cb" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cc" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cd" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"ce" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"cf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"cg" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"ch" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/closet/secure_closet/guncabinet/phase,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"ci" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/structure/closet/secure_closet/guncabinet/phase,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"cj" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/standard,/obj/item/weapon/book/codex/corp_regs,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"ck" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway) +"cl" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"cm" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"cn" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"co" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway) +"cp" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/tool/screwdriver,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cq" = (/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cr" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cs" = (/obj/structure/bed/roller,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ct" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/ninja_dojo/planet) +"cu" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/storage) +"cv" = (/turf/simulated/wall,/area/surface/outpost/mining_main/storage) +"cw" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cy" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/corner/brown,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cz" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cA" = (/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/machinery/light,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cB" = (/obj/machinery/mech_recharger,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cC" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"cD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) +"cE" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) +"cF" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"cG" = (/obj/structure/window/reinforced,/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"cH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"cI" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"cJ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"cK" = (/turf/simulated/wall,/area/surface/outpost/main/gateway) +"cL" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"cM" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"cN" = (/obj/machinery/cryopod/robot/door/gateway,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"cO" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"cP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"cQ" = (/obj/structure/table/glass,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cR" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cS" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cT" = (/obj/structure/window/reinforced,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"cU" = (/turf/simulated/floor/water/deep,/area/surface/outside/ocean) +"cV" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"cW" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"cX" = (/obj/structure/table/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/extinguisher,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"cY" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/emergencystorage) +"cZ" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"da" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"db" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dc" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) +"de" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) +"df" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) +"dg" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6; icon_state = "warning_dust"},/obj/machinery/light/small{dir = 1},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) +"dh" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/standard,/obj/item/weapon/storage/box/donut,/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"di" = (/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dk" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dl" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dm" = (/obj/machinery/computer/cryopod/gateway{pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"dn" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"do" = (/obj/machinery/gateway,/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"dp" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway) +"dq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/atm{pixel_x = 30},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway) +"dr" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ds" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/glass,/obj/item/weapon/tool/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dt" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"du" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"dv" = (/obj/random/maintenance/clean,/obj/random/maintenance/security,/obj/random/contraband,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) +"dw" = (/obj/random/maintenance/clean,/obj/random/contraband,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage) +"dx" = (/obj/structure/closet/hydrant{pixel_x = -32; pixel_y = 0},/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"dy" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"dz" = (/obj/item/device/t_scanner,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"dA" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"dB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westright{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"dC" = (/obj/machinery/mineral/input,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/structure/sign/warning/moving_parts{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"dD" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) +"dE" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dF" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dG" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dH" = (/obj/machinery/conveyor{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dI" = (/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"dK" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room) +"dL" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/tiled/steel/sif/planetuse{icon_state = "dark"},/area/surface/outpost/mining_main/gen_room) +"dM" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Security Checkpoint"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dN" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dO" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dP" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"dQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"dR" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"dS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"dT" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dV" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dW" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dX" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - FA Station"; dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"dY" = (/turf/simulated/wall,/area/surface/outpost/mining_main/emergencystorage) +"dZ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage) +"ea" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westleft{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"ed" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) +"ee" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"ef" = (/obj/machinery/conveyor_switch{id = "mining_external"},/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) +"eg" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) +"eh" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 5; icon_state = "warning_dust"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/path/plains) +"ei" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"ej" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"ek" = (/obj/machinery/door/window/brigdoor/eastright{name = "Security Checkpoint"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"el" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"em" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"en" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eo" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) +"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"er" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"et" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) +"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ev" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ew" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ex" = (/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ey" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"ez" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"eA" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"eB" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"eC" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eD" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eE" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eF" = (/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eG" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"eH" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Production Area"; req_access = list(48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main/refinery) +"eI" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"eJ" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"eK" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"eL" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"eM" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) +"eN" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/path/plains) +"eO" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/red/border{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eP" = (/obj/machinery/computer/security,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/device/flash,/obj/item/weapon/pen,/obj/item/weapon/tool/crowbar,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eR" = (/obj/structure/closet/crate,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/red/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eT" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"eU" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eV" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eX" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eY" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway) +"eZ" = (/obj/structure/closet/l3closet/scientist,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"fa" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"fb" = (/obj/structure/table/glass,/obj/item/weapon/tool/crowbar,/obj/item/bodybag,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"fc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"fd" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid) +"fe" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"ff" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"fg" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_exterior"; locked = 1; name = "Mining Exterior Outpost"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = 0; pixel_y = -24; req_access = null; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) +"fh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"fi" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"fj" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_interior"; locked = 1; name = "Mining Interior Outpost"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = -6; pixel_y = -26; req_access = null; req_one_access = list(12,47,48)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/mining_main) +"fk" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining1_airlock_control"; name = "Mining Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "mining1_airlock_exterior"; tag_interior_door = "mining1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fl" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fm" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fn" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fo" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fp" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Hallway 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"fr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fs" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) +"ft" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fu" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Production Room"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fv" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) +"fw" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"fx" = (/turf/simulated/wall,/area/surface/outpost/main/security) +"fy" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/obj/structure/closet/crate/secure/gear{name = "explorer crate"; req_access = list(43)},/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fz" = (/obj/machinery/door/window/northright,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fA" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/obj/structure/closet/crate/secure/gear{name = "explorer crate"; req_access = list(43)},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Gateway Access"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gateway) +"fC" = (/turf/simulated/wall,/area/surface/outpost/main/first_aid) +"fD" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/white/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"fE" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"fF" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/white/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"fG" = (/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/gen_room) +"fH" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"fI" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 1"; dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main) +"fJ" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fK" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fL" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"fM" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fO" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"fP" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"fQ" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security) +"fR" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"fS" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"fT" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fU" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Explorer Prep"; dir = 2},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fV" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fW" = (/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fX" = (/obj/machinery/light{dir = 1},/obj/effect/landmark/start{name = "Explorer"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"fY" = (/turf/simulated/floor/tiled,/area/surface/outpost/main) +"fZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ga" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 1"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"gb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gc" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"ge" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - SAR Prep"; dir = 2},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gf" = (/obj/structure/closet/secure_closet/medical_wall/pills{pixel_y = 32},/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gg" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gh" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main) +"gi" = (/turf/simulated/wall,/area/surface/outpost/mining_main) +"gj" = (/obj/effect/floor_decal/corner/brown/full,/obj/structure/closet,/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"gk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"gl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"gm" = (/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main) +"gn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery) +"go" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery) +"gp" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/gen_room) +"gq" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"gr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"gs" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"gt" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) +"gu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main5_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main5_airlock_exterior"; tag_interior_door = "main5_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"gv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"gw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"gx" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Explorer Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security) +"gy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"gz" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"gA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"gB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "SAR Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) +"gC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gF" = (/obj/effect/landmark/start{name = "Search and Rescue"},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gG" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gH" = (/obj/machinery/computer/crew,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"gI" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"gJ" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gK" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gL" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gM" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gN" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"gO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"gQ" = (/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/structure/sign/warning/moving_parts{pixel_y = -32},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery) +"gR" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"gS" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"gT" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"gU" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"gV" = (/obj/machinery/conveyor{dir = 5; icon_state = "conveyor0"; id = "miningout_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery) +"gW" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outside/plains/outpost) +"gX" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"gY" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security) +"gZ" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"ha" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security) +"hb" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/item/device/gps/explorer{pixel_x = -5; pixel_y = -5},/obj/item/device/gps/explorer{pixel_x = -3; pixel_y = -3},/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"hc" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/machinery/light,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/item/device/paicard,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"hd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/device/binoculars,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"he" = (/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"hf" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"hg" = (/obj/structure/closet/secure_closet/explorer,/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/item/weapon/pickaxe,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security) +"hh" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"hi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"hj" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"hk" = (/obj/machinery/mech_recharger,/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) +"hl" = (/obj/structure/table/steel,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/crowbar,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) +"hm" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid) +"hn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/white/bordercorner2,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = 0; pixel_y = -32},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/machinery/iv_drip,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"ho" = (/obj/structure/closet/secure_closet/sar,/obj/machinery/light,/obj/item/weapon/storage/box/bodybags,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/obj/item/roller/adv,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"hp" = (/obj/structure/closet/secure_closet/sar,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/roller/adv{pixel_y = 5},/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"hq" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"hr" = (/obj/structure/table/steel,/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid) +"hs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"ht" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hv" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hw" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Mining"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hx" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/mining_main/gen_room) +"hy" = (/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hA" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"hB" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/telecomms) +"hC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter) +"hD" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"hE" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"hF" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/garage) +"hG" = (/turf/simulated/wall,/area/surface/outpost/main/garage) +"hH" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power West"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hK" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hP" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hQ" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hR" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hS" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hT" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"hU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/telecomms/relay/preset/southerncross/cave,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"hV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/telecomms/relay/preset/southerncross/planet,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"hW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Telecomm"},/obj/machinery/telecomms/relay/preset/southerncross/wild,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"hX" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) +"hY" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) +"hZ" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) +"ia" = (/obj/machinery/teleport/hub,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter) +"ib" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter) +"ic" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"id" = (/obj/structure/table/steel,/obj/item/weapon/weldpack,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"ie" = (/obj/machinery/space_heater,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"if" = (/obj/item/stack/tile/floor/steel_dirty,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"ig" = (/obj/machinery/mech_recharger,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"ih" = (/obj/structure/closet/hydrant{pixel_y = 32},/obj/item/clothing/glasses/meson,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"ii" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"ij" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"ik" = (/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"il" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"im" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"in" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"io" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"ip" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iq" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"ir" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"},/obj/machinery/atmospherics/binary/pump{dir = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"is" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"it" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iu" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iv" = (/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power East"; dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iw" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/light/small,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"ix" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"iy" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"iz" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"iA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"iB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"iC" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"iD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"iE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"iF" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"iG" = (/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"iH" = (/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"iI" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"iJ" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iK" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iL" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iM" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iO" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power South"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iP" = (/obj/machinery/atmospherics/binary/pump/on{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iQ" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iR" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 7; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iS" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 5; tag_south = 6; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iT" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iU" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iV" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"iW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Telecommunication Hub"; req_one_access = list(10,48,65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms) +"iX" = (/obj/structure/table/standard,/obj/item/weapon/tool/crowbar/red,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/item/weapon/tool/crowbar/red,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"iY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"iZ" = (/obj/machinery/bluespace_beacon,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"ja" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter) +"jb" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jc" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"jd" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"je" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 2"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jf" = (/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"},/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jg" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"ji" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jj" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jk" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room) +"jl" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room) +"jm" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jn" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jo" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jp" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room) +"jq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "Teleport Access"; req_access = list(17)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/teleporter) +"jr" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"js" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jt" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/item/frame/light,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"ju" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"jv" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"jw" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"jx" = (/obj/structure/cable,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room) +"jy" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/plains/outpost) +"jz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"jA" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jB" = (/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jD" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room) +"jE" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter Access"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jF" = (/obj/structure/closet/emcloset,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jH" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jI" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jJ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 2"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"jK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"jL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"jM" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/outpost) +"jN" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) +"jO" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) +"jP" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/heavyduty{icon_state = "1-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) +"jQ" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) +"jR" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/path/plains) +"jS" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/cable/heavyduty{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"jT" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/outside/plains/outpost) +"jU" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jY" = (/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"jZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ka" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ke" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"ki" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"kj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kk" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"kl" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"km" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kn" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ko" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kp" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kq" = (/obj/machinery/status_display,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main) +"kr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ks" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kt" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ku" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kv" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"kw" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/electrical,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"kx" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"ky" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) +"kz" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) +"kA" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main) +"kB" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main) +"kC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kD" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kE" = (/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kG" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kH" = (/obj/machinery/mech_recharger,/obj/effect/decal/mecha_wreckage/ripley,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kI" = (/obj/item/inflatable/door/torn,/obj/item/weapon/tool/screwdriver,/turf/simulated/floor,/area/surface/outpost/main/garage) +"kJ" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"kK" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage) +"kL" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"kM" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gym) +"kN" = (/turf/simulated/wall,/area/surface/outpost/main/gym) +"kO" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kP" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kS" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"kT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage) +"kU" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/construction_area) +"kV" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"kW" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room/smes) +"kX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"kY" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/bar) +"kZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"la" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"lb" = (/obj/structure/fitness/punchingbag,/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"lc" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"ld" = (/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"le" = (/obj/machinery/vending/fitness,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"lf" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"lg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gym) +"lh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"li" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ll" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ln" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lo" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway East"; dir = 9},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lp" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main) +"lq" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ls" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main) +"lt" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) +"lu" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"lv" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/technology_scanner,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"lw" = (/obj/machinery/alarm{pixel_y = 22},/obj/random/toolbox,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"lx" = (/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"ly" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"lz" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes) +"lA" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal{dir = 4},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"lB" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Dorms"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"lC" = (/turf/simulated/wall,/area/surface/outpost/main/bar) +"lD" = (/obj/structure/table/marble,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lE" = (/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lF" = (/obj/structure/table/marble,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lG" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lH" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; operating = 0; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/frame/extinguisher_cabinet,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"lJ" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) +"lK" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) +"lL" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"lM" = (/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym) +"lN" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"lO" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"lP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym) +"lQ" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room) +"lT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lY" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"lZ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main2_airlock_control"; name = "Main Access Console"; pixel_x = 26; pixel_y = -26; tag_exterior_door = "main2_airlock_exterior"; tag_interior_door = "main2_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ma" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mb" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mc" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"md" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"me" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) +"mf" = (/obj/structure/closet/toolcloset,/obj/item/device/flashlight/maglight,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"mg" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"mh" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"mi" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"mj" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"mk" = (/obj/structure/table/marble,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar West"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"ml" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mm" = (/obj/structure/table/marble,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/stool/padded,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mo" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/item/weapon/stock_parts/motor,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mq" = (/obj/structure/table,/obj/item/stack/material/wood,/obj/item/stack/material/wood,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mr" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) +"ms" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) +"mt" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) +"mu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) +"mv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gym) +"mw" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"my" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mz" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/item/weapon/tool/wrench,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mB" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mD" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mG" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mI" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"mJ" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main) +"mK" = (/obj/structure/closet/crate,/obj/item/weapon/tool/crowbar/red,/obj/item/frame/light,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"mL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"mM" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"mN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"mO" = (/obj/machinery/light_construct,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mP" = (/obj/structure/table/marble,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mQ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar East"; dir = 8},/obj/machinery/light_construct,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"mS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) +"mT" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access North"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"mU" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"mV" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"mW" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mX" = (/obj/structure/fitness/weightlifter,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mY" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"mZ" = (/obj/structure/closet/emcloset,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 1"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"na" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"nb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"nc" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/restroom) +"nd" = (/turf/simulated/wall,/area/surface/outpost/main/restroom) +"ne" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nf" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"ng" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"ni" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nj" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nk" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes) +"nl" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes) +"nm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"nn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"no" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"np" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"nq" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"nr" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"ns" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"nt" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"nu" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"nv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nx" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"ny" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nA" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/cups,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"nC" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nE" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nF" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nG" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"nH" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nI" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nJ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nK" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"nL" = (/turf/simulated/wall,/area/surface/outpost/main/construction_area) +"nM" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"nN" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"nO" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"nP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"nQ" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) +"nR" = (/obj/structure/closet/athletic_mixed,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nS" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nT" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nU" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gym"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nV" = (/obj/item/weapon/stool/padded,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nW" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym) +"nX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"nY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"nZ" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom) +"oa" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"ob" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"oc" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"od" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/dorms) +"oe" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"of" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area) +"og" = (/obj/structure/table/standard,/obj/item/device/paicard,/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oh" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oi" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Bar"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"oj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/bar) +"ok" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"ol" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"om" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"on" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main4_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = 26; tag_exterior_door = "main4_airlock_exterior"; tag_interior_door = "main4_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oo" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"op" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym) +"oq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/blue,/obj/item/stack/flag/blue,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"or" = (/obj/structure/closet/secure_closet/personal,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"os" = (/obj/structure/table/bench/marble,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"ot" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"ou" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"ov" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) +"ow" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms) +"ox" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) +"oy" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Access"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) +"oz" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms) +"oA" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oB" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oG" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oI" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oL" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oO" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"oP" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main/corridor) +"oQ" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oU" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/junction/yjunction,/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"oZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 2},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ph" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pj" = (/obj/structure/disposalpipe/junction/yjunction{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pk" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pl" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pm" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) +"pn" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) +"po" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms) +"pp" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pq" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pr" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main1_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main1_airlock_exterior"; tag_interior_door = "main1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"ps" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pt" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pv" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pw" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"px" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"py" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pz" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pA" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pB" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pC" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"pD" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pE" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pI" = (/obj/effect/floor_decal/spline/plain{icon_state = "spline_plain_full"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main) +"pJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pK" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"pN" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) +"pO" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pP" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pQ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pS" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"pT" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pU" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pV" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pW" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"pX" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty{outdoors = 1},/area/surface/outpost/main/dorms) +"pY" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/surface/outpost/main/dorms) +"pZ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qa" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qb" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/crate,/obj/item/weapon/bedsheet,/obj/item/weapon/bedsheet/blue,/obj/item/weapon/bedsheet/brown,/obj/item/weapon/bedsheet/green,/obj/item/weapon/bedsheet/orange,/obj/item/weapon/bedsheet/purple,/obj/item/weapon/bedsheet/red,/obj/item/weapon/bedsheet/yellow,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qd" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qe" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qh" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qi" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway East"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qk" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"ql" = (/obj/machinery/vending/snack,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qm" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qn" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qo" = (/obj/machinery/lapvend,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"qp" = (/turf/simulated/wall,/area/surface/outpost/main/corridor) +"qq" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qs" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qt" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qu" = (/obj/effect/floor_decal/spline/plain{icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase{desc = "It looks almost lifelike."; icon = 'icons/obj/statue.dmi'; icon_state = "hos"; name = "Statue"; pixel_y = 2},/obj/item/device/gps/internal/base,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/corridor) +"qv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qw" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qy" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qz" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qA" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway West"; dir = 4},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qB" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qD" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qG" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"qH" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qN" = (/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qO" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"qP" = (/turf/simulated/wall,/area/surface/outpost/main/dorms) +"qQ" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qR" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main3_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = -26; tag_exterior_door = "main3_airlock_exterior"; tag_interior_door = "main3_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qS" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"qU" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"qV" = (/obj/structure/closet/wardrobe/xenos,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"qW" = (/obj/structure/closet/wardrobe/suit,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"qX" = (/obj/structure/closet/wardrobe/grey,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"qY" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"qZ" = (/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"ra" = (/obj/machinery/mech_recharger,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main) +"rb" = (/turf/simulated/wall,/area/surface/outpost/main) +"rc" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"rd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"re" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main) +"rf" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom) +"rg" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"rh" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"ri" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"rj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"rk" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/purpledouble,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rl" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rm" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rn" = (/obj/machinery/door/airlock{id_tag = "modorm1"; name = "Room 1"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"ro" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rq" = (/obj/machinery/door/airlock{id_tag = "modorm2"; name = "Room 2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rr" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rs" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rt" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/yellow,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"ru" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm5"; name = "Room 5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm6"; name = "Room 6"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rx" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"ry" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"rz" = (/obj/item/weapon/bedsheet/bluedouble,/obj/structure/bed/double/padded,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"rA" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light,/obj/structure/closet/emcloset,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"rB" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = -6; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) +"rC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) +"rD" = (/turf/simulated/wall,/area/surface/outpost/main/pool) +"rE" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool) +"rF" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/pool) +"rG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool) +"rH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"rI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom) +"rJ" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rK" = (/obj/item/weapon/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm1"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"rM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rN" = (/obj/machinery/button/remote/airlock{id = "modorm2"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rO" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rP" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rQ" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm5"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms) +"rR" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"rS" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm6"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"rT" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"rU" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"rV" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor) +"rW" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) +"rX" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"rY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"rZ" = (/obj/machinery/space_heater,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sa" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sb" = (/obj/machinery/light/spot{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sc" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sd" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"se" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool North"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sg" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sh" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"si" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sj" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sk" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sl" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sm" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sn" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"so" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sp" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) +"sq" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor) +"sr" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access South"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor) +"ss" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) +"st" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"su" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sA" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"sB" = (/obj/machinery/door/airlock{id_tag = "modorm3"; name = "Room 3"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 1"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm4"; name = "Room 4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sF" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"sG" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"sH" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"sI" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"sJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm7"; name = "Room 7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm8"; name = "Room 8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms) +"sM" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"sN" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor) +"sO" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) +"sP" = (/obj/structure/table/glass,/obj/item/device/paicard,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sR" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sS" = (/obj/effect/floor_decal/spline/plain{dir = 9},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"sT" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"sU" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"sV" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"sW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sX" = (/obj/structure/table/glass,/obj/item/weapon/inflatable_duck,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"sY" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"sZ" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm3"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms) +"ta" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm4"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"tb" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"tc" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"td" = (/obj/item/weapon/stool,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm7"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms) +"te" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm8"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"tf" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms) +"tg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor) +"th" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor) +"ti" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tj" = (/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tk" = (/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tl" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tm" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool West"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"to" = (/obj/effect/floor_decal/spline/plain{dir = 9},/obj/item/weapon/beach_ball,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tp" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tq" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"ts" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool East"; dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tt" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains) +"tu" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"tv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/effect/zone_divider,/turf/simulated/floor/plating,/area/surface/outpost/main/pool) +"tw" = (/obj/structure/table/glass,/obj/item/weapon/book/codex/lore/vir,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"ty" = (/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tz" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tA" = (/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tB" = (/obj/effect/floor_decal/spline/plain{dir = 10},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tC" = (/obj/effect/floor_decal/spline/plain,/obj/machinery/hologram/holopad,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tD" = (/obj/effect/floor_decal/spline/plain{dir = 6},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tE" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tF" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tH" = (/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tI" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/mountains) +"tJ" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline/corner,/area/surface/outside/ocean) +"tK" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/zone_divider,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"tL" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/ocean) +"tM" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/ocean) +"tN" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/normal) +"tO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tQ" = (/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tR" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool) +"tS" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tT" = (/obj/effect/floor_decal/spline/plain{dir = 6},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool) +"tU" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) +"tV" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tW" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool) +"tX" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tY" = (/obj/machinery/light/spot,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"tZ" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"ua" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"ub" = (/obj/structure/table/glass,/obj/item/inflatable{pixel_x = 6; pixel_y = 6},/obj/item/inflatable{pixel_x = 2; pixel_y = 2},/obj/item/inflatable{pixel_x = -2; pixel_y = -3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"uc" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/mountains) +"ud" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_1"; name = "shuttle bay controller"; pixel_x = -26; pixel_y = 0; tag_door = "surface_dock_1_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) +"ue" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"uf" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_2"; name = "shuttle bay controller"; pixel_x = 26; pixel_y = 0; tag_door = "surface_dock_2_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) +"ug" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"uh" = (/obj/structure/table/glass,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool South"; dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"ui" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool) +"uj" = (/obj/machinery/light{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) +"uk" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"ul" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"um" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"un" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"uo" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"up" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/planet) +"uq" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"ur" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/planet) +"us" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 6},/area/surface/outside/ocean) +"ut" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"uu" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 5},/area/surface/outside/ocean) +"uv" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 8},/area/surface/outside/ocean) +"uw" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"ux" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains) +"uy" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/outpost) +"uz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"uA" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch) +"uB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch) +"uC" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) +"uD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) +"uE" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -24; pixel_y = 0; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch) +"uF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"uG" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/emergencystorage) +"uH" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/smes) +"uI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"uJ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/restroom) +"uK" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch) +"uL" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"uM" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"uN" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"uO" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch) +"uP" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/light/small{dir = 1},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"uQ" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"uR" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/smes) +"uS" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Research"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"uT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"uU" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"uV" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/restroom) +"uW" = (/obj/structure/toilet{dir = 4},/obj/structure/window/reinforced/tinted,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"uX" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"uY" = (/obj/machinery/light{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"uZ" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"va" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vb" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vc" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vd" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Airlock"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"ve" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vf" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vg" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vh" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vi" = (/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vj" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vk" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"vl" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"vm" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"vn" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/plains/outpost) +"vo" = (/turf/simulated/mineral/sif,/area/surface/outside/plains/normal) +"vp" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) +"vq" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/normal) +"vr" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"vs" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"vt" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"vu" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/item/weapon/weldpack,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"vv" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Research Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"vw" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"vx" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vA" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vB" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vC" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vD" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vF" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vG" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vH" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"vK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"vL" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/outpost) +"vM" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/normal) +"vN" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/emergencystorage) +"vO" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage) +"vP" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes) +"vQ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Research Restroom"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom) +"vR" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"vS" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "research_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "research_airlock_exterior"; tag_interior_door = "research_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"vT" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"vU" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vW" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vX" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vY" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"vZ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch) +"wa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"wb" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) +"wc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"wd" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"we" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"wf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 1"; dir = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wk" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"ws" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"ww" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wE" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor) +"wF" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wG" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wI" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wJ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/bot/secbot/slime,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wK" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wL" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wP" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wS" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wU" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wY" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"wZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 4"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xb" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xc" = (/obj/machinery/light,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xe" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"xf" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xg" = (/obj/structure/bed/chair,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -28; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xi" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xj" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch) +"xk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xl" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xm" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 3"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xn" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xo" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora) +"xp" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"xq" = (/obj/machinery/smartfridge,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora) +"xr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xs" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch) +"xt" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch) +"xu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenoflora) +"xv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xw" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xx" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xy" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"xz" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xA" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xB" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced,/obj/machinery/shower{pixel_y = 3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/xenobiology) +"xC" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xD" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"xF" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xH" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xI" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - First Aid Station"; dir = 2},/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"xJ" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"xK" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"xL" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"xM" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"xN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"xO" = (/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"xP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"xQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"xR" = (/obj/machinery/computer/operating{name = "Xenobiology Operating Computer"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xS" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"xT" = (/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel{pixel_y = 12},/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"xU" = (/obj/structure/table/standard,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"xV" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xW" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xX" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology Access"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"xY" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"xZ" = (/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"ya" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yb" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yc" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"ye" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/paleblue,/obj/structure/table/rack,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yf" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"yg" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"yh" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"yi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora North"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yj" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yl" = (/obj/structure/table/glass,/obj/item/weapon/tape_roll,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"ym" = (/obj/machinery/atmospherics/tvalve{dir = 1; name = "siphon switching valve"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"yn" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yo" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yp" = (/obj/structure/table/glass,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yq" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"yr" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"ys" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yt" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 6; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yu" = (/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yv" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yw" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yx" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/full{density = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"yy" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yz" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"yA" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/obj/item/bodybag/cryobag,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yB" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenoflora) +"yC" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"yD" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"yE" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"yF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics{desc = "All you need to start your own honey farm."; name = "beekeeping crate"},/obj/item/beehive_assembly,/obj/item/bee_smoker,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/bee_pack,/obj/item/weapon/tool/crowbar,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yG" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yH" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yI" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yJ" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yK" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yL" = (/obj/structure/closet/emcloset/legacy,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora) +"yM" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yN" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yO" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -6; pixel_y = 28; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yP" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xeno_airlock_control"; name = "Xenobiology Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "xeno_airlock_exterior"; tag_interior_door = "xeno_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yQ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yR" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yS" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"yT" = (/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"yU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yW" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"yY" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"yZ" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"za" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zc" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zd" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"ze" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zg" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"zh" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zi" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zk" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"zm" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zn" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zo" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zp" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zq" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zr" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zs" = (/obj/structure/table/glass,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/knife/machete/hatchet,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zt" = (/obj/structure/table/glass,/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zu" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zv" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zw" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zx" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zy" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zz" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zA" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zD" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/slime_scanner,/obj/item/device/slime_scanner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"zE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"zF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction/yjunction{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"zG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"zH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"zI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zJ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zK" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"zL" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"zM" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zN" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/obj/item/weapon/tool/wrench,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zO" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zP" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/door/window/westright{name = "Xenoflora Containment"; req_access = list(55)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"zQ" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zR" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zS" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"zT" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/vending/hydronutrients{categories = 3},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"zU" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/botany/editor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"zV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/botany/extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"zW" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zX" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora East"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"zY" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"zZ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"Aa" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ab" = (/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ac" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ad" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/button/remote/blast_door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ae" = (/obj/structure/window/reinforced,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Af" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ag" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ah" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/botanydisk,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ai" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Aj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ak" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Al" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Am" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"An" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ao" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology West"; dir = 4},/obj/structure/closet/firecloset/full/double,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ap" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Aq" = (/obj/structure/table/standard,/obj/item/stack/material/phoron{amount = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ar" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"As" = (/obj/structure/table/standard,/obj/item/glass_jar,/obj/item/glass_jar,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"At" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology East"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Au" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"Av" = (/obj/machinery/door/blast/regular{desc = "Blastdoor divider"; id = "xenobioout7"; name = "Containment Divider"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Aw" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora West"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ax" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ay" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Az" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AA" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AB" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AC" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AE" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AF" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AH" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AI" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AJ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"AK" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"AL" = (/obj/machinery/smartfridge/secure/extract,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"AM" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenobio5"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"AN" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"AO" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AP" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AQ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AS" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"AT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AU" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"AW" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/river/indalsalven) +"AX" = (/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"AY" = (/mob/living/simple_animal/slime,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"AZ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ba" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bb" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Be" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/processor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bg" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bh" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bi" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Isolation"},/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bj" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bk" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bl" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bm" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bn" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bo" = (/obj/structure/window/reinforced,/obj/machinery/biogenerator,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bp" = (/obj/structure/window/reinforced,/obj/machinery/seed_extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bq" = (/obj/machinery/seed_storage/xenobotany,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Br" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bs" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bt" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 2"; dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Bu" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bx" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"By" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"BA" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"BB" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"BC" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/item/weapon/tool/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BD" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BE" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BF" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BG" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BH" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BI" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BJ" = (/obj/machinery/light,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BL" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"BM" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the divider between pens."; id = "xenobioout7"; name = "Containment Divider Switch"; pixel_x = 28; pixel_y = 0; req_access = list(55)},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"BN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BO" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BQ" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BS" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BT" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BV" = (/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"BW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenoflora Storage"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"BX" = (/obj/structure/closet,/obj/item/toy/figure/scientist,/obj/item/clothing/accessory/armband/science,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"BY" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 0; pixel_y = -28; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"BZ" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ca" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/window/brigdoor/northright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/button/remote/blast_door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cc" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology South"; dir = 1},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -38},/obj/structure/reagent_dispensers/watertank/high,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cd" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ce" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cf" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ch" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ci" = (/obj/structure/closet/radiation,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology) +"Ck" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cl" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"Cm" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Co" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cp" = (/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cq" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cs" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ct" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"Cu" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"Cv" = (/turf/simulated/wall,/area/surface/outside/path/plains) +"Cw" = (/turf/simulated/floor/wood{outdoors = 1},/area/surface/outside/path/plains) +"Cx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cy" = (/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"Cz" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"CA" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"CB" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"CC" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"CD" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology) +"CE" = (/obj/structure/closet/l3closet/general,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology) +"CF" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"CG" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"CH" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CI" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CJ" = (/obj/structure/closet/crate/hydroponics/exotic,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora) +"CK" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"CL" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"CM" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"CN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"CO" = (/obj/structure/closet/bombcloset,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology) +"CP" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/plains/outpost) +"CQ" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/outpost) +"CR" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora) +"CS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CW" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 1"; dir = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"CX" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"CY" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"CZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Da" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Db" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Dc" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Dd" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"De" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"Df" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Dg" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Dh" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Di" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora) +"Dj" = (/obj/machinery/door/blast/regular{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology) +"Dk" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) +"Dl" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"Dm" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/normal) +"Dn" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/response_ship/planet) +"Do" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"Dp" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"Dq" = (/obj/effect/step_trigger/teleporter/bridge/north_to_south,/obj/structure/railing,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) +"Dr" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Ds" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora) +"Dt" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/plains/normal) +"Du" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/water,/area/surface/outside/river/indalsalven) +"Dv" = (/obj/effect/step_trigger/teleporter/bridge/south_to_north,/obj/structure/railing{icon_state = "railing0"; dir = 1},/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"Dw" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 1},/area/surface/outside/ocean) +"Dx" = (/turf/simulated/floor/water,/area/surface/outside/river/faxalven) +"Dy" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven) +"Dz" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/syndicate_station/planet) +"DA" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/plains/normal) +"DB" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/plains/normal) +"DC" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/faxalven) +"DD" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/faxalven) +"DE" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/plains/normal) +"DF" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/faxalven) +"DG" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/plains/normal) +"DH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/plains/normal) +"DI" = (/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 9},/area/surface/outside/ocean) +"DJ" = (/turf/simulated/floor/water,/area/surface/outside/lake/romsele) +"DK" = (/turf/simulated/floor/water/deep,/area/surface/outside/lake/romsele) +"DL" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/skipjack_station/planet) +"DM" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DN" = (/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DO" = (/obj/machinery/light,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DP" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DQ" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall) +"DR" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall) +"DS" = (/turf/simulated/wall/dungeon{icon = 'icons/obj/doors/shuttledoors.dmi'; icon_state = "door_locked"; name = "Wall Gate"},/area/surface/outpost/wall) +"DT" = (/obj/structure/sign/warning/caution{desc = "This appears to be a sign warning people that the other side is dangerous. It also says that NanoTrasen cannot guarantee your safety beyond this point."; name = "\improper WARNING: NO ACCESS"},/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall) +"DU" = (/obj/structure/sign/warning/caution{desc = "This appears to be a sign warning people that the other side is dangerous. It also says that NanoTrasen cannot guarantee your safety beyond this point."; name = "\improper WARNING: NO ACCESS"},/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall) +"DV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DX" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outpost/wall) +"DY" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall) +"DZ" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outside/lake/romsele) +"Ea" = (/turf/simulated/floor/water/shoreline/corner{icon_state = "shorelinecorner"; dir = 4},/area/surface/outside/ocean) +"Eb" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{icon_state = "shoreline"; dir = 8},/area/surface/outside/ocean) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacadadadabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeababababababababab +aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaiajajajahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahalalalalalalalalalalalalalalalalalalalahahahahalalalalalalalahahahahalalahahahahamajajajananananalalalalalalalalalalahahahahahahahahahahahahalalalalahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafafalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahalalalalalalalamajajajaoapaqanalalalalalalalalalalalahahahahahahahahahahalalalalalalahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalamajajajarasatanalalalalalalalalalalalalalahahahahahahalalalalalalalalalahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauavavavawaxayanalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajananananalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafafalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafafalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa +aaafafafafafafalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafaAafafaa +aaafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakaBafafafafaAaAafafaa +aaafafafafafafalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaBaBaBafafaAaAaAaAaAafaa +aaafafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaDaDaDaEaAaAaAaAaAaAafaa +aaafafafafafafafafalalalalalalalafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaHaAaAaAaAaCaEafaa +aaafafafafafafafafafalalalalafafafafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaIalazajajajalaIalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaCaJaDaDaDaHaAaAaAaCaJaKaLaM +aaafafafafafafafafafafafafafafafafafalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaJaDaDaDaDaKaLaLaLaJaDaDaDaM +aaafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaOaOaOaNaNaPaPaPaPaQaQaQaPaPalalalalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalafafafafafafalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaRaSaTaUaVaNaWaXaYaZaZaZbabbaPaPaPaPalalalazajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNbcbdbebebfbgaObhbibibibibibibjaPbkblaPbmbmbmazajajajalalalalalalalalalalalalalalalalalbnbnbobpbobnbnalalalalalalalalalalalalalalalalalalahahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaObqbebrbsbtbubvbwbxbybzbybAbBbCbDbEbFbGbmbmbmazajajajalalalalalalalalalalalalbHbIbJbIbHbnbKbLbMbNbObnbPbQbRbQbPalalalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaObSbTbUbVbWbXaObYbZbicacbcccbcdaQcecfaQbmbmbmazajajajalalalalalalalalalalalbHbHcgchcicjckbNclcmcnbNcocpcqcrcsbPbPalalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNcucucvcvcvcvaNcwcxcyaQczcAcBcCcDcDcDcDcEcEcEcFajajajalalalalalalalalalalbHbHcGcGcHcIcJcKcLcMcNcOcPcKcQcRcRcScTbPbPalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDaDcUcUaM +aaafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNcvcvcvcVcWcXcYcZbZdacDcDcDcDcDcDdbdcdddedfdfdgajajajalalalalalalalalalalbIdhdidjdkcIdlcKdmdndodpdqcKdrcRcRdsdtdubQalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDaDaDaDaDcUcUcUcUaM +aaafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctalalalctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNdvdwcvdxdydzcYdAbZdBcDdCdDdEdFdGdHdIdJdKdKdKdLajajajalalalalalalalalalalbJdMcIdNcIdOdPbIdQdRdRdRdSbQdTdUcRdVdWdXbRalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUaM +aaafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaNaNaNaNdYdZcYcYeaebeccDedeeeecDeedbcDcDegefcEehajajajalalalalalalalalalalbIeiejekelemeneoepeqereqeseteuevewexeyezbQalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUaM +aaafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmbmaQeAeBaQeCeDeEeFbheGbieHeIeIeJeKeeeLcDeMeMeMeMeNajajajalalalalalalalalalalbHeOePeQeReSeTbIeUeVeWeXeYbQeZfafbfcfdfebPalalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUaM +aaafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmfffgfhfifjfkflfmfnfmfofpfqfrfsftfufvfwcDeMeMeMeMeNajajajajalalalalalalalbHbHbHfxfxfxfyfzfAfxcKbofBbocKfCfDfEfFfCfCfCbPbPalalalalalalalalalalalahahahahahahahafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM +aaafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalbmbmfGaPfHfIaPfJfKfLbYbieGbieHeIfMfNfOeefPcDeMeMeMeMeNajajajajajajajajajajfQbIfRfSbIfTfUfVcIfWfXbIfYfZgabQgbgcgcgdgegfgcggbQalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajaPaPghaPgigiaPgjgkglgmcDgneeeegoeedbcDeMeMeMeMgpajajajajajajajajajajfQgqgrgsgtgucIgvelelgwgxgygzgAgBgCgDgDgEgFgFgGgHbQalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctctctalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIgJgKgLgKgMgIgNgOgPgOcDgQgRgSgTgUgVcDgWgWgWgWgXajajajajajajajajajajgYbHgZhabHhbhchdhehfhgfxhhhihjfChkhlhmhnhohphqhrbPalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctctctalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIgIhshthuhvhwhxhyhzhyhAgIgIgIgIgIgIgIalalalalamajajajajajalalalalalalbHhBhBhBhBhBhChChChChChDhihEhFhFhFhFhFhGhGhGhFhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctctctalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIhHhIhyhJhKhLhMhNhOhPhQhRhShShTgIalalalalalamajajajajalalalalalalalalhBhUhVhWhBhXhYhZiaibhDhihEhFicidieifigihiiijhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalctctctctctalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIikhIhyiliminioipiqirisisitiuivgIalalalalalamajajajalalalalalalalalalhBiwixiyhBiziAiAiBhCiCiDiEhFiFiGiGiGiHiHiGiIhFalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIiJiKiLhJhyiMiNiOiPiQiRiSiTiUiVgIalalalalalamajajajalalalalalalalalalhBhBiWhBhBiXiYiZjahChDhijbhFiHiHjciiiiiHiHiGhGalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajgIgIjdjejfjggIgIjhgIgIjijjjkjkgIgIalalalalalamajajajalalalalalalalalaljljmjnjojphChCjqhChCjrhijshGjtiHjujvjwiGiHiHhGalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajgIgIgIgIjxgIjyjzjygIgIgIgIgIgIalalalalalalamajajajalalalalalalalalaljljAjWjCjDjEjFjGjHjIfYhijJhGjKiHjLiHiGiGiHiHhGaljMjMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalajajajjNjOjOjOjPjOjOjQjRjRjRjRjRjRjRjRjRjRjRjRjRjSjRjRjRjTjTjTjTjTjTjTjTjTjUjVlSjXjYjZkakbkakckakdkekfkgkhkikhkhkjiHiHhGalaljMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajajajajajamajajajajajajajajajajajajajajajajajajajajamajajajalalalalalalalalaljlkkjBkljpkmknkokpkqkrkskthGkuiGjuiHiHiHiHiHhFalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalaljMalalalalajajajajajajajajajajajamajajajajajajajajajajajajajajajajajajajajamajajajalalalalalalalalaljlkvkwkxjpkykzkAkBkBjIkCkDhFhFkEkFkGkHkIkJkKhFalaIalaljMalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalkLalalalalalalalalalalalalalalalalalalalalamajajajalalalalalalalalalkMkNkNkNkNkNkNkNkMkOkPkQkRkShFhGkThGhGhFhFhFhFalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalkUkUkUkUkVkVkWkXkWkYkYkYkYkZkZkYkYkYkYalalalalalalalalalamajajajalalalalalalalalalkMlalblclbldlelflglhliljlkfYjIlllmlnlolplqlrlsltjMalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUkUlulvlwlxlylzlAlBlClDlElFlElGlHlElIkYkYalalalalalalalalamlJlJlKalalalalalalalalalkMlLlMlMlMlMlNlOlPlQlRpIlTlUlVlWlXlYlZmambmcmdmejMjMjMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUmflxlxlxmgmhlzmimjlCmkmlmmmnmomnmnmpmqkYalalalalalalalalmrmsmtmumualalalalalalalalmvmwmxmxmxmxmymzmvhhmAmBmCfYjImDmEmFmGkBmHmIkBmJaljMjMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUlulxmKlxmLlxlzmMmNlCmOlEmPlEmQlElElEmRkYalalalalalalalalmSmTmUmVmsalalalalalalalalmvmWmXmWmXmWmWmYkMmZfYnakRnbncndnendndkBkBkBkBalalaljMjMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalkUnflxngnhninjlznknllClEnmnnnonpnononqnrkYalalalalalalalalmSnsntnumsalalalalalalalalkMnvnwnxnynzmWnAkMkBjInBkDncncnCnDnEnFnGncalalalaIalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajaIalkUnHnIlxlxnJnKnLnMnNlClElElElEnOlElElEnPkYalalalalalalalmumrmsnQmumumualalalalalalalkMnRnSnTnUnVmWnWkNnXfYiDnYnZoanEobocndndncalalalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalodkUkUkUkVkVoeofnLogohlCkZkZkZlCoilCkZkZojkYmumumsmsmumsmsmuokolomonoomumsmsmumsmsmumukMkNmvopmvkNmvmvkNoqfYnakRndornEosnEotouncalalalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajovowoxoyozoAoBoCoDoEoFoGoHoIoJoJoKoLoMoJoNoOoJoPoQoRoRoSoRoToRoUoVoWoXoYoZoRoRpaoToRoRoPpbpclhpdpepcpfpcpgphphpipjndpknEosplndndncncncalalalaljMalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajpmpnpopppqprpsptpupvpwpxpypvpvpzpvpApvpvpBpvpCpDpEpFpGpGpGpHpGpKpJqupLpGpGpGpFpGpHpGpMpNgylUlUpOpPpPpQpPpPpPkapRpSndpTnEosplndpUpVpWncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajpXodpYpZodqaqbqcpsqdqeqfqgqhqiqjpsqcqkqlqmqnqoqpqqqrqqqsqqqqqtqQqvqwqxqyqqqqqrqzqqqqqqqpqAqBqBqCqBqBqBqBqDfYqEqFqGndqHqIqJqKqLqMqNqOncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalododododqPqPqcpsqPqPqPqPqPqPqPpsqcqPqPodododmumumsmsmumsmsmurAqRntqSqTmumsmsmumsmsmumukBqUqVqWqXqYqZrarbfYrcrdrerfrgnErhrindpUrjpWncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajaIalodrkrlrmrnrorprqrrrsqPrtrurvrprorwrxryrzodalalalalalalalmurVmurBmsmumualalalalalalalkBrCrDrDrDrDrDrDrDrDrErFrGndndndrHndndndrIncncalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalowrJrKrLqPqcrMqPrNrOqPrPrQqPrRqcqPrSrTrUowalalalalalalalaltgrWmUmVmsalalalalalalalalalrCrXrYrZrZsasbscsdsesfsgshsisjskslsmsnsorCalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalodqPqPqPqPqcpsqPqPqPqPqPqPqPpsqcqPqPqPqPodalalalalalalaIaltgspsqsrmsalaIalalalalalalalssstsusvswswswswswswsxswswswswswswsyszstssalalalaljMalalalalafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalodsArlrmsBsCsDsEsFsGqPsHsIsJsKsCsLrxrysModalalalalalalalalrVmusNmsmualalalalalalalalalsOsPstsQsRsSsTsTsTsTsTsTsUsUsUsVsRsWstsXsOalalalaljMalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalododsYsZqPowowqPtatbqPtctdqPowowqPtetfododalalalalalalalaltuthlJlJalalalalalalalalalalssstsRsQsRtitjtjtjtjtjtjtktktktlsRsWsRstssalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalaFalalalalalalalalalalalalalalalalalalalalalalalalalalalajajalalodowododalalododowodowododalalododowodalalalalalalalalaltuajajajalalalalalalalalalalrCrCtmtnsRtitjtjtjtotptqtktktktlsRtrtsrCrCalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaagagaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFttttttaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFtKttttttaFaFaFaFaFaFaFaFaFaFaFtvtwtxtytztAtAtAtBtCtDtEtEtEtFtytGtHtvaFaFaFaFaFaFaFaFaFaFaFaFagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagtItItItItJustLtLtLtLtLtLtLtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalsOsttOsRtitjtjtjtktktktktktktlsRtPstsOalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalsssRsRsRtQtRtRtRtStStStStStStTsRsRsRssalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalrCtUtVsRsRsRsRsRsRsRsRsRsRsRsRsRsRtWrCalalaljMalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafaAaAaAaAaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalalalalalalalalalalalalalalaltuajajajajalalalalalalalalalalalrCrCsttXtYtZsRsRsRsRsRuatYubstrCrCalalalaljMalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafucucaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalmuudajajalalalalalalaluemuuealalalalalalalalalufmualtualajajajalalalalalalalalalalalalrCsssOssrCtXuguhuitXrCsssOssrCalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalujukulululululululululumujukulululululululululumujaltualajajajalalalalalalalalalalalalalalalalrCrCsssOssrCrCalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuououpupupupupuououqueunururuouououououruruqalaltuajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalaljMalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafucaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururuououourururuqalajutajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalaljMjMalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafucucaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajajutajajajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafucucucaAaAaAaAaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajajutalajajajalajajajajajajajajajajajajajajajalalalalalalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafucucucucaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqajaluwyCuxuxuxyCyCyCyCyCyCyCyCyCyEajajajajajajajajalalalalaljMjMjMalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqalalalajajajajalalalalalalalalaltualalalalajajajajajajalaljMjMalalalalalalalalalalalalalalalalalalalalalalalafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunuoupupupupupupupuouqueunurururururururururuqalalalajajajalalalalalalalalalaltualalalalalalajajajajajalalalalalalalalalalalalalalalalalalalalalalalalaluyuyafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafucucucucaAaAaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaltualalalalalalalalajajajalalalalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyafafafafafafafafafafafafafafagafafafafafafafafafafafafafafucucucucucaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaluzalalalalalaIalaluAuBuBalalaIalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyuyuyafafafafafafafafafafafafagafafafafafafafafafafafafafucucucucucucaAaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalalalalalalaluzalalalalalalaluCuDuEuFuCalalalalalalalalalalalalalalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyafafafafafafafagafafafafafafafafafafafafucucucucucucaAaAaAaAaAaAaAaAaAaAaAaAuvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalalaluGuGuGuHuHuIuHuJuJuJuJuJuJuJuKuLuMuDuDuDuFuNuFuDuDuFuDuOuDuFuDalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyafafafafagafafafafafafafafafafafucucucucucucucaAaAaAaAaAaAaAaAaAaAaAaAaAaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupupupupupupupuqueunuourururururururuouqalalalajajajalalalaluGuGuPuQuRuSuTuUuVuWuXuYuZvauJvbvcvduDvevfvgvhvivjuOvkvkvkvlvmuDuDalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvnvovovovovovovovpucucucucucucucucucucaAaAaAvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupupuouououpupupuqueunuourururururururuouqalalalajajajalalalaluGvrvsvtuRvuvvvwuVvxvyvzvAvBuJuDvCuFuDvDvEvFvGvHvIuOvkvkvkvJvKuOuDalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalunupupuouououououpupuqueunuouourururururuououqalalalajajajalalalaluGvNvOvNuRuRvPuRuVuVuVvQuVuVuVvRvSvTuOvUvVvWvXvYvZuOuOuOuOwauOuOuDalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalwbwcwdwdwdwdwdwdwdwdwdwewbwcwdwdwdwdwdwdwdwdwdwewbalalajajajalalalaluFwfwgwhwiwjwkwlwmwnwowpwowqwrwowswowtwuwvwwwxwowywzwwwowAwBwCwDuFalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalmuwEalalalalalalalalalwEmuwEalalalalalalalalalwEmualalajajajalalalaluNwFwGwHwIwJwKwLwMwNwOwPwQwQwRwQwSwQwTwUwQwVwQwQwQwWwXwYwZxawFwFuNalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalaluFxbxcxdxexexfxexexgxcxhxixjuFuFxkuFuFuDxlxmxnwFxoxoxpxqxoxrxnxsxtxualalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalxexexvxwxxxyxzxAxBxyxCxDxExexexFxGxHxIxJxoxoxKxLxKxoxMxNxOxoxPxLxQxoxoalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalxexexRxSxTxUxexVxWxXxexYxZyaybxexeycydyexoxoyfygyhyiyjxOykxOylymynyoypxoxoalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalxeyqyrysyryrxexeytxexeyuyvysywyxxeyyyzyAxoyBBjyDBByFyGxOykxOyHyIyJyKyKyLxoalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalxexexexexeyMysyryNyOyPyQyRyrysySxexexexexexoxoyTxOyKyUyVyWyXyYxOyZzazbzcyByBxoxoxoaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalxezdzezfzgzhyrziysyszjysysziyrzkzlzfzezmxeznzozpzqyKzrzsztxOykxOzuzvzwyKxKzxzyxOxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalxezzzzzzzAzByszCzDzEzFzGzHzIzJzKzLzzzzzzxezMzNzOzPzQzRzSzTxOykxOzUzVzWzXxKxOxOzYxLuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalalalxezzzzzzzZAayrysyryrAbyryrysAcAdzlzzzzzzxeAeAfAfzqAgxOxOxOxOAhAiAiAjAiAiAkAiAlzYxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajalalalalalalalxeAmAmAmAnAoyrysApAqArAsyrysAcAtAuAvAvAvxeAwAxAxAyzaAzAAAAABACADyKyKAEAFyBAGAHAIxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajajalalalalalalalalalxezzzzzzAJAKyrysyryrALyryrysAcAMANzzzzzzxoAOAPAQAyAgxOxOxOARASATyXyXyXyXAUyXAVzYxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajajalalalalalalalalalalalxezzAYzzAZzBysBaBbBcBdzEBeBfBgzKBhzzzzzzxoBiyKDrBkBlBmBnBoARyKxOBpBqBrBsxKBtxOzYxLuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajajalalalalalalalalalalalalalxeBuBvzfBwBxyrziysysysysysziAcByBzzfBvBAxoDsBCyKAyyKBDBEBFARyKxOBGBHBIyKxKxOBJBKxKuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajajalalalalalalalalalalalalalalalxexexexexeBLysyrysyryryrysyrBgBMxexexexexoxoxoBNBOyKBPAABQBRBSyXBTyVBUBVyBBWxoxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalajajajalalalalalalalalalalalalalalalalalalxeBXyrysBYBZCaCbCcCdCaCeCfCgChCiCjCkClClxoCmCnCoCpyKyGARCqxOyHyKyKCrCsCtxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalCvCwCwCvalalalalalalalalalalalalalalalalalalxexeCxyrxeCyCzCAAmCBCCCDxeyrCExexeClCluexoxoCFCGyBxKxKCHyBCIxKxKyBCsCJxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalCKCwCwCLAXAXAXalalalalalalalalalalalalalalalalxexeCMxeCNzzzzAmzzzzCNxeCOxexeCPbmbmueCQxoxoCRyBCSxOCTCUCVCWxOBWCtxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +AWAXAXAXAXCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXCKCwCwCXCuAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXalxexexeCYzzzzAmzzAYCZxexexealCQCQCQCQCQalxoxoxoDaxODbAHDcxODdxoxoxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafAXAXAXCuCuCuAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXDeCwCwCXCuCuCuCuAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXalalxeDfzzzzAmzzzzDgxealalalalalalalalalalalxoxOzYzYDhzYzYDixouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafAXAXAXAXCuCuAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuDeCwCwCXAXAXCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuCuAXAXAXxeDjDjDjxexexexexealalalalalalalalalaluyxoxKxLxKxoxKxLxKxouyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXCuCuCuCuCKCwCwCLAXAXAXAXAXAXAXAXAXCuCuCuAXCuCuCuCuCuCuCuAXAXAXalalalalalalalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNAXAXAXAXAXAXAXAXAXCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuCuAXAXAXCKCwCwCLAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXalalalalalalaluyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXAXCKCwCwCLAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuCuCuAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuCuAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXAXtNCvCwCwCvtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuCuCuCuAXAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNajajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpAXAXAXAXAXAXAXCuCuCuCuCuCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXCuAXAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajajtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXCuCuAXAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXCuCuAXAXAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalalAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXCuCuCuAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalalalAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXCuAXAXAXuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyuyvLvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafaftNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalalalAXAXAXCuCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXCuCuAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalalalAXAXAXAXAXCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalalAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalalalAXAXAXAXCuCuAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalalalAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNaFalalalalalalalAXAXAXAXAXAXCuCuAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXCuCuAXAXAXAXAXAXtNtNtNtNtNAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXCuCuCuAXAXAXAXAXAXAXAXAXAXAXAXDlAXAXAXAXAXAXCuCuCuCuAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuAXAXAXAXAXAXAXAXAXDlAXCuCuCuCuCuAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXCuCuCuCuCuAXAXAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXCuCuAXAXAXAXDlAXAXAXAXAXAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpajajajajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXAXAXAXAXAXAXDlAXAXtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpajajajajajajajajajajajvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNAXAXAXAXAXtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpajajajajajajajajajajajajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpajajajajajajttajajajajajvpvpvpvpvpvpvpajajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXAXvpvpvpvpvpvpajajajajajajajajajttajajajvpvpvpvpvpvpvpvpvpvpajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNtNtNtNtNtNtNtNtNtNtNDmtNtNtNtNtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajajajajajajajajajajajvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpAXAXCuCuCuAXAXvpvpvpvpajajajajajajvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnvpajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvptNtNtNDmtNtNtNtNtNtNtNtNtNvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpCvDoDoDpDpDpDoDoDqCvajajajajvpvpvpvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnDnajajvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpajajajCwCwCwCwCwCwCwCwCwCwajajvpvpvpvpvpvpvpvpvpvpDkvMDnDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajCwCwCwCwCwCwCwCwCwCwajvpvpvpvpvpvpvpvpvpvpvpDkvpDnDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpCvDtDuDuDvDvDvDuDuCvvpvpvpvpvpvpvpvpvpvpvpvpDkvpDnDnDnDnDnDnDnDnDnDnDnvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUaDaDaDDIDwDwDwuuaDaDaDaDcUcUcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvMvMvMvMvMvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUaDaDDIEavqvqvquvDwuuaDaDaDaDcUcUcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUaDaDaHvqvMvMvqvqvquvDwuuaDaDaDaDcUcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUaDaDaDaHvqvqvMvMvMvqvqvquvuuaDaDaDaDcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUaDaDaDDIEavqvqvMvMvMvMvMvqvquvDwuuaDaDcUcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqaCaLaJaDaDaDcUcUcUaDaDDIEavqvqvMvMvpvpvpvMvqvqvqvqaGaDaDaDcUcUaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqaCaLaLaLaJaDaDaDaDaDcUcUcUaDaDaHvqvqvMvMvpvpvpvpvMvMvMvMvquvuuaDaDaDcUaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqaLaLaLaJaDaDaDaDaDaDaDaDaDcUcUcUcUaDaKaEvqvMvMvMvpvpvpvpvMvMvMvMvquvuuaDaDaDaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMAXAXaDaDaDaDaDaDaDaDaDaDaDaDaDaDcUcUcUaDaDaKaEvqvMvMvMvMvpvpvpvpvMvMvMvquvuuaDaDaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuCuAXAXvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMAXAXAXAXAXaDaDaDaDDIDwDwDwDwDwDwuuaDaDcUcUcUaDaDaDaKaEvqvqvMvMvMvMvMvMvMvMvMvqvqaGaDaDaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXaDaDDIDwEavqvqvqvqvqvqaGaDaDaDcUcUcUaDaDaDaKaEvqvqvMvMvMvMvMvMvqvqvqvqaGaDaDaM +aaafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXCuAXAXAXAXvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXDwDwEavqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUaDaDaDaKaLaEvqvqvqvqvqvqvqaCaLaLaJaDaDaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUaDaDaDaDaKaLaLaLaLaLaLaLaJaDaDaDaDaDaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvpvpvpvpvpDkvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaM +aaafafafvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpAXAXCuCuAXAXAXAXAXAXAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUaDaDaDaDaDaDaDaDaDaDaDaDcUcUcUaM +aaafafafvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxAXAXAXCuCuCuAXAXAXAXCuCuDyCuCuCuAXAXAXAXAXAXAXAXAXvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxAXAXAXAXAXAXCuCuCuCuCuDyCuCuCuCuCuCuCuCuCuAXAXAXvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxAXAXAXAXAXAXAXAXAXAXDlAXAXAXAXAXCuCuAXAXAXAXAXAXvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvpvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpAXAXDlAXAXAXAXAXAXAXAXAXAXAXAXAXAXAXvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpAXAXAXAXAXAXAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpAXAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMAXAXAXAXAXAXAXvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvMvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMAXAXAXAXAXAXaLaEvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafvMvMvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMAXAXAXAXaDaKaEvqvqvqvqaCaJaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADAvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqAXAXAXaDaDaKaLaLaEvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADAvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDBvpDBvpCvCwCwCvvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqAXAXaDaDaDaDaDaKaLaJaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADAvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvquvDwDwuuaDaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADAvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADAvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDxDCCwCwDDDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxDxDxDBvpDBvpCvCwCwCvvpvpvpDxDxDxDxDxDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADAvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADAvMvMDzDzDzDzvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvMDAvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMDzDzDzDzDzDzDzDzDzDzDzDzvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADADADEvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADADEDADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMDADADADEDADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDAvMvMvMDADADADADADEDADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDxDxDxvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqaCaJaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaagagagDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDFDFDFDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkttttttttDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDGDGDGDGDGDGDHDHDHDHDHDHDHDHDHDHDHDHEbtLtLtLtLtLtLtLtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMtMaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpajajajajajvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpvpvpvpvpDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvpvpvpvpDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM +aaafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDcUcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqaGaDaDaDaDaDcUcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvaDaDaDaDaDaDcUcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDcUcUcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDcUcUcUcUaM +aaafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwuuaDaDaDaDaDcUcUcUaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaDaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaDaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvuuaDaDaDaDaDaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwDwuuaDaDaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvquvDwDwaM +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafaa +aaafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvMvMDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvpvpvMvMDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvpvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLvMvMvMDLvMvMvMvMvMDLvMvMvMDLDLDLDLvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJvMvpvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMvMDLDLDLDLDLDLDLvMvMvMDLDLDLDLvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJvMvMvpvMDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMDLDLDLDLDLDLDLDLDLvMvMDLDLDLDLvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa +aaafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJvMvMvMDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLvMvMDLDLDLDLDLDLDLDLDLvMvMDLDLDLDLvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqvqvqafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqvqvqafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvqvqvqvqvqvqvqvqafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvqvqvqvqvqafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJvpvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqvqafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvqafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMDADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafaa +aaafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafaa +aaafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafaa +aaafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafaa +aaafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafaa +aaafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDJDKDKDKDKDJDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMDLDLDLDLDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafaa +aaafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvMvMDMDMDMvMvMDADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDJDJDJDJDKDKDJDJDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMDMDMDMvMvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMDLDLDLDLDLDLDLDLDLvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafafafaa +aaafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADADADADADADADADADADADADADADADADADADADADADAvMDNDMDODMDPvMDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADJDJDJDJDJDJDKDKDJDJDJDJDJDJDJDJDJvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpDNDMDODMDPvMvpvpvpvpvpvpvpvpvpvpvpvpvpvpafafafafafafafvpvpvpDkvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvMvMvMvMvMvMvMvMvMDLDLDLDLDLDLDLvMvMvMvMvMvMvMafafafafafafafafafafafafafafafafafafafafafaa +aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADEDADADADADADAafafafafafDQDADADADQDADADADQDADADADQDADADADRDSDTDSDRDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADADADQDADJDJDJDKDKDJDJDJDADQDADAvpDQvpvpvpDQvpvpvpDQvpvpvpDQvpvpvpDQvpvpvpDRDSDUDSDRvpvpvpDQvpvpvpDQvpvpvpDQafafafafafafafafafafafafafagafafafvpvpvpvpvpvpvpafafafafafafafafvMvMvMvMvMvMvMvMvMvMvMvMvMvMvMafafafafafafafafafafafafafafafafafafafafafafafafafafafaa +aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADADADADADADADADAafafafafafafafafafafafafafafDADADADkDADADAafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDMDMDMDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDMDMDMDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafvMvMvMvMafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa +aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa +aaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDZDZDZDZDZDZDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababab +"} + +>>>>>>> da69090... Merge pull request #5632 from lbnesquik/Kates-Hammer-Fix From e4660c58384b3d824f9233013dd81025119e58ea Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 9 Oct 2018 15:30:29 -0500 Subject: [PATCH 35/68] Admin ticket system (for real this time) --- code/__defines/admin.dm | 24 + code/__defines/qdel.dm | 9 +- code/__defines/typeids.dm | 6 + code/_global_vars/misc.dm | 6 +- code/_global_vars/mobs.dm | 5 +- code/_helpers/game.dm | 25 +- code/_helpers/lists.dm | 11 + code/_helpers/time.dm | 104 +++- code/_helpers/unsorted.dm | 8 + code/modules/admin/admin_verbs.dm | 23 +- code/modules/admin/topic.dm | 22 +- code/modules/admin/verbs/adminhelp.dm | 613 +++++++++++++++++++++++- code/modules/admin/verbs/adminjump.dm | 18 +- code/modules/admin/verbs/adminpm.dm | 327 +++++++++---- code/modules/admin/verbs/randomverbs.dm | 18 +- code/modules/client/client defines.dm | 1 + code/modules/client/client procs.dm | 5 +- code/modules/mob/mob.dm | 5 +- code/world.dm | 7 +- interface/interface.dm | 2 +- vorestation.dme | 1 + 21 files changed, 1100 insertions(+), 140 deletions(-) create mode 100644 code/__defines/typeids.dm diff --git a/code/__defines/admin.dm b/code/__defines/admin.dm index d2afb7846e..84e0656c97 100644 --- a/code/__defines/admin.dm +++ b/code/__defines/admin.dm @@ -45,3 +45,27 @@ #define SMITE_BLUESPACEARTILLERY "Bluespace Artillery" #define SMITE_SPONTANEOUSCOMBUSTION "Spontaneous Combustion" #define SMITE_LIGHTNINGBOLT "Lightning Bolt" + +#define ADMIN_QUE(user) "(?)" +#define ADMIN_FLW(user) "(FLW)" +#define ADMIN_PP(user) "(PP)" +#define ADMIN_VV(atom) "(VV)" +#define ADMIN_SM(user) "(SM)" +#define ADMIN_TP(user) "(TP)" +#define ADMIN_BSA(user) "(BSA)" +#define ADMIN_KICK(user) "(KICK)" +#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" +#define ADMIN_SYNDICATE_REPLY(user) "(RPLY)" +#define ADMIN_SC(user) "(SC)" +#define ADMIN_SMITE(user) "(SMITE)" +#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]" +#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]" +#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)]" +#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]" +#define ADMIN_JMP(src) "(JMP)" +#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" +#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" + +#define AHELP_ACTIVE 1 +#define AHELP_CLOSED 2 +#define AHELP_RESOLVED 3 \ No newline at end of file diff --git a/code/__defines/qdel.dm b/code/__defines/qdel.dm index 82ec12a211..51c6db5325 100644 --- a/code/__defines/qdel.dm +++ b/code/__defines/qdel.dm @@ -20,4 +20,11 @@ #define QDELING(X) (X.gc_destroyed) #define QDELETED(X) (!X || X.gc_destroyed) -#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) \ No newline at end of file +#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) + +#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } +#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } +#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } + +/proc/______qdel_list_wrapper(list/L) //the underscores are to encourage people not to use this directly. + QDEL_LIST(L) diff --git a/code/__defines/typeids.dm b/code/__defines/typeids.dm new file mode 100644 index 0000000000..9af310012b --- /dev/null +++ b/code/__defines/typeids.dm @@ -0,0 +1,6 @@ +//Byond type ids +#define TYPEID_NULL "0" +#define TYPEID_NORMAL_LIST "f" +//helper macros +#define GET_TYPEID(ref) ( ( (lentext(ref) <= 10) ? "TYPEID_NULL" : copytext(ref, 4, lentext(ref)-6) ) ) +#define IS_NORMAL_LIST(L) (GET_TYPEID("\ref[L]") == TYPEID_NORMAL_LIST) \ No newline at end of file diff --git a/code/_global_vars/misc.dm b/code/_global_vars/misc.dm index de2779c45b..5e7737f163 100644 --- a/code/_global_vars/misc.dm +++ b/code/_global_vars/misc.dm @@ -1 +1,5 @@ -GLOBAL_LIST_EMPTY(all_observable_events) \ No newline at end of file +GLOBAL_LIST_EMPTY(all_observable_events) + +GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the host computer) and 0 world.ticks. + +GLOBAL_VAR_INIT(TAB, "    ") \ No newline at end of file diff --git a/code/_global_vars/mobs.dm b/code/_global_vars/mobs.dm index 7fa2b5d162..fac5a14036 100644 --- a/code/_global_vars/mobs.dm +++ b/code/_global_vars/mobs.dm @@ -1,2 +1,5 @@ GLOBAL_LIST_EMPTY(admins) //all clients whom are admins -GLOBAL_PROTECT(admins) \ No newline at end of file +GLOBAL_PROTECT(admins) +GLOBAL_LIST_EMPTY(deadmins) //all ckeys who have used the de-admin verb. +GLOBAL_LIST_EMPTY(stealthminID) +GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client \ No newline at end of file diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index dc3fdc005c..4a249b050c 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -26,17 +26,17 @@ max_z = max(z, max_z) return max_z -/proc/get_area(O) - var/turf/loc = get_turf(O) - if(loc) - var/area/res = loc.loc - .= res +/proc/get_area(atom/A) + if(isarea(A)) + return A + var/turf/T = get_turf(A) + return T ? T.loc : null -/proc/get_area_name(N) //get area by its name - for(var/area/A in all_areas) - if(A.name == N) - return A - return 0 +/proc/get_area_name(atom/X, format_text = FALSE) + var/area/A = isarea(X) ? X : get_area(X) + if(!A) + return null + return format_text ? format_text(A.name) : A.name /proc/get_area_master(const/O) var/area/A = get_area(O) @@ -605,3 +605,8 @@ datum/projectile_data /proc/SecondsToTicks(var/seconds) return seconds * 10 + +/proc/window_flash(var/client_or_usr) + if (!client_or_usr) + return + winset(client_or_usr, "mainwindow", "flash=5") \ No newline at end of file diff --git a/code/_helpers/lists.dm b/code/_helpers/lists.dm index 17bc605ae7..b9e5dd8623 100644 --- a/code/_helpers/lists.dm +++ b/code/_helpers/lists.dm @@ -240,6 +240,17 @@ proc/listclearnulls(list/list) for(var/i in L) . |= i +//same, but returns nothing and acts on list in place (also handles associated values properly) +/proc/uniqueList_inplace(list/L) + var/temp = L.Copy() + L.len = 0 + for(var/key in temp) + if (isnum(key)) + L |= key + else + L[key] = temp[key] + + //Mergesort: divides up the list into halves to begin the sort /proc/sortKey(var/list/client/L, var/order = 1) if(isnull(L) || L.len < 2) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index f75802eb45..ce640731a6 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -64,6 +64,11 @@ var/next_station_date_change = 1 DAY var/time_portion = time2text(world.timeofday, "hh:mm:ss") return "[date_portion]T[time_portion]" +/proc/gameTimestamp(format = "hh:mm:ss", wtime=null) + if(!wtime) + wtime = world.time + return time2text(wtime - GLOB.timezoneOffset, format) + /* Returns 1 if it is the selected month and day */ proc/isDay(var/month, var/day) if(isnum(month) && isnum(day)) @@ -137,4 +142,101 @@ var/round_start_time = 0 i *= 2 while (TICK_USAGE > min(TICK_LIMIT_TO_RUN, GLOB.CURRENT_TICKLIMIT)) -#undef DELTA_CALC \ No newline at end of file +#undef DELTA_CALC + + +//Takes a value of time in deciseconds. +//Returns a text value of that number in hours, minutes, or seconds. +/proc/DisplayTimeText(time_value, truncate = FALSE) + var/second = (time_value)*0.1 + var/second_adjusted = null + var/second_rounded = FALSE + var/minute = null + var/hour = null + var/day = null + + if(!second) + return "0 seconds" + if(second >= 60) + minute = FLOOR(second/60, 1) + second = round(second - (minute*60), 0.1) + second_rounded = TRUE + if(second) //check if we still have seconds remaining to format, or if everything went into minute. + second_adjusted = round(second) //used to prevent '1 seconds' being shown + if(day || hour || minute) + if(second_adjusted == 1 && second >= 1) + second = " and 1 second" + else if(second > 1) + second = " and [second_adjusted] seconds" + else //shows a fraction if seconds is < 1 + if(second_rounded) //no sense rounding again if it's already done + second = " and [second] seconds" + else + second = " and [round(second, 0.1)] seconds" + else + if(second_adjusted == 1 && second >= 1) + second = "[truncate ? "second" : "1 second"]" + else if(second > 1) + second = "[second_adjusted] seconds" + else + if(second_rounded) + second = "[second] seconds" + else + second = "[round(second, 0.1)] seconds" + else + second = null + + if(!minute) + return "[second]" + if(minute >= 60) + hour = FLOOR(minute/60, 1) + minute = (minute - (hour*60)) + if(minute) //alot simpler from here since you don't have to worry about fractions + if(minute != 1) + if((day || hour) && second) + minute = ", [minute] minutes" + else if((day || hour) && !second) + minute = " and [minute] minutes" + else + minute = "[minute] minutes" + else + if((day || hour) && second) + minute = ", 1 minute" + else if((day || hour) && !second) + minute = " and 1 minute" + else + minute = "[truncate ? "minute" : "1 minute"]" + else + minute = null + + if(!hour) + return "[minute][second]" + if(hour >= 24) + day = FLOOR(hour/24, 1) + hour = (hour - (day*24)) + if(hour) + if(hour != 1) + if(day && (minute || second)) + hour = ", [hour] hours" + else if(day && (!minute || !second)) + hour = " and [hour] hours" + else + hour = "[hour] hours" + else + if(day && (minute || second)) + hour = ", 1 hour" + else if(day && (!minute || !second)) + hour = " and 1 hour" + else + hour = "[truncate ? "hour" : "1 hour"]" + else + hour = null + + if(!day) + return "[hour][minute][second]" + if(day > 1) + day = "[day] days" + else + day = "[truncate ? "day" : "1 day"]" + + return "[day][hour][minute][second]" \ No newline at end of file diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 1377ce2adf..7f1ff432e8 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -519,6 +519,14 @@ Turf and target are seperate in case you want to teleport some distance from a t return "[round((powerused * 0.000001),0.001)] MW" return "[round((powerused * 0.000000001),0.0001)] GW" +/proc/get_mob_by_ckey(key) + if(!key) + return + var/list/mobs = sortmobs() + for(var/mob/M in mobs) + if(M.ckey == key) + return M + //Forces a variable to be posative /proc/modulus(var/M) if(M >= 0) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 9f4ddbe3ad..ed9da8a158 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -592,6 +592,25 @@ var/list/admin_verbs_event_manager = list( feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return +/client/proc/findStealthKey(txt) + if(txt) + for(var/P in GLOB.stealthminID) + if(GLOB.stealthminID[P] == txt) + return P + txt = GLOB.stealthminID[ckey] + return txt + +/client/proc/createStealthKey() + var/num = (rand(0,1000)) + var/i = 0 + while(i == 0) + i = 1 + for(var/P in GLOB.stealthminID) + if(num == GLOB.stealthminID[P]) + num++ + i = 0 + GLOB.stealthminID["[ckey]"] = "@[num2text(num)]" + /client/proc/stealth() set category = "Admin" set name = "Stealth Mode" @@ -602,10 +621,12 @@ var/list/admin_verbs_event_manager = list( mob.name = capitalize(ckey) else var/new_key = ckeyEx(input("Enter your desired display name.", "Fake Key", key) as text|null) - if(!new_key) return + if(!new_key) + return if(length(new_key) >= 26) new_key = copytext(new_key, 1, 26) holder.fakekey = new_key + createStealthKey() if(istype(mob, /mob/new_player)) mob.name = new_key log_admin("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index f92bae98fb..3b8bb9c13a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -10,6 +10,20 @@ check_antagonists() return + if(href_list["ahelp"]) + if(!check_rights(R_ADMIN)) + return + + var/ahelp_ref = href_list["ahelp"] + var/datum/admin_help/AH = locate(ahelp_ref) + if(AH) + AH.Action(href_list["ahelp_action"]) + else + to_chat(usr, "Ticket [ahelp_ref] has been deleted!") + + else if(href_list["ahelp_tickets"]) + GLOB.ahelp_tickets.BrowseTickets(text2num(href_list["ahelp_tickets"])) + if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) var/adminckey = href_list["dbsearchadmin"] @@ -841,7 +855,9 @@ M << "No ban appeals URL has been set." log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") - + var/datum/admin_help/AH = M.client ? M.client.current_ticket : null + if(AH) + AH.Resolve() qdel(M.client) //qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. if("No") @@ -867,7 +883,9 @@ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.") feedback_inc("ban_perma",1) DB_ban_record(BANTYPE_PERMA, M, -1, reason) - + var/datum/admin_help/AH = M.client ? M.client.current_ticket : null + if(AH) + AH.Resolve() qdel(M.client) //qdel(M) if("Cancel") diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index c843255f85..b741ea3139 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -1,32 +1,599 @@ +/client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with -//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! -var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as") +// +//TICKET MANAGER +// + +GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) + +/datum/admin_help_tickets + var/list/active_tickets = list() + var/list/closed_tickets = list() + var/list/resolved_tickets = list() + + var/obj/effect/statclick/ticket_list/astatclick = new(null, null, AHELP_ACTIVE) + var/obj/effect/statclick/ticket_list/cstatclick = new(null, null, AHELP_CLOSED) + var/obj/effect/statclick/ticket_list/rstatclick = new(null, null, AHELP_RESOLVED) + +/datum/admin_help_tickets/Destroy() + QDEL_LIST(active_tickets) + QDEL_LIST(closed_tickets) + QDEL_LIST(resolved_tickets) + QDEL_NULL(astatclick) + QDEL_NULL(cstatclick) + QDEL_NULL(rstatclick) + return ..() + +//private +/datum/admin_help_tickets/proc/ListInsert(datum/admin_help/new_ticket) + var/list/ticket_list + switch(new_ticket.state) + if(AHELP_ACTIVE) + ticket_list = active_tickets + if(AHELP_CLOSED) + ticket_list = closed_tickets + if(AHELP_RESOLVED) + ticket_list = resolved_tickets + else + CRASH("Invalid ticket state: [new_ticket.state]") + var/num_closed = ticket_list.len + if(num_closed) + for(var/I in 1 to num_closed) + var/datum/admin_help/AH = ticket_list[I] + if(AH.id > new_ticket.id) + ticket_list.Insert(I, new_ticket) + return + ticket_list += new_ticket + +//opens the ticket listings for one of the 3 states +/datum/admin_help_tickets/proc/BrowseTickets(state) + var/list/l2b + var/title + switch(state) + if(AHELP_ACTIVE) + l2b = active_tickets + title = "Active Tickets" + if(AHELP_CLOSED) + l2b = closed_tickets + title = "Closed Tickets" + if(AHELP_RESOLVED) + l2b = resolved_tickets + title = "Resolved Tickets" + if(!l2b) + return + var/list/dat = list("[title]") + dat += "Refresh

" + for(var/I in l2b) + var/datum/admin_help/AH = I + dat += "Ticket #[AH.id]: [AH.initiator_key_name]: [AH.name]
" + + usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480") + +//Tickets statpanel +/datum/admin_help_tickets/proc/stat_entry() + var/num_disconnected = 0 + stat("Active Tickets:", astatclick.update("[active_tickets.len]")) + for(var/I in active_tickets) + var/datum/admin_help/AH = I + if(AH.initiator) + stat("#[AH.id]. [AH.initiator_key_name]:", AH.statclick.update()) + else + ++num_disconnected + if(num_disconnected) + stat("Disconnected:", astatclick.update("[num_disconnected]")) + stat("Closed Tickets:", cstatclick.update("[closed_tickets.len]")) + stat("Resolved Tickets:", rstatclick.update("[resolved_tickets.len]")) + +//Reassociate still open ticket if one exists +/datum/admin_help_tickets/proc/ClientLogin(client/C) + C.current_ticket = CKey2ActiveTicket(C.ckey) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client reconnected.") + C.current_ticket.initiator = C + +//Dissasociate ticket +/datum/admin_help_tickets/proc/ClientLogout(client/C) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client disconnected.") + C.current_ticket.initiator = null + C.current_ticket = null + +//Get a ticket given a ckey +/datum/admin_help_tickets/proc/CKey2ActiveTicket(ckey) + for(var/I in active_tickets) + var/datum/admin_help/AH = I + if(AH.initiator_ckey == ckey) + return AH + +// +//TICKET LIST STATCLICK +// + +/obj/effect/statclick/ticket_list + var/current_state + +/obj/effect/statclick/ticket_list/New(loc, name, state) + current_state = state + ..() + +/obj/effect/statclick/ticket_list/Click() + GLOB.ahelp_tickets.BrowseTickets(current_state) + +// +//TICKET DATUM +// + +/datum/admin_help + var/id + var/name + var/state = AHELP_ACTIVE + + var/opened_at + var/closed_at + + var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked + var/initiator_ckey + var/initiator_key_name + + var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log() + + var/obj/effect/statclick/ahelp/statclick + + var/static/ticket_counter = 0 + +//call this on its own to create a ticket, don't manually assign current_ticket +//msg is the title of the ticket: usually the ahelp text +//is_bwoink is TRUE if this ticket was started by an admin PM +/datum/admin_help/New(msg, client/C, is_bwoink) + //clean the input msg + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg || !C || !C.mob) + qdel(src) + return + + id = ++ticket_counter + opened_at = world.time + + name = msg + + initiator = C + initiator_ckey = initiator.ckey + initiator_key_name = key_name(initiator, FALSE, TRUE) + if(initiator.current_ticket) //This is a bug + log_debug("Multiple ahelp current_tickets") + initiator.current_ticket.AddInteraction("Ticket erroneously left open by code") + initiator.current_ticket.Close() + initiator.current_ticket = src + + var/parsed_message = keywords_lookup(msg) + + statclick = new(null, src) + _interactions = list() + + if(is_bwoink) + AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]") + message_admins("Ticket [TicketHref("#[id]")] created") + else + MessageNoRecipient(parsed_message) + + //show it to the person adminhelping too + to_chat(C, "PM to-Admins: [name]") + + //send it to irc if nobody is on and tell us how many were on + var/admin_number_present = send2irc_adminless_only(initiator_ckey, name) + log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") + if(admin_number_present <= 0) + to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") + + GLOB.ahelp_tickets.active_tickets += src + +/datum/admin_help/Destroy() + RemoveActive() + GLOB.ahelp_tickets.closed_tickets -= src + GLOB.ahelp_tickets.resolved_tickets -= src + return ..() + +/datum/admin_help/proc/AddInteraction(formatted_message) + _interactions += "[gameTimestamp()]: [formatted_message]" + +//private +/datum/admin_help/proc/FullMonty(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + . = ADMIN_FULLMONTY_NONAME(initiator.mob) + if(state == AHELP_ACTIVE) + . += ClosureLinks(ref_src) + +//private +/datum/admin_help/proc/ClosureLinks(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + . = " (REJT)" + . += " (IC)" + . += " (CLOSE)" + . += " (RSLVE)" + . += " (HANDLE)" + +//private +/datum/admin_help/proc/LinkedReplyName(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + return "[initiator_key_name]" + +//private +/datum/admin_help/proc/TicketHref(msg, ref_src, action = "ticket") + if(!ref_src) + ref_src = "\ref[src]" + return "[msg]" + +//message from the initiator without a target, all admins will see this +//won't bug irc +/datum/admin_help/proc/MessageNoRecipient(msg) + var/ref_src = "\ref[src]" + var/chat_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [msg]" + + AddInteraction("[LinkedReplyName(ref_src)]: [msg]") + //send this msg to all admins + + for(var/client/X in admins) + if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + X << 'sound/effects/adminhelp.ogg' + window_flash(X) + to_chat(X, chat_msg) + +//Reopen a closed ticket +/datum/admin_help/proc/Reopen() + if(state == AHELP_ACTIVE) + to_chat(usr, "This ticket is already open.") + return + + if(GLOB.ahelp_tickets.CKey2ActiveTicket(initiator_ckey)) + to_chat(usr, "This user already has an active ticket, cannot reopen this one.") + return + + statclick = new(null, src) + GLOB.ahelp_tickets.active_tickets += src + GLOB.ahelp_tickets.closed_tickets -= src + GLOB.ahelp_tickets.resolved_tickets -= src + switch(state) + if(AHELP_CLOSED) + feedback_dec("ahelp_close") + if(AHELP_RESOLVED) + feedback_dec("ahelp_resolve") + state = AHELP_ACTIVE + closed_at = null + if(initiator) + initiator.current_ticket = src + + AddInteraction("Reopened by [key_name_admin(usr)]") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was reopened by [key_name(usr)].") + var/msg = "Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)]." + message_admins(msg) + log_admin(msg) + feedback_inc("ahelp_reopen") + TicketPanel() //can only be done from here, so refresh it + +//private +/datum/admin_help/proc/RemoveActive() + if(state != AHELP_ACTIVE) + return + closed_at = world.time + QDEL_NULL(statclick) + GLOB.ahelp_tickets.active_tickets -= src + if(initiator && initiator.current_ticket == src) + initiator.current_ticket = null + +//Mark open ticket as closed/meme +/datum/admin_help/proc/Close(silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_CLOSED + GLOB.ahelp_tickets.ListInsert(src) + AddInteraction("Closed by [key_name_admin(usr)].") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was closed by [key_name(usr)].") + if(!silent) + feedback_inc("ahelp_close") + var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name_admin(usr)]." + message_admins(msg) + log_admin(msg) + +//Mark open ticket as resolved/legitimate, returns ahelp verb +/datum/admin_help/proc/Resolve(silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_RESOLVED + GLOB.ahelp_tickets.ListInsert(src) + + AddInteraction("Resolved by [key_name_admin(usr)].") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr)].") + if(!silent) + feedback_inc("ahelp_resolve") + var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + +//Close and return ahelp verb, use if ticket is incoherent +/datum/admin_help/proc/Reject(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + if(initiator) + initiator << 'sound/effects/adminhelp.ogg' + + to_chat(initiator, "- AdminHelp Rejected! -") + to_chat(initiator, "Your admin help was rejected.") + to_chat(initiator, "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.") + + feedback_inc("ahelp_reject") + var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + AddInteraction("Rejected by [key_name_admin(usr)].") + Close(silent = TRUE) + +//Resolve ticket with IC Issue message +/datum/admin_help/proc/ICIssue(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + var/msg = "- AdminHelp marked as IC issue! -
" + msg += "Losing is part of the game!
" + msg += "Your AdminHelp may also be unabled to be answered due to ongoing events." + + if(initiator) + to_chat(initiator, msg) + + feedback_inc("ahelp_icissue") + msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + AddInteraction("Marked as IC issue by [key_name_admin(usr)]") + Resolve(silent = TRUE) + +//Resolve ticket with IC Issue message +/datum/admin_help/proc/HandleIssue() + if(state != AHELP_ACTIVE) + return + + var/msg = "Your AdminHelp is being handled by [key_name(usr)] please be patient." + + if(initiator) + to_chat(initiator, msg) + + feedback_inc("ahelp_icissue") + msg = "Ticket [TicketHref("#[id]")] being handled by [key_name(usr)]" + message_admins(msg) + log_admin(msg) + AddInteraction("[key_name_admin(usr)] is now handling this ticket.") + +//Show the ticket panel +/datum/admin_help/proc/TicketPanel() + var/list/dat = list("Ticket #[id]") + var/ref_src = "\ref[src]" + dat += "