From 005de27e651ca16cae6f21559634e900c278d292 Mon Sep 17 00:00:00 2001 From: Geeves Date: Tue, 22 Dec 2020 16:45:25 +0200 Subject: [PATCH] Sculpting Blocks (#10775) --- code/modules/mining/mine_items.dm | 212 ++++++++++++++------- code/modules/multiz/structures.dm | 35 +++- html/changelogs/geeves-sculpting_block.yml | 8 + icons/obj/contained_items/tools/drills.dmi | Bin 4806 -> 5072 bytes icons/obj/mining.dmi | Bin 35333 -> 36060 bytes 5 files changed, 182 insertions(+), 73 deletions(-) create mode 100644 html/changelogs/geeves-sculpting_block.yml diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index de28d9051a7..d9d5be2f1c3 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -1144,13 +1144,14 @@ var/list/total_extraction_beacons = list() /******************************Sculpting*******************************/ /obj/item/autochisel name = "auto-chisel" + desc = "With an integrated AI chip and hair-trigger precision, this baby makes sculpting almost automatic!" icon = 'icons/obj/contained_items/tools/drills.dmi' - icon_state = "jackhammer" + icon_state = "chisel" item_state = "jackhammer" contained_sprite = TRUE origin_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2) - desc = "With an integrated AI chip and hair-trigger precision, this baby makes sculpting almost automatic!" +#define TRUE_QDEL 3 /obj/structure/sculpting_block name = "sculpting block" desc = "A finely chiselled sculpting block, it is ready to be your canvas." @@ -1159,89 +1160,162 @@ var/list/total_extraction_beacons = list() density = TRUE opacity = TRUE anchored = FALSE - obj_flags = OBJ_FLAG_ROTATABLE var/sculpted = FALSE var/mob/living/T var/times_carved = 0 - var/last_struck = 0 + var/busy_sculpting = FALSE -/obj/structure/sculpting_block/attackby(obj/item/C as obj, mob/user as mob) +/obj/structure/sculpting_block/attackby(obj/item/C, mob/user) + if(C.iswrench()) + visible_message("[user] starts to [anchored ? "un" : ""]anchor \the [src].", SPAN_NOTICE("You start to [anchored ? "un" : ""]anchor \the [src].")) + if(do_after(user, 5 SECONDS, TRUE)) + playsound(src.loc, C.usesound, 100, 1) + anchored = !anchored - if (C.iswrench()) - playsound(src.loc, C.usesound, 100, 1) - to_chat(user, "You [anchored ? "un" : ""]anchor the [name].") - anchored = !anchored + else if(istype(C, /obj/item/autochisel)) + if(sculpted) + to_chat(user, SPAN_WARNING("\The [src] has already been sculpted!")) + return + if(busy_sculpting) + to_chat(user, SPAN_WARNING("Someone's already busy sculpting \the [src]!")) + return - if(istype(C, /obj/item/autochisel)) - if(!sculpted) - if(last_struck) - return + busy_sculpting = TRUE + + var/choice = input(user, "What would you like to sculpt?", "Sculpting Options") as null|anything in list("Sculpture", "Ladder") + if(!choice) + busy_sculpting = FALSE + return + choice = lowertext(choice) + var/result = sculpture_options(choice, user) + if(!result) + busy_sculpting = FALSE + return + + user.visible_message(SPAN_NOTICE("\The [user] begins sculpting."), SPAN_NOTICE("You begin sculpting.")) + + if(prob(25)) + playsound(loc, 'sound/items/screwdriver.ogg', 20, TRUE) + else + playsound(loc, /decl/sound_category/pickaxe_sound, 20, TRUE) + + var/successfully_sculpted = FALSE + while(do_after(user, 2 SECONDS) && sculpture_process_check(choice, user)) + if(times_carved <= 9) + times_carved++ + playsound(loc, /decl/sound_category/pickaxe_sound, 20, TRUE) + continue + successfully_sculpted = TRUE + break + + busy_sculpting = FALSE + + if(!successfully_sculpted) + return + + user.visible_message(SPAN_NOTICE("\The [user] finishes sculpting their magnum opus!"), SPAN_NOTICE("You finish sculpting a masterpiece.")) + sculpted = finish_sculpture(choice, user) + if(sculpted == TRUE_QDEL) + qdel(src) + +/obj/structure/sculpting_block/proc/sculpture_options(var/choice, var/mob/user) + switch(choice) + if("sculpture") + var/mob/living/old_T + if(T) + old_T = T + + var/list/choices = list() + for(var/mob/living/M in view(7,user)) + choices += M + T = input(user, "Who do you wish to sculpt?", "Sculpt Options") as null|anything in choices if(!T) - var/list/choices = list() - for(var/mob/living/M in view(7,user)) - choices += M - T = input(user,"Who do you wish to sculpt?") as null|anything in choices - if(!T) - to_chat(user, SPAN_NOTICE("You decide against sculpting for now.")) - user.visible_message(SPAN_NOTICE("\The [user] begins sculpting."), - SPAN_NOTICE("You begin sculpting.")) - - var/sculpting_coefficient = get_dist(user,T) - if(sculpting_coefficient <= 0) - sculpting_coefficient = 1 + to_chat(user, SPAN_NOTICE("You decide against sculpting for now.")) + return FALSE + var/sculpting_coefficient = max(get_dist(user, T), 1) if(sculpting_coefficient >= 7) to_chat(user, SPAN_WARNING("You hardly remember what \the [T] really looks like! Bah!")) T = null + return - user.visible_message(SPAN_NOTICE("\The [user] carves away at the sculpting block!"), - SPAN_NOTICE("You continue sculpting.")) + if(old_T && T != old_T) + times_carved = 0 - if(prob(25)) - playsound(user, 'sound/items/screwdriver.ogg', 20, TRUE) + return TRUE + if("ladder") + var/turf/above = GET_ABOVE(src) + if(!above) + to_chat(user, SPAN_WARNING("There is nothing above you to make a ladder towards.")) + return FALSE + if(!isopenturf(above)) + to_chat(user, SPAN_WARNING("The tile above you isn't open and can't accomodate a ladder.")) + return FALSE + return TRUE + +/obj/structure/sculpting_block/proc/sculpture_process_check(var/choice, var/mob/user) + switch(choice) + if("sculpture") + if(!QDELETED(T) && get_dist(user, T) < 8) + return TRUE + return FALSE + if("ladder") + var/turf/above = GET_ABOVE(src) + if(!above) + to_chat(user, SPAN_WARNING("There is nothing above you to make a ladder towards.")) + return FALSE + if(!isopenturf(above)) + to_chat(user, SPAN_WARNING("The tile above you isn't open and can't accomodate a ladder.")) + return FALSE + return TRUE + +/obj/structure/sculpting_block/proc/finish_sculpture(var/choice, var/mob/user) + switch(choice) + if("sculpture") + appearance = T + color = list( // for anyone interested, this is called a color matrix + 0.35, 0.3, 0.25, + 0.35, 0.3, 0.25, + 0.35, 0.3, 0.25 + ) + pixel_y += 8 + + var/image/pedestal_underlay = image('icons/obj/mining.dmi', icon_state = "pedestal") + pedestal_underlay.appearance_flags = RESET_COLOR + pedestal_underlay.pixel_y -= 8 + underlays += pedestal_underlay + + obj_flags = OBJ_FLAG_ROTATABLE + + var/title = sanitize(input(usr, "If you would like to name your art, do so here.", "Christen Your Sculpture", "") as text|null) + if(title) + name = title else - playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, TRUE) - spawn(3) - playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, TRUE) - spawn(3) - playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, TRUE) + name = T.name - last_struck = 1 - if(do_after(user,(20))) - last_struck = 0 - if(times_carved <= 9) - times_carved += 1 - if(times_carved < 1) - to_chat(user, SPAN_NOTICE("You review your work and see there is more to do.")) - return - else - sculpted = TRUE - user.visible_message(SPAN_NOTICE("\The [user] finishes sculpting their magnum opus!"), - SPAN_NOTICE("You finish sculpting a masterpiece.")) - src.appearance = T - src.color = list( - 0.35, 0.3, 0.25, - 0.35, 0.3, 0.25, - 0.35, 0.3, 0.25 - ) - src.pixel_y += 8 - var/image/pedestal_underlay = image('icons/obj/mining.dmi', icon_state = "pedestal") - pedestal_underlay.appearance_flags = RESET_COLOR - pedestal_underlay.pixel_y -= 8 - src.underlays += pedestal_underlay - var/title = sanitize(input(usr, "If you would like to name your art, do so here.", "Christen Your Sculpture", "") as text|null) - if(title) - name = title - else - name = "*[T.name]*" - var/legend = sanitize(input(usr, "If you would like to describe your art, do so here.", "Story Your Sculpture", "") as message|null) - if(legend) - desc = legend - else - desc = "This is a sculpture of [T.name]. All craftsmanship is of the highest quality. It is decorated with rock and more rock. It is covered with rock. On the item is an image of a rock. The rock is [T.name]." + var/legend = sanitize(input(usr, "If you would like to describe your art, do so here.", "Story Your Sculpture", "") as message|null) + if(legend) + desc = legend else - last_struck = 0 - return + desc = "This is a sculpture of [T.name]. All craftsmanship is of the highest quality. It is decorated with rock and more rock. It is covered with rock. On the item is an image of a rock. The rock is [T.name]." + + T = null // null T out, we don't need the ref to them anymore + + return TRUE + if("ladder") + var/turf/above = GET_ABOVE(src) + if(!above) + to_chat(user, SPAN_WARNING("There is nothing above you to make a ladder towards.")) + return FALSE + if(!isopenturf(above)) + to_chat(user, SPAN_WARNING("The tile above you isn't open and can't accomodate a ladder.")) + return FALSE + + new /obj/structure/ladder/up/mining(get_turf(src)) + new /obj/structure/ladder/mining(above) + return TRUE_QDEL + +#undef TRUE_QDEL /******************************Gains Boroughs*******************************/ diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index 0d5dd22765a..2854d69b934 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -17,7 +17,18 @@ var/base_icon = "ladder" var/const/climb_time = 2 SECONDS - var/static/list/climbsounds = list('sound/effects/ladder1.ogg','sound/effects/ladder2.ogg','sound/effects/ladder3.ogg','sound/effects/ladder4.ogg') + var/list/climbsounds = list('sound/effects/ladder1.ogg','sound/effects/ladder2.ogg','sound/effects/ladder3.ogg','sound/effects/ladder4.ogg') + var/climb_sound_vol = 50 + var/climb_sound_vary = FALSE + + var/list/destroy_tools + +/obj/structure/ladder/mining + icon = 'icons/obj/mining.dmi' + climbsounds = list('sound/effects/stonedoor_openclose.ogg') + climb_sound_vol = 30 + climb_sound_vary = TRUE + destroy_tools = list(/obj/item/pickaxe, /obj/item/gun/energy/plasmacutter) /obj/structure/ladder/Initialize() . = ..() @@ -42,7 +53,14 @@ target_up = null return ..() -/obj/structure/ladder/attackby(obj/item/C as obj, mob/user as mob) +/obj/structure/ladder/attackby(obj/item/C, mob/user) + if(LAZYLEN(destroy_tools)) + if(is_type_in_list(C, destroy_tools)) + user.visible_message("[user] starts breaking down \the [src] with \the [C]!", SPAN_NOTICE("You start breaking down \the [src] with \the [C].")) + if(do_after(user, 10 SECONDS, TRUE)) + user.visible_message("[user] breaks down \the [src] with \the [C]!", SPAN_NOTICE("You break down \the [src] with \the [C].")) + qdel(src) + return attack_hand(user) /obj/structure/ladder/attack_robot(mob/user) @@ -130,6 +148,8 @@ return TRUE /obj/structure/ladder/proc/climbLadder(var/mob/M, var/target_ladder) + if(!target_ladder) + return var/turf/T = get_turf(target_ladder) var/turf/LAD = get_turf(src) var/direction = UP @@ -146,8 +166,8 @@ if(!A.CanPass(M, M.loc, 1.5, 0)) to_chat(M, "\The [A] is blocking \the [src].") return FALSE - playsound(src, pick(climbsounds), 50) - playsound(target_ladder, pick(climbsounds), 50) + playsound(src, pick(climbsounds), climb_sound_vol, climb_sound_vary) + playsound(target_ladder, pick(climbsounds), climb_sound_vol, climb_sound_vary) var/obj/item/grab/G = M.l_hand if (!istype(G)) G = M.r_hand @@ -165,6 +185,13 @@ allowed_directions = UP icon_state = "ladder10" +/obj/structure/ladder/up/mining + icon = 'icons/obj/mining.dmi' + climbsounds = list('sound/effects/stonedoor_openclose.ogg') + climb_sound_vol = 30 + climb_sound_vary = TRUE + destroy_tools = list(/obj/item/pickaxe, /obj/item/gun/energy/plasmacutter) + /obj/structure/ladder/updown allowed_directions = UP|DOWN icon_state = "ladder11" diff --git a/html/changelogs/geeves-sculpting_block.yml b/html/changelogs/geeves-sculpting_block.yml new file mode 100644 index 00000000000..61634943112 --- /dev/null +++ b/html/changelogs/geeves-sculpting_block.yml @@ -0,0 +1,8 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Refactored sculpting block code, it should work a bit nicer now." + - rscadd: "You can now turn sculpting blocks into ladders, but only upwards. This ladder can be knocked out with a pickaxe or a plasma cutter." + - tweak: "Anchoring or unanchoring a sculpting block now takes 5 seconds." \ No newline at end of file diff --git a/icons/obj/contained_items/tools/drills.dmi b/icons/obj/contained_items/tools/drills.dmi index dc50037374349b51bf94b867e0d86930e0dd36a5..4199e794a2e7393b51183a29efeccf9aee63f3dc 100644 GIT binary patch literal 5072 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 F@n6>elDq%_ literal 4806 zcmcIoXH-+mw?6>{3^kxaAT&{F3P_VCT|lIRA~jSA(tC$sK@b5EkWQ%5L3(dOsDczj zL`swv0Rxu~p}pLD*Lv&!*1PY+{qR2QGjsOL?6rS$_MZ9e6RoeSK?i070{}pGUsKJH z)c*KWs3}QLwp&kslA7)yb82QuJ>$UPhp`u%@ zfR<;j34itdk-8h7Sj~ctgws+LZcTzV+L^`7!KIsbr^xj;4|kNm=` z_DiF->kEgp1{yTrcNrbCS^M*bS6?c#DRt|<7IJd$Kh_A^m^F4RldQmUl1EN4`puQv zO?h$eWb)iD4&|ba7mJs9UzHuv&FK0-*6f4hxVPr;MODnN74%MsR-FCob9O`iHQ07( zlDpQ-BFb2z$O`}Y$z^J#(O0Wg|Z)6Z};Dj**Tm|3&x*uL?{7j z1^r@kB1nXQ9S|*H`wwE4Fx*QX8oIDpU47wz>#pDDgyE3r_h5|%xdkdBQB4}AdlcZW z$DpcNN9|3q8`!R5)yR|`-{1Ffe)-wtYVZ8%@d$p{n%HL5&B#=Ur=}o#a+s;hx1dpP z43b^;i?Ki01XIAeEU2MMdAqQgj(th-kl=$&|7$c@bW6(x=CJ&B4!whYGQi5L0|tzp z{$ca|Hb3k;SiH1eyAQS2XJ2k^IQV|T>ZAV+5Ze1)hya^{s#|f z;cOcP(yh_lI8Ywp>TJgt4V0&f(w6%-Uy&DO^1llM|C}ZUoveL^%A3O(xQWoQH2X+i z&-|P=&Tu&YC9;z+h|{rxRUhkf%?D-^bBw&His{Y$eV>1T#{al$4v+6EGr`9OMCl~D z?2@lY89eXiKC?}XnADr1iG2IMCg~W|584&pP7|K?ULy1k+q=CvhkQe9B{L=GTmZo| ze0F1S6tP^VO9bPLoJZQMl#kS(cv>%p#)Z`tT<0LIEq~n_$_tA;Dd+b$8qgWDpZp+3 z#|@+Jk4tJsotE7YgsfEOkUo&D3HOgwbqW5haOOx*ukbQl8rCN*y6Jvxux=~7l?`pd?g3MYms zF4j+J%}$nO1_HlX**v%KAOgudneVlE9rTn66UoJRZB->YtHY zv(x>xXx6P-h|$BsyA{pH$)J+UxW9pOKN{gj-5JC3J#}{8@^KgGxI`_z6hc!?Kh5UV zidF}v%l|SqN?@=*I}=wV|1RUR<%gCPnjHtdP+>j%LEfe)&7aA^@&1FqY*y2XUrfaE zaPz`&44#=MJaNQMQea2X5njdxBE7Zn%Qvku+zw#hSa@F#55K}yCbH~MlFAN!9%)Uz_3@Yz+u%gj;X^T0)i+WAK%ZYV=U z_@I_z(yqwDa$^h2`WhoGr6=2-Q)hx~Y!HOhudW=O%0jIMnHRQ%Y89Sd7dq9S;I(e+ zSq#6?@z@~J1Vvl)`zs3P^;+-2ZvZ5;?wY)|FM!@pG2H8UcahuRw&1Fcex7YVz~t2X zFD1$7uu68RbD7#RvHl%Af!@`CW^@N?xU<%06tNT&kX zbEm7VDA|bJpEnShwPBsmrq=fM0C7LdsX>Ic=W&xf9S8FJ_wR^{4XKCQb86A7U8#pg zQFkQoWE}Lflt7ht+cJK7u<8~uv%(})54VM?ek?^ZfBQOy)S;tWk-(pX@sJOS8eXLo z?Muz10BB)%*8rqZdwZUNL^|j=&W_^z8rzo0E$^a@a3hHYxj2NHNPOIAD+ThWHKWeR zNWf9D3Gn%4g7UR!(3?fGMz?vwVqC(7#${++mM&kM+}T`+cI2(J;rx77ddl%5g1eoO zDmf*QNTI3;kf%;budKZqN{=4xR<0FZptjCdk}|O6jvc(8Dep-J999UVv3A|N7Ad-Q zTflQSF{7@hJIB;Kp*vqq=7N59e>irkLJMa>N|4MJ51vh5dZxj#Yg#5g#%%PIBkN)w zvImfr?{{84-3h6k2^PbjBK@lFrNqr0kk=^KZguk2f~_kh56iV43Aw?#=-E32!1wk? zrYdkOs7hAJb5%z(E`zvh@Dn3)VT;4)TWdRXq`dlwP?K7Beb_O>SN6Qxfv#?cgM%9V zG{@4r_2uNMMaTkeYW;%3A&{$2jhB;s7xq)x+a3q=cw8i^^ad3M+GxB+XV zjgy2Zt*Qkl2b!e%XnBbIjh!hCY1Ff#?^7Th>oLB*k2k$?JMflmZ>lrp2oh`PRDZr3 zwB#98R`ql2xv2$2Ne!{WU7C39slV5S)7cc6`KY0hiW*lZqKXQ*C!#>t{=MKYTz~MG z%Yg2T^X(NhF=|Z|ne=Y%OUzTMS&HjM!g~;rvpH@cXGNsUbFtGseMkPg8QSARH^79P zUFUUko_mICJLM{N3I$8Dqr{42B5eWB*3DmHE`!=QvAq1nzM_v6zBK!p zt@%rDFn+y|w}wN73bwY~n|dKHaBUpzVY}uq&~?hU6E$XBw>@`T6}KQrHj8as*RSh} zY}w8|iebZpKdx&+m0G7>C4vq3M&0UvT}gZp+WX*)eZ?2rL~5$X2t$)Xb)zJxi5paP z!J*RkeY2WWZa&|G)H=Q*M$wQV@I()#jlHec4p61-4(T7PHle)|3(h8eCclRo6!J2y zFvp6kjX8c53{*=+3Rbsos%rhFnbOeK+aHmBn?j6QL{1!pPw42&VgK8Q_e|4w*g+w% zrYr+=ldQOyri;}%xfNTh^^$3AiLQ2Zk-k!o4TY1mdx4v+lUCJeu#VVUQ@_n0s2-O9kZT?iXKRNWccV$Qm2IcBk z3^^Kp47YMqsM=%*e=JI1={RW5R2cx6&~1xy{A_&ZEF8iqfw<%nfgR$``jpK=H@QVx z`lk<=GEax6U@R|WXKO~JqX|LnzcD)qdCQ+biz8XKXbZ;PlouTKIj^Z<0zTTJ!D?3_ zC-@d$X?CF}iL8Cv3cTCm+_wTZ59z_pM;Fz~&K~uV`JZf90!rx5v`7R1%5ex{g8-K= zUyjn&$<50nYvhIOIv!r2BiFoyx4r2B{MZW`5e<~jPI8=zQ@a{v4^dF+4(lRan#Jx; z5YmC@1hpkyCu`2ygNYaM-XkEJfY-_*C?jtdW#2idCf+f z-b(Hme{~nK4{Zt=)(CC0eH@wejpb!={5KqK^DSz9W4^uYW(e|`&X~nojcH*^m^sgS zPl;hv82`(Tsau=yPxj_1BZ8Q{8L%an?q$rW{$Jr*knf`ra>IAJ+|aVKVr=gxSoxmf zrN5#xI^Y^@g8Io_?gVw(|7RHzS{kb9#F#gn%rN6lR^TH0C&8VE=+5~Qf;$`#E33EE z7PG`_m$>8`BF+O!kFR2n@SzmHH#V*eR=RT%_h^_;Pt{wT_=v}`BdVQYHr0WbGc2ZL zj09%}DhXVAzVM~sGcEP5hzO7kD`kiRD!;MuU~G4{j_MEwN4Q$1xV30HueXGsoo;T; zr%OJrfBLZM%i`)9$-Z#P1N89cG8gP$#zy}(=6x2(1qxL_^@!3YrKFGp@|=3up=2Rk zfcpp=&~>zf$7xDswVk(1I)C(99=bysW&ubORV!UO;LaWPt)pp%)9QY1e<8u`h#-6m zcJN<1x27FYSr)B+uJ{JmnXra$r-j_`^$#_%TFs}6C01WtRyt4Wu~x$e>zXAWKCDbE zEiIiJo0y==OG}Btf#*H17|xyj{2H#wDPm+DwH(-!y^i~bP2fx3XXOl<1&{;se^0so ziJ}#p^tLrie{G(dXy$L#4MW6;`$4V?wgB0C#}|M%XI_A7eHj4c{&5Zho@T{gZx1c@ zZhedyV{5N!xRR?skclHzOHf@wvwO@+D6DgwABhN!4+mrOQ-+bxQI$QT4tK_l=HsHB z$k#1}f4BKlQYpq})9j^vH>0I`&RD$;h{9+WGI1jI+)#Bvse3!nvDC~Lw`HO?vN`*A zTwUpbfCGd2BR+SzEL~FZ^TS7W!vfZFoUZuKNORt zey%7n-3babC4z#bSt$T(SrRaB+xhn3eQN77egxiKnJRpYrxKSoxLVJ# zHY+S;d^awRi{Z)~vCwO&!f(rZ-$0qTq>uMAuxg;iovuP1h7ISaVkkd;T|-|s6y~Y3 zJ1kIn@$u3ps+-%_wOfKblQLoT!!7A*6+5?Gii2jiH8~aINsi}F9kC9P)F&Y^(+Q2= z@0pq;elxR-*sgIHvZ|%UO|5|)2u8&Un#WMlhwaj>Nu?9H>r1cbrvptKJD+ikmW_+V ziy5zn(5lw@Qr|7@+Z%-%yvdl3CZYeNrvQ&H*}n0+xC0!HFq^Jvcw}OYXrN~ysj0H! zlj`(%h}_H6sg+hRjZeERx?#VX!W=1m4@B};=Y8AO`9svJcJKAd`Obobn_7^8uX-2+K3 mrd6j%ZA9_?FaG)K9OO?JhT2CfOp<;~0r&6es#U63Kl?8pASj*y diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 651bd7d6861a4f6a66a58c2712c9449e2914ccfe..d4c8a8ef399fe70eeaf1f5148bcde77c0adb1bbe 100644 GIT binary patch delta 14394 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 KWlE$!`2R1+^;=>9 delta 13656 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