Merge branch 'master' into bleeding-edge-freeze

This commit is contained in:
Mloc-Argent
2013-07-19 14:48:40 +01:00
52 changed files with 1156 additions and 1287 deletions

View File

@@ -441,7 +441,6 @@
#include "code\game\objects\weapons.dm"
#include "code\game\objects\closets\walllocker.dm"
#include "code\game\objects\effects\aliens.dm"
#include "code\game\objects\effects\barsign.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
#include "code\game\objects\effects\effect_system.dm"
#include "code\game\objects\effects\gibs.dm"

View File

@@ -5,6 +5,7 @@ var/global/list/datum/money_account/department_accounts = list()
var/global/next_account_number = 0
var/global/obj/machinery/account_database/centcomm_account_db
var/global/datum/money_account/vendor_account
var/global/list/all_money_accounts = list()
/proc/create_station_account()
if(!station_account)
@@ -27,8 +28,7 @@ var/global/datum/money_account/vendor_account
//add the account
station_account.transaction_log.Add(T)
for(var/obj/machinery/account_database/A in machines)
A.accounts.Add(station_account)
all_money_accounts.Add(station_account)
/proc/create_department_account(department)
next_account_number = rand(111111, 999999)
@@ -50,14 +50,71 @@ var/global/datum/money_account/vendor_account
//add the account
department_account.transaction_log.Add(T)
for(var/obj/machinery/account_database/A in machines)
A.accounts.Add(department_account)
all_money_accounts.Add(department_account)
department_accounts[department] = department_account
//the current ingame time (hh:mm) can be obtained by calling:
//worldtime2text()
/proc/create_account(var/new_owner_name = "Default user", var/starting_funds = 0, var/obj/machinery/account_database/source_db)
//create a new account
var/datum/money_account/M = new()
M.owner_name = new_owner_name
M.remote_access_pin = rand(1111, 111111)
M.money = starting_funds
//create an entry in the account transaction log for when it was created
var/datum/transaction/T = new()
T.target_name = new_owner_name
T.purpose = "Account creation"
T.amount = starting_funds
if(!source_db)
//set a random date, time and location some time over the past few decades
T.date = "[num2text(rand(1,31))] [pick("January","February","March","April","May","June","July","August","September","October","November","December")], 25[rand(10,56)]"
T.time = "[rand(0,24)]:[rand(11,59)]"
T.source_terminal = "NTGalaxyNet Terminal #[rand(111,1111)]"
M.account_number = rand(111111, 999999)
else
T.date = current_date_string
T.time = worldtime2text()
T.source_terminal = source_db.machine_id
M.account_number = next_account_number
next_account_number += rand(1,25)
//create a sealed package containing the account details
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(source_db.loc)
var/obj/item/weapon/paper/R = new /obj/item/weapon/paper(P)
P.wrapped = R
R.name = "Account information: [M.owner_name]"
R.info = "<b>Account details (confidential)</b><br><hr><br>"
R.info += "<i>Account holder:</i> [M.owner_name]<br>"
R.info += "<i>Account number:</i> [M.account_number]<br>"
R.info += "<i>Account pin:</i> [M.remote_access_pin]<br>"
R.info += "<i>Starting balance:</i> $[M.money]<br>"
R.info += "<i>Date and time:</i> [worldtime2text()], [current_date_string]<br><br>"
R.info += "<i>Creation terminal ID:</i> [source_db.machine_id]<br>"
R.info += "<i>Authorised NT officer overseeing creation:</i> [source_db.held_card.registered_name]<br>"
//stamp the paper
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
stampoverlay.icon_state = "paper_stamp-cent"
if(!R.stamped)
R.stamped = new
R.stamped += /obj/item/weapon/stamp
R.overlays += stampoverlay
R.stamps += "<HR><i>This paper has been stamped by the Accounts Database.</i>"
//add the account
M.transaction_log.Add(T)
all_money_accounts.Add(M)
return M
/datum/money_account
var/owner_name = ""
var/account_number = 0
@@ -82,7 +139,6 @@ var/global/datum/money_account/vendor_account
icon = 'virology.dmi'
icon_state = "analyser"
density = 1
var/list/accounts = list()
req_one_access = list(access_hop, access_captain)
var/receipt_num
var/machine_id = ""
@@ -156,10 +212,10 @@ var/global/datum/money_account/vendor_account
dat += "</tr>"
dat += "</table>"
else
dat += "<a href='?src=\ref[src];choice=create_account;'>Create new account</a> <a href='?src=\ref[src];choice=sync_accounts;'>Sync accounts across databases</a><br><br>"
dat += "<a href='?src=\ref[src];choice=create_account;'>Create new account</a><br><br>"
dat += "<table border=1 style='width:100%'>"
for(var/i=1, i<=accounts.len, i++)
var/datum/money_account/D = accounts[i]
for(var/i=1, i<=all_money_accounts.len, i++)
var/datum/money_account/D = all_money_accounts[i]
dat += "<tr>"
dat += "<td>#[D.account_number]</td>"
dat += "<td>[D.owner_name]</td>"
@@ -193,22 +249,12 @@ var/global/datum/money_account/vendor_account
if(href_list["choice"])
switch(href_list["choice"])
if("sync_accounts")
for(var/obj/machinery/account_database/A in machines)
for(var/datum/money_account/M in src.accounts)
if(!A.accounts.Find(M))
A.accounts.Add(M)
for(var/datum/money_account/M in A.accounts)
if(!src.accounts.Find(M))
src.accounts.Add(M)
usr << "\icon[src] <span class='info'>Accounts synched across all NanoTrasen financial databases.</span>"
if("create_account")
creating_new_account = 1
if("finalise_create_account")
var/account_name = href_list["holder_name"]
var/starting_funds = max(text2num(href_list["starting_funds"]), 0)
add_account(account_name, starting_funds)
create_account(account_name, starting_funds, src)
if(starting_funds > 0)
//subtract the money
station_account.money -= starting_funds
@@ -247,85 +293,18 @@ var/global/datum/money_account/vendor_account
access_level = 1
if("view_account_detail")
var/index = text2num(href_list["account_index"])
if(index && index <= accounts.len)
detailed_account_view = accounts[index]
if(index && index <= all_money_accounts.len)
detailed_account_view = all_money_accounts[index]
if("view_accounts_list")
detailed_account_view = null
creating_new_account = 0
src.attack_hand(usr)
/obj/machinery/account_database/proc/add_account_across_all(var/new_owner_name = "Default user", var/starting_funds = 0, var/pre_existing = 0)
var/datum/money_account/M = add_account(new_owner_name, starting_funds, pre_existing)
for(var/obj/machinery/account_database/D in machines)
if(D == src)
continue
D.accounts.Add(M)
return M
/obj/machinery/account_database/proc/add_account(var/new_owner_name = "Default user", var/starting_funds = 0, var/pre_existing = 0)
//create a new account
var/datum/money_account/M = new()
M.owner_name = new_owner_name
M.remote_access_pin = rand(1111, 111111)
M.money = starting_funds
//create an entry in the account transaction log for when it was created
var/datum/transaction/T = new()
T.target_name = new_owner_name
T.purpose = "Account creation"
T.amount = starting_funds
if(pre_existing)
//set a random date, time and location some time over the past few decades
T.date = "[num2text(rand(1,31))] [pick("January","February","March","April","May","June","July","August","September","October","November","December")], 25[rand(10,56)]"
T.time = "[rand(0,24)]:[rand(11,59)]"
T.source_terminal = "NTGalaxyNet Terminal #[rand(111,1111)]"
M.account_number = rand(111111, 999999)
else
T.date = current_date_string
T.time = worldtime2text()
T.source_terminal = machine_id
M.account_number = next_account_number
next_account_number += rand(1,25)
//create a sealed package containing the account details
var/obj/item/smallDelivery/P = new(src.loc)
var/obj/item/weapon/paper/R = new(P)
P.wrapped = R
R.name = "Account information: [M.owner_name]"
R.info = "<b>Account details (confidential)</b><br><hr><br>"
R.info += "<i>Account holder:</i> [M.owner_name]<br>"
R.info += "<i>Account number:</i> [M.account_number]<br>"
R.info += "<i>Account pin:</i> [M.remote_access_pin]<br>"
R.info += "<i>Starting balance:</i> $[M.money]<br>"
R.info += "<i>Date and time:</i> [worldtime2text()], [current_date_string]<br><br>"
R.info += "<i>Creation terminal ID:</i> [machine_id]<br>"
R.info += "<i>Authorised NT officer overseeing creation:</i> [held_card.registered_name]<br>"
//stamp the paper
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
stampoverlay.icon_state = "paper_stamp-cent"
if(!R.stamped)
R.stamped = new
R.stamped += /obj/item/weapon/stamp
R.overlays += stampoverlay
R.stamps += "<HR><i>This paper has been stamped by the Accounts Database.</i>"
//add the account
M.transaction_log.Add(T)
accounts.Add(M)
return M
/obj/machinery/account_database/proc/charge_to_account(var/attempt_account_number, var/source_name, var/purpose, var/terminal_id, var/amount)
if(!activated)
return 0
for(var/datum/money_account/D in accounts)
for(var/datum/money_account/D in all_money_accounts)
if(D.account_number == attempt_account_number)
D.money += amount
@@ -350,7 +329,12 @@ var/global/datum/money_account/vendor_account
/obj/machinery/account_database/proc/attempt_account_access(var/attempt_account_number, var/attempt_pin_number, var/security_level_passed = 0)
if(!activated)
return 0
for(var/datum/money_account/D in accounts)
for(var/datum/money_account/D in all_money_accounts)
if(D.account_number == attempt_account_number)
if( D.security_level <= security_level_passed && (!D.security_level || D.remote_access_pin == attempt_pin_number) )
return D
/obj/machinery/account_database/proc/get_account(var/account_number)
for(var/datum/money_account/D in all_money_accounts)
if(D.account_number == account_number)
return D

