From c08f943453fa1b180aa87eeec8b87b68c67ef855 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 24 Apr 2019 10:51:39 +0800 Subject: [PATCH] auto commit --- docs/notes/MySQL.md | 14 +++++++------- .../33576849-9275-47bb-ada7-8ded5f5e7c73.png | Bin 0 -> 16384 bytes .../45016e98-6879-4709-8569-262b2d6d60b9.png | Bin 0 -> 17408 bytes .../7c349b91-050b-4d72-a7f8-ec86320307ea.png | Bin 0 -> 15360 bytes 4 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 docs/pics/33576849-9275-47bb-ada7-8ded5f5e7c73.png create mode 100644 docs/pics/45016e98-6879-4709-8569-262b2d6d60b9.png create mode 100644 docs/pics/7c349b91-050b-4d72-a7f8-ec86320307ea.png diff --git a/docs/notes/MySQL.md b/docs/notes/MySQL.md index 831c876b..b920b64b 100644 --- a/docs/notes/MySQL.md +++ b/docs/notes/MySQL.md @@ -42,7 +42,7 @@ B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具 在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key 分别是 keyi 和 keyi+1,且不为 null,则该指针指向节点的所有 key 大于等于 keyi 且小于等于 keyi+1。 -

+

### 2. 操作 @@ -84,11 +84,11 @@ B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具 InnoDB 的 B+Tree 索引分为主索引和辅助索引。主索引的叶子节点 data 域记录着完整的数据记录,这种索引方式被称为聚簇索引。因为无法把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引。 -

+

辅助索引的叶子节点的 data 域记录着主键的值,因此在使用辅助索引进行查找时,需要先查找到主键值,然后再到主索引中进行查找。 -

+

### 2. 哈希索引 @@ -350,7 +350,7 @@ MySQL 提供了 FROM_UNIXTIME() 函数把 UNIX 时间戳转换为日期,并提 当一个表的数据不断增多时,Sharding 是必然的选择,它可以将数据分布到集群的不同节点上,从而缓存单个数据库的压力。 -

+

## 垂直切分 @@ -358,7 +358,7 @@ MySQL 提供了 FROM_UNIXTIME() 函数把 UNIX 时间戳转换为日期,并提 在数据库的层面使用垂直切分将按数据库中表的密集程度部署到不同的库中,例如将原来的电商数据库垂直切分成商品数据库、用户数据库等。 -

+

## Sharding 策略 @@ -392,7 +392,7 @@ MySQL 提供了 FROM_UNIXTIME() 函数把 UNIX 时间戳转换为日期,并提 - **I/O 线程** :负责从主服务器上读取二进制日志,并写入从服务器的中继日志(Relay log)。 - **SQL 线程** :负责读取中继日志,解析出主服务器已经执行的数据更改并在从服务器中执行。 -

+

## 读写分离 @@ -406,7 +406,7 @@ MySQL 提供了 FROM_UNIXTIME() 函数把 UNIX 时间戳转换为日期,并提 读写分离常用代理方式来实现,代理服务器接收应用层传来的读写请求,然后决定转发到哪个服务器。 -

+

