From ee5115697a4197afd6979ebf744350ece9f2c8fe Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 11 Jun 2017 17:05:45 +0800 Subject: [PATCH 01/10] Create contribution.md --- contribution.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contribution.md b/contribution.md index 1b4f5a8fdc..edc9e79a0b 100644 --- a/contribution.md +++ b/contribution.md @@ -1,7 +1,7 @@ # 代码贡献指南 1. 非常欢迎和感谢对本项目发起Pull Request的同学,本项目代码风格为使用2个空格代表一个Tab,因此在提交代码时请注意一下,否则很容易在IDE格式化代码后与原代码产生大量diff,这样会给其他人阅读代码带来极大的困扰。为了便于设置,本项目引入editorconfig插件,请使用eclipse的同学在贡献代码前安装相关插件,IntelliJ IDEA新版本自带支持,如果没有可自行安装插件。 1. 本项目可以采用两种方式接受代码贡献: - * 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择develop分支,详细步骤参考后文,推荐使用此种方式贡献代码。 +    * 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择dev分支,详细步骤参考后文,推荐使用此种方式贡献代码。 * (***暂停此种方式,请使用第一种***)另外一种贡献代码的方式就是加入SDK Developers开发组,前提是对自己的代码足够自信就可以申请加入,加入之后可以随时直接提交代码,但要注意对所做的修改或新增的代码进行单元测试,保证提交代码没有明显问题。 1. 另外,提交代码前请检查代码是否已经格式化,并且保证新增加或者修改的方法都有完整的参数说明,而public方法必须拥有相应的单元测试并通过测试。 @@ -28,7 +28,7 @@ $ git push ```bash $ git remote add upstream https://github.com/wechat-group/weixin-java-tools $ git fetch upstream -$ git checkout develop -$ git rebase upstream/develop -$ git push -f origin develop +$ git checkout dev +$ git rebase upstream/dev +$ git push -f origin dev ``` From 34670104741b2c03fada5d1a608e77d757258fbc Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Wed, 14 Jun 2017 16:21:18 +0800 Subject: [PATCH 02/10] Add files via upload --- alipay_qrcode.jpg | Bin 0 -> 56148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 alipay_qrcode.jpg diff --git a/alipay_qrcode.jpg b/alipay_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..105f1d87531ded493be7a057ef9c39189ca401cc GIT binary patch literal 56148 zcmdqJ1z23mwjkWNySp_`;~w1I-GT;p2ofx~y9aj-E+GjC4k5waEjS69pviO-Ip^H> z?z!*H-1%qz+5LU1OIEE~yK2=kivB+LeGP!AAR{jWfPw-5puiu%_eFpt01XKl1sMws z1&@G?jD!M*l9?WxmY$wem`$9Ok%OI;5yZkJs35|{E5pYE64MozQBu*+)Zi2`Ff&jy zRZ!PZg%E*4M@Of}!lA=src>ns@u>c{pYPoOEJQc}j1mkKH2@k53I+@6doO?l%p^1n zgx%i{96Ssx0yLzP2;BbHJ^&On3>@tD1pq1xcpN4SCipd*f_@MEzrJ8=7P&gac*@b1 zr%VVO555Pw0d1e!n(DVtpL9`T=9visp-3uJf~1ophuC4rJep`q#Qxc9F?U?mp9?^- z!+-iDpi1A_ut_JX8%hUlZlc1f*)u8q&TP~swFr+QD*$^>yqGycMSGrK(TGn(`j*yS z0}K8`QK3VcD&4mwnwF#B`lbWC2S!RmIdcDGvfA|z5ru;{Agt`RWc!8{S!+cv3@xws zB3@_K)3&yWjyvh8F{#Jr3on(v)N-yxOs6rW$A50uW1d-s!}k@GT8wO%i1}#X3wvQx zy+CVnLbHu^f^RTH)ws${&s{>B`cGzsb4GU%MwgtKx#NjevKWyb z>WrlWfg8Bb;*A=={F8~H+i1wn7C)SA^n_=GUhp*Mg6_N>E`}perZ+MZt8WILhz@2^ zh}NyX5vg`jpq42|Nmy2X;S--&m(EW8k(o9VGmxijJw*uiwo~eGX5GzvnBfJ8K|@1_ z_n+-5;JImP%-7Rzhx=vEGF^%!&H+$g=pIQvwCI{fUcn%jw-KK!D7V^pV^*7P37o5$ zFBp2ORnnEo0JG(hY>W8JHkH~zg0A--u!K*vA=~}4 z0slwZbr*eVkT2_*H{RC8KzFkIUr^+cZOZ%Kv=lJb1`mbJ1N^W2y2V14%6xn2Jd4IR zjR01C0_kIpx%S)m6^pek0rLIQjT;$}QD~f&D<9%dM65R_3lhgWO{DiSwg+M_W{54p z{J~h5C}hiCechNs3i=Q1A{oCsAI(^-Z6b(Ks^OS7uXJsA^UTC>MM>CzoR4Rl$JOD$ zamW8^-yW357dZ53Z1P#i>Im^#?v&4+!An$kY(bmdbfti{Gv{6Fm4Wf{Z38BHI#e`Q z2m7t;;RBxf3+Kzpkpw|bj)je{O)dBd7ftbms~R&`2P2tBLp`6@_q*DNlI>rVx76ZP z2$QS*BYVDQ*&v!TO^Xlvv7Fa_&jdM>eD;YqmOd1wFA6RSPLjiC3HwM5`A?*tUAGjM zQGd?kXr*}U>E%AF>a2QH{j!*b%n&~7NqV?-ZG`4*KHqcN&jU?wKg6qKTZb?8D0BMW zv>5K%IociVplkzRSX7J;MTEZ9I;?V;N zXeR}$|6WkIElb*G`Q$1n=#MF(Xvk>tnrM2ah{G3^oVfcp{{ZkVU6D)X?*MjJe8d*6 z$Nsi){rSZ<002ADf`w~&y(N!wS>}@MQT{_7w0>|Q?oWWFm|V%GCO(4_{Gz`fphb!M zjHS14yyv*jc-0M1h8EU9O}Z2U+PH^lpI6#5rM;wec%jmz5~OBPLu_fFW`gwwnH?MJ zCPGqrn=cmL!(^yUyG1*CsNHt?AU#6zr_R1$tFmaX^?urSSv zbBwe3uNbMFxGGl^e$|sAr_LRQBR5YCo$pefu4t?=qs{zSVcspbQvOGmD*1@@hI<#P zB}Z8Umd5yl9kJlAgt`uCFM>botcFlM$Gw4amKY+zCArY5r3>YgFJDr91>s6mc883V zLmKCvzB1ZronF%nO6V=@p9KJkaF6sNi=4bT*Tcla-lNlYVw7~Th{tIt&rXW(*o_P*+%U>PMQ%nNchw5kx(T{!pJ;@DOzWK@L@bk{d^6MOBWT_)}1 zqIYOrE4#fDC|BGL4@ejh6et|MMi2!+_c&E7M!z;6)%&mSqma8(7POYmy1HSg@(Q(4 zQ27$$$K+Y9mQZf>cocV~SBkxgVa{3+Gp)Y#Y3jy?VbV@B%;2q*l@5-dq>j>HbiyME z9FlyTDK5Uz;y>e`&kUd;U!IM zLH}vdU}HVvecvZwsE>583G#G2^4( z{6V%yr;YXQ?TFNI4?s`=_h;1l_3t7TGO>JC_c4=5pUEle*6viOD5WDo0e zksNE*OY;sHE(n4Q1eK~6zicQP)AWw3y|D;pH9C9bS9)G?#kIq|*I;!|_)l}#jUF7L z`fwCA3K|88{fV)p_@q(&r1gCORCKrpfe0DgXoR>{Z6S)DAaa}KyCuj>vGw`Esu1+PYLW1gZ<-{cSTxtSbyJ;@!O#YBQKH;v@$ocb-K^y04EJ zUEWhw=m^5X(=2##yvyn*h)itxH#?^Wv-5!McG2yNd)RgGPgxIC>eU5#R_zHGwv3Rj zj}P!G^ucZVUDaQ^i;|JL$5nrNK}8{VX__AO#bbb=z0ZkM`LmiKI8E!u|s)<9t=K1+@HtDxx~w-byh zJ!7D|l9!;FsNMFeO5*lrnQu@&;i-kRrN;|E&>uqc+jgltOXlsJuh=}<6Iv|E^AvV( zDiqk=UF42=5drHc)Tq-vYgs#wTq7!h<@U64JD1dhUYLAEIF}uRd~?*vR}fcN3(zo& zAW=SiZ>`;W?Vd{8vi6 zfP$f|LFQHXYo==k#oa1{Zt@m?(gU4YEzo0yTOzL|4LN`0pR&_zdbhj$e=rhri`j}I$79a&-@^1x~b?$TqP|RrDA)| z(jq3nPVHH0?s#ZmO`tvbtA;FL(;Jq~`a2?a|I{2U%bJnUu=E0jnd0s{@i*8!%r>P; zBkme&r6^UYtW|1FGter13iuVbUp7)ZA}iJY=7_1oJs62$`3~URGlzG6hW|k>FH)Pg zZ5J#!NnSKmpl*B{D)Xc6rgTBX-IwavADwlUn3!G8O5c8DYGOi zyH-Pn^7!wSw_zi4+e zhOv*OI{0aN241$jgRyh3{X#8y(s?!bGtVa9$EP2ief^BCIg{g1THf0mslj?4Ox|OH zpO2RpE)Jruvq1}R9lv@D0LUv&hvn~73s6x0osMM25AaZO)E3l#INfw+-upbNT`cqE z1nYLJaik9W;WQHBF~o;Tjr56h8)%`Sb~iE<>;@Z~UVr~9o1O%|nAx3G6J`M}`;Q`9 zH#-j`-bueRa2QMRgqiVeS(?@hd+f!a?PxTWt1F#g*E0UD*1o{~%&iB*m$6<~(2Sm^ z+==P3aR%iu^}pc3D0N3=nvObFdq_0tbdJSE@r(0@;ydo%=p#NOekm>&kr}}@!7)KE zFf%{HYN$c1mT(oZ@gl(N{K-wi{N7jCRw17cXzy?GAH56fEYRKBgk8W?UKALRzHd%W`Bq%ng*0^q80UP*vi1P9pw7lA+;0Jy{x$Ja5PpWW@O8w5zg} zo0-o5>0<$SWS|(}>x%*w{Aa#qDdneenT!wx+K3K&jwzE^Su+igGX7u)NO$pc$d9^#U=QmlJx5`13DU*wQp$L3_ zUhRXX-Z~w1U~DqxceSfYxnmmhs#)uWczoIz+YKSFiuI<&P=vj%&2Gaf)<>kBv1gH) zpzi=z)Kw1D*nrVG$dRTg=7Nky9m^=0&Mvu##sU0FLQwLv+I)ZlxFbfvg64fc(X!*lLJW4AtzKh&Dwdb; z*1W0o=PaKc$(`^lx*w5QiA4zSNrQW(QnogU5jd#ANjbs(yKpKPm@bKw%AWNHu=$Lq zu-s3Yl^c_ac;wbX_M!}GQn>pG9R@=Coufo02#3YQwA?h>w%vBYVh5>!k-%3RBcNb4 ziri=HYQ1v8r%j%-Q!<4i%i=y%QCN9#mvf@jDno+5e;35vJe2-?>|e!DcAX=Mj3+b~cR7#Y>qXA<>>q)c-ZoW3TjbB#_tx&m_yX#*9H+6zt&4`zABX?1#h5>0@q0T0 zQHywfQZPF`<#w|iiJVwhBS|<|HIiUElfkr{EL33NCYQ{E;xAU0vIV_p#3Kfh)^^0B zEvtcI_AOcoVxA`Pl%oBZ;C^lRUp{OpAA$f7v$h2%vaZUK-cedprE{3p`0)Xppa#`8 z)$n;71qVTG3Zaom>Ka;;y4yIjd%b4qAT(}vh4(U3o1Xz(W5^3kGlZ3t508e6vOz{0 z0ZL`hC6F(S##j|DLhH1ANnNY0$5#OVT1P(Q-m{K(oU}k@I%lXJd%k?m_j}v)wQA3W zElj)~nwChOqtfENEPt1Fvhhah>{;4w6j?taJh>f zz`}i(Ykn`{$jt&{>d98{f-?MU4-iB=utr;-e+MYfU11<_rMFn}zO9{Swo+@rn-#CY zEO=P)030Np1a2?tY{X2Qx5eGNBd`#0qTI_6G&5_{a_lo{7(Y&$ymbFN&jhTHX2C%Y zy4!9~P6zuAYplR9q|*J;zAqK}8Qg>)G3PhoRKib5TMoC^5J$dto+D>s@TiUzw|n}tI-#l@sjXBCe)ayHn5g|if{NhHB59~@LSx)TniS&BfnqCuS>^PpM`>7A z*NvP+zr`x@hiy_(tH@Oak?t}9U#I!bMuhL#UNS9ce?fSdp)$(?DlOSg~+Vz2R|Hn zgwX~U_|#czy7Ucljsb%v3JL0bsd?t@)UWV8;ca& zuB!sp?}-j_DfZ_--`Yrj{bsw-0=zA@w-s%;;T&OpoW5_b?O=Z{AkOn=9-$u9%n5ya zUHI`U`}S=1{=v>g+p|D?p)BVR`cdBJ+hr>)Y!RZb9@pgujElH9nr5DC+LO+%=GHaO zYL58nl+7;b9r!2VpI|YbULH8_J4rX+I@l|_JM213H@9rn8{|Lk^egMg7v0tGv zWJNFn8Q3!a%rn{t9!J|77|_PRJTErhC zU;JzrW@pUrI%8l8QkC2pySj+Cpo?e7y?ujF*ZpV0;4=8n2mk3K_Mf)?|FscvRe=)| z0DyyrhlV@=g!^O|_^JXd94;mf9tS5E7A3YC6}y-zH4TuKTRbSSKmvS+0TFz?0SXTK zJ76(-iwgSCIP)dPWAnql`IshxN38FSGa1d$X-5wlb1%P5RZKY6ZJX46(6oDGx1?K= zr4NOZ+G2j&ZKeJ(WhW-$M5SOY@;aYw*Ev7Ucfc|SKN6V@;Q;YFfKZf!rCMEXN`u_Q zF3ZHA1vgHbDyz~{LNcqmoagF;!=qL%L!8*uk3vJtG^eEgt0}Tno4j;{4SsYiB?wrc z#&!=`{aT7KvX2KS2m-#{eacjlRE3FSsZtpLF#;8C|@{xaa-Ed%y*_6!@QwGK2O7OuUhAM^^}gv%ox*XJvP;mBdqu``C|#2;_hv{!+;4V(Q}UC>Zpt@1rmL(#0H5ASoIfmNMQbu%8FvmSLrnqm**g`qz^Nf_KgIx; z^jEE?Qwt=z??d~W)HM9KkZPI(#h)b3;YJ`Dwd3wjUz;;3u-K`1(`~V*?>+ZsudU2! zu>V#L6yjLgh({n)xrfTwVV|cN{7iY^oYC>y1RGVVRXG7o`@stvl-Lbp5yEVAw=_!j(5Rt4NWaSxu>ZwH?9Q76Ud!c_-PciFAAxEQp9jPReMfE$8} zSh(LAeg`Z$_7ts;yX>}m7zwhH5unFJNdG_9uzK6=n8q)Ad3R-ha%gGwv{3#+0?l-A z@^FC*&4zdMOY?X;?n9g#xrh_-Z~jSZqf7#@sh$YR3FP@H6nG^1=-2(SLmD$FT`M(? zO1uk1d_!+22)h@za8pz`dQr(8d1EuS#wCPWn~QH%Sqv|%p8*n=56X_PSfjvX@tZ6rkm~J<);&yRqpWF ze3I&?BND`v;rhq&@oWC6EeTyRoH<13F<#Oy3x@mA*vny*tRmFL$u*IHtv!WbqUsuL zf$2-S?|XJW)(|S-1|AQ>pUR^S^5MQf$Ey5_7X_Rmv7!@k@b*C~ zXJv(7VqIdqQc216E_szF2}{a5#B3Bu*t(E|bjgcZES{5r%GpxuruyzXK#`^LZ7KcQ zVzdKkhLVg%dO60s&ex^S9vzgObi}sy*t{2DyrjX;24YXy^S_#XQ$%dgZ|@L6sQA>e zmOOGF?g|4qv0A;WV<=-MUn>0+0SHVXV?r{U1TT1*e6c?T&K+8|+^SzJEi&CZt}o`CAo@A?c?SL8X=6vZ5%uTgS4!?{ngV+Gc8qJ(Yt~=OfSs8|a1T z5sc}vVw^ZOJ~kq-8&@zXr0UhbIc8+0){N0Ty1KIb$kv@+8mNDEbNd~z-TZi{r^Ugb z6=aBC8>7=#Z9d&#H}`+Mp}Uw@`rPG3ptQ-VEK0_?_7S*Z?xsiONop)hpx!s-`X34| z5r*z?uNKYs`6VOW$2Ew=m+uk%oQh*AHum|I!nFcE2|~I%;#rGBLClnus0E*X^sS;m zFd*&ssQ*w{N2hwP+cw_)F*a{>UUo@G09jUt>!v~G-6A2`%0=!;>3P)MTua}RfCW(# zl*Qe3w|-UA`eYVh3=(y>+@A{Mu?Ikgo9F>5x&3}4z9qLGox!=JPeUt zT1}#Nge!bwe2Mane0K= z6Ms@xy`e*-#d96OJ_=X8Ek-hv{ndr6C8lNbxb~V)jHDd-%P~f}^%nViHS2#GFgN;k zYBNrS|0f84)Oa0cQKSA9FJ1z+zqnX4o`-+)C%`PyhbbH6nzS?x%^p=sBn!Hc$IMk^ zwR7#giW7ONnz-aXwHY0ozGbGGKIO6R+QUYB9;HU^`GHex5{SkrChkppNVrX^&zt*u zHt@U&ph|dVe)a2P$Y!T=K7oGhl~Bvp{^Kn^ekQ4dbD(*QbSL^eWAgBI2x;$1oq;Ha zes{ub@Rw_TqlT0@oTgX)w*K7>GYmITW3#~Xa+%cKiCkjMVg(PO`Nl$$I+)uy#@Y2Tnz@N8Z6M9%vWOU<-3B5f@Ac2#-;dT z?R9570gL4q=*mt>twbJqn7;yOsR1Bn@h4`|P(o!nnGDhgR4%Goi6oIrjT4(;sy->x zKs1gpG>%~6lAsUr7Zs{|motUt5VtM4DVZ#RHo(aqlRLPgr$J~EQL3U$J|S;t ztAwnn%DXw4Lv$)u{Cq+lwD4H%jvlu5w^P8#{F5HlSlU`ORkdUq&Zwx#O@ytNM82Vk zQ!*wh`Gi>B;9l;_zXL>8sQCA~?i-#(I(KJ|wIo-OHaKhjRy(b;6x-x1eu&b;JZY)Z8;u&7U>L$XI4M@VAQh=9BD!_DC0lL zV7-LxBPM>C$aqTbI<{%!Vjzp3)K}uNsN50~%e~tiPuJdl@G=p%SU>cgKkZM_Kjy#! zc9wHgwzn?6Ok~|cc>(=N3``{+G-V2r5H@S?>xmnPdTYarH#zC(ZtLbV&7WY*T`j9z zzAk*csRKT;KZJ=*Tj+E8ipO-~VDhlk3U}vPNvQ=@k{0;>g!L=Nz)vjUGLke@NgDFB z<8WnDGm?~V2*J)h5fN&{f+NGIH_3ByB=r*OS6nMZpOF=2n((Y@5%P{ly}@Jm6l=FQ zA(&B8QfrRsodT$__p}m~x%IS^CT5;=XBT_E|3N-+aL|&LQHB{}SkBpN7q)0UEfhcX zH`EuO^p`JDdfdn#d z9=TG)-~jm3$NsA2giV{_wp4aY{s8kyCy>cfpa1GuL`LZ99K3hiKC3iXh>e}J*G$GV zW~Ur-Tvs>u3XHTDwZFTK$O*L#-Y^8zmA+O+CAC|PRY~Loqmc5HRssA?qk`L+ukDoE zoA;^>7MCR#kDALG^wvhhABjoroeQxtzb1aLJx>Gw;0l&t12}}HnJAKRv}#8~R>4if z*3O)RMAb-AH9sxxd*YAR_9V!nSUN{P$lmQQdylu`1q3t*)`L}8K#LRD82qrieV29F zM?lkA%1819u6;|cUZm8Ltc0$;ysVqi#UDB(5_+}fJO@BPWH;PJafpL306}vBs}m-5 z%IBLg?Hix?D@7*bHWhqY!)( ziAHvA#$oIFHd6yvhtoyn>v-6?x<9U5;#4RYN!q^%jk_(rUk)-pLeDjaIQFd10x0F# zUhyUxDEnCA&@v1-W?C@Bp2_JK5jh2(f<*w)NqQ!M>3+@~<+cPFi3l<@j}G##*pZG~H zC?(QVs}kq9^z8bD&Z!D*XHg2yHy3=64yD(ON6)1akNgrj;$bbwl?Q)QkndsL!L^L+ zGeLj>JLnP8lx3xXqE2l2l*~#Mq{5%Q|IkHj4`XuG;Cu**2OiTP$F*{R_&30z=R7lq z88q|Faiy|S1O0S5%In*A@13KEMY?L`UoG?waQ*u%5=%TSL|@__v3U0$vtXPBw^n>r z2g{ZB+r7S(hgAuq^Y`x5^RflJs%Df^+(7Kr_;E7zM@OJBJZkkcaeVpPd1&?wm z!su9Y4<318#<9gd72+m|2ff!)+3pE!KYWa_hfjgz*aYdib_D1srHNK&o+eOXM@)Hb zGxK{PIyU_CQ{kz*i9_{;FeL&SjxBbzaQTD7r`+Wdd-0U7cW-+uZDV;Jh3X?E>;2(E z^hzJ$TuZaPT&Y`N^cR^xxSI-q?F5=gqTM1(XgwNbqcUVh9@$8GtNkDpJ&COi_7lbW z=Rdm$tQsHeCY0<-k}6X|4n!w>QGf&0H175YHxXOso5lvm!IoR2}=L+^T6J!MCJ0~fb7#X z{skjuwRu0-WX+8S0;a+Bm0s$t{gunHDs{4#0oi<2_g>%QvSwy&7h4;(NzA$F9O9-B z9T!n`!y(+xbtVCM5N&-kcy(PAQr%oiJdw*?;#4FDCk)Zc*J_CNV1=*}U`2pJKyQkm zdWq6ynK|X`ig(jFNb#EYP7kr7S&3B%Q$=%L%^KLvQ8z4>cMw&Ul*7`epDk&n>r%2r zRF9V51BHDD48zx~g;8#m!$IN`3;KHcd+X9ra}-BYaliO9P4I$pfy*RW-f#oo0qF2+~CV8Wrd||llrqrZIgOXsRh6<_jCgI7`jZBQ`6Rpb}aw}16Bwlh}-m$X-K`k zkNPGb1@asA_p^E`KZmn7xdQfT2n8+ODAW8@H4{lIgf=8uE7R=UV9v-AC4|BTgjK|n zXom>@aL9$JzeGo<)=~r-{Fn^(h{1>BlwEcWJ7O>x7k>lc17+-MyW2Z+Pt(_L9Dlxr zc?DLguZLRgam)g#gb_%PVX`RhCwRoAo&v${w92y#htIE}5RLYb%L7>{|J-q0V&tuf_xBd8X&_7gb2 zwnqMCNv_r}U1{f-W+qK|PvMs>zDi~T#tc!P%DqZvbZXy2e&fWDdX0Q4$Himj zLun${6->)I!mgx)XVvqDe~ZP|c3Cu!8G*a8gl{wh)qK)E1rc83|)lxO08Up&<`$)S$K{ z8i{^*qe@$-BcW!-3ZfAh&)FUEkd(lmQIt^kcHtdBaT+VB8YLHpd@w#|ALHi}Vz1nnugRh!c)p_?9V~@}86-xER z6^HC91}xKZaMt8n=(ly!H?wQO_a4{e)<6omlExcWZ#Gp}AE5?PjO{lJ&XkGZA|Z;4?eDj+;HX!ieWG|oWRK(+;7&pm*=_x? zrVUO2gcm_q!FqwM-Oq&b3B*XSu+WgVEH51 zD;p2u4LT{?!$~?!X{Cw~XoCrqP|Bc78rEbvX_wjQ2CbBleUl@cGV$Q(Bp{?>bh{S~ zy){-Gn~m8qn`;^}7D$r2Xf^bXi9}I4OpWgeqm;pk+a`iB7hGR4sM1JmL7yXq-(vxpeO|`0;sW82?H> zgIMH^3UUgoP@IU`9mwV}Cs*n}mR}U{GwEJg(gRzoO%lswf`8+iYvl-N0O=GPBd+LU< zJML6*lAZdoK@?o240d__fjMON%_2X^5j!NQ#BK#DK(r&|K;*C4sR!F}Oqn~Yh41UT zYs3Ntv-Tz}qy2O(Dnx19H#K4j{jtHi>)vQIeNq2t$Z2#L~l zxZ{`X|CAqr(pcsw72+-rPd%QtNZ3s zA!;$#2-q1sDnZSzlD%SW8@pOG?LuM+%fu|Gf!R_aEDkIbZA+0xSF`8zSHzlK9Tt^p z&!z}%R&`R3!;l6Kur13t>}nALwHVR(5ar2*lDk$?=3i;O(&z9pX zf{K0Xeq}uvzR^~r>Dl$@5ZA|utef9wYEnQ6I#@uX672^exQAP|H1fo9qHoy-CuDLH zc})8h1_O;aw$Ej%~br8kXbOz=^%&}spfyjCfJ?_RH<6m{s^S!S_TjHd?s47owkN^E-6@^4iW$Y?(r! zjQ^1Rt~32Tvej zfc%nZ53#dL^#$@@(~aP)!VgE_w@1JRjG*vbVz}AV@Sn*6I|v7waY%PvkquKZ{M{q$ zO|dMS&@p8EjKIdGSS+&iQR0#A^kFA(U)ch&31c$Ejexipq0(m3wiNe!jTcZTyG?4< zCY@utXk(A}ho!wD+s2!11C690m&R#-lrLUWEXxmU@u_p zmOayhWEE84hZTrWgV`urp6@+<+X8v1KvqeC zK4NP8aP?!?nS4GX@q#>O9#$DEm|IlZ_XVqAa@g{3P-I*rzES1$sGi<)c>6-Nv@v>N zQIQ;Gv@JU$TL;ClRi|}kjT<;gny3=Jqo6oNwBA^AOy$KL?%!BQI{Ri0an;@w-7C0jrhlx2%M0B*8V#9q zKm3(np2z>m22ii}cfgiU=5~F0VtyxgNl$}ZS5o;tO-p7#o}5o_s%!!{_jh%Es^`Nt zqd;qMrdkN1-`i?96SE5!X_5A`VOesyu}v(c#CtQjzzK} z8O1~7v}mcvcSc#$gfy=J3^}xtlT(P25dTKP4NUrGNxl*O4e9byPrYPB6dt!xj<$U3 zO>mFB_;qJ~bY~Wc`FcrIGgh()Q2G*`KNWF{jBSwGm8$tWAc=DxJ`njKpJZ%FWLgfn zjGj;r#b*j^p21s!qT#KFu(YbJIru5;Md}0tr=%kkTg1*?uq1hk>{Iz76rxC~ANpwF z&d`B8nW+`2;tvFUo&xh3(TK9Ohe~hdnRzt_GcWxb z@TuwNr_mpmQkllQH3%^4mXud{cPfJ6bG8n8vBd~1u&m2!+TzP5XmTV1E>NTK+l#_5 zLQNivA_4JD6?8&t(c5tYkdU}g`HpG*7DZ*JPjx3{y;#1b4v(GzUmmknSY7a9pV{4P z8fcKEioGBG4oF-D-?(ALg8Uc=;{A;qnER_kkY5tP!o|j+;@}ihQ^z!;7Ki1cbfF0{ zHFv$gZ3F%(5mBgbTXEz=iMpST9=>b|_%wa<5?tgumHPlAB5<9M$=+qkDP^&Za6szb z#6%MLmhnv~h6+Q*d6Do$(h1B(yuf_wAaLV3*@BC^?j|Z-amVDX*queZ=~c>vhsG8) z)|Y~QHqPVEeS3mL&J$0s2S{hn9Rl%vT8`W!QG$$;iK zUvJH#xLrp~-OB8KeH<`X5B3YHf~$}#nErQs6@CZsg)XXO99urH=}OGG?TN6nX*D5U zlu@8@=ulv0$wv#aj`l;L=ibJ@Z2AViI?gXKSrY%Gf-MhQcY=vqo`{mpvaqM#n%n9z zhf2l-Qaq61ZS!D0W>{>%RM;~Obrbqz6omFH@W0;6P*Kaj*vOGyfr9xCkS3HrRW?oC zE?Jo!Sd9cKnMEVuoT%Qpr$2a_-Eu-{8I*_2i=Gjs=lresdLZ4e!7X;uE`Vw~qy$*B zv!2j&p7Y3RgG9WyT=}gWT}$6wMfT`1qF(?NPhD!Nnk4+kx(K-Z=)s5mJRAvz)T!wWRuzw=z}4W-tei?*NGCwc?7i~dMm3cvs*M#+=?NU&iY%mR z+mYl~Ljqsa{6-^q$C6!=(nn8J=zAJ9_Eaq3Qg9L-I#W9ty94FgFznvZu-96!VK^3L za?lEJ2DJ&hd3oQJFH8PgsH3B(|bh*eXqz)71JJC zy<=5(i%B&qVnlI{*vU$2!R+*TmU}dIOA{tqO0^ZUCnrbsP&ewu$}&bbW2G;f*_sNz z%8i5;cSP^fXQ!xdy^&TW{5ZEbwDVs#h&JLlo%}l(9K{%y;=K#p$)qu=u;i%I*B3u_ zbo1LWVBZF0E}JhFMh^uHe|gw=mvIs|^zW)*+MX|uaf~)6a)4r0azPbIQ6=f) z*J|3Wk{b*fmSy>yy#w~+x`x1Ze}AG+cnX+O8@NbuM!0H5Z(BmysR{=}dkHJhcumzw1n5qE+xtSX=+9@o*GN^5I}c)n(k9 zP;TWUejD+$fN;@(xg{VP|4M0(PJX0WW94?Vkc+#NU}3=cg1o<3(@i+erflm8@woEf7oMVL zNr(2*d^B@2(N3}rwf_q3n^y^#3dPwQ-ezX-sB!(Tg%GO2cp3v8_=LF;l;RkC)Q&b9r&>N z*p(K$g_YK`p}YI^+Qt+Y6hhRc40rkan9B+`ROSKiqP{8k)Ni2MjXoa8;Eeu zHZg;=jPjEyVgv4cLZ$@y)3gyw+aDvjyu&Kn^!8+q`^NC1ko(55X?VXM0=5Bf1bc3> z%zD@vMFwo~907h{yH(Q2sTN|&B~23{R#wl55Vn?vBbFHI=Leo~mCoSD)}7gk)tsBG4J zrLY(c)LXdOI6OS8RK(<>BJ7wV1N_oTEv7I|)3I8Fg6+HtrJivTu{_#J)o4<&T15?e zQ7F$%hD;o2w+Hl?bP6g$#arzih_8hOI@N4VA{SuYjnzrl4E%Jprx7sT8hf8=LmqKO znnwJzj~nf11TeN6rKcfMCiw_%DrVpTIO_)LH>UDrI%%aY3E%;$^t94KBk#n&$f%)~ z$(C=O%gmz{IAyPei9&nMVrh`?S5@ap(!RI!@b;~Q;~G-ww9oJO_(5?UeynTn1n`_P zu0Sdc3p)a}qi9I{O;E?aPnmz?sg_EVk5RaZ8A2oht`)hNtx+fgeqwW22?(-0MsJ`z z$IX*sGq5x@c3-giCroA-^ro(}StbenBGrqiCC&1+d;}JuKyEVVcnWQi@?&}vp0Fo4LLq4WY`{bQd#sqO zZ_@5=>zJqy<-Dm!5s!VoAq*@GL8ZjTD@2-eixr6tx(ce$r8sR)b${_}`)D-FJDm!Y z=Y)#c+3U$WC`cMy9(@H5A1+dcd_a_*HqT?0YnHg`C0K>bXP~CWyv<4>cu&WmBWa_Ztkq$Xoz>Z ztSdR^saAZpGz#V${x;TQHmyWD{mHitfv|MFf(J2C9ctIwZ8jekPTIF%POhO z;poKkWzx)0%&Q)SiRN17A7H~JoVGB+hHRev7(cDlR%1i<)8If_r3(x?JxDG*)6BQq z5k&!fgQ&MtMxR6suGH25e0uKzIu(L*Ozl#9tCI0H^l}WJy?I z)cd&YXZ0ZPtT0z?Vm|5303Quya=8VICTx9w2i~BNwmyi2 z(6OFDS>8Ot4*@UUJU^|7q5@&!V|whV&I~jGWn0bg)NPmZ5LY4mRQ5}=0oG~-o77SS zx15=@3tQSse}1zC^guj?si0Gtv7RNW7>ChCR5rZ_e#TB)o{i?8+3{6d&1@iRo#+_i zDV?GgybCDy z`(*-vs9f_AdAHGf5)CA-n}lYH+Px(*5bv>aqqyF|VA-MsJ=NpKZo#XlmBvpX^p{YW z(!F(|XRVeqkeI*}x!*d{QAn>HGnhInLdjpY&#(b958>m%#Y}S(!Y5K_V?!|xbLod1 zY)R>mH+#VH=eOGJV2vsI0Ya3jQ57Z8$Jn^4_B%ruw>zlf_ufCRSVxj$jrNxCUz)9|M5hoN182= zf|x2SM6PlH+M@MvW*$a$zJUS6z>8Yva@#_`qo`>7rXQ zF-rVFB|17LtO0V0zmbzQ^6t?6;N&Iyatgr&>LQdkc+CuDPsqTV-qd~tva)B^H+VOr zX6sr)Y+&^jWM%G3bQ(_9=n{cfQ)^|?Lwl;8O9Y z777p2buPg?d$}**Q4_-H4Br6^d`Gy)KWa&bV9Fv`2$*0zgHM5u7(DmW*pd(5<0oQ4 z7WchVmbdw#09>Ql3Sq|J0ixMX@8TR-DotL%otl4Qw`%$y{*l%hyeL<9sx3{9#uQLzIeA~pn6K*4W<`Y-;U z=e^He>#py<@Aq+L4U?I3_SvWH{o8xaIn&N~$eZ58`OnoF_-@qksHcv`Nlbb@V_kV0 zJDqsU>wsYLlFq@S^l_BKRLc89v@jvuaSx+HOWnHF8T7fI%&F?}o^fF6QrZy{o5OU` zN|#g{EU;c3n-DP_+u&2_z$d`PG>2RJ4g}KWPv|d6D|gE`J`8P61BY=Kf9WL4L&Zqk zotC<$gfpO&9a8oCDcriXByC*Ke8)Jp6hv@5(xO1#%WJVU7&u zL?UrkB3sb_0XD7tA|rd3&HzM2Y4MLwqT=`c5a;&4S_!6#7BtFZmP?JYw$RSTmeXZ0KTIj9{HqK4SbsVeI{U z@tjayxBupr8e$c_uDuslM`sI2P@_vi zXbg7D#>R%;KK8~3Ew(%BgtJfy@6hhI(M?Bb??8@!)Y=j8O~_$g%5m7)nbwjg+R0_| z-Jp)aLl;{`x)7>oc^tIOlh@n+fMWJzUY2T+JO;tfZClGePNOw-KX6pf$EYv4gNXRB zyOaGKlBf8cJIPO&E>SoOKfI?m;`P1BbzN+tKh@=yqAra0WVc#zZcq1nl7FP{>*qs{ z&(alwXn|An_p8=x|5#BK>8E3edN!~FHM7DaLjrrVh zjmyPMK}hi@GNA3&9_@UFPxNO#0t?~~J6oxL4~Q4*lH%p{I??g9BnThx@BLnpCr;w- zq|Tpux9`|eEr;$ovJ;^cwX)`eqBMdH%BWp*ywPWOx1Oda;G zdVGATqaiOWYdkQv)DUr*e&HuU5;$HuE&e)vda>&D^e2~1_Mlh8h)$NS>9Vn<_FLHI zmj3;#E}PiZO?+a*XV&nFe*ZO($J-sQOmkaBY>C_ar%G#JmUOL4$1|gc<07^@yhh2C zP|g{jkn^yJ>yqFe%i|1qdo@yNOaGr#GZtxx)fQ=9JuObR4p5V!O4ejHkcq50oC6 z(V`-@O*jdxcifRIn{awOyx+vI`|z*f3#B82ET&iZr;N^^!svdoH}*|BP0uE(tY;-= zC(T3og8&^D#NbqQ{|+ex*#$~&A8R>meXK~W6I6K#jT>4#U^jDv-Da(e6D&<^raA10 zk;|_CSa81UKKd~$M4aB~gia)I-q}Xeyc2F1M`B|xn^L-j3Y?F}{um-4U@U5O?N(Iw zc2&MaZ(9%-SoT}>p9%9iz`pa{*{yN(koiK@l1&=-M`&l&l7qHcMZf);OtCn}So)5N zb%#^X7vbPgvb+r)1-VLct6#AblMFs*b_?P(CGyS6?}+`H)YW#(-oCl2C6a$)lM!LH zIwHq9^RJ|osk%Q@X8toZ*Ixgfvt12}s=UmiS*&Y_w!1A-Gb#Em^Urm+A)bw}9Wg#Zd>1FU zq;tf={BzLTr$0fJu)m9ugu68%`^-^s<*XVHq=Qj z2Jw%xtq@_B4yGzEswEb4U68ZcBprGrb@~xLzF8jc&BvtY6(~iCs@T%+AWEmXDu^*$ z^LpIa^)#Q}sbk-q`H3+6z20Mbn)I*#EhZiGHt9C8w8V)KJ}2<^veCibyLXC5d6Q>* z8u&BL)c*wy#)6<0H6?7Q7p>JILmgG$7>M<@2=Ck3ah=euBopiPE_&7hP57eEJ(^i+ zaL!{(1%Zx&L2ybm6IPvzRE%C~t*dFK8 zHB`RW`#AZM=guq-i*JBw5xe=fw3JWJ%D^A-59ek!U*3_-L zWXhubWu@#b0 zx#h3SR+Rdarsk61pDK}2{LPZtcy%^kUe$^J^PaN+Bk zbaPGb8K|4K6x6Si!A`XNqC5NkHZPi!{g)I<%_ZhM`_D+#`>=3i;CyjU`Y&v&U(NCg z?W%i4wt8Le(p;+~&oN?%LS;+)FZBU}xVz!VTQfb$~9+^^b-O4W$Pk!w9#r zKe3;0h`2btc%PBof6Yxm=_OjT<#Xpk7oavNl zh*b+f4NYU|R$_XZK*^Dgl0tby4Wl~0Nwn!@Lru0WoR(2CXmy1(rz$Cns_NcVaY>S6 zyz~zv5j4o($NW$Ty9yo`oblXpA)HTam<9Qd+kVmMmxY-1F5d+WTG*f}(=2&|M4%KB zTA`H>M0uU;L*P?KW_?;~lNWRZff4b%ja)9?8NVSh@#-KHS0v#|+@-fAyqO4)RfTA#hO zXTO89VnvUQCg1t|h3YuwwbKlS-D8O0>e6nn&hhHzA>Jj>6U!N2$dot&%V(;tuJpW> zzi98_#FkN59USr+5u9WHO7l;lcHJA4uGhU1BUVqACi|;CkP!Te*7S)SZByJ?ltO;W z_%80R{W|c6kyPK9L${A)td!%#>w&x58~018t#)xNdQD?pprhQNk)_QJ9dBUh=FehX z?4IE)8|BnDXz^iTr6&g+yPZ-E3El_P`5>)qk0IR>4Ga>ATO%EG6g--7#XUwm0f}`z z(sa}8qFaBHN@LxRLjN4+ri-V2%i9OdBXe`V%FBOtaedox{b9hN`tj#~z3oQklOW2P zM`lwcT)1<;N*`&Xfxq%_@U6T5NE(#+2c3L>YC<7MtPiqJ{3;Of9Vnzr|8K(_X_9;PqrL-Ej{F*2c(&>npOYBW z%?ob_A6oaYithwYW1W2-XFtKseZ@M1OZxMc1?kiar29j1I;P|D$3HlT?3*jGU#!i>VU9Z(1CsvgcE zL~xIk<^WswN6hRlyJxUSM-;g9X>&gv*iQ}9t&SLaZl}=n0~qrKOqp*36;VUdM-7%T(oetOeIRyiP;B(AB+9RN&pe-m-9UG+&O~&~P%244JdDH5 zP(3Luv)YTg=_oK7eCb8kQv2NzsM^+zTt6BOxX{w0qd7aZ=Nd6*F3*xd#JVeJAl7MpA)n7a)<#2z89i@ItP543<21|H^_@P8?Vxj zx*=Byr09&X4$o;KxCPCx9cXm$-+^~M>t)4v++|)nnYB8M*XD%Rl)Fns9xb)<5PoGb zTpnqI*XyBx8g>>{B#Lj&c*v%&e2ytP#|B;H1ThGg@}zR;Od}nei)P0HbIM0bpyA1c6QUw}OM{uIMgVT^9HRad zP5z-oGEZRRpxYVmrD}rGcr~|yOzOldai`PKI(+LDi*^qmUs=^or!?}*TMgRPN5WJD zIt>GlxSUO&LKFpjNIc?w;xhLe!_N+-7Ts!HC05aKNs%?JwZ8VeaGCgkznq9<1Bx!fH0PJJ^?TI=q>SR%svA z8UCbTzhn7+$3`gm1Qaq*b7Pq4EVP8IaI(a&Z7l_8Z&kqsQ zqjSe8-dqDOyRARbvDDk*Ebc7M2qC}TWUB~(i@RNhyQ7dy(GE&>k#HeKUCOy{a<@;- z_s1}nmD{OnJ8O9`uTFt9-1zHv#5X2uVmCU{5&)g4e0Kn+!Ap(|%s-4jqCsOoS~w^z z-DWyD6Eq&G5a-YSq0Wv|u)yYSUqyX}@vRfu#92C}?gXQ~Wr`R2nCmo)k|rvmFEAmK z)U3npmZhU8d$Zppe&Z`eC0){x4HS#5T5;%nU-==qisOWg8X?USD@??-G1!Dv=j>QZ zBpWzJBfXFu)&U{R32u5bJecNKaX_a-xij&+fM>Wu!z?+|P(s{rv7GX#w3fL$ItcgL z)+lJy$ehj=e*&{Oq|%#(!B%Xp~Uh2 zz(5sv>(TE3;wWr+A)V%BfY5U+er*=?!fKHbkuWO#*$NizE@G6FmDs9mBcpG+0L}w6 zIcDV@ypy`A(~*wO*yn0^`L$T4DV_^&SsnE?br0nKa{-(umTz#!F##p)raQJHB*S|f zEIM%?wV=;ffS-NR_sysmR4hsV_4}J$#|%tn0E$;3qy@H=Vqt0qL!tl?zAT?CXN!F$ zh2BADJ)`!(rk-CImA1@b#~0YYGUeVzk+{qIc3@5NiuHxWH!Td2aCsRP6Z6!uzsitg&i5Kb@z*K7BVIsWbk`s_~(Lj=j zo?_HH{Cq1ja{rQkK*4$U@OrG-T9PIPKLKJF&?CJ@2t3G zUSdGoyL*;qRY1g)FqzB&BvwxY78#JlxJ+p?ldE>N`ZEZKsBszmg^NNN6B9cL^)bB4 z;Im(-b(s+lAC8jcz`w0NvX(qp#c*H5?o6>qDEnDYDWSy14?Lxk@I}6xV`}$tfCOK4 z!eOiFNgte}J<%?tOvof-)S%!psSKi(?TK{*TvAexPy0x}rYOL>823}+#vHfXw+&%b z4afwut5F4T;Rj*IqL%k`Ja_-}|Hfh0qrX|H+O0DYw;F#fdVDW#?155C&QPsym~4UD zz?{>MA3AXs$sLz8{C0;)>3g0?oKk@s8*e?O&ZS)3iq6O(d43)J_J+CwJ*9<@kvAhb zVg3!B1_=j2<`(`U^*6dGJZ!>Bb4F;G`^koTEB}P54vgV`{!ZVUp7nP}C&At1RGSa% zAq2H^zkIXXU$hXBVVT~(gme;4)X>V(SXfSfguWtk9iwtjwvryTc|MGgAAqo!Iwkxb>^&FjM~x%& zA9g-2jPYH(F6D7;r8?TTBn_<0 z*y}1X+)t?D^IVHpVk2ayJ&@kVTN9k;y+B5(^VUkNKkhQE5_chw2`T#}bZC=M3+A#t zro4#Yqep9{4G2kauWd6p*_2<0Td4FWRB3ED>=yhFh(8KOTZ;ReWacPrFXC=1_@mu8F`3*%oS6vy?_scuh=U80wN;j3d&Lh-(qivsXGNFk2P0bI{oV zI;bo7k!>IIL4SMsmV@nzhX_|kyAG}>G{k1fX->$g^xV)7+t6Ef%2M3KFeB@kf_wXvEay^V^dvaT z4ykBg#eG2eya%tOO*_tXP<&Yop7}deo@hhB#t-{E^Z)czqB;sY|0=ym^$J0yZQ9Rj zreTQtCG+P~aS!)1mHg^@cbHrM)EG;WYhZtl`5fFd7pwO;w=y=6tJ1O5B{mRKAWdqJ1N%`43q!AiH>nON zrONTqxCw}Bj^)ewn3XBq&W&@Jpsx*|! z3!gfOtV{O|WS{DgZNHc3DDIY1Jw>l%a#F6Z!;k#Hi0STGe`n_=zaV<&{2^yKzRou$ zyOrX;T|dtd*W7eS|6g@uH3X!+;!{AR^}_gi@xAg-IyL4CQI2^No0qp&ZMb;Ytv7&= znVT5R_`_8zd3nsmFMknExKoB-ucki`uDyVgKh*q9U-u0oW5obSVgicTH*rej-O_>% zH%O&SMJ1thBQ~xs!V!13{{Gj~-8d(6wV+WcJnkMn(|`vo*^tM)_FQ1jmCJ_@$a7zR zatgOC7DFGj2rd#sKqT9L#TlJO-%ir6VO(7ELr~~-WbeE+xz&6Z`NQQJ*!tH@)m7OxE>vbmjE(_8nkw1B(I&D(gcIQ0{Q z5*8L8V_3L2-p*S9< zHJN`Cr0US9W8i?Tqc`Ey&z#=6`mv0BV!q>b6KqE2CXY4M?p>8=%5Y21utG>!a*+|7 zHJgpl8t>iGtsx7odse4{@!5LDpH9twfr;MDIl%oCM(cK1YUw5s$0LZ$o+kwO3d9r! z;DFdY*%ZU6$z1ayV`}IL8ZVJ)i=^AkD;~9^ZWc9Ueu3g-Ej<_T7W)Fv?zf<{ey7{I z+SAtAs~>&lL8;FG|HP5X-TPT?#cviKd@wb$)gX_6(URq`i3AB(N!b`2`=cSHjy9Sy zFt1;WCbPR0Z!%}$81AArlVcRn%}R`9Ca62k4AbZ=R1<>(U<(4rgMB;F+mY%3a~6I! zK`9J+5Carz z8X0wm%Iw9^-Q8Mik($U85nZ@-AAH;=3MpX$#gso2)3e;cmud#`(lN)AsZl5RZG(#> znNFf4WcP2-rq$v;aZ9JMw5YiXzd(FqM0GMNR3$x(*!zr)@a!9PT6@PKEnwl2 znXkH(Z;OEt9jjc*1G8a6>&3DLI3Sm4Vxq>*hGhYYJRn|%F+AAr3?Vg|i950^Kp5@_ zaaS3#H|Hj-sKyLIROD?_!Y5zQWeYxc(eV5n^9fQ>9@gn+uu;^>1-I#g-C|S;W8DeOa$QDOioqo5YgG&agIRJ!0 z12kqSnB;z)1o!%memI-_G}($xaeGb=R=RHozGOdchk5lJWflx)F}o^$2=b7J5$i>d zN*mV*b^DS}xsJ^r$X6Af*uJCZ$be?{_J=c%A_N?NC>iECL|9<6y}oHsyCer^S18b;_|O6_B|*}vKOU?cX* zSJY)i6W(3GJUu>xnr5ZmWdfzja*)$MZ0Db$=T67#!tF2&?al>L_Kcl!c-I# z_i2u!h;xTyl7a-{qS>e;rGcyDGK0TlOz2bGSGnnPW}^<7lH0}oYYbha^NU*T=IL@I zI(&e?c#e5XXOW(KL-V+JKF%|?O?ldvmP|aCj6-r4N|Z@HiOp$TbS+-sDV%!NHuW@O z{fNufAlWGic{%1rwb;g;5bKR8OCaRF5f3Gib;lj?%oKUsQ7M}8tA}pcyBKH}7)l5W zwPuJh5x=ISZu}xfppS;YNMt#IdNq`EO&6&n?h${( zB9ErJ@6EUrA%=8)8B54}NWtB%o2dME>B z$v+X$p?18_Fpo=D$jTO~`1nb)ObC!vQJljbCHo|;qb!e)!AxVCi5<|tHXOZg-ei{d zvS*fuAMM^%B(CxLfN`t$k;q!wb;IoWNDpSyg9`ycxns*Lr$6%#F}U&$54`$@&p~Rm zF_PkfYNI+!`ql+5i{B`*%u-)(aMGD}`wqm0ZE}sQ{3JiGK1ra`?h^@Cf(xbE&)K zJI~szcs6HbRhP6`;bMN&=rY@pgBhUs`Z4f=gQDtwpg5KV{^Dq6g!30|6ZKJQhERj6 zN{wY}8C47@6HO^A6yxsgI2d(BFE6O>dHqUd=OGZVI!wjCwHsfO4}Y6ny1-vQ%R~=& zxY{MveD0EcYHk40&syCklz|`M4F|0QQ0XK0vPv}rF*)hSo(F>SmXoOqR!JZA-3fvN zo(m-JT}d2GLd;<06kzB?vNKNg0HznyG0x7A{{@7)8P25QW)>G zwg&(PSCFm3LQ~EI*ax)TDqEoO!OE^Pf5)kj@Pnt|a(sGkoZXdEn<^!23XbSmcc_U1 zsX6$p(;?4XablN31SEEWEZ` zf)qi(k1Ey1hRc>>*Ikojwj8Ovt#_@s(WQqkDHPB;vUV6veImk3_7LOmacV%JjTFvm zASv=ZG}t?>BCV=vL6-TBr@GvRUMtt=l~`w5zOcNpisxVvTBd}l6?>WLi{K2drD}?+ zP>8jEtF5D;H*=@QPPfed)CI> z0EhI{x#rr3#-X1s{XoP@uf(#Hl5m6_saa|ad5mQf=WSEXc1TT>Jccb;A*vDFo?+2w zlUEvBbrtu7T3CuW(G{0cN_%jie}v8 zE{8&5#GSR@#=6ZlN}XRs!;i{g;VSZU`aiQNixFJU`Y~imSeTxj_ZgX({8sd%052P* z2W9fSyME{Y#O%ZXmu4@Xx9S@f3PK zYCCaK|Ha*3ro}jJ9s~c3fYeoUI05`gseZj56z)jLl$NC@*MK&@| zK!&Sd;{fj&Uu3bJfd)ckz)zuHW%M4*mj#2={sal#^;#Sre!d*WJi5XsFCs*NA}<~8 zhKnOVHL$7m?ij-Q!Lu(|pjD)qeelTIqaNdTNCGgSPSc zEz6y5K6!!i%d4%^RYlf@Z&w47!5*Tuwf5Y z%=vYJg8#1|JqCMptoC8Y+B>XvkOtQsIu?T9PbbYJ$!2mWAHZvivE->>h8T5ErPnex zJiwBCkPj68W}$k5LmJ=E*=v)$cgf3hL};SxAZY76Ue!O?bNr%gQ!r@7EbzSj7<7u2 ziEw7i6GFFaIgrC!%iFl5(04-nXhxZq!F{_Mu8uG8$hG(mN-in%@v5Wq-#eknkQZ8c za?vR-)Y!!q=ilVI)yoOWO&OEm59AWamTZ?;`ydxr-Rh;dE)~+3%=tW9zD5?G6&lR7 zl4H;BI5G?s%B$8A6ul1>H!GF}Q@_lUYw^*8>GiM3#_2~#jzatII1J+9xDyF~_y;DB z=uFb>^{Gd7&Ps6)zA|4tb#5(Y?>En9b?(yLkSzwp^h^H$Up>H!IQ67cup- zNwSP9`GJC}2-Xt(9sFnw0yznQ6HL!v~wu9%7T z4PQo`LiY~-jM}jQ(kPT*bi%MP&z99inbcV;M>`9HiMgUz4YaSHdcUw01tiQQD^{3# zQWmzDG??e?evM4vLXZD?Ru^U3UV_TQ2s0Pu#H<_RDyH6EV(UC}pi}3yvrf6^CU{d9 zk{D*P0-Eq&JfD@etnw-}bX@nUyU!nm1d*-IeVIdhyp9a>Z%;YdppCz}N~nJzME9T# zyCLnwFR!>fH~e=e1FzXQO9YT{*th(%<%JLGwEUNk!4&osNdQ0J4^0<-4LwJeKU79A z>>HqGmaaCge zd*eEPE-^;whaXDE36#)-LM!?wI<7CqJ!CmEdhyd7PtbJzsw*9tKOO1o_yr;4TWEy& zPmaF3bNn0%e*QD6JYvRwL>A$Er>FWFk{#~MS$$1rs75Ib2Pg@a>?ES^I{I>&8hc-7 zdLkPfXM^siu|TLv*QD}OZME;^6D^rs__tH#Mjd_mL#dxe5a-CK1&0D-16X%EP8tHp4XpJWsL3+0@)sWe3Rud!(9H(E4({Bc)$2Zc-D_&y+G3zl#r#Q zrk59e&g`2xP@LFwO5))vcEY8JnfR(>_jZH$ zq6$X72mX3r-?9x%h%>3J>9p5mmjNl9Rc1UI_YPq^9v=Qxhx8i5|C6}1*ziS2xZ2_G zz#lmsC{9qiVl&;KP1qg4`dFj>Kyh+~zRT5Lg86ao*B9I`{s65=XQkNt&8jbNVxE=y zUQpd6J;(p>ad~*q%XIf&JGOp8B2w#p>=DeuB_>HhlOon?T6Ht;GPzH1!jXZGB3Qw) z1T|p{cZ9G&`RK|#l(!(W4k@9qFjXC_Pez%Es(KH;p5JL=IkeEQS=|&5gJkdBVt?-yundf5ot zb8+B~f&6ozdzbmnE)9=s9XEx%TGoXA;*J$-jg83p8M3$a&CSt$d7~;*&zaVw@+}0X z9Ovg=dWf^+0(SvsHcX=L3|<#1vnHLdmj!xmFsiyIq<2K*$U`6I3z-(3by(#5bi2X? zLx9gRwL^nzUFuFg6sZk!>Zb=i_R(}Gi^GzgdmpZ4{tB5Ml4WaGWM@kj)q1a-8(2lH zk$wH`MBA%Zk&Ei+!9TsmPv<8=H}MG`m%Wcmy)NzC{Ahq}M)EKUKc%o+V*g3N?TMEKFHc$2cbS%`X3UqQ+7 zjen4O9MFAkN-e#1Slzc5l~HE^WPMJ&s@>~oWYisFugjjEVG4wiDl_0agtir%UcKsf zXue8S#e8J*&PTQ=MBeU9A$%y4FLdMJON$lvm@-C{YdAk>Wms_Yxq?J|C>dUPaK2-nZ#=z>p@kg6 zS*-z)l)~N()A6s_VYHf=xeH+&(6xP;@iMIZYd=O;HE=x~8H7@!!12x${pI#M&XtUMOTqQ~)eDNnMx*g5Pc=lh(Zaz=GuI>Z zH%tyCL{+hTWc!5wQIWe+nuvj!bCmxsK`e3~DgHZ<>?fUO`hO+tc{n;%<@FR`Y@Z;y zv#5(wYu<6jA~4>wy#_#cK8uC{70B1^!H*t;9;U56CXaS=CCied!+R~@g5JG%GJ!qt zc&-Vbdk(-kNo2Z29HDubQ`skx6Pz+BH2Pp{kvSy&w33OhC@|-qK!o5xv-y)pHz^Qo zM4!*d{RhozW_hXbW)7eJ*H7#H$3HEmo^CGG!a$(JlxW>*KA9d&OyZ<+A&=oTSVF33 zYrejqvf2SX_%v~*Kna)FU&wVYX0#pg8|xX)hw$c3+*J$lt|O0sRCdx#`Y^iq|JoU%wp zfQZt1!Nj=QQ434G8H&hN6kpjz%X{~-hzXxD)>T$|WQKDwmG}LeYI~8Fxw_|D9mX!Em|#nmko({j}$JMw+-AzMs6qp&;!OAk-a<2N>F_1 zRK_ZafD5&8@_I|ex2{AA?0w0_QHc_wN{M4ZO!W~1-f(HjhU&9>)!H;F=BcZuT1|Gh z641hS-}DsH5_BK3SR0J`S0kZ!0OD0mAY$_?JymR9_KT%z=<4T)2-)lRBhZ<{ z>OPXy!%AIGKI}{1hLzMpKVL&Kax%Su$KUgEgTuC4S=K!AOPsZT9*e6;uB=Gnmty#Gm^q2!+qt|zl#Q2R=EEZd{YuhzNA-46HEAa@$|x!>$4$xaw5AU-^7D5Zaj9MBr8CnSOB5``8TmZG?0L!FysF1 zS z24jD0QaBG8%6Xmk1gX3GA1o2CoORgdX8SJOR^MJP5tDOVF66dKoXl$1}z#Zp$n~2 z>I?ZR=Kvd=K*K^z(Kr^h7rk0ao!CVh0CWMivDtr(1_!j3N2Ev$TFW%-6r0wI5h*ZB z*oaoC88_)~>;cQ*O(H-@L*s_gkP&nz6%MdzEyYUx&fYMglL26-!KcxL=@CK)5{&~0 zT}bTj?6IK1ii23eX{Jb6iWY{DclT4gB~Z8xH#KZ2aElwAGL=BI^kL+D6Nhd_Tjk$)>`j< zCCpFmzofHrYX4A3?zN>UwYz6>6g1z7$?9~Cl-4UeSh?X)90E+T2u(G-jbH!{ z8zzjhflO+Zu&99vOOt+MZ)-TyfZ$XxIsi(o94gZ6$TTAF;;~&T9?B5HU2Dr+^s$U68;3dOz6Qs^|d2>*1;qs^u)ZcU; z1Ci@92S@rVj_EEyFs1G*(Iy$3J8Bgh4hZ~B_wl|k#nmHm6z~9W^@%`ck{AUAFH4d# z?*4ne)ZZHG*U#Ug{f+qFDg2Lk1g<2J19v5aKpEf=`dX47#e}dcdf`c>V~ZGFo9Pf@ z^i>=oIHQB?xwVdjzPBo7)8|m=hOH^@Q4#2Vg@83a4*hKw2A0u$X#=!H}u!EahnQqSTlG=C+H5w@8_#bc2+RQTbXZ!G%rMe0HX&&oC1ko#;Gr5|oGUiI&Zb@WI}%C6bF7~u6nw=&p7 ziR0bVEM8gmNw?6`na9pW>6x3PTqT5VKBeNaZB) zt$KM2w?0>>MW+YMe|{}zK3y#HE6em{`4N-!BE4wv|H9Wy%C&EREo*Fs&u(tR|LA1u zdFOD@1IPdR)UUF^5|pJTJ^vjz)udnSq&B=u^2-|^_0$f7)EwgC#`;4c3LddXz3{193SF(_8`9^}6+v087Y2x9z@OYI%bH^5sN>lOU zr~C3N*xriU_gQ7QpE4cxojU0=vBrDj8VfVe^K)qCyN|2pilMkrxM@?(W@@r|icgEz zQjbAee-7sYwJ$@VKj4eFHOBPOE3y3yT8L%UH8J-wT@hb7!jk2)z|Nj8twY;a4w~I# zl4a|C(3F`gZkG3IlfDPymT-cDJ3s$r%T#u}qSqoR8ly|J3BeIcgUMGtGdjkmw}caY zzf{a-y>U*81Sg8xNvJZ~!K(Hqief5c8!kjS4%xRTRcy^?d#tY1K{(VkojZylz()By zz;Ka~WaurcMGn<}f|qZ@?`Iq>QrDhv-5r+ZEwX_0Pwy!=FyZE?8nvq~4R(uAW)I!K z9l_kb+`FS(XQKK--0KbPq3h?Bo}~<)P?n$n?{RtM(~WW`uC~i%eBoNdyS;V{q~EyG`T8ytr~=eeRVpXl=W+Va}$3${~I8Qy%fI5VI?{uBzLL zBWrc}Il^m=@*d3l+nT9Vmmbl2*|j%1qKLRdMoYJfBNm#xdXgpC*(5}}Z%lsE;20i% zEMxFM;;C5M>|@D(6Mab>8}_TAE>0_ua{nP^bQj@2Ix#5KLYkJMsFA8u?CTfmP z;iWY5DYs@k9AixTUuW?zc-S5*h5KLraY*V+zV3D}G`;Yj9|@d?y6fFn6HA^lSs_SC z3eImneM>x0C7F_`_GQ{m+fSD$!zsjJ>tj%$guEm)L;AAr`qngn#ZU5fly8Bvnt9g@ zyD&OihrKX~RruDrJgg=+^9o$zBe+&h(V3&1(0-a$S$;@K{JkLm1~$I9GkH1D5h^Y5xjD<@8Sgr*-%0+l#1)PJ0S5?7 zelBsvE7~k#aJpV08KoU#A4$O6pKtt^!o_nI>ZpFasyHggEFJf02ijyO%*s*T?j{ zuH28!C*zqy;_=G{a))J7Yr4>s)0%V^um}hETW){)E^{;ylJH4|W5!NXt;f ziN__6OJ2~siF<`(+1Y!3(_1Trw`hO;mv)(zw?&~=ftyI)sgt)T63cb$Pwj&>dUh!n z?I{<^d^(~tBsu-wkanAhez^mAHyDM}1*Y~h7{SIEaN1=z3;8W5%A*N`hm(YfEZ%kx z!9|+xjD67Q?&4LUYl-fVm>&0>BQ`w@ovxl*JMC)A-Ls$VMx86r(3#T%6n)SWQxs>Z z2=_fm6DU%||0)0^N}V)+a%vQw@+z#vf?e!{E(!-MBK_?azu+BF%?Z?f+pynEKjXdw z!8<7DVRbVw+I5mV4<~FsnZrzzm7N?3eQLBIygNbdfa@mXr5Te<0}I`gId7eA?)ijN z$b^q|g4LaWff7COPt#D)jmZ@eH(|G;V6^g58Rj<$d}Wc1#wY<>0p_o==3(E ziR6KdFi+)#OerMd=FvzJu2<;BB3N?I{yMO*;+aX_Z*-y=p`yV$tn){&u>yFw5{?Jl zFnd9YW_8@Y3`ZFaZ_l`XY*N>#_aPQsRPC~yE*28p&3Yl~^&bzrTUL=CCOj(-OT(p^(losb57 z*9cgA}cCNMc=0>Q^9WEjucqo_r!R9f^l7XQ~mW@-Q+VSfNns(mTU+8BZ= zpG%;k3HHXQivTPY<{JaWS!E3)z3Qp1Wa7+Z^LDKi831dK?Uo$c%keUmPg#9i!UnRh zS$SKGel*UIy$)@4r<~;@1PbV{b@?d4)t_+b@nL!{#$MM4yWf@T)f6n8m^dW*fd-v_ zd=4U)-#4iQH-;oZ!ysfItV+{jS&DSL0TiWUm0;P0cdd>Pxs=cNc<2+->L7Xs)A`Zx zSXKX#i*k&rt*8kDRsWr@J6zSK9_BJCe+yq^&Rh>@<&x+qg5&mJiltNA9QzJ*39v9c z*hHQ$tRtXxw)FSc2G4p5CIRNKWn_~n(5*M4_HYI)!qc(JqFWW1hQ6!Q- zmnTWK$I84>ksz8AzE4WMFeQIN@TeN<8Jm#Kw5geJwE?Gu0xRQ2Poa>rT z-h7iQ3jBz%!*_t`*0j?%8E}G~$70R@&u?~p2Zp5g@y-EgFR;x}XK((zrRj1ajY{g43?#u83S34UaQdQQXGz`3>Rcj-Gku2uoWQZ+q4 z%C36%F;h8S1$3~Q62|Y;=bDfuu|B8bSDRT8$ZzC;)Xv0@MxmRfoWa61!IlpYYobCZ z|C{*>d^@|wyhRtsmllIDQxX9qjz+glKo7GDM?wfA@{pXFCmAOs#xB6jku3TSYT>?4 zy`Gw%Fc}Q2;-sZZ;GR$-?R_JDdNzeyEH5Gr;-y(5uFJ~F!YyDEP|Fa- zse904p2`WJF-Hx(o1r!q7mzwOEl3VHmR&8lxr6UM8VH#3H{caGJC;O5pgZwdmAl@F z?By`%WIR5+kCi5=vm;B>{VKpz@{J7L7mgzPZ~_@)eYc+&ChO<*wI`Hcn&z=Ksqh3m=cVIj z^Om+Ja^l5YUylV$_RYAD8Icjgv#I(F^685J0mj63TSN}%d5gNhxk|jl!&^bYunVyp z^!cE-N!av>c-fw6D(9UUB^?Dsy2T96vQWZS`zW+UA6FzS;V}X0ljui!+(eldi_xAQ zt)FDa!D>ycxL=Iv`+wo!CyK-*7*ZfZ6u<4z3*=H6Nk}A`hxgp6I>Kywe$!CQxf$c> zF(rWkh3vARvS9X*MbU9niz2?u?I~CKBM*0&w%|l0Sc4376AViL zb++wGh)b5xNL=(|-Pw|8G#=)aD10m1&w_iZFZA%ivNk7CIExbulYCH$k&owC>Z!Zk z)P1R&vq(4&0puN^AX*anFXAXnfQfx@m|&(HSMp` z7qB-xOZV=5xpUs0{GI-qrh~f`FQ=PSvMQCFF{D02GW1+ye+5j<=0f02&=B=@TQV%G zOd5uPtdzwoSnVDWp(BLJd6$p(rgh#ekYXC@LU`6r~st5d{^L zrl{#lXzx4yOZ znq=?UGxO}(Gf(+FGtYLTlqSK8gzAD>am4sU_p4--STp)uZBh;#A;WO;btvgw58U5X zLC-Ne@Wq>#S9CUjhd6?a%FDi>?&g+3z)Y$G*}7X1R){0?1cfUa6bV~`wm>9tx?0wR zWUZOqM0Sw=AcF+>zUi(a=Lhc)q*{{3q;IIVSJ=1(k-YHGZsdL+*P_N+yakat$xaOblx*`{fLLs;9@#aAcNWWE7k9$Fqi zGp-eF`7I>Q|NRqgXHz*N;V7;n{2L&3sOY2Z@v%kad7GIuwRY=RfJ)|Z#11{4zd9ZA z@KIHbx8JqKJwH!-`$%YDr>f)`IDqrJ#%q?0LG+PrBOGBG8-Co%0+2i?5=|*`sa$%c zfV57umP1G(;tx3G{-`Udz*MOnDc?&&hD-b?V~=eDxFAvhVpCmMJxQvI{iC`6q(C+*su$%$n;QIZUL(QljfqdC zFWYl{oO*oXcY3ysk}4Aq3{^INwMo2H4mIKTs_SqGzB)qBmT<}=KQ5O!lookj>jrkhSG33N$5$5zY8I;Eu7-TA5S9jFj*Rq#)y!M?R3>a)&tS+8LCbA- zKl=Nh`_72vS!t`u(V89K&DcAVWTTo&x5PK^e)h>tG2p)Gt`#4x4{99`U@*Uzl4Yxb zmLrnFrhF_^JpTE#x#>!M?dJ%F(EWS1*)j~V1+%gN*Fq}0^X!ucv^4kj;^v3&wak;n zynB^S78a%9!6!q$R&IO!i-y#zef7IXdZPRXF23Eo7IX1wV1vhXVRg0#{j%?_WM=d2 z{*nDPGgn=YozL@{PTu$>ZiCu^$GYivpjeW=-H-}Rj8Myq{I9oNU90zp{QV0LxBCBh zX7RbOfc^<#r%y? z%n}9aWb&g$NP%kG_7N&7XVL}Y{;Wnx8!`e0##?s8jb>EyBE4O&!EB_+vJIY#!535T zj_)*`F~tseB;Ei6l`*4*!3WZNl|w|elmeaIIGpv#Lm`##Nta*hyvV1+MzhKP{jK{FG1BWCwB|rLQS@NU0mp{@dW#$D&oQlQV~kv~JuMyDs!jeX`%6Y45%!E72o` zuzumz3cCkzorSt+QCWj*DfYx3P@)Z!&&jZDxQ#Sxl{OYW3B_4(1rM%GM;{fpzce=R zm%O*-tZimcV%f69xl%W~sdWW6oc8Q%v-4zsK`f2Xu<3^D+s1J5mvL1YOKe8#&eexv z5yck=@~0i?IQhl$PnbXFJrvjLxtnhJKF;$$1Su@{KU`_>|NOw1Q*4(nHb(12jXK=- zg%W?pK!4LfBvrEo_kHRJ-4A5>77fKpQ=KY^$FTI-E`dJ}Zpb(H>+3=cBJjch_E_ZP zO~NKIRP$%@W(JXk`&{Hcc~h};#_vQE#>;`!#c`TZ6QM0xgmU>;R(u%&#q7{*Q+J_Q z=KheTLmR~=t)P3En_5kdm5I5)$gu10|H9<&$yjy7Ny@W!&ab5_HiK&IpCa|o`$q)A zxyrxOo6!-YC$?a2T7AV1y>v(l)_%oQyA9q^$-6vj8D4 z&rH}P??8c5q<}Jo&jr#w<5y0Zni6~@QQ>TVWyCoPxl+e*;xV33=mt0tF-kBr!(7-h zbP=1v-m1Gqy_>Izx}ZL8objDdh+YoQuA36Mf7id**|z!b^S;_&8JZ4?=WDOKZatTH zyaadlV{^Bk;*_cZ#LcF;KSzs%t;15iaW((&Lw;3?e*m??`}E5H*Mrq>4NEZ@OT1GL z<2a>DZjg#GICfflKbS(3#YpA6=VTtuBoX+aqGTS~a5-Y7 z5J4|3p1Ll~e$y&$r zjH3OwS1aD3U2**eWGxBz{rpxrb>PLrt5s{xy)`7!jPayQ!B|8KqsbTvt#iK9fJh2# z_Od%@UZs)>uA(MWM~eJG2D*rWUBNmlp=O7CWt@a$CLN2sxuX@64u#_OUwl;MclA)e z70h_>{-0lk?%M&4X(`Ngnw}~zr^W8C2xkaelmi?={)4KJtvxsKvW7V8TkwNLnu2cV z0-nzxh{hrjAVFkA;A*M_U+)yS^}MMwz!3eDNdrmc_w*FbTW0%e-GZiA>8D7(i71)NAo zaJ=Amr|lJ#Y#v~&iAS_2z3@*BObl3Hf)LOfABsYbpJ;=GMZf}7IQ$Hk!Qdb<@&O-M z-P%EDo({nDxM=9_)i{tg4AmIu5J<>0IRF;*itLR~o&0_c%24RXLRz?5n^)t>v>}Kr zC4h~9DFIwfo}*_(=s(T3z2fE(0iK89k&4ed2Y)t4#{aBk}@n}Gqy1IiQQC~v34N11q;~wz6Sm!5#t|H z23RTdvXld9Mx!1xED6PeG_^2NeBw<)%9BCsOi#M$U%^75-99AH`Ep5*$Q3M~-AtB$ zovMvgsCcQBlc$d1?GTF%I1Q7Q`M3s-6U)7(_XNro6O|*%%P;`YoOkkJ&+hB_$6P$F zv;EQ1$wP3EfYst_7T>->ngN_y=6g7^asnM^&bDEG z(7SuN)0#s`q59)hZ#oCfcEP@~H@}~eiuU*rK?S_vpP^ZkLbCN9?j@n9wHlNBGF}t9 zr}|ANZOejW4Y`+ZETWcp58o4ak;ie zvt6Rk@+x;56gEj;{(7=jA+O2rP221h*JD4#oNl21*_Xc<*S!(I71>EPRxiS*I4bF# zAxd0?J4+(F`~;26LtH$&E7%$NhKT7cx1GZD>?EBL&>Gxeg>e6tPCpTs*_7AX0>3+v z2Un~xa`6)+DBG=k42cgL{on#%sRklxC#CU0vzOHKG-^&s697nwui@~Uf{_KHR@BdZ=f>0 zmt+ZILxuL?97Qu3jQy+1j_WESVjfLKbc0(PO9_&+V+sKWevtUh*m6gjfYpwC%!EsA zyAnx5e!c0!XGjUfQ%LZevBhx74T9;!7wKt-pf9Zb(?j2Yqyc8)owF?)+=;%+c??9p zk(cKMy@zs67&=wCR+gjfa{T19IE^2If1I967c~wgrsi#1-rT!M{H0xNx01sA?T60) z=vE&aLO3OWYSr`8ilJ)xYu5R~G8A+!J@bjh6bY3td50wS$Qi?@kA%tMNWFmiN5rEJ z1qZX7$4?R$^tagyvm2xsJ8sq{G*j1ElqA#-O2L_Dj0H1iwvStBI~v+Fqcq2@G)Fha zON+}P#^r+N)Mc5`_Yb%^1iAW zKTHz8`I85tw=jy4>o{?VD|DQQ*J!)dIRCchNbK~pE%d`3fjkRaTToWUH|O(HD3E`? z#*RHTdtyVPPo9%Z{4(>J|(nJaZu5xD;`wOMt;!$RKn! zQwX!#NJ4-u=30-m!WEOlD*x8LDJt!@GNv7wZK(UBEq(UFRHBwtR_%b+Ua)khA-^Rnn7I2 zfzc`}zQ!Nhb#VpZzxdR5Ytd_}dCXZ&b2jne*^jJX%8KNR5{bJ03mHOu8V$Cv*(><3 zW%ZmG3`>L~S?V;lAFwcLDMvs;2i%3=G-vC_h#}>h>mdfo*620@` zJKC1!2d!7eS8Crhu|!)D((^ab;kUs7(5 z+h2SXX1uGmc-JcVpwR;768%avt01SABa>j2lXi5@g6!Q{@vil?eUvuG zoK%y?A&b8DQQk{X1`-amI{HZW?)8{}qbRuU^SbL`C_drT^*|CA-i{}&3%&*I!(Yks zLKI0of+GvZs9H{_F;2#2HcaMC^gT`MrgR5jD>aIVhi5UG2d}L@l>QZ|y%(T|iyxl= z(}*idX*%y+Brscb;WHx@jBvR#ci_a*zN918^_wo32^Fnesk`k8Xe7rZF0AP3ID|kl zfy7Fb(2WLr#td~J)idx}4g}sy4(cPG3#>uSMi)Ong~vI)b0gqV?cy1i!UE<>-wAG#7?=pLp)F|kEG0#9DiwbCSPSF_68=58bthBb!*?ry6(Aa z4Y%A}S1H3fW7y8>*6jX9e6bIv%NbL4J#aNM?AoV7mxwqqp2kyhYnnwk{w_qKjXo9w z+D129wBOb6gvi!CH#L-hYvI>Sgg`Tc_5x_GnJ<=q-1Ts+m*4s3Nfu7$BB7pYCGid5 z378tisfH94?kTNL@^sa6cQf0cqeKQ3%jSsQuhq!T$e3kl$$im5OFGLp!0#WaL*88yweF+U9H095=4Uc7n$DnhuHQ*Y%ymH~bPgIcp4Jg3 z!JDW^l-l;%jg~2l$XYW_~!zJ9dSOy1N#K6U08X{NtO`>>N#6x-&A^G3QVMXODdE zFh*OgNgr7p4xupxjF96JyeawF;caRI|4vj9D?X!ko%m&g=9Vs>g&qb9XG?gr)M2)} zi-)Zqj^#f+V4rYe?KC+}?56GBRVA2pU9p!XPSS3<=ghK#!Y6OH2wwl{`A%6ONf{u* z*L5ECBVe+-^3`z|hf(WWYh3UQFouBN$)9gu@y5MpraCz>!b-1b#8(=V$$-&qXrNn# z1QR-IZ$S1t*Q05&$|iYL#$Kwsq4zVPATg%K11GD7kusMp z;0C>p`kT+7RvCbiwudj z_g1hr#+)z@iDHNVBF4e~1 z;>P2SEh(9~%O82k|9R@rcL`*iv=Xv8QBGM<(3V6oF|7kj2*atvl}q5lEQ_`NJK*?W zPF!5c=-)8q-JUoiWQb+Kg57VvC@|SrFk%K&l~duc+T;nb6$N|%P$nLst-z0jdONS5 z^a+h563}vs3S;?y9q_&%+-Z!pqbFV&F9jvFLHR4=*9vm_vL5gEc82yi(5|>AjpY{< zIQ0ZGyNng~w^WNr3CVLgEm>&*N)k&k`ty4gAqTthT`|8yr_k1RpwBZpGCJBbIwJO| z7o6rG79F+8?yTnWlhM(3k{GO>Ft5cnI?AqG`)Pm37i6#oSpiO8;Tavc1CB}ZFOp;4 zoNpr7{hg#hPp9u2gN>$w8yS%Ob1qLs(-^({&70~sQ$Ldgy!|QZ_7Gby05sn=$0{ai z?h9i$9a%^L$lAccTGiI9P}som5az3yjR#Cc+Qfd+cepp0A&^?no&`=zkN6H}wr7Cq zAu9hhhJFCJXFTTA*DVXbCUxQY>$^`f*T#TC2Jhr#X9gDbw0TEvohHcw&#HgwrM{srx7^6jS`2JG zaSgUIp{3n=VSFueygI-~!S7~reK7(bM(Dy&@k599zaJ;ioh8fAhvC#Ksqe?7ss8X8 z_9}xheaePD{w|*QGSGP6Rj4(n_7-(hrN=Q!**=)ZiZvwriuUlV-c6XRSQt4QqaD$_ zgK&y90~i|sXua>vJNp$hu0qgBZ`kmynW~TKNX02^=2=WjdqZJJA72F}W3}tiZ{1?@ zep|Z&1Z?m3TprX{y;$4e{^j+6l3`@$#YbAjHB)s}i zAxuWvRMINa%X)-B0`HsXTahj?yp+y7sfKE3nZtoC!hF?zKW1Ir*iX+-M48{|pI~4P zJ<#i1;@kxTc~W)6j_LZXyE`xcv1s~J37sh>-dmS3`r+hTy}vwf)*SSkYkVGi=jUmO zfW^9124jPX^WyVzbTA)52BL()#VA}}xcpn)ds)WFq#kS_^(kDZSlx$;ojITwc!jNa zv&! zE^-uckD&EdH!q6}3jvrJc)#LgJc!tgMu?ayE=C7!Nd>Bo!Vkasy5g#H&I_s{x_-0; zA+8U zKoTt*&gFM-yc2MCs=k0?lzdl7$Su>yRHp@RWGJE5?g{>=#9<+QkmPXl(5W+`I!ui2 zy4Uc)C;sIhGhE?uAz|P;>p@IHVpv@d`(Pd_?`?hYAZ2?!sW;!uJK=kK$48Dm1~yJ> zw&h4)G5JY=1%k8s*6AfmVSr<((t=UiB3upGtgYP1Z!5fV+Mt<=# zCqZSPXXN*X`){N*&wIYB+Z@z5oOrzchd+b(IHYS=rH=Pk|NiJ5zZt0ia%@59bVBex zel1ldXx^{u`O5f9i2WbcjqoOJTq%D-R)L8sMH|-uN7$p23WV-ShDfN9TiYj28je;^MPQJtzdUe;2d-j=qv@e z?Jv>?YgjXlvd!-|Vv>~sIi#ZxV5T=@RrDSqB-N9BXI4;DETojvp!%#s4MjWVZ~e5> z4BdY^As_v8Li$vGN!S%peAP|opBK8}yEnJFZR6Oka;=4o7uS|Bi47-1E{IRER0{Bf zw!LqL|9z+vnFQIbuik&ty!xc@ch$8mzZg{Ion$_i3=^SaOE%3uDZETv}lwdhy*SCJ@| zD40f})d?NC%`e{$oDYXLqs>NtgDBiSzK1O6jWd&H(--I?eUPSA*|krwsCeh%@{Uc{ z-LYc3YM@b=M*mMQ;}x1@H<+ zjhDzl*aY*di^z4n~KJk!JmQp*l2T~o-PTarJtD3+8>&8Fk67Q!^s_rG&=@ECpP zn1s8=!)MII?^f$h2+v#jy`YW!nO_K%H7S#txlTJU$MeCC!wdh*#I6&`x;g95SGurM z2Tk6#n*ZdgE}G1lNXb{HCLUg3KzrQ*nhNZz9l#`ML(2VvQ-@uc&XqH@;@Ys}z5w}m zL)%uL{C9$d15oUFViLea%B0;&{F%#lSZ`M#6k^At5N)ZqVm1G;Cgu(cehOI#$XuGZ z|GA)~W3i>kZ>P;999Y$j9$l8_Wf>6oM9o!O&l)!o)Ckc1RVqLf&Y44xg{#Xl7%~li zk?c>8r*xqQDO92)md+1M2lab$7w`Vi4mJLku!$UOc}={@3h<(;Z?ZqJV1OTXSZ`!P z5NL5=MBKaD1E15NP4U@E*nyetv@=dz>59aOC}0ZMXxHqBVK_~7);C+Gp5P_HKmvm} z>q7I9m4}(8;8zoL!DXF7K?1ma?Y^(MKbB*xUBGe(mPP0H#^%e7%g*V#}JP>cv_w~QJem>BjLlzYMXKvkRs^SNR-a$hB&if9=qF%#ab7Ll2F z3$Rc~AdqBazFd!c{m;YvzP702i}?>>o$)aQdYPy|Q-1&Q3vZ_Gzxn@3G7&(gt+4oF z+*j^=h8{8bfAF*M8!%$Yp7XBW5ZSf2!QheB_3=8NoawCL{r?|cqPFgu_2(?>pJ6h_ z2v+?7>Qirmd@CGOT8W+ED8YF>bz(*d8+Md3Xh1232 zax5?vM)63C)ijhox+LM1fFuq71Q6F8V5YD+Wnxk=7~81I1Q;E6!H4U@V3)_vV>EhI z0OoeQnb3a&KylF{1(+;HCWI@^wDkx%@q&bVK)xI?pGH9^qnWLscph1mYay^Xl3g^@ zChcK(q)l>5kNS=^mMj=fh@F({Oa}2dq4nC`UagW6$Af2ZUO*&ej7WW)xOvlaVt{A5SFjjCHqcIV15y5`Dq;{XOV7IcG8;W2S;2Z8qz!1=<1rW}hx}P*Ed{uh zIlzo4x)fu9PO;%(0LGgDj4aCm*@yCq*bO6T*k@23O(@!uqa&kWr>pkZ3d(1tL;_fl zg?s4;tGtYQF6OFZQpyMqR7I_048B!Gnb<{23fG$18)ILn`LxLtA|(2Q&4pvcaI!p# ziUv^3Hb4kIMC~6Sb|P^*a-QT)A;aO5Xagi_q>l*z607uEHbpT2*C6D`Fwi??hoXC; z*5lt8i;^$k+t!hoAl_Da^>z>nbj=78*+=YG*9hD%ctJv_W3<_T>Z|nr*kYNmXV(=S z54=L@kLwb8(X00-n588@JxVNV%Jr9I)M}nLvKyvNp@}rW{t4+^JXdrA=+T;N?5C+tXuaOb>31sq1{NEfxXH|IzpzUQqwsys#l37%WTv0+!C^!83Fex79^=+ z>72tAfXq?RaYq~?3qRO|U&R{^xVKC$$(1C_vGA(@fcJBPi?r`^^GHweq#;UTZ4Ei9Ft|%;Rcz-MN?26om^$c``zZAIQbbnN9&=>>3m zHgY6o4}oU~Pk^?;P;>`waJQ5jrt|}&V;JM76b`8XR%v{_=rypV2_2KDnu)AmC#Qn~ zM8G*6HMo}Lw&_e8rjhx~At0_5X|~#>HsP4a3W3_3V}l@Sn>bSm zrjM_wxwZmq?v9IrTb~AKDbf$AFZ&yKkZ%#lL>inNObEr@-qk5f7@*!0td%EB!jo`5 z*mKrL)2qpRZ=R}@lq*g46uWQ-zZ>kc;F^osjKha;15^Qkh3VsV5o)BEa;&pF5evTC z7r*S@i9hfMnSJB}_ly2S{+nuD|L}A3^xX5>7Q&=)mG=kPih^iMxZ?&=P9Y`XeJUFT z0BtTVXS>+Al)vr4B$-i}-VZo}BM+HOnZZpYMTlL*1pgh_nedn)X?CP}4M?iL7wv8) z2Ux*K_kGcI+F_;pRX8M8uVk6(sNEopd`b5+Dr=a)_g~W-%}h`<5LlgJDOr}(D+nrp z^GqozOqlhaB&wRT>L3d^H(uayR7{Z}cV_vh3*Ow?9;GoANFh_~CrX%E=1wC#E}Uq;;_ZXg086l154=zw2e8^=86UWK$pe5)=Oc`+ zHZh)pbb0A-)l0_pwSr!~09DoP6Ijma^c>wH_7I0n0e3U2F;;6L!YSdpSj2h0$lM;8 ZWo(r8V-v>Dy%_)7KTh9((cEuC{{!C=NBRH& literal 0 HcmV?d00001 From f6623b6a69d2954885bb31ca976c5fabd2b45cec Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Wed, 14 Jun 2017 16:24:37 +0800 Subject: [PATCH 03/10] update --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 504f2becd6..45b37b9c7e 100644 --- a/readme.md +++ b/readme.md @@ -15,7 +15,7 @@ 1. 本SDK要求的最低JDK版本是7,还在使用JDK6的用户请参考[【此项目】]( https://github.com/binarywang/weixin-java-tools-for-jdk6) ,而其他更早的JDK版本则需要自己改造实现。 1. 如有新功能需求,发现BUG,或者由于微信官方接口调整导致的代码问题,可以直接在[【Issues】](https://github.com/Wechat-Group/weixin-java-tools/issues)页提出issue,便于讨论追踪问题; 1. 如果想贡献代码,请阅读[【代码贡献指南】](contribution.md); -1. 捐助渠道已开通,如有意向请前往托管于码云的项目首页(具体地址见下文)的页面评论区上方,可以找到“捐助”按钮,非常感谢各位捐助的同学! +1. **捐助渠道已开通,如有意向请点击[支付宝二维码](alipay_qrcode.jpg)捐赠,或者直接前往[托管于码云的项目首页](http://git.oschina.net/binary/weixin-java-tools)的页面,在评论区上方可以找到“捐助”按钮。非常感谢各位捐助的同学!** --------------------------------- ## SDK使用交流方式说明: From e241de6a30ba36dd4462f59b3184e7e5ceb49809 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Wed, 14 Jun 2017 16:26:20 +0800 Subject: [PATCH 04/10] update --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 45b37b9c7e..cfc090b3cd 100644 --- a/readme.md +++ b/readme.md @@ -15,7 +15,7 @@ 1. 本SDK要求的最低JDK版本是7,还在使用JDK6的用户请参考[【此项目】]( https://github.com/binarywang/weixin-java-tools-for-jdk6) ,而其他更早的JDK版本则需要自己改造实现。 1. 如有新功能需求,发现BUG,或者由于微信官方接口调整导致的代码问题,可以直接在[【Issues】](https://github.com/Wechat-Group/weixin-java-tools/issues)页提出issue,便于讨论追踪问题; 1. 如果想贡献代码,请阅读[【代码贡献指南】](contribution.md); -1. **捐助渠道已开通,如有意向请点击[支付宝二维码](alipay_qrcode.jpg)捐赠,或者直接前往[托管于码云的项目首页](http://git.oschina.net/binary/weixin-java-tools)的页面,在评论区上方可以找到“捐助”按钮。非常感谢各位捐助的同学!** +1. **捐助渠道已开通,如有意向请点击[【支付宝二维码】](alipay_qrcode.jpg)捐赠,或者直接前往[【托管于码云的项目首页】](http://git.oschina.net/binary/weixin-java-tools),在评论区上方可以找到“捐助”按钮。非常感谢各位捐助的同学!** --------------------------------- ## SDK使用交流方式说明: From 02793bda6ce0ffab0adddebc3ccd1b1c7eb38519 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Wed, 14 Jun 2017 16:29:20 +0800 Subject: [PATCH 05/10] update --- contribution.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contribution.md b/contribution.md index edc9e79a0b..8c38553cc5 100644 --- a/contribution.md +++ b/contribution.md @@ -28,7 +28,7 @@ $ git push ```bash $ git remote add upstream https://github.com/wechat-group/weixin-java-tools $ git fetch upstream -$ git checkout dev -$ git rebase upstream/dev -$ git push -f origin dev +$ git checkout develop +$ git rebase upstream/develop +$ git push -f origin develop ``` From a8fbf3c4c7b28fa8a00688739dae6363f2e2f097 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Wed, 14 Jun 2017 16:29:56 +0800 Subject: [PATCH 06/10] update --- contribution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contribution.md b/contribution.md index 8c38553cc5..91be80a478 100644 --- a/contribution.md +++ b/contribution.md @@ -1,7 +1,7 @@ # 代码贡献指南 1. 非常欢迎和感谢对本项目发起Pull Request的同学,本项目代码风格为使用2个空格代表一个Tab,因此在提交代码时请注意一下,否则很容易在IDE格式化代码后与原代码产生大量diff,这样会给其他人阅读代码带来极大的困扰。为了便于设置,本项目引入editorconfig插件,请使用eclipse的同学在贡献代码前安装相关插件,IntelliJ IDEA新版本自带支持,如果没有可自行安装插件。 1. 本项目可以采用两种方式接受代码贡献: -    * 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择dev分支,详细步骤参考后文,推荐使用此种方式贡献代码。 +    * 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择develop分支,详细步骤参考后文,推荐使用此种方式贡献代码。 * (***暂停此种方式,请使用第一种***)另外一种贡献代码的方式就是加入SDK Developers开发组,前提是对自己的代码足够自信就可以申请加入,加入之后可以随时直接提交代码,但要注意对所做的修改或新增的代码进行单元测试,保证提交代码没有明显问题。 1. 另外,提交代码前请检查代码是否已经格式化,并且保证新增加或者修改的方法都有完整的参数说明,而public方法必须拥有相应的单元测试并通过测试。 From b81f74fb340d4c354779823f0ba8f17fc2105fdb Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Fri, 16 Jun 2017 00:15:20 +0800 Subject: [PATCH 07/10] update --- readme.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index cfc090b3cd..5c988a184b 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -微信支付、公众号&企业号开发Java SDK +微信支付、小程序、公众号&企业号开发Java SDK --------------------------------- [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent) [![Build Status](https://travis-ci.org/Wechat-Group/weixin-java-tools.svg?branch=develop)](https://travis-ci.org/Wechat-Group/weixin-java-tools) @@ -42,6 +42,7 @@ --------------------------------- ## 可参考的Demo项目 #### 欢迎提供更多的Demo供新手参考: +* https://github.com/wechat-group/weixin-java-miniapp-demo (微信小程序Demo) * https://github.com/wechat-group/weixin-java-pay-demo (微信支付Demo) * https://github.com/wechat-group/weixin-java-cp-demo (企业号Demo) * https://github.com/wechat-group/weixin-java-mp-demo (公众号Demo,使用Spring MVC实现) @@ -52,6 +53,16 @@ --------------------------------- ## Maven 最新正式版本 +* 微信小程序(暂时为测试版本): + +```xml + + com.github.binarywang +  weixin-java-miniapp +  2.6.5.BETA + +``` + * 微信支付: ```xml From 166f842ecf09afc6b828e92c791d73420573a287 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sat, 17 Jun 2017 12:31:24 +0800 Subject: [PATCH 08/10] update --- contribution.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/contribution.md b/contribution.md index 91be80a478..093614d37c 100644 --- a/contribution.md +++ b/contribution.md @@ -1,10 +1,11 @@ # 代码贡献指南 -1. 非常欢迎和感谢对本项目发起Pull Request的同学,本项目代码风格为使用2个空格代表一个Tab,因此在提交代码时请注意一下,否则很容易在IDE格式化代码后与原代码产生大量diff,这样会给其他人阅读代码带来极大的困扰。为了便于设置,本项目引入editorconfig插件,请使用eclipse的同学在贡献代码前安装相关插件,IntelliJ IDEA新版本自带支持,如果没有可自行安装插件。 +1. 首先非常欢迎和感谢对本项目发起Pull Request的同学。 +1. 本项目代码风格为使用2个空格代表一个Tab,因此在提交代码时请注意一下,否则很容易在IDE格式化代码后与原代码产生大量diff,这样会给其他人阅读代码带来极大的困扰。 +1. 为了便于设置,本项目引入editorconfig支持,请使用Eclipse的同学在贡献代码前安装相关插件,而IntelliJ IDEA新版本自带支持,如果没有可自行安装插件。 +1. **提交代码前,请检查代码是否已经格式化,并且保证新增加或者修改的方法都有完整的参数说明,而public方法必须拥有相应的单元测试并通过测试。** 1. 本项目可以采用两种方式接受代码贡献: -    * 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择develop分支,详细步骤参考后文,推荐使用此种方式贡献代码。 - * (***暂停此种方式,请使用第一种***)另外一种贡献代码的方式就是加入SDK Developers开发组,前提是对自己的代码足够自信就可以申请加入,加入之后可以随时直接提交代码,但要注意对所做的修改或新增的代码进行单元测试,保证提交代码没有明显问题。 -1. 另外,提交代码前请检查代码是否已经格式化,并且保证新增加或者修改的方法都有完整的参数说明,而public方法必须拥有相应的单元测试并通过测试。 - + - 第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程,因此在发起Pull Request的时候请选择develop分支,详细步骤参考后文,推荐使用此种方式贡献代码。 + - (***暂停此种方式,请使用第一种***)另外一种贡献代码的方式就是加入SDK Developers开发组,前提是对自己的代码足够自信就可以申请加入,加入之后可以随时直接提交代码,但要注意对所做的修改或新增的代码进行单元测试,保证提交代码没有明显问题。 ### PR方式贡献代码步骤 * 在 GitHub 上 `fork` 到自己的仓库,如 `my_user/weixin-java-tools`,然后 `clone` 到本地,并设置用户信息。 From babfc90258e3ab7612e145d54a90fb069b8db160 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 20 Jun 2017 10:42:44 +0800 Subject: [PATCH 09/10] update --- readme.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/readme.md b/readme.md index 5c988a184b..fc465112a7 100644 --- a/readme.md +++ b/readme.md @@ -3,14 +3,26 @@ [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent) [![Build Status](https://travis-ci.org/Wechat-Group/weixin-java-tools.svg?branch=develop)](https://travis-ci.org/Wechat-Group/weixin-java-tools) -### 注意事项: -1. 声明: ***本项目Fork自chanjarster/weixin-java-tools,但由于原项目已停止维护,故单独维护和发布,且发布到maven上的groupId也会不同,详细信息见下文。*** -1. **新手请注意,本项目仅是一个开发工具包(即SDK),未提供Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种功能,详情可参考下文中提到的Demo项目或本项目中的部分单元测试代码;如果没有贡献代码的意愿,不建议下载项目的源码自行编译,因为如果想看源码使用maven也是可以下载源码的**; +#### 声明: ***本项目Fork自chanjarster/weixin-java-tools,但由于原项目已停止维护,故单独维护和发布,且发布到maven上的groupId也会不同,详细信息见下文。*** + +** 新人提示:本项目仅是一个开发工具包(即SDK),未提供Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种功能,详情可参考下文中提到的Demo项目或本项目中的部分单元测试代码;另外微信开发新手请务必阅读wiki首页的常见问题部分,可以少走很多弯路,节省不少时间。** + +## Demo项目列表 +* https://github.com/wechat-group/weixin-java-miniapp-demo (微信小程序Demo) +* https://github.com/wechat-group/weixin-java-pay-demo (微信支付Demo) +* https://github.com/wechat-group/weixin-java-cp-demo (企业号Demo) +* https://github.com/wechat-group/weixin-java-mp-demo (公众号Demo,使用Spring MVC实现) +* https://github.com/wechat-group/weixin-java-mp-demo-springboot (公众号Demo,使用Spring Boot实现) +* https://github.com/wechat-group/weixin-java-tools-springmvc (公众号Demo,内含部分微信支付代码) +* https://github.com/wechat-group/weixin-java-mp-multi-demo (支持多公众号) + +--------------------------------- +### 其他信息: 1. 最新更新:**2017-4-13 发布[【2.6.0正式版】](https://github.com/Wechat-Group/weixin-java-tools/releases)**! 1. 开源中国网站的本项目介绍的首页链接地址:https://www.oschina.net/p/weixin-java-tools-new 1. 自2.0.0版本以来,公众号的接口调整比较大,主要是为了解决主接口类过于庞大不方便管理的问题,将接口实现代码按模块进行拆分。 1. 自2.6.0版本开始,微信支付相关功能抽出独立为一个模块,详细使用方式请参考相关demo; -1. SDK详细开发文档请查阅 [【Wiki】](https://github.com/wechat-group/weixin-java-tools/wiki),部分文档可能未能及时更新,如有发现,可以及时上报或者自行修改。***另外微信开发新手请务必阅读wiki首页的常见问题部分,可以少走很多弯路,节省不少时间。*** +1. SDK详细开发文档请查阅 [【Wiki】](https://github.com/wechat-group/weixin-java-tools/wiki),部分文档可能未能及时更新,如有发现,可以及时上报或者自行修改。 1. 各个模块的Javadoc可以在线查看(有可能是最新的测试版本的,请注意观察版本号):[weixin-java-pay](https://binarywang.github.io/weixin-java-pay-javadoc/)、[weixin-java-mp](https://binarywang.github.io/weixin-java-mp-javadoc/)、[weixin-java-common](https://binarywang.github.io/weixin-java-common-javadoc/)、[weixin-java-cp](https://binarywang.github.io/weixin-java-cp-javadoc/) 1. 本SDK要求的最低JDK版本是7,还在使用JDK6的用户请参考[【此项目】]( https://github.com/binarywang/weixin-java-tools-for-jdk6) ,而其他更早的JDK版本则需要自己改造实现。 1. 如有新功能需求,发现BUG,或者由于微信官方接口调整导致的代码问题,可以直接在[【Issues】](https://github.com/Wechat-Group/weixin-java-tools/issues)页提出issue,便于讨论追踪问题; @@ -39,17 +51,6 @@ * Bitbucket:https://bitbucket.org/binarywang/weixin-java-tools * Coding: https://git.coding.net/binarywang/weixin-java-tools.git ---------------------------------- -## 可参考的Demo项目 -#### 欢迎提供更多的Demo供新手参考: -* https://github.com/wechat-group/weixin-java-miniapp-demo (微信小程序Demo) -* https://github.com/wechat-group/weixin-java-pay-demo (微信支付Demo) -* https://github.com/wechat-group/weixin-java-cp-demo (企业号Demo) -* https://github.com/wechat-group/weixin-java-mp-demo (公众号Demo,使用Spring MVC实现) -* https://github.com/wechat-group/weixin-java-mp-demo-springboot (公众号Demo,使用Spring Boot实现) -* https://github.com/wechat-group/weixin-java-tools-springmvc (公众号Demo,内含部分微信支付代码) -* https://github.com/wechat-group/weixin-java-mp-multi-demo (支持多公众号) - --------------------------------- ## Maven 最新正式版本 From e2659b394ec6d19ee60ae947954bd45b6d39daa8 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 20 Jun 2017 10:45:42 +0800 Subject: [PATCH 10/10] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index fc465112a7..3961e33fd8 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ #### 声明: ***本项目Fork自chanjarster/weixin-java-tools,但由于原项目已停止维护,故单独维护和发布,且发布到maven上的groupId也会不同,详细信息见下文。*** -** 新人提示:本项目仅是一个开发工具包(即SDK),未提供Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种功能,详情可参考下文中提到的Demo项目或本项目中的部分单元测试代码;另外微信开发新手请务必阅读wiki首页的常见问题部分,可以少走很多弯路,节省不少时间。** +***新人提示:本项目仅是一个开发工具包(即SDK),未提供Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种功能,详情可参考下文中提到的Demo项目或本项目中的部分单元测试代码;另外微信开发新手请务必阅读wiki首页的常见问题部分,可以少走很多弯路,节省不少时间。*** ## Demo项目列表 * https://github.com/wechat-group/weixin-java-miniapp-demo (微信小程序Demo)