View File

@@ -21,6 +21,30 @@
spawn(0)
print_reference()
//create a short manual as well
var/obj/item/weapon/paper/R = new(src.loc)
R.name = "Steps to success: Correct EFTPOS Usage"
R.info += "<b>When first setting up your EFTPOS device:</b>"
R.info += "1. Memorise your EFTPOS command code (provided with all EFTPOS devices).<br>"
R.info += "2. Confirm that your EFTPOS device is connected to your local accounts database. For additional assistance with this step, contact NanoTrasen IT Support<br>"
R.info += "3. Confirm that your EFTPOS device has been linked to the account that you wish to recieve funds for all transactions processed on this device.<br>"
R.info += "<b>When starting a new transaction with your EFTPOS device:</b>"
R.info += "1. Ensure the device is UNLOCKED so that new data may be entered.<br>"
R.info += "2. Enter a sum of money and reference message for the new transaction.<br>"
R.info += "3. Lock the transaction, it is now ready for your customer.<br>"
R.info += "4. If at this stage you wish to modify or cancel your transaction, you may simply reset (unlock) your EFTPOS device.<br>"
R.info += "5. Give your EFTPOS device to the customer, they must authenticate the transaction by swiping their ID card and entering their PIN number.<br>"
R.info += "6. If done correctly, the transaction will be logged to both accounts with the reference you have entered, the terminal ID of your EFTPOS device and the money transferred across accounts.<br>"
//stamp the paper
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
stampoverlay.icon_state = "paper_stamp-cent"
if(!R.stamped)
R.stamped = new
R.stamped += /obj/item/weapon/stamp
R.overlays += stampoverlay
R.stamps += "<HR><i>This paper has been stamped by the EFTPOS device.</i>"
//by default, connect to the station account
//the user of the EFTPOS device can change the target account though, and no-one will be the wiser (except whoever's being charged)
linked_account = station_account

View File

@@ -36,9 +36,12 @@ log transactions
/obj/machinery/atm/New()
..()
reconnect_database()
machine_id = "[station_name()] RT #[num_financial_terminals++]"
/obj/machinery/atm/initialize()
..()
reconnect_database()
/obj/machinery/atm/process()
if(stat & NOPOWER)
return
@@ -253,13 +256,15 @@ log transactions
playsound(src, 'buzz-two.ogg', 50, 1)
//create an entry in the account transaction log
var/datum/transaction/T = new()
T.target_name = authenticated_account.owner_name
T.purpose = "Unauthorised login attempt"
T.source_terminal = machine_id
T.date = current_date_string
T.time = worldtime2text()
authenticated_account.transaction_log.Add(T)
var/datum/money_account/failed_account = linked_db.get_account(tried_account_num)
if(failed_account)
var/datum/transaction/T = new()
T.target_name = failed_account.owner_name
T.purpose = "Unauthorised login attempt"
T.source_terminal = machine_id
T.date = current_date_string
T.time = worldtime2text()
failed_account.transaction_log.Add(T)
else
usr << "\red \icon[src] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining."
previous_account_number = tried_account_num

View File

@@ -134,7 +134,6 @@ turf
return ..()
proc/update_air_properties()
. = 1
var/air_directions_archived = air_check_directions
air_check_directions = 0
@@ -259,7 +258,7 @@ turf
//The unsimulated turf is adjacent to another one of our zone's turfs,
// better rebuild to be sure we didn't get cut in twain
if(consider_rebuild)
NT.zone.rebuild = 1
zone.rebuild = 1
//Not adjacent to anything, and unsimulated. Goodbye~
else
@@ -269,6 +268,7 @@ turf
processing = 1
else
processing = 0
return 1

View File

@@ -780,7 +780,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl
return 0
var/delayfraction = round(delay/numticks)
var/turf/T = user.loc
var/turf/T = get_turf(user)
var/holding = user.get_active_hand()
for(var/i = 0, i<numticks, i++)

View File

@@ -127,10 +127,9 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
icobase = 'icons/mob/human_races/r_lizard.dmi'
if("Skrell")
icobase = 'icons/mob/human_races/r_skrell.dmi'
if("Vox")
icobase = 'icons/mob/human_races/r_vox.dmi'
if("Kidan")
icobase = 'icons/mob/human_races/r_kidan.dmi'
else
icobase = 'icons/mob/human_races/r_human.dmi'

View File

@@ -730,7 +730,7 @@ client
usr << "This can only be done to instances of type /mob/living/carbon/human"
return
var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow","tajaran","skrell","vox","kidan")
var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow","tajaran","skrell","vox")
switch(new_mutantrace)
if(null)
return

View File

@@ -213,6 +213,8 @@ Implants;
for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind)
// NT relation option
var/special_role = man.mind.special_role
if (special_role == "Wizard" || special_role == "Ninja" || special_role == "Syndicate")
continue //NT intelligence ruled out possiblity that those are too classy to pretend to be a crew.
if(man.client.prefs.nanotrasen_relation == "Opposed" && prob(50) || \
man.client.prefs.nanotrasen_relation == "Skeptical" && prob(20))
suspects += man
@@ -473,4 +475,4 @@ proc/get_nt_opposed()
else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50))
dudes += man
if(dudes.len == 0) return null
return pick(dudes)
return pick(dudes)

View File

@@ -134,7 +134,7 @@ var/global/datum/controller/occupations/job_master
if(!job) continue
var/list/candidates = FindOccupationCandidates(job, level)
if(!candidates.len) continue
// Build a weighted list, weight by age.
var/list/weightedCandidates = list()
@@ -144,7 +144,7 @@ var/global/datum/controller/occupations/job_master
if(command_position == "Captain")
good_age_minimal = 30
good_age_maximal = 70 // Old geezer captains ftw
for(var/mob/V in candidates)
// Log-out during round-start? What a bad boy, no head position for you!
if(!V.client) continue
@@ -164,9 +164,9 @@ var/global/datum/controller/occupations/job_master
weightedCandidates[V] = 3 // Geezer.
else
// If there's ABSOLUTELY NOBODY ELSE
if(candidates.len == 1) weightedCandidates[V] = 1
if(candidates.len == 1) weightedCandidates[V] = 1
var/mob/new_player/candidate = pickweight(weightedCandidates)
if(AssignRole(candidate, command_position))
return 1
@@ -340,6 +340,7 @@ var/global/datum/controller/occupations/job_master
//For ones returning to lobby
for(var/mob/new_player/player in unassigned)
if(player.client.prefs.alternate_option == RETURN_TO_LOBBY)
player.ready = 0
unassigned -= player
return 1
@@ -368,7 +369,7 @@ var/global/datum/controller/occupations/job_master
//give them an account in the station database
if(centcomm_account_db)
var/datum/money_account/M = centcomm_account_db.add_account_across_all(H.real_name, starting_funds = rand(50,500)*10, pre_existing = 1)
var/datum/money_account/M = create_account(H.real_name, rand(50,500)*10, null)
if(H.mind)
var/remembered_info = ""
remembered_info += "<b>Your account number is:</b> #[M.account_number]<br>"

File diff suppressed because it is too large Load Diff

View File

@@ -112,8 +112,7 @@
if (B)
beaker.reagents.reagent_list |= B
beaker.reagents.del_reagent("clonexadone") //Fix for infinite meat spawning when taking blood from human
beaker.reagents.update_total() //to an IV drip full of clonex
beaker.reagents.update_total()
beaker.on_reagent_change()
beaker.reagents.handle_reactions()
update_icon()

View File

@@ -570,10 +570,12 @@
w_class = 3
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
/* NYET.
/obj/item/weapon/toddler
icon_state = "toddler"
name = "toddler"
desc = "This baby looks almost real. Wait, did it just burp?"
force = 5
w_class = 4.0
slot_flags = SLOT_BACK
slot_flags = SLOT_BACK
*/

View File

@@ -103,8 +103,8 @@ var/global/normal_ooc_colour = "#002eb8"
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
if(!msg) return
if(!(prefs.toggles & CHAT_OOC))
src << "\red You have OOC muted."
if(!(prefs.toggles & CHAT_LOOC))
src << "\red You have LOOC muted."
return
if(!holder)
@@ -127,14 +127,15 @@ var/global/normal_ooc_colour = "#002eb8"
log_ooc("(LOCAL) [mob.name]/[key] : [msg]")
for(var/mob/M in hearers())
var/list/heard = get_mobs_in_view(7, src.mob)
for(var/mob/M in heard)
if(!M.client)
continue
var/client/C = M.client
if (C in admins)
continue //they are handled after that
if(C.prefs.toggles & CHAT_OOC)
if(C.prefs.toggles & CHAT_LOOC)
var/display_name = src.key
if(holder)
if(holder.fakekey)
@@ -144,5 +145,8 @@ var/global/normal_ooc_colour = "#002eb8"
display_name = holder.fakekey
C << "<font color='#6699CC'><span class='ooc'><span class='prefix'>LOOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_OOC)
C << "<font color='#6699CC'><span class='ooc'><span class='prefix'>LOOC:</span> <EM>[src.key]:</EM> <span class='message'>[msg]</span></span></font>"
if(C.prefs.toggles & CHAT_LOOC)
var/prefix = "(R)LOOC"
if (C.mob in heard)
prefix = "LOOC"
C << "<font color='#6699CC'><span class='ooc'><span class='prefix'>[prefix]:</span> <EM>[src.key]:</EM> <span class='message'>[msg]</span></span></font>"

