From cc05932fb5656a8cf0b2f21017fdc21d36ac6ce7 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Mon, 25 Nov 2013 05:29:51 -0500 Subject: [PATCH] Emag ATM, cash bags! --- baystation12.dme | 1 + code/WorkInProgress/Mini/ATM.dm | 283 +++++++++--------- .../objects/items/weapons/storage/bags.dm | 19 +- code/modules/admin/secrets.dm | 0 icons/obj/storage.dmi | Bin 54741 -> 55798 bytes 5 files changed, 158 insertions(+), 145 deletions(-) create mode 100644 code/modules/admin/secrets.dm diff --git a/baystation12.dme b/baystation12.dme index cc1dfc4721c..f545de5b16e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -702,6 +702,7 @@ #include "code\modules\admin\newbanjob.dm" #include "code\modules\admin\player_notes.dm" #include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\secrets.dm" #include "code\modules\admin\topic.dm" #include "code\modules\admin\ToRban.dm" #include "code\modules\admin\DB ban\functions.dm" diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm index dc8f9150686..59434f9e591 100644 --- a/code/WorkInProgress/Mini/ATM.dm +++ b/code/WorkInProgress/Mini/ATM.dm @@ -22,7 +22,6 @@ log transactions anchored = 1 use_power = 1 idle_power_usage = 10 - var/obj/machinery/account_database/linked_db var/datum/money_account/authenticated_account var/number_incorrect_tries = 0 var/previous_account_number = 0 @@ -33,25 +32,19 @@ log transactions var/obj/item/weapon/card/held_card var/editing_security_level = 0 var/view_screen = NO_SCREEN + var/datum/effect/effect/system/spark_spread/spark_system /obj/machinery/atm/New() ..() machine_id = "[station_name()] RT #[num_financial_terminals++]" - -/obj/machinery/atm/initialize() - ..() - reconnect_database() + spark_system = new /datum/effect/effect/system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) /obj/machinery/atm/process() if(stat & NOPOWER) return - if(linked_db && ( (linked_db.stat & NOPOWER) || !linked_db.activated ) ) - linked_db = null - authenticated_account = null - src.visible_message("\red \icon[src] [src] buzzes rudely, \"Connection to remote database lost.\"") - updateDialog() - if(ticks_left_timeout > 0) ticks_left_timeout-- if(ticks_left_timeout <= 0) @@ -69,14 +62,25 @@ log transactions playsound(loc, 'sound/items/polaroid2.ogg', 50, 1) break -/obj/machinery/atm/proc/reconnect_database() - for(var/obj/machinery/account_database/DB in world) //Hotfix until someone finds out why it isn't in 'machines' - if( DB.z == src.z && !(DB.stat & NOPOWER) && DB.activated ) - linked_db = DB - break - /obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/card)) + if(emagged > 0) + //prevent inserting id into an emagged ATM + user << "\red \icon[src] CARD READER ERROR. This system has been compromised!" + return + else if(istype(I,/obj/item/weapon/card/emag)) + //short out the machine, shoot sparks, spew money! + emagged = 1 + spark_system.start() + spawn_money(rand(100,500),src.loc) + //we don't want to grief people by locking their id in an emagged ATM + release_held_id(user) + + //display a message to the user + var/response = pick("Initiating withdraw. Have a nice day!", "CRITICAL ERROR: Activating cash chamber panic siphon.","PIN Code accepted! Emptying account balance.", "Jackpot!") + user << "\red \icon[src] The [src] beeps: \"[response]\"" + return + var/obj/item/weapon/card/id/idcard = I if(!held_card) usr.drop_item() @@ -111,94 +115,96 @@ log transactions /obj/machinery/atm/attack_hand(mob/user as mob) if(istype(user, /mob/living/silicon)) - user << "\red Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005." + user << "\red \icon[src] Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005." return if(get_dist(src,user) <= 1) - //check to see if the user has low security enabled - scan_user(user) //js replicated from obj/machinery/computer/card var/dat = "

NanoTrasen Automatic Teller Machine

" dat += "For all your monetary needs!
" dat += "This terminal is [machine_id]. Report this code when contacting NanoTrasen IT Support
" - dat += "Card: [held_card ? held_card.name : "------"]

" - if(ticks_left_locked_down > 0) - dat += "Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled." - else if(authenticated_account) - switch(view_screen) - if(CHANGE_SECURITY_LEVEL) - dat += "Select a new security level for this account:

" - var/text = "Zero - Either the account number or card is required to access this account. EFTPOS transactions will require a card and ask for a pin, but not verify the pin is correct." - if(authenticated_account.security_level != 0) - text = "[text]" - dat += "[text]
" - text = "One - An account number and pin must be manually entered to access this account and process transactions." - if(authenticated_account.security_level != 1) - text = "[text]" - dat += "[text]
" - text = "Two - In addition to account number and pin, a card is required to access this account and process transactions." - if(authenticated_account.security_level != 2) - text = "[text]" - dat += "[text]

" - dat += "Back" - if(VIEW_TRANSACTION_LOGS) - dat += "Transaction logs
" - dat += "Back" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - for(var/datum/transaction/T in authenticated_account.transaction_log) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
DateTimeTargetPurposeValueSource terminal ID
[T.date][T.time][T.target_name][T.purpose]$[T.amount][T.source_terminal]
" - if(TRANSFER_FUNDS) - dat += "Account balance: $[authenticated_account.money]
" - dat += "Back

