From 0dc52900cc01b2a63a8fec167d378d6a99943f27 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 29 Nov 2014 17:52:13 +0100 Subject: [PATCH] Adds the service channel (:v) --- code/game/area/Space Station 13 areas.dm | 4 ++ code/game/atoms.dm | 13 ++-- code/game/communications.dm | 5 +- code/game/jobs/job/job.dm | 41 ++++++++++- code/game/jobs/job/support.dm | 8 +++ code/game/jobs/job_controller.dm | 1 + code/game/machinery/telecomms/broadcaster.dm | 12 +++- code/game/machinery/telecomms/presets.dm | 13 ++-- .../items/devices/radio/encryptionkey.dm | 14 ++-- .../objects/items/devices/radio/headset.dm | 13 +++- .../game/objects/items/devices/radio/radio.dm | 4 +- .../crates_lockers/closets/job_closets.dm | 5 ++ .../closets/secure/hydroponics.dm | 2 + code/modules/customitems/item_defines.dm | 4 +- code/modules/mob/living/say.dm | 2 + .../modules/mob/living/silicon/robot/robot.dm | 3 + code/modules/research/message_server.dm | 3 + code/stylesheet.dm | 1 + icons/obj/radio.dmi | Bin 7912 -> 7909 bytes maps/cyberiad.dmm.backup | 64 ++++++++++-------- 20 files changed, 158 insertions(+), 54 deletions(-) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 03d8fe588c5..06993fb7f61 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -902,6 +902,10 @@ var/list/ghostteleportlocs = list() name = "\improper Captain's Office" icon_state = "captain" +/area/crew_quarters/captain/bedroom + name = "\improper Captain's Bedroom" + icon_state = "captain" + /area/crew_quarters/recruit name = "\improper Recruitment Office" icon_state = "head_quarters" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 8f742df8cef..16a2426569e 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -272,7 +272,7 @@ its easier to just keep the beam vertical. src.fingerprintslast = M.key return -/atom/proc/add_fingerprint(mob/living/M as mob) +/atom/proc/add_fingerprint(mob/living/M as mob, ignoregloves = 0) if(isnull(M)) return if(isAI(M)) return if(isnull(M.key)) return @@ -308,11 +308,12 @@ its easier to just keep the beam vertical. H.gloves.add_fingerprint(M) //Deal with gloves the pass finger/palm prints. - if(H.gloves != src) - if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex)) - return 0 - else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex)) - return 0 + if(!ignoregloves) + if(H.gloves != src) + if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex)) + return 0 + else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex)) + return 0 //More adminstuffz if(fingerprintslast != H.key) diff --git a/code/game/communications.dm b/code/game/communications.dm index 3bc3ee70092..c874f37adf1 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -75,6 +75,7 @@ Radio: 1441 - death squad 1443 - Confession Intercom 1347 - Cargo techs +1349 - Service Devices: 1451 - tracking implant @@ -107,9 +108,10 @@ var/list/radiochannels = list( "Deathsquad" = 1441, "Syndicate" = 1213, "Supply" = 1347, + "Service" = 1349 ) //depenging helpers -var/list/DEPT_FREQS = list(1351, 1355, 1357, 1359, 1213, 1443, 1441, 1347) +var/list/DEPT_FREQS = list(1351, 1355, 1357, 1359, 1213, 1443, 1441, 1347, 1349) // central command channels, i.e deathsquid & response teams var/list/CENT_FREQS = list(1441, 1443) @@ -123,6 +125,7 @@ var/const/ENG_FREQ = 1357 var/const/SCI_FREQ = 1351 var/const/MED_FREQ = 1355 var/const/SUP_FREQ = 1347 +var/const/SRV_FREQ = 1349 #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 81b9a24d5d4..5424eaa6a7c 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -76,4 +76,43 @@ if(!isnum(minimal_player_age)) return 0 - return max(0, minimal_player_age - C.player_age) \ No newline at end of file + return max(0, minimal_player_age - C.player_age) + +/datum/job/proc/apply_fingerprints(var/mob/living/carbon/human/H) + if(!istype(H)) + return + if(H.back) + H.back.add_fingerprint(H,1) //The 1 sets a flag to ignore gloves + for(var/obj/item/I in H.back.contents) + I.add_fingerprint(H,1) + if(H.wear_id) + H.wear_id.add_fingerprint(H,1) + if(H.w_uniform) + H.w_uniform.add_fingerprint(H,1) + if(H.wear_suit) + H.wear_suit.add_fingerprint(H,1) + if(H.wear_mask) + H.wear_mask.add_fingerprint(H,1) + if(H.head) + H.head.add_fingerprint(H,1) + if(H.shoes) + H.shoes.add_fingerprint(H,1) + if(H.gloves) + H.gloves.add_fingerprint(H,1) + if(H.l_ear) + H.l_ear.add_fingerprint(H,1) + if(H.r_ear) + H.r_ear.add_fingerprint(H,1) + if(H.glasses) + H.glasses.add_fingerprint(H,1) + if(H.belt) + H.belt.add_fingerprint(H,1) + for(var/obj/item/I in H.belt.contents) + I.add_fingerprint(H,1) + if(H.s_store) + H.s_store.add_fingerprint(H,1) + if(H.l_store) + H.l_store.add_fingerprint(H,1) + if(H.r_store) + H.r_store.add_fingerprint(H,1) + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 92d611f2de0..020a952925c 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -17,6 +17,7 @@ if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_or_collect(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_or_collect(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) @@ -59,6 +60,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -87,6 +89,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_or_collect(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves) @@ -220,6 +223,7 @@ else H.equip_or_collect(new /obj/item/clothing/under/rank/clown(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/shoes/clown_shoes(H), slot_shoes) H.equip_or_collect(new /obj/item/device/pda/clown(H), slot_wear_pda) H.equip_or_collect(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) @@ -256,6 +260,7 @@ else H.equip_or_collect(new /obj/item/clothing/under/mime(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/mask/gas/mime(H), slot_wear_mask) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_or_collect(new /obj/item/device/pda/mime(H), slot_wear_pda) H.equip_or_collect(new /obj/item/clothing/gloves/white(H), slot_gloves) @@ -293,6 +298,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_or_collect(new /obj/item/device/pda/janitor(H), slot_wear_pda) @@ -320,6 +326,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/suit_jacket/red(H), slot_w_uniform) H.equip_or_collect(new /obj/item/device/pda/librarian(H), slot_wear_pda) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -345,6 +352,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_or_collect(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/barber(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes) if(H.backbag == 1) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index d7c8c94563c..ad7fc87d2f0 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -383,6 +383,7 @@ var/global/datum/controller/occupations/job_master var/datum/job/job = GetJob(rank) if(job) job.equip(H) + job.apply_fingerprints(H) else H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator." diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 633f1bdefbe..d2dbe48ce03 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -344,6 +344,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Security" if(1347) freq_text = "Supply" + if(1349) + freq_text = "Service" if(1441) freq_text = "Special Ops" if(1443) @@ -397,7 +399,9 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept else if (display_freq == SUP_FREQ) // cargo part_a = "" - + + else if (display_freq == SRV_FREQ) // cargo + part_a = "" // If all else fails and it's a dept_freq, color me purple! else if (display_freq in DEPT_FREQS) part_a = "" @@ -438,6 +442,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_syndicate += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg else blackbox.messages += blackbox_msg @@ -661,6 +667,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Security" if(1347) freq_text = "Supply" + if(1349) + freq_text = "Service" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -715,6 +723,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_syndicate += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg else blackbox.messages += blackbox_msg diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 914bd8c9016..c1bc006e4b3 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -40,7 +40,7 @@ id = "Hub" network = "tcommsat" autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical", - "supply", "common", "command", "engineering", "security", + "supply", "service", "common", "command", "engineering", "security", "receiverA", "receiverB", "broadcasterA", "broadcasterB") //Receivers @@ -51,7 +51,7 @@ id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(1351, 1355, 1347) // science, medical, supply + freq_listening = list(1351, 1355, 1347, 1349) // science, medical, supply, service //--PRESET RIGHT--// @@ -80,8 +80,8 @@ /obj/machinery/telecomms/bus/preset_two id = "Bus 2" network = "tcommsat" - freq_listening = list(1347) - autolinkers = list("processor2", "supply") + freq_listening = list(1347,1349) + autolinkers = list("processor2", "supply", "service") /obj/machinery/telecomms/bus/preset_three id = "Bus 3" @@ -143,6 +143,11 @@ freq_listening = list(1347) autolinkers = list("supply") +/obj/machinery/telecomms/server/presets/service + id = "Service Server" + freq_listening = list(1349) + autolinkers = list("service") + /obj/machinery/telecomms/server/presets/common id = "Common Server" freq_listening = list() diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 5b6bd106d6c..faf23247317 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -1,7 +1,7 @@ /obj/item/device/encryptionkey/ name = "Standard Encryption Key" - desc = "An encyption key for a radio headset. Has no special codes in it." + desc = "An encyption key for a radio headset. Contains cypherkeys." icon = 'icons/obj/radio.dmi' icon_state = "cypherkey" item_state = "" @@ -77,7 +77,7 @@ name = "Captain's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0) + channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0) /obj/item/device/encryptionkey/heads/rd name = "Research Director's Encryption Key" @@ -107,7 +107,7 @@ name = "Head of Personnel's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Command" = 1, "Security" = 0) + channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 0) /* /obj/item/device/encryptionkey/headset_mine name = "Mining Radio Encryption Key" @@ -126,11 +126,17 @@ desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cargo_cypherkey" channels = list("Supply" = 1) + +/obj/item/device/encryptionkey/headset_service + name = "Service Radio Encryption Key" + desc = "An encyption key for a radio headset. Contains cypherkeys." + icon_state = "srv_cypherkey" + channels = list("Service" = 1) /obj/item/device/encryptionkey/ert name = "NanoTrasen ERT Radio Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." - channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1) + channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) /obj/item/device/encryptionkey/heads/ai_integrated //ported from bay, this goes 'inside' the AI. name = "AI Integrated Encryption Key" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index d17342b4f3f..6bc6ab7e980 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -98,7 +98,7 @@ /obj/item/device/radio/headset/heads/captain name = "captain's headset" - desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :m - medical, :n - science." + desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain @@ -133,7 +133,7 @@ /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :c - command, :s - security" + desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :v - service, :c - command, :s - security" icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hop @@ -158,10 +158,17 @@ icon_state = "cargo_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo + +/obj/item/device/radio/headset/headset_service + name = "service radio headset" + desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. To access the service channel, use :v." + icon_state = "srv_headset" + item_state = "headset" + keyslot2 = new /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/ert name = "CentCom Response Team headset" - desc = "The headset of the boss's boss. Channels are as follows: :h - Response Team :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science." + desc = "The headset of the boss's boss. Channels are as follows: :h - Response Team :c - command, :s - security, :e - engineering, :d - mining, :u - cargo, :v - service, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" freerange = 1 diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 52e9d0671c1..bef99c65bde 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -548,10 +548,10 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use blackbox.msg_deathsquad += blackbox_msg if(1213) blackbox.msg_syndicate += blackbox_msg - if(1349) - blackbox.msg_mining += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg else blackbox.messages += blackbox_msg diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index e9c195e5f6f..d816375512e 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -19,6 +19,8 @@ sleep(2) new /obj/item/clothing/head/that(src) new /obj/item/clothing/head/that(src) + new /obj/item/device/radio/headset/headset_service(src) + new /obj/item/device/radio/headset/headset_service(src) new /obj/item/clothing/head/hairflower new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/sl_suit(src) @@ -46,6 +48,8 @@ sleep(2) new /obj/item/clothing/under/waiter(src) new /obj/item/clothing/under/waiter(src) + new /obj/item/device/radio/headset/headset_service(src) + new /obj/item/device/radio/headset/headset_service(src) new /obj/item/clothing/suit/wcoat(src) new /obj/item/clothing/suit/wcoat(src) new /obj/item/clothing/head/soft/black(src) @@ -68,6 +72,7 @@ ..() sleep(2) new /obj/item/clothing/under/rank/janitor(src) + new /obj/item/device/radio/headset/headset_service(src) new /obj/item/weapon/cartridge/janitor(src) new /obj/item/device/flashlight(src) new /obj/item/clothing/shoes/galoshes(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index a8024b0cd50..df408e80926 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -20,6 +20,8 @@ new /obj/item/weapon/storage/bag/plants(src) new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/device/analyzer/plant_analyzer(src) + new /obj/item/device/radio/headset/headset_service(src) + new /obj/item/device/radio/headset/headset_service(src) new /obj/item/clothing/head/greenbandana(src) new /obj/item/weapon/minihoe(src) new /obj/item/weapon/hatchet(src) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 740e5fd69c2..f27cdd76810 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -666,8 +666,8 @@ _color = "leatherjack" /obj/item/clothing/suit/armor/vest/fluff/deus_blueshield //deusdactyl - name = "blue shield security armor" - desc = "An armored vest with the badge of a Blue Shield Security lieutenant." + name = "blueshield security armor" + desc = "An armored vest with the badge of a Blueshield Lieutenant." icon = 'icons/obj/custom_items.dmi' icon_state = "deus_blueshield" item_state = "deus_blueshield" diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 7b0eccab48b..92dd72271a4 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -13,6 +13,7 @@ var/list/department_radio_keys = list( ":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk", ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", + ":v" = "Service", "#v" = "Service", ".v" = "Service", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", @@ -30,6 +31,7 @@ var/list/department_radio_keys = list( ":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk", ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", + ":V" = "Service", "#V" = "Service", ".V" = "Service", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling" /* //kinda localization -- rastaf0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e1fa4950044..42629bcb1b8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -203,12 +203,14 @@ switch(modtype) if("Standard") module = new /obj/item/weapon/robot_module/standard(src) + channels = list("Service" = 1) module_sprites["Basic"] = "robot_old" module_sprites["Android"] = "droid" module_sprites["Default"] = "robot" if("Service") module = new /obj/item/weapon/robot_module/butler(src) + channels = list("Service" = 1) module_sprites["Waitress"] = "Service" module_sprites["Kent"] = "toiletbot" module_sprites["Bro"] = "Brobot" @@ -217,6 +219,7 @@ if("Clerical") module = new /obj/item/weapon/robot_module/clerical(src) + channels = list("Service" = 1) module_sprites["Waitress"] = "Service" module_sprites["Kent"] = "toiletbot" module_sprites["Bro"] = "Brobot" diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 55e0db25f63..afa7bf2d10b 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -185,6 +185,7 @@ var/obj/machinery/blackbox_recorder/blackbox var/list/msg_syndicate = list() var/list/msg_mining = list() var/list/msg_cargo = list() + var/list/msg_service = list() var/list/datum/feedback_variable/feedback = new() @@ -210,6 +211,7 @@ var/obj/machinery/blackbox_recorder/blackbox BR.msg_syndicate = msg_syndicate BR.msg_mining = msg_mining BR.msg_cargo = msg_cargo + BR.msg_service = msg_service BR.feedback = feedback BR.messages = messages BR.messages_admin = messages_admin @@ -251,6 +253,7 @@ var/obj/machinery/blackbox_recorder/blackbox feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") feedback_add_details("radio_usage","MIN-[msg_mining.len]") feedback_add_details("radio_usage","CAR-[msg_cargo.len]") + feedback_add_details("radio_usage","SRV-[msg_service.len]") feedback_add_details("radio_usage","OTH-[messages.len]") feedback_add_details("radio_usage","PDA-[pda_msg_amt]") feedback_add_details("radio_usage","RC-[rc_msg_amt]") diff --git a/code/stylesheet.dm b/code/stylesheet.dm index b4c096562be..4be8f50dbd3 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -35,6 +35,7 @@ em {font-style: normal; font-weight: bold;} .medradio {color: #008160;} .sciradio {color: #993399;} .supradio {color: #5F4519;} +.srvradio {color: #6eaa2c;} .alert {color: #ff0000;} h1.alert, h2.alert {color: #000000;} diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index a0f1566c768d6091424353889b1f748a4e1b6735..0734f99ba4ee35c6d2b55946c23b1690bd84b18d 100644 GIT binary patch delta 348 zcmV-i0i*utJ>@-+BmrWPB_V&NqiJ^7C701MdT3u^IJTOY_$QN1L*9Oe!dga4tYhF) zkR>6l;q&lyJj4EU6j!8Zf`8O>Z7dgK_s;a&to3cB<)}@Njn%^#L;wKT8n?QD0`GTVp?=6 zxbIwxzRR`_b+(PDvaRt6Nd=b;H{)^*(5LJKD75)SFdnn9lGKI#URYF#!YI|S<>2Z$ zuJ1!!mvvc-f^afk|4VTmd!zy9toG;Ys0>3p)VzR*ilJ|PV5DO_GWd^UVDueBQ)oHw z44h2*FtTdM(ZrdRK154SBAnJJ$LV`(JZA=Hj=nFiO&IaT;d$mSB;E2E`QuqXk95sn u<#c5{bCT9(U&)(%wayNN(fIgEGh@qty!FVKNC1V%py|Acq45L)ThJ&le zxV{Z>UDjnSiinf(`d^Ck*kc@UCbgfglQInLQ1b#3Du%xHfsu~!$l%|Ofzfvi9Yf1` zXW(Sghmlo7j*gsJ=|fK9B*JNpa-6=m#&c$H=IGn5{ce#}<+iNE8uq6h?2ZTV0|R1Xb=~OjH?xlcRviF&uUG&8 diff --git a/maps/cyberiad.dmm.backup b/maps/cyberiad.dmm.backup index 446c6bb47fd..1e9507d95a4 100644 --- a/maps/cyberiad.dmm.backup +++ b/maps/cyberiad.dmm.backup @@ -2237,7 +2237,7 @@ "aRa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aRb" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/beer,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aRc" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Bar North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/soda,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aRd" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aRd" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aRe" = (/obj/machinery/power/apc{dir = 1; name = "Bar APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair_brown (EAST)"; icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aRf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aRg" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) @@ -3517,10 +3517,10 @@ "bpG" = (/obj/structure/table/reinforced{tag = "icon-table_vertical"; icon_state = "table_vertical"},/obj/machinery/door/window/brigdoor{dir = 4; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/westright{name = "Reception Door"; req_access = null; req_access_txt = "0"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/security/warden) "bpH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice,/turf/space,/area) "bpI" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/captain,/obj/item/clothing/head/helmet/space/capspace,/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/clothing/head/helmet/space/unathi/breacher,/obj/item/clothing/suit/space/unathi/breacher,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/melee/chainofcommand,/obj/item/weapon/tank/emergency_oxygen/double,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bpJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bpK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bpL" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Captain's Desk Door"; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bpM" = (/obj/machinery/light,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bpJ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"; req_access_txt = "0"},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom) +"bpK" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bpL" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green,/obj/item/clothing/tie/medal/bronze_heart,/obj/item/clothing/tie/medal/conduct,/obj/item/clothing/tie/medal/gold,/obj/item/clothing/tie/medal/gold/heroism,/obj/item/clothing/tie/medal/nobel_science,/obj/item/clothing/tie/medal/silver/security,/obj/item/clothing/tie/medal/silver/valor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bpM" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) "bpN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bpO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "AI Door"; name = "AI Emergency Maintenance"; pixel_x = 27; pixel_y = 27; req_access_txt = "20"},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bpP" = (/obj/machinery/light{dir = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/sw) @@ -3602,7 +3602,7 @@ "brn" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/computer/aiupload,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bro" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/reset/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/antimov,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "brp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/lattice,/turf/space,/area) -"brq" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) +"brq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) "brr" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "brs" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central/sw) "brt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -3675,10 +3675,10 @@ "bsI" = (/obj/machinery/turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bsJ" = (/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/ai_upload) "bsK" = (/obj/machinery/turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bsL" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/displaycase/captains_laser,/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bsM" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bsN" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) -"bsO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) +"bsL" = (/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bsM" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bsN" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom) +"bsO" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) "bsP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bsQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/central/sw) "bsR" = (/obj/machinery/power/apc{dir = 4; name = "Central Hall SE APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -3763,9 +3763,9 @@ "bus" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/freeform,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "but" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area) "buu" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/space,/area) -"buv" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"buw" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bux" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) +"buv" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom) +"buw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/displaycase/captains_laser,/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Captain's Bedroom APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bux" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) "buy" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "buz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central/sw) "buA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -3842,10 +3842,10 @@ "bvT" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/camera{c_tag = "AI Upload Chamber"; dir = 4; network = list("SS13")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bvU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bvV" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/protectStation,/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bvW" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green,/obj/item/clothing/tie/medal/bronze_heart,/obj/item/clothing/tie/medal/conduct,/obj/item/clothing/tie/medal/gold,/obj/item/clothing/tie/medal/gold/heroism,/obj/item/clothing/tie/medal/nobel_science,/obj/item/clothing/tie/medal/silver/security,/obj/item/clothing/tie/medal/silver/valor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bvX" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bvY" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bvZ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"; req_access_txt = "0"},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) +"bvW" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom) +"bvX" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) +"bvY" = (/obj/machinery/light,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bvZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bwa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bwb" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central/sw) "bwc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -9000,6 +9000,7 @@ "drd" = (/obj/structure/rack,/obj/item/clothing/shoes/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin) "dre" = (/turf/unsimulated/floor{icon_state = "engine"},/area/admin) "drf" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin) +"drg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/shuttle/gamma/space) "drh" = (/turf/unsimulated/floor{icon_state = "engine"},/turf/unsimulated/wall{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; opacity = 0},/area/admin) "dri" = (/obj/structure/rack,/obj/item/clothing/gloves/space_ninja,/turf/unsimulated/floor{icon_state = "engine"},/area/admin) "drj" = (/obj/structure/rack,/obj/item/weapon/ninja_manuscript,/obj/item/clothing/mask/gas/voice/space_ninja/scar,/turf/unsimulated/floor{icon_state = "engine"},/area/admin) @@ -9076,7 +9077,7 @@ "dsC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor{icon_state = "dark"},/area/shuttle/gamma/space) "dsD" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = null; req_access_txt = "102"},/turf/simulated/floor,/area/tdome) "dsE" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "dark"},/area/shuttle/gamma/space) -"dsF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/shuttle/gamma/space) +"dsF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor{icon_state = "dark"},/area/shuttle/gamma/space) "dsG" = (/turf/simulated/wall/r_wall,/area/shuttle/gamma/space) "dsH" = (/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dsI" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -9097,7 +9098,7 @@ "dsX" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dsY" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dsZ" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dta" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/shuttle/gamma/space) +"dta" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/shuttle/gamma/space) "dtb" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dtc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dtd" = (/obj/item/trash/cheesie,/turf/space,/area) @@ -11182,7 +11183,7 @@ "ehc" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "ehd" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/shuttle/gamma/space) "ehe" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/djstation) -"ehf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/space,/area/shuttle/gamma/space) +"ehf" = (/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor{icon_state = "dark"},/area) "ehg" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/media/jukebox/dj,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/djstation) "ehh" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maint) "ehi" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera{c_tag = "Engineering Supermatter Hallway"; network = list("SS13")},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/reactor_core) @@ -12455,6 +12456,9 @@ "eFB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/engine/engineering) "eFC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/engine/engineering) "eFD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/light_switch{pixel_x = -27},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/engineering) +"eFE" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/starboard/west) +"eFF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Captain's Desk Door"; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"eFG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12581,18 +12585,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayAaaiaaiaaianEanGayAanEanGaaianEanGaaiaaiaaiaaibrgaBNaBNaBNaBNaBObqEaaibddbdebdfbdgaaqaaiaSbbbWaQGaaibmlbdhbdiaXTaXTaaiaSkaNSaZmaNSaSkaaibnMaYabdjbdkbdlaaiaYeaYfaSnaSnaSnbdmbdnbdobdpbdqbdrbaUbdsbdtbdubdvbdwbdxbdybdzbdAbdBbdCbdqbdDbdEbdFbdGbdHbdIbdJbdKbdLaSNbdMaaqaWZaZGbdNaZIaWZbdObdPaWZbdQbdRaZIaWZaXKaYyaYyaYyaYzaYybdTaYybbnbbobdUaaqbdVbcGaYJaYKaYKaYJbcHbsAaaqbdWbdXbdXbdYbdZbeabebbecbedbedbedbedbedbedbeebefbegaYSaYSaYSaYSaYSaYSbehbeibejaXAaUKaUKaUKaWlaUKaUKbekazGbelbelbelazGaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabembenbenbeobenbMFbenbenbeobepbeqberbesaLCaLCaLCaLCaLDbetaaiaaiaaiaaiaaiaaiaaiaSbbbWaQGaaiaaiaaiaaiaaiaaiaaibeuaNSaZmaNSbevaaiaaiaqAaaiaaiaaiaaiaYebewbexbeybezbeAbeBbeCactbeDbeEbeFbeGaaiaaiaaiaaiaaiaaibeHbeIaqsbeJbdtbeKbeLaaibeMbeNbeObePbeQbeRaSNaSNeDVaWZbeSaWZaWZaWZaMuaWZaWZbeTbeTbeUbeUbeVaYyaYybeWbeXaYyaYyaYybeYbeZbfaaaqaZXbcGaYJaYJaYJaYJbcHbgiaaqbfbaQdaQdbfcaQdbfdaVXaVXaVXaVXbfeaVXaVXaVXbffbeiaYSaYSaYSaYSaYSaYSaYSbehbeibejaXAaUKaYVaYVaYWaYVaUKbfgazGbfhbfibfjazGaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabembenbenbenbenbenbenbenbenbenbenbfkaDHaBNaBNaBNaBNaBObbPaaibflbfmbfnbfobfpaaqbbJbbWbmPaaibfrbfsbftbfubfuacdbmUbfvbfwbfvaTRacdbfxbfybfzbfAbfBaaibfCbfDbfEaaiaaiaaiaaiaaiaaiaaqaLGaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaqAaaiaaicjyaaiaaiaaiaaiaaiaaiaaibeRaSNaSNaaqbfHbfIaWZbfJaWZbfKaWZbfLbfMbfNbeUbfOaaqbfPbfQaaqaaqaRJaPmaPmaPmaaqaaqaaqbfTbfUbfVbfVbfVbfVbfUbfWaaqaQcaQdaQdbfcbfXaaqbfYeDZbgabcNbavbfZbgceEabgdaaqbgeaNhbgfaYSaYSbgfaNhbggaaqbghaXAaUKbaibaibajbaiaUKbekazGbelbelbelazGaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjsbenbenbenbenbllbenbenbenaYPaUubgjbgkaJgaJgaJgbglaJhbbPaaibgmbgnbgobgobgoaIsbbVbbWaQGaaibgpbgqbgrbgsbgtaaibguaNSaZmaNSbgvaaibjdbgwbgxbfxbgyaaiblXbgAbgBaaibgCaEObgEbgFbgGbgHbgIbgJaaiaaibgKbgLbgMaWdbgObgPbgKaqAaaibgQbgRbgSbgTbgUbgVbgWaUGaaibgYbgZbgZbhaaaqaaqaaqaaqbhbeDVbhbbhcaaqanpaYuaaqaaqaaqaaqaaqbhdbhdbhdbhdbhdbhebhfaaqaZFbhgaZFbhhbhhaZFbhgaZFaaqaQcaQdaQdaKbbfXaaqaaqaaqaaqaaqaaJaaqaaqaaqaaqaaqaaJbhibhjbhjbhjbhjbhkaaqaaqbURbUSaUKaUKaUKaWlaUKaUKbdaaHubhmanFanFbhnaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayAaaiaaiaaianEanGayAanEanGaaianEanGaaiaaiaaiaaiaDHaBNaBNaBNaBOaBObbPaaibhpbhqbhrbhrbhraUTaQEbhsbbXaaibhtbhubhvbhwbhxbhyaVcbhzbhAbaFaVcbhBbhCbhDbhEbhFbhGaaibhHbhIbgBbgXbhKbhLbhMbhNbhNbhMbhObhPaaiaaibhQbhRbgKbhSbhTbhUbhVbhWbhXckmbhZbiabibbicbidbiabieaaibifbigbihbiibijbikbilbimbimbimbimbimbimbinbimbimbiobimbipbimbimbimbimbimbimbimbimbiqbirbisbisbisbisbisbisbitbikbiubivbivbiwbixbiybixbizbixbiAbiBbiCbixbiDbiEbiFbiGbiHbiHbiHbiHbiHbiHbiHbiIbiJbiKbiKbiKbiKbiLbiKbiMbiNbiObiPbiQbbHbiRaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjsbenbenbenbenbllbenbenbenaYPaUubgjbgkaJgaJgaJgbglaJhbbPaaibgmbgnbgobgobgoaIsbbVbbWaQGaaibgpbgqbgrbgsbgtaaibguaNSaZmaNSbgvaaibjdbgwbgxbfxbgyaaiblXbgAbgBaaibgCaEObgEbgFbgGbgHbgIbgJaaiaaibgKbgLbgMaWdbgObgPbgKaqAaaibgQbgRbgSbgTbgUbgVbgWaUGaaibgYbgZbgZbhaaaqaaqaaqaaqbhbeDVbhbbhcaaqanpaaqaaqaaqaaqaaqaaqbhdbhdbhdbhdbhdbhebhfaaqaZFbhgaZFbhhbhhaZFbhgaZFaaqaQcaQdaQdaKbbfXaaqaaqaaqaaqaaqaaJaaqaaqaaqaaqaaqaaJbhibhjbhjbhjbhjbhkaaqaaqbURbUSaUKaUKaUKaWlaUKaUKbdaaHubhmanFanFbhnaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayAaaiaaiaaianEanGayAanEanGaaianEanGaaiaaiaaiaaiaDHaBNaBNaBNaBOaBObbPaaibhpbhqbhrbhrbhraUTaQEbhsbbXaaibhtbhubhvbhwbhxbhyaVcbhzbhAbaFaVcbhBbhCbhDbhEbhFbhGaaibhHbhIbgBbgXbhKbhLbhMbhNbhNbhMbhObhPaaiaaibhQbhRbgKbhSbhTbhUbhVbhWbhXckmbhZbiabibbicbidbiabieaaibifbigbihbiibijbikbilbimbimbimbimbimbimbineFEbimbiobimbipbimbimbimbimbimbimbimbimbiqbirbisbisbisbisbisbisbitbikbiubivbivbiwbixbiybixbizbixbiAbiBbiCbixbiDbiEbiFbiGbiHbiHbiHbiHbiHbiHbiHbiIbiJbiKbiKbiKbiKbiLbiKbiMbiNbiObiPbiQbbHbiRaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiSbiSbiSbiSbiSbiSbiSbiSbiSbiSaaaaaaaBIbiTaCSbiUbiVaBObiWbiXaaiaRXbiYbiYbiYbiZaaqbfqbbWaQGaaibjabgsbgrbgsbgsaaibgubjbbjcaaibgvaaibfAbjebjfbfAbjgaaibtWbhIbgBaXcbjibjjbjkbjlbjmbjnbhObjoaaiaaibjpbjqaaqaaqaaqbjrbjsaaiaqAbjtbiabiabibbjubidbiabjvaaibjwbihbihbiibijbikbimbimbimbimbimbimbimbjxbimbimbimbimbimbimbjybjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjAbjBbjCbiHbiHbjDaQdaQdaQdaQdaQdbfcaQdaQdaQdaQdaQdaQdaQdaQdaQdaQdaQdaQdbjEaQdbjFbjGaUKaUKaUKaUKaUKaUKaUKbjHbdbbakanFanFbalaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiSbiSbiSbiSbiSbiSbiSbiSbiSbiSbiSaDEaDFaDGaaiaaiaaibjIaaiaaiaaibgmbiYbiYbiYcEzaaqaSbbbWaQGaaicEwbjJbjKbgsbgsaaibjLbjbbjMaaibjLaaicEvbjebjNbjObfAaaibjPbhIbgBcjWbjRbjjbjkbjSbjTbjnbhObjUaaieAvbjWbjXaaqeAuaaqbjZbkaeAtaqAbkcbkdbkebkfbkfbkgbiabkhaaibkibkjbihbiibijbikbimbkkbimbimbimbimbklbkmbkmbkmbkmbknbimbimbimbimbkobimbkkbkpbimbkqbkrbksbimbktbkubkubkvbkwbkxbkyaQdaQdaQdaQdaQdaQdaQdbkzbkAbkBaQdaQdaQdaQdaQdaQdaQdaQdaQdaQdbkCbkDbkDbkEbkFbkGbkHbkIbkIbkIbkJbkKbkLaDBaaaaaaaaabkMaLqaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiSbiSbiSbiSbiSbiSbiSbiSbiSbiSbiSbkNbkObkPbkQbkRbkSbkTbkUbkVaaibflbkWbkWbkXbkYaaqaSbbbWaQGaaiaaiaaiaaiaaiaaiaaiaaibjbbkZaaiaaiaaiaaiaqAaaiaaiaaiaaiblabhIblbaaiblcbldbhMbhMbhMbhMbhObleaaiaaiblfblgblhblibljblgblkaaiaqAaaiclfblmblnbloblpblqblraaiblsbltbltaaiaaiaaiaaiaaiaaiaaiaaqaaqblublvblwblwblvbluaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqblxaaqaaqaaqaaqaaqaaiblzanpblAaQdaQdblBblBaaiaaiaaiaaiaaiblCbkDbkDbkCbkDaQdbkDbkDbkDbkDblDaaiblEaaiaaiblFaaiaaiblGblHblIaaiaaiaaiaaiaaiaaaaaaaaaaLqaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiSbiSbiSbiSbiSbiSbiSbiSbiSbiSbiSaFoaFpaDGblJblKblKblLblMblKaaiblNblNblNblOcheaaqaSbbbWaQGaaqblQblRblSblTblUaaiblVbjbblWaaieAsaaiblYblZbmabmbbmcaaqbmdbhIbmeaaibmfbmgbmhbmibmjbmkcElaaiaaiaaibmmbmnbmobmpbmqbmrbmsaaiaqAaaibmtbmubmvbmwblpbiabmxaaibmybmzbmAaaibmBdQhbmDbmEbmFbmGbmHbmIbmJbmKbmLbmLbmKbmMbmNbmOaaqdKdbmQbmRbmSaaqbmTdOfbmVbmWbmXbmYbmYbmZaaibnbabnaaichfaaichgchgaaibnebnfbngaaibnhbnibnhaaiblCbkDblDaaiaaibnjbnkaaibnlbnmaaibnnbnoaaibnpbnqbnrbnsbntbnubnvaaiaaaaaaaaaaLqaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiSbiSbiSbiSbiSbiSbiSbiSbiSbiSaaabnwaGubnxbnybkRbkRbnzbnAbnBaaiblPblPblPblPbnCaaqaSbbbWbnDaaqbnEbnFbnGbnFbnHaaibnIbnJbnKeArbnLaaicDRbnNbnObnObnPbnQbnRbhIbnSaaibnTaqAaaiaaiaaiaaicgaaaibnVactbnWbnXbgKbnYbgKbnZboaacdbobaaibocbiabodboeblpbofbogaaibohboibojaaibokbolbombonboobopboqbmLbmLbmLbmLbmLbmLbmLborbosbotboubovbowboxaaqboybozboAboBboCboDbozbmZaaibnbabnboEboFcgqboHboIaaqboJboKboJboLboMboNboOaaiaaqboPalkboQboRboSboSboSboTboUboVboWboXboVboYboZbpabpbbpcbpdbpeaaiaaaaaaaaaaLqaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpfayAaaiaaiaaianEanGayAanEanGaaianEanGaaiaaiaaiaaicHpbkRblKblKblLblMblKaaibpgbphblNblNblOaaqbfqbbWbpiaaqbpjbpkbplbpmbpnaaicHhbpobppbnLbnLaaibpqbprbpsbptbpubpvbpwbpxbpyabHbpzbpAbpBbpCabHbpDbpEacdbpFacdacdacdacddHSacdacdacdacdbpHacdbpIbpJbpKbpLbpMbpNbpOacdbpPbmzbmzaaibpQbpRbpSbpTbpUaaiboqbmLbmLbmLbmLbmLbmLbmLbpVbpWbpXbpYbpZbqabqbaaqbqcbqdbqeboBbmZboDbozbmZaaibqfbqgbqhbqibqibqjbqkbqlbqmbqmbqmbqnbqobqpbqqbqrbqsbqtbqubqvbqwbqxbqybqybqybqzaaibqAbqBaaibqCbqDbpabpbboZbpdeazaaiaaaaaaaaaaaaaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaNpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaaaaBIblJbkRbkRbkRbnzbnAbkRaaiblPblPbqHbiYbiYcjpaSbbbWaQGaaqbqJbqKbqLbqMbqNaaibqObqPbqQbqRbqSaaibqTbqUbqVbqWbqXbqYbqZbrabrbbrcbrdbrdbrebrfayOcGobrhactbriaFkbrjbrkbrlbrmbrnbrkbroaFkbrpaaiabnbrqaaiaaiaaiaaibrraaibrsbmzbrtactbrubrvbrwbrxbryaaibrzbrAbrBbrCbrDbrEbrFbrGborbrHaaqbrIbpZbrJbrKaaqbrLbrMboAboBbmZboDbozbmZaaibnbabndXobrObrPbrQbrRaFkbrSbrTbrUbrUbrVboJbrWaaibrXbrYbrZaaibsabsbbscbsdbsbdYDaaibqAbseaaibsfbsgbpabshbsibsjbskaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaaaazGbslbsmblKblKblLblMdVKaaiaaqchjcjccjbaaqaaqbfqbbWbmPaaqbsqbsrbssbstbsuaaibnLbpobsvbnLbnLaaibswbsxbsybszcFmaaqbsBbsCbsDaaqbsEaaiaaiabnaaiaqAchiaaibsGbsHbsIbrkbsJbrmbsJbrkbsKbsHbrpaaibsLbkfbsMbsNbsOabHbsPabHbsQbmzbsRaaibmBbmCbsSbsTbsUbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtfblvbtgbthbticFnaaqbtkbtlbtmbtnbtobtpbtobmZaaibtqbtrbtsbttbttbtubtvbtwbtxbtybtzbtzbtAbtBbtCaaibtDbrYbtEaaibtFbsbbtGbtHbsbbtIaaibtJbtKaaibtLbsgbtMaaqaaqaaqaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaDEaDFbtNbtObkRbkRbnzbnAbnBaaibtPbiYbtQbiYbtRaaqaSbbbWaQGaaqaFobtSbtTbtUaQWaaieAxbtVeAwbtXbtYaaibtZbuabubbucbtZaaqbudbuebufaaqaaqaaibugbuhbuibujbukaaibulbumbunbuobupbuqbupburbusbutbuuaaibuvbkfbuwaaqbuxaaqbuyaaqbuzbmzbuAaaiaFobuBbtSbuCbuDaaqbuEbuFbuGbuHbuIbuIbuJbuKbuLbuMaaqbuNbuOanpaaqaaqaaqaaJbuPanpaaqaaiaaiaaibuQbuRabnbrNbrObrPbuSbttbuTbuUbuVbuVbuVbuWbuXbuYbuZaaiboPbvaaaibvbbvcbqybvdbvebvfaaibqAbvgaaicEAbvibvjbvkbvlbvmbvnaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbvobvpbvqbvrblKblKblLblMblKaaibvsbiYbvtbiYbvuaaqaSbbbWaQGbvvbvwbvxbvybvzbvAaaiaaiaaiaaibvBaaiaaibvCbvDbvEbvFbvGaaqbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbvRaaibsGbvSbvTbrkbupbvUbupbrkbvVaaibrpaaibvWbvXbvYaaqbvZaaqbwaaaqbwbbmzbwcaaibwdbwebwfbwgcjRabHbwicyDabHabHbXpbXDabHabHczAbwoazaazdbwpbwqbwrbwsbwtbwubwvbwwbwxaaibwybwzbwAbwBabnbwCbwDbwEbwFbwGaaqbwHbuVbuVbwIbwJbuXbwKaaibwLbwLbwMaaicxnbwObwPbwQbwPbwRaaibqAbwSaaicxCbwUbwVbwWbwXbwYbwZaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpfayAaaiaaiaaianEanGayAanEanGaaianEanGaaiaaiaaiaaicHpbkRblKblKblLblMblKaaibpgbphblNblNblOaaqbfqbbWbpiaaqbpjbpkbplbpmbpnaaicHhbpobppbnLbnLaaibpqbprbpsbptbpubpvbpwbpxbpyabHbpzbpAbpBbpCabHbpDbpEacdbpFacdacdacdacddHSacdacdacdacdbpHacdbpIeFGbvZeFFbvYbpNbpOacdbpPbmzbmzaaibpQbpRbpSbpTbpUaaiboqbmLbmLbmLbmLbmLbmLbmLbpVbpWbpXbpYbpZbqabqbaaqbqcbqdbqeboBbmZboDbozbmZaaibqfbqgbqhbqibqibqjbqkbqlbqmbqmbqmbqnbqobqpbqqbqrbqsbqtbqubqvbqwbqxbqybqybqybqzaaibqAbqBaaibqCbqDbpabpbboZbpdeazaaiaaaaaaaaaaaaaLqaLqaLqaLqaLqaaaaLqaLqaLqaLqaLqaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaNpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaaaaBIblJbkRbkRbkRbnzbnAbkRaaiblPblPbqHbiYbiYcjpaSbbbWaQGaaqbqJbqKbqLbqMbqNaaibqObqPbqQbqRbqSaaibqTbqUbqVbqWbqXbqYbqZbrabrbbrcbrdbrdbrebrfayOcGobrhactbriaFkbrjbrkbrlbrmbrnbrkbroaFkbrpaaiabnbvXaaiaaiaaiaaibrraaibrsbmzbrtactbrubrvbrwbrxbryaaibrzbrAbrBbrCbrDbrEbrFbrGborbrHaaqbrIbpZbrJbrKaaqbrLbrMboAboBbmZboDbozbmZaaibnbabndXobrObrPbrQbrRaFkbrSbrTbrUbrUbrVboJbrWaaibrXbrYbrZaaibsabsbbscbsdbsbdYDaaibqAbseaaibsfbsgbpabshbsibsjbskaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaaaazGbslbsmblKblKblLblMdVKaaiaaqchjcjccjbaaqaaqbfqbbWbmPaaqbsqbsrbssbstbsuaaibnLbpobsvbnLbnLaaibswbsxbsybszcFmaaqbsBbsCbsDaaqbsEaaiaaiabnaaiaqAchiaaibsGbsHbsIbrkbsJbrmbsJbrkbsKbsHbrpaaibuwbuxbsObuvbvWabHbsPabHbsQbmzbsRaaibmBbmCbsSbsTbsUbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtfblvbtgbthbticFnaaqbtkbtlbtmbtnbtobtpbtobmZaaibtqbtrbtsbttbttbtubtvbtwbtxbtybtzbtzbtAbtBbtCaaibtDbrYbtEaaibtFbsbbtGbtHbsbbtIaaibtJbtKaaibtLbsgbtMaaqaaqaaqaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaDEaDFbtNbtObkRbkRbnzbnAbnBaaibtPbiYbtQbiYbtRaaqaSbbbWaQGaaqaFobtSbtTbtUaQWaaieAxbtVeAwbtXbtYaaibtZbuabubbucbtZaaqbudbuebufaaqaaqaaibugbuhbuibujbukaaibulbumbunbuobupbuqbupburbusbutbuuaaibrqbsLbsMaaqbsNaaqbuyaaqbuzbmzbuAaaiaFobuBbtSbuCbuDaaqbuEbuFbuGbuHbuIbuIbuJbuKbuLbuMaaqbuNbuOanpaaqaaqaaqaaJbuPanpaaqaaiaaiaaibuQbuRabnbrNbrObrPbuSbttbuTbuUbuVbuVbuVbuWbuXbuYbuZaaiboPbvaaaibvbbvcbqybvdbvebvfaaibqAbvgaaicEAbvibvjbvkbvlbvmbvnaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbvobvpbvqbvrblKblKblLblMblKaaibvsbiYbvtbiYbvuaaqaSbbbWaQGbvvbvwbvxbvybvzbvAaaiaaiaaiaaibvBaaiaaibvCbvDbvEbvFbvGaaqbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbvRaaibsGbvSbvTbrkbupbvUbupbrkbvVaaibrpaaibpLbpMbpKaaqbpJaaqbwaaaqbwbbmzbwcaaibwdbwebwfbwgcjRabHbwicyDabHabHbXpbXDabHabHczAbwoazaazdbwpbwqbwrbwsbwtbwubwvbwwbwxaaibwybwzbwAbwBabnbwCbwDbwEbwFbwGaaqbwHbuVbuVbwIbwJbuXbwKaaibwLbwLbwMaaicxnbwObwPbwQbwPbwRaaibqAbwSaaicxCbwUbwVbwWbwXbwYbwZaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaFoaFpbtNblJbkRbkRbnzbnAbkRaaibxabhqbhrbhrbWCabHaQEbhsbbXaaqbxcbnNbxdbxebxfbxgbxhbxjbxibxibxkbxlbxmbxnbxebxoeASaaqbudbmzbxqbxrbxsbWDbxubxvbxwbxxbxyaaibsGaaiaaibxzbxAbxBbrkbxCbxDacdbxEaaiabnaaiaaiaaiaaiaaibxFaaibxGbmzbwcaaibxHbxIbxIbxJbxKaaqbxLbxMbxNbxObxPbxQbxRbxNbxSbxTbxUbxVbxWbxXbxYbxZbyabybbycbydbyebyfbygbyhbyibyjbWBbylbylbymbynbyoaaqbypboJboJbyqbyrbuXbysaaqbytbyubyvaaqaFobuBaQWbywaZFaaiaaibyxaaiaaibyybyzaaibyAbyBbyCbyDbpdbpdbyEbyFbyGaaiaaaaaaaabbyHbyIbyJbyIbyJbyIbyKaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyLbyLbyLbyLbyLbyLbyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbyMbyNbnxbnyblKblKblLblMblKaaibyObgnbgobyPbyQbVxbySbyTaQGaaqcuEbnNbxdbxebWmaaqbyVbyWbnObnObyXbyYbyZbxnbxebzabzbbzcbudbmzbzdbzebxsbUUbzgbzhbzibzjbzkbzlabubxDacdaqsbzmbvUbzmbxDbznaaiaaiaaibzobzpbzqbzrbzsbztbzuacdbzvbmzbwcbsVbzwbzxbzybzzbzAaaqbBJbzCbzDbzEbzFbzGbzHbzIbzJbzKbzLbzMbUFbzObzPcvXbzRbzSbzTbzUbzVaaibzWbzXbzYbzZaaibAabAbbAcbAdbAdaaqbAebAfbAgaaqbAhbuXbAiaBIbAjbAkbAlbAmbAnbAobApbAqbArbAsbAtbAubAvbAwbAxbAybAzbAAbyBbABbpdbpdbpdbACbADbAEaaiaaaaaaaabbAFbAGbAHbAIbAIbAJbAFaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyLbyLbyLbyLbyLbyLbyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFbqFaaabAKblJbkRbkRbkRbALbAMbANaaibAObAPbAQbULbASancbATbAUaQGaaqbAVbAWbAXbAYbAZbBabBbbBcbBdbBdbBebBabBfbBgbxebBhbUJaaqbBjbmzbzdbzebxsaaibBkbBlbBmbBnbBoabnbBpbBqbBrbeIacdbBsbBtbeIbBubBvbBwaaibBxbBybBzbBAbBBbBBbBCbBDbBEbmzbBFaaiaaqbBGaZFbBHbBIaaqbBJbBKaaqbBLbBMbzGbBNaaqbBJbBObBPaaqaaqaaqanpaaqaaqaaqbBQalraaqaaiaaicQqaaqaaqaaiaaiaaqaaJaaqaaqaaqaaqaaqaaqaaqbBSbBTaAWaAXbBUbBVbBWbBXbBXbBYbBZbCabCbbCcbCdbCebCfbCgbChbCiaaibCjbCkbClbpdbpdbpdbCmbAEbCnaaiaaaaaaaabbCobCpbAHbAIbAHbCqbyJaaaaaaaaaaaaaaaaaaaaaaaabhobhobhobhobhobhobhobhobhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12814,9 +12818,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOncOncOncOncOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaacOncOncOncOncOncOndsBdcvdszcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaacOndrMdcpdcqdcrdcsdrZdrZdrZcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaacOndrZdrZdrZdrZdrZdrZdcudctcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaacOnehfegWegWegWdsGehddcDegWcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaacOndcxdcxdcxdcxdtadrSdssdrNcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaacOndsEdcydcwdsCdsFdcAdcBdcCcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaacOndsFegWegWegWdsGehddcDegWcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaehfdcxdcxdcxdcxdtadrSdssdrNcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaacOndsEdcydcwdsCdrgdcAdcBdcCcOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaacOncOncOncOncOncOncOncOncOncOnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa