From 589267fabfd9a41aea491f005a204e78df1d5b0f Mon Sep 17 00:00:00 2001 From: "daniel.cf.hultgren@gmail.com" Date: Mon, 28 May 2012 20:51:15 +0000 Subject: [PATCH] Revolutionary update! You can now dispense Disposal Bins, Outlets and Chutes from the disposal dispenser. These are movable and you can attach them above open trunks with a wrench, then weld them to attach them completely. You can remove Bins by turning off their pump, then screwdriver, then weld, then wrench. Same with outlet and chute except for the pump part. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3690 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/machinery/pipe/pipe_dispenser.dm | 12 ++ .../recycling/disposal-construction.dm | 122 ++++++++++++++---- code/modules/recycling/disposal.dm | 117 ++++++++++++++++- code/modules/recycling/sortingmachinery.dm | 41 +++++- html/changelog.html | 8 ++ icons/obj/pipes/disposal.dmi | Bin 100973 -> 101544 bytes 6 files changed, 272 insertions(+), 28 deletions(-) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 582f5f2367..8457a0cc11 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -119,6 +119,9 @@ Junction
Y-Junction
Trunk
+Bin
+Outlet
+Chute
"} user << browse("[src][dat]", "window=pipedispenser") @@ -150,6 +153,15 @@ C.ptype = 4 if(4) C.ptype = 5 + if(5) + C.ptype = 6 + C.density = 1 + if(6) + C.ptype = 7 + C.density = 1 + if(7) + C.ptype = 8 + C.density = 1 C.update() wait = 1 diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index a78088d984..718bb71bc1 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -1,4 +1,5 @@ // Disposal pipe construction +// This is the pipe that you drag around, not the attached ones. /obj/structure/disposalconstruct @@ -12,7 +13,7 @@ m_amt = 1850 level = 2 var/ptype = 0 - // 0=straight, 1=bent, 2=junction-j1, 3=junction-j2, 4=junction-y, 5=trunk + // 0=straight, 1=bent, 2=junction-j1, 3=junction-j2, 4=junction-y, 5=trunk, 6=disposal bin, 7=outlet, 8=inlet var/dpdir = 0 // directions as disposalpipe var/base_state = "pipe-s" @@ -42,9 +43,26 @@ if(5) base_state = "pipe-t" dpdir = dir + // disposal bin has only one dir, thus we don't need to care about setting it + if(6) + if(anchored) + base_state = "disposal" + else + base_state = "condisposal" + + if(7) + base_state = "outlet" + dpdir = dir + + if(8) + base_state = "intake" + dpdir = dir - icon_state = "con[base_state]" + if(ptype<6) + icon_state = "con[base_state]" + else + icon_state = base_state if(invisibility) // if invisible, fade icon icon -= rgb(0,0,0,128) @@ -93,6 +111,12 @@ return /obj/structure/disposalpipe/junction if(5) return /obj/structure/disposalpipe/trunk + if(6) + return /obj/machinery/disposal + if(7) + return /obj/structure/disposaloutlet + if(8) + return /obj/machinery/disposal/deliveryChute return @@ -102,48 +126,98 @@ // weldingtool: convert to real pipe attackby(var/obj/item/I, var/mob/user) + var/nicetype = "pipe" + var/ispipe = 0 // Indicates if we should change the level of this pipe + switch(ptype) + if(6) + nicetype = "disposal bin" + if(7) + nicetype = "disposal outlet" + if(8) + nicetype = "delivery chute" + else + nicetype = "pipe" + ispipe = 1 + var/turf/T = src.loc if(T.intact) - user << "You can only attach the pipe if the floor plating is removed." + user << "You can only attach the [nicetype] if the floor plating is removed." return var/obj/structure/disposalpipe/CP = locate() in T - if(CP) - update() - var/pdir = CP.dpdir - if(istype(CP, /obj/structure/disposalpipe/broken)) - pdir = CP.dir - if(pdir & dpdir) - user << "There is already a pipe at that location." + if(ptype>=6) // Disposal or outlet + if(CP) // There's something there + if(!istype(CP,/obj/structure/disposalpipe/trunk)) + user << "The [nicetype] requires a trunk underneath it in order to work." + return + else // Nothing under, fuck. + user << "The [nicetype] requires a trunk underneath it in order to work." return + else + if(CP) + update() + var/pdir = CP.dpdir + if(istype(CP, /obj/structure/disposalpipe/broken)) + pdir = CP.dir + if(pdir & dpdir) + user << "There is already a [nicetype] at that location." + return + + var/obj/structure/disposalpipe/trunk/Trunk = CP if(istype(I, /obj/item/weapon/wrench)) if(anchored) anchored = 0 - level = 2 - density = 1 - user << "You detach the pipe from the underfloor." + if(ispipe) + level = 2 + density = 0 + else + density = 1 + user << "You detach the [nicetype] from the underfloor." else anchored = 1 - level = 1 - density = 0 - user << "You attach the pipe to the underfloor." + if(ispipe) + level = 1 // We don't want disposal bins to disappear under the floors + density = 0 + else + density = 1 // We don't want disposal bins or outlets to go density 0 + user << "You attach the [nicetype] to the underfloor." playsound(src.loc, 'Ratchet.ogg', 100, 1) + update() else if(istype(I, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) playsound(src.loc, 'Welder2.ogg', 100, 1) - user << "Welding the pipe in place." + user << "Welding the [nicetype] in place." W:welding = 2 if(do_after(user, 20)) - update() - var/pipetype = dpipetype() - var/obj/structure/disposalpipe/P = new pipetype(src.loc) - P.base_icon_state = base_state - P.dir = dir - P.dpdir = dpdir - P.updateicon() + user << "The [nicetype] has been welded in place!" + update() // TODO: Make this neat + if(ispipe) // Pipe + + var/pipetype = dpipetype() + var/obj/structure/disposalpipe/P = new pipetype(src.loc) + P.base_icon_state = base_state + P.dir = dir + P.dpdir = dpdir + P.updateicon() + + else if(ptype==6) // Disposal bin + var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc) + P.mode = 0 // start with pump off + + else if(ptype==7) // Disposal outlet + + var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc) + P.dir = dir + Trunk.linked = P + + else if(ptype==8) // Disposal outlet + + var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc) + P.dir = dir + del(src) return W:welding = 1 diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index c72f19b81f..4e5133e21e 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -46,6 +46,37 @@ if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag)) return + if(mode<=0) // It's off + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode==0) // It's off but still not unscrewed + mode=-1 // Set it to doubleoff l0l + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You remove the screws around the power connection." + return + else if(mode==-1) + mode=0 + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You attach the screws around the power connection." + return + else if(istype(I,/obj/item/weapon/weldingtool) && mode==-1) + var/obj/item/weapon/weldingtool/W = I + if(W.remove_fuel(0,user)) + playsound(src.loc, 'Welder2.ogg', 100, 1) + user << "You start slicing the floorweld off the disposal unit." + W:welding = 2 + if(do_after(user,20)) + user << "You sliced the floorweld off the disposal unit." + var/obj/structure/disposalconstruct/C = new (src.loc) + C.ptype = 6 // 6 = disposal unit + C.anchored = 1 + C.density = 1 + C.update() + del(src) + W:welding = 1 + return + else + user << "You need more welding fuel to complete this task." + return if(istype(I, /obj/item/weapon/melee/energy/blade)) user << "You can't place that item inside the disposal unit." @@ -167,6 +198,11 @@ if(user && user.loc == src) usr << "\red You cannot reach the controls from inside." return + /* + if(mode==-1) + usr << "\red The disposal units power is disabled." + return + */ interact(user, 0) // user interaction @@ -187,7 +223,7 @@ dat += "