" - dat += "
" - dat += "" - dat += "" - dat += "Target account number:
" - dat += "Funds to transfer:
" - dat += "Transaction purpose:
" - dat += "
" - dat += "
" - else - dat += "Welcome, [authenticated_account.owner_name].
" - dat += "Account balance: $[authenticated_account.money]" - dat += "
" - dat += "" - dat += "" - dat += "
" - dat += "
" - dat += "Change account security level
" - dat += "Make transfer
" - dat += "View transaction log
" - dat += "Print balance statement
" - dat += "Logout
" - else if(linked_db) - dat += "
" - dat += "" - dat += "" - dat += "Account:
" - dat += "PIN:
" - dat += "
" - dat += "
" + if(emagged > 0) + dat += "Card: LOCKED

Unauthorized terminal access detected! This ATM has been locked. Please contact NanoTrasen IT Support." else - dat += "Unable to connect to accounts database, please retry and if the issue persists contact NanoTrasen IT support." - reconnect_database() + dat += "Card: [held_card ? held_card.name : "------"]

" + + if(ticks_left_locked_down > 0) + dat += "Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled." + else if(authenticated_account) + if(authenticated_account.suspended) + dat += "\redAccess to this account has been suspended, and the funds within frozen." + else + switch(view_screen) + if(CHANGE_SECURITY_LEVEL) + dat += "Select a new security level for this account:

" + var/text = "Zero - Either the account number or card is required to access this account. EFTPOS transactions will require a card and ask for a pin, but not verify the pin is correct." + if(authenticated_account.security_level != 0) + text = "[text]" + dat += "[text]
" + text = "One - An account number and pin must be manually entered to access this account and process transactions." + if(authenticated_account.security_level != 1) + text = "[text]" + dat += "[text]
" + text = "Two - In addition to account number and pin, a card is required to access this account and process transactions." + if(authenticated_account.security_level != 2) + text = "[text]" + dat += "[text]

" + dat += "Back" + if(VIEW_TRANSACTION_LOGS) + dat += "Transaction logs
" + dat += "Back" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + for(var/datum/transaction/T in authenticated_account.transaction_log) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
DateTimeTargetPurposeValueSource terminal ID
[T.date][T.time][T.target_name][T.purpose]$[T.amount][T.source_terminal]
" + if(TRANSFER_FUNDS) + dat += "Account balance: $[authenticated_account.money]
" + dat += "Back

