From 33275f9046c9269fb05577bcb2305a988bfc636a Mon Sep 17 00:00:00 2001 From: = <=> Date: Sat, 21 Oct 2017 14:51:03 +0200 Subject: [PATCH] Fixed flickering bug of ramp (all animations where sprites touch edge of their field) --- .../assets/debug/levelpacks/Grasslands.xml | 68 ------------------ .../debug/shader/entityFragmentShader.glsl | 14 ++-- .../intermediates/res/resources-debug.ap_ | Bin 3664708 -> 3664764 bytes app/src/main/assets/levelpacks/Grasslands.xml | 68 ------------------ .../assets/shader/entityFragmentShader.glsl | 14 ++-- app/src/main/res/drawable/tools_ramp.png | Bin 13073 -> 13072 bytes 6 files changed, 16 insertions(+), 148 deletions(-) diff --git a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml index b87a75b..b055fe3 100644 --- a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml +++ b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml @@ -1002,73 +1002,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/build/intermediates/assets/debug/shader/entityFragmentShader.glsl b/app/build/intermediates/assets/debug/shader/entityFragmentShader.glsl index b678759..52b67c0 100644 --- a/app/build/intermediates/assets/debug/shader/entityFragmentShader.glsl +++ b/app/build/intermediates/assets/debug/shader/entityFragmentShader.glsl @@ -9,24 +9,26 @@ const float clampBorder = 0.005; varying vec2 pass_TexCoords; -vec2 getTexCoordsInAtlas(in float atlasIndex); +vec2 getTexCoordsInAtlas(in vec2 clampedTexCoords, in float atlasIndex); void main() { - vec2 texAtlasCoords = getTexCoordsInAtlas(texAtlasIndex); + vec2 clampedTexCoords = pass_TexCoords; if(texAtlasSize.x > 1.0 || texAtlasSize.y > 1.0) - texAtlasCoords = clamp(texAtlasCoords, clampBorder, 1.0 - clampBorder); + clampedTexCoords = clamp(pass_TexCoords, clampBorder, 1.0 - clampBorder); + + vec2 texAtlasCoords = getTexCoordsInAtlas(clampedTexCoords, texAtlasIndex); gl_FragColor = texture2D(texture, texAtlasCoords); gl_FragColor.a = min(gl_FragColor.a, alpha); } -vec2 getTexCoordsInAtlas(in float atlasIndex){ +vec2 getTexCoordsInAtlas(in vec2 clampedTexCoords, in float atlasIndex){ vec2 texAtlasCoords = vec2(0.0, 0.0); - texAtlasCoords.x = mod(pass_TexCoords.x, 1.0) / texAtlasSize.x; + texAtlasCoords.x = mod(clampedTexCoords.x, 1.0) / texAtlasSize.x; texAtlasCoords.x += mod(atlasIndex, texAtlasSize.x) / texAtlasSize.x; - texAtlasCoords.y = mod(pass_TexCoords.y, 1.0) / texAtlasSize.y; + texAtlasCoords.y = mod(clampedTexCoords.y, 1.0) / texAtlasSize.y; texAtlasCoords.y += floor(atlasIndex / texAtlasSize.y) / texAtlasSize.y; return texAtlasCoords; diff --git a/app/build/intermediates/res/resources-debug.ap_ b/app/build/intermediates/res/resources-debug.ap_ index 5db4c716888f1704c33667ad3a40e6d468d64cbb..3dd865f2042040a911db3676b19887b155779922 100644 GIT binary patch delta 5713 zcmb_fdt8j^+n?u|(oRDM9d(*mM09vk9*fLiv66-jsSrZ@bEq8BfqEt)$BO7?lbL1H zVpC|PbCilw;}}wtjuRbJqtl$;Ys$~=zJI)by?s94KHcB@y07QHuj{_AF^dYL4!qW*(Nr)+KFvCY znbRleuExFgE&Xx+s*rab?-{;&Tj^>Wt@5TArvD+#e)qHPnX8NRS7xnRrL}S;XQj>~ zy|gf&V-Y8g^)LP9WJdCykYoYXz2oe)<#%%abM|RxeyCpyYi>OGcw2nMRy6g*mB7pu zHoD_6syd5(rhY0XBG|+v@mEjHI8nIFd)r@?`MK9mU!e`2{Ia*DGUrOT;=ITD+KLrC z*&7j2fVr8cFVg*R$05uXkxo9N3k=^C^aV~s5h_QCRlTiG9hTc=({uQ@~*nsH-l>W zq^!UbcN!lU-ektH_tw^g*DUn5s2e=iSb5ddbQi3aq|~j?A=^XSyEV+x-d7XV4R{k* z)ccN-7RO8b*v%oWg)a;X)Sj@<Y0>Qt7k zE^JutoY!YyS+Hd2b&&bxu58nLvc}2M2!m+_!6vU+p??mX{v6M3_444!BHBcM^-*&) znFH;CS9htGb@7WIl(R*Or4d+~|Gkb$D->rhzSx@~KWPvuI@RN%Zvd17tGmdI;l$aHC-n^bx6uUM^cOvz}e`;QR`9fy;G2evB1dG(md^UvT6gX$> zqgs*zJ$Ga}1G7KOG{2@-uC1rO@1Ek9Dui_cDti@!?LSy9ufnVm(IPd-cRt8i%-o>iIAdr%V=V zM7u2?hzIkhb{vIl%VZ(iuh<_JVkz~DKEu-!ml#=68}{glulg-M8&3t#)(fQYS_$67 zfAUgoD9tyN3boLh73m*>^>9_b3t|mUS&Y`W#36HNgL|v<;`PKS(Qc#l2jcy3H-YJT zo-CdpW@RO;(z<^%%`J%uOZULiy51*l0={z>5l#j=)T?DbP%q;z--gQ{vQp-ja^tV6 zwr9gpti#$E5=t*ZTABg}GWF)k+&wrK8Is?&%+eEIgPWqLO_Qh%3HswV+Jl$hAaWrZ z(`Q7^+gI1S~e*H++7b}swD@v(CD*nN0y8Qv63(Jx=*D3jA8w>%%moE_=E8S6Q) zWe+Zoz2aB6R>;^#XU2)U{4VJ#kUI`e^ke4ha{n z++`ac?$~=~R_IJHSPFaJ1_rHe%hxgF2JjUDd}R*Ab79fa)}7#TFI<|l;Bra)Lipn8 zsT_r7{6!ASY&0Cf1uod7cdi0cxFWB9H`Ehv)3>C8u0K%A)&;+;GboAB9f#5gT@C7L z_mV80g)i14o%mc`G5`-->%fv6o`p9=;p6u{oY>i zj(y%mcgWY96PwH%t5`LAr(%|ouyIPEhSuWg}R!mUCOwPg|E!7a+vL_Nm{OM`#pA z6wGIe&luDH`CL+O)%>bMO_-&tDFh)3gf4Q%vzQ{S^AO>_!CJhi)PDiSkKYU;q}NvMWf;eePNKrbCJ1g@G4`Cjf6!u0tc$oFEUCoU?^N@ zBiKy!(d>t2LI}0*^0v#`=$y7Cu1xWG!xc$XLpbkc>{>%%(KLaVa$r^}J4Rh1gnVcJ zn8&kN1Ia}>({Q2rH(m7!DL zzV)KItT($anI^pd>GN1|BRBcyD8-L8?~j--3-G%4eyQK1v*-Ja>N~i}MJ-%OUut$} z-^WUCe=6vX=iRWa{0{YyA@{d&gEe0MIiaa9+FV=v=Cr(3j1H8#zxb_3l;tl!dOEQ) zds0_-aOZ|>%T2+UKULSrZ|Lr~^$O;GYB|v5-KpQCu=&)UuiMa*qWQ3)tK)y`+mybP z6AM0YGlE2Y!i4DHc@6h_#Z<}SMCKGp%KP!3tqeQfyAk}DYsA>*qLv?CmFY*zW;!%qd%o9B9D?iS)MkO#H-%W zm3fypp+Lk)7xDAyeI-YCY1B#P(d>f0czW_`y25G3GEP9_!_2yf(ofxAg|NQ4KTP(6 ztc}G^Z4Xh>W9fmPitOy}q|*WlN-@jslz=0B84>rD-&bR6bFZgV=i>+Ex9EipT*}O= zIw&OnlYe~=6`R;DUA>b*bz}A2DHJ_VQRe%|2cT8qQYzca zo%2X>oX+{k6&Xw0#2?LLW(*7J9}oF1&xWjQqdm-}gM~)Rw4Bz$Tc~f)T3WkgCQEtm zX$;MycvHV?Jwp-(JziBK>mZ)z26eK~C!Qf0n!<@7DNqDH2x8Dm z4nt{oPGK^vs0sy$D?{#-#7R30@m5J|eRUEQhKJ{Z9Jd(Nx3bJ;J9Q6OJ(ht^B_|cE z|MQhvb~n6#Ty5Pr^3X=oCl5kxeM#HgYeoW{Dj<3 zV_lJ7N~P|=LQt6dya~#;y%sN`=~k)zRrZk)Q$ZoK)b$7KWV@g2l~FT)*q%onWk^nf z)}FQz2&snw%At%eia1a+8^Ig)xzT>O=pf~fhrgH7PN@_=gO*7NrHeKSBiJr(f>;%G zm&R2JLt{N6=Z~T;=!q8_);AW|H-yQS%#uMLLTzWO)HPq>qsiqsw4FLLP?X3a(|JED z*e9qBSjk%1cRTRfT--%krN2SrRQG@`#9+62MHAaI5HGnP1MyS70wv6Vmsoi*U#BeT z5MfOj>xqvVtVmF%MYh?|vt)nBRqA@~lX6Zlt@8HZj(L&(tFUHiw3T+DP7(`TpzV&4 z{y$^q2bRppR6Fa(kpBhI`C|>-u3@cJJQAn1sb&A5zN(YuHrsEiybSWA30_>WR|BB6 zzel*jVPiF5Q8MqN?C{|Xh1c@`XQ72AE_^Oi+zoBrNmex;HXTI!_t@Q-GhA9b*FTwJ z0^a8Nn>TP`^J#;Xv>9`T#+^U(az_~+mI2L15LHzU!uJz& z>PCB263S7u;io(~vFYI97EkrpE%+a$D`MOoo`om$h9Yc+FXns$B;wI2m0-q+zF!P7 z><&FAu?cfN3+1v*#uTrFog6O)Rf2vJxmKv8(Na13c(6(poA^KMwiQG})7Lz)WTCnw z4*K?r;(I&`f3QuuuTnv1TE@P>!!E!9JvV!Dv~NS_>oyv^7+6vU$0IQ33@B6Em3D&Y z)zHbHX->LvWAHM$Qo}@htzNEm>dp8~gh_P0lP+K^Ko6h~FaQ_=i~z=faR8N_DZmV1 z4zK{Q0G5F9fC+%_0TTg}0Fwb$fGL2f0BgWBz;u8Oz!qQ!um=zT2fz$~BftqTGqc`_ zG>&0>`=1qI#iSQqbEYoZ)U2bAy1X2<(VQYu2c0PBUz}R3me=yM&xUUpB=Y zVeXU0p~4c9q>uAssYa&App+!&ZAIf%BTLj-G=2;UD}h}cErnf}xldB@_Nby5s8P4A zbjHwze=KSDBJFQmjV!V(1BYf7)(Eq(c0#db@M-zw=_7OR%Sb0R{FNOIaaTJ|LbD%} z*7$W}^x!dRfo>WTx+q5ko|7MwCYTr%J|@@V>&-`IEm?#bn)`%wz%5wc7;TjF1UzI} zjxafvgg%n0n1~4@3~vIVjl3$r=kbYz&gj2)dv~JBKo8xRNSL71a#&J1d4v&6B^ao3 zGNCoHPOpMA!LLvKHfOA&t?^gWzA+4BW#goU(knQl(YF7fDGx}K zH_%uCI{K7cLElLbXeB|+MB0@QE8iKzBMW5TL{3GADvQ2?O=tiMjAr$N30RK3dtq(4K4%< zUqMVpdG(|@dMgAsfy@7<7>G?cX`t!PNL%az@_t5o(;ZfQolY->0M&i~zXQ);*@HD- zd7UQ^eNF@LKF@&gekh_DO^!qM8(|Y#H7feRzb?^>10x2)1CZ$9b*ri&(k>{Vn&e`)P(d~6 zgRMcVH{@zu>oBr>Lrz9XwoaPp+8ffAe&`5+*vANSWZ~mzG?Gr!x3D>{W5fK^5o))J zDnCV_^i#ytk)V|Vh1kRVely*oDQ9 z*ag@*jY4q`qF;7il*5lHtQ!5VoqqD2s> zvik%|y${=jcf=aE%R#q4kS6HXI!7IZ#IXEg?!OXPl>5zK6cVj-)J6XFu1kGx#Epv^ANNh1cAQQeHEu$jZrsE;y*T|x2HMkfNf&mzrWle)8dxB1i@wPd+i3i=zaaG=}9xRW(;u)w^*gD{{yuk63%JjbYalsqB zxoAybXW>wtI;TJ^dm-Gr&z7V5o5p?{!dJ-*g}7C9)Pak~Df!$>@6rZOcn-z1&h{I; zGUzd)lOUPyJI6=p9$u@PI1-tBRD9}!#Kmcj@QZECbVXyq?Q&zfm^(3qJ1n-7Q)0rd zm#5*)L!LV%c3iePp)hRxmA4K2cj{G%+@ z+r%TrboI;I-?Jl!o?PR`(;k1CwoN0R{n{$narL^*Vq)m+I z*SC-}Oy^`L_GekotzU5;b6(m_l6>`d70f&n-J{kiyhEq#V2{s4=KP+Hx~9Vu%QmkQ zC}y^`1q%OkiTu6fENq`1A4IMpKA>oZfgRt8lHYYX$58qK)Kc=;GOef!Ms#s}_B5cp z1d3o)x7Kh7W>b9UDoIWqm~JS&RWyU_A=ox6OVO?BwWPB>;-VYG!QlW=vs6WM` z*9O)TxdO$r*Y2Y5M+#o{J(rQdcq$kbSxS0u4R2ikY0=}X2rYT*$XSq$W zr(Uz7L;6J;rV5xtwJxr)yzC+O@Dz3=3&;{66}Q79aOJuu zL9$ODTLgwuYcSUBcJH&+@C~-x&93yKaY-BklI|h+!hII??y$nKigp06{fIZyX3^bZ z`Mg&lYFSK@zphY}f`hd%jR>nA=YLea>Xu4-m|a0!5RxOROq< zs1o@vvMJV`!%>}t532*O3kpDfI~(Nl$($|=dl3QO@PZWZ29wIm!k4dCgTfk6m<9^s zm|*EDX_v@QI?kBRFPWUOl+(4^8EL+;UZA)!!zH#Z^|LNG;g0p9ONCldo}R_pq3d-L z#LeEj@!AB)9-9l7IK(xQykIrOy7&w{M4x^{{&og*KJ5(q4W-|Vnjo<`XD`azBv35O zV^>r9E1{a!)8u&6HaK~%&>wTViN6})UhB_$B(UGW9X&rdf1d2?4@7D6gEy765Z5WSH5bFXOdh)~qt4OR)<-L8g!rGQE zTH!0WrIsl2*vlG-otRrA?y9I*|EIp}%odI?jr4@wVvLJfROvaB`rcca0a+3erJq4% zbl*}OdJ!dFM3owttd$PAkt+TevH;I~v0$+TyDteT#-nypBIM(<^m0T>p4mfz)dp-K zuZx^hPwc|nuHrGu?c)V6LiqW3lq2PIlel#uX$H^1qAuYWZ#>F~;@-@3 zCAsomg42sI!x8F4(s}kErN5iXc%|mnVWQr=EP+)Nwru#Y9tqKU>_zduoE}wD$g$Uo z2Ow6_iYp?K|17qV>=`V)+%v=he+X%Oe(rpbA#$9Ecy1I7Ulb#s{ zR16xFF@MuD_PP359A5a|y&a#nz!e@<*sKYDD!-V%{1jwCndfEa&hne>PilE9+(zGm zj=;iw!F!*TKI`~WKJN!yp{QUePi}eK`NxpsNX;MOdOllR?^#%_`uw}4OKSArJ#U6vZ=0AVw0TAz&*6$YKvm+zh7Y0$y`bP7Noqi;%_tOqFxx2c9x=(5LOVe1! zP4^n>ZdU5Z5xugl!~6;PeIu5n5oLP@cf2H1ogmSU=;(ZL#AIzft$!iu*x*QMcuw7x z$B|tbb>sc`LFfYIsj_ao;JIFC`Ma1drCz3$I+w=t4hX=u^X`#z8a&mq?|FTBsS#5I z@o82`yZoVWg1(SBjh+&n{UNf@qQF1NbEDTp-#SW>4f~Gg3vyFc^B-Lu$PcZk&3Tqu zQ8jd@@}T1QctKvOO1J;bH5V#VD_eHx_b|%o4(5E4JFmWb@P@kPXFe(0d0o&}%uuE- za3OiCehvEd=#vQg{-s~+w;Aw>I%MU zP%ld_VYrld#aocJ=cguj_JZ7t_?vFMiSLJJ#M{T4CdtCOdKQe|Ydedh`nj*~;fji6 z*AIJEK+&9g@whW_FN$SB2fYHV-@RVDe=k%^Q4=i&&sqiLvV?n1yZ;k|!z09t4W%2r za^|Zf45e`r=iUiip@b%?tu#*7G|m`hV8$`e`c28=_s|PW>)X28-H3jf&1;2mDu>7> zg{bA(Up}Y$+OL%_ftNRn!kqySfI8m3-G zkx!Riq^3XiDmML@(l58fOR+j?NGdHZ15f|m@gdq zi6d0<;-G)*hO(_=yKSdLnJN6ihb;o3`VFO`i68rd)~JqG2@gPX)|7hd}aw;ohq$ksPo zKp}hcRdcPOA&MAkNo@dk+#$J_Ts!ok4x?OMl#e|vY`rJb^h2YrE{lbvtWchJ1YUa` zU)3`d7_2>mX)rv;B{q01HglMnYLPxkkyyel(GESV!>E;@P@vZoB?rrVRCGd~sKFPz} z9%(}9#T3QEwA_OHoeaQ8o7%q9dx1r>W&e49mN|-iN$AHj<{1Dc0So~~0Aqj&z!YEx zm<%unSOBH~ECE&k8h{R%3YZ3%4wwO$39ts(02qK-fZ2dK09$|^z#hN^%muIj-vS%} zjsPdXyeEu##5ZTP|M_)^7Q7^U$nTvDkbjH55ptPlpogBlBxaKjb{imr!;{P}<`VW; zCSv9iUgX+GhKTiwn1*iT5)S07NhV{GGM8XsOA+%GSUP>x95q}uw?@mK6Z&Wi!%|T`-i1Z7=;=x(Sppck? zjunDx@|-b2*OoO2eJ%vYWVU0>Q9CCcwD2uqk9*pWF=Bg`HX8T^%w2m6=HgNITVgHd zi1gkOJMcLUNdF!9nc~2jjJm2oDdQbsj!$<&-9>~k;?HO4BHJp$2GNUvHktnqJsB;$ z3))c{TI4!L-zg%NU^LWKM0jGBh+Rx9CEr=Wy10^MF&2Uc#h`4x3U!x&LBCMA$WgZp zN`RifW{f`I>u7}bl)#Dn){ZfPm*9U^1AMGZqd2@?L;K(-H;yf@e8VzAva_&^-ovun z<}q5qa?(b{jc`FjK$F|Iu+Tyu*1WMZ`jispTB@xq5@H{A{K{nmhZ&)&Qo@})*`I}i z{aMq{sxo4>md8$wVwj`F*C>{O;z^WUMl2`a3}T^?Al4M*A_WH=KER3@^7ufwV}>a4 z1F?>55ynE#BOm~ETu6k;<&bAH!oO15evbMm{yl7rEe99(MU3(eD5e6a1`YLFuF8sJ9X#x9T_wse+7$>t2LSL%~(V2J-pSEF?Y6nxzTbY<%D>vZyB3W3y36 zHL(dt=g@&_C^%^~@h!gi{FvZcLpb7%7siC2YX}Ey4SH2WY{Xc|@*}Ykzm|xsJ`!e# z9^j~h&_}R(Cix#`98xE<%#d6|ho_FwZncCHzTqmGS_h?(c@-|@b}cNY-56smZ$gF+ z0E1mZ^g8&?aTH!haLDcV;KJ{-tk6g)VSr{oVChZ#w@91r!;NycL7CAduv36mONhmI z|6?SS5Ua2RR4pNv;6v%?TmxZ_g!RNY#IA>9{gn9+vj~n=QcrBf=RDVN)6xIutv(8a zO_(-HXn+tM%o|&s&`3DoC9lz3OkH@fiCB%DMea?+ zN^)T_3r#Iy&C%4F0ZM<*()-Voc=-M3qB$zw?r1ia*O$v!|9v#qmwnavx4NUsS^ED8 zgkw1bg3fg`MX#D6HLELGh*<@FNVf&TVvOdu5G%EsYeDA#*U@1tSMEsu$HFcNtR`=9 zwA9p!KAO}DmGxsIa8rXEt&m46*ja-jTZv^@HWIfIEAg9Bw6={fMf5g!quzYd2rJ_6 wi%d}+$XFn<|3r9U{z&kNScjRS(ob-cHJ6cD2jPl&p$#3x)Nx*C2nhK90cX$AW&i*H diff --git a/app/src/main/assets/levelpacks/Grasslands.xml b/app/src/main/assets/levelpacks/Grasslands.xml index b87a75b..b055fe3 100644 --- a/app/src/main/assets/levelpacks/Grasslands.xml +++ b/app/src/main/assets/levelpacks/Grasslands.xml @@ -1002,73 +1002,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/assets/shader/entityFragmentShader.glsl b/app/src/main/assets/shader/entityFragmentShader.glsl index b678759..52b67c0 100644 --- a/app/src/main/assets/shader/entityFragmentShader.glsl +++ b/app/src/main/assets/shader/entityFragmentShader.glsl @@ -9,24 +9,26 @@ const float clampBorder = 0.005; varying vec2 pass_TexCoords; -vec2 getTexCoordsInAtlas(in float atlasIndex); +vec2 getTexCoordsInAtlas(in vec2 clampedTexCoords, in float atlasIndex); void main() { - vec2 texAtlasCoords = getTexCoordsInAtlas(texAtlasIndex); + vec2 clampedTexCoords = pass_TexCoords; if(texAtlasSize.x > 1.0 || texAtlasSize.y > 1.0) - texAtlasCoords = clamp(texAtlasCoords, clampBorder, 1.0 - clampBorder); + clampedTexCoords = clamp(pass_TexCoords, clampBorder, 1.0 - clampBorder); + + vec2 texAtlasCoords = getTexCoordsInAtlas(clampedTexCoords, texAtlasIndex); gl_FragColor = texture2D(texture, texAtlasCoords); gl_FragColor.a = min(gl_FragColor.a, alpha); } -vec2 getTexCoordsInAtlas(in float atlasIndex){ +vec2 getTexCoordsInAtlas(in vec2 clampedTexCoords, in float atlasIndex){ vec2 texAtlasCoords = vec2(0.0, 0.0); - texAtlasCoords.x = mod(pass_TexCoords.x, 1.0) / texAtlasSize.x; + texAtlasCoords.x = mod(clampedTexCoords.x, 1.0) / texAtlasSize.x; texAtlasCoords.x += mod(atlasIndex, texAtlasSize.x) / texAtlasSize.x; - texAtlasCoords.y = mod(pass_TexCoords.y, 1.0) / texAtlasSize.y; + texAtlasCoords.y = mod(clampedTexCoords.y, 1.0) / texAtlasSize.y; texAtlasCoords.y += floor(atlasIndex / texAtlasSize.y) / texAtlasSize.y; return texAtlasCoords; diff --git a/app/src/main/res/drawable/tools_ramp.png b/app/src/main/res/drawable/tools_ramp.png index 65d44ed0d7d93f18b090ba9bc9cbfb332ace3be9..86b23a84bc99ba50e237ed84a27996b6554905ce 100644 GIT binary patch literal 13072 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 W$;v3U5AZBQkojTjLxl&9fA?SZaA$h}