Eject contents
" - if(mode == 0) + if(mode <= 0) dat += "Pump: Off On
" else if(mode == 1) dat += "Pump: Off On (pressurizing)
" @@ -209,6 +245,10 @@ if(usr.loc == src) usr << "\red You cannot reach the controls from inside." return + + if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1 + usr << "\red The disposal units power is disabled." + return ..() src.add_fingerprint(usr) if(stat & BROKEN) @@ -264,7 +304,7 @@ overlays += image('disposal.dmi', "dispover-handle") // only handle is shown if no power - if(stat & NOPOWER) + if(stat & NOPOWER || mode == -1) return // check for items in disposal - occupied light @@ -283,6 +323,9 @@ if(stat & BROKEN) // nothing can happen if broken return + if(!air_contents) // Potentially causes a runtime otherwise (if this is really shitty, blame pete //Donkie) + return + flush_count++ if( flush_count >= flush_every_ticks ) if( contents.len ) @@ -803,6 +846,8 @@ C.ptype = 5 C.dir = dir + C.density = 0 + C.anchored = 1 C.update() del(src) @@ -1030,6 +1075,37 @@ update() return + // Override attackby so we disallow trunkremoval when somethings ontop + attackby(var/obj/item/I, var/mob/user) + + if(linked != null) + return + + var/turf/T = src.loc + if(T.intact) + return // prevent interaction with T-scanner revealed pipes + + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = I + + if(W.welding) + if(W.remove_fuel(0,user)) + W:welding = 2 + playsound(src.loc, 'Welder2.ogg', 100, 1) + // check if anything changed over 2 seconds + var/turf/uloc = user.loc + var/atom/wloc = W.loc + user << "Slicing the disposal pipe." + sleep(30) + if(user.loc == uloc && wloc == W.loc) + welded() + else + user << "You must stay still while welding the pipe." + W:welding = 1 + else + user << "You need more welding fuel to cut the pipe." + return + // would transfer to next pipe segment, but we are in a trunk // if not entering from disposal bin, // transfer to linked object (outlet or bin) @@ -1091,6 +1167,7 @@ anchored = 1 var/active = 0 var/turf/target // this will be where the output objects are 'thrown' to. + var/mode = 0 New() ..() @@ -1111,13 +1188,47 @@ for(var/atom/movable/AM in H) AM.loc = src.loc AM.pipe_eject(dir) - spawn(1) + spawn(5) AM.throw_at(target, 3, 1) H.vent_gas(src.loc) del(H) return + attackby(var/obj/item/I, var/mob/user) + if(!I || !user) + return + + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode==0) + mode=1 + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You remove the screws around the power connection." + return + else if(mode==1) + mode=0 + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You attach the screws around the power connection." + return + else if(istype(I,/obj/item/weapon/weldingtool) && mode==1) + var/obj/item/weapon/weldingtool/W = I + if(W.remove_fuel(0,user)) + playsound(src.loc, 'Welder2.ogg', 100, 1) + user << "You start slicing the floorweld off the disposal outlet." + W:welding = 2 + if(do_after(user,20)) + user << "You sliced the floorweld off the disposal outlet." + var/obj/structure/disposalconstruct/C = new (src.loc) + C.ptype = 7 // 7 = outlet + C.update() + C.anchored = 1 + C.density = 1 + del(src) + W:welding = 1 + return + else + user << "You need more welding fuel to complete this task." + return diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index d61f5bac94..9f6bdfcac2 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -208,9 +208,13 @@ density = 0 icon_state = "intake" + var/c_mode = 0 interact() return + update() + return + HasEntered(AM as mob|obj) //Go straight into the chute if (istype(AM, /obj)) var/obj/O = AM @@ -254,4 +258,39 @@ if(mode == 2) // if was ready, mode = 1 // switch to charging update() - return \ No newline at end of file + return + + attackby(var/obj/item/I, var/mob/user) + if(!I || !user) + return + + if(istype(I, /obj/item/weapon/screwdriver)) + if(c_mode==0) + c_mode=1 + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You remove the screws around the power connection." + return + else if(c_mode==1) + c_mode=0 + playsound(src.loc, 'Screwdriver.ogg', 50, 1) + user << "You attach the screws around the power connection." + return + else if(istype(I,/obj/item/weapon/weldingtool) && c_mode==1) + var/obj/item/weapon/weldingtool/W = I + if(W.remove_fuel(0,user)) + playsound(src.loc, 'Welder2.ogg', 100, 1) + user << "You start slicing the floorweld off the delivery chute." + W:welding = 2 + if(do_after(user,20)) + user << "You sliced the floorweld off the delivery chute." + var/obj/structure/disposalconstruct/C = new (src.loc) + C.ptype = 8 // 8 = Delivery chute + C.update() + C.anchored = 1 + C.density = 1 + del(src) + W:welding = 1 + return + else + user << "You need more welding fuel to complete this task." + return \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 7a967f8f0d..dcee76c85b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -46,6 +46,14 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