" + dat += "
" + dat += "" + dat += "" + dat += "Target account number:
" + dat += "Funds to transfer:
" + dat += "Transaction purpose:
" + dat += "
" + dat += "
" + else + dat += "Welcome, [authenticated_account.owner_name].
" + dat += "Account balance: $[authenticated_account.money]" + dat += "
" + dat += "" + dat += "" + dat += "
" + dat += "
" + dat += "Change account security level
" + dat += "Make transfer
" + dat += "View transaction log
" + dat += "Print balance statement
" + dat += "Logout
" + else + dat += "
" + dat += "" + dat += "" + dat += "Account:
" + dat += "PIN:
" + dat += "
" + dat += "
" user << browse(dat,"window=atm;size=550x650") else @@ -208,14 +214,14 @@ log transactions if(href_list["choice"]) switch(href_list["choice"]) if("transfer") - if(authenticated_account && linked_db) + if(authenticated_account) var/transfer_amount = text2num(href_list["funds_amount"]) if(transfer_amount <= 0) alert("That is not a valid amount.") else if(transfer_amount <= authenticated_account.money) var/target_account_number = text2num(href_list["target_acc_number"]) var/transfer_purpose = href_list["purpose"] - if(linked_db.charge_to_account(target_account_number, authenticated_account.owner_name, transfer_purpose, machine_id, transfer_amount)) + if(charge_to_account(target_account_number, authenticated_account.owner_name, transfer_purpose, machine_id, transfer_amount)) usr << "\icon[src]Funds transfer successful." authenticated_account.money -= transfer_amount @@ -240,13 +246,17 @@ log transactions var/new_sec_level = max( min(text2num(href_list["new_security_level"]), 2), 0) authenticated_account.security_level = new_sec_level if("attempt_auth") - if(linked_db && !ticks_left_locked_down) + + // check if they have low security enabled + scan_user(usr) + + if(!ticks_left_locked_down && held_card) var/tried_account_num = text2num(href_list["account_num"]) if(!tried_account_num) tried_account_num = held_card.associated_account_number var/tried_pin = text2num(href_list["account_pin"]) - authenticated_account = linked_db.attempt_account_access(tried_account_num, tried_pin, held_card && held_card.associated_account_number == tried_account_num ? 2 : 1) + authenticated_account = attempt_account_access(tried_account_num, tried_pin, held_card && held_card.associated_account_number == tried_account_num ? 2 : 1) if(!authenticated_account) number_incorrect_tries++ if(previous_account_number == tried_account_num) @@ -256,7 +266,7 @@ log transactions playsound(src, 'sound/machines/buzz-two.ogg', 50, 1) //create an entry in the account transaction log - var/datum/money_account/failed_account = linked_db.get_account(tried_account_num) + var/datum/money_account/failed_account = get_account(tried_account_num) if(failed_account) var/datum/transaction/T = new() T.target_name = failed_account.owner_name @@ -299,7 +309,7 @@ log transactions //remove the money authenticated_account.money -= amount - withdraw_arbitrary_sum(amount) + spawn_money(amount,src.loc) //create an entry in the account transaction log var/datum/transaction/T = new() @@ -337,56 +347,27 @@ log transactions else playsound(loc, 'sound/items/polaroid2.ogg', 50, 1) if("insert_card") - if(held_card) - held_card.loc = src.loc - authenticated_account = null - - if(ishuman(usr) && !usr.get_active_hand()) - usr.put_in_hands(held_card) - held_card = null - + if(!held_card) + //this might happen if the user had the browser window open when somebody emagged it + if(emagged > 0) + usr << "\red \icon[src] The ATM card reader rejected your ID because this machine has been sabotaged!" + else + var/obj/item/I = usr.get_active_hand() + if (istype(I, /obj/item/weapon/card/id)) + usr.drop_item() + I.loc = src + held_card = I else - var/obj/item/I = usr.get_active_hand() - if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item() - I.loc = src - held_card = I + release_held_id(usr) if("logout") authenticated_account = null //usr << browse(null,"window=atm") src.attack_hand(usr) -//create the most effective combination of notes to make up the requested amount -/obj/machinery/atm/proc/withdraw_arbitrary_sum(var/arbitrary_sum) - while(arbitrary_sum >= 1000) - arbitrary_sum -= 1000 - new /obj/item/weapon/spacecash/c1000(src) - while(arbitrary_sum >= 500) - arbitrary_sum -= 500 - new /obj/item/weapon/spacecash/c500(src) - while(arbitrary_sum >= 200) - arbitrary_sum -= 200 - new /obj/item/weapon/spacecash/c200(src) - while(arbitrary_sum >= 100) - arbitrary_sum -= 100 - new /obj/item/weapon/spacecash/c100(src) - while(arbitrary_sum >= 50) - arbitrary_sum -= 50 - new /obj/item/weapon/spacecash/c50(src) - while(arbitrary_sum >= 20) - arbitrary_sum -= 20 - new /obj/item/weapon/spacecash/c20(src) - while(arbitrary_sum >= 10) - arbitrary_sum -= 10 - new /obj/item/weapon/spacecash/c10(src) - while(arbitrary_sum >= 1) - arbitrary_sum -= 1 - new /obj/item/weapon/spacecash(src) - //stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri /obj/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob) - if(!authenticated_account && linked_db) + if(!authenticated_account) if(human_user.wear_id) var/obj/item/weapon/card/id/I if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) @@ -395,7 +376,7 @@ log transactions var/obj/item/device/pda/P = human_user.wear_id I = P.id if(I) - authenticated_account = linked_db.attempt_account_access(I.associated_account_number) + authenticated_account = attempt_account_access(I.associated_account_number) if(authenticated_account) human_user << "\blue \icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'" @@ -407,3 +388,17 @@ log transactions T.date = current_date_string T.time = worldtime2text() authenticated_account.transaction_log.Add(T) + + view_screen = NO_SCREEN + +// put the currently held id on the ground or in the hand of the user +/obj/machinery/atm/proc/release_held_id(mob/living/carbon/human/human_user as mob) + if(!held_card) + return + + held_card.loc = src.loc + authenticated_account = null + + if(ishuman(human_user) && !human_user.get_active_hand()) + human_user.put_in_hands(held_card) + held_card = null diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 5a529b40df3..121cbd3dc94 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -254,4 +254,21 @@ /obj/item/weapon/storage/bag/sheetsnatcher/borg name = "Sheet Snatcher 9000" desc = "" - capacity = 500//Borgs get more because >specialization \ No newline at end of file + capacity = 500//Borgs get more because >specialization + + +// ----------------------------- +// Cash Bag +// ----------------------------- + +/obj/item/weapon/storage/bag/cash + icon = 'icons/obj/storage.dmi' + icon_state = "cashbag" + name = "Cash bag" + desc = "A bag for carrying lots of cash. It's got a big dollar sign printed on the front." + storage_slots = 50; //the number of cash pieces it can carry. + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class + max_w_class = 3 + w_class = 1 + + can_hold = list("/obj/item/weapon/coin","/obj/item/weapon/spacecash") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm new file mode 100644 index 00000000000..e69de29bb2d diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 79f10fac13892fa3e31c7ab36ad30ea80c3f6997..f50952514dbec8ba0511c565f574ad9bc1f3c483 100644 GIT binary patch delta 16159 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 delta 15094 zcmXY21z1$i*WRT&6lnwn5kb027JMg-an;J%$#%H_dR>jfH_lvnZN>&`0E*Xy|(eR@^EnTa&UbQ0{MQ+N>}$> zQXu*?K3lWKGTfH+qwZDb&XjxchTN1K5R9{ot^DPt_lWBmZ+91N3}2Q(??^1y)M&$e z4V3}N-|X&sx2A-9W@Ec#EJQbjy4=JYwG=TnrtQ32ZgT$jy(hG;(ZugQk?>LVhnaRD zLrp4S7v}Q5ve5Xj{19HOym@_nLrASDmK;tem;OfQW$^8xSNZ1;ub>_h5V`Fs zkPI9%6Wz`JQo@oq6Ikf}r9DHoB8dSTa2hJsmQnoZ?XcaaOuse|eh zYS0}Ol@+6SC$wDZnrFKwy1UKlQgRGcUi!*6i)_?bto9WJw==xlr5dtTLspK@<0e$V z;73BjDGcf})r*qL?-{!oQgGYgn3pkmElW#>hd!PeuRks%b6sQS;Hum`a=5z(R=(($ z%)F@$KF7{@E#Lhhxzvr`fOI3firOP>;Te&kruE0@fk!OX!VM1T51RMTSK@ur*7+l< zeY-XVUs^9|JGQ3e4)>;q_lmgLyS2No1&dR0Bfh$w;8fiVsbPd%s>$-Mdvr+Q;gPyx zg%2iYrgdW^u8qp123gZu_Fy#u=1-Qw3J&laI?d;zydM$wzV+xnmIt)?1%s({!o(e? zZwHbU#>OS>o2I1+W`t?95s2~wVL=YC64a!$sx#|a^nxL^h`@CQ=VWU?BJtu@*8QVAI?K8fK8~moZJ(z zFcqezAlVw{D^a(MT8`EUF5B5b#IGx<>~BWGn-&Z~-6V7S3;N$pE4%tyl-Oz?Ebd>H z*(`cTOIZ1{MS0kK2ypY9VAJy`YdCq9LT&=GO4ix#EWu0GdH|$${y;HtOH= z(010VGH0HsMX49CB_xZry_HwT{L+@1QH-=6_v-jt?-Xf${N+pucl>`F7Zo{EOqqrCORGTwODYpc9~N{! zbh(YHd`gW)?qaU+RP+A?W$w9cZ4>t7$@E-pp#Sa&H*q5` z+(RnjNuM7_mIb;$D+W_*o|;K_y9d_U#H^pj(bm3y*gz&HxJ_L*FgU0!7eOMgU`qBy z<=IfIHeX;*@OefyKA|3a^kZLnIy3Jme%rBnmu|bDIzlT*b#~K_t_>ih<*6f!6z&7> z@r*(B@ve=$lJWZ|wcZs1>ZfwJG>ifm6T*9oIBVN%NLy7?l!5vESk4*`C*|WK1ZiAh zCdy_?E|h{p z-3;?BZ!o_@Za)nx<>7YRTe6)mRNq|<_eISIT;YIt;5X=h{jXh%i+Z8SmZwRLb7n+M zr4C{T>c}rK!spn#kH7mL(z>pqEgY;KxW2UohP-+p&Fd-&glc2X3XYeSvJrsTIXKqg z@S(!GmN*9PXN`Y9_pbLxBxYsB@mdYdJ7YC+4Fp%N5UIy%%^ldg?Dx$I6mg%&hjayf zx^$74#%LJY&-BuveEGQtFF^4S1ZwPFkaIQrS#0xmjub+0;z(@03Wd#?x!fVUPgC_l zpqBS5Q%iP046@=r1rMYYPta7>6%#{f8gy+V<45{f98X_gzoE(cd&17eRn)^PyW7k8 zdK*HLgGGBp8h+v#;#6fuz{J>?h?|=`mYO$InJ&GZ#A5%>4H828{FaJ$_qk@a^=YQ; zG~13wmKYc`1%;B+)5m&l|K_bZ2%Kf%;`&U>Z%YK!H#Fo;+KVVSt3Eth?u-?B>QCtr)CpQdQG^6L5Ib9qzzv7EHoXS;a_6i36G!Yo{;3Z60u? zs;C9lJ$*pUWvI>HZ$QCyQBjevnLa#WpcC_Hj_T4W3oj`tnG_cl6}61{O5U^HFjx0+ zCdlcRn)lgfn$yO@ZBGFNR=wbJ5XkWBV>}~GMI5vNg0c4}2IEM2Rtd3j7!I6DsYybK z(-4O^I5>S{W5oCO_aG1e0IW!LP0f~{UI0s+LRe%Zo<;*dh=@T|$Jm&BiAI(i>OQbe zKI#+V4x{4?tGIx@_T<)6YHG^z*N)NNt`ejmXW<>h0Ww+FngAABY*Tr{uwLlJDWXn!_Xv#!z9lq_5!ruL_Kk2WMtk7 zT6|!9xzNmdKt2K4wj8r{TOpsoI%R%+Y@8dH0gLA829%AP%BZCj{qkgch`)b*SZhgM zYn!z$Zh3>UzJphdvkD460(G_}c6Up8czS|QG8;xWFw>i@Nf=&v^+Y{<&f|Mx{=Ka& z|ND1pWo2di$$ac2+IFzqd~182e2le#&=m7&XJ;oE#QBc;SoYx~a55 zhoQyV0>J!&6eC#3I&KJ&zm=k6@@Lcmqj>BGQhfpvST*zPw^%_!(X04_R|vk;tac~p zd|)pGY0cOw3C|`?AAZ4_MDsWLqBEXOYYBw*1ZVHN>VwW^Ys$((6bjHU3!HZ|v$GyZ z$j_UMjOS-En3@mN_!~k6*|XStl{j|C(qHKVf43qtDGc#PmX_!=G&JTfC&^>8$wN&; z7F&0Oq0qle7iV}mWhT*6KY!wsY|^UX}Wh*Q**p8_BW*O3(CZkNEbv966?UWpa$iP`WfMIxb`8B%pb4Xhg2 z5*Sb3Vjo*iKOa1C#~gY_DYyId{yhCWB@pM|1iTWMo3==0 zXD6_BK)QW$v#CSB>K<;I){hqrY;IZ?(99>u3xk-Lm_P&{F(~ApFf(IPgwxjqz@9dhqti(7AN=hP;W-uAF~1%D%roScUwdA1_Ah3ASkHnv1Es@`m~k*MFxK||gyNDi^7)B<*a_atptZKP z?kSIFzJ+JHQfO;yPlw?y;*$^f{!}rX4X%9Yad~9owLd#%&)>kAk&CwUAQVZ+yzn}? zgO+bSRB_4?qse}IYZTa_6vt2`J(+;E6v~^w^QiC3*6dF_&uqD$tulIq9yb<3xGVq7;U|N%}^DQqWJE&dG2)AwcsoH`BK%u<{*$%Bk^u zya~%zlGxcUl{h<;AMj*$SH&4s3aNy3oTJkf_RP|(x}mecF`M7Zt^q&xw_6v{I`!JA%{m9!$`K_{=QNc_CAMK8_=A3m zCMc5CXJ#z`#@}-#R?DBWF*7q;VZukVDwu{;M^nbyy!T7{`eauFKlwf-N)tz=x-#-w zoAi&3j97hc8WOFGi*h!Si!iI9w6=DC#Vtl_gCa{nLX-@hnOQ%nDt0WE8VQ-w(4~J^GnMIRov)7NjO&gTFAVsGH52s=D|!!M7O%fzd2Wa8kOanb=BKsBoG@Ypc@W| zq3H2yldUz>w&3+(G*D>BFC%15gC4|iaDV&k>!lm|KU7>_+S8nWJQT!JMc+|um|PEp zJ;oAsZgVf7$k3c^;iw0X{P^)h9KY}&_h>agr!|P9hKT#+!l)~k?AcG`2gUz&7#nV* zD+0aCe;$jmq<2Jd!rj8bVurvq%M>VtS2EJkas1>fMaO?3L(PR?8*AqutDOO5bEW}@ zb$9YyR=|T4^}Mzlw!fzXRPMmZjoC>kd$<+*C!Un}FM^dNq>}fdkKFNLbhku8c6amh z29AiGN&j86cLfDcOlXB6oqzrM<#uskn9TZ;v@Z#54nH*|1EG%uq(_l?$xq#FQCt$b ze!o&tbpD8?oRo2^=>G7~kj}&B>YIgkh@2cP0|VfPGwNz1J`(b3%AVoz zG7vnv)R(=g;yNI0VcC9}!wH zdF4Y>iOCC_9FONui-@ED&w}&maOa?l+4#7)qNh)v`d*Hu@rIoR-CUsa@(4;2f4_$M zdg`;P(o!D4Kwl`I_$nsunD#I?$Z7T6V7;HNsGsEgRgwBl2Yf7ZcoO#Ay+Hjuf_tqx z72@CNlIp5=`1tpvX7-20Vk8IitS3VM(8zoPS>d(ky0qV|X4iQ@>f8a@9!Am2fP4Nr z3xj&{4!ajGkld0(o%cDP>krRc&h8Xn;*S(->3#yFKHAv=u~L#|7&)`m{(e_eS4`LQ zHu${V@ciz()P{~>hO5gUnXUN!z<&FCd~S7Fd3kI{$8d=vjT5HIG1Wdc(AA#Pv)@H( z7@$(ZohFGp$j-AN9MYwD;gX4h-yQyU@-?wPwE^Lq7`I*1kEMwYFz0Bf>dj6;{OByK z)f0GL(0!=$6l4w$W?OXu&Cd#I*Th0C;IPOAWE5vJ7?e+IclsW)hx5|K-=@-U2EuH+ zZ>9o4LoTL0QuGbE4{mn8@=A!l&PPJ$gvxoNeds_BZg$O3n;~#B)Xt85=Q!-sv>vGE zcFnx=)#A zGT%(_A6+O3wB5Z27zEnymy-MC15qCeO{P>;KeHzwkaWxk>7Y&l)g!6da3ZmK$~Jfl zatY;u^F+`m(2Bg4i&x4U7vzi_VdxAT{>;!nkte6Es~fhr=lD&`TO~ur0LV-Y*Tz2{ zjnKXE2f?Vv+L?n$_B`mx@78gA&yj@e73B%p*`IrQqz{yD!}+#V(MH5Rhs^U}U3<Uf^W_poKTC9g6maX55(eHv;0m$kA&^Or*9wEbl;1;S+WvYL^jF|3$6YT0SH_#Bt9p~?PYq<59{mqlaZaiRAI!ec`F*8{i>wE?aofehJA8o0zt9J7r_QJh>@IZNhKI znP4@(BKuLIm{3j`hB2TxFgZD?XKu~}2@J&E8XphZjgGpX>mB;H zL!0_!{VgU&N!_<%-uU0Zg934?tKawzt)wg86m(DmGc%lZe!sL<2_-DJR z*zRWuE+&D6qt^LWL>S^z!PsPWeGp_=uM5f3r8eXXC7GYx2(RFi`fQO1N9nKZzrwE( zxYwTOo9>WK1sgKIdp^EHFCC|@g#}=Nje}zY@)JGb+Hc=}Iyi9lI$EXygS`;m^uczz zEZ<1Xuk+;GMEvzi1we}sGn%hqF!sefZ#viIpGsjyGGaj$X@uWah(K3WmR!pOBx@R< zgxhc@7(Y##c%JmvUHtIBO3=+Vcxanh(*gw{JmalK^>?X*IkwzE!PV8SYrwS-u6vO< ziM)5}iEQC3mp&L2Ce`Sa(KXqOsTXspC99t1(k1KaJWv{sN+i)NQ33rqmf}6L)9vay z#M<3WN=+s8{QSmD;upfM-cYQNSW=Aei7UL(d6e>n<<9 zAt@s#F3FKJZjeahVZ@~dCK`Wd^BMeRR)3=Q#GXQc;d*M+bdnBKyHP@?M(d|}Q5S!0 zzL6T8ux;9RIzzX%y&XYi>I;SiUS^e=rL@79+{Zy)%ltiSLO0Zw&74NfSbj5y%#;|d z*Hn)lMg3xagQ{so>YSr8D!9?7*XOBlg&d(mk?t1cP84}r0X32)G? zueGi1(^s!D&z{{fi5imEyFE!^6tkY)2DG>rrK7IJV3KjOa?f+o#y@Bk#t%4Bm)#dy zwU_Y1_~x23locz`_sitcD7#UIQzQ2q8^8T@EM5Bzand=n=tvRV7i% z^5Yv7K!t_x$;by0v}qR~_tWsd--nX81TOLx8=)N;+N=sg*Sc4Gj?_uf*|^fAedWK% zh1dqj+E`Ub^_5Itpp9juaouTf8SL3td`2>MvFylWbsBvFVENQ~o$~z}| z*VVQJS|R$$DLE+LV1Eo*0OJ#iOOm_fwebpMg?Vg@$1?$f>(Qw4Z=3A}mx7Dq}-Dm*+q*KRypi~Z}5-@g^m zG2)>+HWn7st551+ z?c${(Fdv?|tPIgrE%|y*IR+2`5oYmBBFz`JIM(C?87CK;Zsne?holb8b(AwEeIM(K zzH2p8jJJsX$Sm=6Rh$fKncpGl_%$*jXKI?=`y=&Wo1_2RO?-Ph-P@O_l3X;>6#m|n zbnn+Puy$qYJvL5jtK>zL6(QK9zPpp1n&-*$=ni9ud2J+>o4LaxYn68$Al`SoKDE)n zGS=6}1?93?Fb0GL_Kd*Qi`u?p2z%1i9;vp~I808rx?SX5wxGRzf*>VmaF?-q#NGN7 zHtG`Gns?OUcUHPEA~kqs(SI_tnga&8b_sok(vMM{7jLC_p0>E!nd<&L!De^d4rY6; zpkO&yZ2}6WGJ_-@nK=S&i6tUawq((Qnd+tSDtWF+&lydOg+=T2OetyVtE& zlut$ut56ldO)YsF~Ge3imQ94j>^!$2}R=ej!Zy-8o{@6(|Z&$-rn9TfkW)@ZF!HWc#)TVe{u`HSpgCrcvk(xMz;UWA`ap> z{!b=p!pUz4NE#7AXK!`)z(8Pz+*{POw{H9F1VHCITW`#?C{EUKw?IN0w(l{UyZ9O7 zK(@g55Poh~eK-y{Gpj3a(SNZynfV3i3*p6ED-#(?^4v-i=WU1el(9fjvWq z$Ej7DAiq8?R3q@it(;tk3u#P_6g?{J zK2a`Ke=f2_GlvB2H!4lqQ+%X6@8nkjuSw$~QkuG?An((nm@{07nItd3)sV0`FX0m6 zFgp#03Z`&1b-j?#MGh%Q6Kfyj?Sf7E^LBqi@GA4=LV%n^D;dR%d#xRr$lAh5_N zIgNW}(3;>|$*YU)O(~!+_8B8jL7uwIs1IDiU&BE~g`mx+WIG6*<4!RfQ+<+k2UClB zuz;lN&ap~mdKRym&;Z>$C=b?JAf-P_F#yS7&vDR_La2g_9>v~A`C{|L$WFZrx+_(f zwYPsrcJ}7A34duf4+4jaDPs~A^v9Jt9BY7X;`kyT_vqfz7a;e3f9G%(*JgQzj0mD3 zaGo(mJ#>E_Y}oS-6KTl=S2fQ(DAg{=owTQBo_)r`63%Odo>O{`Pk;G`bU2rw@OI&m zhlZrP$I?bQAM6=;FpJ`&wfx~A6<17a5|E!Jj@?&D_RzNJ6LUc;va=PwE{DfHZzWjc z3j)gD>xtHm0@Npnt!kVv=)D}+Z_LxdvBKwlV~d@=OCsLjMGS{DVg&EX7&@O}2cxxv zUMTb-=pW;XW_UYGQ(QU37q@;WoWVEL2@s7Q%+3{+pJG*2^>-7y1>G63bk&o!bix<8(hb?h?4P$d@K~s86 z$S)rT{Lr6EKUwm9PRgQu zeP2p#?R-wq4CJp}T~osieYw(Lr-_9HV6CAs=|A_3zKCWwMbx2KPbw_x#;9^{oKu~p z%9P%bDT1YU3!eIipH1NJ7}n!MP4jNDKA_fu)yAoZAl@S^$Ldv)gF>*{y2HtOc>pO+ z%MGPDDqE*ppndgu3Kjt4(ip9CY@&rqxkvZ}y%6&`#{^-0n0wrf?KCk5pnQ7as`&;N z%P=%y^b}3OhT)RJcj{aC`S>PUT+M7VA+~5JlbDcTp5mEpEN><|6geztGKG>pNea`+ zbK(yT=n3_Ho zpe45IL%TsW7>_jF(9h)O>Gz7`(|Qdl`IW!QCi&IQ4+U}o+|CIch-K|fggWS-L5oG- z1->E~Efh?yC6OHPwk0v)X69P5kW)I)xVkv?^ znfLbupSn9VzuY5sp?~jhj?XSGlgbn#NErS&Cnrwm*O+c?nsq@$Q#c>aVhjzJ@-JR$ zbW!XDHM;^>2S-a`Q5QL(f4y{`1|&Y6&6ng4ul)| zOkoR4VZOv7WUNTN4GrNBo>BcpF3I}O&;{M#~}`bT{waj$M6%XR)gxr!^dQTLg>ngCZjEY(y&X9?>L?zG`1e8x2tw-eU5 z?16RN&Oa6(-28%%vxVM?Qeka7d2XW0PIxGCsl|y|1c|-#sM5CB9+1#X;{oH6&`aCf zv+>W^pziN>Rx&?hxGsP1RZGMtCYIOHdEiMTE&P!nE-0kfhDFzQQO|7YSe2VOJ(PlO z4(Kj}QK@qnELh@di=<#F;B3((=~#h$^n;r(x-JeSw+e*|UU@x9F^qxn@iS zB<(aSDTfyq1YSe*;-T~T&%3K#3y~RIRpySI<#ca2*OT6aJgyXIdKU-9WuEY9Uf=j} zhnt(4Xx!{fGhbn5(&_(ZLdBr)QRr)+7o7zgG&`p+Omc(1<;);n*;0y(!BkUT^0p{7 z@KS&Yit2u!c#RD!!?Y-zV`My>x{4EK~ zZC)d;!WWh)35;utfTmf2CUCM_aY>DFUU zd#0YzmPoAUCzHnKEQ`D~vY3%w_%^}q2NWWShp6ub{`<+!Jt z{Hh#qDW~aMe@blxVIH4(1jMjS9#ytSZ1bqr-fxz6b9_cwKo0FzzQ%Y_ttEt>o~mq? z&-}0%+qG?QoMG26HR?G!vu-q;WZI?MDyXZbBo<7`D&a(^pM#ewfcs&HkNZPk9E+&I zHG#rR9}iGtL{9vxvkB}eMm0496X}|qpF*2&?|d-zvp=@weiKdM8u5tirFHzodUIr} z@^qN6b#k8z?}>F0t0C&=%=1YXY3blqSw`A89P|q*n=faFA8U+;sJ~D!iDeLOD6`YQzn_;he zpZ^vUk_ZPZq%LeHd3T*mRCv(#KpV)qn9&f4*C))pGTGX~EHNco9VujpF#-WE+H0;H z{^DJ?YX@@=`W3L$fK6PdG1c#SWi8A+g=B$cCEly(SArvNKp=9lf3*Y?WetCE?GxVA zvUBVNjDH=`e=QLiLdusjGXc@(tsQ&btvCM#D1%pzM^N{lpR55vbzB`d9ajC0j!1}Q zU*q+CqIRqlU-V!6oj28c9;+A$q|q4cHC@5HtO!|fI0C`91fk+GRvH{0=7_{c zt$qo*458&YF~So@0^3S@>yZ5{0it@d-_v?v65c2hkO37V{N&1znbXKHl z^O;*worZ{j5+g6`W-9Y3(8!qnInbncih8W=tVvQ*?>b$u?|HO?q;LE*+OMi!^URNU zRD7)h0e!$L=ly#6dg3z206m`6FTfX`f&$`RH3{~-%$~7pv&vYLB7-LXX9cQ6v(yLT z@HFn-%*v{gnw2gev;J@&sbTaH6Qt&Q=}B+kRQPa3Dc$+3)ocKUwX}R*G=K&HDw-DY z`kUgUX%b}l_2mT6?O}HDqYh2)!$0v(B#F`gl4s4!y+Si3Cd;VC#W(wIWaz=!OxCADr@jrl*dlr(;*ZHmK-HGm7>M53 zHAt5`fQgcT@#!^?C2E6j@>ZvE{lV3dRNIZ}UaT;#>dL7(;Xhq#m4Nv5oOaEhIqscv zM>E4K?prd{<86soV-!}fjE@1sUHu_vhSW>LIlPSHDH>P1z@A*^_FuHng=UP)&=L~4 zUN!I0N_zwt6GwWt?Dd}uEE%Z*5%LpUx^BG$?hvDql=(UfK|u@9U5v#-3Br+Y&UIB0 z&3v3~U0H6l6I|3oDXEU+LA~h(gw~ahJJoipVa8_eI2tNcG92%sKAQ4* zkh=7_yplc#NMD@3G^0H%!1f+9B=~3WnD@S7Z#<5q07@m8wTm1y{C9@Ow2)Ssz%fv_ zoot|yG0zv59$(4LX*o(Y5f!}fPdLE{J~8#mnM%xDB}4M;|Is~W2MJ&V&o%tX0CMnE zQ@Li^r({zSzeKMOzwt-@clHQIJO`z!k1f(J=- zrqwYsTaT-ft|jH#X7+1iV3a*1zP&;F%;5<6k5+zy$!YeYqOcIF<)|=bFO)}wAmh%0 zTk@RC=63|l_zc_GsTndq<$PURv~X&n+OXB1VmlJSIhI0dl)=f^EMO#gUuo-vHzjOn zQ0?+J618Tf{EOnjwV==485ObA3uPj7T?;WS4_%$Y-ub~h0-hT{Mu`vI#t6`>@nr8Y z2BVK1G#z_wMgl9FGfPX$l%sT^Np#;x%yQ)ck&w(karlQp&i9=tTW%WmQpiL2-17Nh zlylF&KKS@PNS{zVK{KBJ+Ai5N?n^Wkfo_8AUw^HZnCoxi{U=l_43V5D^wibWC3!{H z0H&RbmA_pLyZ!e6buNI5z_A!aYqSN5@v|doUtZTlKBT2(FI}sz=ldoR@D`yypU`EH zZ5>p5SpZM`Qk#(4*){gc$rRvC9Wi-M^e)8!~OjDWF6Qt@|CElVdZh2 z7jM?jXrv!DX`a?ZC!OUUH}jdu)0uc3lTF4FzF06FAERYgqN}3i+;23e_D>2Hu&|WG z#6k3SzG{uk7NrW_rK_8Uzd~NS&$qbdtZftunR)JU7hS_ERM&RcAhAH!G<->6ff6)P zCvnFnybx)V{o2yXs%$J%*r@2B)pJ|NQr#EoiBv7bkRAmN+dVR4{X{Sj5ig%U4HfQ> zrQsJjMpwm5F0oVgKbvx`yf z%>y*&E_y>uQ$QB@B+aTzXD`zTn9_540Z#*Jz92VoLDIr2>7HDCJ){6(vh&(FM-GGV zKC4mIdM7nKRmNZRmmAcYf%&S3+lO|r~RuUb#y?|0uDApn=*31c#c7=iN`a=hZR)B+cPVvZ|9hzu7$Qy-Bsp92DREEHyEIA zj%U8{PzGgH?Jv2fANPz1filEcRd;8mW6{)HT;Uepyg0!xC+&CgC^q`Vu%jsv&vq@Z z4AFR>nEy#eAf`hF+JB0X0P5?v0K7eh@L$m$-(LBE?~s>aV#4~3)kI@xTRqyv@}ilK z45Tt*8kmFH-=FzCi?pANtW+SdTMwT5MzJ&FRVli2kHQ2nF=OGHn&W7@+4fP_zSk|& zy82vEQ4tn~c}bP_f|*Z0hg339*T4v-cUQ#2PDOPFN2wHzbE#e$i)@V$=1R^c>^wsc zX?bPEtz7_SAB0u_3RjfmQn|8Nq9B!m$CPA3mnl1%nL=Y++tP|P#PdFN*q?I2#31_9 zXd*ZxfMIS{fcZ%}gGu%hg*sWsEVwSZM+ra2lJ7y&^l~Cx8`K}%r~2t;*H3M7HFG4@ zXdQmBd@6{^^D+sPyC%xhV#C^{lP$-aUq-4<;yOivRi|*5`x+DHrl)&~if)M#o`caN zsx-LQl<}MEK#_iL@@O%DW~g_Acw80*3OoVVqKqUvyu1}z6CC#77-BY!Has6YyT;Q~ zzBFOQDjeAynbZ)1Z-P^LoRk5#s7$)itcf%WY+T$8Xd@L_Hq}pMsXw)NF=3xiA9Kut z2I0b9w>63+7S30`nfpfXvMI<*BO-8(--+cHt3W*KS;)UTS0=5W?vOw-R?Wn6;`e9{T2gu&k^m*Z_*GXSt% z0-#V(@G|wG3Q+Wbm`QK|O|HZpG4k8SzBxyYMz&c!K3f?)#N_I*UV{C=Q#7tSN?mW$rZNBjzoJqqv%T*YWk0@3$E*(UH_$tjgO;Ic#}=*jAu zQHHlb@y|(iqwZW|e(?;T`7`P>n;M6j3Mu;urivZRo|Q_k0;KE-x>#fw^6H2t_*4En z4Hjq4q@;KYX~37twter28S5U_B7#?iKav)~%=EtPbJ23Uk0$q63KBBkeh+`C`utgQ zCE(&xC5|_ufH1wpJ?gwkvfdh7ZH{ZmVl({NQy7W=AZ5tLs83@P4&NKoGWR@0K5O5T za?o?Rf8{n>pYn(%gxn2XN#2+E>lGe{;MXJOAmi`e&w-VrvGI$-%KU+U$AN4#3!;S9 z$h=sb@P#QQFdGrVS=vlblD-y>H-~58T;82;QLUpz@XI;KKq04D9R-?KM2TL-OnOjp zo8G?O$qaqn#&Agl0*R+NcQO(|^i~3`bvxmqOqfFGnm4xD_d(bv2AMUSdnl1iSM@g% z#^^G+zx9S%7I|P*8t}f5lo6&Jr%XWCLi|rxwZ79ws_Fko90}Ng@S^`~1%5&oWK)YI zW6|K?HyHzB`950?Ym+awS`H&AoaE)SMRT|i{sz7GK`Efguv!snns6IDqqK<)HP0F; zm%dZ!mrs_p#GMxYQf9dN`8@;qZ?Wp$0Uazg&!{s9cGlK{C158~FXewAdfVE>im&Gk zd}2D!y+sLe5tUW)kDat*Mrv-+xU!MHDdTb;9eBJbDvLGI9ifG69?Jo|Fuxy?FYZxe zRJSJM+eSMg}nG(%qy7q>p4}b;KiOexRgYT&G#1Q1Hl7t=F;Z z{=UAEk~A;SxogVHUr(~S0#m61r=Gwab}Nd!_Lc{C?i=Y4+-GPH4eCL|@6mUWFxve@ zDP^Q{J(mu`k{)#C2;kLU;W&I)HBwYYQm`1^p)#41TCnf^H_7bU(OEEPZPx)Jq5Ib>P`un7`d24w2QPz&&6OL|;afOxW00S^eVu`rPioveF7N*kY|%yC2jQt$ zo4FCIqp`Ww2Jk_Z=8o@X;UDKKylCo*1i`EYzn6k$K)`>Gq&um2_+0M)0hjaQNo%P1 z6ub2r8E97csb$w|Sh=M*dK);OnY6sm8rwfUn18^<#l=>^wmxkpWVxPpb0z)4kf!~Y z?Y4P^gB!G<`0wh&gQ{`GVdm$DNSfL$RJSN|D|kPH(QiiZsgs4~*%q|L`|i-83nT)- z33ukq-e;uL;aZL!kC$?v`SwxsIIuTS$iYhjm}dtUk;Sz>cSQ#cg2RxaN!PVBZaUrb z)I`6%vXV-j_lR$7GM88Z`y&EU)R>aM-%1wj3}i0NqAN$B9D2k$h=tkd=`_ac<^)!D z!IpczvCLFf1K0bmgz;~k=QbJ7qm|J0&jC4M=!Fui#{arVXW@q8Ai9IS=HG?bScd=A kmZDSkA2|P?&0FE#Ga50NBej7`dJwuP%WJ%@mNgIkKOHg@_y7O^