From f13febb89af6b0e3c28658420012d33fcc8ef5f7 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Sat, 13 May 2017 22:45:52 +0800 Subject: [PATCH] --- course01_hello.html | 20 ++++++++++++++------ images/hello_01.png | Bin 0 -> 46627 bytes images/hello_02.png | Bin 0 -> 52046 bytes images/hello_03.png | Bin 0 -> 85482 bytes images/hello_04.png | Bin 0 -> 104897 bytes images/hello_05.png | Bin 0 -> 70258 bytes images/hello_06.png | Bin 0 -> 49697 bytes images/hello_07.png | Bin 0 -> 46882 bytes images/hello_08.png | Bin 0 -> 51860 bytes images/hello_09.png | Bin 0 -> 82290 bytes images/hello_10.png | Bin 0 -> 21714 bytes images/hello_11.png | Bin 0 -> 15800 bytes images/hello_12.png | Bin 0 -> 84882 bytes 13 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 images/hello_01.png create mode 100644 images/hello_02.png create mode 100644 images/hello_03.png create mode 100644 images/hello_04.png create mode 100644 images/hello_05.png create mode 100644 images/hello_06.png create mode 100644 images/hello_07.png create mode 100644 images/hello_08.png create mode 100644 images/hello_09.png create mode 100644 images/hello_10.png create mode 100644 images/hello_11.png create mode 100644 images/hello_12.png diff --git a/course01_hello.html b/course01_hello.html index 527f76033..5753ed3eb 100644 --- a/course01_hello.html +++ b/course01_hello.html @@ -26,19 +26,27 @@
- Redkale 里大量使用了双亲委托模型,序列化的ConvertFactory、依赖注入的ResourceFactory、服务管理的WatchFactory均采用双亲委托模型。用于优先加载自定义的处理类,同时也保证两个同级的子Factory不会相互干扰。
+ Redkale 可以说是Java界最精简的框架,不到1M的jar包可以替代Tomcat、Spring/Spring Boot、Hibernate/MyBatis、JackJson/fastjson、Netty的集合,四两拨千斤。低调开源一年多,经过两次大的改善后终于达到让自己满意的地步。Redkale不仅仅提供简易的API,还附有很多不同于传统思维的设计思路。由于时间有限,一年多也没写入门教程,现在开始抽点时间写一些教程,希望能给想学Redkale的同学一点帮助。 废话不多说,下面进入正题。
ClassLoader类加载
+下载Redkale
- 双亲委托模型最经典的例子就是JVM的类加载器ClassLoader。每个ClassLoader实例都有一个父类加载器的引用(不是继承关系,是包含关系),虚拟机内置的类加载器(Bootstrap ClassLoader)本身没有父类加载器,但可以用作其它ClassLoader实例的的父类加载器。当一个ClassLoader实例需要加载某个类时,它会试图亲自搜索某个类之前,先把这个任务委托给它的父类加载器,这个过程是由上至下依次检查的,首先由最顶层的类加载器Bootstrap ClassLoader试图加载,如果没加载到,则把任务转交给Extension ClassLoader试图加载,如果也没加载到,则转交给App ClassLoader 进行加载,如果它也没有加载得到的话,则返回给委托的发起者,由它到指定的文件系统或网络等URL中加载该类。如果它们都没有加载到这个类时,则抛出ClassNotFoundException异常。否则将这个找到的类生成一个类的定义,并将它加载到内存当中,最后返回这个类在内存中的Class实例对象。
- ClassLoader采用双亲委托有两个好处:避免类的重复加载和保证类的安全性。由类加载的顺序可以看出父加载器加载过的类在子加载器中不会被重复加载,同时也保证了安全性,一些非系统的class是不可靠的,若定义一个恶意的java.io.File类覆盖JDK自带的类会带来不安全性。而使用双亲委托机制的话该File类永远不会被调用,因为委托BootStrapClassLoader加载后会加载JDK中的File类而不会加载自定义的这个。
+ 源码可以从 https://github.com/redkale 和 http://git.oschina.net/redkale/redkale 下载 。
+ jar包可以从 http://search.maven.org 和 https://repo1.maven.org/maven2/org/redkale/redkale/ 下载最新版本的包。
+ 当前最新版为 1.8, 下载 redkale-1.8.tar.gz 放在本地。
Redkale 双亲委托
+创建工程
- ConvertFactory、ResourceFactory、WatchFactory三者的双亲委托模型设计完全一样。下面以ConvertFactory为例说明,ConvertFactory的搜索顺序与ClassLoader相反,ClassLoader为了避免类的重复而先加载父加载器后加载子加载器,ConvertFactory为了优先加载自定义的Encoder和Decoder先搜索自身的ConvertFactory,找不到再从父ConvertFactory中搜索。 + 本人使用NetBeans很多年了,所以本教程以NetBeans来创建工程, 使用IntelliJ IDEA 或 Eclipse的同学请自行参考。
+