# 参考资料 diff --git a/docs/pics/33576849-9275-47bb-ada7-8ded5f5e7c73.png b/docs/pics/33576849-9275-47bb-ada7-8ded5f5e7c73.png new file mode 100644 index 0000000000000000000000000000000000000000..dedfe75449305d826938f60f1ab5854e6a8d3733 GIT binary patch literal 16384 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 S6iXWT|I7dX<^TT^|NkE(ViO|( literal 0 HcmV?d00001 diff --git a/docs/pics/45016e98-6879-4709-8569-262b2d6d60b9.png b/docs/pics/45016e98-6879-4709-8569-262b2d6d60b9.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf4f9b64535986dfb0f66432044a3d604eab074 GIT binary patch literal 17408 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 BiEaP@ literal 0 HcmV?d00001 diff --git a/docs/pics/7c349b91-050b-4d72-a7f8-ec86320307ea.png b/docs/pics/7c349b91-050b-4d72-a7f8-ec86320307ea.png new file mode 100644 index 0000000000000000000000000000000000000000..de3344f3250978eed000070c328e59340d88230f GIT binary patch literal 15360 zcmeHuXIPV4n{E({8v)rCqzOc6BGLk(3q&aaK_DPV2SG~cy$ebasi9Yq61oPZNf8iG z0VzuFAOfNH-p>N}o-^NkXU=ubTxYI1KjsJ5tI5hLPraXeJ?~4E2XYkW>CQtS5DIye zG#UaqgMvVaV1GctC(5d!XTgKW5iNHYf^WYz3;si5hEzgAAnzl{4vbE|B(+0nIYJ;; zSx^3mF?fTKLbHsCP!10+jRbsUce0T6{v&t_-TjoLn5u}sEPn}p|G-WYiOx&Xm zthWE0p?E%J?WUNi!3v)#WQ7<^zvJduX6(Y+d@=>~LW16OjNIwK^{-*{#zc_r^Uyr# zLUJ)rKVMap3FDK-1+u>v@U9D|1roA&j?5?8C!BuHlKA__f3Nb+_$!R)^iZE_L{3)c zlqaaVwAL8@y=kx_9}0qHqruU=vu!{5Tp`LmhT(L%6VVuNofR_$g2$2m_cs1ZrSWj~ zrxCvef!uNVCm&(7nXC;L*R`~m|F^30=(sQgR)NZlwo7!wCV?N1@QJRUtMy9%9R+43 zNmSQXj1Ssm>j>%eCDKFR@`YR*(qsmP`OetomD&?gYc`6iFS=?Q4AdJfqoz%4eOo=v zrv~~@=0cU{9=hwC@W#h`$c^7*3C?e#64O-3|DpXs4%_da=uNA?yxO+J^fafI*N3L& zM`-GPenr7P&!A#wm~kshqeM^B|9a|J^I^ZfQr6kzVYeacs? z4c;y!02df=e$edPFFst|=6{4)A#6>Zi%%4Lo>Vp8`l@hfNR#LENdM#oY?_|GmbQM< zHSTQy2R?Nv1w4Y#p0<^nTw(O7z;t8yNxDA5^#E_Zt8{rwc&kA7)NMkMXa0@@C!V1h zrN~W=HUqxd&hdVWTVUj#pSlKz_wm0o7T;jn#MD4?_~D5RLy=kAE2F?xJ>yjG2nkfw zd`eV7HFP$+`31v#SM;d^8e<_aC0-Q5a4hBIoUtsN9UJx^{7Y%>wECJ0^hCB1@bp8M z_7L9jS@5W~zoUmPd+UnWJ?24gSx-pAIa{B135(Iw_vM*lQr=O{S!4{{6t zo(kb3^GNsWcrSWi-g{~!#1UkZLbMq(@tcg#KV6_YgF^q zh{b#D6D*@c*&QJt@3bbcFgpUA@knL1b9ANt#S+P{?sQo(76?iVsUvD<$RqW?54{4Xc& z6PfxQ2meW-tsr#&Hmkql;6JHh{Um;$y2)SR_`kRDAC-oCy+5gbQ}}KNpR)UPG1K2# z`JFz0C&GUv{EK%rHUF0MUpe{j#B_m4;+o}neZVVB-Se|AH(wv`z9uO9?5U;cS9^$j z$kR~1v#I{3YPm+N_ec6Yv6&7zrnUem1>KeTn*F7ahx6Ow)`KNGo^kpfv#irDJu?B+ z`azqM(aK-*5d@EXeZKDrd<_S?-+j3E@T`Y{-|uXvIKIaC|BeJ%{@#vw8RN!q#2t@~ zpq}pT$zg5^3L0KmZw!apN9;+yzZHvN%vknV`B~R)jfrKbwe)6;b!oM&-i)I~U}APB zn2sN**JRar?eY|+-#?a7!GrmGGm5xJJeR9Yd-5N)AKs#Z zNWC@0qU)Wb@zS;*R|99k6e+j&Hs{R*t@?is3vvyZHarM&k2~3Oe#f2d;mbbDo4i?n zO>1mpVLcbG&u4q1OVt6k;t z*0D)GzZuDafrqFvYE(BP@?z=4XU!-R_WE}I})+>kN1^2l0pYA@v1VUhH zyeJXF{jJ5iKW-rwKlO}HzxEM~xU==hDr#$aj0yj&pzT{M=fs#yv6;`-fY~@5#CPu* z^2{FtRj#&Jf5cc+k{6809CFVDi<9u)OK@K&B-+;OvJIbsz`#}@SLcp5do&FKUc)GJ zX|)@U_qUe~Okx;4X3`CDIlaUX90iDYAAcU~uGi@r%@vr@vnsWv4J@33MiPjAdWTJt z{ivXPR5n1nC^B+%px5dbYSYg_7wg&%=L>5u#GjGM%2hiovmR>w^o%$}5lAGyo(m|1 z*e~Y#cky*aFXldfH;4*-(iy|mUtf^NEY*Tg2#kvtMVp>8(sXThDkU`PnhAQud z&s=vNG7MA&P7L7tG>lJJ`AhQ7DAxP+2&`GQ@@vLpQ!Xy9ar8(bhP=3!2={e?8fM7|;(XTpI zCT0k?7Y9o@b&1{OWVhpQott?Cwa`nD7=VG9TjIDvY(F3FZSorc z6_-Q3keRrQc+&eGwv0P1sdqe6WaX7|fx^i?oPm6T^-v(bH(ikt`bi)V>?n2u54m|U zk#xkgSsj^jjkN_h+REC)tsy%y$jltrjXzsJsQ$||j2Gg=v)8&G-QG7X)NGG>j?=9$ zRHq5U74l`yK!U)ekz6`u2^L-1iQgsmZ|k0^SsS!0`~sbQ$)1{aHLvbRil#>{(aAs} z7AYQuMNo)XMYX5ip~pXyoo;0E5nxwNC6^?U(gc+c7AxXNAR)}GHZo1?dFTb@qWF~5l+IWZA=I? z&xJmSRA!OmG{8|!g7WLr-zodfNHP0@0%cQ@hVQYomtXg>yP8iQvY~eKX?307xnvMI z1Ma66q|N(GeTzlBGvdInTZTa(Z7Wzg1_oESFFbkA&S9`ozF4I(;%$`1Fp zU%ZB-seXbze5tScC#xI~xY9V?%q??n9EcT?+{E*}Z^`-~CF!(%4_j~&3YLBNC*AbE za)#Lap9aT!njP=Pva_@8D4Y-)h58Kf#IdCMF6RY7GvO0MF@;*d}-0uuD&Q&euDM zuf4RjNs_0QIyhYRiD>y!V$oHf1zF53LlrwjToZwFb4GT@FTOrLFe_(;OcIf!sb<*N ziKM*_RvTqVm%H=S#_4>+7Y2%R?sW}CD@)Mg&-#jkG8#qNb4{lCftnP=DR7V9W~8!* zoKE28P5yO48xW8bBd|o==a-k+AN%1dQ1>N-nz-Suw)~-(W$zn9T1Yn&Ihy_2 z9S;GwfS|x%-)<5?OqxM>)!%?y$-hocPPT|5&gG}U!E<|?QXwjiu@Hz!m@EpIURe{1 zd{Tus@b%Vo5*2n{)RP}UQ8TgvhMypgOT!g*6cDL0^Up(Di$iV95#nf*DBKH1kDG43 z6Pv7%+2=@ym81P->JeYJi(EiPJy!EsO(0<1u9TDKsXcHgr-I;!pm`(@H4DD0I&~!q z+dnRcrojaq*Ff+DiPq6=`YJ9sv~$R|R?j3xppyd92~<-LggQYVo_#FobL4e0UIVX7 z8=ti~-}mA^QRh8b3t%dy14U1eFKi$vO7bWfi>@ToinFg#wMY!O@*7 z;|&(Sd|Oq+c0g8A8msXRQAF21J#78;B_z@6(kCJ)XkJw?+rm>Tusz~x;FUhF zG!K|3#-1Akg+@``caU9YPx9}$1|&=_9**)@d&#}Rp6d2Iy%!K^KXmnzR=S^lNW;Bk zpKeQ*W4AR&RfZxvITK2*EmtTP$r%3vYwx-?@n`xwt9p4`Fk<=yo zK_l=HiRK@i>ByW2*#T*Sl5LT=eDK8WxZ^!;9PiB+HXtBR?e;ci(|9_`cs@$SpEVbz z8--QxFICCNqo@U>^xf8)*(cU2?8fWuI3N&RYw#_Dn9J>_d=tQYftYuHHbpYaKvM@s z(j$L-l#dW!L-9%lio|>ps+4A8ac&wdHdEdqg&8QO2=fWb7gld+mtXnh0}$3!xz&9S zB)2T7SDlWZ)7qr`;K%gqDqLnUQUGuErC*%|*^XR)8x~y{X$z@IE3&S|iChAsKi&7k z?Fu_ZQd|?}rExj`Q%o&e@nv))aL)RyuU~r+k{IG%FXo41 z3+xQxOiEKMuCVEUcisFc@k*H4Yi~jBE)R+YlsCSHj33j8zI^I#9M+a(7 zA~5wWgr|lk6y96C55fyYpZZrF+v+E#?J3Rk4`9w8`B4Cu%wq*&)Kj1C&F&OuSLg6^ zPBK*MOY`iDgNVDLg^-=^E2P9A7srpwx{oiUMG8C5srPuxOCGE=WXu!8l)xNAA8dIl zVY;1@Scto9aRnuVXt&l=v97tEf(B-YfW%xp?p)wy_6Pp=g9oZTT{|}41ADZikXm#z z!)|0q??1m8n{NpmhW_J_0yDcnVQ6Y6(VG8ZQlx@E@;TmLfAU)FA&BBN4at8l)KNrb zHwR%%h%jG(9FJtT&PGam9Mjp}e<7YO;eaplV66t|Y5XFDj;VU0jr(}+LAnKRMn%2A zVnDUN$FG;{3Cxt}I`C7A`TIOUEPI4x+j?fmB=N{3HJA3}?ZPP>0qTo?&S>Qv2D0ae z8PS=sS|47l(b2)KObhdD4;!TPS1b|@B>BaTH4k$YR+yV;cv4{%>Ey@7#o6)r;{CE6 z5(TZbU(DAba?mVn4+FGUzrieUe)D&4=3Hc!{d{?eXp&YbL&&0&#Z08E6o3{xN?&{< z01&o;luSz>1r@Tiv(3ZBeK9NFVBSZ&)9qyG>Hx7(%2quTD};XPky2B8^XPp>1BpkO z0Onj8XXcSi(o#n8U?$4=YpBsT>Rh@)a&$$75sTh!y78}71D{;g+YtkK1u63Zr4T(@ zT9(oa<#@_?fh5{Ax{q*F(nP&8QEtS=hj~9xy5)A)6Yv=&Z+HMs8$OdZpZ;KoSuT9R zPES`pN##-+8jRmcq3QIal%Nr}CKk9s7qjw>v+zo+`=;8Nnc$MLva5Pzv8Y1$_>*!K z4t=ncSiw6>IPV?#t`w-=vkJ%QuRS6^=S5AyBGOpuVd;TaprqHy z(IQREH(!1fMDYtP@Y*s~V?9S)kBRjg7eWS3d3Qd|5Nqt$@A{Jm6zkb?jiKwJrUtEn zzc#oCZ>~p}Ft4HDyeP&-#kzK;GGx*U;Jx*WPKwS8wTE7Q$V&KRq?I(IJQUhIk>Gv1 zpX};wUV0%L^6nr*Y*FMgG%qiYqvit0ephXX{?$m1{#`$|GAlqA-M1!(&VIwn6E?Hz00e9bB0r&lQj$EL z<%M`uSQB&eCz$&+{06%JEva(uqT&5d~_ZLaic`m%As~=k2$9 zj2xMMIc+!k)^5q1=#FD5!Axn{)@Em9nT*bsO{BN))_Ir1fsgKv*KG4rz1Eu3Nb%Qb zaP3b0ay^&WT}F=H48khlI1Bkl zDxJxklnMh(Q;n+>{^w##7q1c;TZJ3l9GoTYS#+yd)#;mY8^ibg)AXYK;Md5 zF)od|WGBH`qhf3CXWcKMOpNEd zpi_echvGvqthT{kmRk0G<#Ww`Mtm*_;H>~pBdjRcd~ii1MN|U9Qo{>B)eYbWzx}Vz z8SCs3k3`E`hv_DxY_j(^E-zWh>sqxTI8hg}Q7PyGv^C-4aQ}4sEBaiY<0JcF z`Hih1+rBnf8>g3~bssXCc5Sc9boAo3OHZy1bhe3fePNiEFj_a!*5J6E;7)@RHto3! zP`S{LcSa4t-vdsTU`g9=;NDg&r;m&?%MXzp|g}<|qc+F=Xm_GbgGMt?g8!*$Lpd-_iX| zI4VS2FnK(>v2SWGPmWRbV`efmk^ZjV#tYS!)|rarwl{uDi=0$Y4%%G=>YPxr=drEl zkYyE~Ux<7(Md3y19vzM`d;fS}h;!*V{;;}YeRGgJb@}W*pbevE0R@m|u9c_0qj!S( z+80~oO&h-e#Ii6fK@r9zS#x-7kq}lLFrT*16WkK{`+}r#>tQZ8)S|0^Kv{b`d^c%q zOHk;T`(XGBMJK4*rgubt9A{2Ns#o1;_<1+5#%bRHt=0#KyM{X<9V%XZ65L@ld>IR< z2b-J@i)wkP-dh8rG`KF)&UZSk2n`YPm|vS}W8#ksUbvTksrJsQhp{q$fLiR8>kOX% zQu-m;)9l+F9s%OV4Xc{`;!}eOl~)$%J(E3O^L&;lZg#5W({)*d@mB`s_~H$*psJ@{ z(rN`Yn;*L^SUC26%9z)>l1yWs^j1Z$jo^cXao0df(!SBhO9>y}mERs2Hpv#-E>OHD zD;fK^wUd$mCn5La*yE*c1n>4k$DG4Ye#p6Qm_@gV$UV3tq4mO0d^C9{fT&DMTA>(4 zz5Q}r61ScZH=A9G*o4r3#V_y!Liwl?k1!2 zN(6k(hh&3*z82dhtAaa>@png~c~Q+xZ;{$1^ZtpWy5;Zj?+5k!5CIRvXN6~hE{~0u zFlD_|kB^le^;=pfZ&e$PxsG`wwN%F#5T(^?-#DLL*Dkj+`XP{(zY8*bfTxQzoBXsl zYhGM#vFWoJ;TIPef|H@$Z_)^7^_+rbH#TdOmncR-`fc-_sh z%lfcQFM$4N<4XRpnhoENw4pfCb!V^U|c*@MaO33;$vSLIdk&w8jHX9YQ}H_*7>v}Ge_xX+(%`H7^{PHZ$}|8qR(bSj=ti^OwZEuO?G-VYELt7tAF!W zl=^zpXh627$^|jiuql;#*b`zXhlVFppuwTFk>~eACDmuE;CNfn+Qv(Nka=<`b6r{3 zD+Y9j@F;qgfbWo)LiND7+;1;Pu6pttzA8OPlbyURkeR%lAj1**RlXX^A?U(tKVO+0 z?UE)dh)SBiDXOef>C)}By*vH-g^mkOAAu55l2~~3IviwtUu5tTDytU7R?OUpi{oZJ z%$dKIo8_5#$;d|YhZoIwoGm&a!?5r5O%0tS8nn0Q0s%suM~5pflpaSKeJXN;j%a;9 zM%=#tA%+G!7gLEG>^YjWF(3{hPzH;=dW@y(g5~+BJB3GftLl312|SyOMF~ZiWA8m0 zt^97z^h1T0QOMxf)3E^Encffi4N8uFbJ?`X+NiE(Ynwnx{57HKsJB6v`f8lE zk}R&04rf_N7S-=8bd~$_m_8F*i47r1vIb)+vUUF?|ElJ6-_)nDeY#w|jUQ~m423zT zFU(}y#Ig=~b!T)_ppnsmrONgfb%|^DKh$sPl(S_#^{2t@h?=wb;pRWLpM}egJ>9o1 z-};72mOGDOG=9nu*I2V&x&tFl{;Jga((7Xr#F@Wi0?I)1t4VMDy`2?HNIrS<%+BKBmjR+QEze%0eD+{_n z@v=0yul|37yWOk&XT|zX0a+g3zu>l-F91>_zy$tCjA9e>K#+J8IeC;VpV~V|3MdD? z5ti=qf9kZ%2*2(RwqwF>{@?OCC_2Fn+^gv@EEjnc{n{T2H^?txP)684>tV5e;?JZ0 z@bjlb|IgB5tsOS7=;yh$z!%T0_pO@IEv=fNH$DN}^2`boEakMfQQl$_?zriXTGcv*isoRtYZ&Zr^qOW(5*r>T&C91p4q zz!m>vHBp?f`24V2P5CS-vQw!H%^>;oqgut5yjs{FK<)$3*=3(&PcMes+9gd|y=&a& zet+xH{c5q^J9=;Fgou;c#v1En9D(=q7~@T^`BxkKUoQyi9q7L;Uv7i)rRF!j|5xQp z2q<4{|84p5{qcWb+Ul>Y!L)we!vC)}=k^%;AZhBJX9D9LkA&<+{AN!c_u2i8r^Q}t ze>y5Jrv|urCXM0pfs+GRq-CZ8of6DKr5h9X^ zc8{8~#)flUqtUIp!>Io_T%=d?q>w|$i+Ap2R7@9c3kwY1KJI_-9grW76s>ZtNEDuA z>?$zZclHStkK)j$!5N2~gEn8^hR#l6`1iKTgzxuwVhTj&2XpSKzFSusgf?^Umw8B_ zdFh?YwX$un7uxu|Gs^i;c4y}z<-)l>);4T*Wj`}*w%?YB%{|#>=k=*V&&I9TlW5^Z zj|*v3Y$@3fIj@jP(TS(_DE%_vn3h<)pCID7moTuY5cAU`k=nItyFmKNf>(4tQuISz zD5vyOj?}I1A5JJ1ripJVE^6l{BP-oLx6bytj6myQbyO(H2wh(KR1Bw2 zHDjWAQZ_Kq;e)^SQr&XfJ+C>Gel5cy%rZn*U2qEgnUr+Wj2BT8kGZ@0h+s|_g_x9mSD55Z7e)Cyo(as}Gd~Z3m z6tIo&U0m7 zEY@KUM4-G|pEEC6-+HJ=-nm3Ql(pNKrkzR{QHVKA5d~ z*cVYt?VPeZGTSpE?N-9mgW2#C^^cHu&Qh5E8mX>N>K--S$alg-;Or;9X3?)#)Nk$? zSlbI)OAZ}Lha#VIVm%lwtR1$dR4;EHcDZJC@(7HGJG9<*7YE&zPPP#g_-={>I1U@M9FXdl^;u^}R zZYlXWxp?*`Zqz0zT0SxkMn1=NGe_tOd-kT3S}yY}!Fi6d7U|}+%7uo8G&1*SaUG_c z19lZuj<0v+6t?noPbn01!~jO){(Cy1OJ~K#x~nLox+SbC4DVi>=X~e^&GSyX`@Qzj zdfNf(0&b*ObH#llc<>yjA(k$Bj}VE{kbHeb(X-MWcSv_D?Cn&do%{Lh@RQ7j&gY{} z&U{w5pxkp!{=`bNk(G8OtTbPG1*}U&9&>#!MBcJtyqO~)I|fo;G{CcG9p5};u8m6; zDOk{^E=Z9mO($sgm#m}aOIDu!;^9fsTXksZHp0RIFZ8&TT067imPdlVaeT6I&iAC^ zGVb!fJQG6!EU)3BWp(T4Hlyj*;;Pn=j^Vo;2(2tLY=*!3o2lq!i;(TY%WZ4*)4iFc z+xwpY^JFm{*_#(RkYKKzLCDV}`xW`+9y+&8@et`L=QOe{(2%+Fpzy-9^t@4EVSaU{ z;0bkw>wYZp_-cRjFOit9(IDZE;f6kIxOIB7e5|9kiK||+@m!P|njX#0L%ed=>s-W* zsBQr5;8Nwnx%r4QEeTtrgw)!y>LR(23)7QkI`sl`taRV{QWG9X%p3^zd6Fx6F?*MZvo9|O8+N7qXlph zU=RNhC%K>Cq_KaClm7plHa7%$cOVEbjaGjCfN0CJ2V&q^L%9R0G~_q`NcKDRQoG~C z0j((mLIe$NApnWF2GCB3I6AePJgRMJq-ug^nEDX(8u5Y~71BxV*RDtj`$G+PO(%xd z*OFru65jz%y)YTMaP|whaa4Vm&RG7m;3H?{1zwaL0$@p=n^32)~! zBA*ukhSU?uM}t$jVwHOiKXz+57*9-oNmmIhOctCM0zgmx)xSVb-b0--tCv&SKCBhL zN~Q+cmHt}&ZC`!QRRJh|tn5<7QbU>Ues{ihA%kWL_!o}jW;XX}>-Q(K|3I_%|6P}O znnKON+I`238CA!He!g{3^(BKIruKtVa`aod(`=N8>r%=|VJ_l47qi<}dqf2~gus<3 zXiPu<^k7wPef$Me(uc99LsrA(9Sft?V!T2pcS7&*F(*AqDtXU3%i#Awuac1G_7Y;K z%$gtcOVv$d+OBqA_&rI@(ViusR3(ZrJ^4}vnuUTVJq(KBnCCU%B1H-?G+`BPtB>C) zR@#lx6AeMu94_uS%j$GoY4_ zg@Tq8LBKOcin#ss9ncC=Lg+GitsvhG2P9EYUVYr*TH-S%u?}u5#gfTO7mB}2ko}T) z=Tqx`e7M~PdJ$6EV(ubb_iRQv5|pX)6UB6em-WWSdfpeDz7L>sU11Im0W|>!T+l+E zAYZCBrFfSEQ>3HUZ@W5Qm@IUa=fY8GR<=~Ui2OI|*FH8$@m%wE!ziEzi}EM*aMmpQ znf03Ic|{XHj-RBJw8xbh=G(ay>iW)PESVzFK)bY{J`S6K|kICp=LXJghr>IHo)To1Bl#GeQ{ zg=XE4BPm7Y51`rCp4isVGWm=Q*`AYC%ARhkcY(8GWV_+CCFWJ&R_TSDps8)0Atv$H zNuR;Hh1Nv=_wQA?R6Zy56igVSxc#npQ|60Y3cjPAJ)v>>Mnu|OlQZ8C@3XEu_xI)s zCx&pQU$lioT9T9fE;?o9y0F8k@}K3A(5B}S%=gQz8Irm(=+b6(=0cC;>-=Yr>3a() zKVa^a%E2Yz_bKN!xx9?7w@2KqECxM$V>TD zA(+|>Le-3$0hQvTcLpz!QHk9S-qbFjKa*|1M~LI(EfC-Hs*Y`-t#e)gSOP=&7-)4& z>#`RyG0`4D0_Z{8ub(_v9-$7M=B~2eiCHAXFJg$Ydc~7rJDDtlIP% z>8ZUNGHp7?w`uZl<}nFdFBN6g`L86BC6aDZT*@EmDC!(cQ|Jg1VvzHWyHQrX{@|Tr z=Ay3j{F50gQGV21w>5n=s!?L^=I{-X-$&`N>YGDZC)4)qnCmldzKZ(Fj^?U00Sxz`Ai%^(?>~sY^QF}VtOg)d};imaY`KPbeNCjAd zOK@K4$VgSC2*R~a#euopHx(Wmg?j_Jd2&(BDqSg;N+slm*8$1_e=N%GopX2kDs64<0Po*ARZ=#2tj>>P;cj4_xW3NJ4|7z<6XcpUnr>U@ zux^+eFmNVGp`r5Lb_=_{RvSW3&THH@7@duQ1j{HnyNIhsCmq#@YRn6Ftn36)O76h= zWtlr~Fi+imRYVn19k%zNnP#>e?w)1N#GsQoq0nJ(;#;EMb-q7_AC)vJ)uLCb*AmY~ zrhfXGk?;AJNi8PWZh>stH&0Z$$F-EqFcO`$aB=REx0fm~s_OeJ#jwk`_SSsT4)_o( zwg7oawK$4!&EdKljx8IVd5I!kldIz!73cHgco&m6+K#7Dfy-4tX7~`VEgsbmv7$$9_-kbY)^JD=bb$BTUv%@`tA0pKE=%?BXul?nTcjMh7k!YnzjED(|0F#RP zK6BpJuYy-D=37J!1eK}PGAGjZ!18+K3u#p;dSXQ__e3@ns*V!myV+c)hF( zw7D6C_TH@Dd^IGm^b~We%j1y3nkjwxf%p3oT^~&X58QSz+~^26u(K>dRu%=7&+N&N zkj7xTk`JDEsEgs^D=Jl#!ZCp+&r9BhV#z}>swOer_FD7mei`3Y7ZuFReVj|eLqk~j z)7#spFlkN;O;$1U(^syqvv*x5zMO!4uJPv4#f`)w_G0z61ad7A3t4M=1VZ*JDoPbC zXBnT)d8f=8>tDm(L(_aswy~3Z7*G4P5cEL-;BXgMRGT3jwWleskKmf~%lr59 zYskLTEmoJy95)G4C(AN6XG*+{7@vLgO6iJL@RsJ~Sn`CeDs)@)uQ=qbKIPmiU$~01 z9yxmr(a4z7AC5RUBv#Lqdt86}%eAMHwC}y1c|~~NzpdW5d%IGiQl53Kioq5hj%a>`~-ur3l!o^duTY;}<3S zwl)UY5NGF89QQCITW}MJHn@(+vtWr8)oKxMW|3*rEmPOYoXST=nLO{-(n8455wZK> zv{^SP^IwQuf}`e=FSk*$7-55d@8V@>U@KPCxS$q`d(Z+`!kBgiac?5fwHc^