View File

@@ -651,7 +651,7 @@ var/list/admin_verbs_mod = list(
if(!istype(M, /mob/living/carbon/human))
usr << "\red You can only do this to humans!"
return
switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox, Kida, and Tajara can result in unintended consequences.",,"Yes","No"))
switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox and Tajaran can result in unintended consequences.",,"Yes","No"))
if("No")
return
var/new_facial = input("Please select facial hair color.", "Character Generation") as color

View File

@@ -441,10 +441,10 @@ client/proc/one_click_antag()
var/leader_chosen = 0 //when the leader is chosen. The last person spawned.
//Generates a list of candidates from active ghosts. The admin picks which players to respawn as the vox.
//Generates a list of candidates from active ghosts.
for(var/mob/dead/observer/G in player_list)
spawn(0)
if(is_alien_whitelisted(src, "Vox") || !config.usealienwhitelist)
if(is_alien_whitelisted(G, "Vox") || !config.usealienwhitelist)
switch(alert(G,"Do you wish to be considered for a vox raiding party arriving on the station?","Please answer in 30 seconds!","Yes","No"))
if("Yes")
if((world.time-time_passed)>300)//If more than 30 game seconds passed.
@@ -462,7 +462,7 @@ client/proc/one_click_antag()
candidates.Remove(G)
if(candidates.len)
var/max_raiders = 6
var/max_raiders = 4
var/raiders = max_raiders
//Spawns vox raiders and equips them.
for (var/obj/effect/landmark/L in world)
@@ -507,6 +507,7 @@ client/proc/one_click_antag()
i++
newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
new_vox.vox_talk_understand = 1
new_vox.real_name = capitalize(newname)
new_vox.name = new_vox.real_name
new_vox.age = rand(12,20)

View File

@@ -794,18 +794,18 @@ datum/preferences
if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins
new_species += "Skrell"
whitelisted = 1
if(is_alien_whitelisted(user, "Kidan")) // Check for Kidan and admins
new_species += "Kidan"
if(is_alien_whitelisted(user, "Vox")) //Check for Skrell and admins
new_species += "Vox"
whitelisted = 1
if(!whitelisted)
alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.")
else //Not using the whitelist? Aliens for everyone!
new_species += "Tajaran"
new_species += "Unathi"
new_species += "Skrell"
new_species += "Kidan"
new_species += "Vox"
species = input("Please select a species", "Character Generation", null) in new_species
if(prev_species != species)

View File

@@ -95,6 +95,17 @@
src << "You will [(prefs.toggles & CHAT_OOC) ? "now" : "no longer"] see messages on the OOC channel."
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/listen_looc()
set name = "Show/Hide LOOC"
set category = "Preferences"
set desc = "Toggles seeing Local OutOfCharacter chat"
prefs.toggles ^= CHAT_LOOC
prefs.save_preferences()
src << "You will [(prefs.toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel."
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful
set name = "Hear/Silence Ambience"
set category = "Preferences"

View File

@@ -10,6 +10,8 @@
set name = "Toggle Magboots"
set category = "Object"
set src in usr
if(usr.stat)
return
if(src.magpulse)
src.flags &= ~NOSLIP
src.slowdown = SHOES_SLOWDOWN

View File

@@ -8,12 +8,13 @@
var/obj/machinery/account_database/affected_db
/datum/event/money_hacker/setup()
for(var/obj/machinery/account_database/DB in world)
if( DB.z == 1 && !(DB.stat&NOPOWER) && DB.activated && DB.accounts.len)
affected_db = DB
break
if(all_money_accounts.len)
for(var/obj/machinery/account_database/DB in world)
if( DB.z == 1 && !(DB.stat&NOPOWER) && DB.activated )
affected_db = DB
break
if(affected_db)
affected_account = pick(affected_db.accounts)
affected_account = pick(all_money_accounts)
else
kill()
return

View File

@@ -7,8 +7,8 @@
/datum/event/money_lotto/start()
winner_sum = pick(5000, 10000, 50000, 100000, 500000, 1000000, 1500000)
if(centcomm_account_db.accounts.len)
var/datum/money_account/D = pick(centcomm_account_db.accounts)
if(all_money_accounts.len)
var/datum/money_account/D = pick(all_money_accounts)
D.money += winner_sum
var/datum/transaction/T = new()

View File

@@ -22,7 +22,8 @@ datum/event/organ_failure/start()
var/mob/living/carbon/human/C = candidates[1]
// Bruise one of their organs
var/datum/organ/internal/I = pick(C.internal_organs)
var/O = pick(C.internal_organs)
var/datum/organ/internal/I = C.internal_organs[O]
I.damage = I.min_bruised_damage
candidates.Remove(C)
severity--
severity--

View File

@@ -808,8 +808,6 @@
return "Mobile vegetation"
if("golem")
return "Animated Construct"
if("kidan")
return "Kidan"
else
return "Human"
@@ -822,9 +820,7 @@
else if(src.dna.mutantrace == "tajaran")
return "Tajaran"
else if(src.dna.mutantrace == "vox")
return "Vox"
else if(src.dna.mutantrace == "kidan")
return "Kidan"
return "vox"
/mob/living/carbon/proc/update_mutantrace_languages()
if(src.dna)
@@ -836,8 +832,6 @@
src.tajaran_talk_understand = 1
else if(src.dna.mutantrace == "vox")
src.vox_talk_understand = 1
else if(src.dna.mutantrace == "kidan")
src.kidan_talk_understand = 1
/mob/living/carbon/human/proc/play_xylophone()
if(!src.xylophone)

View File

@@ -440,12 +440,10 @@ proc/get_damage_icon_part(damage_state, body_part)
if("skrell")
race_icon = 'icons/mob/human_races/r_skrell.dmi'
deform_icon = 'icons/mob/human_races/r_def_skrell.dmi'
if("vox")
race_icon = 'icons/mob/human_races/r_vox.dmi'
deform_icon = 'icons/mob/human_races/r_def_vox.dmi'
if("kidan")
race_icon = 'icons/mob/human_races/r_kidan.dmi'
deform_icon = 'icons/mob/human_races/r_def_kidan.dmi'
else
race_icon = 'icons/mob/human_races/r_human.dmi'

View File

@@ -19,7 +19,6 @@ var/list/department_radio_keys = list(
":j" = "tajaran", "#j" = "tajaran", ".j" = "tajaran",
":o" = "soghun", "#o" = "soghun", ".o" = "soghun",
":v" = "vox", "#v" = "vox", ".v" = "vox",
":q" = "kidan", "#q" = "kidan", ".q" = "kidan",
":R" = "right hand", "#R" = "right hand", ".R" = "right hand",
":L" = "left hand", "#L" = "left hand", ".L" = "left hand",
@@ -40,7 +39,6 @@ var/list/department_radio_keys = list(
":J" = "tajaran", "#J" = "tajaran", ".J" = "tajaran",
":O" = "soghun", "#O" = "soghun", ".O" = "soghun",
":V" = "vox", "#V" = "vox", ".V" = "vox",
":Q" = "kidan", "#Q" = "kidan", ".Q" = "kidan",
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
@@ -190,7 +188,6 @@ var/list/department_radio_keys = list(
var/is_speaking_soghun = 0
var/is_speaking_taj = 0
var/is_speaking_vox = 0
var/is_speaking_kidan = 0
var/is_speaking_radio = 0
switch (message_mode)
@@ -293,10 +290,6 @@ var/list/department_radio_keys = list(
if(vox_talk_understand || universal_speak)
is_speaking_vox = 1
if ("kidan")
if(kidan_talk_understand || universal_speak)
is_speaking_kidan = 1
if("changeling")
if(mind && mind.changeling)
for(var/mob/Changeling in mob_list)
@@ -395,8 +388,6 @@ var/list/department_radio_keys = list(
heard_a += M
else if(is_speaking_vox && (M:vox_talk_understand || M:universal_speak))
heard_a += M
else if(is_speaking_kidan && (M:kidan_talk_understand || M:universal_speak))
heard_a += M
else
heard_b += M
else
@@ -412,7 +403,7 @@ var/list/department_radio_keys = list(
var/rendered = null
if (length(heard_a))
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan)
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
if (italics)
message_a = "<i>[message_a]</i>"
@@ -437,7 +428,7 @@ var/list/department_radio_keys = list(
message_b = voice_message
else
message_b = stars(message)
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan)
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
if (italics)
message_b = "<i>[message_b]</i>"

View File

@@ -63,16 +63,21 @@
else
powered = 0
/datum/robot_component/armour
name = "armour plating"
energy_consumption = 0
external_type = /obj/item/robot_parts/robot_component/armour
max_damage = 60
/datum/robot_component/actuator
name = "actuator"
energy_consumption = 2
external_type = /obj/item/robot_parts/robot_component/actuator
max_damage = 60
max_damage = 50
/datum/robot_component/cell
name = "power cell"
max_damage = 60
max_damage = 50
/datum/robot_component/cell/destroy()
..()
@@ -81,8 +86,8 @@
/datum/robot_component/radio
name = "radio"
external_type = /obj/item/robot_parts/robot_component/radio
energy_consumption = 3
max_damage = 10
energy_consumption = 1
max_damage = 40
/datum/robot_component/binary_communication
name = "binary communication device"
@@ -93,8 +98,8 @@
/datum/robot_component/camera
name = "camera"
external_type = /obj/item/robot_parts/robot_component/camera
energy_consumption = 2
max_damage = 20
energy_consumption = 1
max_damage = 40
/datum/robot_component/diagnosis_unit
name = "self-diagnosis unit"
@@ -111,6 +116,7 @@
components["diagnosis unit"] = new/datum/robot_component/diagnosis_unit(src)
components["camera"] = new/datum/robot_component/camera(src)
components["comms"] = new/datum/robot_component/binary_communication(src)
components["armour"] = new/datum/robot_component/armour(src)
/mob/living/silicon/robot/proc/is_component_functioning(module_name)
var/datum/robot_component/C = components[module_name]
@@ -135,6 +141,9 @@
/obj/item/robot_parts/robot_component/actuator
name = "actuator"
/obj/item/robot_parts/robot_component/armour
name = "armour plating"
/obj/item/robot_parts/robot_component/camera
name = "camera"

View File

@@ -3,14 +3,15 @@
real_name = "Cyborg"
icon = 'icons/mob/robots.dmi'
icon_state = "robot"
maxHealth = 300
health = 300
maxHealth = 200
health = 200
universal_speak = 1
var/sight_mode = 0
var/custom_name = ""
var/base_icon
var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best
var/crisis //Admin-settable for combat module use.
//Hud stuff
@@ -106,17 +107,17 @@
camera.status = 0
initialize_components()
if(!unfinished)
// Create all the robot parts.
for(var/V in components) if(V != "power cell")
var/datum/robot_component/C = components[V]
C.installed = 1
C.wrapped = new C.external_type
//if(!unfinished)
// Create all the robot parts.
for(var/V in components) if(V != "power cell")
var/datum/robot_component/C = components[V]
C.installed = 1
C.wrapped = new C.external_type
if(!cell)
cell = new /obj/item/weapon/cell(src)
cell.maxcharge = 7500
cell.charge = 7500
if(!cell)
cell = new /obj/item/weapon/cell(src)
cell.maxcharge = 7500
cell.charge = 7500
..()

View File

@@ -1,9 +1,9 @@
/mob/living/silicon/robot/updatehealth()
if(status_flags & GODMODE)
health = 100
health = 200
stat = CONSCIOUS
return
health = 100 - (getBruteLoss() + getFireLoss())
health = 200 - (getBruteLoss() + getFireLoss())
return
/mob/living/silicon/robot/getBruteLoss()
@@ -47,6 +47,14 @@
if(C.installed == 1) rval += C
return rval
/mob/living/silicon/robot/proc/get_armour()
if(!components.len) return 0
var/datum/robot_component/C = components["armour"]
if(C && C.installed == 1)
return C
return 0
/mob/living/silicon/robot/heal_organ_damage(var/brute, var/burn)
var/list/datum/robot_component/parts = get_damaged_components(brute,burn)
if(!parts.len) return
@@ -75,6 +83,11 @@
burn -= absorb_burn
src << "\red Your shield absorbs some of the impact!"
var/datum/robot_component/armour/A = get_armour()
if(A)
A.take_damage(brute,burn,sharp)
return
var/datum/robot_component/C = pick(components)
C.take_damage(brute,burn,sharp)
@@ -115,6 +128,11 @@
burn -= absorb_burn
src << "\red Your shield absorbs some of the impact!"
var/datum/robot_component/armour/A = get_armour()
if(A)
A.take_damage(brute,burn,sharp)
return
while(parts.len && (brute>0 || burn>0) )
var/datum/robot_component/picked = pick(parts)

View File

@@ -208,13 +208,12 @@
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything.
var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
var/robot_talk_understand = 0
var/alien_talk_understand = 0
var/tajaran_talk_understand = 0
var/soghun_talk_understand = 0
var/skrell_talk_understand = 0
var/vox_talk_understand = 0
var/kidan_talk_understand = 0
var/robot_talk_understand = 0
var/alien_talk_understand = 0
var/tajaran_talk_understand = 0
var/soghun_talk_understand = 0
var/skrell_talk_understand = 0
var/vox_talk_understand = 0
var/has_limbs = 1 //Whether this mob have any limbs he can move with
var/can_stand = 1 //Whether this mob have ability to stand

View File

@@ -359,10 +359,10 @@
if(is_alien_whitelisted(src, "Skrell") || !config.usealienwhitelist)
new_character.dna.mutantrace = "skrell"
new_character.skrell_talk_understand = 1
if(client.prefs.species == "Kidan")
if(is_alien_whitelisted(src, "Kidan") || !config.usealienwhitelist)
new_character.dna.mutantrace = "kidan"
new_character.kidan_talk_understand = 1
if(client.prefs.species == "Vox")
if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist))
new_character.dna.mutantrace = "vox"
new_character.vox_talk_understand = 1
if(client.prefs.language == "Tajaran")
if(is_alien_whitelisted(src, "Language_Tajaran") || !config.usealienwhitelist)
@@ -373,9 +373,6 @@
if(client.prefs.language == "Skrell")
if(is_alien_whitelisted(src, "Language_Skrell") || !config.usealienwhitelist)
new_character.skrell_talk_understand = 1
if(client.prefs.language == "Kidan")
if(is_alien_whitelisted(src, "Language_Kidan") || !config.usealienwhitelist)
new_character.kidan_talk_understand = 1
if(ticker.random_players)

View File

@@ -144,10 +144,9 @@ datum/preferences
icobase = 'icons/mob/human_races/r_lizard.dmi'
if("Skrell")
icobase = 'icons/mob/human_races/r_skrell.dmi'
if("Vox")
icobase = 'icons/mob/human_races/r_vox.dmi'
if("Kidan")
icobase = 'icons/mob/human_races/r_kidan.dmi'
else
icobase = 'icons/mob/human_races/r_human.dmi'

View File

@@ -285,6 +285,7 @@
icon_state = "hair_e"
gender = MALE // turnoff!
bald
name = "Bald"
icon_state = "bald"
@@ -305,7 +306,7 @@
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox","Kidan")
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox")
watson
name = "Watson Mustache"

View File

@@ -69,7 +69,7 @@
return 1
return 0
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox,var/is_speaking_kidan)
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox)
if(!text)
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
//tcomms code is still runtiming somewhere here
@@ -81,9 +81,7 @@
if (is_speaking_tajaran)
return "<span class='say_quote'>mrowls</span>, \"<span class='tajaran'>[text]</span>\"";
if (is_speaking_vox)
return "<span class='say_quote'>shrieks</span>, \"<span class='vox'>[text]</span>\"";
if (is_speaking_kidan)
return "<span class='say_quote'>chitters</span>, \"<span class='kidan'>[text]</span>\"";
return "<span class='say_quote'>chirps</span>, \"<span class='vox'>[text]</span>\"";
//Needs Virus2
// if (src.disease_symptoms & DISEASE_HOARSE)
// return "rasps, \"[text]\"";

View File

@@ -746,10 +746,9 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
base = new('icons/mob/human_races/r_lizard.dmi')
if("skrell")
base = new('icons/mob/human_races/r_skrell.dmi')
if("vox")
base = new('icons/mob/human_races/r_vox.dmi')
if("kidan")
base = new('icons/mob/human_races/r_kidan.dmi')
else
base = new('icons/mob/human_races/r_human.dmi')

View File

@@ -74,7 +74,7 @@
var/mob/living/carbon/human/H = new_mob
if(H.dna)
H.dna.mutantrace = pick("lizard","tajaran","skrell","golem","slime","plant","vox","kidan",4;"")
H.dna.mutantrace = pick("lizard","tajaran","skrell","golem","slime","plant","vox",4;"")
else
return

View File

@@ -1030,6 +1030,9 @@ datum
/mob/living/simple_animal/hostile/syndicate/ranged,
/mob/living/simple_animal/hostile/syndicate/ranged/space,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/hostile/faithless,
/mob/living/simple_animal/hostile/panther,
/mob/living/simple_animal/hostile/snake,
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/retaliate/clown
)//exclusion list for things you don't want the reaction to create.

View File

@@ -109,7 +109,7 @@
/obj/machinery/keycard_auth/proc/broadcast_request()
icon_state = "auth_on"
for(var/obj/machinery/keycard_auth/KA in machines)
for(var/obj/machinery/keycard_auth/KA in world)
if(KA == src) continue
KA.reset()
spawn()

View File

@@ -624,6 +624,7 @@ var/list/TAGGERLOCATIONS = list("Disposals",
#define CHAT_RADIO 512
#define CHAT_ATTACKLOGS 1024
#define CHAT_DEBUGLOGS 2048
#define CHAT_LOOC 4096
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS)
@@ -692,4 +693,4 @@ var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_d
//proc/get_pulse methods
#define GETPULSE_HAND 0 //less accurate (hand)
#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc)
#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc)

View File

@@ -56,7 +56,6 @@ h1.alert, h2.alert {color: #000000;}
.skrell {color: #00CED1;}
.soghun {color: #228B22;}
.vox {color: #AA00AA;}
.kidan {color: #cc9900;}
.say_quote {font-family: Georgia, Verdana, sans-serif;}
.interface {color: #330033;}

View File

@@ -28,14 +28,16 @@
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag
Admin Observer
Retired Admin +MOD +ADMIN
Moderator +MOD
Admin Candidate +ADMIN
Trial Admin +@ +SPAWN +REJUV +VAREDIT +BAN
Badmin +@ +POSSESS +BUILDMODE +SERVER +FUN
Game Admin +@ +STEALTH +SOUNDS +DEBUG
Game Admin +@ +STEALTH +SOUNDS +DEBUG +PERMISSIONS
Game Master +EVERYTHING
Head Admin +EVERYTHING
Retired Admin +ADMIN +STEALTH
Host +EVERYTHING
Coder +DEBUG +VAREDIT +SERVER +SPAWN
Developer +DEBUG +VAREDIT +SERVER +SPAWN +REJUV +POSSESS +BUILDMODE
Dev Mod +@ +MOD

View File

@@ -5,31 +5,4 @@
# Ranks can be anything defined in admin_ranks.txt ~Carn #
######################################################################
abi79 - Game Master
arcalane - Game Admin
asanadas - Game Admin
bobbehluvspropane - Game Admin
cacophony - Game Admin
cajoes - Game Admin
cib - Retired Admin
compactninja - Retired Admin
duntadaman - Game Admin
dysthymia - Retired Admin
doughnuts - Game Admin
erthilo - Game Master
hawkv3 - Game Master
headswe - Game Master
iaryni - Game Master
masterofapples - Game Admin
megacaesar - Retired Admin
miniature - Game Master
misterbook - Game Admin
misterfox - Retired Admin
mloc - Game Master
skymarshal - Game Master
spaceman96 - Retired Admin
strumpetplaya - Retired Admin
tastyfish - Retired Admin
uristqwerty - Game Master
wrongnumber - Game Admin
mij - Game Admin
# not_a_user - Admin

View File

@@ -1,54 +1 @@
botanistpower - Tajaran
bountylord13 - Soghun
bowlsoldier - Tajaran
bluefishie - Skrell
cubejackal - Soghun
danny220 - Skrell
danny220 - Soghun
danny220 - Tajaran
darkwingstalker - Skrell
deciusreln - Skrell
densane - Skrell
dopeghoti - Tajaran
duntadaman - Skrell
fenrisian - Tajaran
firefishie - Skrell
focksinabocks - Skrell
focksinabocks - Tajaran
foolamancer - Skrell
forsamori - Tajaran
forsamori - Soghun
galenus - Soghun
galenus - Skrell
galenus - Tajaran
kersh - Skrell
jadepython - Skrell
jadepython - Soghun
jadepython - Tajaran
masterofstuff - Skrell
masterofstuff - Soghun
mangled - Skrell
mcgulliver - Skrell
nerezza - Skrell
nerezza - Soghun
nerezza - Tajaran
nestromo - Soghun
philphil123 - Soghun
quilan - Tajaran
searif - Soghun
searif - Tajaran
searif - Skrell
serithi - Skrell
serithi - Soghun
serithi - Tajaran
sniperyeti - Skrell
spaceman96 - Tajaran
spaceman96 - Soghun
spaceman96 - Skrell
sparklysheep - Skrell
succubusy - Skrell
teddybehr - Soghun
whitellama - Skrell
watermelonstorm - Tajaran
yoshax - Tajaran
jamini - Tajaran
some~user - Species

View File

@@ -75,23 +75,24 @@ LOG_PDA
## default probablity is 1, increase to make that mode more likely to be picked
## set to 0 to disable that mode
## Cult mode is in alpha test, enable at your own risk
PROBABILITY EXTENDED 0
PROBABILITY TRAITOR 2
PROBABILITY EXTENDED 1
PROBABILITY TRAITOR 0
PROBABILITY METEOR 0
PROBABILITY MALFUNCTION 2
PROBABILITY MALFUNCTION 1
PROBABILITY BLOB 0
PROBABILITY NUCLEAR 0
PROBABILITY NUCLEAR 1
PROBABILITY SANDBOX 0
PROBABILITY WIZARD 0
PROBABILITY WIZARD 1
PROBABILITY RESTRUCTURING 0
PROBABILITY REVOLUTION 5
PROBABILITY CHANGELING 0
PROBABILITY REVOLUTION 0
PROBABILITY CHANGELING 1
PROBABILITY CULT 1
PROBABILITY MONKEY 0
PROBABILITY TRAITORCHAN 0
PROBABILITY EXTEND-A-TRAITORMONGOUS 0
PROBABILITY EPIDEMIC 1
PROBABILITY EXTEND-A-TRAITORMONGOUS 6
PROBABILITY EPIDEMIC 0
PROBABILITY MEME 0
PROBABILITY RP-REVOLUTION 0
## Hash out to disable random events during the round.
ALLOW_RANDOM_EVENTS
@@ -109,10 +110,10 @@ ALLOW_ADMIN_OOCCOLOR
# ALLOW_METADATA
## allow players to initiate a restart vote
#ALLOW_VOTE_RESTART
ALLOW_VOTE_RESTART
## allow players to initate a mode-change start
#ALLOW_VOTE_MODE
ALLOW_VOTE_MODE
## min delay (deciseconds) between voting sessions (default 10 minutes)
VOTE_DELAY 6000
@@ -121,7 +122,7 @@ VOTE_DELAY 6000
VOTE_PERIOD 600
## prevents dead players from voting or starting votes
# NO_DEAD_VOTE
#NO_DEAD_VOTE
## players' votes default to "No vote" (otherwise, default to "No change")
DEFAULT_NO_VOTE
@@ -137,7 +138,7 @@ ALLOW_AI
# DONT_DEL_NEWMOB
## set a hosted by name for unix platforms
HOSTEDBY Yournamehere
HOSTEDBY yournamehere
## Set to jobban "Guest-" accounts from Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, and AI positions.
## Set to 1 to jobban them from those positions, set to 0 to allow them.
@@ -150,7 +151,7 @@ GUEST_BAN
# USEWHITELIST
## set a server location for world reboot. Don't include the byond://, just give the address and port.
# SERVER ss13.example.com:2506
#SERVER server.net:port
## forum address
# FORUMURL http://example.com
@@ -205,16 +206,10 @@ GATEWAY_DELAY 18000
## Uncomment to restrict non-admins from using humanoid alien races
USEALIENWHITELIST
## Location of the nudge.py script
NUDGE_SCRIPT_PATH nudge.py
## Comment this to unrestrict the number of alien players allowed in the round. The number represents the number of alien players for every human player.
ALIEN_PLAYER_RATIO 0.2
#ALIEN_PLAYER_RATIO 0.2
##Remove the # to let ghosts spin chairs
## Uncomment this to enable external .rsc downloads. URLs must be separated by no more than one space.
## The linked .zip file should contain the required .rsc
#resource_urls http://firstserver.org/myresource.zip http://secondserver.org/myresource.zip http://10.22.11.1/myresource.zip
#GHOST_INTERACTION
## Uncomment to enable sending data to the IRC bot.
#USE_IRC_BOT
@@ -227,4 +222,4 @@ ALIEN_PLAYER_RATIO 0.2
## Path to the python executable on the system. Leave blank for default.
## Default is "python" on Windows, "/usr/bin/env python2" on UNIX.
PYTHON_PATH
PYTHON_PATH

View File

@@ -1,77 +0,0 @@
asanadas: Book Berner: /obj/item/clothing/glasses/meson/fluff/book_berner_1
atomicdog92: Seth Sealis: /obj/item/clothing/suit/det_suit/fluff/leatherjack
botanistpower: Walter Brooks: /obj/item/clothing/gloves/fluff/walter_brooks_1
bountylord13: Norah Briggs: /obj/item/clothing/head/welding/fluff/norah_briggs_1
chinsky: Victor Kaminski: /obj/item/fluff/victor_kaminsky_1
chinsky: Summer Springfield: /obj/item/weapon/camera_test/fluff/orange
compactninja: Al Peterson: /obj/item/clothing/head/flatcap
compactninja: Lister Black: /obj/item/weapon/storage/pill_bottle/fluff/listermedbottle, /obj/item/weapon/storage/pill_bottle/fluff/listermedbottle
crazy2455: Murad Hassim: /obj/item/clothing/gloves/fluff/murad_hassim_1
cubejackal: Barry Sharke: /obj/item/clothing/mask/fluff/electriccig
daaneesh: Zelda Creedy: /obj/item/weapon/crowbar/fluff/zelda_creedy_1
deusdactyl: James Girard: /obj/item/clothing/head/secsoft/fluff/swatcap, /obj/item/clothing/suit/armor/vest/fluff/deus_blueshield
donofnyc3: Oen'g Issek: /obj/item/weapon/melee/baton/fluff/oeng_baton
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
executivekill: Hunter Duke: /obj/item/weapon/lighter/zippo/fluff/executivekill_1
fastler: Fastler Greay: /obj/item/weapon/card/id/fluff/lifetime
fniff: Sarah Calvera: /obj/item/fluff/sarah_calvera_1
fniff: Angleo Wilkerson: /obj/item/fluff/angelo_wilkerson_1
foolamancer: Edvin Telephosphor: /obj/item/clothing/head/fluff/edvin_telephosphor_1
furohman: Fay Sullivan: /obj/item/weapon/lighter/zippo/fluff/fay_sullivan_1
furlucis: Chal Appara: /obj/item/clothing/gloves/fluff/chal_appara_1
gvazdas: Sarah Carbrokes: /obj/item/fluff/sarah_carbrokes_1
jamini: Edwin Atweeke: /obj/item/clothing/suit/labcoat/fluff/burnt
jamini: Nasir Khayyam: /obj/item/clothing/tie/fluff/nasir_khayyam_1
jadepython: Thysse Ezinwa: /obj/item/clothing/glasses/eyepatch/fluff/thysse_1
kirbyelder: John McKeever: /obj/item/paper/fluff/john_mckeever_1
leon_the_killer: johnathan Falcian: /obj/item/weapon/clipboard/notebook/fluff/johnathan_falcian_1
leonheart11: Johann Erzatz: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1
lexusjjss: Lexus Langg: /obj/item/weapon/clipboard/fluff/smallnote, /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/shinyflask
lexusjjss: Zachary Tomlinson: /obj/item/weapon/clipboard/fluff/smallnote, /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/shinyflask
madmalicemccrea: Alice McCrea: /obj/item/clothing/head/welding/fluff/alice_mccrea_1
magmaram: Maria Crash: /obj/item/device/camera/fluff/oldcamera
mangled: Li Matsuda: /obj/item/weapon/lighter/zippo/fluff/li_matsuda_1
maximumbob: Maurice Bedford: /obj/item/fluff/maurice_bedford_1
mcgulliver: Wox Derax: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/lithiumflask
mindphyre: Arjun Chopra: /obj/item/clothing/glasses/fluff/arjun_chopra_1
misterbook: Smoke Perkins: /obj/item/clothing/mask/cigarette/pipe
misterfox: Rashid Siraj: /obj/item/weapon/storage/bible/tajaran
morrinn: Maye Day: /obj/item/weapon/storage/fluff/maye_daye_1
naples: Russell Vierson: /obj/item/weapon/lighter/zippo/fluff/naples_1
nega10: Ty Foster: /obj/item/clothing/mask/mara_kilpatrick_1
nerezza: Asher Spock: /obj/item/weapon/reagent_containers/hypospray/fluff/asher_spock_1
nerezza: Asher Spock: /obj/item/weapon/card/id/fluff/asher_spock_2
orangebottle: Lillian Levett: /obj/item/weapon/pen/fluff/fancypen
orangebottle: Lilliana Reade: /obj/item/weapon/pen/fluff/fancypen
paththegreat: Eli Stevens: /obj/item/weapon/pen/fluff/fountainpen
phaux: Tian Krieger: /obj/item/clothing/under/fluff/tian_dress
rawrtaicho: Riley Rohtin: /obj/item/weapon/lighter/zippo/fluff/riley_rohtin_1
rawrtaicho: Wyatt Engstrom: /obj/item/clothing/under/fluff/wyatt_1
roaper: Ian Colm: /obj/item/weapon/card/id/fluff/ian_colm_1
roaper: Ian Colm: /obj/item/clothing/glasses/welding/fluff/ian_colm_2
rukral: Nashida Bishara: /obj/item/weapon/reagent_containers/glass/beaker/large/fluff/nashida_bishara_1
searif: Yuki Matsuda: /obj/item/clothing/under/fluff/jumpsuitdown, /obj/item/clothing/head/welding/fluff/yuki_matsuda_1
searif: Ara Al-Jazari: /obj/item/clothing/under/rank/bartender/fluff/classy
serithi: Altair An-Nasaqan: /obj/item/clothing/tie/fluff/altair_locket
sirribbit: /obj/item/weapon/clipboard/fluff/mcreary_journal
sicktrigger: David Fanning: /obj/item/fluff/david_fanning_1
silentthunder: Val McNeil: /obj/item/fluff/val_mcneil_1
sniperyeti: Susan Harris: /obj/item/clothing/shoes/magboots/fluff/susan_harris_1
spaceman96: Trenna Seber: /obj/item/weapon/pen/fluff/multi, /obj/item/clothing/suit/labcoat/fluff/pink
sparklysheep: Cado Keppel: /obj/item/weapon/fluff/cado_keppel_1
sparklysheep: Uzenwa Sissra: /obj/item/clothing/glasses/fluff/uzenwa_sissra_1
suethecake: Ana Ka'Rimah: /obj/item/weapon/gun/energy/stunrevolver/fluff/ana_peacemaker
superboredguy: Neil Patterson: /obj/item/clothing/head/hardhat/fluff/neil_patterson_1
staghorn: Mara Kilpatrick: /obj/item/clothing/mask/mara_kilpatrick_1
tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper
thatoneguy: Hugo Cinderbatch: /obj/item/weapon/fluff/hugo_cinderbacth_1
thebreadbocks: Steve Johnson: /obj/item/fluff/steve_johnson_1
themij: Taryn Keppel: /obj/item/clothing/head/helmet/greenbandana/fluff/taryn_kifer_1
thejesster14: Rosa Wolff: /obj/item/device/flashlight/fluff/thejesster14_1
tzefa: Wes Solari: /obj/item/fluff/wes_solari_1
vinceluk: Ashley Rifler: /obj/item/clothing/gloves/fluff/ashley_rifler_1
vinceluk: Seth Sealis: /obj/item/clothing/suit/det_suit/fluff/graycoat
whitellama: Ethan Way: /obj/item/fluff/ethan_way_1
whitewolf41: Jeremy Wolf: /obj/item/clothing/under/rank/security/fluff/jeremy_wolf_1
zuhayr: Jane Doe: /obj/item/clothing/under/fluff/jane_sidsuit
mordeth221: Sven Fjeltson: /obj/item/weapon/fluff/sven_fjeltson_1

View File

@@ -2,4 +2,4 @@ rowtree-Lucy
sydrec-SINA
ravensdale-Blunt
ravensdale-Skuld
serithi-REMNANT
serithi-REMNANT

View File

@@ -1,7 +1,7 @@
### HEALTH ###
## level of health at which a mob becomes unconscious (crit)
HEALTH_THRESHOLD_CRIT 0
HEALTH_THRESHOLD_CRIT -50
## level of health at which a mob becomes dead
HEALTH_THRESHOLD_DEAD -100
@@ -19,7 +19,7 @@ ORGAN_HEALTH_MULTIPLIER 100
## multiplier which influences how fast organs regenerate naturally
## 100 means normal, 50 means half
ORGAN_REGENERATION_MULTIPLIER 20
ORGAN_REGENERATION_MULTIPLIER 75
### REVIVAL ###
@@ -42,8 +42,8 @@ REVIVAL_BRAIN_LIFE -1
## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied.
RUN_DELAY 0
WALK_DELAY 0
RUN_SPEED 2
WALK_SPEED 5
## The variables below affect the movement of specific mob types.

View File

@@ -1,22 +1,3 @@
; just add the ckey (lowercase) of every moderator on a separate line
; lines starting with ; are comments and will be ignored
botanistpower
bowlsoldier
cubejackal
dakonic
densane
deusdactyl
fastler
fenrisian
foolamancer
madmalicemccrea
mangled
phaux
roaper
searif
sparklysheep
themij
chinsky
danny220
; Why u no keep list in alphabetical order?! Lazies! Lazies! -Abi
; Imma best alphabetiser - Erthilo

View File

@@ -2,7 +2,7 @@
-<i>This server is running <a href="http://baystation12.net/">Baystation 12's</a> modification of the <a href="http://nanotrasen.com/">/tg/station13</a> SS13 code.</i>
<br><br>
<strong>Bugtracker:</strong> <a href="https://github.com/Baystation12/Baystation12/issues">https://github.com/Baystation12/Baystation12/issues</a>
<strong>Bugtracker:</strong> <a href="http://baystation12.net/forums/viewtopic.php?f=18&t=8185">http://baystation12.net/forums/viewtopic.php?f=18&t=8185</a>
<br>
<strong>Rules and roleplaying tips:</strong> <a href="http://baystation12.net/wiki/index.php/Rules">http://baystation12.net/wiki/index.php/Rules</a> or the Rules command.
<br><br>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1467,7 +1467,7 @@
"aCk" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/nuke_storage)
"aCl" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/gateway)
"aCm" = (/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/gateway)
"aCn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/window{name = "Gateway Chamber"; req_access_txt = "62"},/turf/simulated/floor{icon_state = "dark"},/area/gateway)
"aCn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/window{tag = "icon-right"; name = "Gateway Chamber"; icon_state = "right"; dir = 2; req_access_txt = "62"},/turf/simulated/floor{icon_state = "dark"},/area/gateway)
"aCo" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/gateway)
"aCp" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"aCq" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
@@ -10042,17 +10042,8 @@
"dQm" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/construction)
"dRu" = (/obj/structure/rack,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 5},/obj/item/weapon/storage/box/samplebags{pixel_x = 3; pixel_y = -3},/obj/machinery/power/apc{dir = 4; name = "Maintenance Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2)
"dSG" = (/obj/structure/lattice,/obj/machinery/camera/emp_proof{c_tag = "Singularity Observation"; dir = 3; network = list("Singularity"); pixel_x = 20; pixel_y = 0},/turf/space,/area)
"dSI" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod5/transit)
"dSJ" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod5/transit)
"dSK" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod5/transit)
"dSL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"dSM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/asmaint)
"dSS" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod5/transit)
"dST" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod5/transit)
"dSZ" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod5/transit)
"dTc" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod5/transit)
"dTf" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod5/transit)
"dTg" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod5/transit)
"dTj" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area)
"dTn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"dTq" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/rcd,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom)
@@ -10334,12 +10325,12 @@ cqEcrxcrvcrFcrwcrBcrzcrscrDcrEcrtcrAcrrcrCcrycrucrzcrBcrtcrvcrFcrscrAcrwcrCcrEcq
cqMcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcqHcrLcrMcqQcqRcqScqTcqUcrkcqWcrGcrHcrIcrJcrNcrKcrLcrMcqTcqUcqVcqWcqUcqVcqWcrGcrHcrIcrJcrNcrKcrLcrecrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedJqdJrdIecrQdJpdJpdJpdJpdJpcrQdJodJodJodJodJncrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcrZcsacsacsacsbcrW
cqPcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycqDcrGcrHcrIcrJcrNcrKcrLcrecqQcqRcqScqTcqUcqVcqWcrGcrHcrIcrJcrNcrKcrLcrMcqQcqRcqScqTcqUcqVcqWcrGcqYcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJsdIedIedIedIecrQdJvdJudJtdJudJwcrQdJydJxdJAdJzdJycrQcrPcrPcrXcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcrZcsacsacsacsbcrW
cqCcrzcrycrxcrvcrDcrBcrEcrFcrAcrrcrCcrwcrucrtcrscrBcrDcrrcrycrxcrEcrCcrvcrucrAcqJcqScqTcqUcqVcqWcrGcrHcqZcrJcrNcrKcrLcrMcqQcqRcqScqTcqQcqRcqScqTcrHcrIcrJcrNcrKcrLcrMcqQcqRcqScricrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJsdIedIedJBcrQdJCdJudJtdJudJEcrQdJydJDdJGdJFdJycrQcrPcrPcrXcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW
cqFcrvcrAcrwcrEcrtcrycrBcrrcrDcrucrFcrscrxcrCcrzcrycrtcrucrAcrwcrBcrFcrEcrxcrDcqGcrNcrKcrLcrMcqQcqRcqScricqUcqVcqWcrGcrHcrIcrJcrNaaaaaaaaaaaaaaaaaacqTcqUcqVcqWcrGcrHcrIcrJcrNcrccrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJPdJsdIedJqcrQdJpdJpdJpdJpdJpcrQdKcdJDdJGdJFdKccrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW
cqIcrEcrDcrscrBcrCcskcrycrucslcsmcsncsocspcsqcsrcsscstcrxcrDcsucrycrrcrBcrwcrtcqOcrMcqQcqRcqScqTcqUcqVcrlcrGcrHcrIcrJcrNcrKcrLcrMaaaaaaaaaaaaaaaaaacqWcrGcrHcrIcrJcrNcrKcrLcrMcrfcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedIedJsdIecrQdKedKfdKedKfdKecrQdKddJDdJGdJFdKdcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW
cqHcrBcrtcrzcrycsAcrDcrAcrxcspcsBcsCcsDcsEcsFcsGcsHcsIcrwcrtcrzcskcrucrycrscrCcqLcrIcrJcrNcrKcrLcrMcqQcrgcqScqTcqUcqVcqWcrGcrHcrIaaaaaaaaaaaaaaaaaacqRcqScqTcqUcqVcqWcrGcrHcrIcracrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedKgdIedIedJscrQdJNdJOdJNdJOdJNcrQdKddJDdJGdJFdKdcrQcrPcrXcrPcrXcrPcrQcrRcrRcrRcrRcrRcrQcrScrYcrScrYcrScrQcsccsacsacsacsdcrW
cqDcrycrCcrvcrAcrrcrtcrDcsOcsGcsHcsPcsQcsRcsDcsCcsScsTcsUcrCcrvcrDcrxcrAcrzcrFcqBcqTcqUcqVcqWcrGcrHcrIcracrNcrKcrLcrMcqQcqRcqScqTaaaaaaaaaaaaaaaaaacrJcrNcrKcrLcrMcqQcqRcqScqTcrjcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJqdIedKhdIedJPcrQdJIdJJdJIdJJdJIcrQdKjdKidKldKkdKjcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsWcsXcsXcsXcsYcrW
cqJcrAcrFcrEcrDcrucrCcrtcsUcsCcsScsZcsBctacsQcsPctbcsFctccrFcrEcrtcrwcrDcrvcrrcqKcrHcrIcrJcrNcrKcrLcrMcrfcqRcqScqTcqUcqVcqWcrGcrHaaaaaaaaaaaaaaaaaacqQcqRcqScqTcqUcqVcqWcrGcrHcqZcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacthdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjctictictictictictjctictictictictictjctictictictictictjctictictictictictk
cqGcrDcrrcrBcrtcrxcrFcrCctccsPctbcsTcsHcsGcsBcsZcsEcsDctlcrrcrBcrCcrscrtcrEcrucqNcqRcqScqTcqUcqVcqWcrGcqYcrIcrJcrNcrKcrLcrMcqQcqRcqVcqTcqUcqVcqWcrJcrHcrIcrJcrNcrKcrLcrMcqQcqRcrhcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJTdJUdJVdJTdJUcrQdJSdJSdJSdJSdJScrQdJRdJRdJRdJRdJRcrQctmctmctnctoctocrQctpctpctpctpctpcrQctqctrctrctrctscrQcttctuctuctuctvcrW
cqFcrvcrAcrwcrEcrtcrycrBcrrcrDcrucrFcrscrxcrCcrzcrycrtcrucrAcrwcrBcrFcrEcrxcrDcqGcrNcrKcrLcrMcqQcqRcqScricqUcqVcqWcrGcrHcrIcrJcrNcrIcqWcqScqRcrHcqVcqTcqUcqVcqWcrGcrHcrIcrJcrNcrccrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJPdJsdIedJqcrQdJpdJpdJpdJpdJpcrQdKcdJDdJGdJFdKccrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW
cqIcrEcrDcrscrBcrCcskcrycrucslcsmcsncsocspcsqcsrcsscstcrxcrDcsucrycrrcrBcrwcrtcqOcrMcqQcqRcqScqTcqUcqVcrlcrGcrHcrIcrJcrNcrKcrLcrMcsMcsMcsMcsMcsMcsMcqWcrGcrHcrIcrJcrNcrKcrLcrMcrfcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedIedJsdIecrQdKedKfdKedKfdKecrQdKddJDdJGdJFdKdcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW
cqHcrBcrtcrzcrycsAcrDcrAcrxcspcsBcsCcsDcsEcsFcsGcsHcsIcrwcrtcrzcskcrucrycrscrCcqLcrIcrJcrNcrKcrLcrMcqQcrgcqScqTcqUcqVcqWcrGcrHcrIcsMcsNcsNcsNcsNcsMcqRcqScqTcqUcqVcqWcrGcrHcrIcracrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedKgdIedIedJscrQdJNdJOdJNdJOdJNcrQdKddJDdJGdJFdKdcrQcrPcrXcrPcrXcrPcrQcrRcrRcrRcrRcrRcrQcrScrYcrScrYcrScrQcsccsacsacsacsdcrW
cqDcrycrCcrvcrAcrrcrtcrDcsOcsGcsHcsPcsQcsRcsDcsCcsScsTcsUcrCcrvcrDcrxcrAcrzcrFcqBcqTcqUcqVcqWcrGcrHcrIcracrNcrKcrLcrMcqQcqRcqScqTcsMcsNcsNcsNcsNcsMcrHcrNcrKcrLcrMcqQcqRcqScqTcrjcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJqdIedKhdIedJPcrQdJIdJJdJIdJJdJIcrQdKjdKidKldKkdKjcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsWcsXcsXcsXcsYcrW
cqJcrAcrFcrEcrDcrucrCcrtcsUcsCcsScsZcsBctacsQcsPctbcsFctccrFcrEcrtcrwcrDcrvcrrcqKcrHcrIcrJcrNcrKcrLcrMcrfcqRcqScqTcqUcqVcqWcrGcrHcsMcsNcsNcsNcsNcsMcqQcqRcqScqTcqUcqVcqWcrGcrHcqZcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacthdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjctictictictictictjctictictictictictjctictictictictictjctictictictictictk
cqGcrDcrrcrBcrtcrxcrFcrCctccsPctbcsTcsHcsGcsBcsZcsEcsDctlcrrcrBcrCcrscrtcrEcrucqNcqRcqScqTcqUcqVcqWcrGcqYcrIcrJcrNcrKcrLcrMcqQcqRcHGcIrctgcHGcItcIscrHcrIcrJcrNcrKcrLcrMcqQcqRcrhcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJTdJUdJVdJTdJUcrQdJSdJSdJSdJSdJScrQdJRdJRdJRdJRdJRcrQctmctmctnctoctocrQctpctpctpctpctpcrQctqctrctrctrctscrQcttctuctuctuctvcrW
cqOcrtcrucrycrCcrwcrrcrFctlcsZcsEcsFcsScsCcsHcsTcsRcsQctwcrucrycrFcrzcrCcrBcrxcqEcqVcqWcrGcrHcrIcrJcrNcrccrLcrMcqQcqRcqScqTcqUcqVcqScrIcrJcrNcrKcrGcrKcrLcrMcqQcqRcqScqTcqUcqVcrlcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJUdJVdJTdJUdJVcrQdJSdJWdJSdJSdJScrQdJRdJXdJZdJYdJRcrQctxctxctyctzctzcrQctpctActpctBctpcrQctCctDctDctDctEcrQctFctGctGctGctHcrW
cqLcrCcrxcrAcrFcrscrucrrctwcsTcsRcsDctbcsPcsScsFctacsBctIcrxcrAcrrcrvcrFcrycrwcqMcrJcrNcrKcrLcrMcqQcqRcrhcqTcqUcqVcqWcrGcrHcrIcrJctecsectJctdctKcshcqScqTcqUcqVcqWcrGcrHcrIcrJcrbcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJVdJTdJUdJVdJTcrQdJSdJSdJSdKadJScrQdJRdKbdKbdKbdJRcrQctxctLctLctLctzcrQctpctpctpctpctpcrQctCctDctDctDctEcrQctFctGctGctGctHcrW
cqBcrFcrwcrDcrrcrzcrxcructIcsFctacsQcsEcsZctbcsDcsGcsHctMcrwcrDcrucrEcrrcrAcrscqPcrKcrLcrMcqQcqRcqScqTcrjcqVcqWcrGcrHcrIcrJcrNcrKcshctNctOctPctQctRcqUcqVcqWcrGcrHcrIcrJcrNcrKcrdcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJTdJUdJVdJTdJUcrQdJSdJSdJSdJSdJScrQdJRdJRdJRdJRdJRcrQctxctyctyctyctzcrQctpctpctpctpctpcrQctCctDctDctDctEcrQctFctGctGctGctHcrW
@@ -10372,12 +10363,12 @@ cqJcrFcrEcrtcrwcrDcrvcrrcrDcrFcrEcrtcrwcrDcrvcrrcrDcrvcrrcrFcrEcrtcrwcrDcrvcrrcq
cqGcrrcrBcrCcrscrtcrEcrucrtcrrcrBcrCcrscrtcrEcrucrtcrEcrucrrcrBcrCcrscrtcrEcrucqNcrmcqBcrFcrwcrDcrrcsocsmcwecwfcwgcspcvJcvtcvxcvOcvscrscrCcwhcrwcrDcrucrEcrrcrAcrscqPcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYaaacwbcwicwdaaacvzcvAcvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwjcwkcwlcwmcwncvVcvVcvVaaacvWcvWcvWcwjcwkcwlcwmcwnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqOcrucrycrFcrzcrCcrBcrxcrCcrucrycrFcrzcrCcrBcrxcrCcrBcrxcrucrycrFcrzcrCcrBcrxcqEcrmcqKcrrcrscrtcrucvTcvpcvKcvucvscvvcvqcvKcvMcvtcvJcrzcrFcskcrscrtcrxcrBcrucrDcrzcqCcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwpcwpcwpcwqcwrcwscwrcwrcwrcwscwrcwtcwpcwpcwpcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqLcrxcrAcrrcrvcrFcrycrwcrFcrxcrAcrrcrvcrFcrycrwcrFcrycrwcrxcrAcrrcrvcrFcrycrwcqMcrmcqNcrucrzcrCcrxcvXcvvcvpcvscvJcvrcvwcvpcvucvKcvqcstcstcstcstcwucrwcrycrxcrtcrvcqFcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwwcwxcwycwzcwAcwBcwCcwzcwycwDcwEcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqBcrwcrDcrucwFcwGcwgcsIcwHcrucwFcwGcwgcsIcwHcrAcwIcwJcsmcwKcwLcrucrEcrrcrAcrscqPcrmcqEcrxcrvcrFcrwcwacvrcvvcvJcvqcvIcvLcvvcvscvpcvwcvxcvtcvqcvIcsAcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwNcwOcwPcwzcwPcwQcwPcwzcwPcwRcwNcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqKcrAcrtcrxcwSdSJdSKdSIcwWcrxcwScwTcwUcwVcwWcrxcwXcwYcwZcxacxbcrxcrBcrucrDcrzcqCcrmcqMcrwcrEcrrcrscwhcvIcvrcvqcvwcvxcvOcvrcvJcvvcvLcvMcvKcvwcvxcxccrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxfcxgcxdcxdcxdcxfcxdcxdcxdcxdcxdcxdcxfcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwEcwvcxicwPcwzcwzcwzcwzcwzcwzcwzcwPcxicwvcwwcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqNcrDcrCcrwcxbdTfdSTdTgcxncrwcxbcxkcxlcxmcxncrwcxocxpcxqcxrcxscrwcrycrxcrtcrvcqFcrmcqPcrscrBcrucrzcskcvxcvIcvwcvLcvMcvtcvIcvqcvrcvOcvucvpcvLcvMcvkcrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwrcwtcxtcxucxvcxucwzcxwcxxcwzcxycwqcwrcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqEcrtcrFcrscxsdTcdSZdSKcwIcrscxscxzcxAcwUcwIcrscwScxBcxCcxDcxEcrscrAcrwcrCcrEcqIcrmcqCcrzcrycrxcvTcxFcvMcvxcvLcvOcvucvKcvxcvwcvIcvtcvscvvcvOcvucxGcsIcwucrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxHcxdcxdcxdcxdcxdcxecxdcxdcxgcxfcxdcxdcxfcxdcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxIcxJcxKcxLcwzcxwcxxcwzcxycwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqMcrCcrrcrzcxEdSIdSSdSTcxNcrzcxEcwVcxMcxlcxNcrzcxbcxOcxacxPcwWcrzcrDcrscrFcrBcqHcrmcqFcrvcrAcrwcvXcvqcvucvMcvOcvtcvscvpcvMcvLcvxcvKcvJcvrcvtcvscvpcvMcsAcrEcrxcrDcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxfcxgcxdcxdcxfcxdcxgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxQcxRcxRcxucwzcxwcxxcwzcwycwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqPcrFcrucrvcwWcwScxncxEcwFcrvcwWcwScxncxEcwFcrvcxscwLcwXcxbcxncrvcrtcrzcrrcrycqDcrmcqIcrEcrDcrscwacvwcvscvucvtcvKcvJcvvcvucvOcvMcvpcvqcvIcvKcvJcvvcvucxccrBcrwcrtcqOcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxgcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxTcxRcxRcxUcwzcwPcwPcwzcwzcwscxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqBcrwcrDcrucrBcrscrycrEcrtcrucwFcwGcwgcsIcwHcrAcwIcwJcsmcwKcwLcrucrEcrrcrAcrscqPcrmcqEcrxcrvcrFcrwcwacvrcvvcvJcvqcvIcvLcvvcvscvpcvwcvxcvtcvqcvIcsAcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwNcwOcwPcwzcwPcwQcwPcwzcwPcwRcwNcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqKcrAcrtcrxcrrcrDcrucrFcrscrxcwScwTcwUcwVcwWcrxcwXcwYcwZcxacxbcrxcrBcrucrDcrzcqCcrmcqMcrwcrEcrrcrscwhcvIcvrcvqcvwcvxcvOcvrcvJcvvcvLcvMcvKcvwcvxcxccrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxfcxgcxdcxdcxdcxfcxdcxdcxdcxdcxdcxdcxfcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwEcwvcxicwPcwzcwzcwzcwzcwzcwzcwzcwPcxicwvcwwcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqNcrDcrCcrwcrucrtcrxcrrcrzcrwcxbcxkcxlcxmcxncrwcxocxpcxqcxrcxscrwcrycrxcrtcrvcqFcrmcqPcrscrBcrucrzcskcvxcvIcvwcvLcvMcvtcvIcvqcvrcvOcvucvpcvLcvMcvkcrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwrcwtcxtcxucxvcxucwzcxwcxxcwzcxycwqcwrcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqEcrtcrFcrscrxcrCcrwcrucrvcrscxscxzcxAcwUcwIcrscwScxBcxCcxDcxEcrscrAcrwcrCcrEcqIcrmcqCcrzcrycrxcvTcxFcvMcvxcvLcvOcvucvKcvxcvwcvIcvtcvscvvcvOcvucxGcsIcwucrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxHcxdcxdcxdcxdcxdcxecxdcxdcxgcxfcxdcxdcxfcxdcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxIcxJcxKcxLcwzcxwcxxcwzcxycwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqMcrCcrrcrzcrwcrFcrscrxcrEcrzcxEcwVcxMcxlcxNcrzcxbcxOcxacxPcwWcrzcrDcrscrFcrBcqHcrmcqFcrvcrAcrwcvXcvqcvucvMcvOcvtcvscvpcvMcvLcvxcvKcvJcvrcvtcvscvpcvMcsAcrEcrxcrDcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxfcxgcxdcxdcxfcxdcxgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxQcxRcxRcxucwzcxwcxxcwzcwycwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqPcrFcrucrvcrscrrcrzcrwcrBcrvcwWcwScxncxEcwFcrvcxscwLcwXcxbcxncrvcrtcrzcrrcrycqDcrmcqIcrEcrDcrscwacvwcvscvucvtcvKcvJcvvcvucvOcvMcvpcvqcvIcvKcvJcvvcvucxccrBcrwcrtcqOcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxgcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxTcxRcxRcxUcwzcwPcwPcwzcwzcwscxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqCcrrcrxcrEcrCcrvcrucrAcrvcrrcrxcrEcrCcrvcrucrAcrvcrucrAcrrcrxcrEcrCcrvcrucrAcqJcrmcqHcrBcrtcrzcwhcvLcvJcvscvKcvpcvqcvrcvscvtcvucvvcvwcvxcvpcvqcvrcvscvkcrycrscrCcqLcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxVcxVcxVcxVcxVcxVcxVcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxHcxgcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwqcwrcwrcwrcwtcwzcxwcxxcwzcxWcwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqFcrAcrwcrBcrFcrEcrxcrDcrEcrAcrwcrBcrFcrEcrxcrDcrEcrxcrDcrAcrwcrBcrFcrEcrxcrDcqGcrmcqDcrycrCcrvcskcvOcvqcvJcvpcvvcvwcvIcvJcvKcvscvrcvLcvMcvvcvwcvIcvJcvlcrAcrzcrFcqBcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxXcxYcxZcyacyacyacybcxYcyccxdcxdcxdcxdcxHcxdcxdcxecxdcxecxdcxfcxdcxfcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacydcyecyecyfcygcwzcxwcxxcwzcyhcydaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cqIcrscrscrycrrcrBcrwcrtcrBcrscrscrycrrcrBcrwcrtcrBcrwcrtcrscrscrycrrcrBcrwcrtcqOcrmcqJcrAcrFcrEcyicvtcvwcvqcvvcvrcvLcvxcvqcvpcvJcvIcvOcvucvrcvLcvxcvqcvycrDcrvcrrcqKcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyjcykcylcymcyncyocyocxYcypcxdcxdcxVcxVcxVcxVcxVcxVcxVcxVcyqcyrcxVcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyscyscyscytcwzcxwcxxcwzcyucwocyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

View File

@@ -3,7 +3,7 @@
# Two arguments, channel and message.
# EG: "ircbot_message.py #adminchannel ADMINHELP, people are killing me!"
import sys,pickle,socket
import sys,cPickle,socket
def pack():
ip = sys.argv[1]
@@ -12,7 +12,7 @@ def pack():
except:
data = "NO DATA SPECIFIED"
dictionary = {"ip":ip,"data":["PASSWORD"] + data}
pickled = pickle.dumps(dictionary)
pickled = cPickle.dumps(dictionary)
nudge(pickled)
def nudge(data):
HOST = "IRCBOT IP"