public final <E> Encodeable<W, E> findEncoder(final Type type) {
Encodeable<W, E> rs = (Encodeable<W, E>) encoders.get(type);
if (rs != null) return rs;
diff --git a/images/hello_01.png b/images/hello_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..34dc59bc688ee121c5a47b68dd701c2d8339a3b3
GIT binary patch
literal 46627
zcmYgXWmp_dv&9{P!{YA2A&WbUyE|lY2o@m0-Q6L$6C4uU-Q6KLL4ySMyZK(bKX;#*
zn(nTy)8|xGhpQ-o&{2p`prD}8Wo0DQprBy3prD{%kzgSIxZx+&LqSnM$x4c8e1bk{
zNA@$&Ocs7&LWN$#PG}lCFb-QTq-7YwPJxzvXQF4G*%_Y8qN+d@Pm4^$M9rT8i1VX?
z3qsz(9#rK3Qps_~eSnk3;-<9Xmf6&{<<@ilT4}?*oWI`ncp=rugApk}mU3La_nCwmN6rxP>|u
zGBqsN4=oOwb7~IFz_A-Xl-vjS!K>GKFz!dId*|JD?JMAWtkUOheZPS3z$JVr5Gc_lqIe%Uu8C+EWVg`BM7ROy$F?ejO9c4I?PFcyBqC3OSoM;Zot$
zofUK*M;pPWjL>Yp_oEJ-&o}Pv$A%IiXtIZD^h@jQo@X78r}dMP7Y6~YA
z!b)ddBSb6mY;`stt>C{?Mb6u*k>?gev&`+x6y}Zo!~;A_mT3@RkwocHU&qV2s#4M_Trg>z
zlwwJKdOkLOUEO%O@qNAZbw63!N;|31Iu`M!EqM>rl4=JByQ6CQp#svJCp6j&OOI$4s5Cml#-9wc5rN4TPCTyq}9)6V4DUAD{-y4wt_4N!9m3>c->MzT~u
zz?oqDO`qPG0cNO4nA3nN1v(RfOu$sY!TA)D!A5cF!OiYKRI{P2T(Lm*IhK{WFll0}
z9G&u7Ebb(xx7b?q%rhwQTB`g`bIeNQ0J-)NyzROq;u03YVv5htT-!?t+i^bpVh<1g
zh0t7SO7_N3c$Wo>O4X?-MCu$Kq^5Q3L(yE+Z&$HqI=^klc?^R)l%96;$kp>{gMJ&v
zQO%5M^AlMT0uTvFK8?YWmuLXfJLsOAiki7KpNPbPJrkKEMvj^4?acq_n~L}kkg
zEGv&pi=u@d<>YF
zc)XSKvc0G*_;&N1vf#(xPN0X3CKc-|0rykE*QZMnF7Jo9ji;aQv<;l#$>fThV5N=0
zn3DM2BPcEkQ}44AWZ(f>zEwaI50KOd*nZrmPAIp&014~y$l@Klno1l+?
zQmr7lwA$tyd-P5kdla`6leaM_@b^>4NcWtzReG5)d~vKFHpm?7qg7=-ZmNvVH7$p@
z9Ksb7l94eXlPFsqm22rD2I0PV$(V4L35D1JleQC>p9Q5w#T-yuk!bOwS
z6a9^ch0b(N+O_dWJiOto%}$4n7e%2?-@B48zR!KH9l!AqNg)CMK88%d
zjOE2P+2?$yFkWt>kuKw^*^7p*jOR{^qyMlHk8rKisi8fLVMnbCCDC^=)JR^9Qa2nZ
z+_gxdSEyDmIe=wbS0HVL4?R15oL`5;sh%f3nWkO1?xb49{iz;PO*e~Qk+P(Y;`%%R
zHFU@W{#x#y=&fkG#;jGq7?q-?IVBdRi!#oF*>1i-OuXE6#J6G%y|iT7CL0PXSuF$w
z4!ziiuaPzsKsl>SKNzF^PCWs>_g$|qldsQ(THyK;GqF`NJwMc1j89nxUdCftaBz~u8gzh&7T~whAO`L;6R>N|;
z3Fg@LiYFNnf)BDWaqAg#1t)9wYZ<5LKW?kZ1)Q#)CZAphb3E4kAt&%mcIp5*NA0ta
z`pcQGPos_bqIPG8$6)=Vu-o)pqOunkQjfntIT8a^{k{I6*WQ#TK@KY5ndI4TZ2E4y=BYlEzBs2Io=SYL`msKaUP=)HnqHdQB#p1TiIy*$
zKW+_NdWO~+C7#WHw7d4JK1Rd8=^lR`co*=-$I%)K%KFsz=_=EypIpkSZaI6EKIe9n
z`1ECe=Z$LV6|D}nKgBUK1^PS_6byGuSUw$|b3Dh<9@S~Q9DObYZP>^jic|PVv^xGe
zz1-T)l{vh7R~kjn0OPz3yk8NvkiNT=xV3p?o&ht$Q)-YAF6Bn{bwsJ!s3W(Jjugfx
zXbqDXliYyxhmMYc5WJO21n0uY>Tg8M^4}7O$m4`vNz~L`7*)D>X+fR
z2M43atx=JyY}B0Btv4^Nt)9J%^o_c1+1_^}T&&42)WBy3pzB)O?}{_!&QFTKA_tY|27Rwd|oIZCq#T@
z@JyrF3iFC*^qC7M&-PtLtn!^~&pG>16y!Sg`m^QDu3qskk^4S?vhSx~e5UYXm<^`s
zWA$%*e@Dqr_vISudX5j7T)qqZykYRAoTKl`YbWgq%8SuA;o3?cn$)%b_a?-VX;&!r$JRChS5uFut
zJiv=~srm&5ycL4=@b8nV%5qt-n$S#SE?=;~Izg@b$)k<4c6-gkKq%)qPqC`o*9`SO
z9^b+onU*oL#_1I0vfbo&VC0PSERt4Olm)btbAOBzbmBFqm>0SoX9bb1TI}zxKw{#erJb=!fl8=|9q?xXkL7uX)j{rby1is;%mRS8q=b5)@FGB
zlMZOpt7sUhe6)wTYm~5MqX<76)8-?z0X#ZkyTWig1k@$q*tnGQCE%)~^0YI@O_$6sI+ek_;
zYo%|Zs?(?$ZU-e9IVJZ6+w%*3iX#X|@)(fJ9n6Eu%BWVw2^KaHWktab_Z!_Z#_C`4
zpi0J{8mbc+B+`o9#74(WCf4$*d|x-vNcBE*CdAbwCX(x87iSrFnsa}A~o+%g*r
zv_Uj7`R-@4SuXib$N6j_Pa2Hf=2W%-gS`-4eNDC407JUghG)0O*-nvj^XjGN-|+%D
ztB=0}bA0#wTM-c-jd@S@c8qSnVj;fq+^U`w>e#x-lR%VL@x}sk7AWa`n*Bk#aq{_O
z$u$-1aN4tz9oj~4Qv7Q5x>T6lnHGmk_w+=tA41vi{Hgo*but(3Yx1B-L-5BeflAYN2;&;Tszl
zaLA*?R9mnd>bwy(wnz=9rlvD92guQSG!Vi|V7lk^U{ta!KznIn2c>tUml+TZ7u6xD
z#U}4L11&E!i*UX=Sg0!EmkCnBK-HiSBiF#G_ha=cZ>eg^Lw-~D)fI$h2ZXgnM9jjnQz
z29dwO*YuE<#M~j&V>OllpSQ!n=h4GGR{kz9OtP7L
z2;xWJL#F6WH^trIhVNvCZSPOoZ$~$2Q|DK~!R?%1I-IVw15TRWRCr#E<#;`P6g*3R
z9iPl$7uIP!g;g59-*_wj>+Vg3q31+HcDBh{lSEBe-QkzS$xe=@E8EBz5lMUvDCqS2
z1eDICB}W^)iQc0ElaBS!d!jE4Vlggr3D{o8mPb1$6k?oa(o~>qQ+Nf!Srn-P%V>&S
zof@l8Rc~QED4%LPRCjG)FhA?U(`m~E(gbNL;2@8P_Vb{Mh|4#NJ)Iy=Qz=>};TLei
zwI?-vf?sN8&`F9XOryGvsYWlKwu2U?P*Ue~&U{ZKq@_}Izt4Q`?gsU;TT+z++={kR
z%=^gibTC^;0Ay~IxZLq;+0ggp(q&TU4Y6=a
zR9#ZvntED1z0b?^^`dy=Ju&F{WGN>{gly6CQ3Cay*G0#%^2F1p?)_V~BunAud7O%@
zr^SQBiQvrf56>4pwt>Nme3R~#O9A+qKVm{mO=SOYawdy48N`d=-iDK3U^(;D3H-
z&0ccDeu8kEz2jAfBch!Cox&0}gH9t8QcK?*!fJWsfReNOJKFAGb_L+g@68j}FOym9
zK99xZAKf#rFI0o|CSnaN
z;-K}rwdeC*YUdo$0i+7#E(GoNf{!7l-wfakJ>sp1)PrR}7tvgMW*|c(jw@l?{Pm;l
z6B2K7v>myxrZy_{x=&nnqT%%>6(;82#fJ;d0AZf-OQ<&GYHcVB{Or3KZFE?YOHiuj
z)7Xbdv@vV#1Lz1s8cHcZ2s?@zA{xw~F*eV*>Ij(QnpsxUG*&x5W;sm2_A7>q4)ddw
z2jyoRiFj6+C+UEeFJ~ejZ-4zr9X|OHNeBNb07V}CBlSnD5GPwZZUenl!ObbE0Hdeh
zxTWv!@SYhdOcKC{+otVEV-_>#YPBmm_3Vcswh7d13=Goe9e9vWMa@9n&q_X;?5^D}
zc$6&%tTRJ6)j|Zev<|&y3ZF>)Ut=@xvS-;k?y|E7CrI!6ZWlkc?MKAdWPSRDSUY`F
zD#)@HenJ|W{dsGT)Y#`>%vPDicWkdaweiC%#ZxQ)dc7l?E>%{}I}Z++!d#
zkZYmc`$vo8cX_wPpN%UavbA=&a2uU3X^x)u7k67v?urw!tS=+J%AV?&{rw
z1Od0Pt>CPz#!S6~oOT`EMP7y70$1#rZVN<5)P5qu&
zN?xH~6a}wg;Q$OxS%E*N8e4PUQO>i0Fr88&rtX8F2E)Y;)tv`7?Sx#o4b}cJNF{o6
zrw!XPspdmP;Yqix$=Ui3PlPuBk1my=v@vxUv|*iymgqZsJ9+
z-SpYcZ+QjBL+Qj5<37)oi7~p6xadvBsCH#PDvV`my0iQeGj1Sqm^P?n@N}88b1DCc
z#l_yu|1?o?`>j_JPE}G6Io62K0`mKxzdK$nh0X*|9&K4W&o7rge0j`ud933(UWCQ>
zp<@U-^ml%_irfrqBd}o%PxgD@rmEGa-DGao@Yk78p4mRDU)cA|!nY{gt-3M2qIL2b+4s%qCAxuh
z$9Rka@zfknBhD`U{bhL_4Yd9wa8b<4l_P?2BPBY&_*j*g4}zs>OU_D2?t3tcgbLVw
z8Rn&>4<5q{CmHMtPPkcriz@~y3>?rZr7udmpbTIlZcBy)Aa}$JLsARANQ$fyLkUAl
zvb@1NtgJqOc#n-mI&6Y3qqTHs&vo!oXR^Kgu>5#yLpW=roXMHNIOxl@W#&sYrZGk#
zvO*|LOO5W6FXx|?YuqQ}!~)&kkU3LS0hzj}P*POSI}IZ1lx;X!>|QShCtv!bZH0k0
zgRgKPAMlp0u}$YTK}q!?@L0Hg2D5G%*>e4-g8p31cBFIi);m2SYMIIc;QzY_e|(x
z2S&>+4Utggp)|}aveC&8+xBpTyp?m5<{ghsbkEGuN`q?%ttrVmMSH*DW}3RD1q7KHm>Aeq31;hNMNBzKlw;
z-Wnffug<7r=GK_0}9;0eRx#&I-ygXi{*@@aExg
zaeXaIUwXK*z(iyue2XjNoV{kP1$l0Xl-Os5-hiWd_nEZ$Z8Iq;Dc{Fa?$ao9(nVuz
z7Ja`73StuHp3v&1T|3l3Uco-o$Lh1A4BxH&S{J-kBXV!<9LLA%&JCeg@e`AHYCF}R
zzFY*X8oLIxl7xs7z#JE)xE~!n-$GiRu;jKhE_)%G=XV0**-JHhItjc%jqhvNj__^4
zdlz!?kQqJ7$l|G4-2A=FekP~g;14|83|g-w;RI=KyWH(i6njpNR7D6AqmWorp(Ip~
z0CcKfO$;?serNi{XtE0~20?FWRT06Mm8Oo3B#hcfHt>`d!0SVq=Rl9PIVetrQCGpR
z6T#J4k$_OO601LQBTEd@@BqvF8Oy>y&Y@7li@4H^Y4gWG($9AK`l~{>YxSPDAHE?~
zd(4+Rre3svod(Xji<`plHScG8{!F*b{U`evJ;_YH6#j+ka;g4C_VC$|k+4VoXEGPQtaC^+Zhs;W
ze~?esh&7&0>MIYrPCFCk5vj49IDS?h}>{bM+LBM!AW8`RQ2?aE#p#^k+
z4gUdYVFtyfBUFC(vWFDY)3!1|4C!cM2
ztmc8D9=~Y&9)#!IdhHcEIK1}C@3*}sF_w@zP5C2sp*Bi4f5O~6B~jAZADjo+2}=)GY%Rog$@XZnOCj
z`yg%rF?8Y!PYRjtMH`9m?4T1#R$lbZWDg?9=88$bJUPA}5Ft%kgl0mbNP^};UM7ZJ
z5fCnD8*GK~^g=OHBxk;co6vi6q*`bNw7T9F^jSMT-$_g$l_Z-lht_;()@d-$jwiDy-fjlbOATCgd?hT0vFW1s>vp+
z7@B9OjHVqsqBBF0^;#M-B*e2Fcc#hZ1yJ83WWyAx-xSJE0bSzDsjm-sdQ`yeI(jwj
zYWYD30oB?BDCQg#UOoNvBAhXtY%xcBX!GwlJKnfK5NxB6hobC#^c)R?JwsLiQdp*m
zYnPi&Z2@|MS`~|SEePuYJ0aS8*7hO?n=;^x*40E&3f0+wJNP;}5sxJxxZhf?MaPeP
zN>9_xWCD}DytYpI9KP!+4ynOdRTtimCw_?kW5A#xQE*wSmE88cQ!a{0*H&RhI#p7~
zPpJl?@CqU<5QU5kVoGDp#3Vq^d*%
zSz1Zl7t2Jq3HD7xFHwS}^xFBq@+iT!qvx|D#Z;$JT|fl*ljQK7O@%NqZNZ)=?gdLY
zg6RHEQyAIRmLH46rW6hUkS5a(R!w|^6J4#Hnj{W}10AAettd0AXP4?Ds0Md
z411ZzceO;GgkE#R$6&BfDrF8&3rNrlhv1u-4}wYGqSc|1idoRh!OLJut)w~C#gQMv
z;KazNgSnwW86#>`80Vaf$2#SAyv5XmMQ$e7WM-!?;7V!e{JAz)A+zUq`5mvxSm3n8-dXGV&nnq3SfLLwO!eLc@36U(=8VTme0`|=Vdj*cIicq~ge-=>2M1|k@tL=}x-^}s0
zG<1k3L288s)$=v$7ey0IEKUz27Kn6MD&FR$a(HlllyGlF;r1)?G#mp;eJGGe@>J&7
z)Mt+aP9~&k30P-vb!*TGk#jj|VMl!B1pj2wAhjtE2B%-!kP-#F04J3d$>3-SlmZx866HlwLw|LFx7Sq`^LpQ9KK7`QN15^}co
zbHD0%-_D~a+m0hOP;KwFWo%}{uc;?yy$BeJ_|jL~S5F`y(2ctEZg=&CYo)ysrd%K6i<
zAc{Z*NaJ&{u(T|3AlfZ2rTn{*K@?#~l$>i*1lv4zW-!(7@IT{L2${UJ+q%l%$iM&9
z^8k4i3Q)=g+n~6`FPAlJ@d;w|ug7z#5S9uwB#E>Bdz+uDi>zn@j!W?Gu|jjIV8NcK
zGUZ1r{cBA$3t$qfW*Gp;{%eGP%!fhWFyKu~)Bk6C0<8vA#?_6c{O`my`k*|MBCHB<
z{h>^_jul-xiX=;BnKfo=Ae~AU6VC+|s)H#rhQvSa8xn;_
z3lc(kfF;4Sb5IpyagDd)SHSd3!b`ehMV_`IVn@4+hAB?*dUQ8P=oZ&7NTptALRzUS
z&Hb($4Y!s4*D5es#IM+kPPKM0xt=zJ)@WTjdr^~WG6qDK
zonj1tn7Udd(n-YH8UD9_hD2##+dXh~=fnE?8Gp@0jxdF#+6(su)ieB3Np@;3b-+S6
zsWc?QXuj1KDvdKOl&$PZ1y8T$&M=G7@+O`sZmODI+J3b|CGr1W&pF?0eosI3&}r3|{~ck|i)xIK5C&=Il;
z_Sv!!AJ7ajRHLIA<*eWs>6}zSktJ&xXnj8(gV8%-{RW(%v5BPgY-yJEbxnA~VlR$s
z!?(}p{$5fd1e@7{yI(Sy(zY`la73%i41VIaoSSPq--j`IE9OUr4Ujp_ZLtAz)RKB-
zH2>RM{vPZqfn@y+)KvP>_?5BFRFxS}fHScSo5)xD;f>ks^_dl<`oNuz`p
ze`f2SfYu}w;f75sgqO=Y<0V>6)Gvt=LBJfs25mMb
zNPDErL1B@0^(u6K4Hk&-TS(5?0c)S-;i?0lv2LEmGVl95VOU%Dqg;8dGmRlF^toCT
z3SMZ$$HIia_J|s%%9qZ?L{5O|zkvz`kQo;BA(hH$F8qk2V{T+#MA4*6SUQ}LCd_P|
zqFb-@*H9UTMSs_QYk5?ZauSIMm_g-fep{pr+V!)f*gO8zb=ifS@Mk0I#X)o9DShd&
z6ncBdxtTQlH=1!%!A`6odL~J?$yEFkv!b?~CabtN43+mpn-%{)$N;-iTm!P6V(zQ^
z2XDRsA=sk#1mAV|mt&y-Rw@ug;64a8)%|A{5GcH1c>4mgdG-G+ov0FB_0+KZHGT@%
zw-XR#!S{uBeE8=rq9n*$=pLpz`2T<|z9j@$B0Hgg-v7LXJ|e2=TU{cy4;hf?F~^ka
zMy#I0OeP25fEt0nICBk@o>u%0HhR8bGZy)Mk{r^*EDgb&*qI%!zc
zh2y-#_mj2@-k8m>s5<+379>50>xwZ%MO+RN+sIW6M?r4W7c^-wR|OD~VAF6GQ$0%_
z9enwJKz=kLYJXE8*bE*%B1*Pig*ha1#HZwhJvZxLeu%K+!RV5P9TQ>knOeqtY9x(NYigCtCW++&Zr-G
zYs#xp$fH*Fc|J>=oITeY`2pFUkxBqT>Or%tz#(GJsx&EP`6NYuf8FKhOyt1s!hUAj
zuomJN?s5Frk5;x_+$8N>-%Livd;C5kH)x01set+Y
z?m@c>MX24&WD!Xe{J50ZjK!y)>jOtw`B@IKnRA;Bm+iET$b=gOfG7E*0n3*yS$^n(
zXgNz3ob}r9pDBOba6*U19G*MDB_(sSB3(l^5gH~06$K4I-A&;ZA?}i8S|ba2NXg?;
zf!tVcDpi<>pwf#`2=j9o+)o{E+wBzSa|7MumftqAVBot&cOTchAC3_Sz?y|9=lOQ9
ztdh}u^LtrDqx|ge`)X+h(@w6UTvTA7X+f>*f~
zXd0cC4HiW}|EYINArh-d43$QqOiREc^W+Yej)~<^)!AFLA(YVUESM>wyUniIFy#q}Kq5xKEQB?E|?hS^`W3w#`F@FUTMT)X@1Jz*{(i-kD?VkkOzPgPkWJE2K9<3=
z+))o4TF2Q8gJAJb%iIT7+_u1v>-cL6x)0B#-1;**L(BQ!S8L>k@>4^4N6hL>qLB%~
zwgG6-zCc0@L@3yqETDbpn7jZXnpDFBwu?jO)lu||oE&mVOL{MezCHjw5+Bj{jW1J*
z^0>L4(4!#0@}07QM$>e4_K)VRka5bRb13QRK141YrGT}7_}O59}ip?DY04@OFN9ibNWxpQ}T>gsyA+dTL|
zuPV?K*0VGB_8)4qUqMd++1VCNEj!$I>Q0rEH{|1oqta);yC|_4k|NF$Oc3j%bv{(B
zk~RNo7<+27&{D>XLeI@~)#MFD(Z{}g3%Z+sKixO}M&1*a{3%T$#aMw5kMRhopPOEle2BdW^|4m1Jg
z=eM+5drB(6=%F*8|7x^S!t0PZ4LHsDl|$W@bt~MX8Q&9cY;cG^HEo}zL+lNHalP5$
z-=a=!oj`f6l}Yp}RK^9A$lVU5X+X}UsU)u!ecNf-+i@RUbxGAskA({KFDRaU
zT5R#Z%y#I>d{+%;!b~*tktT$8b$N~(q*}@qvae~}dAG^ahk{rm;+JPzVRaeU4b=D|
zBN?P@7~}ovz@k2Z&M5AlxM}__q9h6a!tc8pP-VW7!d}f3FUjRzyg{vTmMc_;q5@_p
z49)}#)%QkMFIRoO+jOciTS4+77%?Syo0)ew6+L#U+w`r#7+>{cBq5nLextR5;mh@=
zpjFRK74mOFq*!xp_^f;si{RFg_4^4&Pe5Vj4)x{W9`&Z~q^|p(U;0=+`ryU_-)C9V
zf^a)f;M*K#rg-f4@FJds-7brW3P)cyo_SsGzsfRTBHoM?TIX;>!9&hOqGae2*kOfq
z&b@Nu=OY~DpxFF=Uelf+cvSofgXTKblCGAF1b@R;w`9$CdMKM&FHmyxI?K{Ab0w;J
zXkd|63)vUCWpFt{S>>OTbp7_t*;ji7X-MZa6q?t5tGl}bU%JLzvVS_4rIF{a@3A5;
zz`D&_jLg-Q71p-%o~LZx5|=VtM(Y6iaN2UUG!*3S(SDlEe%#b@@Um0PoIb)gf^cda^vF1Fh&bAd8>TUygW)|H9my#6
z+ae<{E(p)<1q%KF_`kWaEW(w~imiy8Y$KANPo&xsDsG1>C5(26+-d-OAs;u~*G1$~
z?0{~3VpK#s4k}wXG|JVXm})91OhGW#$Ad25U*z%+KVmY;T`Hj2htf&{&Q#P#^Hha^r29UFJx4~)W0orB&5rtLr*Ey^F_`L65Q+J3D
zOXY|`U{`l`VKwLm8iqvbQUZ8R6$ylz`s$Er!iYa#fbfRRg~K(4UNU&Sjkqe#OWJzn
z4=AteAlD5wKThsyZW6VsdHHT2C}WPvX>K||3g0jLEi68oAJ<&k_OT8R1w7|eD%!aV
zqW3Vb3k1ixt}`Qb||`$uKAX=k+YYA(7*F0jCGgPOZRLvYql8%SsQzjmoS?!a6T3LSBJen=kGj=JnW0veAn?y;=BT6k42
ziJV5j=i!bBE4?E$4ngX|={cfu)Tx#(-X4?rQRWYL{+$Fk0(AY*a@fPJTq?M0z`Y;a
z_wdNOSnR30^spWw17`WFH{!4^+jR3*K+0|5#S-1en5;|!;s)R^!T&MAxGqsA5fss;
z`lEKy__&4Hj4ZET8Jf(@`^9S^6#|C_fgf@A1+Z<&kw!R=vUM_B~qzsB-s
z`yTcA{gQ|fim=fvRrd&?{hti^OTUu9u7n0ndVI_k&m{gYa-aYQ#0YE84Bm;!y8liJ
zn$rXj7o2eL%wQl{tDyRqnE7MnAsc!%`brN}J1)PG+8+h+gvOZYqPNJ`rPLV64;n7a
z+jj!m6*?Dxy8m0<&y?I86pw36dyQ^e7RS>#3Nj7}JaM@htc-R`>8QLR{N;cE;Sa(b
zLE8M}5D<7_H||e=#N)JG8^2y}24ZBqb677`EueyaTea3;zuMUOY+v(n8YH5}if1L&
zN4rswD;7^C73AED^-p#pw}|kQ+v5!?0Skok-d#?LY^dQV^DRqY@a<;0Of;Xi9II`^
zhtTzHQww|AjsL5D;-GWCce~
zkI*DQbC)MqS9!2MwajJ{o(np~+3W`!=T
z?pOcc8v6NPH7Y&+d~cq|A-3}cf%mdOaaiQo9|f_v9dhpZ3w@rb>IQTv7m$?VjQf+s
zu&6UYQNJjrQN#35Vw<>F56FOdTlZ2%KP;;)&F`5cRAQt_K%A110p09b%y+g_3+o^p
z@U6~DGyo|Al2v24c69!=@w!XE_Pm|=cq`xmpwp)|v?*md9-*q<*2M6{B`wVbqJVQ_
z0ip$dQO+rIcf;Q#^xs^)m_o;SyEg#|0VDc;O+$bT8Srh}a<@4FDgMVvyqqnU)-h#m
zI-NyKttL{s!+d?p_^;(V+zpnW{einIdq_Y~6#)-Cs1
z7$-a*wDEAB?6@>52KPrAtZ_x&>vM$&4vD^UntTcI;=-KePO4DiF0*>o+skX4-*63<1jSn@jU&p#O#+#aLvMK{_OfQ)H=gH6T$b_@?
z_xpx;YkM~w>Zzd}MBw|mmbqw_44CDBiDCKd3U(}UO)Z))Ur+!g`pIZfC*Cw5SbT3}
zcA$h?7eq1`ksCNor=8ccFIU|cRFOC0li&YnxH;=|AA72LdVJ$!-9pv$vhear!1=2p
zS6^#v@byZp*}JbgnC6^Q#%MrWvIBNI+KH(QNi9E|K`|zU>zIKS_dn#{C6sC>=w_n9
zdbDMqQ_S~yWg%OweM2EJOnpoH*}Z&-
zGp6mk3+sBwXosD|U-LTpI
zcL*tt$pH#;M_!)H-^V>*mbgcFQH&R|6H>*0#f1?cbh;!*4p`;?equ02h2fD}?xpo2
zfxrUmJgeZc-r`#RjoLXyztSZI2(>ASk9D$4x6;{Zd)=AyIx#DrmE3z_eJ1$2q3wQ1
zhi6Gh^{`zdSro6D2uo}>$i9O(Yr~M}zhK(s_Lgat)lyWA!)<*7(TZz3RnNKJNT`*o
z>#|_Yg?w$(vU-Abus4IE-fDYMLYZZ$g5C0Hh=dJO%JYC
zlo~H+(ht*ZdOO^B(gI62X1;!~GP8s4@m%K$bEjwbHx!c>%XdLL+fybe4j>z*vM4xT>Jm}~id-d)>{Zm>=>QhD_k5o^txErXAD#*2gU0{o~b<2_xFYiF-d`ywUP
zH}5*{(a(XgWI{xiz=&2MdG1>N_>HULcgr7_PcB;ne@sf?`6zm+hG_quLe}rx8a2A9
za}E^nmZ=3zzXaRMHD_XP7^7Ly#}`9=B<`ZWC5ic7aYt+0WwgR)D6pT@H;>Bhw%)t^
z8LPWQ=@ZN`=CD5h6#C{s^as(FXx(NIjXJ?v%|RQvAm1B%Q3w|r<7alay^Wudm88Mw
z@#dQTT*8)=BGpzi#(DhJU@(A`yPng%(ny#mbu<=vm%8ysN_tM?*a#0m%3V+~M7!pJ#cu_
z1%;0EL1=T4(1&DGpDFw^rKk-ft&WmgF}0oXq)$7S&^-5rl$%%9nvPSpjS@>vo9ioY
zJCcPrVgm+Q8>EJReGglE@1IrwWi9shDmz!O`@-Q~eNsHJ4o+F7imAf0kJ59H*&*od
z_r|vglg~*9Eq-e?Wi{;<*Vq>vr#h%3%!=^k+5~i+9t|gU$f-VBiW$C!Vh&xn!+xev
zjWdn_>T3?jHAedEPcV*Hjv*{WlJo5OP9_l=gh7eLQTpB+v-y11Bj1wW`CgZK1G68F
z@D`)KI44l$bU1t`g*i{Q-WgPWMCpox`S~R=U|JgCsLO9Q
zSSBz)aO$xVmir}MCCT0c+hn--Z$)N7v&!Sp_YJQ*!kSuI1~BU}uth!WIC#3WEQFfs
zcGY`YwYEdJj6(E*@?tfjbUE7F{k(ncnZ%Z&xs_Yb|A|h^f2TN0U%%_OxW#nHj>Bv$
zin1ZQ_nudM7R9`F-9jj^;BOWARF9vldX7%
z6H^PZxu06EvZVwbZi?T4@><-gB(aD4itaUQHZ`XTGA!isr{rb)49=#EU=pwR&m<`q
zpL)lBuC1@IyPg~O#+Ge>LBQ+vgeO5(g753FaJ|`cw7%^2RGQ
zrm$#t&6550_VzhXyY$*s2Frf)^@TspO%|&R&GBMeh0mSdqAEZEwZhL1%o(PiV7}R2
zC~ED{^h69*x}5R3Fm@zUpk+MUTvzRL{T
zs^uo90*dKq5~n^a^7|psZ%>P?i6Sr%W=OOh;J5-KYniOo&=2$g@XJMpX4<)S5r+Jw
zAf*!RqA!mep6B+O+Y6D24IW#?>3#FQjC@y5b})9zca}jIf$U8s!83+I>b{pF?M~;m
zTz{h^t%afdq`VzsI0xWa&IIbaDf}D9Qf(!fhMR!}4-F^VyqJ43DHL`4%44wLAF(59
z53tJq@U`L6;v2&Iu46)?ijHC?M8z<{$?31XWK#M#cys?x3WkB9-YKrXqfW;%hu`h$
zZ(zil^k72DP@z)%N5>$L!AgW;^yjd>tad*CxjNej>)UuigF_@YB*8+*M6jsJgev#1
zoP?~-TneYa!5504T)w$+e>LMoPwZ(
z&{2#T(fgrZ76OeYC$a>*&56+SX&?EaEDuT;kk1YOE*C%wQdaM_eQufx>7l{7RcM<7
zY>0KaMRC3HMSd{s+Z#hDSSV96iJHaTI$i;gZsX>?I{gN4eS8|&wh;AyI?x~Dhou6m
z)qHVztnOi6B-jHQmGI0W8g6tqtK*<`5f-S98^2);N@hY%@k4f{no}k2jUvzWlg+wF
z4Aho=qQ+*!`xM$lfXlRb_sQoU9q)NEh797Nd+Ewx_pWU6>XuoFbwRWl|MUWw-Z>Ir
z0=^oUqu1|>&lkz0YtYE=O%UAmB<)u%chU_ye$7BN`UG9nGl-`Zrmh*+v^kgP|G=^7
zQx%FX_uOQ$>kQ~3=EC?CPO)DXAcF`?P?D^w25#F4!be2ikLq@r
zkD(PfO~V>%dXE@$y+aV&6)hf@&f$WO5Lr88Mp~Y<<9u)0OJ{9b^VK~z$R_o4t+_zu
zd?HI;fD^FMC>Om4ck-)=I?e5&(g{^*xY-$ATMaz&lP;lXH-V}$nDPBLI;tg`2s3wMIZaHy;3
zuk9`aE7==YidEt%B_9mi@+ng98pU*&RB6Y-CKT+OSCpo)+ocFSEPSE<{eBzxLr>pA
zYXU@Eb?o7WrgYLUG;6d#2y}cz=Xa#u^AP}}$b`s`OHI6G=;Z~LmB*mG7@Mmx>of=@rK^?9TCTtZf9O6xd-IC5D0RV;e0TVw4BWNepNgpG6)1^6
zYTuhqsxC>+W_y-?9Gf3yBTCdK;ivOT`(7w?;1(DBi@?-Z75J?v4&U?+3C=hW_+VhS
zvrQbhXWH^4k$L(V^y7a0dZ^>&D0&t};1g9&V34O@%KlNG`uCnoYS+Q~hTHXU^YWV_
z)yaBxMHU~t;^vp5+@^0kH5#8jZZ87Ty;lbQkF~dqs;gB0A{1|@rI=4@Co$9LHRlAys{w;TA|C$RV
zF?7TgvrOU9W|y}lIo6MK-NQwqj<;{#nY}_6>DYeMc(j2#eeE|K-4v&+LuOzyT0N(`
zmtz8C6}gQ?JFqXQS7L&5g@%kK-w9kjGrTAt0pY06h&-Iap8G9^A
zB3nl5%mZqiVG4WIVKNxbba7y@@qOBONJu)+P@as1Q@~~*y!MUG3VTUKc(mzg1t)_y
zMl+4jceC3P@6X|b+lw`$A{fy$Z3sMxA|F{YqEho`*$FUN-e!JsN7qFnT^S+`z1ty)
zt@7r$pv;6PERBV{B=f#GnJ3s+pa?snXFKME_r}=`f9cP@v39>bCaSzaj%XAND~txw
z8DkN)wWZH8BsKI<>@qa;F=0~W>=m`Y;H0Fl&4rX;vO<%9V4F!_vwORsr7y+1ifDqm
za?Z8usE6+F&^J}hf~U)gpPY}jVzdo2yBDRXkjWT+qP|H=A=~`C)0e{N{oHbiEsCG`l0w0VVO3<`>jMx4hvpE+@UmXt@3z@U!j0%bq~jK=lV})D8#4o6AdQbSTx8+vRFj&uY-tmx-@|i1H#hzy!&{l&5EsRXQfr>BZ25C6*qD&;NFHbs4<;}X%CT&mQAQ
z52cRxMW>w?V_Q^mP&0T&e50q{7!}huD`P8NFr@ve#%^a}iqFrb?-O@>k871kDu#B+
z3CcP&LyJOlVTQk{sCYPE7M~NB?7m`GwA*fN1fyRt$j5IVxi<74<#XR!y^U?x?2SG%
zKkK>)sezYi%i*@Id0`_V^OELm{WQ$r$dR;rhJ+GlW&I6iiqQCO>o${*^K;^(XaU%a
zRL>)Y43xP@&=Wlxh_b1<566~7=lcb5kK>lY4bHoA^C}e3^PIJ|i`Dgk8(NU>zrwKv
zt8r^JCsYY@ga?o&U8x1^siDG1XBhR(4E_hEt(|N`0(P_Qnnt)d9({aJ}ru|A6gnN}NgOQlLtoyQbNP=*}Z3{T5b{w>MKe
zI1b=pm)!fcyQ`z7KGRtKz5FOvq?_??6ws(6qGn7+01m#=?@VEVt2cEH6{b)tVE1)T
zKhr;Lm&WO)I;oHW372ELcQr$Ap$Xq^c_iO&1DO
zWe=aIU_xQhPw>`|6QddVjrf*p7%sP<&3k*NI1Fx7Yr|l`Nw@>pvgXwRuiW;?y!kI!8oN30pS;k!=WK
z@_wUfOoF8*TWxc5fP@##>op$&iZmR4TNWzzOJ1-c;l{gVzoOjHKk~C0BvB2qs;%&>4<1I2cR*-154*WYd50^1@z25prZKq
z6JIg`3c5@2qx)T|10MbVG!epCiN}xbp?&vIg4xA$6L4W!Z^R*Y!S6IH1ipd3k>{G%MDLLO)U-}e|f
z0Q--$Q&Rw+(R%+w|JEO557^~e+)RC1*YvZ;lo~&7#R&4psW2+z{xJ0QHkXq0N)kk+
zvPw;oLMFm7NIvoIjl=*i8b$2c=PCbD#6;x)6Dp*Mto1W8S{Tn5)qQi{;x7+JqvNC=
z*I?s<4S#mED5A(|d$n-O*+dl9Zs+#lKVNYmY05#^U29emSMsz8wM+rKs(5`)
zmvx$XPwvb(Va5R*49R$0M|Mo(+!O?oSGzmi%kAFeGa?(T;p#eTfxzue_s>qoZI~}7
z#PIS9i!|YdQ{LS}IGwYQd{;6x5JgCb)qy%+Rf0-6_@m;&3R-FS=+ZIRfO5rPZ(lXL
zj@W@t{dTO;K=}lzyZ}dr8#Vm@kZ8{T``(vN+v>RhpOp?A9O@VfDaTF#bZD@>+(~z<
zn$tE;5)wgq<&9m1tC`dDn@WcA=wc@dt0t}HkndiG)K@a}I#nGpHRj@FY?zK(g?%)!
zROVL3pFULE9j#H`1-p1#t~Q!~a%oLY?7>tt18Y9nUAcCb=bn(&6u37C9+mKg)e@wR
z7$Julf>aP1pOMuL%8o-huTq=&A&b`4Rt2vHtmqqdfH18DgCZ}bj{hu2KraB5{%(ZR
zC#itnAoGKlEbH_Jvv@XXbZ8=llNQLl;dO=9`2MSWrSq5GU!tum+EW`%BWTGap3c%$
zBY;!UdVi?MW$8)-kJi7P)4Q)k0T%D|!unN+x3Y?nm~e2T@d@rb%#@k`Qoxw{e18HXfTZyB+WtA
z7?=a)m?Ra0qDpAE2lBK}euDxP*!nZI5(?ey0dH|C!A1`-pAgYr-1G_{bx{+_Gtt^6
zdb{ih>G;eCcT@teu~F;%oT3RWW;{AQ0BeNY;H0q-Fm-FRerUR3Wy~l|#a-h88Pv~M
z^@>A-Zg!gA^n9-*FqVDcxtyQP#SmeR{CDuPNaDj0(J0QI(+vA_e9;1Ba#T47bh)Mf
z3V*Pct}NDa!&NxEdYyU2PUq~KodWLRh$bnJn9_k8$0bbK1y|s5J=kO-42&>C^!k0s
ziZKjkf-K|H_g@$amcvtNUjV0|kq4%d|B|B(pXllTiwoaS3cU)R>6?MO3HThBAoW`u
zht{F3e1JRHl@SWhxrKa6#9esjyRFgV;_3!1&XBhXj4YNE_c4SR((
zW%C0{&Sp-?p$kcrz665!#cZAHCZkWa2dc1kw0R1xdnJ+6TsV{X0K0aLA+?~{`S%?l
zHQBM}*iva8`&1eBgj4IBPGWf~4v{?WMc|e!td^{)@5WZtcTSgc@Tav~ne__xw^}tr
zD4O*W8CD^_G~?R9q?w?Z9w5SBUNEv%H$)Cc&cC~+{lGif`BwhK+hV%@c&$xC5u@)k
zqmx~yD>;fj759lCjq?=zcLD+UpmMJL>4WcFTh>Zm%G-qmxhB0{F#&P0J2~Li3eqG_
z80Hu{*39jbFf3{58gblgz668(ITt!ki-{N)*L{RPq(7D?7BpM%r?n7wp1Mmi?PYGQ&1i
zA&m*|#%LW*9g4z51pWHvp>$f#M99ntf^CX@cc)eN#e27hD4?>v-YtSQHRko>d=WYf
zHOpsQbv_(3s-fFi??=Jj
zJI%*6pgw&aWe6%#S9;O4#SGB%i({Y4=uaGvc9i4Q?w_U9aeVt=XhWa#!3A?lzdd+z
zSB%>OzuNMv*C!b<&(iV!1Wk4nvxem$bYZKTlTYl|TG~N`XV9tTlz~EW+{e>te{n!5
zKCpui2bs681);THztwa`-Gv$(d}dh!fF>ZNWHg#cD`3bJ#Q{{Oxh4YeTglCP47czy
z!Rz8WAM+)nNLay;J&XEF6$V%3^3OXp*a=Qnnm$00@Ds*=bntcD9cn%(iH^O?_OG9p
z9eARDejMz1?|Ct0zY$$ubv*u(UF*#%P6T+t&h1`V+n#LEb8TebJ%y$M&RPc~B-d|1
zgr|iF{UMb_-cj7!xC2j2fXH6j?mltKlkddJsu2RUD0BF%+b*)~626qE7t-`*WQn>;1?GGG@;>788M
zs=!>20%w-f??$jd=o`cw!}kfr3weHDE~1%k#j_Or5C)Ts!xL`Bg%i45h5mz$&;E1X
zb7Z%lw1WFAvv|IbKQ@&=`;AVnd(Fa1hwi7nTmAmy^J2F1;bWHnk2K!gvoT*RkR|Xr
z;RvAJR10_J8iOM2)azHtJ^9jo9%X!f9=4X9zN;;>{NWS^QxWuaHK;7<*^ffYA9GH(
z_Le*6NkRVpX7@|m;yOvB0DwIXtXngKYYc-J*WH||et8dv%T;VMr|m_`#ni*c5+0bh
zxDg;mzDz0P=YLbNUVq!OG1z^AzRtjr(fRz?$HBeUQn~iNE$8|1puVib*TS!7+J^J<
z7qQl+ZeNV_h@WU?0PA4YendiIyOFuQi;6(7v0f+FXXhF9a2R@A-*$XLLGv5`>t!Qv
zjA)d1pSpbKM#Kj&qDe)*!N4olZOmw
zWWaFcmfW(!KxHz@mMpN3k+f(a=5vL7A*_Y;yejw2-NvoB;rR2S
zV1T9CRVQfGeY~|F!;C3b3Z!(wy#!Ms81`CQNORSau#zi0v{|3l8m#+n%V4)Dsihr`
z5WSNXsx_B+oPF}7#gaHS;f1nFVo}pHGY~KOX-&G>WN>`bQ{848Ch?w;%2S_XCsSH7m9H
z#uH3EU~ANsr5L!TLb}k$GyXpJ!?3nbw#tCZ9}W{oyBkvjb(|4H!PlfX4%xVg$-U@Kf!%py+Aoa5g8
z=UeSt-_%zU?2Rfk(2BzWmn7DyYH~^}Nrb$9ef_Jss6#R1ru`ww@4jvi$DJM=5Ni6&
zU25l;?LebiSo
z3&+{lhUg)zH=(d9ZEksg_vNS=ovbp_%6N6iuq1)-Hpe9C+MHWWPd22|p`cCWifj(nHJB@Y3V%>Qn|G-{nV(qTy
ztG~e4dQP;Z7I@{ik@rfi5Jb()cp*$v>#xZmy7F?uK
z%f+;B4LE1ELn9~=gcDX
z{PF!le7p7g_cwOP-67YT;D(0Qa406XY6$oDF>0~(Er!0*Pld`gucIm;iIVcd$~ac|
zZeJO=;g?Cfy7G;M)EjoVW0vWe8TF{idh^`9cBBpnsHybIyF5*l3cWh3p}fYxjD
zPZvL;638cIn+4_t`m68#=Gb@5q(`4(%sgBCnd#ege-YP(IZojIv_YFKbh~wE^cQE<
z^EXQ0JFw-IT=vE@o>DuDRr=3lDho)wkL!RTr$tp)P?4DgP**Hq-{3{+g5#EEG-r(+
zC6v0mBPgPs!8!5sHFjTHSTw7UD*o?uO3;I{KZJ9VLE598q5k(W;(@0lFFtZM)I>q
zJkC|y%0j8uXYwIe%~nZw=KsRuKYbD@Au>T
z{2%3b#&`Lmd;idnUgA?u#dDe8`VXo=ofNH;?%gIMK{aGU{zsA33k3b}!}%25$5TYh
zD){U#i*l2Y9yo#flrhKu1sqoYpAswqs|EW*$#`1<>i-CfL~)QU($?>hbTR(|w5iA^
zMGsa?@c&(p4{%=PdgL||mYO!kuCJ1o^&g-|)
zEWszc-n_=*QsT0tkL{XSgea3km`LaffH9NBPNXyS38;~c6}1)N=;>xyireAjCM;!#
zrd{{JXVIf!NJ_vfc79ofIK8!&7p7gPSs{3VKSdZA{s!Vm;B-q(N%n)H@stGbj}
ziN)4%%K}@&aV__`F%>3MdKLz4U}}hnrBkQ|LavYh
zwNXzup(ve!T+Q3kJn%SBiRY=@uAq~yN$`d2o&V4hSxnR8KJMVV5!P#+7Clh|UScRc
z_7+Q0@vJvB<6^vj2QrD9xoOKt0Cq?_hsrk#m4#JTXD)BfTIV+G#x5mAsiGjR*PAA7emN@A$L
z;(FT%A<~6COMd4x17BBWZx&;n;-`arQMJ$#>YOQoM%ShUAFamnx$KpKqZ1p!3ZGUg
zLSPG9Z@APIR0FFYYYB~i`bUSgR%5l*Mgu&>Mft2&$1MteJESKo9yB*eFay7U+ff3a
zZX@!-dE;Zg|F~m&NoQtkKI*5i{+f+%^_!25h>eY!zHWnj?sOOx=i~^QzdPGF?&zE;ML|xTlmE-(qM=JZOv{-re!2;)b9?
zf%+(`^5sPzHp_6%>?rM9Ls)||0$_L*{;|;bX6?ICAr)20%CZ@WXkpBCc
zU@3@Z0?o)#G?sBGt?y^ei)-(lR?AA-6(dir`pX5A0|#`?o7Ak#;39?OsI^B|fMW4LkyRiZqSa)}|4v~0)&eu_wee_xnJp2|
z@o{27FC+H!L65fik!^|-K~#%#vHhJj(;F|Nqrnn9VL!X7(fTB0bG}S7cfI>Gz=J=0
z5NSvP!I?muep2H0G6X2=RkG%-QFiB8*hI)KShOfrX(`;yFco3PJM~(MJKCjm#LKEC
z^s!0`&&t#TV4T=^oJUQVmx@^r_MzuK0esXXq)Y=+cB?;J0BtTl{pUKqh3%yfX{C=njfcy&pW5YD8L=s=k^;NiP9<{!<&ug8mzz+k^#cBsIApP8hh_|M7Ax
zh3P0c(O5s}sSl-TZ-C$SSICjEF!~p&OKP`c1sx```8yX>Z)qFG(4LMRzp}Pqf5MG*
zp%cT$jGVurCfou@fN?#a`M@3@@Yggg6&19{s5G8feQ>b6dK~Z&*
z6p;@s>ZF-fNG_;UQ&_{YaxE&dS~E#4-il~e%a&TkSjiLO)&q67LqBE&$hewt#hPLXB}WEhlr;u$In#08
zCC>(CoqGI8Jg~Pu8;Jkkx2Tv=oH!r_e>TkVwwZ2gDa`Y#@QzUnJ={$)0UK-94wj-+
zjE$fL%AT*an)M6^BK;
zq&M+5c|WC?_L}urioSW_Pik861_7rki8xYTqsYPe!Ev`s3XC@Ppro(B7K{lf#_(lf~
zn!TPggN*?PHtp^9uhRM2ZVy?9wU~3nHklEky#rvk#1o##j~Y}P6(vO3M@7G3OPOD1
z94sel`@*0GV|Xy&8tP=Aw6sHMVxvhkMWArGAV#0X2Ct?(n9Mw9af`vdA
zo5)aD6Xt)jeuvzW;KzC7vY
z_No1?K+|te_9H7$4&i^?80e`WDT*Id^e;C#2JEQbRGbqzRkhz2KRjhDA0|X=-r_Vf
zJopLe{719Rm_^ETO!
zCb#Tg{WKnAcjDM;6t{)Z_jJ7cosY$MauwkpdZ_*i0T~A96^)YQU%Wx>1(qG!iozWD
zS1Lz0Aknoc|8KyG0&c2Ih8s}Eet9jUA6bs}U!Fq>RB^S*F$D5YG|Mo`&)X^Sq`9sF>%!Fl1V+&jg{F)l>O|fK>E=~
z_(vYPWM3#cd6&xh9ECszT2Yr2lp-0VU;29LXq#kS!P!_UqluSPC+B3d-5cMD
zZh2VkmV_#lm)XZP!jisZXRO%Z<%K}zn4!trIMMNqp=ba)X(l?qj2Gd@j6O_7s7;P)
zg{c1b5l}n;EHxI8%lK?58l|%BCuNBp*X;k6M>*yudfaf!aiY1fRZL3jkrIq?GmM&a
zE00@UC$mUjHA@jC+bymE&HOu%K>f3=k@^?=@!+DpBh`&Bwuux-GM=^`>JtabTKb=y
z4U6~+20ta0qinM549@S&Tfccp5WNTfk%mPLT{xV2r>8CW=6lp1siJo=9eYl_fFIXw2KDB)2^f84MCG)U2M6o6hW
z)*&zx+p6?RvB%J4RDeCOrb%XmeKX0%faUD=fh8&^?yg-<8*X
zl`d*K6*d&&B;qghm7NXtEA=P*Zw=(8U7-y4c_LxZe2zEki6=_}s>YRjF6BP=Z@sa)oC6#@N&n5$25SkkEzU$t1SuWMwHv-@q
zFsab6pP=+m=LD{%Zs0tD@ZdEk*B`-eh{ND4%y*WA0zue(rhS3`S&0ZTF0=u+jYcEjle6C@aFCoJRgV2xf_juR6a~C4_
z5pG9VG2glL#t4`MCeC5S25!LK_6SZkN*&5YHEirm9KA`CtZ!*zi5MB8RB{BxlOj%2mfx1X7A*1zpS%T0_i>9L5)@ymH8
z71sFfceHMb!SJ9#4Z=S2j1BCHFSg4@cfDxAal(;M!4QEI>;-v}52&8uN?H}QUr5pE
zsRmQU$k3L3nGzlUF_Dd`JWSSF1QqJQ@`!zW{UW+H3n
zlSv?gof1qm=r$93*%FUXkjFA^xgsVS0wJ6Y9F6_3^(|dk?
zK3zA>{$k$rNR_B*b5q#ot(bJQGDIfVCt|fT2=Qn1);w=@y7#HO@AzM6|A2j=9ev45
z*0nz`__Klj{a#Dgc}OiEtj{if_d|u@kD^p$4fU|pRO3^)jD+ud-rWaG2CA-mMcNze
zi^SJaOez?trN_djIohA!_M`G{ke^%T`YL?|{q%guOIzr^z^QLpf4h*U{g-uvmLqu`si*+?&eR3X%2Eb941MOfMy^G_d(`mRSDBn~
zM^clr7HMSRncBi0{U3SP!sv`??b1^tPx|MlJw$VIo9-3yvt4|-42eZ6rLQ4JEuGA-
zH=O+M-vtHgQq|^RmKu6&hUDH3JnMSAs`2IpO3K=sUyddOPhAnQC5(0vNPs(wn4T>m
zcPIH;$lvtw`fbb;zLAlIo++E+7E*n!S8hRPU>4D+_PqSFY;*fujt@+;PMV
zS}2JCgi3N4f$te!!-AjByKXv9Z4K`;dGFU;COd&9aJfhJNKbNYz$7avp{knO->ep@
zwZ|g~eT`7doiB1w%hS?JUPT&w(8+J-Dj8?Sq=1qz!lqW~Q{{1bv)qIlENUHK2Hlja
z_}_~#K)6&CwicckkW`{D;Sm2l+({`KTmM-YvpEdm&oBlI-(vqMB<9i*f|1b5&O^7lic
zFmN#t{9|CuV*kIwgYjWTRK3Jvcz(?Ttf>c#Ng++h)pz-y#Q(kEG7u2^dFgcM-^mHM
zpmykkq|zTF{!;-U1IPe_Lizxfd*zP`D4>F*C>(JdI0UW02f2TLxsL=Y=0oDm_=+UR
zi2YZILE_+u0x;1`a<8%Cqdfr_^qch1Hp7%`c&%F5?E5zR|CUSv^_mi6
z&nvoEN3@8^`+rs~VT6HTcBCq*9$ki#PjvThns8BV1T&JsaT)dYz__vhUHOPhGNh(>
z%ikdg%zY$C=j7^*e2%}%td&EEFQ~+ts{Hr8fQL5e*9eQ4MoJa_no=bc6lLto%z7l9
z2Bg1g1G@mGJIk;2Ka0{r2i`E>pUI8+_j~0~$2;LD-MGdQasT}YATesTL@m+G#Qa{a
zf3k!ka5*JcuYm9|$zJOSG}pGSeI!PdKD??j?N=}8e?2d`n?k|XS?g-$F#SRy2IVw;
z|3TbPmeWf9x0qli7%%eb!>g6%x=ogXe(62@^F>N^-AZl?%hYFkY0YtQ3ejeqim$md
z$8xC8#>e~WLTG1)!z2S|_+5Xm0n{W3c8@jrN>;w8L_prV;qKuuJ>1v)I`g&OyPS7n
zxOUPTfx{3O5Vk&U7RFxe7|C^;cM}oQkaOZ`fAkC&*dxau$&K`4dtg)*BepsniSOh1
z)=YC9=8uHZ%bRUjv1Jh<-fo<|O;MF=g&6Fe$3TTQzkbZ70&~}|S{X5+f%cL0PGr48
zKQ3?1DhAfHJVkef5(-R5K`(p{XY(>}hSF7o`aeqoT?L8$)D8|PJI*Bf#L3OWzEz()DQvJmKyN@Rh~Pj4f}bec?I#wZQ8`~EBJ
z*S;|`(jMa&QNc1Q?S1jTt+3V)!>V7E4Y|R&cnVs*w|{)eb1;4E4$}5hGtCV`ToX2o
zxpVOSROKpq4C?R2@E|m9(qDY|&>+uU$*k*J+_&3kFWjz!Lgwjc@tJ&+ogD#*>}xFJ
zd#vBqwdC>igMF2P>7F0R*I}ebKQ$wp=W_8
zNdM(rcu=71`H@ofdCo*y`?kJe9JQD)J!_z768T
zCfj7F=B5+V{q7z|_BT{bg%$)P2ampMr33EFUP(F_++7|V8VG-JpETwz?>?w;+)G|L
zzQoU7-_`=%i-KS5;ml+PVsmR><>nuHIPto#pN{+`^8yQ$J)hjlNwJk2m^F_?@vK$%?8fCR>KIMF1G<~f469$e$d3ZoXtDq7s|8pnP{G`l
zlZjo3nwQjmj0o5Y0_*Z
z(3A76g6hjKS!EETL9-Y8s&yY|=p_~Ce+5a<$6!%Ey#Xl3&*GK@U~(+M>Hccg2osjY
z=$usIB?WU#e_C7mz>*VID-^e9-qQ5bx}TMH7dl(eX}_ES8L1(*$(&3e0nv?(P(kkrp6`g
zxOUs20Z0fcPN>$A*sf>rN)4OMzWt_49>FD=r?{F4ZkEf13?06fH^7(j*enR^dR^
zt3*8(E}-fYwL$M|#t0@|A|HIoT{YxvJ0EJwXytf-qz4ReSdNyQJ(;4(?IzbCVw7B@NgbPYIfeB{Wc6NgfverJ=`Qw^3EnxwNrfVl
zkV;>q1;w8d^}$fcE}O)1BFRmK)(JLcXL0ExIH6&+uk^0b&}^DQkG~7XO*%O_Hwtre
zjAO`$@~Ho^vs%U{k75N)_BDZB5uFrC$b*V1r8KhWIQKNdjd5bUE?2IAG7ft&?U{7g
z*-O&~oz3OYGbNrm!!QL{CbQg}oEi^POs_BsIR*&`yozuPO{n1>b!Cucp_!xzejc4U
zj3h&p&&YWYo`C7{?#j1>wv`JP`71r&)uky!>;hk14UH9Kq(5=85TWr4y}*wH$FwEH
zRkk5aD>$%+
z8e#Q(uf|^5EUmy89~l1gri8>S9U|?h
zcLIN&hb@rh7_Pb7kv%8xLF0P(-sqgd@!LxdlS2{Chx@*nRHfP+u`3veh@gA%Wl&E#
zAvsyzrm2X?gfYhSinelg04ltT4YzV~P^DZ!(u5IL!@Me8?g~j)bcsbQBG(Spmzxi9q++&<4vs9Pa1xN9vG!+kjB?8Ed3
z`;O-oNL57l4K~96&b*GwoW43}IN)8*>mKr#TF>moOwYfc|8nI3egzINTlA%4d@w^`
z83zupO@?{Z)V%(z3>{9z@&Vd#&dw#w=cT-6@_uZ%KQmM>y&RTwIJlA9|4z!HDdklRk5y6&U5~Y`QSDE35iF5Npqo#nm
z^p3vyC8DbYf{aYZyR#2Jn3WMq32ZS#vSV+1Uw$fy`$(Rx>oeMXPKy1>uO{&@;};SJ
zZKFeG?bi8uw?CAgo_k{;2(9t#I3-X$=P9C(*iw+DRb5NQl*ioQ*Y1=vpj~R&o;s!?
zV-)KPW)fLdOTo9#=?TOw)aM^Ka=uocJQd+VFQ1buVdB5e?3atxq@(}*ava=gWTJ6T
zOc<7oXoXA=0aXRjx5t}r_EXgk7YOFm*Wi=l}5lh
zkd*%U`HF!odPm?}kFw4*7HuEH-Bo&=D=ZBxr?6Jm3=W?mgu1TY(0lYfYz(b~(&4Yk
zqDpLeK_V~&vEwXFULf+FhS>{(mAX>c2Fb7QQ`1c6{2bgMH#5F%(SP-Zp%p;Wh6vxK
z4%@?HPr;LkU`OGXrh|H|7%3y{IyxdTs
zD%mF^3#NN1yfdjIgHg;WMvoYF;DN{F+Wl~RnG|Me%3t#*;E5kJfA+M@|vt;(2(h6k{_B*8B*X(>OzmEA>L@QrgmXnr;zZnr6r!DR;Vfk`4Ar!
zIwm(gks)Tcp51_CqO8^r*~fzdm-JNum&MdrqjD>zsNeXgfjR(^F3R7^QZTY0fPCXD
zgdx#^QdNirSs75KiADXjLS`i1R3h6X5J7IGE&lF$x0N&@RsB>Q~^Xsd+zF6A35=j*QSe;j|CQt@5gKf6V^*0tw3;{Kux0kSkQO_>oz
zh&+R5401%fbkPL$g1MeCTd)KMrqB=Oi^+?s6D4uKKp>3>IYa(I{>W@YRqq)7D)^;b
zK0QWqaiv#$lGOW0ho1@B3X;ACf8trAsA%8Sxzz_%yE)f|X|96;rA({HHrz<6pYjt=
z*ohODGzDjHPgXvOFqbYY108pfScfLC2rPaPg>8hgq*oi^axh5y
z17v1&J&ZRWI7O2E?ztwKZ&VsL4eztF+t{w)7)sVnbw~?26pn%X6dI9j
z&phplKh^EQ3=)OIJF?l*Dc@1N*`cmSHK!yLLoB4(FLkrX_o4YPq>Qk2Ez=VX|9dlb
zBM@Ya(8H!0xWd6%1(0m!yMlG0a_MAT^FgU243F!bu|)TMI5i9lgrsyt^ic8;rb~;b
z&jK*CdQ%ynFY|!ro0c|Nxaiu9yqo<6IKq~(&k7H}_%9%e)irlJejvE^{D2UN8ExT!
zc^m1jCGHGr617?u)fgaK`1VXGle7(z39!xt
zXK($?@C}iulHjCCw34HemF||H)&tSL5Qz(Ob%nCB^JrAY7PZo})`6W4UmmQ5fJK+y
zM$d*bPT8VsJBkE@1&y!}3h3oW`^fs(lD%YJ>W29sM*B!0L4imTz)N59LNhg>b7nb(
zenY?jgdNOUm9Q|i%2pbb_?FrCp|YYVJGD`A3R7x{*6>X1sC&I!<-r&-YLYT=LeGIb
zD^-Nj@gY&K1}gzQdjjaI3A&PdV>mavebQwuQXo^ii@#q8^Ij;1N-qq?KJsS~yORZC
zF|mqwd@o!i$W*bE0+}Dt3nkjZdGv{MRg<`wcoNZz6nV-^&^&(aGaw8@L6$Jkx43%8
zZfQ^!G3<4Vs*hWiuA%Ibyx!+_XQY?5=Zr4S$D4^5p-l~^eW{j7Yg0}20w!uOZz&A5
z!uA9C93so%39y|gs63#lQWs1Hs}(Z2$O-N-4I$M*L^Dh9=8EsOtQ|B`p~XBM956jM
zw(Y2y(0m4Uq9QLEUeIY|=D!%smS{F@e0DYbCyN4l0j0>5-+x6f{8>QJI<@fa&JXzn
zdTHp6cACifAdC8>F)a1bEI%`f3<)(aiLea0WSKg4co{Y{@*Kl~X4)lv*uq{rZ(&n%
zU%P3G8XP#m-ezYbMt$k?i5)B?dg7_=gxrkpTIifNYtipe#Z=HHnA6)})RGOC5UpiL
zbO+pEjK}jOQewcRe$i#6)+PsZe^UomQay;l&*b2yEt29d5<%}
zkNg0aD^Qi)`tJ?vCppEJF6>BOzAu8kC?rFzU^a?i`mDR8uLGNxFyjsri?&z?{L7$Q
z`Uwxo*d~&XpF>|eg&me6Z<4G+RmXKq!uqtg6~e%}m1MIKB8I8NjmTdTeUD_v$YV)F
zf*I71OkEl%{LpSq`1Y4m+GrJ{C_s}RweCmTOg^l
zp6FH<>)kXDx4cPpX#sc9bJE843uWpc%mGYw-%>4g^&o;eXbJ8!UV#@dXdqD;r+O*k
zCD)g1#a{)XKq&bPx8k@S%k1xK}&;D5jwBBvI3M&`Gnu4k^Ba
zk34*G?p)Hc5l~FNb&tW7uPEZXbu2<5GJm@T43G_svqBN6G{ZK$KtRZ}(5pm&fE7;(gwYv^YF08rMN$wAWfP(~65cX4#+A^jHDn=!970Aj9fhco3=E_|qVt_%1&8&Q
z!s$pasAVmj`^+*cOQ~FPB4`W=fFt+jVP5>n&RV_f@em&(vuSc8f!#B1L^tjJ&NPEV
zzE>dWGAOW7M0HahAtR_EPD2;7C4uGR(Uuf1k;ubM$sv37dBtd6;T48V?HSyjRgXq3
zDieW}35#G&0JxBbnuVo!w!}kJy|zxSDpY7TwHQCu#cc4pVh|Y_Q(bI6NMHNu82#;w
zt8pZ(NF()_G_wGfDNQ`GZ(Ts7c_0l%O_7bg^9#?lU_<(?kUy|2GGG>mhT=4!KvZ7Z
zSx9mL1MY1S>`&pdj*!V)iHJ<;f^pl_$ZA(R`N2e`J%=^p1@M$Yn~tmGM@@FD4EhAU
z#09uI`B$hP^y}7O{F}|c&XtZsQX&NggthJ;%OJ|xfQ%3y&tlD|aP02k+_s90M0jps
zVxfwmnn+}wKayb~Yy^Op)L&S{GLT8A#1DBFo(FIp){{Cv*+40s5A9xXxeUla;+e
zY;%Z|zZQ^+P>6}6ZZoO61;GlPP~?lSDE8X03+>pMuz7EDlYk
z97}3!Hce7%L20(6Iee-7uHm{`L3;UX(S#rU3d}iS8Wgv4(
zl_rc}!;~+538tq?c#mfdvY_dx*Ba(I`(292B7#KD-AAB)u$xo`AerFN$Z%DC
zoyvb-7*QM^n$Zzu5fMe3mvM~4+^{mQu{J0gfiNDFBSbuy5m>mDpk*xN>{6NzlLxB+
zvD_fCk98e0JhNgmHkAq)za4)4a7Y*x!KPnd@;6jRSW~`Jwy>+@9RT=
z5U3U06K=p&@nV{pT8uqG1^eCx;W?%hR%4<9T};v6Y@!UNW4n<8tfW0(B>HDz3w&(h
zAC{6;)^f!`kP4iBiNThQ^B)t_nGQwUGK$0BV!c+4;y?t-%&3uio*M$G208|CV&@<{
z)5|qA=#DXyUZi*ILkcPhm9CO1m3V?*Mv%664>EBLYXj4f_TD)v*)z>}v=XVmz#^MA
zEi@4E?0D}yQtu&(D0pTfl7??j>c7)Q=z|k4j*ric@a&@$ejZmm;WYYKuZobgc}1w@
zpM*>mCY#%gB*`EHh~`BB?oxbp|9jf3p|`f;^Z>PZ&)V!wcl!TT-Z%f(wSCbxY#KDS
zZM3m%r?G9@X>9w%w(T^wohE5)HRgGz@7~+*`ybxfI>H{9)f3wCXnz6te)IRRT6F)4L!8(p)84UGs
zH?LQYRZM7F=+aayCpwOkXDAC%i;qK6yQ5bUnmle)sNB*z)s+n(#u%5l))i2UGP%Zy
zZh|z1`T`q=PFD`~jnhLbr=|TPR9)OB)zT51bgwf
z)XU6UUi+-v%uXM?1~qwtY^YNvTQHym@wvtxy;TAoy$Agqc)S&fgafF^{*Nb=ivk8`
z`iR|bbKq&5JNso7`hbat5~YTrh??TopZ|G;1S1_XP{SUu@a@Wurc8ZKGHn2#D^Y^H
zi}wIx%>nWj5*Lui&^pdTkvvfEUPZr*(|@_YbAYMkgUR6|48itwdRbELStiz?^Ym*1pRVzO$j|cA
zUS)8>QDZPnoiIen7Cz;mwggauK
z0jrb75b?yi^ayH3hUKf7ubbLoBV$Xm+hujzWmC;HlPBdeMa+U2+VL$6RwKjN(0yVr
z?qWEJ3Ns?OA83~VzoxqmU|>DrEI|=XWEK_mb>(c_h}xAT7OUb{5);$XPs!vcyVSa@
ze-pnEFaxaMd4;lgP?`ozp9SGY+Xg-o5Y}etu}BxzQ(5FwFTqm(HY}9YAXltBNGFS6
z4)=hyjQ2Ob6AP@w?w0Sylq5|q{+^{@WVzH_c}*jYfI<#Q**p-MU^0NgdL1eOPq5F+
z!>CpMy^^R8tVt0m^c^2VyDWNq0dZxqE_lBrJBOEx5gA#Fj9b|*v(W@zh4l6-!zEmT
z1mb(G#QmNP>iY1$)pv60Nb|}T8o5(Q!HM#K8B{W|DxkC`isK_YT{4X5&fkN?3OS*U8gLq~Rm4R^mtht>wit5X_$@*T5C%`S@{^#T6?m#=>L+ko-K#WAr$T
z3nqGms)&rxIBk|KqoJkU{{r;|IdF27>H99SVLChx_K>00!%t!Gaiy!PsqW(^eXSaU
z{6o=iM(#scC?X+O>PS;*5Pil-Bvk7|;yGD594sy0&z%tE4$V9UB>R*TDy5Rcs8po{
z17xg|ibe)e4j_FF|Lz2ie-vJ+ZVBFC)|h^vgPNEoc93^xJ=kc-Hi_)DLWJh}kxBc`
z%D2f+qpLu^iI4lasoE^qzb}}GiK_wabJ;=5C_C|ZJg&4={w%ft!?qdtY4bi@8)W3i
z;rM{>*4FX|H7oEES4#vUtol(Zr1ksZzmp@Du`N}eP*)aFL(S&jRvZYVSW~fL4g@3XAzNZ4B>*;8Hq9r-`}cZM1g8XqltmG
zmvCbwTfh2Z5`oBLSDaB`NNvXq!(R-rq=mhco1LhF4SVjOJQm9*cEM+&7`8JPIgA
z;WXHX)ePWI!`AzOL4n#Y+#N4zzv3I~^%hzyt&>AF*14ZkHsME46{^gnp~7*>K+z0GB4nM8Qr17V>V(jVLHy7J
zOv=){N?J3cp}|q(5G=q@xc&>_Y-G$CK%L^<(5}FC$tu;@TT~K)rcY)jWtLbWMR8(&
zU^gAxx`!=8PGO%dE|^5M$oq06v+E;rM(!`{U2~n6i+E10kN{n(3W0E6Rbs0w)bx}S
z(ddGDCKOhr{|_4z%90iNe8JZu7q8t6?-=?Fs!4BXmZ#1!%qW|IWIOc)f?N)c10l3~Ni6dv-(
zeqwF4nj~ciIA62A18H3u3xQd=SWmjnr8sQ(vaJ|^n{Rzd-};dO{zFH=R>)uO?Z}o&
zjv2g*shrsIIbB2yB`qT91SsnmKeF9@whM1)!lp4;JjVP_0tLw*5{#5QTp*!hKygm<
zi*_Ehn1-0i<7Y(-_(rTfrVr~YApxpr16{1AVXfNvQ15AoG*SdiF{+Ny#zOP1mY);D
zywY72O+iuex5@raB@^ZV6(;#k^ZM{&0jqDX(C#FK%srj2E5x0j6+Vl|_QKWS
z!p^yyn=kKSxfb3XX4bJmHSpv;Vc^GSo7)N1itq(fq+s-5-J>1imf7+&0$7F=;xT+8BR|5{
z5F}n3`8!Q7NS@+)XosZcszkv?RYFx7{jvI#qS?4ZBama~nZapDpxr260b1HB}>$4j;N@v
zUHw-XQScYQ5&Y70H=-DU9~VxXKGiE4i;R7bqzBTp%OU^|7t|ErXJT0=H#R=2#0TiX
z+cCwUvy`dMp(%i!&4o}#FS4wOvLU?{4Tw_sh%h!2>2CNpz@>5&%?9DLsz`9KOPWim
zcGQCz7o56Bqtv2?-71Xf?~a#gUX8{-P}`hz3ZC?Ex$j!qkD&41fTRg-E);CVC%c
z&wOm?7u8_3{z(6U1?i-44jn#}hQ<*1TnKM<;4-)nD(;9OyGm4<1UvFad@i3PQTlv^
zQuy8H`#NOh(1c%PG&pb)RbO>;eGQ`%zBJ`lLh3Fe{P1QpwR2U(IEN2DK_
za(9BR;8fFhPBK5(QHnu|R`ute8u|S~5~O?oIhI*b_-4d+L6kXtJ`dhsAA239lJpANnR^bI^=o%P;cqzFgu?fluZpN16Y4@_#bo50u
z9&rP4h!jqiN3AJYT(HaAD!YdgzfblmoSf)A7L?DS%Pg*eUN59dB`P9V{fSl4L7yhx
zeZbn%=%6g;h{rEx`YLA(9UtY6egQ+y
zA<#$S5wfm-T&VVgmXl%=`Ix!%*T>Lv%01e*w1Hkt~-`9h@@Ou-DkM5(lP9{C
zGe7iW*dK|%w2)om4LJ#+j9U~_@6aHj;@>5%NbZppDN_`X+UpaOAVJ4LDVHBcu|wu9
z6oy`-lO)a{5aS?^*15eib4#5Tqd^JQAVpY3Y4zYz$R5XNNqH=tx^|)@$9V@?WOHbP
zQYTkC8|8fsQ#r8N{HzxFkx>pYS`=4)4NVa88!K(5jZtbK?*MtA}W
zs?=1HviP~kYEt6_{GtpzYaUbr?5Frp=Y_IG-M7B;u!1nKzb0mbv=%!gu6yE=Xs^x;
zmhK0Jqcfth6&xvcSeAay&rA#g?6n3Hc*vp=x!mxuk%yRx)jk{+_%ldpV@HBHI*PW>
z6LccaNRr_Sp@oJyOJBy*7E{W~QP5mSRBg*548M^eTa+%1j&XW5t4^nCy!|if7u*|i
zNab!r5CTM>y3|*Kw%a&m6fFCkDHAOr0-4C&mZf&)1kTOL5&cB8iiugnIIte|!${L7
zC~o(M1;|?w5!4KW3KJnipn<{b3z8!hnT!xM4gvM!+slrDrGZgN14uL~M+#M`2L=??
z(`^5(tH#1uTgL=oL8Q3duH2bJTL!>LX>*|z(YCHdpq}BY!Dsf;u0VssSEY2Kt&FZz
zQ}aOTpl@(;_1xYn(rGL95t9*(2Ppyq(%)5syR6>&5!;M2!_G&h&*Z+{f5|`M`j~bvC
z^bj$fi(~Rf#^%k)5kr6k`48oTe@!(yaV;_DSY2?@p{W{I55&qJc;Z&X)w~+6;TO6C
zlb8W^nnSz`JVH(fN9$pc@d(E=NJI?(+@xv+N#4Lu22Bw>gJ`Qk2~kKQiVXQOeIudY
zkeu=wg(Cu`#1y`|X=3?=N`d<4P~w~jK#@^}&`+Jw^gONGlR}Q0qB7+#SDg3+~{5z!GkQ
zvHs9X(xPYoQNRV04vOHhB}L)BdqilIS_0>fBh
zLJZ3ENNCJR*?D3lO^qj!69|GH{~ER`9KbV(C?E0h>R*?^-TojGgh9I4wf`BX9GFVCn1Dlf
zWWm{ZkD`qW@8C)sn}BjH*`r+Qm0yswnoQ#Jt`4+Gb$yufTX^%LP0hHtZ2DEc`72(L
zp>6_JwRFqEcw&sVcrX#PfvRCVOekT=N$wzDab#>T3+tLmm=#sHp(ThqQUo~c;aqw@
zwy|EN9^GAoMTUiIa`{ZQp#40|gp8BM!;XaaONn2O10#gqKF3`hVchy);Bjjj%4Y|AQrehjESsfzVsR
z6#s{-R!0C~*Hs}*mi~+W|G#`lOtk=IsV*A{q%^sn?fZP(*4B2nPuwe9cktHLIgz`!FQ$VSEXT(H*21zS94wfNqZ^-D`fD-StKLx!9-
zCCX!U?;mc?NCiH4(Hcwb+g!TsXhdky8ffuoVYg@E4d!t$pb!GPwlV;j-qT*24WNEc
zyZQaJ7ki-gs{A+U(;r%_YTAmA&c^+omMN{b-k+D>S5nH#45`UQA!B6afm=O5414ZN
z$|?Gk_n*U;gllatW(*#SpSYXRq^YS%>>p?9YJLJAde4`v7^zZz`!X6T(U)~^g`2T@
z4$fKfL_Ujt;*>&8oTT%(PdD@3R`WFh(Iw~S=QG-J-cHxybgu$vYdU|o_`S49>oCwW
z_B^YY$;-)2OiiWGD5MF0K*J8(c-ik68Kw8KcYU1e;&=QVGkQaDAdOBnL438JS9Wv%
zKBAM;%}?1vcln^CP7}2FzPd#H1S5W&q*}u&Hi8!+i=TOG%6g>>qVKi)xF2<<-GLI
zn*6TM25>p0D5-2{@Zk}w#KL43r{7&d?C%iAV|bc~nDAGXs6)SRUQ}_&$fars=05vU
zW^edPmtR|-M&lLHi)1Jm1nU8s!}J-BXYzz?7P-`pI{K$7He~?p8_uXHBvn8Hdc^F)
zvsJz(;8RR7w`_ycn+wck?&ZU~tH;~c8N^^i=*5Hn+*Yi0?&gRhH0&jp3*U^_#PiQo
z8rO@TPaqcUTf%
z{LJj$8sTi)+RgqRz{-)lSGmN-4a4(opqFz-kSGNfzgNkifS;dEZsv^MU0y~VQmoXz<2W;-&WPcE_Q0w{OhF)K|yLewfc=0Df&
zXk*Qi{gg4y>-|h#!&}!7%Wc-(XT2`i!VcWxcCJj`j&!xYmWrP$324=p^(`+x!LkGRo;%@`
zYd)6Yst=6L3PBB&3al5N4Zqj@g3ph~I-h+Bk+P4vS?3%Yx-;3M;NFnHotPlbVqf!GM(>XAhg6Hs`y3OT>cMkjB1{OMnLnEma7zlDPA!&M{hh-Um|ibX3v+Sp?kJjoi%<93@yJ=Pk{Y
zN}!%6sAl-s(i}J;S`{%F_3Q2Ew_0yZ7qY%&R;TZw@pwgx;yvm6I>_r{yPJMJFM(#>
z=Qqopm6MkBXkUBGWWq}J=I5s7HFz04Uj-E_XzuE=Ve#VpF
zb<-`-IN$7AM|mIL|CHF_*LZay-}SbG7=m;AyNuS=Pin#UY^bN}1-z!+;m4p|&&~y-
z?^Qro1?P^YlbXHQUV#~4hnagYsHv2zl7wZS7jesHexpgHkQ&SWV~fe98>}-V2U>*_
zjnQ-QRUqRE0Kks(;QgM+|FDGk(TQdKJq73Cbr_ZZWyy@s)Atp?djEc#oa%Sqjo7nF
zPW#A}l-688wXxAgj($s1pMmz^=!$q^X+A9k_RzF7o?Q$3tzS2T35nazkFe{7k-&S+
zE-P=_#RD8xHECzJNHYJipK1&8DP>6hM>pp`pCeYUA$r>qB*p{sJT42XqK8s_&-eA*
zZ%BKdcEw|yjpI0MR0b_d3=+Ce+;3;a6|E0pc^|gSWu_MoisP4w1shU<+n{HQJ>SBC
z?~LzvlQqDC9R9)AJr>%`!-!_*=d+js2Wfd~Anri)LSgeI)lrL-pmNN4&Huv7%28B8>dYVE=Rh@K$3B
zArXz7=vS>WnIpd&;B6t<>z2?Cd}sgg2gl3ggs;#`j6G|%O$DjA1>7u!vUyW)`OG5w
z=HvN3uI{_l_*OTvuy00m1RkeFPF?&rqs_*eWwxy?fdpUCaZ}x
z?H8d_k8dwEu+h^N?V$+qBeO}iqoJaPXV!1B^XM=vIAI0eFHwt81tWlq<~;uhid4+E
z6>1yZ_bb2bkz=u#{fx0|k4|lejYc%$>a$(=FedT|!Tv^X@Ir)eQzl%aj&7sJS5p
z+*ZwvDB98n(r+EB4mX|QY0akIFsGSD7mt8*P99(4
zU)tu+_Wg2u_8x~15zKzVCGOZAz;-afI5{Q>=C*J8c=FT+hGajS0@XXV>$T*cCKegb
zLyDchiH@sgIt*d|QCZ{t`l(A9WpZlWYxR=n-gvh&HKJGSv-VX(R&mkM=eHVK~
z=cJwIZKq_lD3?-FlB-Jg#nUY)RDMc>TC=OcGSE
z7vpNGT4ZqFMJM!rz20BWBDvLBiNIky!F(+lW|;AQ1h8hiKgQE;KIe!S5$Sa{%PpV4
zUEUcE3`R%wqcF6{57=53Dq5oOAF}9lH-`&0!V=|vqXtiDX3mxFu+~U(myQV6v`Ktr
zN+>8Kd~=8&YFYIQ;6A;Q?*{hpdJdYj`2LEi;3}ckQB|CaQ|sJ82VNlpfBBvf$dTLL
zguu!7>~~XEw?7xf9Vrmw5AY*rcb=zk>$zMrn&XJdZ@N7kV{UGL-srUHy971^AXJXn
zTn(c~XOWGGF9(uQlBO3KJl4w@(iX)S5lrbG5Nv#O4QP(IbAfXSTQ2v*K@^xPHf*
z<91%ZV=8>FXfNNk^*Sq5J5EC#`W%ia-}Qc}L{r+mEQv)U^-E^PI8VvV
zh*MG>X1A6hG50CHB1JkHkuiv49A_H5$r3)dF={&wqvmwI7CpSRqyoqJ%NF1F_L~rS
zfB#sfL>?YO&2a~kUOolpY$-Dx*i)I#cPw7$9j&xlnK4Vwi&7?GnNxp;HjT)TRKk}}
zePdeUy9VBG;`)-szu&R@9wz=@<2J}Yvr854crMrB^LyQ{XQK~oKX0FTnupm%rPGPP
z^C(X_&t?rDVBnImb=3`gUh!)?4}a)+dqd>CeP3vTUcrr~epq~TdsCl*g)BrM?d
z5%ydc$ZG?`FJFhaefPIZ{04EN?}s@Q3a%fsa?G`XxQB<8GIe%`>N>QcR_{&X5cb@=
zVq)NCuN*6~HYj$kYjPcL-@+@ZJPZY@Xhi$J|Hh$*gOu4R#nI+ORG@t_uwL-}`Yyqi
zlGAFV^UkEnGB~wIW%VAccMc6trTSE5=Tp&6>6@Wa;ZeqYHgUDr(sgOWHUCX2uUxuo
z>bD4vJKZu?R3okGZ22c2hqPAukt37s1u>up#b;viR_F@+)1q
zKxJ6FidB1&-)FI?s{C9|H`+`~Z;#4`cr6Il%JI-n2yeCM2NBasX}|tjXLi?b-^-k-&39rka~S!uMNC{=5f5hFk09N~ld=*vm0{?m^h9|+>@cvFIUFV<
zE?!<{PR=jvEko-u$!vD`u*1W{{%Mmem>Hpi#lzV-9>(MM-(vA;Qk0ZLe$~-)e^;-U
zXpszl@IuAIH!cSSbgN)NvNVhCY-PlbWj^F>=h?l!u>)6QGaw1&-S{^{u&|2N2akf8%ks&(J3-RN>QR86K>
z6&(!c**_oAAwk#{`5eCK!b%6%{)t=AXOb~gb~P*$P!kIFKCJGoT2;3lxcMHs*>*o2
z1P2GpZZ7hWqe6mUYxlE@f-@AEZHHq~7bCnkv>bol7@$a9A!VfbBX4g^%YO
zgt|`ei-bME3vOUQB5KhiTCjWZ(?EC;f9HLGAu?I#mb5_`lIqswKm&ODT)ribw5+3$
zV-g-w2LHNc>&7cDp$wuHLQ7zo&5c)A)u4UHlNVna0ca-~s|Ol-K)azz;9z4V2K67x
z36w*FM*|U}{rjX3|Eq6=3B-aZ*S9culmB6?k^KEh1Y*7_xF2W!TSW#jwUI%?2>c7M
z|E*_&k$||tf5I)stpBiE+v(PIjN9!|!v6+(tvJ%iH2T=hGN}Za4Q?mE>t5b{FerHubWtBE4+h{fR{hK
zW!kQluTn1XZJjCiMDxk+<*sj|z7MxpW%0;jeeGk=P>Ab#|L|;}Bq4DEqe4NQW2leA
z&g6&>y_4P`%R0?@HJgGEe*~X52E<9d50$H}mgsX^qsoP#!OS}?ppi=j(~c@}1>5Gz
zPFk@c{~EW#{BSBupW@Fo4vJgrG!Rj0h`mB^}8#L!rUT@ON+7@>6ZlcV4CN-sbp?R
z{%aP5>5+ram^ge?tl>HHA`H=I&|JM@y^_5$x=&+jpR*jts8e-ZS3~(NXZKh7#tXEoE%s-*5BEkz~E41yI-7;xLPMmJPkdL~LXBy0mjEOg5H
za_4Pcni8N3L0;)#%%N135+;cvAOtY3Ha8_}l;N8-cUye?i^iGEO}volAVM|oi|U}}
zV&s}y+sUnKidT0pkGA2b#u*gz5^3!;3P%g$Wgr+dI6=ML7N32>IAf2ug+2x;uZ
zS?oqjg~F!J9g6|<02h;v&&*~AC2;?ikDO}HxS3UT0;{#I7Wb$4794+*zm>5ihfhX
zd`a|&TuhI?wRF>Y=Q_;ABGEV2B=5IVJ>WtKUoZ?T%-C^B4j&tv>PG_&b#)H!$16~Z
zEyweuOv|pz1z~--{68WNlK(D-f6m)#4)1AY1Ck(^AT~b!8xRBIHu9_f;K>KjPf}D)
Kq*_Qn;Qs)}q3`nm
literal 0
HcmV?d00001
diff --git a/images/hello_02.png b/images/hello_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..404d7fee6d62902520a30d64b3ec68bba95a1ef9
GIT binary patch
literal 52046
zcmYg%Wk6g>(=Hwe5Ii`+T?P&A!6AbUZoxgc2Z!Ju++mQxEw~1EcXxt2!S3w7yLZ1|
z2hN?<-H^o{HL#99~_au``jF*SGC
z<2F=7yxIDX!f(Wpv8j>aDA^c-=&^ST$%RV;VkG6;?*0@ffvgeh+eLdD4BB3F+Rs4M
zh;?lZ=d<5H+U07Mg>ndD$~wW9DgiQZxZi=O$kc*Yyp^x^WBlfsnL;s~`#U>3)LNms
z8xtuA)<~4#uZP*j^7_jyUv@?ys`I`8zwvNMWo0DJUDo9Fr`o>N`AhVZolR@%mM+G|5-izrlF(brE|6%u7n#b
zo=c*Tmm})2muhY{mceJUP-Wa7t*)l_mFy{E6i%Vkh9-?`fpa8$^L~^r$4$x4$qc>d
z7tz?SQlkV$cYi*kPJvJr_E<|QCKJVpG&Dc`B<>VjRdxOc?VD2kK_#NuBg%Z#Wqq3@
zRtLef`$qWBH4W0Lv%Fo60&uFTNrV%iU^9NvQ)lI(6>gLqy;+I5wC^QWWqPr*rQ>8#
zcdEkzQ;!EK(Sy;Tt_HUdOOQ?*xBv{6BvIU6EBMA888Jn)PO1P}TXy{g!ly8mW-)tx
zdA>Vdyc+j?scml7<}4X?cG6uwbdd8a7Q00$>>DBt%U=;$ESI8q-8b!8P((N<}XmwJyBop
z##DAlG~~~@xmiq9j?ZK1X=#=MTf|A7yM_|G`PAk%UsI$z)YcQ{Z5eYRg&X~Gad60R
zuYYb>c2J+%VzNw8Q9{;AEF-btXOyA3XN=`1D8a~lqjl8b#(y_s^i$O#E6!xJ>j_4$+R54P@n7L
z#KKd>mGb}GOe8z!QlaxBnttCSWCc=;(a-6Ug7crOyK(H&)Whro9TpT_bob5;gGy*D
zZ9VT)Ld~KQSkW(YjT}X%CbFE!#UyGXkO__b-oa*m@^+pO_&`2ez`*WJzF4tWc;X
z*>6T5RcQK*YMDw~@*HtZeJ2W(_&
z)lG55rJgv%cs?~J2I9bLhu!8m&4ere^()}%2e
zuBe%cFIm-POco4~gnG-KDG#zTYqpprw8Ylrdui%G=H`z&?3c8w(__u?(X+m8dVr$d
zzj?y+N?U92*cphk_xY{!{HJ{6;V(5Gpo-Z5#fGaImv8_C1L1^HWxg);1S?P%w-spY
zbtU+W`bsx9<}zm6Wg4s&G7<1PY1J)BTde9`
zj0*9)c!>D&tdUt^*e=?PC$Mg0G9Awt;Xzu#$_BWhQ?wAG2`}Mtq7v*RfB$o3;A736
zC=n#9RdXEfy0i?*KB~r5iKib^<+S@qhKL_wPA#)+j`zG!q|~YqjwY73kwnWy%@i&c
zsb(*aN4)?%|Hn}*UUqf)Pbmx?pQ&__AFJn9s8kf(?ySap%zF{LtaoD5Iabvnlm_9(
z^`%720(`GeSJjxkx}y<