From 2e03e232061708e3616b51d84e4643c120c1cd92 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Thu, 5 Nov 2020 00:45:34 +0800 Subject: [PATCH] auto commit --- docs/notes/15. 二进制中 1 的个数.md | 25 ++++++------------------- notes/15. 二进制中 1 的个数.md | 25 ++++++------------------- notes/pics/image-20201105004127554.png | Bin 0 -> 14598 bytes 3 files changed, 12 insertions(+), 38 deletions(-) create mode 100644 notes/pics/image-20201105004127554.png diff --git a/docs/notes/15. 二进制中 1 的个数.md b/docs/notes/15. 二进制中 1 的个数.md index 5afa17a2..d3532e14 100644 --- a/docs/notes/15. 二进制中 1 的个数.md +++ b/docs/notes/15. 二进制中 1 的个数.md @@ -1,22 +1,18 @@ # 15. 二进制中 1 的个数 -[NowCoder](https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 输入一个整数,输出该数二进制表示中 1 的个数。 -### n&(n-1) +### 解题思路 -该位运算去除 n 的位级表示中最低的那一位。 +n&(n-1) 位运算可以将 n 的位级表示中最低的那一位 1 设置为 0。不断将 1 设置为 0,直到 n 为 0。时间复杂度:O(M),其中 M 表示 1 的个数。 -``` -n : 10110100 -n-1 : 10110011 -n&(n-1) : 10110000 -``` - -时间复杂度:O(M),其中 M 表示 1 的个数。 +

```java @@ -31,15 +27,6 @@ public int NumberOf1(int n) { ``` -### Integer.bitCount() - -```java -public int NumberOf1(int n) { - return Integer.bitCount(n); -} -``` - - diff --git a/notes/15. 二进制中 1 的个数.md b/notes/15. 二进制中 1 的个数.md index 5afa17a2..d3532e14 100644 --- a/notes/15. 二进制中 1 的个数.md +++ b/notes/15. 二进制中 1 的个数.md @@ -1,22 +1,18 @@ # 15. 二进制中 1 的个数 -[NowCoder](https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 输入一个整数,输出该数二进制表示中 1 的个数。 -### n&(n-1) +### 解题思路 -该位运算去除 n 的位级表示中最低的那一位。 +n&(n-1) 位运算可以将 n 的位级表示中最低的那一位 1 设置为 0。不断将 1 设置为 0,直到 n 为 0。时间复杂度:O(M),其中 M 表示 1 的个数。 -``` -n : 10110100 -n-1 : 10110011 -n&(n-1) : 10110000 -``` - -时间复杂度:O(M),其中 M 表示 1 的个数。 +