Monday, May 28th

+

Donkie updated:

+ +
+

Saturday, May 26th

Icarus updated:

diff --git a/icons/obj/pipes/disposal.dmi b/icons/obj/pipes/disposal.dmi index a55add0998391929e61eec0184992a7364f9beb7..5901d481626a1673a0f01bc486b4392dc7156248 100644 GIT binary patch delta 13533 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 delta 12939 zcmXY11yoai*aksBMM6+UNz3@tN~d%Q3P^WJmvmmFbA*I|f;0l7q@;6{v@p7cAPl4% zw(t6V-_FkN&b`}ve)0a^c%G*;lVC5EAc++)_J6DIDR1Lp_1@mi)85qu2gmnw!p8}h zP(I4Ys%`Dhf4I3EO9oq4-%W6t{t zfL=6tooXDPWt^@4#Glb&dtZfGL%ZM)kL-edl#Aic>P7>OVb+c|8 zUe5See$;%p8gySEt@}tg!bqFfSX1RM%+jz=@$v9nZ;#J}WB}T<30Nz-D4yDW@F1ItO69?XVY5B*C5&b@Yw)-}f8 zI@jp`zq#X3>A09Yc8kyUm$rE+;~I)sEmZ{jvx~FF4oUWAY12oue`X?^spgmuaO2XCl>%T0-a{kv>BEEmfws;JC2L^}$ zsw(5b56R>_2KBLcEG(ZJJvj(T>GK<_s;2eVmIL-Be-pNzF9%RReY!dR#|}+BYSiqR zz8j}kX>DyC?m@-vASnllT=ZE9at*iy{xltrivON0Qp^1Gxv-@q>M-UW`1{m}8vcLg z|6NRfq}0^#KgkK;K~Ydxx3rK0vTo-~KDqA+{w(>daO+j*cU|=29}^H#(=ymz9{rAo zCDiOps!`L^qISxw-Z=$+zPt6g2mDFqs0MM*>Ztg>gw3VTvR{b+ao8(ccF-u7$QB&} z(f?z$`+==w&(ZJUf0mY48No*t`Zbms2%z|I-=)KZK;~sbOEw+{C;k4uu0@pKXc;Cy~;y~b=fOJlx^#7)JZHgTM0t7W`BJ?S!ttc1wJ zq8Jq4mg{JwMdzu=TTqKd+T@av%R&BQj#Mq`{`QC;+&pk)(3LHPRtt7nowYg~*8in- zd(mk*UsbUKj#Y2}tJnWQlYrnrchqCJAM^;=&UBzH#f6@yzjf5vsi&zoOml#1P~w-^ z+@gzB#D1r!7P)J4OnwuPrSN@Nb-GlJM3+f^+wWkRSuw-R<*L*gc$)Ora*2tHtCUPN zRW8f}4%7dgDux-ti#JysOLd3(n6bxBj|XYjok%(X1|gUuj?;3hfz-*k9M>o5=t}f# zdV&PvXA6b7?p=K!$PnfZ9Weh&`p2Efu-xVG12qS*N8CE1Kc;E)@9IyO*}!1m?Dle z<*CWSo35Le9GY4$XvhncGpRq)6bn33dW@)juB}VwfcU1m+xsq!bHz?Ol{vdue$I0U zMnsXqNY3~&l$B`l95j2oyd=rszk(Oigu@F&mutx{1CQglLM7T-0`|bwysA3o9d=mg z)t9;@#peCM%rA+^k}2Z0Z!yuAOjuOIRFZAu2^`~-Jfh%UDuPi{kiA;SVl~cN=Ky66wvQhryBV#$-@&$jh~_u-9ZfQS|Ng>?Kep&M z+Y_oM(4o-2q9W(yx2^vyHnyK~11LiB9JI3mF*9EWoh4ZZF$OxIQl*jQgIFMDpr;PfBhL-QVVV)x9+du8o z)2TRyVvFi08WMOTzAnVv3rw8L6n*Ej&-T}o_B!{jQwOZ5$i@+?^8>yQtk51FP_>(z z>Ko!%c^uO8v}|o&N&{Oy!90X65CW0zadbE%e)2x~T^_-wUtAJTyKvxw2Ab9F%f>`m z7&h_QE)t#uVK1D{vZ{y=uPGbnJVxrN2KW`fe0#6~aeQd-yw|F+KK>G; zLWfjP9Rx7h47IlVUcW37s2T@{zS|Ww>X4e4m!>IZ(D1sTqPPR4fsJ0ZDmT;!A>w^S z)o0VMrNpu#RLS^_cxJ$X%<*mw6*TUS4ktcI)19$nk@n^x?1gj?VzD`ZDmUO_&6&Ox zs_MTaq@ZI}%2EDVlZOvs@rfiGq4)JI%N;g+`vxz;ar)iWFR^e@9NATWrjOb$UcDY$ zCB)Ujf3syAut!r}y0BNoJ#z;08OEU$fR|LZt>21uuD1$$L`-Q@0(oS#OKiy*2yIb7_cAU#m_9Zy7F$9x@y1F z8T|D&QD6j8T*C7Mn?ZxsI%X&iZJK@tV|lBi^@QV7a}Bm@7PFA2^t40p8h8aEoYE(~YNBLKX0va}yBmI7)M_$pa2o!!|dwT^sguS)wK7 zIFstuA^l$8%2TZCM%_{;$KD@lS&>1e){+UI@{!)2xngA}aS{U$;}ju1*u(m&gnsM_ z=1^J)0m0+~=leoI#bem8btMK~92`a*6?vJrfO%mm)xndeeyg~sEo$s_$JNpoPXtK= zKyT!LfAV82XtWjEu<$7>YkeMFS%5?{@v(+I{#+eFma=C467WhB;DxZU1mAot@D!tm zF-W@z;?+HK84&MJWaucB-vTR(7hWbFx2H&tvt8;?M#ixR&jL)k`8JA!kmOf97LeyJ zBo!c$AtOBxIKDadUAYY$9olRpvFJ04mgH3s^4rG^$+frUw-MZaz4;ZMwsE+aKti!OP2cpmjnh{V>Ak3oi) z?|pnAIo>$%u%11Z=$hY2q6QVW}c8ZqsDhkR%8^Nh`lz zW`T%Lkv2U&ohUHZa5|)LYVZBouE9=od;X&uxhRrMGrzHxPj(7Ff4+J#vAx<%qIG|g zRY5gMV$8tQfNA)B%0yDeYhK_@Dx2dit|r7XM0b(drC!8+y;lLX60qO4S)A>{to|rP zK*pSf;bR-mhyCxa`x0>PDCqsn%$#S$a&@}Ba0q-vX91hNhPmDsX4hy{rmVMn?RhV> z^N5jEd3%*8MkuSfa$DW=;!23V^`EGm}nyfb#yc-?<#0kI|jopO5{S$(7*! zl%0*5)-&rnZjDoYE4+Xe82+Q-Id1s9wN{Y~|Dru{%g;A~xlF6f?@1ybagx@Z$f_V` zM|4LIuCJ|?8hJ>Z0|2Whu<$sBj3ZY4r7HJXVjo$=OG1mx-@S`uB!b2fBi%)UZ$tvT z_uK8_FMo&@+rAq({wxxIAQ1&FS8U*pYJpBdsuT%Up7o30n8S!+^e%6?N9)YZjUh&S1n z{N9+sx$Y@aF2hgN9Xfdfl}go)I(vn+xnKw>}(k#!uYx3 zL!`T8ZULZ_2n$ecb-xv-pm?h=+WR)jg}qoet7#fx7bYb5#XD-*dTc0^fV^_6Aoba6 zCFOoL6~(tUDofEJHptPBY;v_+7N6ci`qw~bv21D&?mM&C;)N%O!s_MlEBA#*zlNdw zl}qHaY2u&3*v1tc!^%_(DL;#OIZWNId=C&V(Ez?!2D?1b(;t(Dqm6tcJ* zlNN@#(HSFUl&O?xQrF6MvG08kx(I*PSn-l6@N1SUK>99%Lp&=;D-x<3=0!TxhB+lp z#-(2*N*s+nBW!t-|B>>rTE}5^K6i*D-jpHMZ$&UsXgzBnZXU*6Bdc zSAdSWrR{^FV`eh2XrQgBm%qJeu+0XX>D|3^Qb0AAAXp)&s4;Q z_|YDO*(4L%QZaWB?3&+suG0oXi8NIXC$lKcw%Cppqg;QQ{fg~8=J=2HY&qwUtrGnn z4R5S$r>TP3G{@0rerm(O)p&?Vwt~N z?EhCfL6gMe-ZDHiNj+3c@Xh@;go0heX(z;ZS!nlI1=({PXpD4}&%&1>%dba3WERVk zVDd;d*-Azc_Mx|qVGQA|Xp?W-*+!tKy z4byQx*-!-*fPr_%9XKC06XJzeYU(_Op$%!1NG9Fic#RBZm?BP%Np@FWH!j!+(0~uy z_gU^X!PJfFfM(~b9=etD%fm$AXFbx`V?v*HCHD~Xpt?plEGZNk8;$xT0<&*i*ih(F zE78cS?>Y{m+kTVw_)&tlq{e68WUBf#G^vzbut)#B*)FzfHp0&Fz||rrDLbJPT6u0= z-Qc0#4FOsG=SgTWUzj}6aE>>9luL=aW_q0=Hwl9j(7KJw8oqkA;M!;!Xz39S68g@CfcLmgMh3SG5g62Z{2d7hF5O=xKbJ z_q<_If*rJS{!e6m`ABk7b~1aHe*!INYR{rIMImLJ)Sl?;&+scJMc<3r4kC3qrwU`0|?J``7ZC0P(2l)z}vp2*B->N|VCw1wq!&JcA?e3_RyY`r;MZ^EiO z`1$#}qNGlkOoM)>jr2RVOM|1M04TU81(;6Q?2Drde7WvPNlTBBk}@E?Bp-SRu8_0lkGbghsHKGz zY~N4l32kS1r087eNfbz0*L{i?TB;7Gguk$zn0KG!Zzi8Sa`59ioCs7hZ`$#n2 zJcY^pm#4vGp`N=Id^uG>&Dzf9OISg4*?@@0=D#3ro8uShDD>mQ_|J|?$Fe$0Z|}&_ zURL{Bsi!Mmk^!iXkB|>y7U(rvedB3e#M}lC3!sI{1g*hWI)?C1|E6r!4|8tDj7gr; zVfP5Jv_!^WW2cXFY`(4kZpI;~$cNU!a>1?B!xX(HxW2?g5WaWbt$ zKPuNg3~v-5!JE|Gbu3xv>5Rp5=36&zUxHYblY36Z%5~j|*1Tn_F9ZYsSbzJ(cjAj`oAQAGfGASr0zr6v~Uxz+f(33dTDTn$C%z4L{7t+LM!WWPwlDb(V&0WAUeuZlJYYv#FQsCq6 zd1r5L+o$X4DyL8~(HoC_=U`yspH+*|CFpn8M7()&mlRlgusJMU@@Rzq=DpSMpzO8# zgnHBQXBNir&T|Q}JJLi%`ArsUvQ@${WRIpcSbL!BnYKA|b@D1WVEHZVPKUadYI7kS zI|lx!pOL*Jlb6?wV~ozqSPZr+Onr6YUned}hjb*#8TpbnEJM`wVoX8~qM+R0^*}a1 zeXnU|+xuQOnKY4`Bq^S+x@i7PaZHka@!7^NE^y#{#MyMFuP7UdLfwXseduWI-Hd$} zeL0BlyxTlK`fDWJ`E!>?VnwO>?*$4<8wz~(B5>ONMEO-Gq3k{#2Ut3^?6(I@E#%?k z_-#_JCtP+|1g>}-8WSSFC*zEr-wVt=#q21cT*G;aaHisU$HQgJw}6<_4iNa{-eQiA z7B^YfrCmACUbIyvo3)cCllQ)X7SE(dB|Vb^mr)23>Dg>zBs%$*OrD#LiKsgS5Z}K! zc$_g{U{p)kf%0!MjYdcL%7jxP!rkMV1Z5U;7@eFb&GVbGE`OSOji- zx7+UcJqrM@;x#L8XW=V&V&-(&;tsH1YR{ zho}{gG0BWN?0(RG0P1$dH&NW#D0o+7wCTZbL*Qi&m6Zm}lbfOU+ys!2?mWi>JI0g1 zw{Twz`?azeOF~yOr#aj=>MlM#Q!Ab3UK7hhfu!T8^e@W%LWs;cYKbv0rnrMA-1vPw zhz6uE5|uhCq!dGo{v|lZ-F``@1ZiIwEf}nB>)GhW8XLR$x(@@x10B7_&lf#N;kpkv z*f=>kKl|MZcmX;>d8T3eVy`^sJ=w*2-NU#1Mpp1>6O^Nr@3q+n^w6CkFS^VyA-{_h zVwo3?ZnB9VXsN1|O=UH`h#`xVpkMcW3PU|20MS9ygN$!#N1D0T)v{vxdCFIII$_m$ zzrgVwrJz>8!-j8B-F3;3$ordMp~K=Fk4PqG>y^d`AV?D8d|#W2dd@sX6F6)=3^%{cp8u)Jt9MW?5~?%VXxMWx;Uo^tb`>4SaXg

lNc*l*fSukm|nMHxSnO}zntxtQe1RcQ&wqo4>8({DJDktKVZILbQnlu z(^59>FIxIb)+ny$jLit$`myMVdT0mlgw{=zB5;xO&ryyxq?m{AKW{mkF_0m>G*#Vq zFWhzY^qe)?xAC|Ad0=QQUBU8l$D7^R2iAVTjGMr+7;9)*8MOQn{IS+2cmLsH19`dN z`mQI=uci_^1wJ#WQ3@jR5OTC&4w5+RrO2Q=MloP7e6j4!OJJd9b^d-A()lUi!z@{; z<;|-44SHd7KW_HTJ)91?1;0AJHL>)3XqcDU*+hbvRixLtFM;eKe>6tgNi+m3 zK3yM#=9M{wll`-uonqekv=aeAbJZEmWD;4CMV4_5#O2?U6T>&9xKdmdsdT=>Vxp${ zF+DG+$ag)4{i2s$3Kz0j-176x@Y7_ZK~XAK6|sTA9z~xs4nesZgt%?cz-V(zd}BLF zVr;J7F~_9k%&i9##yS{HWhT-78@Qy!S5q67xZXAMIBswAoTm@=-w++ffr)R}BqXJD z?L3!#>El3RMQk8u?e8BsxJ|9b{JgrZx_f;nB%$XzC*beeWyf`kdOsHAghrNpmZsx7 zdjH{$??G!IhJ-x77dpP#x^(P;Nnsx2-d0m4e#E|G9;DW@o~iIe_X;p~8od!;x#Vf_ z*#m34mcPvpn4B+Hc6YgimjgqbL|%TI{0m3rCo~jA7_!jE@Mkd+J4+eTmgVOUMM9X| z3WpcpMtP1~IosT0Vg@Sy}hPK(a?g0>g0+DtNvW zEub|WOJeHmXLPAD|EN!7XSMxz-9bs$-{sD#HLoS^Oj8p5@Kj+~;f*TFf5bV6Hh?@D zF;`LE9Mk=y;pB~Kz?D#gj@}#H-=Ct~1o?34Wso!lGPE@8NFe2?(9P+pF9)N{6pflK z-kYQ>5b)Ajzf^DR){NwjOayLF8G%^L#%oOY>%eu2UtWD~<0b!b8jmT72r;L!-m`b; zP#W+Eq=ZvyiG4a|24q7$*_x<0+5ego($3P{s~+SoD=Yl@Vu-Kzh18E3u*Dqr`alr> z{*9M{i4KI=5hx!PfmxA~A@iX3|F&Pd1bc1_6r=vRV&Db~1L&9O8R;Cup=Dezv)!wL z5<_Y$_$q4}%fA_fJUCi~1v=Wi`Ik=>G+%0KJ+AZbh0lDtcv2Veb5E2P@IfU&bqdN- zPJ?rcBEE}|G;q~0sXM@h%QhP%u#C~4GQU_MZvdXj37UTxkvcyO3CC4Xv8`?9AMd$< zk$QY^i{>!rvb!~}0`awo=#Vz&Ic@Qg=!(k96xMsMB~O2`(I<)Tw|-<*KL|_8oD)6U zZG(CKQbN|>4mc*HrhL5@fYgcUJXn9A6qBFyLlRjtA^2ML10|od@JO|E-_AO-O3M2! z;0wd1t@Q0&F$%a|SlR5r4k%?k^)KEoVVp?oN>+!MMjt+e63c%wv9s5d~izH_uF?&_q|94@RynTPU0J z74OSwQU;zBFtlx80Ps@J`o_Xd0dN+l(|xSSdE_Y%cDp~?kTrp4UP(N{EANvSi8URh zRXMJ1F?YwBP2Q-IN09G}xjiU%bYxXg&7tCxitap@d?rTmbM%!U&BKL^JEdh=NR8ZT zd*1$<C)G3^DO0*1g8+0#CoOOwS|)bJHVHySta=n z#6npSoq#9u(q27__2yFhwfpTeI-F{%kVA|%Q#cz1Z2?!+S0+Q(6DEFy;=4U@SHy&9 z7+m*2a^b~GS1Y|C`qsAUBHlj59;yPtvP#IqYa#qCF$mm%fmm5dE|!^P_)#o#56*49 zl#b2>!>oqAeb&*&$JZ_nFaV(+YP?)`K&faIU%X;QyHyv*RlmV(1uger)1@7QX3L$! z!=)bz;pY}}s5;W|z7%tr(pQWp?M&!!!h_v6LB6$#(PC@gAJ6`L$AXsPvCRhuns8_l z=wbN-gOebt!7;43TB_T-N1{o&>LSpc9BRl>*4(gmUY5^wKUTsP5P>8WaTuh$c`Rzk zal{3ZgnwrRq@Ci|wo7uKscFYbu+WnzeF(&|qdGiSwWeN8iL%h~xQ^)9^uHMp_YDK9q5WK6X*4 zSF=7}8uA8t+N7eG!kWP)_X2V7^Tn9kf^(zbh=Ag+dduo|m{6p(fUGiA5tB>3TQ-%1 z8t?9pj)|nrSPSCDmEe}N7nP5}jOQ!UdvfygE-=<~c;u4Alu*fWOsu1KVc|qtRwvJS zou_<+j6p@$mW`*)Pu@gS8W*u%-sag(QB$yGoUO~vHbD~ zUON0}t?4Z-Lv>j#YnfUq6OENG_Il-Y*0Vo>1CyCkRB3B{@L2DK26Hb-25ATWKj)bX zKmfhw;yV#K)3=cs?0824MU{^YG>w~yt1>&de*49b!yY2I9aLUF8 z2JifA9>SSaCWq6ROrN-3m{h;=4Yzg~^ZKRJ=O$v^w!*HWXy*)hOap)Dr>UhggOR@I zB6Tq(ct^}|vr4Fv5?-dYq2Sl$${JG-c%Z`T44vnf1`qRm)~wnUt~-d!6m2{NXlkmf zJ5Npo0?v13R8_KyeRGsFDY$N!lMkpM=xb5Q1;tg?!6Me;~J zc7oI2E0^?#=U5EZJhA{^i72&}-q_R7v?-|E~*$#t%&XG##Sz8s(pS zSMh5{1f+Iu7v;0O4~7%D&vE$_t+L3RZ1dG}Y>2i6dWFMKekaH)-6w)7{DvR5MCWI3 zObpVk4G^TjMbEHMKDZFIKp8c$(l6EIVrs<8BCcZ~%#J1e>wrgbi9hXY5f^!@y7u+f z4E{*l+@SO@LQ<`?yN>0YLi084Fp1Z*b_G=3iaoSC3r`Oe9m75OAf6_3pRJwIV+DM6 zv%QvT$LI82lSj-dx_r}n0w!eHv@f6P3$KZ|Nwdw&+OeQLOx30Q?*#6l{e*}qGixaVO{93sHgg?R zc4f@+w1|>Z%@$H|`Yr95idHa~TwDzaUE|kgj9lvKx znD>1*B_W!J(C7@9nbpyLL=;&zz$btbVy!NVA+pD_XCs?cl=L$B-rhbs%-az-c!}Lx z!Ej%n?K!%P@!ZL%t4)qC~{xQ1kI)7c%#HFxoh^w$!TFPkX6TDhLfFv!(}b zidY-Wh>X{(7dcZbK3lT%Bhr|9q96Z--dVuhwa3fZ75yHdon&leXo`>q=UmGrBe?$+ zO^_b7A(l=Dy{rB4<7ZKi$O$|7oUKCpSjx!Oif@kkW(=B?Y-luk(H{-Z77BfiIM4%5 z_2@+0I{$WvHeyvdz*@imVG__M!hJfY zWW4ce5dV)Y`|qAyu4j|#VkYbGbAN5^U-iuDiq`f+P?dgGxCF1?Uj5YDwEU%SynZ;; zR{wx_;lC|8d*1ol?`?M`cAxx4&{TkCexN?DS7JaKgN+zE7o64DD|^brnTm@YDVCYxOcN$N5Y`2pvs6P9-Pd2>eRU-()wSc@|-OL_520o*Bb6#>x z*C~6uC0IDT%laX*>9N2%R2SCB-e6o_kR4c{E2zj(R{OQ%MC`>2A$e2uQyz!V}lHN z`}W1($wwfKY+0RCT_@zw>#OmF9r68rnxzC!Rjaq<)XhQnI`b9~N6rmD8KW1Wjfe?- z&>OiN3z_H&BNX*N`D5d}mf%~!J$LjU+WLb{KT^k@^r`*%jKEQESQpvKc|YsSKd93o z`$1eB7Y{eTwDfBOU1e$zp_!{6{`}xrjY>ynYu8Ne)yHd~0O!p66!#(nyW#QfoqsJy z& znHLTYk;FeS0XZzMa?hqyKtofL(pp8<;0bv8htvDqmWgTGP8b3YaPjWI1^rCl=sX^@ z3rC4mkaEpcm6g>TQ$$GFmr+-c#uSvQXhQyJ?qUFS8X0abo}>BgDNvA7?~UyV!I<~{ ztgyLsJz*sZ{kq+>1N%~Y`Qt~ijBW^e)^5)G58v+UULrgO*W&teVN-m_zdM0$XJ;Pm z8St?IZ9?`&w_*Qk^62>s`aa--bZg@cDZQ9=adGj*j$ViV1SC=F3QGIFwd2gOLnyr` z=mG#0FO!qZ3f_{M5GJ||#&|cn#%~c%)QM&=FkL~L9HGV|IEr@Vg23!*G6OtdHwf1o z#F#qFhw~UHpmWOEsxu_-hIEe?Aou?93!;Ky42T(ObQQn88N2%TVyT7NjTLB=I30=K z$%GOw4K@*bk=SP|bxi${bx;9CWdqC&9O@dSqo(J{5b!tzNM~gatzjk@Zj)z|STMKJ z7h$=>{pj&LxqmfEq5Q==K10n-4ny^L>=(NsV*8=Wz!fvGL&a%ImE68*relw(!UCppPR`cgP2xGb&YFzTgFjfGnu23pw?6$IE*PgUF5{8%3b0{Rf*$5jFGWH3FjS7L({4D z^N(774UIFz^SEIe@j9-5^JcTyj;3r;hjn#6dgy3Wxz$7xOy+j|!DyDeV@}L_BV=W+ z=?*`m%pbyDcli|7hM$U^nA_`b*)HZ~mG*!Fu3xe%T5dk@CaJc}jjiHb?=UneE$wmb zHqWGJ80sz;w?TJ?mY|_?F3lV-jRoZEPRgLk_izhkNaRVgWQsu1v`bBET|8gbnp>~A zh^z>YJDuyog(f6Fo6nQ3KBgOo34iIIY>%e0bTBrn6^fgEd=>;OAg~H@oX(jyz^T|j z@{pPOYuO$6e;^=5e63AsAe&Q6JaYxr5wK6(lYu+ba^-P3(iK2X^g!9haCv!Q*we{F zx7Lu~Y4y2rxBZ&G0`c+P7n$!@{JoKH9CjP;FJcBIi?w&Gl&8pLs&B8cKcX0(m|ve@ z>ndqfm|sF%GQZfCtlW}#yV(G~+Jviv?70H=Ss-*8idNP|UVT2%nAgqj-n2FII~7n! z{z#0ZeO&4BkiP*B(P{oE1gg&fJ81K`ZMwb{w4ADiDv zp7Q-c94LQ5iF`h!Ds_z5`hjXk8>DOM3RuzO+QE+|^6eaDud)WcMj8~oTJ^NG2+mpi%5&!#(g@TO3n1)~t_Pj49o z3o1Ij=;@fqw5l6w<)^R@;d!NSS(9|vTnd*?p^M4L)6;O~Ql1X%&Q=Rn+{PJHKAf$p zYvV+b&_4&MlCR(TfF-g*km6<};zJ~{-t$XOc1gueyKAHE?Hw$22{&hP-EASMbgl11 zL7AO$v?FDEK{}d!*v;Z!Qqdu08C`oITP!}cuv&!dVm2$lmR_&ZY zBKyM|CB{~Y(F_y>xH79&@!YOlN1+u^<&={xCoI1v85t0MmK%{osi3kP-?nsyeJy=! zFV}dTewG`Y3$|{U1+$%7pv8*)?!hP`+f+NAAJneI@)3jS5h_#g=ULIlVLyYCpoHTi`|C%MOk>hmiAwY#)oXw>yvGMKm5cJ10*=jsqxT6vOZYwFB@zud z+iiej=f2y5#|!+=`nB%l>}g;-aGZ;w3-2+LxRo?UqAs^`8?S*Q)+HAoqZz;oYZkO8 z08*m=X5jY}!2Ht2k-%J_K#j+F2R0~_ado!Fs&2vAH0X4?u@AFvPUvdeYL9PjW78Li zInHH3YPhB@woSmLJJfRcBavgD*Cv!0Z2bMN%3N?j{$mr&D!ag3TY&MCGlYxl_}kl@ zb7HWV2n6$8)6O9{w}io50TnX6ae0#9OVZTY|qW`%=fcGr)_6bEB@b zN@@M;j!B28JsRv@1J>1cR~~11ZdU7YCy94;7^pwpi=ro7{gSYk_Hd!=|8AKRc2Hhm aajC<-$#w6&YS_gAUn&Y3@|CjYq5lJjyu>U3