```java @@ -31,15 +27,6 @@ public int NumberOf1(int n) { ``` -### Integer.bitCount() - -```java -public int NumberOf1(int n) { - return Integer.bitCount(n); -} -``` - - diff --git a/notes/pics/image-20201105004127554.png b/notes/pics/image-20201105004127554.png new file mode 100644 index 0000000000000000000000000000000000000000..8c39b9e21955dd6df699519eca481e073c2373a5 GIT binary patch literal 14598 zcmeHuXH=72yCyd5@Cv9%wFHo^NRz4}(mM&gC>^Ae(1{HZ5NXnzbO=pKD4~g&3G-Bg5oNL!o&O89*Ik%-cE-2q*-FuyaQSv*Kbq;G5N^G zcW~LX-i!L0s&Bb2EPw%AjI}G-O`$a59=Wpe;LZxts ztuB+!+q15IBHT%;*(bo%C@7h}IFR3;?F3vs0^UE--#<$J^Y)A5FfvhCKQ0)}t`;o9WyC{vg>7{~F`O=KVNN@zqQZR-6C~-^}bjqOr){Zc|jV zu2`J#tnHpy5+8y#>lMpyH|1~o1WM?tyGYU`CQqhI5pqH$ab}^rKZeU}A|dnhtOsc= zym1N9CIdWy8&=m1O$ajvzH{OKnHOR9{CJ9d)l?Oo#v2cvNPC!v2n<^N$Y6h0B5 zh~4-cP_|LWI(N^o2W!&9kF3!M`Qo5e%+@Hj^VQXB8OhYwo&52aOIx*1i164R+vvu( z6DCQ;qR2&!l(WvhDn?WGMBC;rJnTWwMfZhjlPXy_`Qy$9KhmX2gIG>~QY|qk@^iGB zVLy50n?vpH=-wtirKa$PtPK$z{u@lFOJ^||E@qJR8udkjL-6At8djW_HC>v8%BPz3$>eNe6I8(?QYOU zGYkI8<$(b@f3*eoE|N~Ihi%yp-Z-tp`3}m3QFLBj=?|}!{{C_cY1B2i|FZNdTPO}Y zDi@Wf*s&BkKfq5aJ=mExu^r|W8cg|$?;kscy9r|q4j~U5M?WwyMdQ1>N-aHrBsS1` z?TB7`@_Wi@SLKzTll;Xk^k9SmD&~j`(*%Mf{>`%Ca6Hj7&!G+(K&ZRSgK)hqBZrX8 zS*jPySgwRrVJlk<7TG(PIjC@W^<~qf1027jW{6fqsm4N`Q)vH`v8{B@4M|y>$K8ka z6t1je$4`*<4T$FB!#Fj0%|M)OYw&1B)l2g1s&1a5>HWjQDqGmN7ZqaS{m6U#Y1=`W zNp?FdKBLfrbQsPD|heQF!uDJ-`WEFj}n$7jm+LNx3590+?DuuuvX4>#n<# zHpk`N8_b8kIBIA@IifSy#kyZyN0`rgQeoctbH7;5myZf&FF+_`sT}36N2U!Bhe|C1 zmTQ*u>l?`)R(`W!cV?sjP{XJqsrYLiTbl#}+U>akIBvmrhploABIMg#(nx6APkr8?46k!o{Lyqng(gG1m(D z+mFuzY`7zNJkVy_{^eC@hFG*zm!)) zSTDZmt^AzoD%TbtmqQu*bN92d6FHSGpS*wc(|c@LA?zTovp8Ms3a`g)Cv7>5%gH=! zYm?BYQv;VRUmQk(C;*Tw2dv6&>HhcbW4k*Wj+|ld-!Jw*Hz7v8n=;n-EA8juQat;7 zCwSrPox|KRq+7gk#1xlkS2nTHwuxJAH|+r_wNN+EiHtN5u{Y*mnWK1JS$B)}&~CE# zLyuG3Xp`ECEiWjDTgAr@v-Xx7u=_E8YWn-0#dNu&&#qXd_Y*tRu)6^<_vwWj;Az!&C?bEarSx#!1pg4cI?ekiO9%CZUE=n`Phncv34;UW2%wS?ks+X%Td@`qE5>+SH ztChOFLdg6iE6F3=KtMzTKq!C%kfV#_U#)EW3k-A?+202LGX)0v+c>~~;7R|@Q~pbH zF+)HuZ?TYL2gJp*G zlG64=%JTn_oHQlUVh0<>tB^;~uJA#L$;wL$okM2hW(I?yuhU8QxM=KlAQfBIB|v zKxmK`xXL=fVXmahJ>k2HmZSDTRL{MPm5CVj!h4I~A+=n+F<78e@10V25IF$P;K*0D z`E{nEKJ#*lhx!(A@y%yhhhK@m;q%Qx8{h_Fhl9fYfXtjC*$u-Nh6;vcteQqHh~=?``nmAlDBE>AzK$+wwwg%VxkV zbdIs!h8v+3Mhj>QX(usx$W?xHpYaZCJ;!*|SG%gDZ{#5MU{6LQ_tB`>YNVqD=_Jd5 zfj4!|WOSFc-tA$1o+n$FeXI+#&amXoo6boccMHWJLT-Yt5m4r0a&lo)2k9AUn;4N8qQB+uUBTE`@H=uhU8eq^lN+4Rn^{KZ-TJwNi7HEn24)}!^jiNds($3_YRkmdIsksGhC z_$UPnlcv~~c5&xXey+{uq)wKmJw-cs&#{cc_ZWo4GM5QYM68$TsV=^ibTC4U;VwCN za3oHbAgi8WlPcQo;3HDNDY*uyFaSX zQB9vdSc|V>9eYs}U@Jt7I|3K@nGuP+_k2!JYFBG`6Bl~w zLZwfoQYTT0$%38nRswl;tUr5h$SdQHjCv-_)})|wrhEOH?bo-AKC>Tj)%MvOS*c}l zUt>6G2x|RbH)rK4&o;mLwrx^*rykeqUyt}W!8F6`9yfaC@+i)Dj+W{9m7nBUJ*x`1 zdOJ?7BFA&x{m9t|W@Zg%E^~+rBAQ$bC%#vuTXdXtO1p9E7|=vH)VH?&fKVvwsVvw| zr<`UHM@9O(zC0=i&)|0ds9%teI!QnA*NA|Wz(zBq+o&a_KBP#KqK_&ld~;yl#!Ao2 zFK14R*mb0(mHiQ0e>h#!&c{0g!5`+AW8T+Q|0tl~J37l?zr8O|ixIy=e|L3g60?Hd z7@z7_Nf-z``Qq83(@w^^f>Lj4J~+$LTaFf@tuuDrGaEv*H5DC;r5}iq#2str-IS-e zHTkp;Q@@j|Pg*TWCUxYA^|1T{uzZ8anGXG)glcimyc_06NUQ;sO#r;Ke3nYO-oS|8 zq5FsAcn;c-puSv@?Q-!uT(4b~vG!lU~338-QE5YKkSXxcdD3^!z&7+|Ofc)SXR%m9*U) zJQ7hA_%{n8YwL8W4MxfTb$cW>N($-81dKrud;Fic{lD8V|CL)!WU^vTN5{xxs(F>qPiK*>L!@{f`Jf83LMIzbuuS7QKK5YMX=ZSf7WZaKOWWmUHF@cZ`U zknxXrVj?4YBPsa%*t}S=5~C|pdO>yR?wzrO7en4if~1}MoYSVJ2stG-IzFGH$tK`} zNx4wQdcs>m-P-g0s+1Jbj9O{$hm1uvWXYefJBwfH?W`Y*+({f}?VnL=_lwNVR`F&T zFZ7M9E7E6N_SII2*qlK~?w2-RuC*YWVEmG4m}q{I`*^Mq$Ku%JKr*jE_K(s(u&F8b z19t`mOLoRWY~ws{Slw3-sH=b)kh-OJ4A?v!26N=%1?r_Y2h^0myONQ~oTujMTBqNV zU+K?n0tfu#pSnF})2U8mA}rZw`ukLhyJbXG0vp7zICBGa*}?%Me8Wu3 z8abw4KvFDR^2SeX1T>xE0AnhfPn-y}*7iTYbT}YVs>r|ReOZinMs=iU~oVC7?S)dI|(sIu&j-u=pK*SzsnFKb|38_B_&NV!*TO%o#tErx{O1RQ?Vc=2`nwf~KdAwko3w{c^`8r%L%yOPKnu-nDg!YtUd~}QAn1Km0&B22RTsHyN{Sq+dBVVY zHFrAxvzSymkyJ;KZP;85H(#ON{7Ez!a1|!~?%t;BudG>P&KT+H|J)hGKm-rO)nZ!3(#bR0A*A+(56JAg;$Xy(~cPXVC zS`~vK$*}S@1+@NdpWRk_*>nuEQNF=Ss>rcu_jx9~)0N^b1d{z=<2(j$;LVX3@Nvsv z7(J`KOtjzqsjc3<#_qUBG?PwGQ`VXb3zMpbF6bm}m1go{idVPc$hG7wkJhip!-)qc zb__Wh|5i$R#RdXa$5mM*Mf^5#SX*9+c{`Y$ij)c~_M88Ke86F|kYXUFR()1(mZij~ zShH>91V1dl4-2n)87Wpu;duNmxyc`F=0_Qr#W_|M+MOk7GMK;Qm{@(=VW-Usk67`P z3EuZE!!Ng++mpD*zoU7DxVVe^Fo-+^Gw-%2a=6OEgw5Vq=!^ZF4@=aQ^8N2yodvsY z4Mo+2c89qfM~3RuF}mnawTtfy`t7MDQ%&kt$KhRg30_`7CN7Wm0gQ5pnK8W0z;ih# z-R^nevqQNJ`owKx@}h3brp~3fuQmELEg>>mZBXy+5UdXwUG1&4754+wTo~o;S}lxZ`yd{g5`4zKn-M-q$F8M@Yn@Su ze$OkQ7H7+j9I&wOxa{Xv7))z+oO1EN*Ae>Z)ep4%o9*CBI~#Pcr`?4y zDc^V3FlXb-ZH6=QM2*ry)6B}3B6qVTh zCXXJr8f@gCWWfbb)s4##Y?*ySvLLovV%3OV~4h|Yy8??)8f+`BFX4+ z1*_;F=9Ph9155WD?Qze@mIOP?@-uXN+{*&hx0gn7mM<7?*^_5IGA&$0$VDDe{mA#H zGtNTfiNnPnY_`m@n_n`Wl(NXnM~PZg$`LDUa^sS@VFe??glLocN|nW{R~2DSiM+tfOPF z`Xj$oiD+ib49zfA`ZWXkL4Bw{_e4Z5DTl3&tiMU-G)$Ur;`3d5%@AdwBh6)3rDwA5 zD9qTfvt_flYiYkfT{T)%MD%G`;Mm77Aq?LT5Eq|L4P-DDCH87HItTt+=Up#0`IsCW zg1nFqd57Mb{wN_5%L3)&NYKMl|X zGg-ScGigwf`L1;tIqJFDuKLV-nwljBC;jkhViDdpJ01F^6eKyS_ER96GY1x=r#ZAq z3C1H^a{ihTn!a8O=y6=*h*AhCrcnP)8@0>fe!`c1!vi?RkauW5^5q#H`xN8dFUCtd zU>}EMSssu&&rm?x^s?Vx1a*E2ZL4u;&C`PSw$)cbC(qTU*EtW%)#tuK1 zLHjnLZ2HURz!rX+ww^WV0xvA3l1HXAWA%DL}&R8!M z0jcj3F5+`M%C5Rv-z=H0}M79X|S`Fi8OycS0*MU<)32TSDQH{3+khxr|$ z3o>!3Dk2ho>L=?<%dNfTb)(r7er+3ukFiupl%@r3 zng6K+;RUfo`MqTEkQm@D*4jIO*YO?o*7ZilC$JXZrye(|`2%q4XH}tBZ=10c5Z7tF zM8$2)X3y@;%&um+6YSg(k#&qfh!kvi^@sv)&nNt%>1odR2m4URmi>brBd_^~&Ix9G zC?da9oSrYrCLwvBfAbNz@zdC6{R8}UThCQ!CMyquJF6`nKfa>5yZ6Q6B)B|t_W!PI z`wx0grmYKctZpDm8 zlxIFYKL)z=iG=0q6~zdtgSF7hRcx-b|7QEcjhie>AV0xvmH*66)NkGT?DoHO&Hvax zBJVtamnAz*AYJuo-Dm&wG)<43_J1ITSd7JBFxm!M>HSgM*zeyzL_|bfK_YlAX;q9D z(Q>HXycB9T-5RA|=ToJqq-2#k9cy=ZD&nlXC=<+4EmW*48Jk-!T)Q>qtzTjuSXec~ zz+3$*$YyjiARqwS-=AgH{4O^;TP{64eceN1-LuyA=~IZjVb-66Kxi~>()G;EU(UcKqb?IZ`sfs}(y4mcb>Ev*%i)}8bE_3QUHx3BQ= zlTYnDJ8}I|u#Jbce6g2lm za&kg~f*BL)H(5)-lUrL`r}A>t^*pN#3tcNZ{Fj1XH7aIla&dBocg;o?m1sIt7(`pB zZ2N+Bq&D354+vmWm^Lo*xp)y+&P91*<-Icd#gIo)%8;ow5A7!#zPZ|pHzqzlc=kZ1{i?6UPpZ7BraN>aC7YZJT$=&95;; zqtUj;B@aV7I>5Xbn3eVDw zJK!MZY_)~OxH}9~{_mrwHg@`IJc^@@o&CA;P{1D?PhCOOfsg_Z1#2WiJE6>G6a1Qq(60&A#f_?mzsz?BvJvtwYAVxY$oQqTXsGC4O29mjzS<$ zo2CTI0EiXJm-oMwXd7wWh-u5L8#7MYUX_6--%W3t%Slwt26qWEU`=o3057r8oJN<8FlZEB=%x;pOQvSS*$t_T1tk z5SGxkacm|*E1NFl5w>q6UseSi1{hm*z!NreCi^%&+uEl2c%zyp@9HF2YZHBa*WD4Q zyi%=(d-v9Km8DYD;(yjp%Zui}BOsFQ`szoxeF?g#-`58L-r4o`#&(Yt9@I&}-P~Gq z^m2zV7|!!~To1|4*S-3A;^WchpV%0O=vY`_rl$ASJPfC&r)lf>SnxdjP z>+3EB*7n$v={6|TC@CdJk|C5^LLy&Vj5nn#+e3mpI`C;!OiW%{iHkC|tOSeBO*%~; zn(*dH4OwW^h(pEa!Q{|8%*+fbkUp@yC>`Tmutcs64-jin%Irb{0%^K}sGc6pC@%?M zNtB~?SmT5`h+(Ko2ml`tJWi(f=Cu{=S$#7mQm+96LI=KwQPVUwHsa=&VE~Ds&?uO( zXJ)javp+aoQIU3C+A(c-MF*H3Je`Ru065Fb+skc#P6NM9RAi4Vfea@cfF444cz8Q< z!Nc%;@TFXfX+(zw4Hl~NZQhNG?i@ivX^M^kK$@Y?J$v5*8NgyFM;ehG10;A(o#z$UBhOeh%98B| zN25xGig}a(0HIL1-9LYRcpdOs5IC>(1>@e-Tnd1{xUntdm7 zgjb0zGn1=>%C3Y*31k`@8=H&yg1N}f7!?`ke+tAXvI~75FDmTpJRM_Ot9$g=F)=vq zJwwUlb~EEUy3+v{>FL!0G|9^PGhE_r<-aW+KC+q*e0(rwtf1MLCJQj%CF=dn+hQnC zCnWvqLFS_h3Zi(F(g&|8O-ww#%cCTOM(?mZi+f`+tDT|A85I@Nre(}$RqhUn0|g~y zW>(vywe@R$*%YE0x{Pm~ce+UvXboY4352UFCVq^KSaZ9)`t>whG2YI#E$kTydWvxRP}jC{!n}s6q!s59Qg{v|maa zKm00=1uojDPDMiZFkQ$K1Ls4bBDP@?eR z_0%$m6|kFDO))<=w-#I_1k_%D3jN=Il9vGf5J;G}Aa!1ZLQyT0f!2cYRT^rUpsIqO zb;*;xAQ{N)08^j>5FQHCv0LlOG>dlbI1$+W@Bvj@L=^Lr_c2Dit$Lbi<~&(_p5DH? z(H0W->i`AlP>KeQ>t8c#?i(1+OI4Q#0hhj3sW{@mt5>cJuC_F;7Xi4USL3#Ia~dHBsGBP0cT2`xl$iSDxnh&I7J}@yjd*t*=f5G+tY%+3J)hcmuEj zkON8{uo`grom93c%_nZ!z`Lr46xXTlA;PS3!#$SZRjXg?g)XdK#_U6;=M~u^*Y}8G zE>mxYhKDZ(f63aMeitpZWNrfa;WVTy+16(54*nJ}-F6U}=8XBs@W0D+~psub2 zCZ65PncbVK%@ws%_oCiJED3g9e3LUtwX1c#COrHCV3IoC1_=P8qKkA>F}u6_uMx)v zp(Tl`R(^LR503(W$^i7xZM0b`%dV(axRkZw+}%V~Uch%$W0ayBQ?=~vwa(B|1;{K% z&{QcYLI4%Gq$SAEA;FgN`S?$eG}wM@E+}UJ76A;_NTs|ub}UHtI@i{YwvkcNj*kM{ zU|>hp>A~Vf_3O0X9zGz}*6z-M8th5PS5#E&>ls3E>+1uWSo!nyNC{6>DQ&h{cMhNg znkVjGm)_(Q3HZDeZ5HosJ|)FZe=27I@YhF=`hN6fL__oXK=lS37eGZ%pjk7yIK$oH zxpjrAz|L#0Hs-syfCBtfGvy@O*9Sguk$Vd7#b)6}2WrXY7%M5KJd%UMXcSNf9C2%W zU=O()2@39pOgxzw4E3b7IwP!Dz*eA(w*=RQ*Yro8^VH`#MQ?rR_V7_eUIsj=6~zVB z(NT&x`urK0H;xZvn{#Cb1)Tw8aC*ztDdv640v@oEo8ih_fEA~vrgC<%DrEPb@qb|J zXct*uss(^qzk3LEv7i7I|1-C)Z91a5Ot4h&DOV<_%i0ZFUnZSpZ(IPu3@R&E!VH(< z-N1(rZrr#L^e~-VX!B8;vWUx06~hJbL;6^LeFz|l){uyuJvB20)5CD(b6o~yIVOgi z{v21Fa_a&fRaocO{zqajGqcyiILQcz4?tuvejN-(p3_m2%fwp%c5cYMo7-NS43bUP zuX4$Bz|3d0TiOpY4gm7eZs}C4dq9au%U(22QNy1KxSi+u( z@t?}j;$$mrOimnRZU9jL2s=)~85%uE0=bwOtUtG;>b zR@hD_0l`Ll`Ysa{`I)9yue#gh;&2Ohj+jwO(g5>k4w9&30$=U!?rMWve8k9Lt``kd z0NmZ3n<22pz_@UIeck57Wioa8WKr0DD78Rg{xx~-O6!VInD1_~Vx}NNsG8`GNR+ar z7iEcBu~zPTniFbh;1@%HFGa^wy4)Mi`(A4+A%puxZXK?0`JD7x01H5ft#pNss%2^h zeR&dOwe>)rEi&%fJqwFCMtrNHkf1OZz(`OMX(|kWMBO3YI0G_3zs4;Wm>MuGiTd=- zE1_~0g9*6qZVlOV4YmjcUSo_l@R3XPXwbv!XQ-*ULDn&c;FP_qF`dcG8#}52G9iOW zWlA_4psmoEwH(iH5$#)UZgXx13AenT%_gzvnV6ZG8m2JPY0@7P(DI*37 zx?xU6#zQE`;X+i;>i4iiF>=o@!;e*PPdRU4tmj`PG~RV zfiTmDVzHOc>A8p|?Tm%t;u)|51H)1_U87G2fSG{UWult(e$1qrEx{5Bga?pq>v^{U zLNDO3d7zKLVVKrm!sF>H1vU4kZ~>tVa31>0#ilz=mf>_jRA+g5d7UwIax*!xYuW{9 z0Ij-cAvm1t%Iu0YNYXr184i`Ft)-ID3 zAT0q&148E_RRB~&<61y(E_XD)j#yIvd~Y^XODi3k2bhrq0v7jN`_$AFmQDCLTtL9LTT4^^I6MY! z`rO*u`g?O>y)meK*{VrBazMXLIL!^&6+!Lom)<6;XGbW&5eVF<`#5&6)M|Roqs$9$ zYXrw*OIfZ%IHOd#LHi06?Ry9oSx?WZXdWX}^hhQ0L6fX3`9%9C2@xzyVB+WGKu~c} zD6RtC;s<%K0!?3;#*E3$vtORvhVKz~R{>uc8!H6a58~aZEcs0$;N1-k_wfjKZYHX> z37|PkG|_|3q&s?27qw)_>O6K<`Q@wkrzt=aXCCwlBga>|Ru&h5+R@NREh!P$@u_RC zJ98q^*{nDg^!5aSh6a5eAf4DE6%^v4B4PQusdk06FclS*N6*d0z`;JtJ7{xF7(%tt z4Hox#6P#iMt>&uv