From f3049681bd0d2b03da5e7bf4bd7540be13ffdbbd Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Sat, 9 Mar 2013 14:34:04 -0800 Subject: [PATCH] Use git-utils module Removes the need to include libgit2 as this is now handled by the git-utils module which provides functions that were previously in git.mm and git.coffee --- atom.gyp | 15 +- git2/frameworks/libgit2.0.17.0.dylib | Bin 1048612 -> 0 bytes git2/include/git2.h | 60 -- git2/include/git2/attr.h | 241 ------ git2/include/git2/blob.h | 201 ----- git2/include/git2/branch.h | 173 ----- git2/include/git2/checkout.h | 281 ------- git2/include/git2/clone.h | 104 --- git2/include/git2/commit.h | 292 -------- git2/include/git2/common.h | 129 ---- git2/include/git2/config.h | 554 -------------- git2/include/git2/diff.h | 853 ---------------------- git2/include/git2/errors.h | 119 --- git2/include/git2/graph.h | 36 - git2/include/git2/ignore.h | 78 -- git2/include/git2/index.h | 552 -------------- git2/include/git2/indexer.h | 134 ---- git2/include/git2/merge.h | 55 -- git2/include/git2/message.h | 49 -- git2/include/git2/net.h | 53 -- git2/include/git2/notes.h | 154 ---- git2/include/git2/object.h | 194 ----- git2/include/git2/odb.h | 391 ---------- git2/include/git2/odb_backend.h | 147 ---- git2/include/git2/oid.h | 248 ------- git2/include/git2/pack.h | 117 --- git2/include/git2/push.h | 80 -- git2/include/git2/reflog.h | 167 ----- git2/include/git2/refs.h | 509 ------------- git2/include/git2/refspec.h | 68 -- git2/include/git2/remote.h | 465 ------------ git2/include/git2/repository.h | 647 ---------------- git2/include/git2/reset.h | 58 -- git2/include/git2/revparse.h | 37 - git2/include/git2/revwalk.h | 237 ------ git2/include/git2/signature.h | 76 -- git2/include/git2/stash.h | 121 --- git2/include/git2/status.h | 231 ------ git2/include/git2/strarray.h | 60 -- git2/include/git2/submodule.h | 527 ------------- git2/include/git2/tag.h | 326 --------- git2/include/git2/threads.h | 50 -- git2/include/git2/transport.h | 331 --------- git2/include/git2/tree.h | 387 ---------- git2/include/git2/types.h | 198 ----- git2/include/git2/version.h | 15 - git2/libgit2.gypi | 50 -- native/atom_cef_render_process_handler.mm | 2 - native/v8_extensions/git.h | 22 - native/v8_extensions/git.mm | 493 ------------- package.json | 2 +- src/app/git.coffee | 25 +- src/stdlib/git-repository.coffee | 21 - 53 files changed, 12 insertions(+), 10423 deletions(-) delete mode 100755 git2/frameworks/libgit2.0.17.0.dylib delete mode 100644 git2/include/git2.h delete mode 100644 git2/include/git2/attr.h delete mode 100644 git2/include/git2/blob.h delete mode 100644 git2/include/git2/branch.h delete mode 100644 git2/include/git2/checkout.h delete mode 100644 git2/include/git2/clone.h delete mode 100644 git2/include/git2/commit.h delete mode 100644 git2/include/git2/common.h delete mode 100644 git2/include/git2/config.h delete mode 100644 git2/include/git2/diff.h delete mode 100644 git2/include/git2/errors.h delete mode 100644 git2/include/git2/graph.h delete mode 100644 git2/include/git2/ignore.h delete mode 100644 git2/include/git2/index.h delete mode 100644 git2/include/git2/indexer.h delete mode 100644 git2/include/git2/merge.h delete mode 100644 git2/include/git2/message.h delete mode 100644 git2/include/git2/net.h delete mode 100644 git2/include/git2/notes.h delete mode 100644 git2/include/git2/object.h delete mode 100644 git2/include/git2/odb.h delete mode 100644 git2/include/git2/odb_backend.h delete mode 100644 git2/include/git2/oid.h delete mode 100644 git2/include/git2/pack.h delete mode 100644 git2/include/git2/push.h delete mode 100644 git2/include/git2/reflog.h delete mode 100644 git2/include/git2/refs.h delete mode 100644 git2/include/git2/refspec.h delete mode 100644 git2/include/git2/remote.h delete mode 100644 git2/include/git2/repository.h delete mode 100644 git2/include/git2/reset.h delete mode 100644 git2/include/git2/revparse.h delete mode 100644 git2/include/git2/revwalk.h delete mode 100644 git2/include/git2/signature.h delete mode 100644 git2/include/git2/stash.h delete mode 100644 git2/include/git2/status.h delete mode 100644 git2/include/git2/strarray.h delete mode 100644 git2/include/git2/submodule.h delete mode 100644 git2/include/git2/tag.h delete mode 100644 git2/include/git2/threads.h delete mode 100644 git2/include/git2/transport.h delete mode 100644 git2/include/git2/tree.h delete mode 100644 git2/include/git2/types.h delete mode 100644 git2/include/git2/version.h delete mode 100644 git2/libgit2.gypi delete mode 100644 native/v8_extensions/git.h delete mode 100644 native/v8_extensions/git.mm delete mode 100644 src/stdlib/git-repository.coffee diff --git a/atom.gyp b/atom.gyp index 068a571f9..c736e886f 100644 --- a/atom.gyp +++ b/atom.gyp @@ -24,15 +24,11 @@ '-change', '@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle', '@rpath/Sparkle.framework/Versions/A/Sparkle', - '-change', - '@executable_path/libgit2.0.17.0.dylib', - '@rpath/libgit2.framework/Libraries/libgit2.0.17.0.dylib', '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}' ], }, 'includes': [ 'cef/cef_paths2.gypi', - 'git2/libgit2.gypi', 'sources.gypi', ], 'target_defaults': { @@ -142,12 +138,6 @@ 'native/frameworks/Sparkle.framework', ], }, - { - 'destination': '<(PRODUCT_DIR)/Atom.app/Contents/Frameworks/libgit2.framework/Libraries', - 'files': [ - 'git2/frameworks/libgit2.0.17.0.dylib', - ], - }, { 'destination': '<(PRODUCT_DIR)/Atom.app/Contents/Frameworks/Chromium Embedded Framework.framework', 'files': [ @@ -227,7 +217,7 @@ 'INFOPLIST_FILE': 'native/mac/framework-info.plist', 'LD_DYLIB_INSTALL_NAME': '@rpath/Atom.framework/Atom', }, - 'include_dirs': [ '.', 'cef', 'git2' ], + 'include_dirs': [ '.', 'cef' ], 'mac_framework_dirs': [ 'native/frameworks' ], 'sources': [ '<@(includes_common)', @@ -253,15 +243,12 @@ 'native/path_watcher.mm', 'native/v8_extensions/atom.h', 'native/v8_extensions/atom.mm', - 'native/v8_extensions/git.h', - 'native/v8_extensions/git.mm', 'native/v8_extensions/native.h', 'native/v8_extensions/native.mm', ], 'link_settings': { 'libraries': [ '$(SDKROOT)/System/Library/Frameworks/AppKit.framework', - 'git2/frameworks/libgit2.0.17.0.dylib', 'native/frameworks/Sparkle.framework', ], }, diff --git a/git2/frameworks/libgit2.0.17.0.dylib b/git2/frameworks/libgit2.0.17.0.dylib deleted file mode 100755 index 96d777c4d3ef8a1c52869bda9857384183fc6ce6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048612 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%0AA`8{csCCDo{%($+cvS`Pb&=L|i z|19pPB_foM)GvJ9>nVk%D(H1V(MpzrUa#l1ORQQ4KNxQ{lQKhZeuF9$m1#{PP72pk zl7i3@^r7MfC4Ihqd|3BHe!)Oqr<_G_9pna;hxJo53M;vGMG8$(;*SzQMU_c`Yf!)_ z6S;po#}NBikbx!lPqa;^)*aw7q}tZd&T7h0jl@yinireD-IW=Exk?LIsyYfUCJPOf zwgewZ4SkBY#-gdjL@FCnsb04H5e+SxTGz>ySv2$wLIZf5{bj&t+Dqm+;-i&7) z6h>io>xjwvuNSN6H^j8+$hEAW9oeqxe@~y=fzZLaAE5qdwH}6tC&R|C5qPY2j6L*J5e+U>hS&u4>xYgYuL0pCSovWT)hw?dV!)Bok@O(QP!r-dOMc&L%bP z#l#CZVv&-s^GfkAuoMy|xvZ~%g6Np}tIX?T&>7(Drf53#M#qwlHye{`G?X1AI%0iVywj$FnzEg+mk`OT!HBCsG6^TL3069 zK2yJjAc7Db5U(VNQ|xhY+GA%Ha86gSKtbKt@QuJCzfscA9dHzh%^>W3u-`+g?r<%` zIVv5ls(z@!=>U#8o$osNn?Y(V%Xw=kV<->AmQ67Qf_)e*dLn?Va(nu6#L@m zpan4ZE?$op1UsrPF_&T`43k_qjtSm@XkTo2zHWrxX5?rvq!M^_zzeK|q~K17p8T8` zZ)g6B;S6(xA*pOvF@+ydot=#8BvN<@skiAnT<=MGcvJ)=9GBToa*SJ>^d z0|6T_gGk2gVp<}@9u!J z3cjj@h0llA^5F?qnu$F>Ae_m+MY4HyE)k{`QE!}}L#W$TR>&vKCi)36E+l}~QlV>0OeH!4p>Wvu1wPZgb> zj%)NmyNA1fL9fOeafe=^@@zQxqrGk0qgB5a1K@vQk6sTvklrdW<+mC1K=dqo*#C;| zol1`LB?CY8X8@i`5@>WO$Xj7ckjWJAKW$gQ&*e4FxpDsz;1zoXLPONe3KXNd(Kv8o zI8e2z7+fi^7zOOP^(x|pF8yAX|0!sMrBmx-42XcnIgUANIZ%LVDYqe|zO^3epx}nR zTs2tPBQHkrJ>cHOYe)1<42vjIpgedR7nvc`+kY3A=@RTJ@Yb~NL#4vuh!L4u4+{PM zW6j|*E<%#9V6Is|XDUi6{uUuVW`kXMccq+JwE4bt0zBHo@)qDW<|*9)pRCjlc>))ATfgS2Z$SCt8y4M>xkcAt^r83)p{u%M*in9MJ^p> zNOF66IE}ODQpB)`XL}Nczpe>p=_%In^+HB!e$2C)K~pvf0WpZd zsz5RyV$3b5qIyJJD}B1in(!4aI2W8VO{~ke(=PoCJ5N}gN2@>&0ZSQSIdUDpvGc_! z&(+PDfC+LPx!v(@27cJ@uFTcf@TW2BtGd_VijP5j-j|CisO!_TrhI(CBPr9g=6ose z8g6&xL&)bqnowP28Q9;54gpAvWQIEI9e1!OXjnktNZ9Gfuf(89EVRqh4`I5(ae+e& z{vAZ(CQ!vVB)S(?2c6EEFZ^)^*e~Jhy3Yb1!M3`G*RGltG6_=>s|k_%3;uEDLlBgh zKgGr1A0q$5{HaIz`tK`0H}dw<)TH?*;^mbxW_wq=Aa>OL*3HOeN(MnnPYq(i<+b)umir#;MB)b;(v2kGjxJ zj}Mpx6PNw!(uRwD41w*=2V7dE#}z!!kVehWUF=4ZMES>W9Tr6RooGH7mvzshB1)IL ze#NylaogOCTZ9YqTeFT0;XN4JgKoL3TN)MF-pV>C@kfE|Cgtr3``4CCx~f<*EPEUG zXxN9hN3U4tZPWcvn0CI{2&qD_8~GcSTl4nlFGkN$^icD%%SS)vf^v00 z!>EFN3)f1UBMkQ{@0JDS`ZqNnQ>@R|E6XQ#`lj3v+#7uZB|3fisqnzth}hYIE|9cU zXW1=m$lWYG2T7i~25Jh||9TY4ysicP1!%6wY3Ocuea<6T;fJDHDEJpNO>cA#hIIxm zWw6^lyt?6-<23`>pLxwhLTFyI;63FPXZj51H3wz^uer##&FgTpG+z)dM{HX~yU{63 zC+l10>t%(?dF%_^f=83((F85*i(Y5IAC$kt2@P5*{=VOS1O}^XLNBmMwA`H4LCelu zBg2?Ayyjz~wE6S?=A86W?ZYng$78j?7>6X%b3kvA_2|16p1^}EOx8ldYmCvECa<+Fdw>|RJ?|*nff2#Y0(9$=&&7VFcw{@C`J8MEyU#G@$%PO|0XJt=Ou>8 z0Y|{T0fz#H@IG|LN3u{}za}!l&z37|k(&b`R5AGr;m#og!@Wb15uuU6^2=9m)Qa-^ zNgQDi@jQho&NG9g+Dcy;=7UR~%ZqI%@gvlHcNU*`&0=&#E8O7xD47;+BJgljY3^n4R zf=yW7l-?(ovm%(LGTVS0BDF+Ezc709u##<8#lqDah`v|oFo0!h+g}3b)A$;C0h``U zQ(A_ayX6lk*AXp@KcR^rxofM1`75zri%F%(Qyw#iQK;R*YAO*@?+KOXBlNeXg(6k0 zN+-?d;`XdxuFv<@eTeR2xg5*>gA_(3c5UPi+E7)np?>V|E**D1?np;$ zj{(UbMDDJMC_?h5#85Lu9pV@AZirEquO0fgTFJ&y#(Prsq%`Z(^X0S03QqX!D)m{m ze0EGe<9Wz?n%_@Ne7Aq>3E!PA-yuq}EFb4%PS4lg|3-bRGC!qZ3i^)r{ue1t+Mxj{ zkRthcyE}Jd1N6_)`3#+dkte@#p3E@oQ`=c)m-A$%S%0HE znTWsg)$DNDSk&i2(N9tI@ekz1e$>TsjrYsX4pUYvtq~Nai+uX^bHZhG0Ya9Dr!f=H z89@{DLv3}F-`w}Au-;00lv-i~ZAK{A6)c5qXfc89?mDy_W-`Kyee2yep_QiS> zD>0l2px~H!&=#fRq>J`~s@VTY`9m3RV+p@v6~kP)n`w(=qE6G2b%M}b*26c`>n9V4 zxVWihwZxCie;o4Wz8vdXq-VE7heUx%)%Tvf>hZ}{OFWI(CmY!;8$doQM)4b=r@4*P z|3v)Q-VJ=)-Mk3XLrv(KT!cESh!U-9*rFU8*oM*~#c^inu^%e1k!n<;G0cVS5THl|cL&8S zrJf2(|NZOOLO+3q4q|{eOPA|^sk)3Dol*-5JDtD%Q73`N%~;n*bhh_pt@XHeJoTOd z&d1N-<7l(?LICY#EQ&wA0gy%ipqf{fg&iv6p~tQ62112y|9B;6Mem- zBE{G&fWUT20k1%={v-Mq)s?I6`GwvZE)}i`qwk<5B+{0PM_s5e@Gw(da?~YTU52Ym zuDXm;ml5icuP!2y!li}km#|^Dv_$>#sf&o8aA`Sz882`kjdYk=y=}0d9PkUP1!Xkc zN;7O&a1IH7W*KFfyh3EtobOkSzgOQ&kFbno(9)D(FIMM20j*hHpkqHY*pJcSn{g%naAV_#zakP!?O z$mtzCvWsA5Eo#BD@$w8YiE2f-ZUNqy3&-i=m9UAiaT$+u-#iDeBHKZ-4r4qBB8)r< z%foq)LaKyCbRwI%e@Q2&HFpgzmsr=}VgMv{n#h83ZCd$FIi71PJB6X9$v&1N(isu|7>@xd6i2CA7zjotsCnJjNgP6MkX849v7RCED!aniW zwrj0fwk^J7FUq=tPXY1aQW~8u?FEjt3p)nMIx_I%MMZeE>ED78i<-1YT z{t+1HP}g2k*Bfy9D54N4;orpG*KVeZE!uBI$)%gdm0a2uys}g~p0z}+2IaqMsW^DO zbgW^Dyan?%17UX7APRn*VW^}uzpSy+zSLOjlr7{4>Kh!!CdD4U{)}7gWw%^oiCaxPI>ee!Fc$dsA3ZZ@_NxnW_=fUi_)^=EEzL=vTt&*TMKL`V}8< zjwk(jj19H$pZ0Pk1%Jr66S_lLWYD1qEo$NGu)iq-7h0}(Dn{!gezjkyjex;XdL<&# zGW5Z=31U8U80Ga@wdN!wDF}uAt5^*V;JOpVEpsIW&Js4ryxcgA0#B8v4C0!_u91uJ z0)aAjo`1P0G+LiX)Zwx|eGn@364q3Vns%T}EHYeucqT6D!64i@_~!YLDpE`~#EZj)K@JU+-8`6aAH__`m!53US*%;0J<4}%R93YQ8F0uM&c z{91x7Ott^iKJN0Z`#A(vZ$_xxV*XV;{i&h_^6QaZa8|Bu4Wu?4seLWz4VPsT zMLL2R%W`nSI9zocNOM+`xO-{TDRJ%pOe%aN!o899v`G9ZEeMmg4`AAl1DN2SX&1ct zg?Na@;rI=ZsaLF$SAj;XPzmsLWWDMZ24-frwi&Cd~!gvJ9#2R+C_tOa%V8 z7zp)=pJpwQffc!{yp8^~W_b#tBvJD={_&Q+II`IQVY%;5$fp=KJ-86srBVlvwDA$!;7q8ZF@u&z7B=+V&-F0(Yxs7 z4nL88YPXWbF^YA3htYK$W@IVrKKuJK@O@cLj3bA5kyv!1vR|&t#EN>-H{xU~wZFk} zc$}rV&Btc2<{asQl(^$%N^>0ix;Sgmc2m}koW6#r|Ma?X`~vv93?7#q54Lnlw%R z<*3*gm#Twy)q_#Bs<{kRKSO-_P&`@|$EO0WGCLN$7|UZ=U%&y>pj97dWOXI1I)Psq zpVRHCw*#?+x}Y*^(R1_={t&Z1V>%9gI|Sy=(wf?}R|%KI)NpN|94MhonS#-Ke83t` zqmf1buP1>2W5K>V(O@icBdW$+QJ3Sz)3J~^ow?TS)5YyCcH;}PdQ%ehNUcjSZ=uyK za*-w}+(ni4==MRiJ9x6Ny`Ap5l`E1dwZc|-X{E&W& za)}Q>XPF+&tskTBt>b1eS@mZEB7UY||E^KpmR7ybFon2mJ)%Deo4~(sgjpSNioS&{ zxj6R-``llkFc|+JIdUiNVqQP9CMKwZa?*MV4kUzs;hY=UmRF7$zq)(*2ONefZho~= zSA)2e+6ZF~fw(QTm#LtDs>WZysxc2Hgb>3LhYAH$&QJR0|Gr43V3cJ3he2Y~NjoW*JDob~ywe`e{DI zI`uVfv}`_C=#XhL)El2-JK3xe!KadYTSsz1 z2u+>>;@BviOVnJp66GSl1-RM^IRxDMNR##gKX!T7HUnjC@O_?T)Dgh2kI!N3N!<(J zu;3T^f}E&V-Kt{x0&E^@V^dteM5m5b2^Mv(A4R^U0nu9*uwYT^0%%X8qE5(bT$7D^zeQ5-+8D54l;Cnfm@eErN$G?+b~+fndOZ|OfFp~QYt z$xTJa#hX)s7b%aiLT!x<#mIkZ@42jV3P5ljeY)&q!~&bQ&Bg{cS_o=LgGBn^#cF(? zpqrr)`Aiq2VB-?H|C}J9x9;&^~A4PmK- z0V@sj#3~HG{xW*76`#c-y`YEzia`Sq9t)e7wt<%-mwbnM;lGQ|*hOpR<92{fnNZuw4xVTG&}{~K<}s^Vqz-X&DvRvUWrDaO+DtcJ3hISXrw)=oFCV`UhoSr?pX`RP z0offgfU1fO6dO;10u|X0Ad_HAVZ{?*oA^076>Gsjh#N!AeNnSny(*~#GWfeqbPC+b zB4J>fbh@~EN2T1aP|jhd_r^gfx`zV>Y?id{{ziS}C#JAArDlAjXEA!7`MG*cA8w*& zQ!h#GStfesRQ?7T43*E_pudA?#zA)NA5$=bK?&+{t<}yGqMDd)H*t&`uVG?5cpJ^K znid)hYNg%w|EYYwOwt#!jR^R*fzc~Kz_5wSenQ}#N$p*`s5-s1b>!yVWk8$+kC=;Z zAg&JJt&{c@HN1=-U}k=fWN}?{9=ZTRacUZ~OuN ziyg+RD>dNdB@G7%H=cuH(YFyl0KNwCdd-K6+kpTEngK4Yxtx@{x00%-(r=`P%E!7v z?Qk5D8w$jG|2N#%)9p}b@!0=)}F_6LmS%FpmXfNxWB{q)i?QXXG zbnM6Y{2lh=0#anixDNHz(E&qGSBFH1!{R9C128jo`kI`MA-Ee|hlR_4R5zDFVBXfR zAZ=HjB`j!|Qi(dUtrMUnS?s9EWKC01Qzwvhnjv#&11y`7w!ovk>e9s~I6$%(|GeqH-l(b-Gf#b&rzm?Ya;$*Kbie)|~Glyc}33B9_c3 z13N2~^j3L8O?5~H6>(+6f*JY*1Zfk$INX*1jfRaCdP_zsDI@+Af2|tvOVo%X1Xa}$ zLmkm=R{x!3X7%W$M712O=u^@qD{BB8VdFlgDAKaT7xLKOZ9adZtlhTRW#1x|llDjuly;ahN(nIwbcwqsb~Bvq2^V zGS@d7q)D@o1JIx*2jk>^9W5pa;zfD6pCiv{2&q6?Gqi#C5~vV)7`JA{Dt5z;ge8Cd zDnS@_)V6;;L3cVx86m&j!+EjZJ%chZTCLO~^$XmgAbHrYx1x3Yg8h1jxekFGBmLk${m!+&H$DAYm?Tnz*S8ia2rn@ld`ls3Ea<>#zTg zY&8?D86I8mD%?%9hGkisLxH3!ND*$Vp|CJcDVXf>KHOX|F~j>fXQ$1zd%ShotOl*S za3W&e0n}_rcr}J3({z^BF0 znBQAB0_{PrTnPP2`=CFrb~~u)FQeE#y8w{%hV=rDkW2%SY?yQGCLi5K!BB}`X8E_; z(G>4;nNoJ8+mrTSwu2gD2Gm5B_L@td;nqFTd&zECZupDTr?UlgMu-zKD=FaHL?k}Q zn$GyeFv79@;cY&`z-9nQcvwbi$G=6ypjz{manKR_B2>M=9q|A(1_@q-#ZaQxqwVpa z`5$7=5IXN0sF$UPgcMRO1xRQvXlHd_7DbLjB^Z4ajfI(3O54hKVI zp43F8NWK+LCZK~}6Gm$I0JW+i_5?1*`lE;gDQe!V@F|R(i?&^_^OI!<_15O&!_I1D zsHZJ}iHvyF@$&nm2|ZkyOPj`Cxt5YLQUIcJE9`~XvTgct)`(!DG}XP<&9yOu5ZJB_B@fGU9bTbpLxHQLRXNgq+0vNe(Y#Vt zhpu=S11dc+Op%%pBN9@fr#K3n!)q(KCD<$lOzFc(iV|Q?;&2iC_?p6zEorXEHmIi) z{DIi5^Y~Rz=soj05Qpo|OW^PU)Ibwg9krHa%*tdY_ucw0DAja>>ddUaEJsWOIix_H zjKXTh5Zk3!i(@bk-aL|;Sxl=4Z#~ckF3SU7nc9YPd@jnx5Ctpy;&?nCOy&q4sxPbo z%TN-AdoJLC4R<{Zn61EEJcE|xmraTvBmiu}p@o)4_9NhjocRApdmHeos$>5@AprtL zPr#_rMnR=52(3X;iJ*p;6YwR7FIZnddt0lvT1z1Z@JcXv63k}1DYaHV26V85Fd#zcsX3fl+HEX7w z$3Q)~0@e}SF_UX=az(H@t&2I8-sFM79pXCPk3a;|uq%B3CTnQT@y{MBf-0LwnO*}P!N2?<5eH2+GSAPHZ``UqsV07_3yWYF(sr%QzKRlEd$xpnlT0w3~?JO-@@`DwGio|R&q&fKF^1}$S zUV7%JiPt6WkgM*rb=^ANrC-P8uM5sA^d?_dJvrA3tBk?^_?BYVjLBo+Pa_<+%Dwx( zz2-V~`Jcd3lK!BWylx-#NF78>!)fbasp%Ukd(^-EdF2rrh3S38sa`%)t)_B+{Lo%{ zWD&Tn*GZ#;B3#$M({m&3J2ZFM^MKF%OG?wN(~Yab(3z0S@tjRZ@f3&`;^MQxZ1!m? zL*$)hEDw4c!m=a%B&X2GW>r_pk*40({p_)gxIg$c=hPo$Ur^;Ys4^=NV+QowFIEFC zIY6Tj(}nNPgXddT+{JgW`J%&9WDU9Ad)lwP4rI)D8(pArZm;hh&kjXm_4rf1r*2&J z2<`*>>QjH#lk4^5LVNP<)H*%+uAYpwCs(H))|2b>q{^OrHFa;gvp7|}tT0>BIQNum zk9X9Va|6!J2RnaVY5}EihmX$);}y2rh&<6WhY1znk<6jy^Znl9ONtbZuTc7?vV!`f zhrg6(-^R6(*dc;q&+m!~##LWYhJT1Nn(Wn4O;pb3c)@`)vHjJ{;G*-Y@Owm4^v9{~1sBDJ{gSsgWQAlhY7cD-*hG^=aSUX$B0+M7P@JH>b}s+( zGsk`wxSsN0L8BhxuTj3%umBH zlr(8hsXzKof5A5DFs6Tx%@?@$(lZIqvmmZJzr8LPy5Q=9wF~~PK6Ul;KHAa0_61$| z=)zGK-nwwvh2Jimca1}%)u#G#;}s2{8%}M9c6s;v6Rx9^?AuR=EY)3!slnWFt#{KyF>ZP(vv(sir1K*+fYLu|s8mz2s3 z<)f~sPKo9(aF3IjzeqFzuQ8ho(v-V`a7%}b1j?NGNuqf#Gb23cTA(lsoXu6uuHFw9 z5iE6NCwR2c*hMRUG+m@omBjQj%zHZ2{T1p_B^R;C?)N_^Y6^4FKb-!ZoV<0xMvW)l za`9PsH;ljKLVj!r6ed~+Uvju<;czB!_SKNQ{#!JM$NdEw0>vV-QSj;rmB*e3vHB*J z`WKZ6*`&Y1o}fq~rNr=4#flybx5bbpl+Gk>M{}z`u51qHZBo_LUoreW^zU)-8}o3S zOG~xYGvPOWszZ9re83P0-{ggb6>xEKC&A_Gzv$yU9qq-t)=`ow)Xq!aWb0vEnSXXg zwom)G3gKw@COaasi8)4Vr7htpD1Q({QRg_0+EoF{dH#Ye6hz)$ zLB_+*U6H@0$;-Nubahec41c~zTblwW2M_DgpKp|j#ZA*D-DWVK!Xb59DfWA16Yaf3 z*iN#dy?jnQQ>$MxzL1?KlktZr4l<_snle=?Ed23!#;#ZVd7gZU`{Xu0K{i>! zdK3LIzMOnBt)j5LpWFfn_N=NMUro=cDyYu@ia%#WcC7hqhzf1)o=%&}uPSkxcaSFa>kG*-V8vCPh}3!ePK zE;s=6JG&_3KvoYX+(d#KX@!oe?f3B}Rz^x(BjVFv^kS{%@uKbg(BG0M%!-@GWdIen ze#0=@k^oXx62bHljsuqP(mX*Omin) zi4oH;J2%$PBOYttOb)H)rXTPPK_GH`9;}sE)Bku7O#;(!%{gL=Hau{^pS(%&ae8!# zcF%lw6n@<_b!HCvQ}%28JkA!)A=ytyLF(qHY&)u++|bb_Cl>> zg-r~s&S6kHS^VPKtdt`=iSczVqZ)dGI`N=4e$7(wL}R~A)METM_Ge9>UhK~+W{yp; zKvNScJ#xILmD=)Pg4LZ+-4m?tV!Iru7JvO8PLJ}bn+iBQ;&eJqVDWe351L=9dwQ`y zsY1SYL|{`m}kx!^Uss06-}EN|q)xkABG210|)O`7h{Vtb{#E9=?ZkP=T+h>8_h>=jjr{ zSD-(P9@IIRV?uV8?JmBN7Z`;WbGcuhnNoVqGdJsK+wL@tP3OLX54?`dpGCTwFwWz@ z1rJ*{AYZ(W$Q%OV-i`V~QWIl5?6hSPKD&hsM%tJy=v!=~hm1A|@BNvx zLmr`y-LgeB-C|nTP371tUVE1>7oE@lcI0yen$`8TiAaE<%hI2I0z%(ofw5n&fAv7F z*FWX*|EbsC<^y)TJ79udb!G>1E6XO3W0oDme?9E~PvYM_>q z%j8WVeWupwGp*INWh@$`(4c>n&JVBJ8!0rLMMLtt6SSGd%n(}*$46@O>{&Xmk*x+l zz2kM@;aUempt<$m{rll-?^K7c=Xk-Q4}E^ER+Rua`xl&e++dUk9>0CIVwF4Ltno5_ zsl4dkGxbMOe~cNQdQfq`gVCE<2t2ITTi1lwg#VPJIU?$V#n-y(kNPptBhkZ`w=|HZMU4T&GgD&xNSti1vugrQRd zX1uhgv_9D%>U%id#7>Wl@6y*xWhgL!UPRgQ2|L)H{kAu6ME05-0XITHjB{12ygd9H z&Bpo{5uKCDsQJsLzK_c@Y5brr-=xttK@#$&2Q}NjMHl$?02&(OO&U@C!HfsuA?e

=b%TKEi7bufV|m<2N9B>YKLac4I^$cP~__l8HoD0ta3qOxx0l$^YD z`kRvC=F#~cPN6J7f6>MC-x5<-ZW#Nt1wIHimADon=>Bd@EPkLkcvOgl#5&LhhW=h7IhMn z2s`uMaDi&$HDnfP!dKD~o$BGSkDW6iIr?<^ye*@Hj$G!tNz0v0S%9LpK%gnwcGRFzkiB* z|83s4*NzY}qbWRpLkl=uPcYv;PKKEWp(3N%%)?ye ze=q&-hN?(PS!|+tc0~V5fkd<0?-ldkwk-2?stfmB8jW7Y zveI`yf5o?Bunx%^)Ts@&*kxX5)4Cv>JKAaEiYybgGpiKpvs5c)o&bpF$7!agETzly z!l46bR%zqtUdN~Y9Mo485{E`}O?pH;*WSO!%{6GNGy7eAGX_4JX!^FKy=SP2xY=y0 zKe6as-ely|t$@;9W{wmYi}v`2%wV2^MTvIUwGA0tHELTJ=~K;?vm`@sJ*8s5QLOzi z7FPBBnTAG1P{6b=gEv;|)&cKC?~*F-@?s$u8_Fy>hS)N0_R*9gG-#rECcub*V^`*! zJtT_1Z;|Z3Cm^cwdj84J)bsjew1+{&c`d$v_XdEmr*y|!T}-a@CJqc1y=D&w1&f}w zi^0K)w{SN# z6JL|=D!$eu)D!sHF~xcUU%Q#fydPiNZbNCRyMHlnKZmb9(pBUdEAn}Ktsj(ipyWm8 z-RQGl79lu&@>eHoTuS_zrTbIS!<2;f`h@+d6}#n^6n9lRFvEL(*jy@xF3UNmt(sV@af)?953lxO z8NV6Wp!PZe_7vXK!Q~?xSKlr;QsaCxKd0Msvmmes`4izkPqB&6uYKG(`o^&xnN2q= zP$h+~3eT*jAU4{+xZcV9OJn}M`wUI_d1qyh?=HXd_^X|PHU9d0oSB4`A$Nh%%d7k% z>fP?!CSrK@Q5xB@>;b0Ql3TA-GAEuT>;&pY7pb7RatM1;J|Z zk?c5Fs*_hy^Y!(g3+O=+pp8Fe_?-KmF^}yh-~f#Lnpif*n@D&pR4v=i*ARS%gNZ=) z067=(dD6j%y-v2dd4&QTnTFhN=6z<+|BHN@JskYOoiaZGe{64PDX<;Miije}qwr#A zev;QLf_~k>478_%T;{(a&TwsI9&lxvtqkloRcZtfNiHf={pXq_km^|{IWnOvhvV?p z;W^yOnkadfsi2#229lV*UA$BFr|nGJ{`=FP34r>U6Ls<+y+uP7ELuU%63EV&deEJz z|8|61RN{_M5EmcyX zeHt9$3D60O$w={>9U_JUtqgjuyY0{W$aDUkHhrx(8&zhGd6cd3F28m}N!h8Acl~`k2O% z@L;uMKa5Ug?r53*4ppe%Vl}QW=QoO&Z|Kb#UWLK-IewAa=F&E&R^l_dhdNWMf@xTA zvS0W0=o@OrSzx3~WE%KyHMG)cS5C_@kxJh${J!)I4u*a!4*v}+o&sslc`Dlv{~olA zh9%m(99+LS`|}CDo#JH!cAKd54P!>B9mJ0%>_h!A=I)YQ88l`Ix2-OqavVbA;i3zo zL&XuAC!HpYTYkH7T*~BhPP{qh_(gYm2H)G_&~=J1T*{g^GRH^rc}(@jSws9O<^K67 zsb$q87N-8LHMz9jy#n>2M$|+t8#Aw&MzziNW(;=*)56v~Y_ESo__(33W6z2`7U3ll zWADz@IL+C`LWvBuX6KH^=}j}N%-O)2qv)!|*eA=YrHlrUTFk03wo<+=Q{M*^JX zr;YmAK=0Y^iN-j4;$ngs%p-ln#0s+WzSmYlB3u`pP;+=-)WeIVQPShHZim_kL7jS1 zHZexsb_GU9NBMH}^tJS!@lhB&NjsZiw#=FQ8!dAZEpQ6@#!^R%99z!M`nkPn(k>`; z5FglXPZ}2hksMEkL<)lB7B2}+IJX2qJk36=znZ#&DLdE}GA=4|3>vmcq*Nk`pd-j+ z8^Yi)eadGivmglzQMYZM3y%hPhfO4r@Fh%DefskTortcH^C3|3| zduPUW$RcJq&t?&ap%||TUE=X+?F|5Nx1VGJxY8w>Mdo_6O%pOdlJ&H(or%2g! zxfle=Z36WIrlNr1awR^$5j`GAx5Skk5xICEhQDDk|KAx+E=>2RlDx7#gxcxW>8?6!+-bZtV+(!oU2`RwsQ4J6KRKG}TeK!R&}-DAZ_S zB$GTg(X>dY)Q-mPptz*412#C&;WM$Kyd=2v{q#pYXB?RRa3Be?KGeC2RPQsr_Y0p% z?Rx)(>b;6*zb89MQ32mb zvFFfGlnTQsw-pr-1?ZN3U|a`KclwPhhLHt%N=bDOBcnvJE!qd|%9kAPr!AN?6mATP z8cLeus$-5nt+c*3kzI;5^mfxzT-R8;lcC|);RBM8Ms3*|v@=|RI%=wS%sMhy@e7iL zXzUS15{6+>T_lRKhv{?G#O9JZ`RgH2LaL)Sl2H$y>;#irV#e|)T3`AL-a1b38r?j) z*p@;E0z12siw-5WM)qtLZfY64(sDnw?483*^0_i9U(i<}IH0=zHCT1sM@Mwgi+@Ld z-dB&lxqfR+b=z!(bsih!zPTO~U;6@;(7)_p?6>1ehAepddRFvqxfa3HdW0x5aAsQPGT^S$78CW zoOPss&&}Lc!v{Ky6)*ZvZpB&`oz8UU5tj7Z2DjBul~ni*W60JuwJY< zR=se9X2bo{v*^W%>D7nPMgiOI3l30YU93}+Njx+>8cqlKmJ5LIQC+u%0j5Cl#Q5WI zJ=B6)M$z#UCB(*dH~(XN=k(LvOicEQ>zIX;1S=8>g6QMGJxUCu@#Zcq%^(iXgg~3& zKIw*?1&OBn08X=*gEMd(_Vkk-qw2~MceZl+qPnglac_Jwxn8AeN{X0H%HG+b(>8Ux z$WTzxI*6kv6yBA%J1)#|$BLpPmY#AewyioDChkmzR$;QEzSqLKj+VNxkz~WE%If3} zSH-scDiTd!!xliBof9iuWpYSK%BNop1dJtj+R-V88TY^INM0}2j!Kp%?v2l*U+B6} zxY3`|0f7tlmm2?CIBH6H;_jIEt47uBN!-~6@r+7^iF^OZoX9k7N*z8bxkpfrniA%E znP?&jqahEFb|T;#HM6FZ{;=31m;sAe^x5J;^4HdBR!cDa@yKE6XUUMrOUM$9) zQcM+*?bNNp+iRQ=Bt9|Yj36~-)K-8GwSII!=E=4X2eiFeQZ%K^jz5*ne~lLyxDY1W zhM=!(J6vHA3VJZ2nAGCYT&YKX-L?elrMhiO!@2nU5yb`gwxGw@W%i5OAFA7hU$xtk ze{!Lw=ll;#L67fkm zX|cA)uPLt{TRyXwicZ<%_h6D;?`_RKA5BY-MAmh?YDOi)nX@4w+XW+);%?M>0Z}^N z???KbR|qrRuqRu5)ne~u@457iw9pSORN{ZFy!wLjnLSAf{o+>O0v`I%V{eZ z23hJ#>ct}bma9}DZ_X;GLfv$ZWzLmG<;sSRAzR+&bVFr9{ek4RsVNz%gz1%{45Q=w zfX>&Woke4cGs6Hg&t9QsYs$L(m7IMp*01pXDnnTlmpoM%dV#8J*{&yMCTQ1_WCyd0 zQ=xl;HHW^%y%Qq`=!?TSFzeJ;1wp|`59GGhBdD5L^QNv3r;LM1U+sPR{`Mji$_XT| zCCZxor@VF5@67BQj4N!MJD{+DcQXs6I-b~KleHqO({}8vBzT45qHeQ_*m9Bx~hQqDz$~8q4l>| zbA7`9#>ap~+mS9$f~kT|EBU)$C8W>KF<53#oeL41U! ztm`~fjT3l|U&U*NH-UHldck739UHljeI?o-HUhXpl2r6PvAL*VVtOBeM$?q?n{N3v zKZW}`cLl#6F3X1#xHjHH7?Q}I7W{rPFSD%fMT+% zn%}$O;9yNEx`#DuR%Rax)+~;T{3IO0ci9!eEx*+xD$6c_4{E#rr_tXT{7#6jkKtE; zvHer{clpT`1+o6jC<5V6ngpLespN)1-rDeeu?H7~?<`&rNL1u=G?zwU3_lpD(i_KO zdh62S?i~+o>HKZ&SRZiuHTDxlh*Z;PbePg!%AU{P88l3@m_|P1AK>j9vO{md6J)D6 znDki9|2-{;=l!v82UFyu8P9t=vKzsJyPdf=JP(*6V{tF+F~-C`9P%Q+w(2QAf-B>X zZ`#n@upu0vUR0^42QDzoma=IT+L558|0}XZ^AH zr5jESALq^=DV!_?-F#ab-1GA{BMjfOF=JQKz-=nMd`3hO*`9@@p5F1f{3MTGUoNw8 zHweGb4M66ev4HT8Mm@lDTn?U!7@h@t1%)Q&f(mz)gJ)6>o}$7Dv0uyn{%i(Msq!Bi z^PsEuT5I)FvnMYWH{CVAs9@x}`XQsgTK~n`#Ohv1jxc-X!T~I7_7aJ0^+C{gV)c%2 zCFQEurH-$ikXSvzj;%hxlhMc3Z^I0|V|XXKTQ(mPLx zGd-2;r_346L_FB|F2R+=exg&GvTKk*&m9;>te8`4WPG>=xX`M+M<}iyp3l9;Ry1!j zcX7}-FSKVdE;DaXclet|$iY7O2?OCiSsX0>rOGl>Inw<`x39v@ry(dW?UE<*H=b1D zU!>Fe&df^l$5IzQ#$J2C3v?kQGmQUD$f3ciyI)f;lI2Sa6HV9;3&OA5R77kA{a43-Dv_N>31+-y z&MHMknOHLX*~|imu9zzMEsdwCPXj2l=<_GR^s^mked z%(X>!Y!i|0WE)E-+7~!WaZ0EW zuFn)WN(GK~1^SS+M;~N4PQ0Wy7p4yw48Lxm!vy9uWObAELg^G$QfXj%$@@}=n!zc2 zm2cXUcWdl3w`g2lG~xn>fWxBOKe$rVP>}f#N_ok<(+x|=TJdw9aMe4}EU)JFB%Uv5 zNblwNsaQZ%$0LHSUH*s=#HqT0Q|hKRJb^pEZb@~b{=iYGyBh|l8}2Vmt;bBNlSb&>Xp~1Aicc@depNV7oG|)xu8Jx-TKy`+ zr?YqhSwVP}!AX=z@^ymHM{MtS&ashA_!vISG|*sl-(M9aOEQmu_vlgQf9etNUkdzD zS;Ob2yvU5qiUO#XHvwULcmtr7LBA| z9JiHGtEcO!RYs>4xGbpK63*(C`}|#+XC#X#l4{j5eoOYGyz?XaPLkxxPjGl%Cv~hZ zSH1<{HMIQ?y+_;}R;yB%^RBvM_LH_7kogH!>x=N?$XS|TtrYq|AqJo&CxO_0m5hPh zOR+W;gxNz4v|@Hyr?R&I_mrU}JO*Sk8%x6jPKxcyrvZ=V0xdkCDk00&AAMqa#Fq>x zR-TFQr4bPE%<|RZTcqZhsiUpRY0BoBM*U-~Igymxt4sD>A>*&#AX3|?0xwyC^}5`` zB@!t1zH~;Tocfrf7vtCE(J5WVn|s~l-sjsl8%o;6;%O|})_GSA9X7?bbt2c4!G7}H zV9^=7n4OTD%|Ni2zFHftpQQQ*3+nW$%g@j$MiE>wy^S{g2>r2C-WA?+*ql-qMr|Xv zwPEIF@LdQ(P7YTlenaBnurXJAGV5nmu^se&rs zP|S}1DMpX3MMh4;4*ilJ8O@yv{(=?VXx;RVd%wokKwH}f1CHJpZxPWS7at#D=$Y1u zWeixt*?-T5>2aUApNlU2DenJN>p$zWM}_MBCtiE96(G81nx=VBx1KoD;UADQw8c)x zdO_ym84GNEz^~~n;oo*xss0d+j_OQV6|KHH`+3P_K8-d`>Mv{ELz!Z_n>W8mjq2Au z^jYr)YbsR7PW=K%NG^jLwEUbV(;G&}K!)LLW%d~MBN`rUTs2@VEB%5*%Y5EfCs*Q3 z->|Z!^3`^l9XiZOJPqIuuoR5IrfVN>JhlOcCC zJZG59oX{SuLzKcy>zq=?q$dcrf%rzHwyBoM^&$J^=-G2TOE)YlP%fd3u*VoDd^;Jl z>@s_I0Gvr~hVOx7iea;vER9cPNX}Ge~io$E%>w*Pu`SWGV+?V?YV4$?RtXxqi{-kLZ#v1sddu}C0eSk6Hu zdr%&}*$I?h3{M%muMm6po>_m0ELPFu19rola$Wex>*7*{QDC z@Kcb*IySXX55L&0Rgt;ru&+}FLTvsfm8#f5`j(f(%N2k!R-43kzO@6{?a0U^n}?5h zK2~b|7|Sfj0;iSP^UsRL+fzYd(bUQW(6ir5hZW;VJI~;ob zO1h{ANO0ysc>w{L#sKHBxq=);t3#B~$yTg(pWW7@K?!`~&ozpzhbxSvBXr}~S<;yE zlS~-en8ENf@Xe&Ac$ZZ{LpicYOGaA|3K`M)q@kUK@tNuJLE&FM6nC9-5-eSvkaSfD zbNKl>L?>^)AjxRL+FXBfecQ%5LvR}ir$`tBca5^O#slxnDlvYCsRO%X1iPU34#*Oj zRj^$+l!)uU9rnUvj4-JmE;L^ZWEFs+xc3%E1&3qpPsf0zb~6s0Qz|kKft!D?Y-OgA zvUG1QnD?htf**pkC?$DW@UBeH87# zJ9$K^o+i8c8cn_|hn__mBSjil*>Dp}O{jJ>!MN;p<6^eA7*pXRAUv~%dj9=STJ_1T zd?HyVbck5$T7w_{PLmdr3A`D)QhsE#+Gt!f^=Y-3A7I`ihVeek5yBa7(`#DB=^2h} zj{AN$vN^2}WHU9VRT=a(s%N+A`3H*+xjq`vJd4g8@eN5I!T?>GZrE7BYLzte!IX^v zI7sW(@q-3}ol3uwnBp9tKTyqE%`}Ky*9;W-#h6YErOFL>Md)0Va~~*yJb;pJsAta-5>caiu8TPio;?CPy`Rh8t#EE(Q&o^M<)| zduAC`=YKJ63xxR3zX);B?##}Etp8I~I5moCXwa4fQ?@{U#d$NrWcwQx!~*FK*3yC+O@_^4cCYQr;w}>Xg<6N?>Bir0`X-W0{ zBQ?U7cU>FLgr89K|?_uBSSzp2-U zI=T(4Ujw-2R&QPX)t^^DxMxLs-FIl@#>&_uk0)y<3gxBVxC(Z=ixRgyPh(<`O$!t| zwXlP&x)o3D2iiQ2m}Gl~&wnv8Po^VBeTQFb=&nhhc4i5DW-hjB`NcvGIS$NwFyyaj zFhs=2m00pFt86XkF7d}zvT0Z}`;4MT7wC*v=j*Cr=|o0mU-mX#?|cVUWnXrIuD9T* z;O)!I77yq4`>JMNMltbpyXV{VcwgocZc%|vK`BkQnN#f5{qYz>gDd2HHSe+W?4b9G zpl|@Ke#q|${GQI=CH$SmU*39q|MfTbT~V~)k9J?twO)^z9WlCk&n~@o6JuAh?||Zh zY3qW<#p{ds?XJ)AJsYR9``dSyT-!?d!u3{O!Mr{z-#@SXlK-Q;+i!`W(uv(vVhu`1h+ zQTIV%>SR!4L;Gddt)g4!e+4vmzB(xHwAKV zL=`WP+YQ#7Zs+}CeD7cRV9KfT>#Xtzu=7sK+-H@aWtBgDbr5Fj|wR10ei z`_UYe4J6>ARDS>w(EVwpncq_pPj&cAR-|6>N2zDDap0Ddqo$P-Qw8sYud#`Bfmu;N z>Nwa)VQPFlUruD!-a$K>wW9r5NhaZ!boCH1i?Wrv`o*8Q>aVMbdq3&Smgs8ZRe&|E zm1+Qsh^{EQ6`5IppR>oSQ|yA&m5v%ynR+D_uhBFeO0y3{&C+l2tn5*mYH<7TwO48H zSRSJVbZYa#@IrS|$7bimg$`tRq;Vcf8NKR>n9g1*W93Wr|5s;MPh$ZvnGcYd7ArH*8x6d(%f`>pZxC1-Ql+tl@7te;@JJlWrZ(UxL5<`J7wd*|fx-S5CJ2NQ0T(ccsQIvyks& z*qu@DWLTp#p6R?vcMkr8W?Q26mGno06U~3*I%4k7c9ib@&jdo!I0w8;H&lFDf1^LG zqWa>>`k8;A1+j^X%hMl;qA#vIJN=P{;_iEXOYMd4bpBOCasOBwWUgNPyA3i|Tb{K+ z=4uv+rJ-o9-uouu=kK|hggqj$Sfp+k7>iUpiZiXmDImIN9A+kX$H?a|Pj z!g?-yWh5(|)iJoSaO*#$eo3X5!VnIlrT5kq*7xytYz-T)?75>O7=N04>{kjKLwG2? zCw%7{qB<#9ra9_alxKb`Yd6%dF0TBPpt2_Dh0m)410)F*CVI8X)MqK<_aRJ^6&C!|6t??(4HYl8^h(n zf{B|!uc=jeu&QE>rL;kP9Uex{Ytrin;Vjf`JqsKXV@)cg{T1&0nml=F_i+MlvOJHqdi-(RWp0=*J z)tJIcXpX2%ZShy}{3z8{Mk(1e;)4*899F2Z;$_6EpCZ3M3vC;{wmEX}Xo9w83_&HYUm;TW20MM>2iI zii}Qo|z)t=pRsiUr`Jujm8EqV0pL^g(aLef=}xm#)}vzrg&*Y|R-y#JlEJ zJNNw~g7j!IyO2%Y*T*tOG9|C4L%KR%iO!AAw)@roxfN^yv$PXiV;QHVg9|Bc z=Uh6sW*<%yGUor4SqNSJCJulSzx(Iy|c?X;$BQEA`23cWC|(g z=&^e~*?OM)jidHKGtMDX8zhnA&{F!uiihk+R8%l~jBlQuK}(&ZFebw{H}Dh;L z-y-2#zRyJSCw!i%q^_!$I1TlF_JlnBzb3t}JaMZe4_oKx#Y)H0$bWS$L_n`w#(&AB zj}+E2`KqUvCl;87tCWtgNYZc=)c?)@@m!(vLQEURGEGngQ|{vlsT%JV6Ah*;;fEcb zMu@U=aw)vA{=a1wS&9nLe4ai>zbu_vRM7O2->@Xnq-_iE{~!D;oZ55g$f-RW6HVuH z=Ue9PVD&QL5K<3T7&h~!`a=~eHAiJF0dLdq5R2hAE>qp922{C%`cob9$avfCj2(`P zyjBetLFl*?@xc!_s|`W#-J~nH0}e#dXxcktZ9m;_G>57Eh$@s%q{*%P?*YLK_#l45 z*#M*H8H7K(96kBp-mz-0)q;r~E^T=8Gf+Q4a;b<(3%ItC8pQj&+JPEGB}5`z6{vwo z(rrd0XOK=^#7!V}!;md#nqLM($|9u0mCnkYM;|diW{Xc+m6DqUgucUO4$(am*Qasp zu?d6{vOSd53xLWzLIbIYq=m?bQ(6&AV34+P9d#)&lo4DrVdA0=Ov zC21n;w$$rO!Z1zszD7yeKjsV=jRH09ui}}pT|2ic_xw%M<@TKVj$d0&pT`W}WW5M( zD70X(FA+NpSH;Q}zsR3BjNbN^+O^d!0`_vyNGv_WFP~TM^FElpAWoGmKMG1Fxdd_0eSOh1TrndBWH`6PquaG0D_iT(BAZsj#5QF)28&ns{G>p31S zJ9QglEx`N}WT$o8wWol+9hAx^8U@NtIxq{*MZ<71cO#FWCQ_@EJr)>E&`fvq!Lt(gkys z5o(@bVrQW7z*fF9-J(^xg>yQPHep9rW??bW0IXDpGUg%WJQbd5v=|qds6)Z~Rmh)O z2V1SS{)>VPBu}?ZhC`xqy(s7ElB`wmizG+3N}F4Q8jiB8uRmD+M5}_8=l_P)?6hqe zbx#YBRl%C*QFgeaQu$*{G{9XB^ZfvS0viQ@zmOe^PrzJf3O@5wE#B*|Us%$#ss7Ez z500(>TjK{`t$*BG8~LO_t1*6E{Nfwd;yrabf2S_CkB-$xN0DJY8px!p~GLN4zKlA*b^xef> z--YWhF!k?Ja@Z~SD`q(xS^~YA*}u4vlHnhK0)};Tu;AFY;{wrEpec9ZsZ2AQeCQlY zs4v@3%gd2hbwWQxlll|!wQMNUv7?`=&9@il*<0mr@0_Iehx7;s=_GF*v7};1$903W zUk=in_ePM8>jvp!$0p3$_tyD9+B5u07j$k33M04*15X!z1uS8m2BF%I>a^$A-c$0l9apL3V8<;OhQ(|snz#b?K7;Qkvik*%YI5y2i}UI>LBpbDkl zCC+4f{V|48nyNKJ=fQ-})M}`L%Eh_M^ozNApd1!HcRg4NI~8>zR-}J0H_sQjvCBY) zjCtk!oLnWh;Ov)IYfjVBY(-YU20FV!E&TR8T42N<;MZ&dv2Yl^iL?)A9FCzRcgV zxdd8Nh2-Cxh|$MyJYWwHG@qkutrz4nMK5*|%?$Z*8tJom!$ud|Wx^qIR_rv~d7$)3 z_m#}g&2RD4kU4+7+AxKUBYMFTlVw_>hn15NlCJV|6)LSBXAP`8aRbk}2H1gI=B7<) z4K+eQRA#@$x(|<|mKvL0lmi~syzyLxe+_=NjFz%TxnZ&eCziP&u=Yy_4f!;@k8;TV zBUzJ2o3mEEF!BU3D4Ov$zNy{&2*<7;x3*;ml&nMbi@N`QSNFw)G9M!k!uzQ&s$Ud< zya92?^DqxFsTbhW8A|8W5jURQ`H75ikloencL|C))6}h>jNtBB!r(t!|HWW||5$DS z1VMNiMlh9{LVJey>~ZK*lI*cBkJxZI`OIk?Hc8RrD9UbU4^edFEIdB8(mMJ`@0n}F z!G6SB844%wb~J%S%0*=ST8q|YeuuP8>HdMVM|$bD2~21USdWWrmq(!eeY zQp+HB@csG2dch=$rS7Z2dtOGBrE)<}J`}KOV2quaO=D%G_waZ~PmpOH^M$UX54mTN z|LGfH5w-4Tzlr;|`XKt}>^F`kv%6i-TGW$iWfmZ?m}m$$Ml^dD@4LFS{rCS?x8~M$ zb&DZpO*HMFbZV#0i=Hv6p(ABc*5Fv#M1hsXa&w1l@x}4*aOQJbkAyTZc zF4f9`=m2#H+oRLM#OgM| z?$HMhksIg|X98$?4s3^0snk|z^o5CPHbJc?ey8`{mL!|1)he;s5t4^xZcyg{=Z#~i^MJ1Cj$w9?y{ z@ct9mshp+tq$8&UEACv**K{D#qQbM#g8k)In^_o|3H2RwWVPx%Y<_QP1tVX|`_Lbn zr473i6=CXZTQu~>e+N$bJM&Yw^?`&ONIHap+E6^I0Dpr1>??wPEFHgGiaks5HUR`j zg@W+suL_lf*5O%ab_R2ZTnVYY@$2(>4R>~Qx8efVi+{x*PCP3|cOHp}A-dFk>bzE@ zd5$4>kaH4KQYDd1_`rX{uwk?68$^117fu-U%``LKq)&+ z`0klv=x&rW9V^((e^51bJtG}955n6i*?oTI+2UbyBJH^OV^N@w=_ zjIKE4-stW3dE3P)zxfD#WZ&dp2!Qh^b`5ZYvB`$}w2+XqUY_^l^3&yI5hNQWE(Zgj zAK}v&B_o4c(it8=W!-k0EPq|Te#|%*kEUDkJ=k1U*{&@f57>B zLtI~dO|-OMutC8%c_icn4uff-;zv_4`nSA(32pnAhxv$J9fd-M2YlU*U`iMsolp^? zAxNE&y~M}U_jEtC(>uYRvddG{KZxTue|M`YXIF~i1I^zvn(oH@?KiJdd-FEU74bJF zfF308$uCo)jSQ3MDkAkP|pE_Oc?-Oot(GuZu9xF1-aO75cxenR)NgC9-~ zx+ZK&MQ*1%b^?hp_DJZ>Tn0R%&Hr2HT#=+$I}FbsH!@iCvObD*EGZ~%jdwiFg};AQ zYrH5(>8vV?7!-QbIx;5cc%TER!I)G~GH>4yc?XjS;lOC(b=!?zOJP`d8h%inK1>st3 zA6h}Lg!Vf#H}K5nvehYE-JvZ$1CJ+P2bVj>`i{(apnKeb(Ea0 zZzk_H!nwy~OBIfp`iMdJ+iOP0O{;(`^LPG>ve}{!B?n?*YIo-Z zgX9vv<7 zX-=Vrmj`zW>O{+KrkL*%3_IPk@KZs0*B1b8xeyW54v7Ms7!VuAR}EnqCvFp18rpDR zUu*Vgf4Lq?V_?vy+NB14xp;6i?p;W`D-=JRzg`6ERIQkx8+j7hpILu%ZS>6g8)b!T zyZ%m48I065;kY{d#vAp(vR1cSVtIYuZkcU$B}D*YPL-;UYvzGYdy$a2CJR znEmuRjhSt8B*yQ<>v4c#)}=o8j(dnkpq4?>#x`Uw&^%hMPkjSx)UqD|MJfu=coJ`g z!*;fXXr_5Q{({@vA!4}(cCCgnfGoM9^{WyFz+j#tD;#W z7sM%iCHQ$;5Psn$oQB)4iuJX0=STGiVp;hw;^QQme@O|#?o@Q??=9m`dc8LNX`jR` zxA1P^_>=A!Juvm=2A;~KFe_+yT@$z0^9Z69b5FW6-M%H=*=P3Up5cgkhov|4$oB85 z@7nghg>ALoGbHmo=?)b7l3?PN^ap)sywTE@?Gx1YSa{A!OS}!~Pdn?6AcokXT^Z8H zZPyr(PVK$y&=_gGHJBg`ZAP67&%ivfnqGH$%SZG7aN?Ug0%yd904sFFi?TPO$?VR( z3s-<+xkvR$KOw9YuoZ6P5H$V?3$Z3{+{Dh0*jvgakKS^+EGsGepRri_ff|)bqa+B7 z8lkhfIFz~k@owF252Rm5F9g}*dC#WS|~>0VL0+q@4J-3&&( zvz3<3E=bGv4ZFzg+}EHu{7|jOih~JnHDQXwycdk)j;2s)Y1S6P&NVO5wQ`ckwm( zTnX@4U?`PeM|kO9okBTKwpQtrvbR@Rd#JbP{u#1Th`^DBblQL2A1!rkl}~BKx-}e6+fe> zc97Htx~|e%kAiI|8-A}M;#|ps2`+XW%!67uCLA}8z(ZvaN4 zy$Tlt%lno{?=kKBd;9Qz%QJ*V=jY@Pm2S1U_Hm)x1IiqDYTo!p9zhyU$fm3Gr>q)d zpRp!Jsf&NP@x54+Ze{OwZj?x!k$LOzKsY1$7pnG zV^e^B{hXoEOuY>Ve`Z{fIfNP#@9M879j57b5F$9z^h0nZHe{OqY{y`lqPcqUl|op3 zsRm_F0dk}@OCW07ZsZYPxh24PB~l@x7u!8DCL>bHs#6c3Gy&S}u!uSawcD3HRro zu7@XgP9P;*RgbxNsCNX7Yk$dTL4U1Cbr;CV^{Q+AJ%5j)0C)k*olZCRz2-8m{g&m= z@@)WSBCW3FSN5QS2kp(3{4XMDZyp$3`HfHTzM8-_yAT|Hvnq5x7I84B8r9Y5_YmO) z&8kPBO`!s2{a%JbnyqPPlf0iQrJ4#>6Sw|yE4!SvTj#=~5-Z;EI==V= z;7RW*NmY3rZM#bRK<^SO&MYi!d%U@9Y>Bt={nxyWL$+)U3%9g|#n-kD7}Az#+C+`M zbpjx+NxzT)UPN)~?^`|6RVO~B&ZfTPFBgu36$fg3oZ3@DE8)aDGq zSKJOL8kr}q;VJS&v%}QZ6F1tnZXyQyyV!xUBNw|OP7_+twpd!nZg|W;$Pnb0^XB4P-a+jW{`i^!;LgxkkkMehK;0pQ2DW zyCX)J0-rcc*!ltGeI!Ns8O%?+snB2;g1wk~T?MHJyyYY8rApTD$X_meMiAMDo-;>B z!(})!)n1iG9K>*xXcq$J92&T<97j?sVd@#ZNwnP04I1xZkWiCe6m;q19(U;D59I6P zbAsgSLdvW^Ieq-UB7OYpUb9f}FZA&TAm-1}$Cr8=YMVCwL9Hjozs$jr{=U_whW`6W zBh7yCSbYW3%zPcB2D2?L=ody9zdAB3hBSjG3;~RFEgg4*cG}0F#F3}z?B4PM03D)c zzFhq?UDpo?#vl2B$(?x6tKUzIeIJr237Qo~u~GLUTHN@hPL)4O%}~f0&`OXjHq~2d2&R zUXW;#5RQ@Zzdr{lry6yZ=&^0!MRttKfh4@(gq+>ByS%tOIw=wf-Y7)DzND1PM9T`m z5m@KwH*&~5fvVsYeZwF9{nO5j?CY@=H^4&c%mzHP@8AshXJjmn!TC}VsY{}G&fo0O z8F=H9M^J0v30$y5;-WNIaDGo+kb~zJb}^7wc0o?AwKDNe80L*aWDZnSf1!3w?lr^N zOrQlw=20$Jf(8_aeDx`B{c{oBT{y9-@zp~1oECnks_}1yBcH18n^^JZ#EP~dTe7G4 z69@Y>!~7Y8{qu)aKW!1ItJih~r0zfb>EUaKZ|d{5H6x9ur@0thewpdBdGZ(q`>j90 zUG`V#_s8naD#uL!n2%4FSy2l0gep3wZ;Ty(J2dnSrWe7YJMO0Xc=3ZJ+D5=Fe&%nM z-h$T|__>z`vfqpJ55<#GY91l*x6S5K3LchZl8wnA}oyT<(s{Jigirje{ybEINK&wpVR-{`WFB8 zmdL)@xcDwG1$~_L4CcKGh)u@L8P`YV%hVQcFQ<6IQU}S&I^>^&q*dR&eYQb@6FY0Y zQhaKY>$M2xccY9}IiqK<^l(f~G%uxowsOM-jJr613<>Fm zTMJTs1Z(Cdz5YMIUBkhQ7~H3`m&f3qo##*V@4!1JubTf0-qaB}EVtm(uknRfK8QAx zJya(;SsS+mjrGyEpYOCB%_C-UAG-ZG?cnYWMU1rkRosnoIS9hNC$Abe)eG z4FpxgH|6WYvA=Pv{Eg{)i(qK4fsSiOn_uzEflCYgBTlvZwG;Jv#!%THxboZetzrCVQCmZbUX1$$(=7k}>Z_q-U4_(@bhy6t0)LwGQlgAi6vsQz^J7EL*~ zf^bfXm5{oQqTI)o>a8(9haoC)*!(gHDe>h^oV8~Iq2)d4n=Hh*IE1R~m_1oxewRib=K9SS3%~$dF zJ@v=LElvGQI}_Zu8z)rH8$J6ero9pqh<^uEp>zpE9`DRvrMYAxW{>r{JFG=kN1|ym zW1ZdFg>NQ}YyV6Cy#01o8#LE6o^K6?O|C5X2m|kRt>Iv8{Wf;#WH~Q_9DW^kVYHlg zdR*8`)NUmKMQ~OpXeM*Tli6{(~ql2=8Zms+-mq>3dj1*f_Wd z)849)C&=WqV#Gz5=&E$x_E(wce(i0a|2lx*gvq3(@)T@zV@ZlKdxJl1kB$ekK~D|c zJ|eL9;d!vM7%Yr_=6h5#pPf7EN>W!Db-BaD8{J{ztr?ydZWN{6{Uv1@$xNc~{`>`c zbI2f%j`<0=0#UIQqx*UvwPlMJ-d*wc+lmTWDkr7iNG!a2q}@!NR5&L6L3!$hXu8!z z`cRBqdeYC^-u4z>SN)8y5fUv&k)Uqj?Pa=cxu|eMZI9!JKij2WfV_T%af4Q7>P1Da z#ptehZ2H54Q_owAE*xYCQfD0aQQuY%ij@RQuz_G-_VKbJ!j&DuHos)vQHq`G5f zg|~M|TU4TLSIm)6NpjOlxBXV-{hX4@wLU>XWFT+Ml&sQvx-dV&^lyp8G0~A?P7m&N%htl z<%Q2OW+6@$Lf}~UDj1{nmN&Nev`!SsR3C3kdrcWt;1;@@5=A6ieE-F(yz-feHCx+W z>j~Q)T_zvcLdsa*GX1#9buW?!tO)ui*6f2s|Ju`=wwq18-i0rklO+zz(b1=5fZBwL*tCrnLJq*XWry%3lbZ`LAQ5?UZ}C zi0rF6f3L-4zWR0b`NG&vz4jk7Qz zmlg0gQMTi=^k0w9&hP)%@;2W_M=Y@A`c;g6-Fov0u<%rKVeo7=x!72uRO)x*TzVd0Db9C2OHl{Ot5gv;Vlk1W;SHi zX!e;S!4?T51<9zoj?_Ux9PVW6)ax5YYb_7^&11z6^ zI({Z)7$Lt=T}3q;9?Y#8GOD3$b}inn__I1)+0L!bqz1I2uQbj*ad2O(&WOa9(JG}m z=UDIGIC8*TP*!knB&uM1p4~CL?&~erzK!qYr~^X;d6BhIKb~2FG|MXwzT)vb>TzH4 zbFvNR>2@=9a-j|93ma+%GZqnhUHYQPH~SAMEuZ11VqINJqLGk&yd>&9K>bWKeL;q; z4VqH8-Q?b8j?!E0;D!^a-(!2D*w?!#-os?%WTwcH)J7wzE3rr_K&@_0U;8(LYz?b<`MG zj`)}(@+z#haZ5B4CXKhPJj#Fjh3IXSz1_3l+x8=kBANjQSWCPrsH$&xCfs^j{&Rt7fkD{}66FMR!|iot$cIk>cq5Kb!>W%RW=#7UK+Wd22}~ z6_m>Kh(5S8m_-_e@aT@=Thp5gkKW74Z;ANx32nT`TZ_L-X@8|d?r3|f2g$$u5vO>m zUFlbkS|cU=xi^|WO&y>3<B;8c1l>iHuX$)qU7Ez5)t3Q8iW`lr3))ZjjTL9 zwUel0=u4bq;mcjk$z6%$l%3U6cGe%LVXUd}ix)RetYIC9%4R%~d}!HMhCiEqX+QkP zoJ#}?$=?~})lbihJS|SFe!8KzsfgLZ{=`B4j6u~;&)!}A^o*ByUA6Vb2tfthuY)?MQzUpm>S&iw>P=;S~O;@}e zyPw{5AKN?diELU3s5u%9@B9J>rxvvGOkBXTyNCwEBzMHprUNBOnrk44jtvpqG`tu?bss?2LROy@c6htG0P+IH`BD0I2@9D@}S| zP;VvX6a4Gi*XeZJRbF`eB7Z@OFHWwN;f=IkobX|5&Tq(KWl_&$3?Gek>d?3 zB=tK;?UE2$Qsi=ue}zU}aXp=?c5pu8@>g6oV=YZIU92Lw{?5j9PhY~EK%mqQqYq|} zR*D(BSLXUR66=P&0?S>h*`aID+v@V4R(gyq(+OtgJ#35KI3US)58YNFVi z+Pj!vtnR%_{Bsi6`FfX5O0Ct`sU@_`F?mr?X_XziuHt@+2LNPg=Le>EKY0$J`sxjb zzn6Z!u<#vk+Wr2tTgQ3RZmnK7^HeUqmsJatWnee*Lq^k;{Lq(2QMiKA13ZfXQ@FuP z-JVW16=#;QF%$WRW}k@p8Oa6MVhD<5uB_hpICv^ZjN7WTr1;bqldV>XD2w54tr8&$ zXzdf+uf&y&j(19xgE0IO<6qTN!AY7!Iuu5vI_SH))8)^mkONli9<|EHYKT2o{4p>{+R=% zvJ+Ez`;e!rw?3v~iLp;twygQpFW{aX~&Ij{b0qr6D^EP zv4&a2)L?K&70xIVO|t?RQO<6(r`~byg8PH4BaHkAxc7-dcYjJ~bXsikFV^H|LuBZr zk?9u;JiGPmReS9SjkFb&X6iReFD13t(|tC;=<0`P9PU*mh41)lR87CexpX7L?Sj~K?pw(+#e&L6ug;s203%GhM1z*5yKxX!hZQ&tI(6&rD`5QXg z!oE=0f`#t;B4bGh|4_|%?tjO;Tra-O;@OKd>LkCYyQL3w8| zx4PJSyY01Nzm&80c@VwT4}GJzN;|&Sj>`@I+Q(NJlW<^kCbx9f-EV^{)!p}oX>iu| zd9wb9>g49c9jyd;>9MR3pSQl2B_swzy|2JF_%6L+p1-Z^Tu7O06kH^5ciZhAJAAhmfa zRDP`D-_^3PO1F(CmVb3}*X-r#hOozs?^yJjf4l=3Xln-j3Ox)L10lF|Db6h{o=9R~ zi$A6x@b(Mm5YSbdNb$pT!OhJTV?_^ z;wCxk8dict=;01p+v2gqjYgWFDx?7#2_{6*0Yu;67 z+iUh&-)lY=6po3piINPZyzNNuJGA0il($h0TM~C~Xxg3_zcDCY+9-Kw^+z3GQs2J>wRNA~jhtu$anxn2X2A(T3( z25ie<=+-R;_MPNAM`~(7A1H-a$et=B;%>A8nq zS&-^k__jBNeUgS<1@$YMTW>0jIIv}oAwCi*Zr+aVuJL~F4Hu_751n-Y{JLlLyo+b{ z@SaY$T{pIR?cBfdXbqmu5=xUU^hio@(Zz_ft#5i$b`IGZ6t~!>;lcaWmu@Q_J8H_# zMAJKBsiPPBH*rz|@|(K&<54#bs^0})-x~T2o5|*fPK@^k2znd@fr!Z^yc|+{;gH&k zx$s#l)n4e;UJMHa9Wma%1O|dxgC%?q;Zn@|61Bt1Q89Q1+iMK zE!IMqflvtyP6l#vJQgil+j{%FRI0pf+9KiwNPuPnQV2pdRH~>{Pn^6Oz=nXA`9IIv z=gdq3+VA~;-|zD$nVEChm$lbkd)?Px_!u5vWk3EhKEdVzOSb3xnv@obV8f~KMmknH z8%(X$`ByBz+Tt(p;y^HC4*ojya<*Q+T`zmXA(A-m9L)aqjnrTwFL!hQ=l66 zUl8fZ6A-&uWmpXV0@@^?%;=C*Gw;nm+!?8OJ#^n zVHm4+@nO5Fp;kQ`4f3#@Pr)`kp1%UyQO4U&6=o+6lg)<#*@AZ8KdRBNVkr43>N0s3 zJTn&N*dNs0M|f9V8u$W;9+FdlrygRZ@(1d&h-BN7KVYMgAFaQ`4`^ul)ZgwT5ADAS zX`#Rgz|9LiD7PDN)T3gdi7D}@C*4G~b zwb)p*Gx(wA-P+LVfyJe|5TinLHi~SzAhl75JoWW=t41W*?;{?|fIc%^)ACMmq^ubZq0eynQ;AJd_504{k zy>@;W3+^^OFY_B)G%<=WZ5n4-{sv$uq^<>b1D{8Zu77nnp5b{B*l*0N4E``Z>sZ7? zBNI3kq}IoO;EW24MR(^lE`ArUTsp6@C{+K(YPK;2{FWPus$qqye`8vpE!xMpWw<`u zJql9VHN&Hy@)c831o6K>0U403yY-jq?4*j7so5 zwX?rh(6PKn8 z23<53!EDa<^O_g$WMel;c|FWBRD*V1S?+ zF9GecWL0h{C^Tk_ik?w>3uo?c#Sb)cL^m`5b zh6{?dnxtdBY@lna3PD-&nvf^aS8oRW3xWM0B93Z!EQ*u0J`Z&h&HYc|6Rgbi!pYaF zqb5Z|{i#DXy;KDVc%)}wz_Ie}q#5_%6`nTO4<@PzJDE4Ve8jpg1@xo%ZoSwaDW1<+ zB1FSxqYck1rYf$84TqeJKs;+0gh#fSE!r;&;uNTnkQcQL>@H7$P}o@*5cn|`1e0Z za1v2<4@J85An4j&=#ag>)>ssV~#CyHuc}BpRk1j&<`U$$5F2lF@ z1`2XKcwh3*1OJa$n!H=tkG4J}DwJrGJCxZ4{^_HB+A<4x3MMe((c^~6LHPwIM(jchQT>-X7f>P z_THn~&8v^&+EH!R>X>|H2GhLq%ud{II;stCxE!qn@6tx#h2d{$lbiMOro8JtTIe0{ zl%c9!+Tyg0>wEL?uRTym7a^+2mG-{oP zMj-u>_1U$M)oewVy~`X+zeo}E*wqu#mH#n{GKE=2p+t@HMz!3~s_z39$jxlS4V?mQFI64z}!I=!5o#))d175e2lM1!mIMaM-x^eF%OHK6rYd zIlNU1PmtCu0~Kyz^n}>#nNJzeQz3L~--o@*;q?tI?|xzU9*Ry@+sEk-Bw$IFk?||k zoz*?R!Z0xb$~6?oR@WR51L!_KYqyW2fD(3ZTP-ABLU9sdVrPQTDc z7t|csOp#*W$H(7}H(J#`XsjmKh_UANU6fsOV2eQO6OMgKW_bLcpb1qgVJyhfJ&$st zGD~C5L0C!-hI}n4eAW#;UDyvsh=*GluV7VCX|C(4zwk{8yp~~|?O`=-B(GxWfMa6u zSMk2e+P>DlzW~bv=U-u-rhT0P96*ZjOrDcYoI%-0Im@X1FZ#LRI;`l0 z8F_`E^@l4)=}iXA^&WS9-qu9}ufa5|8-V$s3ul8zi!dw=g!i!FYGnnn1>%Q7AGTxPqeFmHFFP3a^o11W zJ0z7kA-UUr01Z~^=%!GUdoWR(Iu@WG2uSpr)izS<2L@-o8n{T>0rsuH0o7OV31*Ml zoGZuWj1G7~MPT2Lj)T>$+|qE2lp}7s4Nd0z4k7bqhKn0QM)e^wa(vvbM;bo&(63<5 z!En|X|06is^2+!7J$iF=2%dHxZLqO0fT#NS)3I=QW&8apdJ~?}x7zay95k}dM*B9N zNz>t@{^2N03?~5;4bpQ~ZWi89hUt@gu_tV+N84-ydp3eAJY?^G+;2 z!0FAeoOhxqQZ#|*72LQGq(tFm0y#E*s{V>5kRjr4k?rxBWB<;!KZn?#1MSb@_UADB zQ*2&%ZAd86wc{#x6-!@T}@=wy$IvqC2Z`ZHIYp#I!X z*f)HT4dr&ZRhtgJ*@6XapI$U!2+R-0w56&?t+BgPZ>v(%yzkUL*BfT)e zrUn&{o=Es3s(gjBNM8_Q2vURcEA5yu@q$rDAo7ADssnIHnW6-_`o{#IR&4-2Kn-m} zrX0bckJD(su4+RLHh6n!qhn&*!n`H#Ky(-utD2B@Au?rQaR>z zWQF0%?@L|3knaQzo15Rb6Dt63MsvftKg2f(Q4q?w`>dx>{6+EM$^P~desq*iKehb_aeq??m>B$S}YozpC0l(@=?4 z55V2tTzNT%L)y4fhJ$SP2VTO*|@1 zlyWey8=IDLeM^Su*JY1}6;@Uo`u3^Eu%4Yt;(HwP5?qb@2gmm#xF_t!%t#^n1pVd; zVUkCb_)YCr2=(aSdx>=syI`^ z%G31*?T>rhW$n?c^+xbUK5yRqZ0*6rXb>LqLP-$D2%339`{Qo7hLYzbq48MmT{4d_ z-E&xb8E4Bde?HQMU^@AQ*;Uy5@_s5P3-MB#vED=~2_W{FFr%6qCj9`529o%@halA6 zgT6zRL)?H~AahFwR&3QTDvO+2;B`dvVnmJ4)Lf?m)uK9nt z&1JW7*X?Y?{-a~&lD^G;f;U^+NgcGBTwErIKDu3D%{jyxh#u22==cyA z*p+%{;S=bS{@vT*-(BpD_8H^bKBlaxSA!OQA9oiZeT?N&frI?t=IDfwWhq{Y}-ky*n^l6V>dx(^mzP{qqxEofSnS>$fP3ZET6e-M8)ZcT5#80aSfSf5b? z!{woFh4jcUWgYYYaUEm{c8@=N-F4gKudF8tn&48WESTxYR+nkaGC+Dmr`c<1VVO-9*K#MTX zM?u8Rnz!f3K)i_fn2m413x`m?|B`cl-C`$7SGcHxzbzAH^`q8r1ivcbH7LShzO^-8XGjhd&TitPsY ztD)E=-ysg~A^XXE^`zSR*~@Gp=*vVm`fB$gihm`&{Uh3O!dV*%P5U`}4??n?Oc~xzT zTkJM_0|wBzg1YI2vmsOu+X%O>nA9w-=I{aJ*(}Bz z+kZgShzDF6k|OKVHnKxb<sShR=r(-&ya)T-&Yhg9dG$X9`(q+S}HH3HSs9{)E-Tr@55Y9FUthQM6>YBU8ffhLqw-uJRIecE6xX-fb9oj zv|kppcr@{M#b1T+4~`U5=?MvRwE7^0#IHQ{QOFN21cN_RSW{AjJn0YP^T?(HwCIE_ zZ~9b07P_jO-{G`C9yr#;O~muTj39=`-M4^%VnQ=P@<7`{oiXL@UxNnV(?!b%+j|H< zBgL~hlF%|#NbF}SrPfoszd?CI5nPSpfqe2ucrwHqr>%4FElHnskAoa*9ZMjrbIUy7 z>NAmWah4}=E{?)ILOhmeLMnx)Z#_;#kmCx@!J)meyw2?UA?~~b+T#uIm}-Kn9vlko za)45lmUuu=C?ru*%PLF{b6HDi!nZDTqNl%K=tP=U-Gm82qq4R2A@rhcfc`G@@$%6- zByTNP6}^0|{$}+0#AxVRG^efg4m{1*qMzTjI@IV6?F0MLtHs~8;!CubvhZ*;Ew5_r z;(tXOwdandg(B|IUNoLUUDNW0kJH?58|CZFtgEW)D_bDbOr3D%G*9bJ^xIK9%HzL{n1{)m zRU64F#2WF?w5euQ9iSpoojI-4KGX1u%ewVR;o)+@X`$%q&7M#si?g}eqvz!n--zO@ z9bg$3O*h7_GItn}6zgGd3w47fhYy@9Yk} z?C`SZ?GsCY8qHB1PmzxI0?lEcYNPMt1bvz(wEZ68krkmy*e4SCAf&ujiLgm_m8}vb ztCX-aSEPg-0X_snBPB!BuYu}gxcV5TK9ts^L@7;5iqypd^)Xg`j8Y#t>O-k#N=o^Q zNDS1v&Z9$s&CpAV%$2D)V3B#sTzLZwQ+mm$h%+*I&s@2r2!P>Am2k(B#IkG4T*95} zzlf`M-Y1aOR(?2BJqW5PL^%4abLNYH|84by;_?LjJ44G*iIrI;7!ZvJ6FBTF^BA`l zh3*4Ca2Bc&%v7tFuJ#IJ+~%o~?tYdkrQ8NHrl{H!GJH7`6OZUs8%<}z6hK|pnagGI zff_hQ?kcCMu?aj`DcZ#ZwD16YVLU~Dc7!l2oLZ{^BZ3z%eEw02OV$&?Syk(~d;W`Cmp@`G=j8nA_G%%bkv1MUaLYJoa-ecSGpB_(#9djVa+By3Hqb*^MvZ< zsLj9_LR1kY?hAh$KkwE>eA_WU4Ac%*?<;;%>XH))T)>gR9hK?$0LF~~BMP-_2NcPz z<5#>WMVTzq6>S1Uz+n810+t%^fnb>G%n}5ydbImT;-^`15=swk6*D7|LSX?R!>;G4 z#x1MVJsDgEY+F;sg0MHBK`{=G-Gi382xzB6U z@eM288p9-zfkA>Xn0J~;08J-Z@PNb@u#_+mHVtX&593+9lx3jG4Dwp>#G>Z4YCAr# zC>bOowny6CU&&~&sM9cnaK{p;{#v-kCq952_FFV$R2?EmvkW+gGxZ>xVqn0N8O~N3 zZ!{{gaaEl3>22}?6Hb~Mw_{sdOLZ;jo1tjsMA!gV|A`|p*K?Ptk*vM;bGOhyc)bwl3#_2M(FVYW+76Kxh_=u9Ui&GC4Rlaoru= zMkaL|(>l-`?34TK>b~z?4c>$f4161tF;0 zX9Geo{y~Uiix}Q;oRrBBdIR~71kfqk{qwopo!mmB9ru>Fejr266Z&+(gxp)SiA8C_rD?H|e%RZQ+t2OqY0geVk>TKy z*vP;ac4IHzgT~I(8_Ys5$%}dhmwYoaaAeBl+&3j_#Q;u)h(l2k^YB#Dvv4CZRGYF5 zXxZY#6rV!xpeOZ0g)!NjQVcfGGSUsKuJ7#&>N6T>@-cAE9A*B}prx)Nwtzj_6i zx^W*I3&fD_{2YWEZL`^?}5#${07$dsOPTL*I~hX<{eqoBbWzxLS?IUh4(dPPT#y^ zxSc;TaLnE8FLxhzzmtS7dS_nyA}^HA!EtzBI?X-qj@UQ=QiZ+j;DGD?Bpiq+(xePV z!SQ`Z!k}ZWdhI80?s|nI){5Gtwdnfp>z5o)#D28u{~`gx0gD*Ww)~pn#dy2=*K!JB zW5Rywh0%9X1N0DAgIm-#yUfxpSn-+$tbP4cp-#2-$Z+2#%YUr4)L#A*T>cZz@)w|i zqE~5@kEUZx3jT$XwCBe3uYsx;n-yC^-<(?!H7lOt=SRVlR|Wdvf#A|~Yz{9zVk41` z6&z=64iao*v=F(f|A`jK#WtcW2_mn^9l4_Y>}3F#TRXd_y8t|N^}GHa!7oP!+K_R_ z?MK8|drIKk+Mdyj+MeS__$%ah`uGunp221A5&jZ93g#0@1DFinXXPFD_md=WvLYmd zzd|Jxd1#xqVVfKDu-(1K-Hwq#EJAnDf#myAppb>Z*VZTtbg3H*P+YCxSPQ$aujm(`%Im3E5uVIc z9)P`9d1I$65_2Vg6I2%J9>Er;6b|%fQ1-M?{d~Mgl@h;!op=$`70#)9f8X-_%5QtV zt3DDjtfJcZ86JmqlRNC*fAA}W>j26TfChRId1~rEn1ZuANx%E>qwvtY4p<5{KN~Z# zK0m_6Mg7>x^pP0(fe4xtTKG|i4B zaJM762bv#*@wJ$q(eTOXGGBH6Vnl6-<0D@N~Lk$k+`!f7zV)vsjh80O> z#1@4H|(URg~!AW%xO5&c64AIl-`M@a%V}$c8 zJjH|p_&OI~qdlxAe;H?{m4_4ErZB+~d{W7Im*Xpr#O&x5_Pu_Id*{ek34)R(yT99# zy^mFaN$r^=`sc`R8LZ4iQU~wQ@k3zILYi7=jfxNO9JB_q)B3<0Q6C5YP=KvWzp{A0n;jS_Z7)O)OV8sByMDnPth zI(rcLuq?#xVorL`Xg{tUfA_2617N=+tTU|WdN@X78|owO(fcs-o0IP^)Ru#7V}O5# z=?@(7_t2JEl$IiG$yO&*>#}yw=ZR5yC3FZ5W1U0@3NR#rl~b{-q9ciEyPo~HB_D=Z*?7i1zI@W`1^e4_=5|+ zW&H2_^nWz|oo}Bq{(}G6`2UO+PB;E(Kl?8D*JF04g@6D5Fn-8ewxVBA@WuN%0R?bH zqLcj}lJ#%4^;0&PwNYMMGTQq0K9H4hDcDfvgI5c>BN@&oizJks45!?1MO%*-jrg? zv*l)sI>tZ-g&($E*T1MFWVIS9bX1mTPz*}mHnW6%=UsrFECU7>&}QG^C1={N=KdUD zM^xyq@M;kLQIvCP`ur>vEK^NCe8AHdbOzcJP@FU*`+oq<#LY~+1J%m-Kam4?9RP%D z1vZX(gPRhPdDDDuBW^y9WX^__Jd0Xa4iBD}fx!S*(P|cC7pm zw&q{uu@*d5g6KMbHsAz!^21|ZHy;#U9$Wq-I2ZnQ^38*fQR=>tgk)b(1+dX)(g#Uu zLRwo^x{>GtIs$q+k$iv@-GMy+SQ!0G5Jl_py*6UeZE3$5JUAKPCA|YtceHamA4H18 z4Zg$f`cTu?(Pu=&aU5(D__b8YW46J^PIK26aK`M$CE3Ia;88P-Ym+PE(6ka@-wNAH8_BoZ#=O6Z{OG;Cpz22X+Y6l`aAY z>)iN7x|xRQCi07S(HG>X!st-YUq;G}!&8uzXYY?Ch$(=K?V_Q&3#~$7fs_KU#&V}a z5mX7UVhe5|&Nvqo260@_cwg zC~oHny?BF|eq0_$KC3;~Ri-;n1U~1_enyp5o2Av1e}X)OjULUV@5wt}wFar5;Rb7W z;T%!j+EeH0ing3gz?dDufuaq%Q={%(h$f(R3_i^a*F&&I4#v$|T#WQ8F>+zA;BttN zskJwyPpe0yC|%Q49s- zEs)04HnFH?^^gl${?A|M(M=36Ob*i2|2+|Ski=wO_JHzU1rK!lk3cq9Av`cfZ;76* z057untblXpoE6(Sapl$~i4|@3;}h$TySv!el)Nc1BN%E0hDyjNS-hQAh;Cs!CJaN*> zz&>fOeIWgQC?L(*S0V0Zx;yLs)JGkMX5eB|_yUk!c*JM*EE{3>hdqun7Nhkx>U zUF8ie_qhB6kuDe@KgZC5OTE;T0KengAP>zVta{}OKSC`Vg>O=SPfqAl))VGB8gkiY zv1+rA(`FKD_%C5iF!lTuGtsR7Cvf#42?98qcLAIXtjIO45b=bLT}Sfc^i!zozY#Ml zP!*RzM?x#(t0JKVtTC&g*1wngbnlySF{A}w)oZJ;)?ANd3929=L0xVOJ*1z#6qC4K z#0Sy(!D)haDQaUyiyXNFfPc60;jY3P`wn14Jmy7a3p~tAlQrBDd#4;t(bNEjr z(YH#{x8Rp_TMaMeciGEbf$chX#dM1%Ttkqgf0C>|!NFtv6gY#rQofL@;V%h|hvsz$ObT;H2IK z-0Ue!tN9{uxg?k-=2x``a^M{iCz&?*n2{FsvZIHsB|G2~B7nEg8Q^pB{!pMHVWI@A z*xDt+@l}rd&pRguKASsd)eldzbGq!ufr=a&!5H06yO;YRJC6QoLIIFprP>;wE5Q6K zUH>cm2BB^seb(X!W)LW@;s--*@%Eqk&+Si%s`dxP+rKHf{UqmcmCu&?AZPdm(mak} zZ2gGu3yvV->*R<3PI#NS{BzYr+Bt!Oxk9g|GC_NLbg(Q#=;S3(ot>PBP~?-}M+9<~ zJ8!2ylj`ExfnEjL<}5c{SO39A*upfVSPxZoy5J#zUv)%@dZlXO@A+t-pR;g1YQ^C# zgA1fdqV+l3kaHXy>ruGCR(R^%(I}Fd5v4znV1{?0aC8NrW4y%Q4C3H_Q^Mh(GESC% zy6Zaw>2+?X^;#d3lL_k040O;|Tb@-L$gD^^iHK^+CKudWBO4`cfn3PX;0$)ea?h4XqSj2=vf4bVkqREivXKp0GUY zX;WdaF;@e{lmp{BCVK}4F2Tc-J%Fce4B$Z;D`!wMEdBH!QfJ^cyu_C!6BLJ#QJi-~ zTg5a?0!OhoV^Vc$Qgt#Zq#mkMld6+R1=_%#UeXmm(de3b_Ed$Qw2}Tf@Zh;wCdnQa z!ABr5Ur^l}vF`EtHUxU1q#+!!_e6*45t$C>e%k5y9|c)?!I$KWmrM`nYviFN-g^A6pxea|D>eca@VZ-;vG~J~s`B!yDmNA<$m{X*5Lo7v zh~#w`bCoMf0l5+U0!;$9A+~_@#2EmmDJ+qe2H|G^;KyMc+= z9(#i)NBDPf3y>}-9|1OItwul!t*MILSO-ti8&>PvB9pxZxU0@4+Yn~EW5`gfb0%OD zb$%U4r_8ZoI}~;2k?Tcdhp@UfUz3WR0OsOZOx&ZbyaqR+00v}y?L0L&H%H*Q4ov`m z!d4wzV%2GTJ|0(e!-0=u|MEc!7CVCG>kP$uP^UV_Tj32w(n6nfM$<#F)Ig6d)Iy-e zp~lJw=SjY!v(VT1xM=+yixR5u)a6E~{tF~(IxY_Ap%dPPX=X_pFGMDb8Y4o}fGaXt zt%E8N9ht0Lf+ovyL?&nR5&gal?T-ffIAKvHXPcf0Oq~bP(xzy8AQv0K~Vgvful`aB;R-k%4r>$BYV(>Hi+S zF0w$XMwkVjq;e8!eCG6wyq$~BFs36gA(LO*Jd=ufAHM8It1kp4z@A#tL079?43S?+~4r_pdif07hgztj4=9X;z zxOtP%1qc0_8-ypRU|i72+@n|`m{zV8p%{^XJ@RIH7Y;`t5iHLs(TVJ#fNbg-#M8o1 zFw@)mE_z7NcYU|f2TRo>?|SdzW4ad#)idxa76Op~lQ@Lfq%638v@*|twPh(~{?=dP zd#oS}e&(sGA^*N(^vCdfVE7A&vq7x{3zCkz&SqiJ{ogCJ^njqAL5*LWA6qxa{VdC>t~ z*GoTYd{3r5jpM&kzskYrZuBa{)*sYke!xA*qZ77*nPw1%3h={aF?e6h%Mm!rx)T)0 z8Y+Gqs628d`m&7*O8)?ovZEdg5`(8K z#+N`QE60-RDK_lS5Vpgtc7oc+DlHQ3k%ZlhR$;zy1+VMcU=Yg^r_Z9z!w_ZxTabOO zOUtw3EsOkNYf{j144U~$COpPPmj5(x1df=Mp#mO@SMK-!hAr4jI$4_3K$u zxqy%GxkQZ&c@6o?9ej_rs#_e#`KmI(_- z`Bx@NKbC(5$5EGSFfKqnO6(wBtwQrEQ%J(!0$!xxF>ts~D#_=#Jzv+<$lC&>;Oz z!UyzEdrEYI>a9T5lNjbGl*SV(2;sN>iiG2;{nzCi+uwq~UU zKYM+|&&u8_IT$9$d|%3+e?TuBqkxw(EiR7ku-wwQ3{5L)jJ}_s52tDG4;U84L$?@F zg{^!~s*pQXHk9r@fv?$6ppsWjvMacO7uNfn9RmmwGDQ-+GLRXH$U)|7p>)XEZ1c00 zr#?3`l15EHF)A79i#;g(3T10=>*~c|bLVEtG`+i$ZJ@5K5u3{W}v7b5jSf{Y$muN#rXHy1`o~te8BUV5Ixvpp>5{_ zftPrhj#V3>tx^<1ne*cO1=gl_XdE)@A@&VJbGVPB`GMZkGlRz#=RYcczGopq_l&|! zb4h0ODnL4QvDZ$`Wh|$HKouL~k&So;GuZx{UuR|R?h7ki8=&E=WqG$fPo>d32r zQ=|^T*Pc2+CaxF81%jhae@{QQH;PK473c67RFsq;K+F-tiB0D;_u~d<2^}H=9k^i5 ziYCDq_+tC(04T(ie?#G6#~_4+e@WmLza`-p(hj0c#DWY#A?5`8x*81tem~{}B1Yj< zJq>_4CgSZ=Ae@4li)iMBD5^q<r11?@=&=#1C(T zBs7^6U4Dk}ljrVz_=I$jz4%S#$87~M;n1>CE`wcG&n;A1o_3|3we@HIYaK3H7A|IgDOvQ5%-)c^!wH|*A-(yho3CVoG48DIc zbOaa-cwCwotPZ4B7mR7m!h2ol4LHYMe2?9r5mQa=`4SFiN#E!TOko6q!{)Kan%NHr z^ElR`R87q&hRf;GkRIV+&ginI7mZX{U`!sap!zsR-V=*}7T%jImWse*p~f7p(>$b9 zh_UkRYP6PDn!WfzvurI6}hsffIA=ybLrb0Ml_cBe}C3F7YWYFp2H`|J`=8%`E zIO4L173~)h0_|~hi1cYs18T0;&+x}ujI`yr4%bX%r^W&%?I)xu!LA;=*<2=h9{>3Z z0e^TsUc(+qSn#o;IJGE!dxT!t8{x;wNV;$dJv6uB&K zjMn%4Nc07}qy2!ioYBP)hwQA9oiB2CQtFSzrHu`}=-;nD|s5Bl5oqEmgC_3aIH5x_9zUf!BQw%t#|ncch@%|z(nbrhW~}+v}*n0HnoAQ z(V$^)cGut`G023MJb1YaaEW3c_c}top&7d#w$DoV)vA&kc50GAjh5#zj0bUlOO@?V zjrux_%LqJRZs;I=0a{?GWMe%VUvxy>*a|U4WgPmM@Mq<291BP|^7r&V<2axZMyq~J zwroal!lgh;*p&-LxrttU<0`yiZNe1sT$mYV2(&HoTW>^`4F6B*VArOPYW1-Zext!M zSTRyjLOx!tUat-VG3Dlymn3d3oJsuCs+lxdZqA^A-d>%V_RVW?6Z3{74nN%H3l$Jr znPdSv_`G&_u3}`U{}PKj^>|A1A`5#4$4_tt{!M`ni`#YI^i|2kT z^G-qYOP#gfU%;{5D-8mmnbu&A4q%+`X+4HXsjpo}0FaJWBeIfA(l1G3W zXUGjLyh1f9Q6>7$UR$+l`n7O%8}Ui0>;nOm-l$dojC4xIa>@Ye^zLjP6GUR3*X*6;o!co+m$6vWw>H+V(a<^F`P(H>U& zPvU%;;;(sIwi=uXL`U-3?QRzfwZ0c;GM)Vae?#z7;3A8&uyBQ=ci8fjQ&0R|IADN_ zsc593N@y@fTIJe*(0pm!cAmvTVGSyE-Z$*JB4s;XSNdgHFc54jWH!6XI&x@3Nc z=T1RZLcZZ|mOIPH+q)?9_*?Fs_!L3GvswuX$@~Q7gXj6OqW9`|sJ>f!1;e_wUobrJ zJJ~)0!ocq5XXOVn7N>6{Gt>G3m%1wB_&cU&0z`$p#zmjVkSXH;K;S*!v4Qk?a~w#0 z{-A)=6Q7h4)UudU#9?Cbt;7?DwNRJ|y6CTz0$UZ#bo*1NP~c)uMcb6Dyat4}*27h@ z31W3#!=hu;AI;1%W ze6NNY7*Hk8-hznqgn}RNqdYyzQNU`YX!SJqKDy+fqbH!OHi85_s7RLi=>GHZ_>G81 zDPlMh&4J{rsMsb^6*sEdYiw&RTuv>vk=qiBRYM?z(~Zdggq(y31#eJh!%<0QLkEAS zIs?47@3QS_XL~gx&qddq>N=y^-oUuPGSu^f;uIjFVh%ZI5G$9}yANpulNmjW z-%L9T#9w=cGimd|F`RJRU#to9iBI%{5}FT}q;CNd#UuzDA_b#{02{o55H?Of{`jBe z@yfl(p@ID2@iynQsPkR{&r}bs!$anSdEegmo$9%2JjXM|4orIrF5{qhHLQq2$Y1{w ziHyZD*~l>GGx8Hl&II=1J-Ce(vk#oS45e=2JFov;R%?LzNkH*L<}C2xvU1?ofD`_j z_-#)NfV0YBYQg0(GPxF~x6l7udc(1ydRr;Ip(*FA{=<*#%u1#Twz~IvIIk#|>^tz4 zi}8KAB!QySc?pWSsYzkj4!$UR4&GGf^oTlS$;yFs{v{MhMIRRMI%Q{(+K)#18T*&xPn22D<57m<$pk?D8~m zpC8Mgz=O~>*#eKCA_4GZuu(jWNYU{orcx}Y!&$$__CU|XuhTa&yq4cVaoUZQFYy9v39aFCC@I7b9o3$ELh2*F8eUM* z%;CGS$F$t=EcH>UKE|n!Vd^7WeR$PJC&!ce zWOHf{aA#RB{?Hb1%rM8rzJCSww{$13M#V8!_pv4Qc@jSB0gU5g#7818|5>|Xx1oo&8{ z?`pK9M23vjLC(e<06v=AjOK9uQn2SBda;d5*apR0-2aScjk+hhrw`lo1u2Vw0JF6O zP%BWx3u~mGB#;|h;Q$+p-(=$(h_Pi*g~1%7^1>aON@}#4+xqYLYS_q2@0~$<`-<(v zaV5?q-Lb9TA6QR557(Z!zHhc{2GFPVM)1i3BL1PSHA9h9)h-ocyNP3UpkBa#92`lI zLo|PehLHyV+q|Fkx7*^hZMH30Wxz>*NObgfLT@604C@6v1wj*~LiZt^k8EWyc;;1LkfZ9aU**~wex z(CN0!9h2nrJZm$yE7+hqLU|%ICanQ#Vo)1|c#nip=%B_FWQWlEHL~e8M)%TNV6vo> z7POEPXkVqAKtu2X0OsXt5^$pDzw%>|qDA3#^>YM^>>OR{Jncfx>Q*GzaaqB+*mn0| zIMyP3WBI3L!&;H51z*>j8$RWnFerx%9~Ge1+Z1v?qzs!v9z&LI4m*m^*7Moi#ca-3 zA1RR2qO}*UIs7c*h0TIoVk#am3y>FDhChsp@$`K%?BAHh?}R#YwUq%51<#kxfZOt` zH{g+6)HmL47TmxzUyXl2m55{A?XOHOv2r|KjQN^kzU|jS1+YuoP&8pis55=>hnoo= z?b*hKEi8|-XqfV(&15G<oFXx&tbMvlJCFr;dqDD?n;MZKXKYmo?R9xDh?pBX}Y`@F4=_VVRz@ z>(apXOXs`+vDaOa_x?f@-fRkvM@`J5=3Kg>TmO27Yp7N8+-cneH~@Bf)a&(G z!=t$g^wHmoo|n)cp^S%FjH$UH*RH$~tzqqgygQ%$Y9Nl3e#Wi;Pr(iAZY+moNCGhp6o#O&mK7PPJ18vdy8v1OQb2U8BF8O#||Zl zdc25?QBo+RD#P8Zv7V)IHoPFa{L`L9|B1~QQ*HGJVg#tLHB~%^WCnDKjeZ|+%?6+|M zhVPIO?3o9kBlw5OYfv@8igvHpX8Nym*Y>RO9UDJFtG*wvjjA8Lqqh85^kUU*=;Sj0 zz2gh~y%Ct*C-~I}{}09&1bPI&y3aqW_QnbBnnN}F^*z;x{l&qrM*0hbUk$1#Ft2lK zoA-xKRxL;B$-L!ha9Is(ispt+-m*L+bn+_y0JyIP)kwx_gGDf_{1dbR3ev>!t(J(QSQ z_#j9z^kBU@wd#`?W^K`xG0$7$k-UO128hkz?bPSW`6!k&1Fw_z@4|ib>JI!EkY5Y) z`0KcUl}Ay(Aig>H0kIzk4C--h-4Z-`ZUv5+xq+;Lyv~Y`A(RHk&GjRb#kknq05VTz zu1)bTvDE~Ok=6|ji_1O#1dp4*9Co*yX{(+^`&e>yA}YbX0?$BEyW^Dp%QI@T(rexh zHf{+b=*|DjtuT!Yt<}No`JnQ zkhbv)oEp)go8_aQeGQkubiSs7@zIqW92CKq+`xk529ow;l0FU|fDc~I9n_t`Nr<15 zu?dl2JQ9B(jaL?8>}F{!udIF1AdyiXyd|S6xMtl1rWom8kdcJ&fNI*I-rtO&hqkI! zmr|%;B?JDk(KEl34=5s>eAA@_On3UqjWyA!|;2LV*HzFm<&A+Q4t;pVkzGn041^CK0&*mjZ zGI10tN%AG>Jr9ikgL*wpPQ9LqApYI!^_1Wm>-AhGpP9j%)HB~vuV=f|>p2Mq9~r#j z#TVeBj%wM7dOZ(6Ceo7B>!}2{C<>$2#_xIy%MLY*O$1*g0?b1r)VHBtPg9~^PgA$b zE&nZDou*#Tez|dKy&l?wFkGpJg2N3d8=(KR$sD^Yz{%4r1$yH3dQi%eWiwtAL_ocs z7OB^>i}iYbAg#sg_3W2=J%>=Q2j`d^#rqERLdq)CBSoV~jFeRqEl%uzL>)=Jo>!18 z&X{vp&v`|zWE=c)NY8ksronE6*B4~=LY*5HXFaUXIfS5OBv-*9kNl2@Yp0OyAAsT? z=8Tj?`>5A2uYQ2L2}K!@%yRzsyo40w9u4(;JXeGcT~O0NOCbsy9e*p{D(d-UX)H1Y?%B#4 zje0%}TLhY)aAK_I^N?2k8BZ_#M1dX@HOs0){T+cqoiV2cC4E{#zWwkTv`hM2kB5O6 ziIP6u5o7EnN!wz~2ub|JW($(+-#dO~PYY&?j(6O6sDn#b>GZ z!jEp3dOpZJa}c+YG0m1IGp^8&g+6L;h^7F&jGSy>y}j1q7XSItNyz`^`zAGTaB#rN z4;%{Y(Z9@_)8ZcmDXPpy)Ir+<|KN@WO|D-GWsLaCsij#`ioeDR9+s&8)lFlCT&w!B9&*+xg}>-;*q~U3>PCpl z=Ukz!PBv95eHu}nEl0tVHJd6?9ErsB|)vs-zpprH)(>#|;00@g%KNLS|}b|m(7 z;ChZ~Nhx&g1x5)?ZFzV5RW5xC+5p!Gy)QREj@Vr}EYkWov#Y&N1Yw}QW8 zI(7sG)gZec_^w^xyKwPZ{9rE&N^w{g;DnT3`uuP8GK0N1#sv>MgFFwj40AkfWFn;^ z$BW87PDGn|fk56rp&;M4abb_(xWWDpn9f$ekd6Xn>!8GBH7je!RM-Q~F#>DN4KoRR zrK1wYahigy8nbi2-|$fUfG?G=a=>4WuRP!{=cTf`NMR|5X_nQK1AhC;uVbw~(67}{ zUU$V$%iKau;#6oitg|6WDV#)J@6qrgMW?4T`N}O|WGnn5Sih{;V^<%;ObS>Ny zm!b>JWx4rPc)JrL3@#fsPz#eVD-GfyPU?4d3-91EvXbiUxt(AM>48P$6kz{qHPIZd z$L9Q4urk&go6(x?V=Ot&Qb&F3{&yOt+r}U=3FX!GJOk%0cSN(6PRgDSs)vkQokuVF5`P}@FHgqz6$A%yM^*wsOqpwt8QU4Wz8M#6n~b!2OE+gJoq4Y zS|+i|sA^XEkzqxIZpzea-9j|P@N(4{qJ=RrFfp_Thi9{%$I{bi;7=Db*z!=1Me{)Y zLy;cDq25>*`^elng>GuP{TCqKvqh;y(+} zu|f8GGXXNZ1f_KqSPbay_Z!Pg^{QRQM7?S~hM$InyW0h>>&@lJsMcgu?bkL>1T`Fh zv?R3!6zw4j?Kh{SK*KvPHozUJbr-@qbwuw(sXYCJQQkCYFUqN#7JW)}*g!G}~CJnnlSPGpm{kUx~m3h$&$tu+HzXh*g!CROXBwK71|o!p4UiMV^n zkn6BCdZCn>2{j1TXdoj{G5j@&UgLa)j5(+EMr>N!KU&GxqWHKM3utp}gG*=wke~=6 z^Vo@W2v$kyg6PiCS2*Xj@_&H6XuA=-cPKY|6W(5nitto?z*^eO5B~ymZe@28xg2+s zR$PZT_+Io{slCv80KXIbwaAB#SWud&9}j)f-tc)!I4ciEV=mDwRk?#(5gAvoK(9hh zM6F$~QCONkDzJqj<7Uz(Zol6Ul3>U%FW(^@wLhr@gPw=kV&iJE?PhRzs;r@So|=Is zkmNX1@Y|szKw8a2tf;Cnk7dUz-@^{#vXgxG-wbLl=Y82|(ttLXOie3_Bsl|grI+I! zVhJ$@>S7OwB}QqCVskC)#l>L=?kFtVWd@NIJ;v@h6)ey5n?Mb>V+f#7rUzMFsJx<^ zwr~4dk5(PU{CNRp(^AZw2JI$*irJKCvvY(s0LGShE{1qkJ9RWgo*bjR1yPhKYCpyK z<37bA?~vm~7)1F&?#Je2-gi(l_dQtOMVWxKzMGji3tXvz{euGs^8?NPTg;pU2U^x* zjPJTNBY{EMv+q~zq1uw`3{Lm3vlU;jm96-f#8!-GzCcrcph*kUyb`L~p5~uN_<^kN zGV~D_VL7`ir3pPdL%=)me+G9%syYnE3C&5tIbQ))xSl|pn=T`X52T4C7wsX6MlQ_H zMgkYAw)>~b8_ztc-T)A}Bo6~4&?ww6;XWo&e2^kReO0gqkOu3M6@_OD;-0e@YM@Gw zNLKpsq6bTkUr4gY!ZD}}`#uZwk2#~t>WyHZ!S;^JJpGRQ9rSOB9YKBUwd2;CH5ax5dCLydw<*3VW^h+b;CH%B zH*~PtbmNmZ-Fh?l7U-%h5*Fi`*PKn)a#{CHrzq!X;kk|r004kS6?phzg17JLeot=O zx&w8Cx$mX^lW(07+&t)8Vg3UsN3HK2Q%C4O@wPy_ko|uLe9w2_Tj#)ct~!Oozd;j< zs%0pu_9_+lajLd`Rd*P#Giy?y+!GkrCBt~>H{S~5t%C^T%F%J6w$2RRk5j^d?<5#M z6j7@jjwfT4NYVnYWq-B;n6>q4w~7mlA5_TN4Rt2cuf74}JII*2Rq?)*|KZV{dyf&;^#vWDbEv`I&;9rALZ ze{lQ-BLfHt&WIFpzrRp_43t_Q5-6~Mh82Lu&na+5ub?NMsV!_ zuJ>BnVO2)@h!RAtDMykw*Gu3fWw|FL^qZ$YzvBBTzTWSH+roa@pw@bwTI)>+sg5u8 zfiRbPKU^--Ff&NBhHs5oGn5YPMmj-4-Pz+A9&0^ zv&(t+^tYdPYn}6MokIuS44v-0dmumXKtQwI4-XHcEEXMQ|NJ|CCa=sr-B#vb6RmYM(XV!jCkQ)QD@%^#WMrOO*f$ta!7j3mZcD7#nub%iuxQa&6%b?=?0$OxHyi zJ!J^}$s8WT-92HUHQeSt*41E)?QNs2?Xs(czX9hfw6#mP6H}F}1;iGH*^&0}DO=yV z>~2Tu+XiWjNKB`HvrNRG%yVI|$U$7h{Xkp9w2S1Nw?bf@Ze55{2d(?L%NVjFLC5CY zTs}Vxk2Drd$OT42QX2_vHAQza3ZLCV?5)hvHq)ijf0bE!JanQ*#rHy;1O1m>EfU&L zV@|XA+dmvbm$MTRTKUzep{c~ib1~59O^qePQtV;&!UY1fwA6%{;TeJ|zaM`}v1~sw zQn4!KP$XR7CsK1WW{w57XJi{$_oL=E&*DX;Fr?_?SK{fjILOqXoz%<8>Ie#IeYTuY z&e1kS4_CBhfQ;#84z`s|62lqXVymA&7i;*4m*4v#3(x;kZ^zY-Nar4Ou0OICe61FZr68#h<|%eh+8jdus;v4d7#hAHy#rr><;U@w zwknFhrt=6_Q2a7qhQ@`DUQcou7L4`PM0^hjuBx!r_yTNvf>1stg;-YG@b%Pb8%l?D zG{Em6M5I>OrIV!69R!MH3=N)cHOXk>%2sGYe%_E<)|?kabev@W{IH6|ZONGMyMd9` zFYW_fMwxKr$Hir1PK`86>vNLo=#6pTs9MzV34_Ez0m$Gv>t`3D!*>zHDL87H0|`i; z1^|5z=?acE;UZkMQK4{ZVrx8%tznwn#%yW`nli#dS74274_wQ#q9j6cI>iBO4WA4` z8Q)&hy0mc!9BgtMwrlGv*0!HB*Jlu5iN|j{_HuX#ov>DYB4oS5Sh@KuGI`zkl2wGe z`QTEnlM`DZHvagI4WCWWSB?Vcyyk=bAkGOK0NXSEfbWfjav>S)j>-&l_$c@+#=|)N zONuW|$S0_e4aCuR3+H6*m8B~-$-@{>MLE??gxJbYS{1|` z74w?0*q71^H~-8FuoESnfWE4FH7fOvXCv4!;qk4kBcDq zDib^!m`e{|p~^&b^9761J63r!AQy&zOyDeQ;rFPo^y>37TaRI7tUZfB)8x0_VEqoP zuAy-;K3TDypzWq#=?d@H`#SJm`4YZ<7w|-{6Q39lW&z$^EjI9`CIRm@Y8wT3i>=4|rh5?Yk__M9PqXA)A)SoK+;x7L`2uvF2^gB&F zh>uD?h&RfzUKoYVeydjy+W$+-6W~&2;YzTNQ&Pd&hb84vW-HT2;F;67^!As_A{!8k zy!aVi3$(z5U=kIb_ZR-tzWGnN9Dj2+ei~`mwpy4T_h6OJ)koQ@^nF~2{@Z%3Lta6Y{BQKT|?BTog81-j8`$bBX>Nhv>$mC=R0@*|ewz!fq- z*l1T@NGJp{%+39XQ#iPzFAGz1ofrW6fC}Qcc>(89!uKgixPKSDc^wR)qBkpFB5(K| z#N*rWA3=FSJiZ10|J4ouvEB*daSpg&8?wwMqVRtmz9o>i-A7C=T{|9jYKjD8y z7yL&Pr{cc^0BSX0D-!s>(82!^4*shI)veih>i-V@+qvRCm#$2yVWU@$!K#%}%mo)(60M2VxaJZvh`h+VH;e&jF z5Ay8jm@lWpHpCs3<56S~RCMcAK8SjM2N`M3J4Gojfgo0y<&- zmva6p&sQsJ*x(1x@)A!Z4NNvPmeDIjUy10obMd+X`k^=;PG3&q`NRfQg%>0x>yQ9r z!L@q3yTwSW^sG$@Y(r4Q&CsKjV_!i%blB7cspp@(e&dW-(|53kT)}o?4w9J>9UMBiE!k z&6%V1@l-s~;U8@u2_M{h+WoLoF30!7>-fp>&?pKVuLc-JzL5NT$;08u)o}QPbpj`s zT?W2@@`#E&u%sKTk4hj!fUzf(mF8X5LzlY(&OD5RJ`77nvz-FSJH0=YWmc@=h8geU zm*P!{TGoSJhf zA1kE~Yw$zEZ~kw-xm7v>%cwMVsvrS%` zciL_8tXz(7lQsC6fJ@RYyYKX`|FG-p<@gCHFL|c z>e^lp`~)_ViBqS+?f91PH*om1xIe=i9c~YT7LlHXV1^6H6pwY&JH$?{rk{NYUNK0d z0S9B+8d_*;sK)_C>$+=Hj0mS1Rud96sT_x(T4|R^@62Z#)=q@%tJyUe2b#ywlJvfZ< zSHa`-b-uOlBY1mh-=p{?Bkgh)t2P-0)-Y9SZQb!f*_|N$aP??% zIW93v%*xez7GK1O)VjxgK5gH6MXk@|ZmAC-k#f6!#Co1b5Ub5O$hz$A)9#%g$>sRo znT4N;3=-C!!BQjX^RE6pcD$Px-Aw4-P5;w( zz$b{(&%*uyrUUY+Mj;@6*0uN`EuxQrxh#{OWS5BQ4d))yTaw4gP~cQlU3h7il?p>^^ddef zxqx|0zz0-ZF6|AC23^)cF>WIU7lSS*qDSTOaAU~YbbD?bv^MP86c|GWcqbiQhXvoMOxLQZtF$)V zk>X15hdAWFBc7a7^tA`aU5Y3yrW((Hu|jl{4fRO!lq}yEv=U$Uz8x3KcXkv?fe2NrC#`Ud$#wUAD?XuvjyGadU2lu zn-}1zM$ZH_TaOxGJqKRf2jy4HrH~9Jz~7HsNS$Z>d+q`fwd3*bH;%w4?;^OEF5z*8@8awF<67Aq(@-ldnUeU$m2y7v!U8 zD>f}u=6yaB5+%ycm)&@N8qcQVYCP^!$Fnt6jpxym1k!&RkCJzxPiljf zT^wI!^Zx#}6i~p73RJUeGlPHIr&hp`8s9$;+$uFQ4)BTUW$mnHkOCmw-o6Wo>su0|6oxF-lZ~fG~off}#?MOjxq0tO|%q+y)u9 zQN(UY)L=864k^k)bVL~y_g|SA7sg>zSrTBj8RQi(J13fXu|x#BmAkq5-S0Q*RQ z11pdYw?UKI%<*%v8{WbT$LOsO{q_7-JaZ5*J4VRHdE!IP0toM19@n7 zNauV6A7KQXLCm6@>Sap)3Q>l+?G=Z%qiQ86Agqhe8Fw0{1IC49V!C9Qf62$lK;wYO z?@svW5g=B{80-ZA^(`FV)C(do+T01@#d*CudsK27+1)nakJXwSeDcZim6Xs$qs z8~UQTjyihI@sl?&*1bsC`klO|*?aSN9+9f-X6cct0jcll;Ey!!vm# zhln55X^Ga6>VSnnAx-z)sCeAaB{AiltfH>)?rDc%B)6(C6>iI3|5EdVJM=>SHj+QW zXb~PdQDPE)>fr+$I8`;!Sqk92y;V@e=W%@$CzSC+eoQlmJph;}_^9_h?q>}f=|alu z58xN6nwmO(F#D3!cU2yrbbV0Q!swg#F6ndBr(^pMdQh4O=m2BwXq||AT`r9L?4LCN z4p5Q%ihRK{>;>(&0C%9xg4R2tZs*4?S~E?wF)uHo-3}CDSN{B=pqM&p6n<+7-azh} zK_oVDyrN%ea=?ugg#=rM0$Y0xwop%d?FQCFDNZ-|N4LReHZ@670 zuS`$uZn<8i#$$<;j^b!4?@`@!JLdFuD^Gw!rJKV>aX^^uW9j#^edt!c6WydGFl`Yu zKMYO?|JD~At0?VCUB5OWpK|yJG-HRL@Eq*a&gSZ$sE6rncS8lzUTcq04cQe`5e_Qu zV|5CSLfJD<0q`XTL@Szt6s@`R1bpnpK}ch?j#F&Ml=+;oXbj}s4cyBv7=RS#95h2C zUBMtS<^tG*Js*l*G{buHr5GN=4Z_Aq0SJZ5uN5%~_aj<{bv5m)B2JT8^)7_dowx|A zyEszUe@!ot0PhEJVDkI^D$TgW(?3>F#1ZJg{;$AzXBT9%5A?9rW4Q^Bnki48>@nqA z_$dCC*WoEbaU?$8eUkY_fAsxokfcsuUwx9Y?}68{ z54U#2WePIbT{gWq3pYA%VhiH*1=&cqGU zO#Hh@X)nN`7GYLuBPD$>z9LBak?L$14`mHgXSrS#ly=WPwMP~UC#5)P2ICiaD|_Nn z3>iY>vzyVjP=?s4${;Ucpw&D@mcN?`oa%3`7Q}|vvJwmi;V4uZ>|~MMhvF{-%5bAc zsIg3(e?msy#9E8v@R(SOuP_m)KxCqaMq-`%9uUZ?=vu2A*&yy)pb8w?$kzS>%NF{o z8z-@16h7w#Z7INxG>l`l7H$HOe#@f&&w)x*fR!DIjpknT1|_ll0sw$C?PHv#EhNUQ zBb+7~?+JKxr)iXS+6c2yihS(azqC}-Ya$4U*W?Ay;258pgfS{DeH>i=pr!M;WmTfR z-YO+xE1GxtQB!?FE!!tZeXMJ2Q(Xb6D{l6XKwaD3o1NWR#vcw!U4LhLE7Ra%xp zu@I&L3;=EuuQP)Z9i`_dV>(2TOO)ais9C%b%L7j-LqN3W(<6!`$SHi9L2ASu?-EwF zzZA!9_xOTc2kuhKFsRDH4MNCSeyR8X#UqjviVE)J-BbgR`>(?l3u+!2YSo zp!l=LEP`;Ea<*?I5mfLL@`H*m14ux8hahDQB$^Wg6g$T7mDLA?1Y?QMdFm>mW}IK! z4O@l3rf)S208R1qKfJejJpD@a6YL}1x#t8I2IotNKI-3IApIb6srY<6PcuaU1hF+w@;lMj#J02ps3%Kmb-aPjcasiR0#4 zC%H;)<;;lq+)_-N>~`kE8r2zBSo;{T^ICTfpdK4HR!J*PoNuGU&Qyn~I1q!{A8 z;KYJ)@gPJT)uPQ~+DTHjwNM8A==byl#j=JHa_+C>N#wNivdt(NYGh3ie;KY}e;lmX zXDy$OcO0LT(Yg$^(wLjl{{l32(RpR$d;jV zT0PfBqw)+^ElJKd@JU@ux`}^*zs=-N9s?Rn6TDE%XNVtwveEaMcNy|pQR!jsQrx3N zC@fwkm6tDK8a@F9EEyUT^JGPU+A0ZYIzg~RK)6(&^@+fmgpJv|sMK9oVlFNsXb=aq zd^l@GWM81GT^y$U;y;b5y*^0M6LIY~kX3ainVQHNRsgfg250tdcH^~#gBnYJgScnvS5iS8>5DC#%UgrxwXXB-e>uN+lKt^ua8rm6mQ7nH6pyZh+ zHT~myoU+;TMz! zF7$UDmfng^K^BE{miawN-5Yxq+nowl!3sZter_!%@=_GIz5%~7=ZeNNYEclmPaBKh zXs*sxiCidKKAF?0#@-yeHIVCB^qtRS;2q5ZJ}ZBtef8YQw&H} zn*W1ZR1H{AuA;7hsxtsPKy9S9>8K5H=gFNSQuU!)flODtDnn|9ts;udkWrMLq^ece z^hnuljPr&s@$vTgAIm?X`l9Gy7P}Co>Iq?;tL@=D$CV7J}Xtld*DA5@`rN zt7=i*$^9D&sqPQNqZW(y?>(aN*;jgN{9eG-&Zr4R z{pBc90Ci^&HFIic6<@K5NR_9isgA&&-&y&K|DC0A{7HC&;M+!+!-;QCAf+(zXYiE}qlm0xqq#o**44fi{`ic%d|2 z(ydU9ZWh8VkYeqLRW7ii1|uA9=6yu_Tky|XoK@%8_I5Z5(hF_oeMAzJ=6SFf?wuoT z+Fx9LBoY2fB2DTizA7+Sebqtgdse*k&ZxQJ};B9wC z`66@(HhrUU_{F=M|Dcsy&b1*%!?6D_|&R+4)Gf~YnT%f;ryG~tjF1e z;NM29Ak==Ms=Whir}-@Lw|V*Lh(prRUhxMO8q_P%-mWO+BOv=#5q{Yntld@dZD6b@ z7phI{_24N62)KhZ;@GP{Xz=i>5nTI} z`BvkPHZoZicYR3!we-z^`OHADp={jau@>nVrna;>6EJIHA&UPS+|0R9ONDh@G73`> z?*20g5Lba-#q@ThYP(_@s}v3*{Q62qQ0fzI%fLMWk)DuC=ofG97}zLDqC1kP9ASIKnQ~BkF%j1KSZ|2MzRLgsIG4 ziN$Wi4>9x(#D;cGt5$GXLusRO7AwMa)QxswHo#7Oh;!*I_)gYMB}J?B0XiMMM7$oI z{tjMrpGSYz)aS-E3LflpzV7n^WF>Yq+0HeMEmQq%!@k{R6_)VUwlgCKTZaay?DmR| zYQ~i5lKc&!KNDx`)W>-pF2e($ak?*VApdghfa+s>7Ko_n z{sE;wVn1iK74Ehhbt8^f%R6(hf#swp6pUVnEThdIn%!R6BNb8RQ`QOe;v(Wqf=>lV z&2WC}(;8F!ZX`o3R8B&Y>5h?f(0PD>j#Y&5mrvSHyRd*2n6c1_z%l5P>W1PtVqE#m zp~~jx5+o-x8zr4H#WYuPr*=KG5WL7d1-JBq-a+fN)GnU;w_xmLD%M&Po7#v;cTN%z z8kK()foLPy&4sCTU8L)B397Xp8VzpSLD5<;*LA?LWPCOY!$>q{6u*ZB4j4vf=Ryu+ zc0egK*b(*N#V)HQZT!3oC?yWj&~(x1Ub-QseYZz?{KRp4eAD>~)v<%W5fJbtdJ)-g zC9>yl1S3D0eK-Oz6O=~zJ^&cj8Qp4mi&n2qX|+UJ)f!Dc$gj2uR^(gGH;B3ebVJ;5 z*}PMxSI!9M&^e?eOeMze1lH*$Pi)cT?I}&R(M|pp*;@`)R*|6BWP|V^F;}}t;8dVV zP!=7paYbV-;pLk~FIHKxGL!)AeaI-L0Au7qga&B?feFWBaAyaa7Tg|5Zk#L?EAX#2k+wMAhrn7YL%b3m4t6Dm&F<^w9YJN9#LH z1NPGQRv&ksF{M3ScYfZfCL8rwdn3mqsxo{{fy^q3tGuY$0?T_8SnxPwogy zC!iPfB&uLp!D)7Oo@k0ne$N0jfMFlq2I5^k#%4kb?EL2dFPHAfd?^+=FYi}tfwUU` z1)rD^dV$PlD@+Mq(nN=18OBy|dj5kGRk9h%9j^R*#zFgWqPT~kVZ5O4OQ_SqK+y66 zH*F$AU=;H9>^$sdj2v)+YBXJ%qgg|)wQ*jCsKEhIm*QNx_b7#yakxu96cpAIg`3uw zk+Kvl+@U&G?Lg5Q@)F=n+r`usqRsobCXD)p7;*ySJKYs{J42*f@fCT|tWGAdtSI_;Y5>&vKx(})Ut{1!8&Wbz#c zf!5eV9>`VS4LBn3bLHi(<_<(FQbcZr`_`do%Tqa=88QXXy72KXXbQ`CXQu?UYspkO z-@}u4)~HyaTD<479Tu<)*)11ftSuW~oq79+8zpz^Uf(fP5o2&B-D_qAu&F8MajtT| z-(ez#Uj}vqjY_f;#7RQSfMacnul|Aps}Ig)zB9vaGJ4vKKm7> zNp2-{dLbo#F}^#0g$WAn#?R)%zeE z3WA=g8;4+qD=PKd3ceKtu$-T&-3j%UCgZK>JL_1-KG@x{LDMW>8ms%;RNOtSLd{xj zk=(_tM)p8Y_zJ0HvA&4xgchPXd2;<4Fdm7U=6WIEodXy5Z_l3~ZGZS7RN)6Z3bW&` zx5Y?VUnD=%<-!(^yg6P;=YCMOU?#%rKTMaDmYC_aNTO7CnK-RANp}Zc*cDg3sks+s zeG~4uhGN-aEypF7%i0xprlj9CRi~2;#d(m!uDCBH-E_;hVfsHLeL+h4ZEkuR)Bhyt zFQ=rpSM|4B%j?M!Gwq7PXPY|LUlndA=HbLOcE!q+l7^c|i6oJ0S8Pa0+>3)07*@Nr zSOI;B?)Hl9OvHjgO#fICaqwqGVtSo-Lkpo20_T?wVIf}6nM8V`+=_z>(#9; zcK$v^&gnq-q;tUz+B!<^weXpr0#F_n~@nJ6uavm*_+Lfn6c>2{X}V*k(YeuR^;x7bPQq<8iJ8GV+)3 z*mSC=nf*!acPWC2c8M57~NJf96PONfDoTouyhxpr+?II5AGNjr5a8?yvkOs z@DEV<6E?T30T@>U(O72Y){7twTPb9eAWXi)k?yz{IpxU9l6tgz&~v2G$n5by%qQZJ5We`2 zTc#>4x>mL9!!d!qpfkFi`sm4&PKnlnDNqL=MoFhi+ph%;bEm%qCz|Xil|)i8SB}+y z6=tNS^hD>=LE!#_TZJxMi*1c$;#}Z4j_IAH190i%wjJQ{4PhTMuI&LNh2dU6N<5du`8--u_$p}42DU&6o{ z1mA~~JI@1&Jq@ZCcA>lr%~Ei&<$4HVmGXexc}}LCx)wSQZczMBtnacsI-?$;Hrooj zAHg2eFP|8!gqWAU*@3q8aUH{Jb;{=agbfXBW%)lIY}cdmRK#?QQ&3Pdnniu zV{A_=tay}JqxXToMh+$g*^SYS&I1cjN7F@Z!dnz&dGwXS-|X;JuM19Kbrb&xwa7a! zujjx@CSbU_|3TDCuiE^5p|&P$@QJ}3)dy^i&{kpx89nAX=~S$vilX}V%UTQzjvS57 z?uXeoZ}konw1BtJyRv6b_LeFke!Yy@OV_`KUQ$of;8z~cKGjQiyKyV3mo7Gj+F-9B zF`PZ@@AeQ&LyHr+UjS(IjUoVlc}I1!&Kbf^)?x6adgXnWA2>#-VGkog%gZXzL8>^a3o5v5o_^C2)PcMd4x~1`Fc^& zaEtlc52=B|OB(lH1>ZKJCOuyOMxz2ocXue5E>B=nGq!!r@n-B?=?{Q$zH8c(E@Mc_ zb>^tF3-ilPNPr%7mwS$BX z5@bK1S{c&8kYTD(&c`Q+xTBdooPE`}XovQJfqUq90FXx{0(`E_yeed6-WWktpS6{Ufj@GaT0RWWWe>AR#|v`Qk)k?b|Q&pMT8 zgHV!HiK*=QyXQ#GMvVloohPqfC{7lzE8hAG8bH23s)Sl3H0QJ5s|wy|&S#&)$|naD zOzDfReJm>B3Vr5w*e2JqlRkAI2Ha}SMvjYW0hmQ|d89v}VJ?(tU|y88A7iL0y5}h1 zF44+j(S3ME4LE?xAYJMSf|xwnb3a^y{Gc7-{Zay>!XzolIPU-l#Wm3LzBkPtcW~Pie$n_gl6Hs&&`i8{=@FUL$n@ z06no_h!rEgg*HUhDmr6J3^vxbR| zzAXhxKAdJnGr_v2<>Z&E%1vobjX@3I&2pJi8Nefm@FV(FJDlU4!rmc#T3!HW@EC8# zS}a4F`=vW%nNDTJxjMCEPnMLpbI!xCbO8a*cFX?fe%+cXE8sX?${LjkA}ACmJyorI zp=`h(CrsYCx_C^S)9$3rm zW?+@2ZDSXOWsjj>8mwuT{sJK_*zwXNe=Y$u?sJEqMh?|9e5s*xZ`M#UN#|MDjd?(g zi9x?o3Vp-*=U!4O+sz}TTGZSJeS;up3njyFI{8D$h#u9xok|3V(t_W+_ghYG+5b-et^aqv_^bW@ zc)j$0O!NMCPwoGs?@Ryt9k>4rM@s)Y>Hbek`j0n+ks?oOd+Twmo9BJtS~qEYZrgnB zQrEj?c3QoTg_ zXH-@aL6I~Cs|I@Z6)bq(!K3}}NjGn`x|{b0tnPNjqc2E(DMGO`V}pdxtB6GLlbGMLkmfEn3Btmaiq|4jiuR(!U^Q@UCwBD(eg2gAspsdeb?8z{ zD~U^5FHG0t=Q7ZIelDq!`5BNhKi_O|=jRuwpCGD}Qs?Jakk7*(%Ig{2iaVZ}zANHu zYBN2Jlt6~d`+{H14qyvHpKCboc&8|S0#|ULE(8gz_tA7&W0zV>XVV!Z)M85;TYSwg z12RLayvVavm~3odNLcn$5$cmBN_f4u#w}QS1Nj1p{f@7@@U^&B?{1Ao6ieiVi@`G1 zkZ8-DG3s<@;*$cQVn1!~X9fpq6 zY)`3QY@7>i0KZP1lDm|H!Hf7pu#VV-;>lniq9axvB|*75bsA(WpYxn5Cq6iLW8X>g z68)REA?s2wCGUtx*)ktuN}y8{m(l*xqJS)aBT@=isWx;RFA5z9YxM6JLo$uoSlNZlQj)GR_B*w3?M9DttO8m~ppc@W}Y zsGzUjb4bPZ8QwVVdz!Rp2S|YlF8RCl1W5<;>m=cF89Df6a29fRMVLRO0m0Sm!o@6YTLX)aShK^gJcI_1Qa1j5HY)baaZ+V! zTVv2x;!#DA9{&Y-X9DbGVB8Y`u3Zf|6(ebHwS_E@vM@C}?&t9b@b5Vd4cXMEvOfpE zv-9v*lXtW$o~;FMyp3)x%;Gbn{#)T^`5{`w?9naw8;fqoUyK4mW1W7&dhd+JAeHSg zVB5^7ga9>vRTJ4wqw+h*Z!mFMQWK7wFdHzi$FO8F4_@SWg>-l>$oy;upNMXdRz~So zESpc3WXq{FhF7Z+sxpKfN1|>1j*@^q0M8zAtHx6Fz4dP^`o599fiJ|nkuUw`!u}`| z`J$C+55mKMT?pE)s(j?5I|vfCZ9lT%X+E>x_9MmcST`3Amgm;;y$_$w+ZVA5z3^fQ8+I!l)`-OC82$GVe(R61|;MNnHwjzQyvjAX_O0BfxkZuUAF!G z_by=5{mAd^JOhV)$}i<-pS|!qwh6A_<#T#;CpiRfvTaGjJk3#GP71GX^B-hCFVw!M zro4?*0KtITtI7(=7l#B`A>~{t6gmxuYVakTn{{5O(~!j+)y%f0{DyOf`t0CP9OXb@ z@Fe`kyCsv!b@-q3u)#SS{sorc9Igs%f6yrZ0n88)+UoFQyR+m3$6=C}6N4;4FbdHe zytSOzO4!VRNEg2Vg>cSRcTpvRB9rL zNmn`iN0x&Ts_$swcaVtV%c#$&gJ1ebp(h38rV&?4rOFDfq1h~bNj^Jdl*4HSnx}NC zS$dH!zXR!UI(8fQ9yKeFDP+Z*!Y?mX++xiy*a!F)t=nErh0Ayx zf~};@=w(IOfVHp}%PC-x6^qsS*3$*?&p}7htTla@18cEs?ceeV>@iZB?L7)PRBqOl zUdzZShh8V$C>d+5VKb3fyTl2p{J79q3kzE?Q{Vj3$eUjh>gJa{mWxD6O!cZ<1>AHxfm|OQWZqj^hbNtmMvkV*1}x8hjUN#1&8J0;tMM}fWx6oO_|aq z91LBF{a*oF%~<$HKfL)e6cRHCg;Bl^4Y0M_v1mlrWJ@FE#dvATgaT@5$b|Lg??;je zsKYWXq=)4!LINC?tA00)B1U$_S1Y^{>x3$s)5?gpL#?t{4ifE3Pl2UY8J+x9k=kF}4Ks>6qZ^0iRL|^f zSIl3Crci;~>F~#pq_La$h84k%qcIQsg0#*Jb^^9yQ6v z>q}XJx0ganlf9ULe68(5Pn=mCAco<&HwD5V4(B9MBT7$aODCduqKz}|BhODtPCPSd z3dCxQ80-1nFxH5(a2+&Lk_>=^5vG~#%n}+F%pCNzs=57H^grdVjmrw|qSr@ROHsdU zRirEpyZWnHWh}pnKZrHrg?>gv7i_m?Gys1hP@$hMo{S^F@({wvtMNS(jEl=K4er9U9QQnIQ){h8B2-uECT=h-nb$wA^_Gvq4JN;_)sV5p6QMc0wY2C++#;|AdZs z=2*^5z(fi=9H6_g~+r7l!+=s%5R-=$=SHkW5PTDQ0 zgo)RlA8OW`?CN}k@J@7VJr6yfh5Zp6Bk69*PzWDcpj4Edvq8S-R$gK}vWG@F*KVaE zATEMqu_8b?N#hleIMk5sm3Jfb3>~akKuwYQ?X;TkqCk#~l2fZtZ6~#19omTujfu{x zCg(TEM_WTy(uu7#}k556IYRF)$2BZ8RkYF(+WA0z^z^{3M zC4ta51i&7J^#}Rw@KSBXq-YL`imWBl1kZ7kZ*QJFRV8t8IGb^Muh)e9rp*8FY1#VotAco&i$2ptmBMArCqQL%Y ze<&nFVhn}fSj(j?ZXsd@?34>!M0s_t0M}3Sj;!If3xxCSUenF8JH0Ln%9bWdKVWq;kftP9|=#6doOOzDdms;gm1VJ?CD?@s;3W!QIBn4}|`k;ctLw7}6eUi>r6Kky80pW(^5cvWZlrf4Fs!u0}lR6(m zoe|kv@&!kP*ARmK;3eKrLTyknEba>5r3MzC^L6qtsDP8LkW1<+LR|pmXw|Zs*Cqr6 z0bmUKAYda;U$;$22(mfX0%ug_m}D+(XV%0or?#aj#<)qCHIPi#?p!}a7|w%kj^raP zb3AZ~M-r?WE*oKbCA@| zH~>bD-Jz3li}FHZykpiYq8NbofvMfmx{YA$Q5XTSxvU4es>>?)qt61DBO%YsM8+F! zgc=6s|5@w}My0Gh2$`*+d(wP?j8YlZsmXOm!Jge+^3Djg5;^)ykdDF8?VQsa-vj5@ z45SxJhZ-ya0R5JPD1i&$QS3Fb0*zDB?#!~=_Y!B|wUq;}0?5k9Vy}}*l<~_skRkMW zm-F+x$hkjs3&vsNs_5k$W}N$c_&5&E_p1Ag42;)oTwu@oIdZhs%->iSST>QGG-cV+ z1Bwl5lU>eaJlY^w+cB~sJ(5hbAM}Sd&>P(-=W#in1%a+MZGlyI&|1v7FjnrOaAqx* zx|*zRQdfbhYh5Ik9yyw3&-4eE*#$qtoIGotb;Ch(F?#}A^x``HF6IcV(_w<@>B9al z1^a-dpav#<&=8^JY-45N5zA&d;SPYJmuKKMH87_Hi)A9LYEOJ%$%Rvv?0o}fobhjV z3&uoW1v;3G*7PjR{B2q7a6^1Er%D~LU=?l-`~SW{%(Lj$0;o_{Wu8qTQ`d^>x@amj zWXfNZm1RA%BZ>TB4YwJUV5|5;7g#5`EG%XwHUE`D*qGwzetXefQxOy@|1%0_tD)a= z-bjwpcx6r{<3{xaL94h?B5VHy)eek!tQMbT)BeO=@@0vy|(rxgER%BSIL%6SzmuNkRc4pbcq}N#(L3bf9a6^sXuEcp2?=muHJCuv2^|Xen zMq}bUJwcDukloQ;k)rXOKi!Ns)DPw-w&mJdEdtNkNHI$ED;Ja3X|cs+luskC8f?VX zUm^{Io6D-66ICNX2I+sF`Z=h6j;NpAXbBgpB8;y14MeJNVfY?9e>c0R#2!5-&Z+w; z?hRH)8r=PtI~`VYy^aLowZEHRHNw{d;RWe+%nR*fjJO?an!6v+hwgm-XmUt?TJUUp z?F1ka4F&d!)A*!T2l#3FoL6G5j&LUchEDr~XW?%vgsFSxHsnpTwVw&$mx>dX^hF;k z@`Pjm0DjLLuEjcCW2RyOz~d>)xn#T2y_rqB7d!I4g;yo?mKAHtzg zuG!8gv<1O5Xux(%`Z$8XHbB_3?Pp{-pcHtJw-`=c4Tb}tCgWGDhFZAYi)s#MA@NJU zqE7G@n;Qp=D5EprA#|NH=$}xMDmt@fnJ`bwO+3l`C6m~h@1Ny9miEf(c^mMSPMpkN ztlYVa8;}ia2#lCqe-?sS|d@J5T&oY*RA+X=U8^zeGZapq((^AqdDxPK{jgpoE}L-Sk&lELc* z8rXN=%~yEvXWJD5UQ}$ac)1C@?KzB6fX1xDIxG8}PKW0>7MYwk2J%q?AnYS(8WY{g z%k23VT@5& zBJxaTWG{$G9x7G#g0rZ)EIfiP*$Y0D?_{xd_#A#02QAz^i=6Q;&?ny6$ETb4gokAO zK0Imvp{Lfd0nD1qrFw4sC8=^va7)_uWRxPwef%1XcNuOyiLYUzE9aQ7oN!1uR}g+6 z%YVNSy$``bW6@st##CFyw*nmnp5HE(2VvFCO}mfW(?=Exd>HRTYW#5}+;1qAs)Pb{fMxjC5>kdyQUR*AT`knih=??4f-p3#ro&!o}v`=nz(*wgal*vUrlU z9Av}j-l6Z8`mN>693FCx5#>Tnsp%=ySXmwZ!4IL;D1Q}S|s}s^d{v_Wq zEb9W%4z~6iYp1mKn~S?5TjVh2!e`%vkacditP^k)uN&F z(LI@w2B_iu>(gXzrJZ2~60$T#ZZJ2*!$<JwV2;b`4%6E z#>mj5_Tud%kJUJj1`gWGD&EdB#h|pG{|wIOW>Te*Z(jw9VyW29EZ;;iSe1M8ljzm1 z(s}U z4xB7)a#%OuMO--zam62RR*wr>1kVD*(dH#N2da^LJ4%H8?3*BeQ3$^44Y5sX5)BN^q z|1gzfaGkNX7Q0?Y6aR`-Z;2f0FymP~zpLOJ*{~&YxWkMS6t`9f9?#JdrwlbzkGb;N zzmn}2@9u|NRfIZmo0A%=8-0vSR+e}aQC#42Oe{c@898{^D9=6w=7CLw@-BEtOoVpZ zhZ4bJ!lMaj4Nnkg{HAHhM*~T*GluM*_-(61Ou#@Mp9G0GB#~t(N1>;5S-gvI`ujRocEvsm_CULn^#)evR;MYzFTJ05n?3$@_nS`BQ*-4fcsR z(Bcd*@eBONgZ%|aw1XG;8Tp8d7O_q26y6kkh-C-&bM*bpRF%OVp;_RsEiI`m@b8eu zxU3xD9@sPl*?P;0}f|m4{iQ~SU4Dp>g>v1(1 zMy2Jo#Y_giTZ^TLqKGqP0VAg(McB*9mw|IliyqcHr}S}DjhQFoc{c|LWhg@nD4;s5CO!lorifhHK}krz;c8L5S`BoS^mnp|(7O+OW)<_pz+H}iEGiPF zl<45eOCyE|PckArXUuH?b_DhB8H3FD&1E6jE-Nu*JmZROkR?jU5E-5TmDQx?DB}l) zmW~O%W)&~8LeKd>$21bBS!Q{O8o2Yza}c{^`9+`9(q(SN$eeQEGW3}1F(&bkn&{#%al zrRp5y+!vut%L4BN(3llk#XQ4CQ^o=uMdJJ&@^C?ailAQ1%JC)ei zK9}@FFVmwzyXFSm&uXW!Ud`;^!v;MDf0|`ezIMMZm#>;0mvfZ|Pk|G)Gy&+@)A5P0 zD*~1QZtbvqkK!kZGMa#?jTxF$0FLQD7&oS=oviqYUH}`c4nbri7^YW>qLgkemM=8}7-0fAe1gIMsQ$l-kmAEQGWiPyGmen{;? zX3#~%cxczyMXWg8Q)WDRfL};5TBCngQZSD`^ z+ABtx6IYv~s~mO}R*Q}Ng`CW=PEaO$l%O{d8zIbK`S&>&p*Jcznruo^pp?)~9>2Qo zuwY0Jk+f9Yrt??0vgSA@0yPH_1Hm4o_(qOo=!t|2^x0zASoj4M24wtGp^Zd$;Ug}o ze&#jmYMSuh%M?(a3=7!1=$iYv{4@v?-ylLb3>0=*y;#TA0(!~#OB@*@Ao>yHb`hSN z!$Su|{6BR7V(PG5?jafihl!Ft2RA68zbF%Y4KxkJ`vp85U2v@p$f!=j^#-TKgg+lI z(KGni0#G-wnP|BPW;u}4y2!yV4ACCsII#|vbtamyiZ?Rf0t1yJMm*2Ct5`)%@yT-4 z%vlw)xz*ZoBj}jm@W2L4t@(*LdNb~dsCXfy=GPYEsPoCw@Br9luQ(rG4{=^9sX!qI z(%(UvN_hw3lP}SwIs61Gu87niPKi;z3mNn_(#Qp1q;0KSRYM7co7!2rfld z>`D;{c1|J92bc2|fEI=<2j>V)PN7p+!5l_8?Xg%0gAXTyu0E}s`xr-Kj@R7#i-cw5 z>!$9Krb6wc*N{DbwZ)I4(x>y#S||;py8?9k7+fb6ybeIWqo9V)H{g*DlevoYcthxB zgqhi&*sjDJm)_KTA%4_mtCg9*9afvsTS7gknFe~rXv&048juScuuwqq z8*r|SBZqMk;qXRpr-5PQB*n%^=D=H;vXw@QN|MgYe*(7E#AVq<4T9KmB#W#Oc-cXb zMq9R|Hf_qWB{l~Js4sqMW7f=Ih}DldLuDD*xX3v$bFkKgUYiKUC!CA7$tv4fXfyDG z2nF;8!vM4QIc@&&3u5Q820%oD#fbQDE?Pl96RnBfH}QpCE32b!`sGL9ajG-F$F{5; zszZg4Dnu5yBr<>ebPTRJ{?V9+6`WJC6{W-n!|8&W(aW5oG~~mQU6K4SorK zA~}pqyFdO6=8AOov~@8I>ZP%KV!G1B5YQPjH&2k+or1fO-BJ;~??L0%%z)4UK&e81 zkp^T+KYD~ys}?ywf?TQc5C z8lz;ZNHX*si?$aUF)Hss76?XWXc2>Ohu^ptqr~(uOWXYvaWI~7lJurdvddPf4GpDk zO!`R{fd{1&W^}+(cLf;3lwGB_tU?pSKjoS}O%Q#NP{1-=1L<@>EEEu>nu;h>YnQifClfpv$k&b4 z-?g&J8mvJVo1xvfhj$&?@_qD8^l0cjaGM&zTdQob|XL__t&sGc&D0kHhmJ z9XGDd>pEm`*P)^M!bmdnf$vw5-+Z(?3J-_;iS;=X>w_nOCs=t|R$xK=0MTJ$eZtW@ zA$MV!=g>aIcU~r`R2DLisfftqg21tg(!o1s^tR|%y&E~^S2PV1j+yi)~ z0yEe%F%G`Bp$0@7z~;Gs%bEH0L-Kcr-Zl5;Osos$m|GIptivb(`5s3@A7hBtWtmp` z902+x&1SLdA@I%#tx)i`Ce|g^qg6OoqTH8eb>xf2>Ub+Fv?rR`3D;MSZpay37i?wL zvS;ffUp7{M%S0>l6!Z+|a!}}NGgke5Ai5Wq%};c!8MsWX(d=3wahpE+`oIqB@{AsX z-bxM+B!{OZ&NN(}8<2o2F96@Ko@9Pt ztSrbv*EhAAW{%0Kb^?*zxFanP>_06syQ?qQo1y8-(N#!`D`VD}Y`|pyu&h?0HqL5L zQ{l9n*f^WIYazv92KlLb!JaH&G2D!hUr=*2scBd^`xO zwh`4GkN=U!0et)tkKt+Kj>ZZmb0CqLDdc0TpT*zaXm>ViD|gF2QnGXsjHOwZt!%OP&>} z^-nWLWKk2~xd|+>D{+<|tn`GYPs#D4IB7E(DDG7xoyzJ$e*|F70q`j8;OtuhR`~@+ z+ytC3!G``zJadXVkg{;IoIw8;^f$t&=FP{~|JTOX8}}CcFUNN+u=Rf!-zOjaKaVf- ze;6MI)?W=#yaoTg1I{>fnUp~u$KN&`!bPN}Pok?gor+$}*tE!lr{O}I@YpO79r~dr zX!PGWk76H0Ae^`sYUyyd+{z8s*la5>$5>f(+GW$sqSL0~cUBTH^KPQeiM-#I&3ny2AejQ>JRl6lrGE?$reQW zjf$MrLBA&_jRFe40WMv%z$%yu;t+CRH9MWtr5aKPoZ*@%gS7vgTMbod+|k8qjLNCx zXgRZQowdv=m;joZY0vIs7dIxx$*dzs^aaoX*0pJoQsIqNY5~&A(8?<7GV;f1$ziAE zF;~v8uCwCOQ&8e!p+uuR38EG7bVaj8P<%r#!&YgBJEL*Ld}qsn;8=V10JhvS1>aKS z`|-N2f3&PCh-eSN9e{D?M6T3|I5?~|JZ7AqjjGT|s@-5u%CVu&WU1Z>N@p6P&rmE< zO9o*z2zw6ku4u`{Q@tJlpWO4T5Qk?nYkOqXK_@?hJc^6Dan7=@RhUU^JtYoxzA%H2 z9py2Lk3KvS3l2Jd1Xvc^f)0Z@3Sl=jhu?ZGMN;9~Uq45#O{e+zKT$+;-c)=|SM~r% ze$z2q&X33i4DI05zX(OlBGScTg#je_l$H=HRF;iGX*^a4s|u0|mAG8kRlQ}YpI+)G zTmAG`KYi5CAoVjq{p6~j!RlwE`pHv2qts84`kA19#;Knv>PHr;Sm9LlcBA^aQ~lg3 zKVZV_8-|G?`JBhT;V{h&p%a`RUx2c4Ls}f`n-9NM#hVe)UvMsg92lf)+SXXEiLTcL-}tIp82|f7w$iLL{Jcd;SbiojJD1 zo`3!kK8(V71=MI43dfo(ahXa_=8UffcNZzFTr6E;NuaxZ*hlS!Y4Ru=i=~;(L@u@r}K_rq5ZxJ zu1U4_+?BVe`dVCjHd~+^>|w85!wjG(7yjLVUFw*!nAtRiqb~}N!2UP@_Km;JFjdjX z_S}!%melUiBySQdN)=7iF>T}yutwYxY$qpfoQC}#u#9Q)rxg; za~ zRR?YdaX$0K=94y4+B3-H(YGI*Paw~E0VL!$N7Px)>a_fz;YC3e_V6sQl?a6g72gi> z1=5*Wrym54q@;^HnTwH1Iaj z*%+|{_ef4N?plxg^D4VH_~DDzXX`X$(w4o(l&yP>YZjb^Z+nf&3(k|@jPS)O&$~#k z-D~u(z7Vy9ry1v>K>uyVh%M&C+MMwLBk~C(d0aqa%xWk5w26*Z{^n|@Rd1mGZ^_|i z>=DY$Z^SA&`B|)zV9Ck&i~p?@rc=3QVPXS+MZ3-ws6^DOA^Dr{g$>WK@^DUPvpvX0 zs#?+OTZ&^SG2MQXt>zf&#%{fUK)Yx z-*!0)BbrSh4fa*2UeI6O7Qy{XsJVc;8QKzEZ$yVmZH_fAlk$70&I(MY)DV~b&X;e1%iZcF#oi1u4D+6M*K67FN6mG3tn_IQ2R@_K+W6%ZA zyg%@t8PW=+s?Wdozmy4nVR!8u`KnvxPOZot*x^-L*4Sf^A=rq%=A1Y)t8%ASbJ+LG zGNQSEH_AJynXvA`+W0sJDxqnTy^^yF#R?O?q*#LVCXauu9b2PtTR*#wWPrjs; z28RjTI0v7`UI`{2aBQ0Vl}uOBzw31RJ(wQHDv-r^Hg29HwiRRm6U??;zYBnVwPry& z&j2ZNt`~n2=lQ^oKU4$=gDkFPacyX*BgOD~&TKK_;Hn^gcIM+!5$?*$%OfRl&N%E3 zX3MSYFTi%ESt*rb=cC1%ND`xjjbg31@jLRFU>t10&TJp~vX!xNde)q;e}O>k-!aXc zo)vj;vMzyn4C>T+!xL!yZGnc zBb@Cd&98VFF5)|3Dm?DS@NWuJ)L$iE|5|;YVTTW^DeEJ}s`~!&zo<_^n!W5~hc`|E zsK6a$AyZ78*8u8@xfrX8$F;0j%^%0xtiIr}^C1GPHzoghrp25P@aIM zTR$VS4n7jCntfgC;;7 z_$V;?z%0b<5ff=9Y(Swsk+Mc#==4bPq#1+P;yjoyaS@Dvh)4j685|fIN~Z~GMuYl> zT*ivVdl7m97Ppau{ncNm`D+l}n+M6P{A^g^2HSzbWZn4p{(BLV0}0IhMVh}_ z68Q3Enty%HRwHsH*;BrAV2i5>V2}v}%B{Co94&56uDzag$@L@87nTo-9sv>dU8kK6qoWEXua$+v^_1k1A^roN^!nq<9~xnC^lN;EHP9*zz`_Om&xB$nJ1?MJ zTvENX<6xdd_<`KW4reO7rkMh>YHk7fn_K660qBP9L9MFe-6GZfP)F9lnzzi#%1X2G zK-|9<*_`gxKezF(hiKLHj`g{HX_(G-{!|7Fz(!Y?!Aj%NyT~J5RR_a4;ARlh8gcL4 z4>JPhhl$h84^#O=_(6X*&%Ok(>+++0eKI^dnH}nq^WMyp>`6!Qent3_>`=R$ckL^a zvwqAud~ZKqR2J-MuiADU01g|xy=uOCqR=Uv@-K@Jgk*$$L$dE-dqgYZZyUgm#}R^O zj-Uxp!X0W|**Uxm=l~1!`89!Vj74HNn;yqq;MW3 zDqoC$e6c(w+2*CGH<5R-N70u);%UZOIoU1tkGs*nZ1{!FVQA@!E}Hq^4&iH?qtsTo zcPcSyC&Ub%3J>B^luR15ZpHxBmV}D#Ej6ExnnAS&t6h6Gs|C0culSD+32mR*Q5qYI zuZc&Xq*A1!a)#TKSP17f*q3QYj^9l_}BHQIry_tX<#IUL&~<#?8-<=&t`Kfv0ZMjlfh&2BYqT277{u;$l@q$ zUm1Wo5_JmjS=5lI@DK!`tn#`Rq%JP2+m6jALR|8j$emtZ+DL-#+$VVzID0boI~}h5H@crzhxn)fOc34 zVQ%8TK_UP8JJwI_TOB!+`#?vjJjt#+4;G4Z^VJ7-hKHVG7ZE{pNi`IKED=014sb;Fn`Op1yx0Rx!0W z+hzOM?D^=OonJ)?oKKe#ZM(QLfKA0L0=?(5|m;O0{MGRB`}RfygU9-zfp zrGvmeB|#+adI7c6AnJ7JHXw0#yVV*|8XNQ}EXRUJ_iu3?rE;m393 zwv3T=&Iod2Lk^K=Hud0D6qRx+AQ}$zumPnZl02P`(`7q=XU{*yJK{&_9$a}FbVbyA z8tmIN-L56F#d(#8to#9-C}7SMyVtmx*v9~JzPSzPC;hZmjlgW=tYOaJT8?Wo!sVb= z+^4+3>AKzTOBkL(JB+G*1vxeMwhiZA&>{3wY6F36q&eTS0dPz1qj{;$&Jea6Q#un6 z_xKISJFrSMEnUZ+vsQc$4#2cyqIw`>EPpp@#t%6^egx-m5|XfS?*b2HMZRujE~oW9 z*bW8YB#7k*9|Puc+Rk8j=Vz{J?t~g}sS~~~UPBPS8A_512J-lvc1Y!A0l9$d09~Zw zDK(>5ssyprN-2m{G#_V5K{Ltt-P&dQ7W_gEBx>107@Vjt{vz01S;Ry^Bx?h zzdDvLGzV{Ld^PhI#PXq&bC`?xLk?yuXW@1T#LX?DwKC)hyNjXFQY*9y(_Frq=rDe$i4NxvNBytwFzPjf z@fuk}6!ir=g>ATEC)=pJew>kVKhxbgtjemLsO9V;r)J~pgriZp9<5sHE9xGK2uZfh zZefPR$4J4J!(pkl`9u_>@*ye3ueS0L#`5BFsw7TYv6P+*8I?PGLq`dsod9A8T>&Vg zf<(R`qU-bS+zaDo9#`Gqan%f6y6fEvE)f|azv?4A=ts8d$8oV%4rHhy_tHbo*1ydW zco!HV)>uK{4-s0Z34yt!X`l%L-*meg*dX1tty6)+>cAZa_T#+@jYmOF#Mu&-m54CM z4PUOfLzK%QhmST9b->4ZF|3>!?2%bxRKj-Qvlk1S@7l}p-vSLBTA&JJ9-?v216&6j z&`n&UrXg?%ia9+#;1Y)&$r_Cam6`ewFD1F3relLe4siATKt>GdfZtExceyait2&Ft zh(Ac4{|6+?nrW?&l|=>;(#X*vM@Ag{0joiv z=ikL#`eMfP`ka0;7e9t4GrEX>mp{$F!g-la7BUxSTuBBKgm1`KK$LwrK>}r< z4@lwre?G(v*Tf`5h-zau>QGPh`bqPMTD*cstin$$TIc2ByW$Z`yl=1Sr<&+eKGj73 zu72L+k6JAE;E|$X{a;mAPevUoQi;8oRU#KfHiZfjIYQGE`{rDv>HKrNASXEiWEFN; zA*kZT<3=cMAlHpaoD?0qLs7pou2iM}nYFB8_f>~+yp~X~qx^(U{I6I?>!N0?gCKBO zhr?=sEqPxa!#e)(K`QIuOsBGr<#Dj`wPfAWSDsSLf!db5*`b0CYkiXC}PnC_{%wrMIX{nuo9D-TXrveu+4MG^B~Z=lCRAY zN~}}&;_!M-aHuhs)TJ<=brC|Jx|_~YJH`h;94_7NO)<=KYBwq0$yzR@uxvch9i=fQ zX$d)ge->%bt@BV8MJl86kLWcQWIxVg6LfToaJ@f8#@S^X5@N3Vdg1^5>E zE=lehw^0S*@?6NO@LV>)>| z=KKftj)qF-EasJC?3dz6soWCEp8y6?Cnv%#7Ftm-B;?G%-N-V`d*R5Thna?oXxUHk z5^ZS@$Pm3`GI)eFW}H1f8Tq*_&O*!@Z#}l)4GhP>KKW(%!S=q;ZHWiN52pD-Hzj8A zH+YZL&Kkq}7p2E^lfrG-vcvNY*5J{zSKKZVI) zHOnXd#PX$`5C$fwjul*sJaBg?Oy6sqm|xEbQDGD+OoK;UySMn9Nax2nxbcvG;C|PB z&L(`uZ3&y#Z=S?5|0Rlb7m`m2*)ycNbnqT5>pb)w5#ve}pMmM;%)?cefYRG`jHQ1o-H*_qbN zabqG!+s*3Vx_l|OUy{3pB`3Nm*AqsfL;j3am>ZN{MUymXyM47aJV11m(dPC_c8-V( z-G+Y1a6bO$;6I=FKTrP_;`cWEpN{{t@PD>`r^dzqQT$hyTlE*?FOL5nVKtie?^5^2 zXwOA_yn;X;LvXjwX@FQJtf_QfkSS(bG?Y}qKH9`@;HR=b)o}8cDCgxz{l+H zXCs<3ip7|dSV1~4-nR-aXi3G>j>Er4DSB^dcahaguLv-yu%1}{7W~D}cJ))Ie(L$d zqhFx8ST#FrlylY?w<;eI-u9?$P8a;5Le|97a$w&uTG$mgqjSO<@^|A$Wc7Q{VNh;H zq^#Z-?C=h|FGt3BNY;qjs320d9f3|n6|5LTBYb|9$B}B;9v6cr%bS(}@}9CPd<6_u zytg~Aqx>Dp(%Ag|w?~tRAdAiPI>9wW#uPE!u6VKqWJf%J@IG8?*+$!G5JmFq$axUL za|`L>QXHJXl}{a<`|i`M%{!#29CJK>vPeUpmNCcRqem#Y&_4-psv~rhS734oCNdSY zRR}YEWMdyj9CP`%mOlvnL(bJbWZy;|s(dy~!0hCCs?X6(PHQ7NmtQc9yK$WifYCu@ zi1;7b>NB&i0bE;Nlf%rzk=b2Z1+GpiTr;mFTua-n0)&!@OYCQcgSSxiVbQZ3$o09s z%6Xfov7#>W-VtZxR0wxK74;!Ko9UUql5XWqPN{EndgKuIu0pM?%coew zC!3c`YHEM;#{EkE3D)p&=H-&wEdPzE`O~anH*(+GSh(I;vCSMWiRA=`f(PyUk=@w( z1Nt319_=59t%h0%P&|vYg~T}?lMh@KFE^gSn%4^R5$%Al2&`3G?X))E#U5Xez2?Mv zJNSfL3vECCoHe9=5w)gf(DyBYgd^w`K+W*xQcKBTSzMif%EY z3z+}KIvng#9(#eMU<1IrF7Q~-ZXK#SGqh(&s6Mm|y^Ftwyjm^;+ zpNX{ypW#s5$sUV2Xb2UqY@U?@YL@B^**r8*}TdJ!BITQ7}R?7(ar$f^dh zbXCZNCmpt;ap($;c+pz4483^{uawpOaInFe4~HsSozHeU#;@|7ys6c;@{d1*b*tLP4#aD%{2M9KKd5% z3d=kETT6njaQhJ?kzXyP)^Naxi<9`b-hoO;BXIDlZSrreZQiM_UgDg`0TkFKXbu;~2?~>X)|JLo|-wMi~0S!*% zu#a}P&qw*qAS#@-G&3vX{|3(J_B>ugx6(nvW`5Np_56X2II(gj+_mW0s`#~kz4AwO zPY$|1tYwYSK?eL$1DzwgyH!^IkN&7e#UtocWpzuR)KD26OtlAYy~ITnC*0C3t1BK5 z68nkDYCTNmR8F{XO@QZW@os35^L${dQXI6VWnMvyU|113D8_iF&cPrg67KlGA z8pK{r9sFVIBKg~!{9$R_0G2fQ!?whd*h-JrIQKw$Z|M*F3e%N8Y^_dD^@qJ{1yND? z!`3$W!*2XFf7o1J!!#^CXIL5_F=K#P+jLeo8)s$rIA_8W90CGD)~Cg2>88ewL$lBe zacK54dBH*@I12x0S)D=yc!u^&tUB-;zD^wR3ziaUC%l!kl zrSR__9{=78{=Ef`(dB!Be*y3Qw|GSBbF~`N&=TCTvD`sWb>g&>>Z$G#3ze{s@Hcl? zFKWFw`P)Dyw++xTHypE6y@SsP6w%4PLM>INabendoTX|*=rqVmEtV>irK^HD(WF)8 z82LxdGN*ND`%C_Jl z)}x7DO{a`yRp1HTiS<|#a6&iV$;sb>6S_65(p}4OzBtf|902pfW4#A>LU&8BKY;+x zcAn6EQ+vN3*k%=F^vHZGnHNar(cl%M9^gw{Y`j=|Z{Po3KytH*MAPLP)G2edPU-pI zb;Z#SoOKqh1yL6q>&-AqDd)1Z0~qU2toNO8nj*Rlr$T>l_U%t5b7DsHA#{cJbnqlK zL!N}XVZ3&DS}uAP2doO z<$d@?nDMJ&8Kj{KV_5{!!AZL4rqb)+-_BSZ;(If8s(nw=oHaFa$RA2rV*}Q#w45KX zdSh8#iaOlYd#t#mJR@IJdt>EL>_fV}a%nGdC)BJ>q5n}Xn3Phpk_$$r)U4!!^L5Q< zBn;=Tf&g-PxbE1XLFiPO)V`VHl&0p<>w`Wq;l zteOdUJiK@mrf{?qg$n5EO(+E|Y7c*cA^YJWFecDO;wn&Tr9BU+&Ml)w4Gfu$h=_qZ zUmZ?S-Y!uF5t(0*Lk9 zqN?Ru+~}6-x8fQ+gvWNyfGgf0h4RF{NnT2ZgdDyIT}$yVay77#P4-^T{}r+_)G@@Z zA^GT$oh3HAQqM;nhqmCLkv3;q#xKcrh+zWSb6l(K-{48Xy*ldiIDWxeh_NG~gPJv~ ze2qTenFZOG`gS9A(x}iV6#OJ z{6=a9u{C>EAJ+UNB4hvpd5LZoLS?Q9BQt1f`(E&ew%~ri&p{R8F(-kG>LGDPotGZu za%Dtm`%ptUn*3Z1MMc}==+y-^rN0G>VIW27Ib2eevBE0D9UFzM^aWdVXHtfeh`j4Bxb! z!$8JDgPs#EItc~|oE(C_J`h~Bozw63UwBJ{3Iy1#0E&2{^s#aR$O~K!wfGR(fAnVO z5m}*)a&AtTF)LJSRdgdB(wdWM`>`v&xj>zhL@~xoTf#ieY7x6NN(zJ+#ImRaaO!Nz7|H4WF!8hG9nZ+Dk3ym7i^_K-q zoX)Bo!!3=L7v^ezB|H2Zp4ZXH8yhe7mgtpK5^6dC>&Pa~MV-!;*SSs@>@u5$Cz33hXY&f2h#k`ZOCfE-U^*n&=(RL=Di<)1WuzbciIbpM9Mb$l=I$5 z9!pasl-|o`WR-O1J=n#O|73l_bIMivbYpy_5ak|VRsi-#meWSxUtSYABSV+?77fBU znYfniAo#r)-O4G#(_Zj@Ir|#$sH&s?-DE=+ShxYB28|FjDhMbj3M)|q$tEC#4<&+? z;8%-n{iw<=36;QxO+qf0i>PSztySJ?Tl_3)ji4A4z$7U0p{Q6t+=P9Ro;&Z>INm|8cwP&{EK3)rD|*0JunGTy+Y9VX5;E~ z<2oqc5j|(AQQT}?m7$MbiZaO^1wV&wHQoOmHnMrLk)3RBWb-`6CHCZ#X8;9%eU=yu zO`wmo+Vo$*J_>y7RpD<8tEy04kD#<|1(-Uo(+Uth#cqAwrEDDxj4J^YFhjNeYgU(q z0V>+Wg^Bs2Q?&8``F2q>f@5VAe`};F?i{}?z=X(hi~cY1!tL6Aef)HN z{LJV|d9l-6H?u1gZ(~Fl5@a z6vsYVJvSencfUH#Q&(|2F1bT2qFH9`LnBZQlK_;-nNuF7O4&*81%?h6rg;&1rM3~J zVtZgW;mrJmp7CS8tlreuNcgd9?4${Hp#OC^s*0x&e`y*@ejK{!aAE&2u7*&^nk$!{ zBbXBYXBOrV-M{w>ggqeA!m$)<%FjVThzF=dw!{O3x`a?)-opiG=xoJF+DS(T!0<7H z*t4{=p{2J0q7D!T*sY8R*OO_nQ zzXfYy+Mq1ts)8EP17*$JbiT>un|JZ1*k@if1ikyPY1xrh^{$qGJa!Irb*8WKMYdKRKI1CU%K6Akkz6rY!>R9eNI)28;=4hiv&W3M6=rf?E?Ixaj(bx)+h)SMO zThUCB&zzKl%Uqg%yka|dIj$)o>dbcqhd!Gv=SRsu>+c@gi3TV z22^?9<>~IR={Ou-htMbpd1~g;)*uj5MmkGGyy1CL((Qo!>nmD?i10`UX8|#NDcJ^@S6b9(XWj^%Jb5ZT6HCz^U*>GdpbR4<_Q8+Xtu^?Ji<-bzp zf51w149d4Q_>9UP3!H-}4%v7KNxm3->7FWB%`Uw%3IJyAY*4bAQf7Hc5t=Lg8U z!LZLlIv$Qti3&kthBHEkEyr;&$Hs-dZ@NOHgI042RWnAy%5~`t6U%xbyjgfrua5IW z2b7o;MexjV)Sm})m?T7{9gZkeGE+>vg%I}C2Gs#~W_HKbAStbeoCB>Z{`&9R-*hS4 zKc{Q^?|{(RMv!e3LMi`=_GkZh?cXHrpVzhh+ok=`FnfB>!t|2M_PTYe&sfp7c06(x zVe9DZ0OCWUHYy1F5BNIh=XkE`+TV`>j)(otCOLKM@9fyS7N$x2mDD8d6)f6Me7fMO|5cWT;ZMTG~s*3k)FHpKBx!A<>7h#m&gWFos8X7 zrg-0-oX)ut@om~KK;(|8A;4WFIe{2ZvU3z+(E3H%w=e9NFuRdnh6zoyn35iZoscCi z{a^C5g-GF<4#{EG{^jhh>!xLnqm|O2lPCofQ^Oer@FLqSfS1?MU^W0jXGGb7hofrv zLo^)wlQ}nsoWk}CdZ3)%ENyrrC|6t>!|?%9*za;6((21f!Kevo<6_{sc!eIQX$q{u zcMzMre_q}{jHs_ofkzYGH(tWV9S=O~%NHs7LPNpdpcTNUK*UuAf@VYFHbHX$Sdm7t zPW%ApNNk84=ew`r7oqk<)*nGSdRxU7&a7<>%@=;vH9jBoRxcTMfc0<>;}~ULKd9ikR%}Zv0+OqNU9Y-+u`7f&D;{*V+## zIq}=@7YC9+*Qc_#u%5Y=VtX%L_~eC6w+{c6^GYX-%EUCsq+ONn58bFvDq&1@FNR5L zKc?JPv0H3;!WpoBjW~o1%Y31tWl36kifqWst^^$5y~=Art+X8F45(Gz41jQESwNv! z5k^Bix`g(R>oC$pq*!L%k)>!U_KyU6-6FkcwY}Z~D~vGj-RpseZK`MrtU-gWh&VMt z7qp2enuVQ&P1bAe%RrosOq7Li5kh?TQLYhW(#x<$&8Fh8T3;8&cePvl+(V%3S8Cpy z)v6Sw4vl$H)@A+q7^fTAd}J9mBYCSC+QMau!X5CrSYhf<#XucJtD+yEd>w|}Ay2Ci zF&!qA%4WPpoW%{a#|>^)=D5XELQ`$}VJBw!HvOnkyxO|f5~6$6DBsrIAor`EGRXD( zt!*#A%RRU@#%4FBdko3&y-#5%0i z{0$YzT33O!F2}PqeI{A!Dq*dBLH+SR@YCY|j-Q@3Rq@kv68LH3WODbiJJ>mhpir=Z zWObMn#Y0zj@=(6CdFU0>p=&3jlD$B7T+SOzHLhS!g|LnpLx`myuFDICI`(oyx5^1e zjf%0CyU7d4C)hU_PlW`t9Tjk%DM3?if>WH6522!U1rdb*U2~1$o-8G&&GB&Cr>(n341}Z#^`Nf~r{3Q;$l^}PVcgS|wRO!NI?-2%Y zhxPbX+qQm{GGbr6c03RY@u z!IcoOp)9lRyG;2W-@jdoR^EW>&=Dme;}nJz5&9PsjU@$fN#O$YimbqRFRjr_&}uwW zX^XE(4SAKPYJ^Zyem{ZV@cHheIwL#13-{Q-FP^gtEM)=2@GalJfd@XZ9^zIpetD+1 z^5bB?@UaU*-$jo0U6dML;VgMH>=1;R^ugvr|bgRTaz2B zEEDDX39P?TK7uz<tHMBe7?J9kXPwI#0gs?9@l~J(IB?E@}=ha?5_Wv$_7mvA=uh>eJE3%y=JX zj8%OMwEMtqV@__DK9caw2I=`>m`8=Wn`eXf2uQY)X)9K0yL0gcY**i`)ilb=e3bWZ z4747A*CI<=kvcg%KEtfOfFO0k`4w_s^5o=s)QFU4xU@>0bxXo}33eA;h*;vQ_{WB1 z>nsP7baSN#BLSLd#q*hg8l^FKG2`N?AX~9(k(iyz-g#soCCz%tli{LAK>{`8y7uVJ zlGU8&JIXOZo0%O8gf|`=*4XK&abmdwDMuUMhlC3gs5OiRwoiH^PvWLay9d!ixH)V3I^IF+z z*)(IaSbz#)A{gK(x=vx+G!r{RnS8#u7(I2Gdz@0{L$f$FA6Xy9hz4;BNvrxe;VcdQ zv{=ABgdT@b(ZP7h zQA-)iM-7h=5nCyEO7L$(ec1jZ^;rr2z&u(V-R(EhO-n6R-pI}A_B*%pH|&45JVMLp zoXCTE(_!r#0;ats!!D`RMzm-9ukw}x9Alz z+ErQ=_D#6ajQdaG^{ya|!z<^x!&Q@JcqtbQR-dgQ3?EGvD1qTet5Y7^=3*zVo{~lC za{Si&!C}W)GE^{U;VzYm0qyKpZT#da-NKaARt`=`XI?_uR3PdS_BUx9Bl3B`6>uf; z*>u2#iMkP@o4`IVN3giT1IK#NA{BZ)GT70{0+;CA?PyLIY-CF=Bfs!)2>EaD&u)Dp z4_vyeCI0orjjhmTg;UoGyF6`yy)M7_ys?ZTPr>wAl{eM31ad87sO6`73nL> zrhu9qw1{>;WGB*~Vw>Uj$TC2#DyA^;D;)1HL&@IF zfZErNk%TIc(a<~&u?0VWf`rH8;$v*XiTY+qwCSwl3HCO^KOJFo;V+=5z*gpsx}F?N zc{g_n4hG!z3ABL#rU+$M+lLyL5}*)8F3Xx^3(&}x=`sYY1rC2@9}XW_HznIqeE4gJ z$nb54i2?Lh1dezXO}ba&D0qg9SlxhI3dztLF(ZfB`Kk&p0w1d#-wB3~VBAPBs2)nB ztVnq#L{%zk!tXGyingJksGS(m3unS~#mT9D^CX!js7j*BO+*9;d(?km8E}D@<7MBm z%M#;PjDYx+!6L`_2mC-LgAeD(2kJZc@M*$_ub&4UDjODp$KbpIvd;;Dhk65TQAizK z`H{fPgp~=cp_X6S(Pw9go%qER{IO`D4xa!M(O=vPMgrGc)`Z0dI zhO}IQXDM&xAWDxB+KGG8c!|~C%$dXF!b4)4=q1WW=xp3er5&P$O|(bp6DGHYULOV8 zYl|jxdEv|R_-R&0Z4^POagfoEp;jgEAK~Y!JKPAADNj@DG99HUKslZKOJ)Q-02ZHx z*Z>Z*5A${BdX)CE1pGiI{`k~jKv3OU2Q4_Q{R?y=q67R!`Rl6%4NEg;9-KVzY4fsGdGJ=@dl8Gb)1RwEwg4)KbzRYe^fO+(eu$GZMK2EW^M|0KjQ-X z5fzSw=b~^7F-KdlQ)WGBmL^(`TDVi6<yxEyS7=orDG%{ktb zaV7h4-xw)=>Ig3+qBk~^GWgEX2yYrGZ#^CwfDFE7lPksrZ@eW7cL4Fadc9MxR_ZC1B5V0U1dLER`R!c6xQ!9muVPVxiMEZb|na$hsFe@FYtn1)6gSkp_>!5Q3~LY_+;w|5D;bR+_9=%31ES-%pS{eiE%0u z`5jP!;%Va8Mvos)t>&F>_Fm*|8lOXChs)f(g7ZMxq*ZHN+Vk6WDj?+fFA7zAJ3c2t29oGTVnGkCGZ%h6zs`jHGKu zZk8WeFQ=Hbzv~OA5-9I&a+RCfVNaD5?L#;BI2ChK0JQwpRHmV5B&fMMk+}KWbI;vC2s?=yv|vI577kQ~QP8u&odvQ&~-gAOs~DX}}=r_HhtEtUaA(U=8{p=M~}cyK{&r ztp>U!*324Xu1JpOP)90IGlp{co`G6qTnMX~4r68-Pl4DD?3z`F7xuTeY5#*gs-iyx zd8jdp(;-&USVv_(a1dad*ft_W65A1j^u1p|(5TJcOtiw&Bu;;~``VrKIej!6#pc5q z7YQD?y9F{&xV_vrRq?FFtZ@p4R8_x$f2vb) zEGc*^)svY zgERR9?cxyWH-ZhwA>B)k$0+b>;vIbe7e#R3 zVF9kn|HYJXl_E?&MXwLz?1(NU$-rLSITNDU-x}ep1@D3$F$|K3*tL-A42O*Hd-mY` zt-v4Jzu+o)>oIcHnb&8_{G-}9+`Zf9082VhGnfM97jyt;o#5$6a>LHSlX5BN$}PxX zmnLbooqe7IzfY_KAwV1{^Sa<{7%U!j82zJ9v~*bn!98$H5zHR-aa>^tV@NK;BP;J^ zbd%>t+L=O6sT}?etN?|Aah!s`1!&ceIGwqk(sf*3Nq84gmms5u!|~^?`KNSb7I9L3 z@XYl>5nbLcLY)9uec4k0M^m8@h`4|*hsuzVTq&z(e4cx<;}r zRsgsKTiT6Bo&GazVSg{J>P`H_-96lC8&~YrmccsO5n1AMm7N=DIC)$V-aN_jG&{~p zquq6033dU+ZIMlg*53vj0!aAAh8BrMzHkYVhXY;By5Umzyp?(sGcUpu;-q~SLo_8x z+%YIjjNl#*Ehk((I1xSogNSt$nmb{fK`0tMB&*Ur=#8QkI}S_ta|tRlg>zp<#ovHC z7B={Yl11DDdvZD@T;q`SgtS^V$X|X4UX}H+)6MGBQ@hf~bZ5HlI2l~8&iY7L-;D%Y z)^}{ws;UlUP75??l`r8#q`U>&$fu-8OL#1fB7d)*?G@O4{VQw*T7oGUUhJgK|H zrr@(;xhHam%LI+xIm1}gAZNg}0>#EUIYX?RGow{b0u_<1lp;0&l55A^=Nx+;<^t58 zRI<4wIvZ8Gu6N)A-?dkA@!iG`en;vvJMC}syKB4xmhZe65=^_yl?!%AFSz`(S%hy&)0EJo=3OPtJ!syw`BkRNVd zWSlE>ihT}&r6B>5f+_QwlHD%ke)E;Wqu3{E0{R#IAT3hwp@ii`Q)dzSe^c7Zb?0_i2e?|L& zO0D{7zH2sehtL#|Q^PixiN$MNLcT_U$2Op*v5h4Ska$5r(s`i=6Bepw`MKa4`;EIY znB0r%Aar4JF6C+~_MIUaqBmb=mNHbOW0|~r5HvEi857ZWKYoMe{XMiQ-Ue1&qUU;^ z?t&_DC(P@f&jmeGgU%-1>-J10&Asc)3d6dZ8s4*Td=#YHRhstrfgYf{HX{ z+H`5%xsYI$T{y19i_lefI216aW$6bk=)+i|WqtgG`dAep$&70jcD;Z@JU z;u;2@Fs4|#SuJld|7P`ezE!&oo)}x<(GD%A&f^_rip`(U&lAUc6xdPYg_p}gi&3Bf z=*j*7c-RFFWd%Nb5C6=KVSv17l# zba?5u*x1hVg8!oaW_S~T1@=UBgx%^0ZPVLw)g&v9)CC@l*T$dMC>V~Vhb5bc4}bfD z{zd^{UXO3Gx%8mV z*w5}Y!k=oO%M)D8Aq3IZilLb00^hCm6J_efpiXWk>~@d_{}~GP1-#L@*9@P1oRrg& zfFB+?;Szr4IuY>!B!W#MDS<5sIY66#>tx88yo_AFHuDsf;PpuvXnQk{YH5LwGteJS z{h(9-_Yp3z*vBP@!<|({U(l6@x^B~`vT0a%#8BbKWTub`mfjU!gRP;@>h+iF_ zK`7q)jQa5;$^=ir+pqc1hlSVRa}^^xU@*%w;4*TD-k>CfvMwEfi#zz>Y;n!miE?K3 zd0zm#qU_MVZoMxhf|r=pu^+m8*r+~WCwuHyQKv!X((tC>Wq5%7I(|vnj5flifbDpU0*`Qh>zyerNnNoLMLmTYg&Q z$NGoC>(wey#IakAaIz4`QjE>4Zfa486&jY$!Qp0g&G(&e|D@iYVpew?>U?{zYAQD_ z#_HZ+okg6!v-qUMSm)ciVd{H)`ZoZ}xSj*VUx&7!eiaPnl%(Ayv(Vo=U~1|HD75fWwlxgTu_TyGm?!cq9^TZBJ*rUd ztgSf+Z>g?%en|x6WMf$7M5;QQa6K6eu0P0&d$C^Ji)B{e1`zY-BHl6@y9$lPUeM}1 zmt!!Qk@gEhMP$JCPA?ZbhTY*sxCtD(1U}A@#=(T?+TX~~({VISY%BI_72_=ie*Ss% z0ppJ7a%dZ~0SkOM6_@sMRV#xY#>#NTF6)inve6i3=8ti6zYCtgr9z?yf$S1x-QG8) z_rNh`TQ@Uhg1%>FyK#wOG5 z5*$q1TNq8l=mz<|&e0v3ak^FDFZGqmxpUh3ju0vpNoXQ2?kQT`! zi*{?3Y$Q^KaDg?S@~J+JsI`N*K6)kQ`2cz7=f7c_JE6zo$6z$6w$|j-UG#_D;}8rl zLawix5!(3^LYf(6Q;5}n0;~SEyYCRHm#wl)^dD{$_A{#^usil@r+x_`OA1u`_Uk)a zS)*DR(yf(Qs+E4>oG}-KdZR5Q$^txhugBl0q(hKxKgkjRx~wAGHue~Pkg`>%!&UMN z34IZbus(Valxyuj2Tb!GOejo+>&=?C4+EtXuHkk6!V{Wv7{GO)7BZjPZ{;D;PU1B< zgyd)IgMppYuR2LEfO1ffc2asG5%5l~>07`=`S%JiK>i(!GNRGMLxRT71G?bniuvff z5mz3F=fyw;97eRI64*+DVn8a=G$HsNfi|&~sLI0V;QF!Lmx@KvGkg@z!+r1y4@Sv0 zEx)AReN5Rt6+7%D2-YfJ1B!;WV@3XS{+}@}$Qf09IK1lQ|J3z@kA;-4pcKHj}ii2Ke3K{vEf~QcG3Uz zhR8m5Pm`s0S&{ZDO23KUsZj!zGSar|(fSC3h#{rj4Z8gG@6wyKX`A$_7Bs=jK3;1q z4w?P(dx=-Qhxb=8^Z0p;2U(1bK%#B3aJG!Z9+m^D)X}S2@q1jr2g@EOSy?#-{=)65 z*g`CbSzV1@nHxQZ)Ef$b_M@f(&##^z;TW!6z~J$z&l{Kvs~2= z_}ASGL~B)_0opngbFH!mAX33=%G6-|e+J5o%73vYZ@x?{U{$HoPa$HxzB8>*(eQp)2O8$dgP^c64f!7p7E=@5E|<@lSm zdk12k?KW-f`?|C|MYYVf&@w?&wbd}q(Jr%$7lX7F?*r3(sJfJtBluGUW%@>f^t4K9 z2sjwH_gVa|;ErjzFo#=?_kZy+`2c*kU3YYheGCINpf&k8PoWqk{AbBfo;@RkRSx>7TZ804m#` z`3*biQB*~+2&BNm)KQ0{TiHKeV!I2Zsk|xyR=SJ9QW9SWd)1*mmqhTFCtRoEdCee^ zN^+i$0CxrIjHeWxsI7GCs%I#b7$w47|a$1h`UoUT}l7!EYCKbB9g z&}UY7Ci>gTK`uZSI(dNxO&~Ns%{>9=jI?)XlH|+T+r{zg*n2Y>e+Kg~6j_Mfh_ElX zpcNPI%-rLCG>g5wXUP>jLY(qSyAgcl2f?;4yJIJ;?Y$(HtK7*(4I{Yh2V=^zc74h+ zlv>uVK2nu4e6JWYUtu&Co_m3QCqdk)7R;PiULzNeWkQq3{!*Uvy6K~Nre~l((24`3 z{KtPVe2>fa0&Fkf>zIyoE{i{d0cK{x{;(s^mItwBdU~i@p2v+Tk2^8AoLWmh@_)DZ z^aAnk$$v#Pi{W`5pX~n>{<4d{qEZpx6^8+1oWD8vqkn-B+;m6}wHS*w{h*h(`j2Q+ zkKp(iIy*7RO-B3z_NN?h|e4Gs7WY zKiJINj}dZnj=RIX!%6|nvCFysJdf#~ zy2;bVmA5ULKCYx~(HVGy!*-s6gY$87**W`5cA*Oe7AgUD`b(9a6l>_*-zT(J{+(mR zxBo_eb81`d1J{F3ML^0M}}701DaSb+IFRmrPcNt z+RRg|xl%XZITq^dPjLlw#0bvg(dz{C)h2ymn{_myKOT627y0xCT9sBS+90JA(M&LIFX@A|*u(`MP z*H1^iXRf|(=$Cu10-u~@{;l?*o44O;R)!xvx%?i4s74ZseaQ&@8|)i7njGu{sS}!r z$T{gS;GYQ^ifm0{+qFKeVP6^uIkLlzqjIe_XI#UV-kv)Uz!|&(p9hROs{OUOp#dFk zAGOO|J&7G&1U-3YgOxUF=dbE-eJfUlfkpd_YWUUGi=TgS6LUqRjcShI_S*HpUFTS$ z+{_Sv#D`Dp9XK_nz%6QvO~!GMIeIai)?)bzv+7^{NCmwemT;YT$`n)Q34{LKu2@Gg zLt-_83*mxzn>pnX#N}+8y6YPROKav$N_cY@wGAus0?S5mhTaPag6gGPWPfms#efIo z;9cIY^4(w#5@KwRqq~yi;tGF1CzKjq>~;kq588sB<)_r70ShdJ8sWY1-1?p$*I?(g2t>vClD3Uhz1<2lyhEdoh^`pWXc- zwOY?0HLK#TvthQ|l@~dd7W&fOn6AZ(Q6G2m6By42=?&qAmhjQ*?@n2dgJ7OkSsy#~ zKEu{Td;quNO{6JpYRJUOLoyWbSFnZ3=LjcXKs@Zn#G9ktl-uhGGl+f_7=dU#n2ix= zppGe-hK1TjVGm0~w-{c2jgN)?BX@tx+G?QWi{4}yKLV}RfmyWhsD8WZ56D(f z2XS)32nL|RjzDWikrn#b8AA%*InPJYVy8^(!jEJe6^AG{919&zB+Sco*FZR*TEZUR^H<;*v^rEz&IJ)xP;01=w;p^HH< z^Zx^!B^OP$o7cNL=Sv@`)gi(I_qk^|woL8{^Q<+h`lndg$gtF-F|Whb(SzP~3W9F@ zll{|tQ-fMKe=PCQ{%{X|_?zzTPoRc2xsS8JG`x!+Tf_&Gh%fOsQtm33vNf6|shg@( zkP&#L{EQs?m+h|rhbe?=>dud~I*AK#VK^>GzYFsNbVt+E3MY&co8Cj_OziD6s_Oj_^~cgAj?>-`X!8#tUdcwQp;+JA*wT z)=~=nyMpiN%|mxOSdE`&0-rt%Cf3h^!(N{Sm`z%Wv%;6Vf~OO-3DS+G;Jlb!Yz}_3 zJXNc!=htk0ZL+_fiXTIp66dhfA5;vQ;1@W#p|uELW1Ym3LGsYEmb;KT$DDB_@_owP zUq_B+1+9vsRI`FDIm3c|az-!#7em(|MkXpG{zhW=y=03>e4G{>#`MR?R1<*VZ6xco zkrl-97)4`ta8yoNa0K4b))u=!6$Xs@bC8h5)Ehqq`k|D8OHh5cUPlm2VdQaDi*5z*#cy>Z zl6ab)MCUNZQ$gLss2kffs(#eFL*L@j2|SLh0mqqLP0K$5+JFPHmcL6sHTF`1es9yW zx}Q5&T>-?A36GTG5klk$#!7srWTNDw*1=^qio8PVL(H76bf*7Y)ABl(>tNHpx996_+^}Y>IUSy99PKt5MMy z33wwp)vlnCiwgR94?6IngVNVV)kklGu0@?Xfq(npH$;F_IbDc)Hr1z3Lr_@IhtFT& z!7(kVl0pC>@=?_GPycATjDB-43&|^t#qipavre#I7Qn1qTTucUZy#$-ZyZlu@9lz* zc>nN7LJ;K=Z!Eiud@}O9I4nau;J?)CIz9vjd*h7PSGu3xbmB4UNCeC}+8ec%;|!>N zpvu{v&8pdWe~RBwYEAW2Z8g`wi?*=jU_UrZl~n(V{}#hwh=T6)pXZ;8{$G>+6TC@P z|JM-t6S3v+`FAZq+o1u0h?`NQOC^gCIR~srVVpkA?*Hes|IuH zYRXOH9HYxPeLDEc>BJZO7pD5O$g3!cw5Z{O5N)_MxQEYwzlqtg`UQ6KM=!`S{%C$f zIO+}ds=T8fIkk%R%+s!EIH=9R|JMc(PIX8#subg&IY^~7yy0Rr9-gP2zX?B@wY=u> zk)vL1!VbM}!@eX;iL*IBbDB+jm+Ek%?g4|^g2zCBrcd_Z$y0^pd_Qzk!{V8UAj?L3^@MYWPQ5 z-ru3%dtW8ZXnF7Hr(o_FPLu{JsB|MSePFhmg9AC^*WhC00~7RXe0Dsx&drZ?5y6hn zDi%j2(Lw$o_Yru-rWpDzmf2L~th>^{^~vIPfJYD~dNFB5ZJaq~=+dXB;iVh@PvQsp z3fA1NkLUY0dA!@b$<-X?7AA4Vpz7*jXeDFF6)Wv)0D_Xtq$A6~5v@b+EhI zGhqzY0taAREbWOXQNr4b?1wJ=kG#xlq;D{Mj|c_9+zV5wz<~(mhVYu0{GGDiQwZB0 z0rc-FZ7dv$5K;K4m&MtQ+W%5sV!mQSxBQ!nB@yBE4FBk8f#gnKRv_chtt&c~NH64XuXt5!zbuppkGHn`;So-sY7E>@NQTABMM1hvZ4Y{ zJpQ5(F&P=oqi>!FCPpv36zfVtu-JP-CQL=e=pW?9J2Mm;P?z2>WPC@C5r34_!`UP@ z2#lt*xl%F+;b=Jt>N5efT2UFEsy^%eBwLSWq&6QMB*pe(R^N|OI?{vy#Df44 zWz(&vP?oIgI#gChl#x8c&XcQ1+oTk(_nmB2u-tr~F<*9qBTzcljNkg8POc{UfrC$K zS{Tqnf(m=S-9cNJWCC30-=-g+O zpcaPO&#H6Bw->g%i4Q7_xpF?yf>10s^DlzQu6zPUC4C}vO_1$-iTnorF(WNr#rbD~ ze+f4f6OlDSTh@y048jl?mDRn_l)J5?1*}GC>bQ`+3)Ddd2rJF4UvUM7k|Rw$=)$X2 zo(0Gg1~7yJcr+jb=wyET&%s9AcmyJ6kjgKC8DfNSIe0!GaEbcf+gvR18b%`Q zqOmxO@b1V5K&aV-zjk{YVaTejUh$ml>Ac zO{m3wenKU(X>7B|zLH)Qgdopi3xSN=(1zRLAmZ!Q)^`pUNGAuZg{qUY;+=>{K{y5A1XQ3% z+yivQo8&FNPI>L{@1I2T9IPK3&Bw-bPY*60J%Fdq`oce^z|&QD7)(stjPUPa6oRp) zYeo-ad?xKr;le47jMi)X5ok7wcT$ym z4!_KjZ!i~cqynYG%J(LhH@lCxo2&;|ZZjM;d0;0oqJUQ~x^-E@KRyQki*GQkxZ$-E zDhDQd4}QT*SuPdA$^ymxZLT~i zg>UBIjXd07u1rSL`oy1`D<5F(iN6$K^=F%|64o0y9wQ^?dcrjuQAIMUpCG?%eN%~` z0~B7c{+DIBf@zVmY*^qTWeAs6^*`u|QjPhKK!uiBUA+xcV~esiP({Hen8T=Nq$$;W zY$ZOL)t5DO7Acn^q5d#{hbNCriZmf^=KUxY!)6b>75#!nL=0iQo0GCRujLtNcQ6EEQDsVd=(>u{jW?UFK<#D_aGz_$mYneH8pmyUwS{p=$J{@2YH zInB?-L+tVH&3=_b__fL$Y;yj~rf-%O0r}l{h>l0a?u|ZZH_8*$?u{m5Av_U$X62cX z`huW%!w=aouO!U+M4$wTTOGk=D->#rubpSP%0f2YT&{u@BRmYfT>#24xZxDVqEIjXSeXX+l>WRL(%HGazC921hPw0^%SoMd=VSlah{$%{NJ&^K}#^?;aXs6Ln zFWxP7X@qN-`aUS2`yJKD1_GB9%Cg?aD&t7u#?ln-GT3MjbO@rEhg{k7F1ydIRec2j z5I)ZgFKi?y+U*~op;c{{mq@6MW1?-5vawL?c_jhu8R2Kq34}YB$6p9M?z*D(No14A zD{@2)#OC8tVJ#{ks)Zxx1$BA$Frea5}~JRWauLNG8r0Tn=xawu`mZyEkPZfE&mL-;A?s>v>~e^+8<9CGs1dc z%+0P~f9;ieicbOjGyonu87)TEKMFu41vSQVDaQlJ;3yoQBc@`M&X3)2g}Vu`6y&Di zo|)6)T(;OJ{QS?9~s z5OZYy1;zr8x&GQM0BcbvTHZc%LSOb$rzD!n`-#d}h9M1t5JMUW_gMF0?@-!^W4oR8 zK1X%Pc-`o8lsR=e!nc}JMlhmn93wmcVC{m>{nQ}~oCy1YFc zosAMmrB*{B<}U~a{}CN5b)dLXVH6}8fqKB=bYe|I;|vGBlk{-mCm?~3HGMc6mxiY1NlXhCs|P7A(y zdv7xGDbnsr@{P#R<62b!U1Ct-8?%q|qOmj5wO}4k$%5Dj{kv-tVlZhpR6i^pmS;58 z1{^I~uLEgZnkj5C^f$A%C#MkGb!U|=LU09JlFd<`_@QlD?SfMy|6IZ?-aF@`IG0)Z z-^@48V_lFU4^d+~;`A&0)7A&+XMd?t-FGJmrCXTX!xOUIL8OOUxw$I{M-Rk7P{PzG zNyA=F3>BH#a1iD|4qyBr(}4C1uRv6qEt zf@+U;gDNtBKFFBS@z`3RtMHZCP1T7}Gt44F92C+H` z4=3u=f**CCi1zNox!G#+_V>=EL)hE z*KD)fcltS_j9{$wW^zKM5Hc23d@_Igrun0yapACf-7;b(rH1p zPDiV*9bxaO_}x0(j9q!1z>Tl%A9nq^2VZRoicw{c0?QM5 z%Bqn%YB#*mth^kIYEfR4m&4JK^m33ArT?sG6bt~T?XbPsGB0l59?l?`+buSEy|GNE zzTTbxfTNOEnD@Ggafle3`nT>9{b1a(|3$6fJqgPu(V%nDGfFlHt2hNCtopcYngmgR zd#N z(LdDRMh4&ND_^G)iPX@U#n*1TF7kmg~#D zfS(Y(P%vueOCxII%T}{)ePw6)b*lVJh)^I7fEq0k91S?b#u4#U>L1~LQdLLUIcBv~ zwud_(m0@{OASKI+hT*9jO^AO>r@lBBB;>gPH~=e^MgAmufmE7DJ3}#!5BSooOU56) z%xl&?0CLmI(#^V)Xg4a$FzYtcI8-(SS&igjxLJ2IlrkJ~;uGrXWtnE(d-8xpH{bE$ z&TM_+NF81?v0m2WR$Ow+X48?68Qh-XUV+a&!^bdZw8Bc@8#VcIN;n;rB4k=$w}b@LMvLqP!m>$w2h z49+IP}UWfYDMoyAuw zcaoJfm%$|#_93P80If!O_=vrV6j3pjKa=Roc8;XaNgc=_^Oh9buNUUWZ)UdQmGq{F zlZ=6CpY<)mYEqI_NR?J;xp1Q5>g1X(>vpk^mEA1jzSVf>j~qQ#KG_>bY`zIC=Ajp# z!rPgWhhn}d0XogQhLNCOzp zkL@)y9bawTQL!vF|4JXE|C2X%wQ>D)Bl9IAZ#aO*=7|f^j?!W6I}>cY{m0-y>_;!; z0t39ao9hi}b@nKjg4A`UsrwErmIF2ebbd!8JT?y^RN9)I4YKD%H zhTyU;N3YJYWS3J}To$8zGz#;LCDRd12wuaEPO4JqPzrOGX!UGTJBz;vT{aUf^Xh*D zs@x%Xaq?tdruM}vfxf1bIVWEx6N=EeM3v3Eg7_Lc#aIHvHFLwNKq_cy(fPorWNEPm z1J?zZB;Zq9_H*pjVOY~k0AdYV80-###B?#fn4+(VWP8*|C zthjoVwv85C)`g8y0!dc3u)<4TtUjEJ$&ZIHJ_4#5BmJ{&YsUzMUAe7}&-TbIq$T7e zRilhz%oMBEjhD$XMTm&Xc^nPaGuVy_k0j98IVQFWe#>wJBTWyj!#R>3`kN8T&_nAP zt|GJ%ITg*oI)D#)ebx-$4ZjN+3%Xc*E_+5=Vr00$kvA6^T+*)bGQ#*yFkbpLcT9&P z2UA&EHz3}DP1papTzU4XJyutL0{c8DJa5i%qadFZkHn6{RV1G{Af59d-&wED{vCaI z%{wPX%4WKP=XHzE2FnlD8`{}$F4jHP&I|Y}Vc+%z$R^>dliih$Pu#E7A20+oB z>r*<81P&ePSbdJzzWQ5V?u*N<9NF|@H-Owh5Yv5z*n5#))+Q9vuOA-!0RLcK48TLi ziZ;1)fz`pUkQf$Dz~o;)oG-3K`&^C_@E3_Z%{M-I0xz&2SvNh~dJ^cx=u0BUe+__-Lw}8cNy7(>D z3HC&M*|z98ECe>iEiY!ql)I^M_VP3sDVq1yp%hN1qV3!!NfE09=U9<;57Lm@zi}!7 z5I;bP?zp^^P+?!ARX&feD*Xg>4#AOGzDF&5h!m{io(-Zb-AmN`;caXU3c!?f0VUH}ybp_8bYd61y z(IyaifkQyCGN=W{w3&ccWUh(`Ph3-Gbo9fp;695pO5o;@K5Mp9j<<}j^5QE)7$L2l zC|l6n&3o6O9vF+aqUm8ifil<{AaqOt)+3Lr=wIRn#`VJSa6wP>7}F88warLN#y@u= z8SHGcrXM)a%Ai#6b1&Q|QGuemb3A?ENSjXbRV$3dKPDAl&9NQr~NY zISCC`Ql!Q0I0(o0-vU7Xzt;zaU)cL|m`<7Ams$EqvFs76e;vBEYR;6^r&-ZY?A0F? zqdWA>xVsZFhQi|l&M`D#!=uTpzKWW1-VnS2G3$B5VXom0Aurvi{z@J)jOv5(fG9H) zqzpD?FG@R^W;MOA^*mT>?w5ybeey`Hw$OuN8U}|P*>@bbBjwS|y8$!~s73Y>`ZN@< z48;vJG8kGgMd6B_N?B-5p2-pe73lA**JN^0R)GnngGyYW#iYi?%;yR;@fypvf!7-Sor^>M6O8X zSx2iG?)`$|sIg4kA`SK0fQffSCt}(JoTKaTm0jD;LHTha;?gw>?734MuL&ClayvhC zCmXKjBwYcB?#0JF#aR4H;|jB2j)058XP%+J4TDbsNH^~F6k?466`6$0R_Jd42|$LN zX%?n%UcN>!d~mIk6adz7yW@wzFycc#&6qkH&a@{H+cV%OkM$FYd*??b)_V8?@!M!{%|RpYon8%VqPXhItPGpF_#$R~mL^Aqkb+xitr;(Si0 zP3Yc;_|`m#mb&U=3H(I#9l=ym@G_wwI*?zhkc|Pd5vpQzVsY$O?$Y zA-`LqY76Y66}%Oi9h6*SX(p-_9HVehzvxEVBq$C%L|r&5(vhrH2hpHeTWwDY zz2ZP0eH*BWXjQZD(Q@wrqdUS~!sP&l=(09ua`gpgH@Udc!;+xqn6q-|PKe`EZCQWR z2H!NxJk0ihyXfUDp3q2XD7Ldpd$+0fY)eh-d8_C{XWpJ#o|=;soRs4Z-O4MscP10Q z94W6=z60jO%v}qPA*gIBFX-a(8i)&FH+|-U6q1<1Jaykd0Rn~NA z1fB`5*aoxOu<_4D*YSoz$1;4QK%$c#Pyv4Gvix={6VM8QAbtpF?$Jp5xp1haJ5DOh zeGC_>R3jCj_SSz+Z=KN44;o~97<8`Rbt zn|e?XBSoQE*iPc&NRW94XfO-7!mS1rZ_K~^2UnEFNg2}*IFJutaaJf-8g;W#-EQdP69MI*pzlu4n~HnAHy_fLdCo<{^wP7%JhiM%nG+6i9%j%PKgO zxg=FD-;2rPd~r^#A;5{gdFV0o9yjOo=l~8*4kU|X;3rpWh1@5c|b`u7Qtee$}3jF(jb8CX1`SxXOECALyn;Cq`~d@F>Rs)zOf zCj>2vB~6S0(F~6aE8k-lin4#5f^Kst&6XFKWQM^a&?3vlt>4p`kFrRC0An?BzY9fwX)b1X4%tJDnj zvStFPD2|{oRsYA}#7%kGXc3``v(%sA>dz4MM?_^)-bnd{oEGSao6gB8TyGy9kS(F6 zB1=Y21QQVfqu_OVN+cCBSfbGg33_JxMyUeXAJ)kW%mOu{s^rLJtGAU1g9!OYRwi3;a<^SLDIzc4>+&2*urcxJnGMw7Bon0 z8Q^uiiZc!-X*=>Y-U!$#y|^95F~p1*~33<5e=Iq>q$Wc z-(q))eV4hiFMH&v(@L*;f_tKb@T?A<-l+LDG`34 z#!K8-w`|}znCZ;6hgY=npikA(C7+iOHmJc?QS4FfVwTdDQz1surC1sk`XbOC>@SB? z-9aC%f-q5z3;7W50RhWUMZbsDi^5HTN)ERvP{TioI9cmG5i7wlYtx`?3j}7(4S+u8 zbAH{yu@E!iIrgZ`K$x@QujP3hp-Vyr8dW!3*0oFkBUWWRon<0j%M6Z}$qJtCw6n5n znIG4q9UDOpV1)iaSgVBhE#|W(Qh$+NwTOeqMZ(Em?9-@&i}Iv=k=HzbtfNqtQTcjO z?ewo9+KR#`mWH<&C@YKTum|ybyK|Dr)i2{TP7SyjWLRL9uW~T+42zl4^TPxxc2_5T zg3fS%_^`_zx=w9$(C?mB^eg2FAq}1?9oF`KVswe4qP{kHfo$?~F35}_y>TcXBRT1PPr@?8o8EjQ;`IlV<{KXpGpRRU@r}Cm^cfx_qQAe7r-U0mj{d3i zXY6;8cfo5ezJc@8vY9F$H<66WB6Q4kYlPR}6*VHhf+@q$Sq2m5Q+6%evLhy_Oo@8F zaCW5q`{314ofYJ0P+H|&P*0Bf8|?M+ z#+CTA6+|OKi(Q0vL(frfxLGGpE<3O1p3tW-W0|#uG$tnOA2w}|?;n%~{u-KK8{fuL zQ(0#CBh~^84&z>dTDCRq_x(Uxub*h|#rz;Ykx!C1dU=9}lhheL{exk5`YMjQSGiqx zYdUP))14q|9cf+Thsb?Y9`rzE5~fJI5KRkUbl_3(4#PlR=YB^L_~B5y$PORl?5~(S zE|mHjw+^wPiE~07SD6KCz9Vjfr$e`gU+VXv0K(=2<%4SkgJa-pvcZ`oyuR{57&*%= z%v-B5GAL)XZaV2JByv`krU5an%Fyy<99%^&ioPmZDIXpFdM98rYKA?-Rm(U8Mo)w? zFv6$vMW7qUGy|(R9mEW&{-CH&`h0L45n~9pFanFKNmvK*W4z4PaT>b@jlE7*Y}W4L z^UI`|SgBbc?jdHNiS2E-e(W&e0|+)?mOMr_vk`CLM+m}UD4R5v16@a&W`QSojhERV ziOLLxNpyAVz?90vz+PN^?2TZH#_Ph2LO%cE46XWOf`w=*3)1cPqwDMi`Y{k!)nP7i z>rw%6QmW>l1JNV0T(A8C6*tVrKU)4rW^og2pf>c@DTKS|G4L%Ldds8WW-%t9!Z&hN zj6!aOoCvuGklX4XI&fJtUjo?FU$R_UrDS}3U6vR)AtEQ{WJl8g7%s%P8Uu|SO=NKf z?kiMcJvtcwj98|QB>1r2dl3zmhsV`jglW|(r?O;d6~qJyo#oIwPJ(D~LgHL}1A;t8 z`6|Kl>oSRNXvDTEYF&iGAr?+?3TMF2swXt~@RBSSW7YT?3kSQSPf{g3ZZ62yUsiK~ zv>4=0(Qk=I=;=#@y%cKzR^1=%wUt_trzy`%M8qazH-TzydlaW%9`F^H*pXLQzk zw^`~L$33(34TV+8N}h_ksG* z;GoE{KEV-@V?M3&cHkg#thZM65{f#o{k)G2Ta|cQR^U@)38J5XGd`Fn88NmT1x^?9 z^6G^~4>a#Hr5E8ZrUI)%?j|GCar^hMI{tue_;3et4$?je@j;322k`+M=wng0wN_<{Jxg z;`3!J9&Id;Oz7({N@~NnZ~F_hT?fcIV&iE$r)3UqE(=rDyAi-{dR(F_Piv43HDB31 zVVS{pLt+bU$B7Rh+R+>CB>_>NeoI2F5w-pKkIe0PQB8a;SL zA4Y9x@?byGDv;eV3s>v4noC#%+6VW`*wbLLm;6;1hY+bo=1|#= zrla5EADmp_&gr9FsqgDX&>S)B=qD!5B@bF3w2Pdm*~EHC0s#fXtySKKUy-9daqf?k zAKb0)gfvpG;NmG0fL%Bu${|IL_6nU({btfcAU6{doO=F}>10vdQL`50^e+4O`ktO3 zn>aeO%DX@{KMC|$0NoVWi8(^#ZHl4sQnNMT)OR|@UWV9JI{^k7ZH2gwpOx>yk5iex zuXw+IhHn8*%J$0s9*bfp6A^65Q8X%6T1WnpU>p)%h5L_Ga{~2Efi3KyDbUP6W>Gz+ zjfYd_q&a%g!<<9vyrLwhk*>Cj{9TwPvOXahIQM9jq2dY7ZI-y>+)yDjH?%3R0z<`+ zg-#5WP&|1ML^C=>tL@kq7=abB=i|-rN~CocN&pM=vNgjbK|Qbr+hQP$!j@ZdYvlm= zcH(-+Dl`1}?>M4IqjYjeuut>$1M=GyKPo5!uCIHRtp;yYA1I9C3uPPUqW2?8&O8FO z!ge~}GY?5v+LLgtS~;O-+=3HU+=(P51I}xQC}O*%v&J>30mq=-rD5ASz8DFeIgUGn zO#zTFo8GGjY5=(reo5w{GWtB;uObK+rb1aqnl`O!97Y+KXin>;VOvEVH z78&c&s_4`0tk>jMRg;(Ddkhhl))-?ER2S=i4Z`Mjs+=QG9@_vOS1Ws+I(|MmDp)@U zYfH(SJPZo%EJbUG!M~I%9sqYU7qri3sBp_*)^IRemvfh3p+EdMr3Y}+;n6CIl}JZQ zuq;Xr5h-8o3f+#;AC{9*cksqIG5-V^r?#oF+yzUOlLgSxpC$jFSzNCcxa_PlASlHh zIVK4l+`9xUc(9SlTB^g0z~+Y>8O|;d8tS931CUUGdZYb$9$A z7obCT&)_5awS@#+CAe5+SeW5xHU=UD-JOCfKT}h*9dT-G3f}cJC|EI%Mxfdz<|$_A z$ymSm`7LSWU^0+)fJCkMl~ywatr&qPDF;%5y(33Gp${Wv8SdaN7T=8G@Y)!`GNCob zCAgh}OVkcMbffQc6n*a(`i2@rWn%0qav8gZTkMV#Y()0sDn3N(QM)V2ji$6KB9dBS_!~Cik(YH4q2Xf^0&7pOmhzIcL zC-+~@`4}%u;f%Qwij~W_Yc$hlW!YvGMHbQdA zn^r`}lRX^%GSaIR%ZyJ*7)`h$@--%8eKsw(*v~(nX1qz9`=k2WR{--onl-d ztsK{9+ZfclxYh4j9^8baT=1ha^J{Q$(qa_-4Xy-ceg#iapd=pIsaM?~W6`T-+kfe% z7#o-%4I7aAelLCF~ULGsINe;C|}UY?EzBt;ljgz){jE~8(gC(Rvc@N}5`5c(GM&dU<2 zrBI$~nRrz#w&45^j?rCOoDy$w-l~N5_&W40v$OA}JNGMqk5J+_b}V= zAYkwcpo&PJiJnknSb3WM|CoFK_^7Hge|&Cck_>U=4mxVIQQ{g~#!xqrR5K>pNysDt zlK_@MYzf+}rG8er8(@Y6n}o!h;M^Q8rdzPKi(S84wq?8Qr?eGB3zz{unSgvXh>M`C zpi(>Iq;3hm5JBrTvqHf<)%AUdv+;czFn~P8}9mEh4JZp5>C4A2s z-V1v7!_=s6Ctdrt5Vmasdjtju{4*lv@TbodH{mgg5X76Y%o+amK$YnpySnb~Oz;+@ zn1xTN$G4*uen~s@@bEE{>7;-wnlC`Ay9sR>HmBIOlrBmpmu+apg*pegQXp)-Ky&vQ z!)9>Sh(_3WY@59^rKCNx5g%l)xX7gCyI1LBUe7-)K_*8?q z#oCYGo7$g{95(NJp1j9{S5;?zszNr;9%H$p)?vDL8s%GoY-i%@ zQ|%+fc|yV2D2Td&WjmQ7o`g4tV@zJI@IqWMTp1J^2Sf@EwOv`}Pk_E4W~BTH(Rk8R zt_9u@_0!8Lpn|8mk=_i>p=Pf~^tM4y{l3*#=>YVO)sqR(1s+#OUAGGcYt46Xl*fZ{ z0WD}W#@7I2;on#0r)k0AX4nUQNz<|#2gvQCY1t?IJIeetE#_OAmen}ydIwF*4!ku= zHW2a&UUN7-3}|>{-14x|z0lOeivRe}{mFeaU3ck=1vX`G?v(4Bf{_?_ZKdv9~x4g#zS2 zzi#kc7rajEzo6~8P~&+e_yHN5>WNk|-8iZF25AY5rw%}x+tF$AMN!wC088~ELAv7GDH3Biw$OsmWWb}%`D>I;>W$CnjhkYGDS~%|)DFbE1J>~1xME}LLDc69e;HGb*;x&gFSoo%6EZ?|vCavm34}J#P)auFm<$ia7HPR4stoaA5e5 za!&X+5r7Zr{!OCs8FkJH^hWE$!1@rq*;nQtX#2jT@@qAelkrw)M3pdd21%AN&vNh-|+_sSVdxRK?O@*{kZHoOH2(LSwN%KqxivUBCQ2@t7q^7 z9mZ?;0XZSXVe}RphX|e=$vVbR zL&DnvmNRuw%q?=iBVHIOHf{Ps3^VFRkgvo2mfqx~1&I@p-fF;s0oW(Q(WxbhemWeR z+Ho3TiE0<)DZLu%sZx?iZGluAQLJBBufeZ(v?`+(7~@9bSTBi=*2zgrU|UyT@J$)o z*U_4V2UqEdCB4Q%lt&3FpGC$r{X;0JU4TdQ#j~W*Q@ig6NI0$dHAEi}`p+^?J-tmL z!+B6zj#B(LIBD$E6v{>cx@mh?IkSWS#!-QAIuIEYn+2#OC@cf+sNRpkLK7QwFvST- z_~>DyLII=EQJ#bI36seEReumvw(W8-8T`zKwQyWMRJ$x7mbe~A&y9JC?jNMWtw`4q zxEYiy9v}a{iB3w!_(>T<(hkl^h$9lJqddzJd`It(J%(rF%2$(xwGFRvLh6Sz^+;LU z(Y87a7>QINSBtq0sPuwmVxCRRvV)>RQ%QR%9ZW>wGft8|O>d}_faEHOX3vt4-jB9G z)(U-t%82KvG+bbN&>Ih8zd)w1_)PE@L;Y2`Nu|H4G->H*%^kG_t@p$~2XVu&<=(TT z_a2<%Xn2#s;dnOpnvMsTGhCds1W(U_;PhsD19iCWDewk6E?nGYAS=3j^5QO&Fh>}Q zAI?iVzgBjcI7;yRj8XcCS_Pf9FB*G~^&vz3wp<(zTdKq_!(kQ>N6~TcrO2XjBkUd5`+!aFkAHB_98X&ms&y=mwu7jB&#w&MhDNfeYC zRN6nVe#yPGiG(D}=6vYp3G@7RM42O>BRMCM`rI7UoI+|FP6b#BIhNTCAQ8mVBFb70up)x%ish!Q^X6%|6H0-0>0g7+k#>?<7xgN4<3lj z-e9_^x2#ZrjwgVJ(z}6O-uz$-Fk4d~XaU$?xWk-;_ybtmu({QyHy{FlRD>E_Ka})G z^!_n=kMrzMyBD#r-EZnAf{E_4t1dHAMdSaLzKrg@or2rOxr|6f1??}SMX)RTtz^}( z$FGxwFU6lPw-q+we~0H~SSbgEv-{Ox{1WkTY5$J|1YhWd*1dp9p=>tDO0?b5)z@+r z$ehrBC}88L>MRLEXgI0Fb1{0-s}Md#uSyVFvQJwd(DQP9+G8m%K+>cKg8w*tWcYPD zfo*j71eUwlN)^RzOM3Ma#sdiRh0Tu|swy2tQw~wJ1}#jU(1I5&{0c_gaV_k{Nr0GyXkgMjK-$&sNwo zf|bB8y?(tB`u7J(85S}^!yUK)e-Fe6o#Sg3k2{jUFrB6P2Tx$q9{0fNU3-R?vUOVx+OBaJd5C3Ua_39fRZS>*>1=x2)H zdUh&UZ*6vX-dg=Dx^K7ZqwzWbL+&SBe}MSiYOWvdkdz~H15G8aI3Q3Wxvan3tp5qr zU&Hm=(Qj*$(=&?t+t!z{+eF|>8jM}EIILjJ>et8e32M^EtI26?vd1gZ^L^=Q4qY_O zJh&Hq5?&NrRb9po4z0V*YJp7ag|9=Z0LdJpb`4`UBi$SriC)7oiRgoGeLPHv9l@Y1l)X4{v1bhMN6KDsflm&a$b(=u|X-q9R+fJ?8Me59W z>X^a?4@#t`Ozm#vvV;Tbx+c2*6g)V6sSYDHy5)akvkKiVTLcm!^Pym>tNS`)8v&_{ zfs0w?sRxsbB4u2b0sTC>37zI?{WR(Ky7Vy9Gmk++IraEJ`2DH&J;8g7@?w|)4O=O& z!&8~pekXQSblMRT&{)laxBVFMlF?Z*c)U$I=Au80y!yG8pO8M9RMLd#xuA?-lQ!bV zDWNPj5OH-6;)%nkRPX~j(<`1P9Covd#7uItF~AjIVd;MleuP(C%!aFRHVl)01#NdR z)5&54$fyIvGbIt*zd)6={H>@);9qHiciZ*^lD{*sZMot20)GK%nIQaDJ)u9qj#965%M;=~@DbBh-)A1+xR*bUYeHv3BKPTf$H;szbvgDcorkaoqKhMw)!57@f z6Sn~fzP?bH5$y1L&^U(Q%OJM>$G@dFPl3ed>_$Dw*biU>!343rx$iyH0JB7Jz*KwF z7t8pIjaX+dr^-FWCaDDa=D0?o3b@b5FK@d%mc$@ED48gUKLc`R|Lq3@u5 za+M0gyx}nFijr_!H%f}o_6Q9zxHjTD=*0&S9|aCtVi)iyJ>O)*Tv=oduBDx#WQ|zq z=z&v5;&4<+n1gP(u^&CO2A|S{T@ha|RS}0FAXEsG*JNn-b;o1m6_}N*w&4*OJL)&; zC7m%kN&)+S7J0hNDgx7a!CDWBydJtTxYv5-;D zXD=V2)-?d82U<)I`l0RQ>yso_TeOoel4X%KSP(W@?3e2mlE0K#I69r}od1bAjD0N& zHGx>eV#N&;OZtgMA*w<&=r#3<+&T5JGuq^I+U zsDDb7{6gR6#n*-xrmk9Cz@GYJ=^ty@B;rUiD-Aa~>;K|)y*O=)*f=?HZKuSSF;%S9 zU{Xm70PE%s2(>1kpCHvaw}j7RlVr925_KHl?xsF?nrthJ38=yUg7|+s1=!RU5%V1Q z#RW4Q0~S*pw?*exbv=qN5X13Pv)0>9$HPDQQTHlp?=R_kD?~wby^BC%9z94H#a2*3 zI8aA51$*^vq`-}XMeQKmf?c;{s~+s2v0ct3)_Q^+E8qST-{MQN>&$SZq0XFZf>u}k zPGRfBCTFY!Ha<+Xnt-(FLC7E}`ye*N7QDpDi;>WmW-vN%16_72-Wj$cFfS>^KCZi9 zoL1MsAs&d=TL#f>O(tIxpcT%H5knG$@;a)`cMP7UPXNziF^RywK{BRyzJsv zNXjq&ChL2XSk=LP2e5M2Tm34&o)kR`uK!96?*^U-|VBH9g!1L4+osm)!>@Psw zG}6*}9<;wp<}~`)mzd7{$b?u)H-S%QJGjxL=&anws+6{132`1)tPkbTIa3}PgZEmA zyD$qu-1M*!R$W8B$ohbXxh{2$YaGyt%@QWi7t-|@(0_*({vx37M%Wu+FY)n`jrtQn z=aEQ(uv&ut%hW6ziLq-4Mmdl^IzzOIhlsyP_yU5&gJESy{gr-9l833$%Gu*)VJ#bp zLZW2dXPSf289WC+M5RWxA`DuEp3{URe2HcYffn6FhYQ(A<4G*P8B&}lc(nO?!HX0f z7Q9G7u>~(uU{YK~AtLXm7L|Rtqrvw{GEqas6hIYX7^M?S6MsrvQazVz`3K_qS$}72vte{JHlv$c zK#w>7mc^X1u|o0{Eo9W8%h!2E_gwlEPscuOe2+d|b;H<`!kbJPt#coZk%v82@ivlg zWb52xw0_GcTjy71>zAclr=3E!p8E8}Z@6{4(M?a{9YXf78~MG^tKd=`MMg7H{oeo* z5_Dw=Roq8WM=2R3dN;j6p=v}injfS5LR2fdxjEcXzEpEIuoc(+4b2UA0C#ue4r=l# z=$W}lwoRwD&m!YF-1=qMS>!m)Q7+CA#mRsZntzerAh@R47NcE-l<9CM#5tn|WpYEp zHuYa1dpPwCNMo1OK2p^6d%6y>HbJez63)d_f%u(n8(-w=-4?o7>C(4dAjSPzEG9hA zw-w-T?5CIwZ5Lfyg4gawbII5w{7G+bCcS-{N{AUGOuc|e9a!b~^Wb~&m&~sNd&bc( zF|K^i#Pa`4>sQ-Fy##H5pQ^>PZ5nRWZgyYqcH!F7ozG8bDF~i7WMKpCA8|XXX`lWc(ChoNhgPO!bB)K%rNP{TQQ=q^<-^wKRr=pv>%gP~0cGMkn zJY!YkId^{-eT$67JeWf6x-wea2T-3@YX`cM#C5OAW%8e<{Phu-eA zK241jF2=cNsTnY#9Q!F=q###vR6_0+?A2+w0E%>Oi;!!nDGw=MVK^7OX7whAzVOqa z6W<`1Mu1tb8b@)=Sw<9_T-cvj2!_q>NvOsqf(0*jvC8fqwle%u(35z9qfJ*j1K&u& z2e4!c!Eif3Qo;MFd{kJGt5@VHZxzbGp(|dO5IO+$Q5r%(K#RHZYjaJ)0EdKy1SepTUi)bfishkdlYHV_Hq@EsZ^zNk z*++;gYvG|t)0}!Rth| zY4GNsV-?pY_p|q3n*iStsB?N#o%tK?jM_!k=yZp8MNo%mQR$dz(2H8E2miqNFTT;Q-SaEZF_UVwmToo9FNfp4_g#W7~wkk0sKmgDGK#BQpg40Lvk)n)B9 zSY;j^_{hrRveY?hF3pb1*ThpxK_bsAbr_`#gLEQbJ#1qz8hS(4@++!^MK(Rf?p`<6 z)=!|3##T*~PbP0NSt}bX71-^ihc?!4wKH{Xw=y_&0K|NYvu3d&Q4iwxkJ;x_>*dTL zTD)r4-ROt@G?fyQ;dq5J2~Bd#kCxe#Q7js<%t1TJGCR06D&OP~%dnzdkfg4q_@=Sp z{qE}VDDcWLREq;V)ozM%P9qx4ZiGn>#)oCb^3(P^R>2hCP26jI+E{-j>x8vo0eOOA z9IvsS0$5ADrg=+`-GT~D{E}-OTZaXDHn<$gU7abd;c~hUY3Ho!y4`42E(L4rcDb{V z9gQk?^9S*jf_E{Uc^A%Cma1Q3rR)go%~1L*ge|Blh2}VJJmQD;$ND4!zPP6rE2P{!cWWWT2aMBN+_U4J7FPK7KXcNiD0s zn4YGmkXB&=J@|X-{n-B2g7;b*!sffkU4r;~&NGlF3_Ep$oEVvyu)&-qA{K`Yl5KDW z&fF%;VR@JW8FcyN(PK)_VuJ+*qWe+19wC}@7dk*`ofQa&U!q9%KO%lJEdX`Um*eTz z3-J6N*WUpYrmt5~HiSH}je8l8wyJSG-R7WPkuwxaVYmV_$vq{ZdmHz(q(DlPW)G3q zcZ`fKM@(b!*^BstGVMDy3t8Rr3NZCbfAj|G8+M9nl-74K*1u-@XGwoaMCfK}dy3*# zZBKw~N2_IS-(S!eZ`0vuNzW*G&k{Bd6+i)E*w#P{u6K-=mqe+x*{=23W(EHkFNeMz z&MHQE2*nUuPgpCmr7{qLx%4~nxkxz*diT!%OK)M@*CMui5MS0tB>GVz6h6C^;(QWh z!@#OUPbWiv37Oc+1)yddrSD z7Wp=+wdGNreeo=gD=MOrO)F-I;Kp*$J4==xbheZ`JE{kx(I@Z? zInnc|a$sMQ-~_PY=7gz${~^631cb#1Gu?!&?65||W#Kqt>9dg?<;N&TW+g9*43Lck zYakhaNNY=20yqG90AbKZ$r_x%(Rf_qch<%Doq(yE@H>M#lVxqOBf19o9Y^2s=~gk9clH^flV3f+eZRP7!yE_gTrDz+~N zsJnmBddQ^?LkXLJ2dWad>rz$BgJ+q@+Kp_Ii*1qQC@aZ+||GU3I~Q_CA#>2O~+Y2im1#-dT^q+nOYxhEqwtT zr3f!s4!{IqbtrwsuY$4Mw2LKH` z$;G`6kE=BJU;Hv3E0d}tx;W2<@G^2Ck=D`1g!o#4Y11ZLHubm&fx!evulyX1Iq(Gf znGv{}dKHW#TXwPRCB##iG$Qb{%@wzryv@a;fXR>|^%0G=wdAyHDI%x~AFr-{&+O zMdS#*CyF${lpMkpe7E>4$>St-Q}A!<{VMrBFZeFow2=yuha;hg9$jKQ_?*Cm_W1oL z-~%d8y*`Fs#r_4mDhVUFSK>Fk^U}mTxbJqJ1F)@sv#B+#WPWt+ia5nJm z@E~%nj)TH>wpC56e5zU&tM`%%w-;G ziH0tt8BT?cASE)G#+{~D*qt;!Ump8;jSQ9Da?o&pM3Y4%C9(gV|OTW;-2xBBRgqZoH}x=6u4xhfs$I_R;12 zR9$c%UG4)scF-;rn-4*sD6F@NV%R0q2L6HY7{GfLz{O%ddH6rs1kMO#6PlFiB4$p=egqaYr& zyBELc9Eag;5p#=l|FdH5gSvmS=Kw-4;ot%)0O95a5a%un{Riw5E(D@(mCkUU<&I#c z7Z#u264)x1>J`&O{T9S}`Zptn_y}lS!|CB8ZeZgUIHVf0lZXz!Y5abPU{+E7xMNnH(0fk))YcV8nWnH8V1Hz@I`VlB`QX}DX zHD|zo-DN?c=jo3+CyXA7dDFzK>4=Z@9BM^Y4;LKo^!lw6`cuD^9PnmA^f)OT>$>*` zZAJUxMm;MRV(lM2VfE?oXc$Nxa$H^M@o#E-h3D!)f_3M_1{>hHvqe-dr9l3MCNu*} z*;k0<`!*YtK*9G6augGQHwxdTG5FSR6pl`69|7x*9U0D zwzj>@gPulhd8c~@+8hzzGc-}L5(NOkT)^3PQ);Li&6i{J7=gv;Q;%ax2W1f3j1N1` zWvJcQ3oQB}1P2<+kosYhQC@1?|B#k^NNqT(W3GTP-f8+P?uapKBR?JBH4Vw@ru24b z;!ESRJ$W-a&O?>m^=5EVO`m8$-6RDKBqdaR8*Gv zx3>Ql($(ckSQ%Ab4!@n@Io(>o*tWLtV*pDvK4xYC_`j5(US`aa zKz@ljN$81gp+lPr@fWkOdZTs@Q_!|G;@gVOK%Ef({3qbOxo6P~B?Z9CDkufO)&|dL z+i!qC9(HoXG+moo&po;6qL`a%FMz$J{e8^NWNUD%@`^GHI_nv2{Q`}vwp9c-rJxNz zRfcv4&GSTngFV|M0Zypxr3FA^k!wITVgz#uQ(9h_y zeiJo*6{-}~Omf$A0VcURUrLhO#@Al@ZaH5v$^8~CV-5&-DR^RkP31F|o$_&E?$n)p zDLZv5U8g&h&u_R>SK-pAuA+82u1I$(`8-{6r~bf~vQtsM=1%=LUvj5j#iho{knctf zX#^oyr{j(5DANZRG*E3iC>bK}DMSE#G&TJG4GMlUDv7P69T@DSC7J~aiXC_!^%#p8}i(;d-#%5-GPI^Q)(*uA5&5rV>wiEU@^w|fPWjs zpaJw94_;P`(CLHv2x6Ij0MDDVS>6DoCd&MR0O*-?7y;UJqF3}N<$i9m1Ya;~Ifz=o z2d|b1AQ29jP6HPGcp! z)^{TOS?PzjoLLll%Ga?PP5Ra5V4q+3Q642u&uHW0YBuDcwziXHZKn{%-8vmkmPYx< z)DD$_-hhVlCGNM{RYMzf+bM;D#{ml>MgX)G6G7V^<*tRyrZ?fUA@?wh`XcxmSzy{u zir{hGwp)Tr?Y@i1RnXZp8O*KT_8Ov9^bxqNk8rk!!@r$#V+5hoM)@x4g|*!t_nGo! zR3MnL*@g%`oZ3+Xy>8TWt!#9Pua%@d&`DYcdJyy;X8ug=ei}82FGE-Pf@s@GBbuYi zJ_m_Aji57>+`Gn!^Pu31I^C04jlSdAw7A=_-ArzKpq;9On4PHWqz1T&L0 zE)c~UoTmr=9Du|S2lU~?A1K2&A-@AMkT`b3@@3ndg!M2uL^&ZI`#g~>oUhWJLBs0b z&S=^noCN%e#Qq4UixgA;n{7PLM&2&qCZDzV16er2!5{~yXdZkD`JvkN0`6&}$I_UW z2Nk7$f01Y$(C^PjFuQ(#LAAcDL|;`JsUTIbMX&HiDyGrZY<=EzB7m3BD1rW9HFxh{ zoy|LP<6iz5+wYaW@VN}U9v+J~hN?i+BDB__=ZH@`kIieFP~Nl(O2azos*pnE=a|1* zN5sp}k9di0!1~UuK~H4=V1%l0LBHaNRB!=g8g1N5r6?a6_lMY>&x^Ts>s&bY zkPu zbnj>2K=7i$(FQR_AJgZf9TXjlp$!L}A$?#1gYDi=d7@jgjo=4GZ^kd{_x=8h!^eL0 zMI-oobk1iWUCr={yW>#5kUd2|qz}CCttCsA48N}rB1;8GtFq^jJvsVIZX9-cuxDfL zZl7WaElxIQ;Yr%LE0^0m!^;nJy&1Tonp8Nwp*5v&#ZrwTUtlFV@M6qdefJ1#b$xLeUi~NXA$JZP2d+d3VHWB#VymO9 z9$3;%kzW!~V1KK{;&$j8D2Ai^Rn<4py+6XSBwla+7YT=eK}6lzU%Mr%s1GI{6P>nx z(P$%dsx$n9o{v`e;*-p2_>=g=J?ZJn{pXoLshZ>*6Q#0|L(y|?`95Sp$*VC8a)eE< zmylA?lU;+%I(vJZR7#pZO0`=I?Z6F&UyL-cC28Q-Z+GC{qcULAk zqfeJ!8pis}dfe$7O7Yk5X3Eewva|8hkwbOS%0X(z;S>5U0uhf{<4a56TXNtJ#$6Nf zPeN11#awD#iKnS5tgTPLfP*Y8*Aiv#^(Q%n?&0Mhav={uoPt*IkSTM%P`l@WMoz8pKddljS4=*oyk%a{7ZVWE$g; z15AJL_ZmCvTLRx8ls&y-(ep$)$LkOE4dl%)LmY-<6G*CfnjQTwn)+%`R$gG3dU|h8 z{fEnu?+3Z#IVe)>VmxhCt#VY=WBWx&4ydLls~U^sG}fmaS&ij%D<2J z5;v;5Cl@1=VWN5tzMcGtpPpnD4}x3J&s6G1aCXj$%hl~yYaivP-9z9cVMDX)bi#c+ zulJF@8;ir0$oA)VteB+k&Y_&_apdB#>r+x*60#u^uHbLRod>y)?c$CypDXxzotzC) z`bw$*!qzkf2xgM7A$A1`T)y1RdCZI2aJSi}c9HWF4qSwR;TH!Gtq-m4-grZrK0x#! zDUc`2^&jcU>Vv5C5FJ!wjH2qYHkWGr5f>nQJ&w{EB;CUhOC8q*zmLikI?<->4sb8( zc3bYB%zyH;2@OQz8ND^AyX{HTi*HMj%{KH1;c_~EN-Tg|;L=-)vMhnF>)TmovASt^BDeYKQEh5QD8>8d!L@#<>9qw$T?hmD8-`U!OeZf3Yn9fRxPF}TD}nD|2QQ;n+$Xk#$^Er~N@FihYU zXC8EYM40eqeCl}o#wmf^)m&gysqI?GVCTykT}Zy!=xBXcKM~KMdq>+>(~yr(o`A31 zM*!&0!t^=l9wF+nD;$t3;sJ7X`(Y~N0hHlltclCU=riNTUorvrU0grl!gjdSGAn*l zKM^BJIidgQ^@br(qLBnNvX{g2Xv~QT987nz9lj}uIvwgh+x`xCro19%o#Se+7n-*( z7!8W&=!$&kOpdWj5Tr|9RZt38qV3$V;1T^ORGdGh6FUC2(3kkZ@F>}EhWIz$n_iFT zPg=i3*1JrE7sYe%2mG|>01^s>dEwv0l?F;C3Tg{%IL|vn&(Q9+1Tzo|fp{i(jLx+g zbxt_b+I1Y^G!V}q$&!-xF&3uU!{{+R0jJFG*Ys0N)~Dt7L;p&m7@1`uiS%ISA>C3! zJ3tTFZjpo-=d~hy3lb_+ES7j4GS9(b=8Vy?zLd5RWB~lb^?0!Z^vMDzRQMFRY3qS%m5v0u-=s>`1?DEYDduwGfMbzF_=}<0* zb}l2B%~qIrrZn?3=0nkuD;o3ggLABN(`pa&hAdv_4J_N#LiG1P!Ty+CizxZ!*BiSl zX$;Wmn0E2#^lzjNaOLl6AX%jlE(KqlN65$}z+1~vMxQ~QR1nhb1aFZse-W6D?0PsH zgCW=n9}Ws8doBS~41QkS{$-=<4%Gsuli|)}B8e@zX2b}ns&cOLoV*t$e7wp>7Xk zBmE}AoDM4=s@v!UZSUeR9==(&ZeFWr=EPe$dF z`PoV3fO1&fUXqP=Kh*l1cfClx?*2N~zJBz18YCTKp#HBtJjA_-%i`MueEV`|WGgW} z^@+~#Tts7nBy^tRVLwh$3;Ho~{8GD4VbHiz)iwW0!-s8J@2 zoT@(l_tfh!yQ`@4V6454 z(9>9d9aYi!(c4MnsH{F<%u`J~uRauh$EiNoXVjG@jjmF{;=3d&4;Y<{*>XKphbQ4w z8R;Z7j^6+I{;L1K=&z);Mn@@>ibS^Z>wng4?qAt#p1S?Kx;-Mg z9^=XROTnv!^R@ny+UQjEaf-`}&mNm^eeaBG|Jq7zl%{&r+Wc!UI@hQ0^b`12(GYxp z80%3|5@_T8ATd+^mH6B_MA_=}4N>$Cj(y}w&zd%pt{_G}wI`4f8lWA!=x@Av> z&i8OF(z&CP_Nd(v6o_9|ygx>|LYN6)&z#XsxCC)#pmQJLmZ{Vxdj<1n3C{W&xV005jdOc4f;ntc$s>!%4st4-C(;df@=cm}mC(R+8`8SAsD63W9(_Lck03Z}~zk@7hg z+H$I<&7tpDi}}{K5-#bzz4W)Xb*u)?QcLgB>jU+%J_4|D7`0yx$Fh{LF*h45Y50As zasaTx%w>yNc|evNeNgMWj1ympWx3iYj&s&Vl>i*)gG;eczOAiVYEd`rRkwc#n=o9V zEb*_3Re7){X77d_+Y+zSRwER{yvY*HF0J1s9>_z86{WzD{8e>FnZ@{;5*!u}6yU|A z^u4xvI$VRb{)~9$ZmL^bRip;9v{iG}fWxS|Ei*-Mh^f97PQJ8c=7O)huvEYXt7b^v3Ou#UwiYsqh^T`jm{Y}EE~ zPP`O6c>e1IoWG#wTQ(gEG_eY2r$vqJ9|7$=3BiXr!f-DtS|}ZJMJpw5$Dw}p` z9BLM4CX{FOEV?rpYJ9!Nb!W(rQzA}<-_I!f1!1*X=|44F$8i^P>3kfc7b(q=`uSO- zgDZovx1xmHe=59ic*W@_7;SP%FOrc91RU9*riu2{A1QUfeWwN=rk>k->R&Id%Rmwg z(jDnID{-iY3Lh`EO;NkAr;?O{-ma8Z!a~9Jk7$>3xSjJX%;=b z8Ba6u^nB`RCOzf(svES?wG{_86xQ!FIth?vzN77Kcp{Lq`0}PQ-@!II?*_4!h~?>V zU5z=hlE2yHQ2pzK4F2Oc`QcBtMSadS7dU~V99DuY9mE_A;sBIX{>-Cr0ff6&O*m!q z#;0+l^Y^CxS@J-CKoqliT|(hW1TXd>fuBwofYv53bVhZ0i_WN1s`1C^okmyqd4REQUL_}?=>F8(Dsf+xXs&~PpWkv7(f>%jwTt`gqFEltDr0b>Po&;C z3lSDyV~720j#G}raLv-*9z|-Df7yg_DSPzqKZRf8aUzWR~ngzNDNmT~w&Y+?#8Xcb};6-{~IMB%j!1zrH#u#*T_buQ2d$F64t4#SHen1cZI zTY>|4Mv7Ksf0L)Ga>{c8%~Cq&5UQ<;BIr;u)HOdRC^k$lt9P!*fojHmK*15_h`cMs ziUO5Qf43e3p-1o!tzHDrE_FMp$Ml9;v0y$nPtm?mKX>?>QFZ%5WkzH4#>4vJTFp1~ zG2CbKCh!}gdOq0zs!PSHS~1<~ zJLQR}kG0X@+lE99IjRu?Aw~*IB>L0uK~>b;GbS)PAi#H@|jNf89Oo zIkN;};u3Wx`iMuff|!sY^5r}|VZ48$yn-D7pOhj26z#__$Ad}_iTjcCE@5WUBkgTE zx^NNRTJK+Ky}y*UoEn>`$)iIP;e41)K{0cRuo`H}$VmvJpxJI80x)Wd5G3oTfQz&j zK|k_#5zlaq0vwlZ`VtEKK?zuTML-*|F27M9ptaQkLss6M`oh|t+J%STg~sbnrTExQ zwe$7b+RnBFWf^Qnkj9WuD8^mwUJLNkZAH1z`>+B$;T6r;FF;bQ%a>x$gOT)B{j_`F zE~34=>5p2S&|jx1fWsSHQxTu@a5w#N_?vPh(1lJNG8ljivL6W8k{{GTHpD*U@NvDqJcKt0g&Fb zK-B^40J8*OWURPeKOLobQ{3v|%jz9!mmfW%X`7EL9|2!3SlYcGp*H)m17U%gQ$n3DJm9IqrA%Q7Bx;WCr{k(!r>v6N5LN6 zNe*s^g`wQ-QZp4j52janzyV}XkbUU^m-_)HuH6e=j2<|GsS_Lp)d%h}eP>izl!<7T z#xJSmA}kBtiu?{lR6A~=3tvXS^b7FDiaF>qFmhdcu zUs{%pJq-(qd@iUx{0;yF0;*&b58ec_S`C8g6$`4snpED@Py&KEX9-PngCw7}Rgk`> zit6dl^P~?DbPsvL*x^n`-}?jTMD>GltEheuji`@NMt~(Kv81q}Nj&)sR+HFG8yo2H zed0;l+Qe>pYWp~3yR$~;Ys83QnZxdxu_W2Gh9Wj*E$KX$v@~a`&+U(^oo{zwjfG>` zong+mfa8s}+w4@7_C+)-8Ujdl{Uq@Pvpw9V-Vnglm#yglK4AJmyPKCF0mkyL*P^p2 z_$@W&Dp*+rmUh}zh)7kHT8odGFlmq*imm3R1%QcdUJ51)u%+1MpHx4aV4`H{IFbieUhWrPTlm?)`%=$eHtl1ri^4H5j-iz51cp_c5lwo_Lv6Au_4qp-AdU>T-Gq&J6!XJkmPIJwx+Y!%o3RFT#5l3zB z=#tL!N#d%BU#N28#Iyv_$~QqP-(^}E&+gnSY2`_LnL9=+1L&j|43MOf2w`Wc2~5$# zqk2ONv<471J1|_L2$DYHRL|x+|5_s1&@v0vf*IWk+@xwvfSKe9g1x7HNbP=w+{6C@ zQuR~+XT#ZRFms=URMns#AXTT)QC_c=|AX~v4)`;%Ba!)^ZG3k;{#nNN=SbdkQy1Jp z6P2QObD zDZ`6*@hMp1!R#F!be*}Q4?mL-XQS=Uhbl>1y_DQ5mf<1N*1pi~thB=^0B$et!9!66 zPVTlx`ljj!+rD^xJWn62n@T(}KYO;L=>486uhRpBr(lxVbznML~E za6C7(XiA1L+lr#$DA;u>Z8a)wC=Cq(mAj`XwA5)cDl_GyP@NNrk+SsrT%h50bSi!3 zTFOIX;4Lg8meB!mtp%xqnpl>1VyeVKm*<#Tc?`k;0z&OLc>%y@d4NPdS3xumH5^_j z_d5hKO+qBN-{rm^8MRm>n3bokVvzuOxDexy?`Ju&sw*L(MXJf;m6pwQ=oE-jna|OR zv^c;Ih^OiK-p=#A66z}?oiwL21`n2TxWU!hg4aWdlg1Aym(ZeF{&|!~t2dHee^mfD zLMX>Re*c0uj9*B34y89$+Cg(qJZTpNEn(i(?uRm=X#9|-lg_V1&mY7!DBWMrhcVx_ zj<_-6!4@p7oaGq+PpNhrRPoA1?lU+Cj*Mej=#sUGO|l*b#7%(r z19LtB?^Q0(h*~)U1=*dHToLf5)C;Dp{7NUf+s^QAaVqUDcRRzo1)1M24R5t;EA9RO z|H^hul zsIg!Y4udq1+uJ{AEXdUT1IB_Z-uKqfj3oa?G zD^dcp<6psVHWFl@&b-@jItv_<%NkF$;U8hs)j_oHT?{O z1jI2Cbel}xYMm)gRbZcy+?5owa0Kk0k3%kdh0gct_C3fdGoHahYKt_-G*Qy(LslYp zL%`awRBwRV=0V_@C4L{x1L-}FtJ@vQ1ja66t3)Tqv36s89a>n&vK&*7SsvM!^?gJ~ z8kSa|eswzzkwh#tiE)HTi`=Jiuir%C)Y;hIn2$gETK&7aPe*>WtA|*zPb`3!+dpLi z#O^`)^s)pudb<+8p2%;A7a&U?C<$ z1s(VT6X^@Qc)>(Kbm+bj5yz-4;!W)_+cE2CE;G=AzY4Op!S(=s<>DGl#5d(lO2WB# zmy8~p#ot_7BKjHIQJY*i zlA;om5}-g`F^6|lD1%wKgiiecbtnkhoRg<4b1Ka)H{vkoa>17*G^8rG^1TVbdoR zg~a8-sL*a7h8YXJ$;HeO7m{*6mQkFhe39ZW9Z>@6VnCGyzzB`81*UN9<8)aMm(}F2 z$&9V~j%nv7soxL7*gyxk9ZLgEu_#lH-x@6aG2G`m6sw zU$J=BPo^LCh`m~CLGG-xz)2v84IF_b>csKio`0ba0(a~DiyGAD)=z#2AL-xkzze$j zJHCUKf$x^^9kr}Jw|4TwbT_A!9D%tLU?xG$;Wy!seuCtW!1m+Rc-!nW$RZ+QWZ74{ zZYIoLoe%2&Ild~u6`jjthWSQnz+KUu8T&gO3&#?f>7s{Xrd^-u6f*(*Rhh`nKo>iR zZGHY0{GlTk?y+6G8d5yt`qx;~ADKCgYND9k+y0hnoUZigGt0%yDsfMGmGI5@RdQmL z#qx;8kOmO40#gA5(LrtEZaLpcaIMW+$#)W5U0E%3H?uV|Q?9I;ys{!Q1JsAe%oaH| zmenIOAC?bm=_l=>kp^r^zmkIQxbts)`E0BN2}#B#qsorb;^1lFE6_$tgOFLq%w(r& z7LZ*5DY@$HW~8o|l@C_)Y9O-E&m#32g|f`fk5n?4aHBn1Kxqg43Gq)K(Q8EN--nu$ zFGyq^g!i|efD5-i9R6S`a#f&9Ze(U2K}j36KMzR>YvyJB9_gWf z_&t5abV_r053+>h8nd$Xd**Wd(cyRWuhh-fzcQa5S4?{0KYsSJpAElr=zaYw3#kKh zrxE)E`GD|;rX@KyU!RH1j$Vls(=YYbn|fP!skc=Ttq=S%{f8zIX9#m(swdwgPMW^1 zod!;sEK$^~4Mn+GyAV{sa1nQH(ZAx*zEf&}C((Cc@XgV_1A{L~9JfYh^0vZLcZTL> z798B|`aQXX-39+`+JRH*chdkH)`e++{T^##V6tSyrnGiih&trmydo$jM|Vn^5ZO}oh7zcq?? z6nsl)LZI;yl8SjwIERda#OTOW5_Ak7QH~h%aaf&yD}IoyX+Mjf6n!jk+?pa`%eaI3;{1B{!`<2=>RwyH;;JNy#2|^vqt!F&&5BYrx@8J+tSJ z-G!*-VgxwD8{;D#nN4QTr3{j@>-74gVs<%&J^)dKDs}Q{xa^ z@eiY%a#(L1vii3`EfwRm z!!Adh=nh=!VfP_qZguZbPV4o9@X2B>8HrtbY|fB%W@YdXV2cZ>tti^S`3C+$1!RLy zl%?SfqD|O8lry5S%gDP@Zydy6t&LA1x1W1290Ks_L*(|t35(6gq{2 z6uDx!UL}+xkiSMlbr}jGDVwjr6Jve`Rw2-Q9{>}-%2Wa@Jouj&aUWQR?hsBPrmnos};rFbV(IbfF(0s3DU|KQo zoBW}8v5EJo@txi4MfQ2r9M3+x*BMB}t3t<2GCTVwOf&NM)gOgb{=15M;PAJhN5f6t zcfp7}H~+hU-l^bzofb+6X%jFGWS)yrT)6hG3dR#&68>o1<2kxK6RpP)Q;NU6?_tDTX{qW&978>Kr;dk%35tDFAZ;aCDZWexg^i>`m3~$TRLwk#cMicm2 zYH(}myh|PrEzb$VphW|*tL}Sp6d1zyFk1Mmsm}$zn-MsG{vsf42Df!DcTjBTI zQlUa}GD{u*WGTdp41}XroKEfy>}q7E$0hWQqUEJdsd8L+ub}gRn=uq~634g!-D>_l)p8qxEI7dKNyfgq_Q+ zL?n>p%C{+#^cMWii8OEe+)|_wOXaDOZolBiuv-zMLToym)5ypA30y`hm`6$HPocdp zl|LooC5G4%p+6`{8$W&=^2cTApu2o|H%&Q(l#WCoAQ}RN3JV>mnu>D^ZnScVteJqh`=bWnx#N2YDBu5*~Z@w1UYf{AR#`F52!|y5!OZBGm z_#n%%@s|KExPz140g8gV*%dr+hiE8(vc5>nErCh(3V3HS*AAE;BA@Ms0-QgdS^r{AzmqV0vDJn+tr&&LL*>OCNa72d$OyDKFA;cfa2C<_lDb zTJ<^(qRy(;KC&%GKFlG*`!IR%!OI+ESQ=b#cm`gQuh>lH){zs6*Kex+UvoW`h?dHm zT=A)mgpoN4)f^y~Kt$f!-Lq{)@PoTQU zjt(9M-{^a_)g{o%o<#k~2I2eB?1s9_LQ-GoL~p=T7o7pF$qzPVzIKLLTQ% z@-v@89_P+1{9`|J_BiJ_a>(W+>r=zg2Qe$6rp|bR=GQZ@ywLdmPCWMvHs9zT&`w@3 zx~x3&GwVdn+=)--ikhVppDg8w-~66A1uPOBJ}KsufGDwg6Z{Nzh-l(lwCof5OeEAI zT?(M=8CM=qAsgwqbTi}zuXdjYj)-=-&y*u#zkvPAQ+kDq_;KI^>;Lk^vOMM!bofgr zf+al-1;|JZ;964MgT^V%I1otaU2 zXXi)}Y=u4qkm_H8X*dy><~|`7Ly-iRXg*ogJPiWsm48D4y}bxM)E7^W--@(o5DkGN z4bwaWL7c+LorKQ~W)&GIhtMn$+;}#Xnm*>Bo!ZZ|A;)<7zMG4u{Mog3yG3My;Em)2 zPf+%?Mh9J%640n(VjK9^OknWuFG5{HRz1lWM1O#LPjxO*CSaGvSt^)(G1sYwqjNE_ zSQVE?vTnflJgf0)ials3@rLnMuSwPK9)XWPYycbZ z4gii+lPf+GAIX83`&Z}CK|GF9FBc*vXZ%<%#g= zrORVKiwNRLw9?Chu875f3aJPLohUR$WFSRGxY|TGcvX&uvhBAEe6PEaI+yv zY491NX(7&(H@tAR-w5@U;XSYWdZ{L4{g6lA!)w6T7m)`GAU(FRyKxv5wXH=;2)+mz zy9@cE%h>(E59n0~F8&`}>>~Y-v3nW4-9_pwV|N!{Q?R75`^S9U#McqNUdq=e>ALMH zWA}M}_%J^#AE8P}O=|4U=j#XgTIDi}`1;&gDzlKU-{kB0biMsvDlg9n_aDU~6r3rJ z62AJLjbCoA+en6l;h=!;zzyo-bDe-FvJ-c8{uUFX3?xs=Xc7exdw>SbZtN|Tp<_gj z#=Zc=lUMAW?;jNRV*4M88F&s2iMY2mHjLfKygYI_UuutnQa?^7SsjgETLx=y7cBQE z1AkZ7ZHM21(g+bz)nMF~zXPFF4jy;= zhXU6LoP-WxZ#hKIK`DAdaTm)4P*9)tjtT`e4wk|}?~r=I%-A6K)6+f3UOFgN7GMKG z#`ZydK|$z{DQWWUr~0Fm?!4VGk4$Mj0)k4oRr{sqqFVS+T_zMY7+_H-fD~5x>{7s7pIy#=e6d>r z^-rTA-~2TJYf!I*z)Zm~kqlxgw6@+1^|2F^&1rnjtmL-= z(-90j_6(@bSiCupcMa9>iSb%7UhGc&+Ixy<8$<%wLs9Ld6{hay7RpcGwdNaOw3I~h zq&^zS0xDVJ57KH6b`VqKollkkv5nRq_@sz;A@)?96bd9JLuyvAL;_6r~A3>GMNq~;>2Jc{PFM+v4qqU+q=%><(%v3H4A0-B`CA^}PYBUJ zF+Q449G_KkH7R_6s!&#*;sGNMMkl;Q!P7j~=Sc+IfyT zevp#LDi{e5QtkRCF30c!`YW?I&ku=OxDd;|kZo#!8J;6*%^4sI|B?d0hK|FSfdIoO zZK619w!S9LEKhxZuM5Ri7CozIpTB@BhEwbH96^KM$u*O`p?! zx~r?JtE;Q4iMgkZXX)I-ecTn9=wu>Ay67!7gz~4M@DV73KMIiapF;h?Q~tI7_Cotg zo~WiiX%q`#0L%oK#s(vG^aS!SQA72p5xn1(s-vgSPaD-EG4|oBqsJPX;bm5tJ;brt zs3#4PHUhr)N*jgSY7Y@J<*k7b^~+p8ChF#z)df0n!SsNjy!qdPHw7;p~Xo{KN1f2QfDLE%rv5n6Knt%|anpNu)2ruVGF_z9~EWQ_90)HqYf#aP||{duC41`?DMTj4C2 zQm>%mh#MlJ?-D5Tfe0KTi4_F)iKMT1F4n``LyN(1G1`J$`Kx5pFZuc{K7*n$2>19# z9CrY)Om%b~D2WarizhKo4;=>U(806R!Bs<5@C0qt9&lMFZPW(b;H_aNZtU1JZRj@A zFd2Q01)#mrpTE%_C*hCE7+GyxKp*ZY6hP}YOYIk&>o=0t=II!_$SGB9Be5FWz-O#< zA%61=-=LzFl>%k>hLx5HoBAJ#RhSwFPjQ?p9)nx3SWH@KWrGhM+l^NgmPy^*|P+9xbm)HiaM8kM*FKtxbsSPaTzf(2Z|#4w^We(Kz&QRQI$n!pTr zL%QxIEsg;Fmddp9G*cNmjmA8Ula#=HtPS|T$4!1UzK_jaJIfW%;q^)#Ric(&!4pw2 zmu2iim})m+T*XuJ1c#VceczJklYJfJ>4Sy3#ziR3b2D=Oj}DFk=sH72E{@3M&Qgi& zGPs};nKm#31p$&ECT${|xMPtv>WX_*G5Q$N&o1W*#fJ-NnY2KiL@$U_fs92ycmje} zMwP%?U7ek4S`Q^>^29CvJx==-9}X>flkEoYsYcX--V7tWzUWQ15A^-7yUcH50k^IUDiNq+0Gj3sBZ?>0h=NpWMxwaF zh~gZ`0L*S@x!lPe1VGYPfp!g*nfU?{r^1A@Of5adp5%#8&uRqHxC%dXd#M?-4tj&ecgWZICUppVciG#IRB7`vfncRGdw=QfnM!xiNzcN%etR(Ki+ zsQOu=Y$7T4Dv^o=i>0CGsNHR~>>zYrL}Fg5U`kKn4|vd|f?X z%A2Y$XotIyDn~0#cR$H=Lf8cn|2r6J)s!`~TnrU>fmg7L!V%+~d(_UpqccG(%JPxFu>kQM(kBB>KgZZYRULRaCJ zQ!T#`D9cZvOg#peC(uJdfDmG%Zs{k1!y3Oy%tk*16ByN#D>&bvP%EZ zJXMxyfZ}BtQjrF88{BS_UUEgQB#~y-Y3RF^bf_j;Hc_Tp5|jrPkc?0JR0bugq7qFM zk6<#VwaO9sYYRQ z^Y}B-O!q9mh;oV)XJomO-QYc$9%qDEkXfMQtV|s!*@M^Zp_(GkvhB!AT^!*8^@Rno zoi910!R!SG`zhe3%zU^XoPGrD#DR7Wirdikim*?P3{ku0N)kw@Bx}QXnw+ZR=Mm<7 z5KmQx$%T&lNefw1NAWu47{Gd0JjE}F-gx@W$}dlE>j1NSfPgROP{xzKl)kE{)iVTi z6>cNwEu8=(+Eif|%cR`FXoLu;V4TpD@g%6{N;vust@&)z2Cd+9lkrQdW9nBJ_5~@` z5dMQ!z~B#RV_uDlB#2YJhq!-+n`nDK(HpIFv(CG=S5#s+rna2Ut~TB@m=%f+RTauX z`1&xEM!b9yzQD?4h@~=#mottar!nk&CgUAZtPN#)>^xkO6z_WuCRdT zSWKi~vKVKOdDN0P*ha@Mp`x=|u`?+a;b$f3x|6v02!MKPfht(s=GH6@)`&Q!9MZ#( z&*IdxUO@>_<{e7)4FSYhq)fn6w6=CFHH)U%0PR|8J$O6TsSe4&4@z%lx zwZ6=+3!lX+wkh62M+?6%+bCPTE$n@p25lp=M6}vwBE!4^M1OfQcyO%e8I&lWLsgTw zic`&l8Nr(Sstx^T1-u&*|B`HLDp7h#IC0!#{8U9HVZcoi`-iR|8&l|FF1L{;sihou z-B_}yIIWIaL1%YFEdYU`d01P0hw(!dwGCr9h|?s2a)L%LXj{`DoG8O#*}pouB~b-5 z@r=xft~TSNTp>;Wu3dg6233i$lVSxpjoQj1Gxij5Lt(KvXvNz?^30X@7ODcU zx6SC4Cj4rMeO2~O0u#g#rdyqehw9bLdsD(Yo?tidY29iLGgkF#=E*6+RV zw3@s+!M!cT$94xS%Z*JV(cL6BHl5uGN&y7kZ<5v=!I$=z<(kKWt@gx;I3|jhFiyyg zi>0q24(k_+a^yuHVVNq8K%5cajKB&bkYEH7jX;tS*kA-U8-Z;`V5bq-V+4|oK#CDa zGXm*GAkzq(G6IR<&LUKHPgS*dRzb;C5beICKP-KJu?G>SV#h7n=30R=mRgXgA?Awl z7UsS*p~ln%yCXD+pzWlzJ3{cq4`WZvLD=8`Me#KVR((A$z&uu*I`(@D7%@g!dEOPr z#UqKAqAZFw9?3*0M+m3-9;6%d%q0uEa_sA3kqnHbD(V}kKHK0pWqKA%RfQXS22*W? z;wbEMC1qfHCPy>~^o_ito_vWSrG*}grDed0P-bk!dx!HYt;8#bqoWz^8L9?ECElxA z|97MDMa+$X=pbMQy6-DE6zeM-VA5P24LI=+IWvY&mc2B7!^nipwqbK3!dwO}2+1Th zHE=)d_e-(%8dUBTREk9coQ`rA1@(e{Pe&46C7NO>QLn!1U-%mmh*Q%wgg?mbk7U+I ziPT|%Uan@ZL*F2dBY}mzn4*csi$@^Wz!ke^UNn3nR7;NY{z_!FODO}Hn%%SmthA$@ zIP-cqp+oKGq*;0d&k)J^*AuBunyN=T3561J%)0zsre@#A7Q=G>J3=aRp+Y>3)vN?o zLd@|fSqW`NDWH%Qr^YR%Qh{m=*$8=}coPhT7HX$1|GVNvqIjMJ0B{tf*)!ajGVRN*MGcgQ4z%r=l!cDo#B> zbcxK=uP#53+5RXXj@<}xD4DA#+3yc<(r6gsMq6=#UdECgrPdT`{QmNnlEJ&8XSu$y zF>@*DTOP`6S;4A`|3q|MC>->PM39;4lb0V@zmloh$Kj?Orxl|F;V6Lz4wLv&f=HC0 zn+RS_)i9tx@TCMVE|(daT$S@u%^t85Eg_cjBx=JTK)j0CRi!S?t|FlY?c237vn{sn7_jX%SOP(^(tKG0$s}W-&AG%H5SxaMkJtxYJC1%JlOy5;Ng`4 z4>hR%S!O(z#DVIiIsc~m#D@M`sxM^x&((kPx7D{<(&vAj4BiUW*ITQyER8*(6#P!% zU|_Pjl3N;}1o}5JYc5qde~BkvYtZNGT?{N2uhT$bRP$pc3ocY8#Xe9nc;UF0mG_}d zQJr#QV#1g4nC4Stj;ZCCkAMW)Tm&O5nY!};Etf<;64(Q&1Lq3=PV5I+Xkq+FBI!Zj zi-{AXDwQeYFP zWSC+EUb(&rsV`Gg z)(QDj-(lsIso4#0fp>6(KV9TIRi%?ywSsUQRjS>v-Wqx$ESW(u+y*~D;m`q#Q!ir= z2IH^{r>r_{uxtKB^Z*UmC@B!=I4*gb470{g@nq}pWql7QbAmmeGa zY-4d!7ucy>D27aZO>buwRAT&veK=+0MJTp{(I+e}%Ca6?#%2?VGRxCmNW?27_^5(Lg6Q7|i=C4WO+rKZCPK1G;p9^~?2E zqC%M(3zCKc!$?6l^rNbxzF0*}0Hy;Z%A_B#=1?lEE<}~JNk5<_>_PFHT142hl_JA0 zB@@us?@Q4zP6Zgrb5Yeeg`)jE`a(-|Asr1As<*Ae9rTJpw+!8N`9`eS>sULJ$Vw!) z-xL&QXbR7>(PLQT5n3?d3e^>t@5^ixgucUWRJf5&oKrpBFcGX@4SgpVg{#lxA9#6$ zPSVlPBT4*8V_ipHw_J~{3;3QPYm&^^BhfYVWVHwD%Ni<+nxmPB(b};}{tnSX`aY-i zv(k1@E1-&o?OA4SY%nQ&@s}GL0;nfC9jw|zlVh;T49y~mn)(q{Ak(jCL(j=n-b+p7 zO|`2jwJuzw-cNu!ZuJDrjdJ2dBPmlXzUeJV(np?9t7Iy2wCro-OF&23VpUXuiDF0s zIkRFJL3@Y1$Q+sqBo6$nPLHJw;eQ)*DCi1u;yhW-;=pTgqFt$`nMYNgOH%b?S^54q z^J7*6X{PRMhVv!&T__zk7~+5`W1L95lI%g~FqlT7>_YgVP4~!jFE~m#6ZbE83md8w zW3Q)UojY?fMIKfuj}F7zO?N`U`}(n)-+?yi&cN z0I0szDXT{kdV~j&mFgq(07zr8=qOt6r7|<`16awBsl7*QHn6VIeFJL*^;@{L(QIHe z{rRLeDw7jnSnMnX$6a#3RDFaHYQ)+{bbd3vQ=OVMi*SEX2{Yq5>Y3{3YbbJz629r7-a;*xlM`|;ASn3BZK>W zcxMOaI;9;7v&VwmSRbH-{&HiztDt}?$iE5-u7U!qAo`e)HpBo4O{Yy1dQGl>0*M{0 zsHg&F)IGfsAznp>`KqYR(2>&;K&~X6axu_9sv5`W19rmLLW&KJOHC0RFzu_2%Jcjz z9{g6Orl?JlJzkQ6XczHe#U2=>VeJbxS(&k)=?jV@`pys`=TnuuBq>q#JTgTP&%h3n zA%z_f?<*JWCw8aDdS5ba9>xxG^QHQms;G46?T(=^=&ZUp-(E;xrEZ9$LV`h6MJVaF zOcnXjL^t%a{Ee(~z-JjYxx#2fR=HvbeH$HJmHio=HU3fz+)U+}$S0-Ipir&9;%)fc zU~gj)wO4{Rg|%UTm!cr%l{O0XUy^F-8I>n@!$I=yA6Sfcs(9ZA(GkY5rKf-vkoQ5; z0g98AL3xV3P~BhpBA?65;#lUQOxOg4Uh{)xkwUMEN;6qBgp~LY1J6Ob5o-#L1s#4j zU^?iEE?R^fgRXc~dfar+XSVm^{`o@ts9&ibh^#;8yc-lg>reVx*c!PG@qusu=oHnd z5H>q7G$<|j1Ce{G5R4WzgCQq~FLV!7u?bb}pjD98cAcqNXtH=;foL_U!_clfzHV1> z+-Rn&{X!yp{+UE@{9-}Op=zWc*3o&KxsqgRJDwa-R5hp2zHB~YIKhtzCP&d;CSS`P zs`vIwBnHXI$wN2%E8(N#-wAC(M%ZKf+8|)6PQKFHV&baKm*Eufpx0_9=Bqx~Ea{~k zNiwT8^fl*Xs~g2c!haQ8Ww}ZcWD^s6ELA0n6q&h)<%CdF8u6l1JUey3S z9($VwtlGj|sBo%{>H}evRh#NOgkdznI28)9HHzxhr$T>=QETk7|L??SkLt)Uw9UVk zv#M>r;8WjB^}%XMBchsM96|Y-&4+`XWLY~2msTo<_;x z(v5QxT#=${Q?w^Rff~dzUbrIGBpC0hDjr@N@L7KyprueGf^#SYpST_apq`D zX5}j;uwmUi0ABK}bn9F&Ou$#(udu$-t)m4K{7AwN?J`&TVctx)E)m5*tZ5m=wlc=D zC6*UuPaaW1T2a9(3J2wp$Z4*`zzCL>==Wprz{Edsmy3BTy@Ek_W9OqCu%8Dk8d z3ocmr*jLxt8hZ|w+##H+j-=5uxeYr#l^={Z5XXjT#S=hz^i*+Qr-s`ZlcR3Yy8H?wK9Y1{Mq^ z^5(+nlvs~&fUyLqjU3{`9FZNTdl>Uhek+te_?qe{ro<-Z+BHPbIFTSr9KR6}Fqc>& z#af)i3G1h%!Oezu3Wb%-b{+KynVQ|SgRHdC=vJO^1gIYFq*=)*emJ^S52i+rcG9l< z(ya1_BI{2*6%nUWoe(mwy!^--JHwDQo5#~DH3*N4M?(F9 z{XSwWpUYLB ztGUEa;Qa!R{Hv<3He-+&7pm768IXaaF^BBeBrcd^QA>@*Dy&f%hy)uqRuaY1qLp$D zI=Z^>i~J`(48vk*pc2=!H5{XwXA`4BNHK#zc-qDAa|`X07{eJ}R*!emY+{5Q1J*63 zk(XlO>bLq3L3%PaI1nzdvO!L9NEeO4m$XpmSb|d8XOLJhF2FL3T{Gf&83IF7SCsWG z1xpJmCF0&F@H6#|vet;iE?M;pywD3KRKfzVk$+G>slEjK{Hy)x?D=1ogrBPOFdEYm z6}oM%QfUO@jDT@bSZQ1oRvH(DmBvM3rEyVMxxtufvk};41dNNqO5>ui(zqzBG%gA& zjf=ucTA5qv`CRmwZkk1-Kd?+iDFb^rD4zR;5*_HTq3)v2~j#IG``g1jt@d^+V` zC}#goUP)VPVoGb*Y<#GCpB>NL2E-S~6<=g)+s5Zi`nDtMw(G6I=}zI$>@W0;^z6BV zcptou;T`KXhIgv$6R`hSucB-kOvXW~uq zVIPrVJe=pnG{r`S2pjYSQ=I3Q6`rG!ylSSjBf*99b!OH!`nIZfo@Co)$6P|nw-VXI z4+?E$#rR~U32;{4Q!39`askeNv9rjPFbToCE%SGPF-q)Ts1Duc-P+*)06!8`nNL*j zY!|@f5T@{Pc!$QK5K*O?o!yBu=V10@ShGOMILTH{vW1h}7MWs4US)cPSqzmHF1{ zJZ_{jC%w-}@4b=Si-C0F3L#8-pFMR2O7WNU*e}{9sXwlf?q$E~ z)31FR={|kAMw+bGYoz=24>i&Q?4d0^T%(a5q=zX&lzyp3dPtAb9M<2|NK=JKp3HnS z(lqu9wxCx0C>C)<|5PJAD#Y@AS=2H8a*Z^dMZuY`72g4|un2@kqjw`z6uW5=o8wd0 zgs%&UO@KwbO%-g)e+Cy2;;s3YRj>{JunMlj->8Bu_zP9A8BYtpLRts@a1~sa-(3Y; z@*AsQF~0_|MtYnlYcq{BgZF3m6TCOwC7Gagdl0(Na{L_3yfu<+ibMwh8gY)~ZH?rl zzE~qUg;*DgEzn3#1BU-NEBz^rBuD>JBgqAtBzgKWjpPg-!FI$-ze^)IOONvD(K&i_ zUjINNxuCzJkzB+}FkiOP$7v)5fa?Gj9Fl=xR%o<@$HK~csOM)N2ufw%gXQMla~0;v zrh3y3nRuD=HRYRPW5bs>2H}l4iu=iCdJ?lf`(jV2TwX`@ZjLy993*6hGE;N@nG1%_ zyc{1>3;qE>ys8;u_BopyVy3LH5ijqASH*|13nQ_6oP9rN)y45{h*DNqi{lT{`_!_g z*8GmI(>jQkzlD`*RobB}Z7HIZ6=HcFzwqk>_TuF^)e}r+2@bLZHO2AdVMO?t4d3JI zw6(;`HPzFGv$PQ`t%Eq;rYfy1|JnJgO2SF!pz3MkSXwWZ)$iiN4jZ5&(DoGL58= zKSUbSpfcqdH}Vs}`s1-iRsB(E<%5PZ;h&K#i;_>qiJ&ke5vp2~FJjT9<^`za(%pEV zkz4{@!ey!ze;e}%*wL|!R|pyBS7n^!?Iw=SOpEJK6 z8EGU}`4jAZgHL7mE&M**W#l7TULQ9{6M1b7?1(aXQy6)_$ugJMO&00LprqAfP34bw zn!(9&5X8RzPP!o*u$^#9csrambxrF_>; zv*cQG(`1@2alY8pXBgk=bnRjFluJb|czLl5IUGj=gg~6dlx|_XQk8*g3EZO=G zGi>#?7RU9*MkB&-H{4lUiQ4A)m;u}dOE`bpfCMY;BySrc$0YBXiY4qNQxl>O!9ep9 zRu@>+aMCD|<2FW)k0_S53vc_+wnkI;eUoJ>e~Z@bf>*?;L!ETtXx-0K!kf!t zE6}s2griq-M~(Cq>l-5cBIJ%V@WX|~H>9sP z=~hm)=|N6J9bf|n$lF|CB}}^KH&86GlDPlO zN=(1%XM4a24YLG(1*0U)$9#|>LPu+4Tc&(pQ@l1yd8QQ?AQB`bNs>6Dpv;|mGvnLd z=vgjE!iNY5{TI4}0|kuS3Cv`@6!f`FfIy07KsK;agI~b7RFZdyIBq+(y6~G{v$i22 z7VH*7L#fW^xayswc=>*yinphYxu9lbyAiJw(XYcD$o-d(gDu;+nQ!v0AHI*zsmhg< zHu$h3UmxSLOzHtR!<7GI6tp}3x*#h$Lo&&vy!%2jf91Jhjp_f+TB{Vk%Obh%3ghuu=VqN6Mmt#mm zV-f+CF|wtBp9rXk#wvSylZi1ppEs&^btA4EwKnm=v^aagS^f{wS4)&sZWr?W0T5#9 zCYB-9(t-b;!Hg=%*9L#-rLksCe<`t(p~REvo15562Ej|nxQqt;zVvVwdkA3;!{89d znU`#EKpYU`>nQ6=SCdqMKCWRj0!dR39W7M_ zvKR$pWI%#3GC(O5SHEgJgX9YveSF>^{qn^EI|XTb@@){Wm2hpa@WUi%E!@ckZGhd& zx|8ahtj~=+FNoJ=$xXTZxSQBPDfU-vP#5AD*QgEk-m-NlJM}=TPKpg4*)WTXKZETU zV*iWSrC|M1x1>9?$WO%a!;MpRQ4bQk|u>05$NBHH$lOIEi~4*rjsmEgcLv;p6q%7y)B*pZnL zXEj((Yb9ClvB$UZSxjlf@x39Q@iNA$tPJjjl~FfM#Ok^jX!!L4uP{77%eLq5Sh0#4 zqM*CC4X{(#DXrWXv(6Nr0`9`6F!(DPDEkK*C=+O)>@PG>_75~LwCZbJd2%#LLo7Je z6L1v%lu&f_NGtUsJHD0iseCq1UONnfaVPXhehs}@)su_F+uoY1Uu8Wo7oDti(esXY zeWqsxPM!g==FzAdjJMUrjp6sXQn88m6Vj^v;7!Ob$4}IO&mh5Hn2yyn4rm?uofP|T zn?a$(7~}0GxAOK9$3GTWEKumd&u7W7_q9}wv-gJB@e_n;g(kr4a~2m=#s!!u-$Oz1 zI~XvX6&gy@?e2-96--C59^8LZ;j zuxwh3zc0Xl`Ff3rPSulcqNI(H)ExSss-%wm4hFNy|Awk)6F$KR(=-*@1||E=hQ#d{ z=lRdHhaOsdvIMqM=N(0-H+g%1=4TsG5u8iGoUSyhqLD~aTB`yZkf^DyRcoq!EOBY$ z0<@LDH~9@hl+LFBdVh=xftsRBLSz|tg{U-Y&P|DB&(^`t5PhUv|cyxYq! z^FyoRoA7rG@xk(|e3z>D#yoA+r(PU_co!C52KXLtVu0O1C*s2a@Rzp%jRrj#^tQ44 zE`lEiB`KWA{(A#tMH6G$Yx65;;;g_nTWmir?QU0B92bcg5T3tx4RQQl61gNByhU`t zYN>aCAzfWZK7>uUH+bXdzXF&+5Nd0g~1ggjesu#?-caT|;U^ zz7pe;+Wg1rUo7)(XMEzs-#0wL7ss*BD7}5f@x!XVSc}iZ8{TylO<0M=@!i>@GH;1E zzFpN@_WX~O576*lq-gJLrf5SI^MzUjw@~?Fx(yY_e|$)FqKeq*X9<9delkmD4xi+d z9OW1Yvk-4{IA=$19;)yc-m9ng@)j$)87e(Yfh|CkkF&lRn>PYWPL#|}9B+ra@UW)d zQUG9DwBd6mXqfXgNm_L{8BvPxIfUZX} z{&!>LG0h>JEmhHmTw|1?H_)OD^613RVowBkHZhv7dtSU1jnxkfNVSpg;qwK!s)IP8 zgV^&;g--}w;d_kvswgEoU?f-_APk(7g*Z&*I~%bq67x@3^ZvC5+ws>ZRv721CT=xZ zLxV30p9n{Ge9j+)N){7-gg?lBeaVY@t_?3J$&=7?$(=1KZL25sq>xK6mnD$77nFhhL|RX)og&IF`QLN^pC@^=5IJYgANFS}3zMSnpn&=PLNSO(Avh~w(f zuYb}8uuLqBnTX@c?osk5P-OE#NUM?l&ToCdaA#c0tpQD@{#G;0k;$TB3&dt?Og8;- zea5mRkLwDqJ=q<;g}BA!AyG!7c`*U+qztFC>B zpM!dY;rBIM-uOKQDn~E87m8~)%D4*SRwFQdx_$z@quOtZJBZ&WaOLAF!u0?b#XrZL z#ym^FwQ&{UdXLK<{J|5K0@rq2_i;7E_&oZnt2W9lfiUnbu12_A;cILK>hMn&y|bv= zyXmN7C9WPwr>J%r?MYxyFk(1YVE)$IIl>vD52KKSzz!P@(G+oou>WPhr$#E1byFQF7Xl9A_ z;tDf)q&tIj_CmUx1(s>(a3*>QOWIrh0_hd9G!TY~-s2y>hjiqn39hl}lZJHPjvEiv zH+eMv`$C4_6=$4Py>BWnQoZjjza&_NHj9KOu_B~bof&EBoPh53Gw-m`j%o(m-^ z6H0XNOCD~DD^#M3UrIz?sj^fhqUr@w8p^{u)JU*k)%$u8*02Y%+C%n0I_2k|{$fz{ zFYjyP@+#vM)k@c<%i-&k4N&SR#v&+i+)<_hXb54Io;E+I4t}9T=vE8o*-5 ziU*S?+!@ZdP%aYn5U^Sep~mvC^A4))e@kJdBcs6(dU`Mj@|PrdoY0xagP&q%Qv#N3 z;_=1T4gt6FAg30_JL>uW=&eehhWuS1 z1Q}%&K#w1ORQVw)rn&ONxR`nrcNYsN#O82D4P$c`!hZmp`!HU<25jy_v|LLsU5Ahz z9;^J|E{>z6Bjw3k$`AD-YC+7+5O^He)Ob8#9iM;5da@E#K!;{Gb_}#tL7d()lzI|=58J~AV8s&#?aaKKdTY0)b z`N_uRsqznz)p_NIc5w4%rKiQKK(&b9hOEAzuYUN}Dir*H^zuZ!FJGnn0Fs7pxO|=6 zd1P#&pRfENMe(3BGU0a#IS}5gBbqS}GC0JwTG>iawvwu{-O?{+*<~s7-IOOcDL+`a z+*CdgS>-cYBt;P&(yA9LPZlUY*wj0tx+l^Fo)N*5k?ON`L{B=MG3B5i(ZQX{hwx>A z-LMP^c4%e@B&v(%GIjUrB>AqYjqTNWex7ihylM@m^RRx5us@Ox>Vd(Yc4`g6Wdrsy1GLpJ@YJ3~EZ^JSe{L+%#%T{30O)H^{7XBT2zT9RQ0hJ7R!lnhwf` zAFZx&9k2teCJrqJr#IJI?1w?s{#saDR8DYK;fw8Sh#|P2`o%xVG;{Buy8XA zx3O?13-_=vnT07VOk-g>3o}`GiiLSBJjcQU7G7atF$-_8u!M!BEG%Q;6Bd@U@HGqH zvG5}cO(rq?v(So#b}V#Yp%V*TSm??^Hx@QyVJjB4Wnl*vc4lFB7J9SLhlTzu3}9g( z3xio0!ora(9LvH9ES$o^Fc!{Y;XD?~S-6OWOIWC6VH^uN7Or4n0t*van8d;jEZoe( zZ7kf$!aWGX%mrdZm=H$&j)#`4GK}PXo_tS*wI=8qLA?k%N6<8avI$yBP#Qt&2--`~ z4uZB3bey0c3A#g20zo8!^UDaT0~W$BA*eG!;RN{;6h=@eLE{JtBPfKRD1rtMw2B}f zg2-nr-<2Tp62-SAh?GKn6N3IE$b}#}d7QT=s0l&l1a&8<0&FvE2tnlpO(WP!%wtP)19MEMm2O(bY3 zLE!`~B4{Z=WW*Y_h9Fup3j38H+EN;Jlps0}DJ-9$z69MT$eW-K1a%~+7KQ`96+ul2 zYDiEQg2*f?tRF!(1dS)igrGSDy}`;hCJ?lppy31^ zBq)%eT!Q=vx=K)Yf@o=g|CXQ%f|?OTiwS&vf?No4AgCol76f%8=pz(%VSNdDNl*wu zWduzj=ng?k2)aVh8iLLew40zzf-(uB{aRu72--tXIYC!TK`RLgBq)xc zxdcTLw2Yv61Z^QmMo=a}V+p!R&`^Tj5EMX=6NXN{7eVa_>P*l8f?5+ajUYFIR0Poy zV%YZt*%7phAX9>}2zm#}J?thy&j@-#P$@wl3A#a0eKHs;AgBXDIRy15D4n3u1RWq~ z20=RsiX>vl6oOm{T0oE^LCXoUB4|B9pJBulwu7M81f>%6m>_b}#g`Ct zm7r?`l@fH0pw|Rt6J!qc8lOgx6G3|kYD~~Jf@s?#|05vqyubW)=(BBJPn)8xWxa*y z664+1*RPMiq;J1~{sRUE1`Qe+ad6ef7_P_nB;lKJM$kMu?!f|7cu`aM9}IAzW8*y~0%s z3F&x9Qr7(4Ut!9q-?mIYIDEnF$Dh_t>uuqGS@wH3`xU_tk6!)I`eL-*hwobM;I^M1 zJ<2ih#fhE1HgjBEe)%Tr<=AtI-`<97{NxhfdfUM_ZwC!(*~j^htoPXs9fE#3G&x~@ zz=3A19z+jOIqm!7#)(_qJNVUHF`d_UO?T|E^p7L`$BX@w^uwR;^#0(nnA`HBO=!Th zoA+v+>pA9Bwa@kh?eewW34O?{|V1znL6+eqY{82T7Nv+gvxEZg^&@)9!=|(;^}} z9X{DKDe^Ek_cznRQ^j|^JgsL=TJyXxb$YL<&$5Hk%zJOJlO~!!vif$|xi7t={I-=MqH;sqTPu8X8cYA&q&YTt!2B5>YTu~W;(g1! zHJewwlhhpQ{vzc4=(ZW=+N4MOW;f{=lD=+c<;8)qrVT5LcU{sf7-!b2^`G+|WLo_) z;)kvMo(7IwH>%F7KjJFwJ9pUr>z^>XP~c zCN|%{%xPuc5u1yiHjC=%@aLH+$7(Ow?~|Qdrr%%RwC;qxV~)@7duZ0?mrrspx3}nF z`qTK;rHwT+x~#pN)i=P?d;P}=>&K|`Cun-E$$ww6sB5c`#y?+p_FC3x^zY|qE$`Ri zc&COxH7^d3zn)d=?(+Q~nhdY8MV)*iB7CClx7Qu7ooaS+($A~J&RrMX**f>~@6qw! zE;)NE{>ORN(F0EfU+rG+Xe<8r2de9lgQQj$oZoy``;+bN9oseselvf}&%0WcKa*$I z?49}3_E(2G3~3^oUNPjB%2FA2V~^~Tctomf_{USn(nWQ|f9%$k9+Zp?e*CPx&ZPEd z&rxYEsug|Cbh}!1^l|SxGsnp?cC;aP` z3u~Xb{j;Qnox7_p=JlI-dwurZ45)~7`(aR1?c?vyEc9xbaQp30uhuOdPKpin;+Dj% zDlD4R#k}poSn2Z2v8j=@%AOSxKd9+;C_4Xjr{OtQmbL09?PWP2O1pT)u9`z))oJZl z9$jLu`ti&>$)Ld_1Ljn;IP=KQ`c&@Q2-Dj0$BR3iYV4|b?^-J~a8gn1*#S3xiRnD1 zRc?dfR^d|AH5cO@H$Cq#Yn0bv|Bwb|J+7`fR;T!Y{mh0ku21d0J$rV4 z{L-__*?#?AHO!j(xtF|FOzOE_;p-Rsr1Yr_J2H7d-NV5vyB(Y7)jw+6@rm=|tQx(j zncU%HyBdRfyjRJ(UGM7BY?Ezs_Y)aop3m&Q;Ql~e&B@tan#{Sc9J{lth5XmL2W@sY zk7%=_Mt11LLjR~)FJ72EUDUsA$;gjGTdatTY_sR0`MfKCEQop?T=SUQwdRLSCXeZ+ zzA5jqYmUvwsIn$6q|&jU=ll@$YEWCVE_U_ zU`WHRQ`;Bce_(kvd-&oTFV>7KDs0)JR*hfmU7I`2`+3iv@d+#HH6A{4ll7QIts^{K z*93Zdx9nI^_DlV@c}`On`tBL{-Nbrbjvw0eP4e2-lTU1a=67J(7;pK|+fIwa!)Cnu zP$2p9=2Wjv;s>>RwI4pa-SnBkZvF3k`|#(H7W(5)7tQD#I%1kriTf{^GSQxr%Q0Io zJCED@YKvP~%Vt(nEmtorUFklG-@Bn@`^fs@CZqSww|+B0VSeqZZMNyKrWcz$ln(lB zTzDU?-Y$Op>}Fg{@#y7&uHR{9?Wz%&*1nx@(vQP3Yc*MN-ebL~?H{#TTb$k&Qb+Z} zbeFAdo$o~K?tOVgBj2HScFY<7+0o&L*09#GY25cG&p)QEs~21^`1~~w>C?%BZ%w&5 zq0oO$L+6CDuJx0p0ls+=y#vd#eKp?x)0exxaJE?6zq{?BkA2TijGU9{d(q)yxUEO_ z(2T+6%eqgq-ma_1weQk3UaSo0bJJqNpbrNdN{_E>8vL`DbY1`Bil3%i+14*fZswd> zV|1aDD*RUGu6CC#U$(o`vfnV5S6ScHxh$`dIQm@cA0iirjNe4i4O^s_59n#_yZ))AYX6d;ojuLJrewyHG>8q#-rvreJ9(x-Fc>Nc?GrLoA~DJdm{$Fl z{!B!sX67|4EUl~!$!u)xYTA=ahJW+-pPv7lWdBp6|4;q@Py7G>iT||&ze@cJhwSs;~b_3mikV(8a{v8mcmjq z?|xUz2Y!mLd1>Y$n_nw-9_lhH>44w0GskZFyiecrU{-NQ#n`)&i#4y^8r8G#w>=%M zx9DMVXNYo0QC{7N1t$)@PHEiq)WP9DtUY>B{Oj?wjcKN>thgHE4_vp)X~x^`U%q5+ z`&xlvBY*p5Vph*~vcn0!w-#E=zbQ(0yOh-0;p%gB{Qmik4js1mwe-ZMPFK>(ww$qC z)cL)Mc;!y(buLNv_m0(^5!0^cY^(LNrmPl?o&50ikeM?lO`PRg++k|`Ad^WipRTo- z_1&+c23fDImX0_j{xj!#^3-5H)$ws!hIR>eeAZ@~p1?|lJ z|MDzBx9O^x=>w$n9ZE6+= zHn7?EW`J4O36bW$C!bHa8+v!z&gU!Vcr4DC-gm{piTU+avh>ZD<~HwoKWymQ2)lD; z{cMjNscYJ#eTy2Q8D2+Ex3WEcV9n^1Hs&)9j@?mNlhoJm8sEKXd*#yQWq$Xsym)u;cGw)%jYj9|X2gzZapcXth~&8u{Zd^X!bkkP z8RE*bUKX;kwxU{<8>g!bEkirw{Y)F56|bLTf4Qj zwzQqy-PQ3`*S>cTSW0u|hs=B0Vd~7+Z(p@Ob~xK(i(<8_y7Oksgb(SPoR8|_>=)nJ z)x7)j1KyR3UoFT8D4P-0;IyxI>pLTB3|?IBA3cd*-fnPqj%&zGk)}?f&oO(Qs;ueu z?Caf6)I7bpd*JJ1jaThhXLDhluC}$wxv>ErMH20#iaBS8-HQm39y?lR*5<9(dh59L z_Ul#$Cl%ePwd-8&rHXq`zR$1tb8OM1@NXV2o_Xg`h|i|D!J|ex+Sjeuw2t`3yzb3@ z@@?94$IMStAC7*wq`7teh$-C*25sHDT6BMt#-;JO9i1k8N^iaIUbEky74%MNr*hmh z>wxvL-GSdSvtIW--~0OP753TkK8~YbnKt!(oHcJ&meMz(xL;A%^%f7?tvr3mryl2CUHk4+ z*~RpkyOf_sANZk{^`-+c-Q#{sZsywdMIFm79s9O!xFEvAGUeX9fIkan4(Y1u8yRsx zI(bl0MZWmqy-Vi~oqMl~D=Hb_xNe_qQ{Cabd7FP$`yPwyD{X3KIjej9Q@!hW#M|4q z@=F>#&1_dlbY{ik(AfM*fsIagj~(~AY0}R-><`{rS7&zvlaN0~dkp^g!=ypHJ4JJzV+`eutKucF8Oo;|hSoYeud+HW4F zDC_FjW0$3M(-|SntlCWNU8{8Qj&;8Vq_2`SSiP-fYt8YJ^!%5<=nC|c?tIE@`uySb z|<(nLT>2$8QCj3(~T5dM!HX~a!=SrN}sEod*w{}`v>a+7L4lIHFN!`IU(uUNw zU*%OOz81f}=Dp{kc2nNhw;uL=v6W4`jW#{|jkTS(wS{ZHGo{}&jM&o1{hJ95_t>^? z@YBSn^|SB(=JMyE>Gkqnc5$psdRu#Yi~Y4$2QF}M8tq-DX@}2Fkt@^c29-uSm-G$l zUetD#=gKu_ypFuH?cx2*zqf7NvR*@bWO`2xHtjjmd0f}IQ5(8-J$a*xXqQXpxDz8h z4qjc`;qlDN9dCP2a{k^?4Hx{-=~lRF z^Y0_t3?8yD{Drez^3zqtqFd_d!G{ON)U~P^)p*jyCEMi6#ossdTXc4_dE}?FIo~CJ zn?7r~fAs7-72W6Z2^Di@Eju)G%#(;2rb9i#x^#av-703^q~3LAPnP}GX5x@6e!`Wa z?Nc8dpEBjBSreIVddW1m{GtHoU+VN9)M(hi#fsGfK2E+fIN#cJ(3;fIfxq5P3QGF% zRNsB&7X97~@{wdUTk7xM@x1SXkz$|L5BvLlvqIY^IP68pG}BI@z0wsUtgodGUy=E4 z*seL#!nVz<&~!#8euGV%35q?{{MMQCMPhx!!_B8xxxo!a(hY zW#WcY(XDUf^!IVeJvV$r_6P5^C$}uUoVB*BR_4xqLHV0buR=?m$$L@D_Ke)p|6HHh z%g)!ooO!X`5z`Ak>-MdV_&7V^Tfa7I>b2s(-_UFOy5B;ktbh5q$=cJ(lEinp>6fn&xoalpj?m>_;wrnA}iVc;i-V$hq(1CT|}S-^0audCl;v%QhF>-?jdz z+s+H-vfc0JZ2N7=BK_Whj_&&$_ssphdCu>9Tw-7BXs_?IePO6#n{V&bUr)Ke+x)6e zk6(6wTC(-$^%+|V7MwctsGdbi#txsu>hnue?QWhw;I&_TaFV$H{?Mt~r)l%7cR$;A$Z^E_Nvk@R-|2R1 z{LJP@x)=TYyj99+&0wpjDJ93}ik6Ft(oS3(aJzWM%T5t@ONKj49=T~mz2J%tzm_>| za;TX9ZjWDH=6830-;q15k5#y$#oP<$=f(WKwvJ1!b{|r=_1;+Evb<&4#rl4$7Hrw$ zmXmy@U!+y9eH}NC$y@1iXquNzfywd%)4K<^w;TUt{r&P$@ypl$(X(**vZ*O0J#LR4 zyy{}_R-Gc2Ig~zr5HWIS&Els%VJC*X`{iAm@>84E2ej_cWc1(>8}GlF+dt-et3Pw2 zcKBR%$^1BbP{F1yZBm=+PP?qzv^l1A%X=q z&;M>_K*Y%{;+pxnVfz=j=bBFp+?;m(&!oBj36+;WMhDBDHRyI@cu>nD_N{zs9L{;3 zylpFI=UPAcW^7E+G|$zGF12~xXwLU$Z(DfD5`I*1z1y#TI`Vt>kO}@N9+vOy?(Pg~ zc=Y0n?N9Em`K(U+w(m6OpF&LMwS00cpnU$F_JLr)vrsCiP^n+2S9Z{6qJ>b~V&zUp5y)*O9J7pUm9W!lO%Gt#a>TG<~GgICB_Lx?U`nDSDF@5D7W0Pv` z2gZ9PuV}S(+071n4~&1~5>Pj!T(_|28=elU(RfaY#gm5bt3R*GrMar^$DR%MU*9z+ z$KmbiaE6Q?Y;iwe7k(a+=4%=J&Ra zxD?D1_f+4L`)8vY6Q=i$Yp8j3zJ~MSAq)1d*z0!jfW!V~#x3ijJlxAH2s2lCU-#GL zCB}cg-Fow<;=f$-p1Eq@+IqnyDzvCMY^^4kKdTtv_jAc+B#1jmOLSbeU8B z(dw4#-kum-BFOb&k702WAOAYFcIT^i17B);rU$%gT6I?7<&CwY_Mczy*S#aJHcwd^ zR3x@oeg!vu=+b>X7q+?5%y-;p^JmV9c<1jwe`j>vn)%}A0c&Sar($)-IdT?jUBcmKL-mPBr z`}{JsiZsh=X6#vc+RC!=;|~tK+^)fOQ-hG5XJ+S*cJ}z@&W??rhj@Ko)qi89uI)~D z^6O{(=f@XU?yZ=S(6id=>=Pq?Eoz;u*%|-X)rIzfur#-Za~>AcG??$vbC+B4p$aKO zo=v|OxBRok+Hbxuc4b22^s76T<(<1%b?)g)6Fjzs)*rQT`c5m&F zY}J#eJBM~1w=eK|#mi^ENWOOauV-hs_8fcWtDj04=JnPlt;%^D`)b4_-Ld(@E)}+t2u6o^Z z(>%kK-N(+a-SetLImBzX zdvaU98Ct{KJ8=UYl9GBpt8CE3ex+-8@kuNTGq`^9ppwJ#&&RkwJMg^tp+36oOGip> zzZWri-;O`u?3^$%_F9!2WiI=LOgS_1=|5*fbv-s|`nKBI^Vje9Fzeaf4R3Y3u{^Nt z#cwVwJ9Q}e%=u^kbkg4&($skA&ANmM!IxupY1g8iGfIc>XD)VlHXf==N*>Z~#E|~0ZWlXQWR}PKZ#~(1-!I%2Z_F<~tMk|H-=D7P@FY?1dhp%fv3&+* z=n{@sFf-PuaR@MD;H-j_%8Pq^0Y#H*b*Ow;x~dR1=wzD_aO)6Shg|NY&i zr)G_6aq-}x@EcDePwh^4ykbwEg!WrquXWwjtouc;`j*+(Z_T;D>Cs`vlB(rzS&)*i&G89vO9aZ)DAejtM$H3 zdyCYmzoq}oft!aoAH48><<{JjjT&59JbA$N^;H&X4`$zwdr~`f$oGpJlV^D@@^D@K zSFvX8&29-_xv)N^zS-Yx%&i?GN`Jnw{`#WZDz%t-dfLL@&+YRXdG*ouB3EuyAAjcb z*~e#Zbxgdr`DL}sV~wNtmHp+#&e{V^*=aY+Z|{;e!M*>T_r-^##Jjfsxr9TJfzx%1 z-@lAquh%5KKU3ClGAPUQ*6<5nryqtnkBx5WwE5u5gxZ?in6iI|=)3f2XH2`Y{?w3e zm(KUU+Tli#_~sW|=da$gKI;1J#fQ6WI{9V8t?%#c-TS2S&$|vzirPG@VXZCSuh^B_ z%;lF0uCt=A_o-X+Qo{bt@gw{XX}awglvv5Jo~i!qEk*V<|FP(_rTtxQRPu9tG?m(a zg-VSA8#jv`Q{OM@N3G$o^A~B)f_nE~IX*ma&QC`#O>#eVaCgY-M|UUv_UzK}wOhlB zZe2gB$KtVm)4rZp`DC|)C3{9)s_8xaS;`sBqrjQ|>o4?bzV%M&%Ja5fa2Y#p&X`K` z`YmLu%V+z&zOuU6@dbC%1`T>|FjPJp*#5>Z{fjOBW?ZfBrYtG*+saMBs(q`|G>`Az zTyghl?jJv1A6x74;Z3?hgVz7hIe5umrlb>fhNZmKw``QOURAIEqatn|4N6vSk$fY# z+0!F~+%`Q(i5~haN!M_9y{CVF*XZE3iIr!hX1ZlHEw^OPKgGsP-Q~0TdU~5pk6Kus zroSI@x9h&Z!2QWiPa_U-+X=g`Rn7e%&`{+CZ*r0(jj{5^?u>wmXs}4vTyM+H7nF=k#f0h&A^4a zw@E8ULIBX`xQ97_pS0vwla(i`*W2?pW?ikD8@9C1eYm9LSikWen+(Ug z)>@MrRp!rsMg`ZsrAtc;XrKO~S*@?ZN%$a%YS@aXhQ-*h$S^FPP!Bd*hzy;j32aTDBfLuX~Mot35rozCPx?{`ds- zqe0=p&kV(qFSY;0da&4(r~ONI`ZKVm;{ij;fs1K@8FQOm=rYakj_Y!^_3)lbIFr(K?aM)xOgDq;`Nv;x zcJs@_ZdsWA$MtxstKqom>FC^}OR{R;KD>U%+v`hSoqu|w)ycbWKhId5 zv}gXN{%6&tLOV6a-=Ocp0Hj5jyDed^{ z3t^{k-YNbH0)V^=hIC4(wp!`{V&AE&i^$%>SD;v z@NyBaNA>>vg5Ni>Cn}%yn>wjf(>c2%tL?r!!!_$t?%+{R?|0E1TxaMy!m*%{^9((D|qnf4n z+}!K6GWSjGNn_i$pRs9FN^Y&4`r~C@cDxhZdcfPX5m$9dTMv)w|LkFuNAthCwivd< zWBtaZC70w+YJZ~1tXgl))czd~4r%T*?yS)JZ!Dz}eysrFr3)v7U7>Q)LU zvbN#_&BF3)ZXB$j-}=1dXHSln`g`8{5*ur;@V11`DAT5Y>C*2S)-1bY+K6%^Zue-> zBRH?+^adANADcO?RgsrF+joB0rrr2)McU-Fifro`p=&m{T;Jx4zA$}u`Nw8W%dd85 z)Mx*=hTojq-1tn=pG`_QT&tDzd#2Co=_`F7HF{UuZ@{sdu{}a-Wchxsx--8<^;%EM z)EmB~PW@fitJQrI6I`dA=TN_)m7g`(JnTpR=SLR=H2-d0%7UpmL;L>mx20;o_2#Qh z=BLf_sXVM_cztWR$L7>?3xh^YygK~L?%Tq@@NzFZ@?>oF^bG5=;T@~a8sVJv^XEr? zerwp{pPf9a^Vg;pudf?lXWmQNI^HlO?f!toMv;#Cr!78<-SDM*TymNAn)++vW9}X3 zsatX3tX8}CxA+=PyAtyBQ@dU`t_mr$v|RV7YGK`Gq^5^ok9!kV+2eR<|Lrq-%)7Qc z_|SrRU0m}w1a$~|(Roa*1A)IZ?%bhxUrWc3JM}tEo>C?HabiTTCXNYxQunm$z5TpL z)XSVHk*$8%9Wk=>t)BZvo$G(A<=p|Qs2ly_AB^w2?CXt#{+iKrVBLS52AhKVtJei2 z-~6mnM&92;x8K@$^5Jim<(KZX**x%%cbAfW-;vPx_6RSRN42}Pc!*n|?tizq_k);c zn!5qFZr^(_;mluanoassKXC8cQakeBoI3r}ySawN?|ZqfeqGVK!9N#ARC=}eP{)@8 z*QY+k_Q)p($9|bVu5Ind!F@_R^9Y>%{CNHE|DO8I>lfkgf4MY#P|U?$&HG$_GqKo} zcE7c}KJ@vX8=IF*zV^KO>8s7V|9&B<=*9D^;~$-UbaC4`zfGfaW0yIf%KEj*nL8;% zPS>h9==_C0dB-l(6-cL+Jyr}v2;ziIQ&fiq*i%PDd9o8vt;tonKS;U!0p zeSYLvkrIzjbau1;GCsM}$(%D4e|6mHH)F$`4w=bs(q`80=s)XToeFbSv|BV+8@=Y6 z8h<{SotJTV$)2BHE*`b+DM{I`OlHQ@X3& zrg_~QJpJTk{iKXc3-HGxT{Q8^^T|)t~+NeYP9G2q%C_Z=Z)RpfAHmf^O`=O_P=9K zg6;>8qmxT+-SBXF?A$)huje=RNm5_^_CkxDhqu&u^o4u)B-7qJ?F9$`x}D#@cl=ZrIeC+v_ixQ~t1Ty)UzNz3o!L zF;F$q``PrFtGeF(dtvFmZELP--?vef%xx2w{(YwOu#-d9{=BOAzAxQwy8ak5Zg5u0 z={uFnZGX0UN59ZAH`<&!_{UfJQ5kuk9}g(@V_Mgw<6gzTvusTKN#p!e-Ag;NLOYx0 zJ%4lNedfdXh*7;SH?LG|r*DsKE*G=GXZ3xsrE^Sl(U)$Gs`glQW5wf>yWY*baX;99$HeG`Gh=^xb)Z>dx%5fJ&9?_NKR)ng#QL!4_Z?o`o#(TD z@&rrS=8wuckLmDoPdndltKX|uYksfcfs^wtY-lnt`{xJ!wzcl{`>DZQB1UDuzhB{8 zZ0qWV%U=h39Bq8>kCbWC#?*PR_-tm+R~yIN?yYXsw^6H=(>=ykYht|PHU5D6)>bQ$ z_jb6s%;nAa1LZ>M25fj9)~#`kVNWM5E-`0b{e8n#b1zjH{_I%yoUZHrPrr4@84?)3 z{O>t~D~H!>nLcRAoVmZ(eEg(GQU#ai7e>YW5qoNy`ueuN4th+B9I^FY^F$VWDHj5O z2{#)3*)Xp6^cv@1X%-Aw?Cb^szDCQe0+)GKi#y> z^uF{J+ASn{G2Xt*R@<7RATUn zVLcwY{`z=g+||ytr)pmY-hCC2-ZOAk)uvIkH(vg0!TJ50UmdwuBxvcB3i-uimxk)y z+AQq3Z=7$lD|2Sf|IFY2T}18Zo%0vpz5Zs(prIw3-YlE8x|#p4B_@TeacX}jX!qFB zs^9Wv3>z@;MX8W`{oX$A)oz|)jBE9??KGW_O#bzUQO#GMJpW~23*(Qq2aOyyar2>{ zAD-`5<-FC@_D6={#84jZrAl6V?V!pS6=+s zGhxPx6WOb)S&RNUB7Uc4_H`H6$8>EHbB_SLS!s6*E9r*a$nGgXLtIpl!@S+Fx7s}h zP(hysmE30l9iY#HJ@(eS_XTiD%p;SPa>JG+ckE(zZvlNSE8&KVA>9*!I?!iBMF8#- zfUeNz!#_?cxJLt}SsC}=;J-e;tw2-QABBG}d~1PP(653@?#BV0p}!0N6y89fGW7FU zX}2hRj|AF4e-Zh?S$KB?&;a@!P>TXnfKcdP!avSxxZ?o1dr8FqJ>sv4Z?Hw~IOFMY z2=N!ecPvl?`ejgYro?>=&=LCE@Q(s?$Ifl{iqOwS{GISU0%!&OS;Suo-$Q_U&~JfC zK)&$?ffM&2if%vgu+&vzs4gFfERNmu(VCe6|KX&B1 z4+g42zXO&4*IKzzY@NUfIswmpyGU_`!pa7`Zr9}e^2O3Apc{f`X35?BiJ8A z_>^7^P#ya3pkfoc`)D8#`dhH4^z;L8ZGgv2ss7WUZwdWrss8oQ*M)u)R7&qeAO!j+ z@K5#G3n;_9-5ni7{o~ZT`)9EKS*m{>^ghu40F}z?DOUEJKj?QsC3>0)^nm^~{8RlC&6Gm^f0XLq0zK-%03;lYi6yMiC7w8|tKb5B%K)dx=EY<&)(6@*Fx>Wxr=mVhN2bJh)IuH*1JE{IZ z)&374e5(H#Kn3?pp)w!?=m7mq*i-%Y1L}3upTj@Z|EJpjFH-%-!%c1YUk8=Sdpr;f{R8-?`X3Bbh5lQq{zpOI4*F|S z{Tre8hkh^AV!$*Y4EneK(*A!$_*DNIpgP=t57hw}4Fp2}8|*1P{eTM4&nndZ&q(#J zhkaexZ-z?god|?L{}leIK0np|k4yEhgBu^XUjvoO>nk7#`oG|x>VFVW1^R_j{eJ;{ zTj;My^`8vAAN0GSdI3{`9?<^-|5X2>_J2dFe-qpU!2N!x#ewNSIP~wCw~GTS=i=Z{%B2LWI}qBl6#{q>C5%FIv{+fbh>su#(iJFgNDGT$v|xVMUlTE6SXh z7jtCA@S|`@@h2ZAxOIU)H-z8;-$mf7IKnK&%CSnU8mr0bvnDuQ)rm#1IA&pE+4t;6 z_8W5q8Pnrk=&uC)(qBpGuM|R}ztYlQ8C-%yf8Hzv;XrnRG>SA(`n}+@0;|p%u|VA9 zGMXJ=4i2Lo92^~-9Go3o9o!v?I(R#jcThPrbm-s^ql{mUQ;v(`D2u;x_$!aU3izvt zze@P4jK3=Q>wrJLU)kBk#TAbm9(U>SkRH!MPmw}T(SLco{^cq5KYWV+40kya616F+fM)AW#GN4u}PA0VRQ%KqPP)Xbfxu%)k@C6PN^a1AYeT0Y3mk zfIoqXzyhE@a2aR?>;gsruK`zJJP-^V0cry)fOy~zP!^a2^ajoY&46vdFyIAH444Ll z0lxzNzVn<0(COf$xypP?GE)g)ZW4b(MI zlb|L+{R`?}P%A;L1a%?Qg-{1T9RT$T)GJV1Lv0OpH`LuwKZp7`)PJD<1C@GRH>h7j z{TgZ)s9m7`1obDVzEFLku7tW0Y68>*sDD8H18O;_<)F@mIu~jmsC}SbfO-LHbEwUs zZil)ZY8uousDDHK8)|W=#i34zIvr{_)NrULp`L^q05t&W2B;gLnxLAXK7#rPYBi|U zpe}*B1gaXU8tM(GH=wqM+8*kDsQaOQ3H3{;@1eejO27Tv0Z;)kfHx2UGz3xr8dtjl zb$~>mJkS?t0SpJ6fzCiJKns)xqJgG>6>vfbV}VYazyT-$ zcmNdu`YQu?0aXAepcGI9s06qH<$zB;a$e;;%6XIXB*fHr zh`4cQqXclTNZbG3L+PY6Qab3tXbKk7!`0KJh;vaVFUMjI|B3s82l>31yN8FTXOSYr zP7upLYyl1J-qKS-dP+)9De0kcTlvr!u6*S2Tvp|AT~-SX?;mIj4fh{t|7G~E_;15M zl^NB!T#i)FRL64NQk_y=QvG4(1zKfjV+^#4`zZkxPzQjt4Q-OK4ghB3ECxscGJq@~ z2gn0H_7skv;-+{hPKuA>QUMf42OtK>0CE6Ie8&Gz0OVJCa1HgB(s@2iJpP+cbyl;M zPieXj{{>*-Nf)viDuUUYD!Rna*U_X-Ito7ea&;PRX|L!?QTYLInI)C}UoSpx6 za0B#4tIllH7zU};y~3h`qSb1qG>eYx6;#M5I50Gd%zU&peJspBL2uPqt!8~}s#RxU zaVE3Q->#3>8+6P+&SZ?&Cj`J{fZa+s)eVm`q-u4R4;<Wvz6I`h-&oiuKD%N0%^;fAnX^g&B z6^yhhOM0?FZ%k78`dEAw?ztT$Q-vZksVr6)Br{X&5M7+r62OFBr$r4QEThS)^0D}< zq7(HNl_^DM)>!o>qY4_b(HIP-G^9e4pwSyGR#mLVtV7%>CX3!`GV65~f2K&CD&A~L zR`CL2EK(P*GwY0TI-WdRfGQj@))-W=W{oi}(Vs~wQef64o2)2CVF80=ojF0rgt4F1 ztcgp~8xt7!E+?EcC>bA%6dsRC5hxMar_wP@W6*1D>9CcBR%g&rVe@2&q-!iHy_GUx zP1LF4Qq9PfRn;{pu(Qe(&&_NFlJ3t^jha}LJj$KUQmf)LaqyH3iW`o!gcwDv!*pf~ zm9mdkMQ;lzR7Ip`(4&S_DQ4X;iUL04l1!;qq|KCS(DDkAN?WdZA6$TAx3qx1ZA5`k z6;`NOqsUFX$*f8<>#bCncCTc@Q_X29$ZRH8i9|ybC^_c7kq0|nT69(w2qsx?q0E4K zL=3#4C7ZOV2DCDJ3?gx;B_p*Y#OH5f_4Srqb4}5$Lf$~)G=>a8WneH3r26$@_GVkC+LlgQDLZb!}S)_ zipHq55wTIFOHQ$-tF(GE+LQ^+o+WE6=$=5X@s zrLwkHn?ypwt-r!Tgd>H4Hswc@DU}|mA04JSHN}dKLn_Jw?ydS{9Si4uj3}l;i9yy< zb;vpka%)jmM%%)~O7jc!R2rkG`%d5zS3wpgt^J6{`c)YP3{~Xi&WQ@eZ28 z2}8%oH6lEzmWaB^U4kA>ND9{1NAJr9`wtjYt4`gK_3F3({ELB*Vhr^6uTSAfM2HHZ zgh)YJP_5KJIRPMQ-YU>1p+M{fDe}*qP@2(cVuVTn5q#Q>s!3zNSn5naih3Rp2-JAQgiP4WBQ`Z2opOO;P6~jAAL-M_ zV9<(|$BS1Ti=J0!)XD`Fk47RF6CY%F*@)3J)oP-Fk8z#OWMKF?njmtDDxE_vbonT#v_!NE zssC4L3RGkrXb}-_fw9!`XzU%PL&?*;!`_o~3P{qW^LUBQ#F$BLL?0`Sp*-;vAaCm$ z73By6isZTnWsPk0=+cr?P>nQha;Fx3ate(+It+bGZ%n}uh_28C4Y&=E6j2sutuTY7 zq}j$*?v}RzDl`-;l_83idgg8#V=6Id!Ma#8|LCDH$0f4B6tmvIdT7#Fw^XAJFGD&D zOif6&SXq<~y1T(s!^*+x3C^4U{a$~br$~7N2fJPpV5h_ zW?>j?)^p1!jWyNGzd|~P_F-YstW#h#>ly`gj%NL!_JbM$H3Di6s6C)|g4zjc5Y!;3 zflvdX_JQ9nJ)&8!=uVK1_6dq+9myrs9vpq>gPY)mul_6;M#0bo!9Iwr`cPPXD6meQ zqFFbxA`|d92pS(@{R#X7CP;J;i|D}ud$4pJ4SUE6Gn!0BmaNwr^$CeqRF8%k(W#qZ zp2kM#%qE5*kXh4A%$i8UbG#|l%;KqMu;_;~3voP5$GsX+ckpjy1`MgNA=JQmEEBMJ~iVU7o%tg1t!kLckob#3erh?b@rVwyk!2tBoS z@IpGF!{}(SV$8uHiYGPzzt;iYhvpIrwt@Nh*8{H@Cn;#?K5;6)c4+H9ah@<226cQ) z+|X3lW+r`jqA`KNfqQ?9WGWw%C+a9o^gEOkZX%kewved_{HM(cd9rDgL3%O`QjXv8 z;Bz29WP#F#nD9bF4bbX_1sGEe2Il8S%mo?NuU}ub#_xvkITVjtc;Z|a4}yZ!nW?qY z7frLw)^rw?8k=G^(Zoh&<68=HJ0DJzKIRAEhVY^RyG>m&xc>y5imH>75B23dT6$ro zLftO$qA8dGk&`)^iqDMXl)*?!n{xp<;Oc2Za!E-Zxj%-iqg~;jGkWmNNm|ZI%%4v7?H_Q|4@A_FG2+k@W~|k7K1KPraXy5c=o9H zJg=ZTY5^Dr6^?kDusKp#5Jv>Er)W?dQa@*tL(qKBE*0S!E$CDclEh9^vbh_Xhi>HG z*#9$yJG~KX31;HxMn@R*vB-|LO4cMPN=U9~ zJ8g+1qb*BP4rT2@Y9Vq$1G{LuJQBHf3loJz>%7oqI#;$y-Z$|2mHRA{S+EZ=K9(4i z24-v;$hxRpk}nw!5RQn#M$vZKlggReA*MAv5rs-ha$&bp zW7ux2?#my<_d!@xhbA*vX+>}f4kr$bmJnx3f>FDWRuZ8ye@}n>BN|UGE0Wytyb*h1 zW6;3)SvBa}(b(l&%Oi{6I=F-a{_ORt=ud%Y8)SgiM#p0FrCIaE|@Lk z8lmX5NRtJFn?6pDf>#N7gUXVEIVb~9rIOeyUW)~0y6`7NqrAST9Hrcn9_fHElvpyY z)Lf>1Qj_SNLr~d1C`|z zyofLeQ?D<{2j~+ene>4-OnorX2?`Hp{@mUkCGQu=jHpg2>*Hh6$1Egb;StI5i#}!& zD3NOg@hJ>tvSR@}di=&9h5}WZ$xIS^dk+rzO;BW)AkLMNOhy)z3mH&2xKTfpoFD^( z&X|Bf0Z$xB!M`wsDKHn$?UJPiGO`XP`;`( z4Cg+n{!$`(gm(^-Kcl)J9*HNT-q-@ED<7p2Y1%`@9!G*WL7kL>xQg=87{Hb!BcfiBp{-P0vW^nubE>GQP?=0X zY(_~y84p$gU4bW4SP%cKVN2n(fH8Veg(I*5pnC8fA^@coIvX7(=3sAZbfxf^YD~hE z9-SsJuMAQ;>Yjr*CyP;@cOXQ&jCwrs7N;{?_2>|2p@#Q4yn-;+!N5|E@DrZ)!g zmJ|R6kj9<>i#aa9sI!_5lH2*~a62qAfaSj50y zC>H#V6G>laYQw^Vqtu;)LZbs&WKgj5#dy6@N~Jj>COlXshzwS@?2~3XFC#0HEEvl%lfsKeUjn@ws>l||VQwAZMf<%^>3oJ=k>VDjc zaq%X}DS0YU*EFLLK|<&yOqFK5P_(f&dAe8^CfOv0a~+@0AVQxJsWxUussf&O3Y-QI zsj11sGUp~_JJ2cG0!>EvXlRp5k-fC=Ah>@-W=&3!su*QyA284x=`l+2DJT+%F%d#z ze^nHyMw6`4#0v2^a*0f%-vQTP_sfS4OkpsElu|Cqzva@PcBHgd_!V(s6-%s86i8D+ zyZ@LNAOFT!;kFfj;Ru!0@j>;0(NrdmD#V^QISon|%JEdT*Xk`vQtq+xz=uQXVTrO$ zAlG zw9@;+aGS-4W7@w(hcw<4V(o%>Rs^!c{LK-tI z8-SOMBMX}ec^-EthV&jnre|xsygGP{e3oJ-CC*`T8W4OU?HRDIJPFoO z=BR{@&lbR|o6tF#jQTicGp4D5Sd&fTJeshe*3bMohxq}8nd0M#L*;!HF?2S5yAU-A zcT%TjcW9^A0vu$4T=PuxSthMXOZ6p!M;ntX0+|q0B^$s79G`!ZPDk6-Y^Jsj8HTYW z#OEoN<+5V&9Kq5c!IzTBBb?gHTW*?ii1N%rY8&#LK?r)K;*kvz&%v#jr5cp-&2vW{L^ccgK>zYze3-!m znKu@CFc2XS=#-Tv$y9^|r&e@G5W0~&nG2V>{^znHJ zcA6!Vv{Wp5gE!+93HgWA4M-!HJyt3O1}$G|5OJY>U^uclK@%sA0a4mJ6KX0ttsmT2 zsLT~4!5Ki_mO=JXc(jp&4{l0#Shq(j09Paye-%O&S_i}vXitK?83fZ^UP{Dt6_W2U zVvQ`GgGu--#*q>z^sxaAlZF?m1B}yrmPPW{X@AB_{_iAcX`1i6I^uTLFz0+NVJ@ zWYZ7<+qMmH{v9-l?POvKhIy2jFVG%Ca!R8L`VE>!V?$FU#%`LeVTOYlxnNO{9$wsf zX`dsKC-3ZnQ>$33BeH`oz{e6mhE!h4CN7T!!Wk!Se*w}^@U8Bhl-xhpvMZ|=Z`lELnp3V}j))eWp zYjku(lsY0Zyl+27-_j?iX_UW3Llbz~P9=*crLYvSBIODll@6KMZD^d@X(tidHqs}JO&?7mWAzn;BCY6(C^(g1a6k%BPk0kI zBi2C!Xg?Tj8>0OX1uSG8-^+l?g&(w)f~MT=15;kFLA`?_qlLh&Q`ex#$bRaGkWSr& zLC27&pia^1(C{t@&PLmcK2;%0S4cX=#yyPMBrg@?58u2@LMo~6v#*<=z4Bf_3^BAD z+0K6OZk)&zybzAKi!}qjAi(8aQdlW^FsUDi5_y+tG#UL0Zb(i?i^m|M=j&b?l`pL^ z_}cj>@N#;qKXDvf)~h$OfK-b)z=ADXI@ku6hFAQIW2VWXLMOVj10ojwkClhf*Vk1tE zAb;?;kT;;HYE}=xc5@`$v!-WFRfK`Ic!3JcCTwOxtw1It;@1t=#id%goRtDni4}U9 z(8-;njSodQFynL>hkZ}9<4jM25+X|4+{+6VWrXoBNoT=6^eF69jUj_XogoD)k|>K9 zsul!>|N#ihEu%H};fKn_u*hGMwc`9Hd?JMLKL=5Pb<;oDbktb$U z$M#8^-IYpmfDMcOs&K5T$OaZ#ZbAwBU^6{R$L7}`957$^1QQn)AA-%#Vuve_U0PG( z-(W-0jiaTCA(W=z+??75m+5gGr)7vfa(2|zf^FMt6zj=mouaqmanjxwN*}rzKb1WJ zlBB^VVvN-!C8=+|;keZK@!HGc7de!+w4Q@9rF#T9|t zCinhmPkh%WHCRqqc1}{P58+URUaa)NHx?9hX4GqlO@_dG5-}VNXkTx@AjI==HYNbM z3$$SEfp3SU%77db`vb++GYi%{zyr~wA6+RVQ{WZjH3lqcqw-M2ZG0@)Z4>|I54I_!)`<}eE3gaN2Wn%+vK z&(~5d%pN{`*yf6gcnYkps%T@OzbJBa=&5LR=`>eLvS7~>HcDu?gAtgSNofMFV{0MG zjZK#&o9U3m0DkQIV35YS3@0FDWD3VkU)816t>L6`;zzCOW7J@>B zp|soc19J#PrCGk{Pmp0-LL`wVrJJ}kv34MGt0=AlWn~j+s(jn{@;L!Yh97uB8@3fO zI$GPNZr^tQ!JVyNRDrJpVX-i&E@NmojzI)wRSYEOdP5AYG18eHS$2WNZS)nG5YVC& zU+p%7;gonF)BvQ$Vp<{{%iui#H>Wx$@eR2_rwJ8o89Hm;kI{~AT2a8$&qSw9cqS8x z!KThut~;@8rApUXQSo(9$YN$v7g7USJfpFIMsz-Hq7ypQOYjK&#b7}*R2n=|u~^SV z2YkrjCxVpoXle4t#}|K9fdoY7@A!-4(`-L6gR&-ma+a~e@-)c4bTfr)*Slr}Ll zj0A^=?j%Z1gM~@kX>4`Dz~f=7EGS#1CoUee#ig7fZA1}RRXn0^t#=_UfCW-GmQSA%n@D?6KA2e8<}e?3&o|V9#srHbhiwa^gS!5V96AM-2PoK1v;@)2XXKkWgh`MZ*SDa}}BvE`E2jw}=rlUV!y zG2&^^O%$vInjqtevIW80S2Fgd)2goqq#~t~lcy~vKFilYdXHV<{MaADC_LVQUGYat zmZniE#>L6hvSGnnI8+>-Qc?VNzw)XM-0<=e^9geE|H0Bh=7wMjOzP#eUGNj=jisSV zHnfiwJh3dA7N>+-U?Fi%m*mc9%Jf6Q5DLnhvCxf3ErjL=B%A)U z8&w^}t|!E)M>$~A5VnxiWt?{h%}@s-_oHbV1K(D}4Qpl5H z%LO;$jf+>OM9^ zP$$Q?MD>aY4G-)b5ePw9Xq4O{?S=*1Mh0~X3h5nG$g#pyA(N!e)u&<8;h<{FCE`HT zQbQ!wFEzzr(rEoilFnK-ZA4diaC2z_FDziDbSETJ#0$0u2@cc8>Dm?!stb;IaoLvA zUqm>Lauo{r6JZr_#RDo}0uB{4LI+LxhDC`^rCl7Iuzwe1???S6>(i%?Umy-N!+>uF zV;v#Nj3YUUje{pyu*?YJm@`f``e=!_RfZ$&Nu(BmVK)V$DezJx0i{5}?gk8}V@G~I z7C()aC`xb9(UkJzP7nf4A=(PVZvR1N(bHTQ2=7cRSE zJ(l9;o&vGUDh1k)=1(M^yDOORPq^k=tl&JF`gN@7`2|U5$y;G+fn9w%EiC1bLizqn zBxFP?OyzXc3#iBA1Aky29pVadbX-P2GfCbrDVi*@PPa?gc5ShSUY-bzS32)XFz2Oh zguLX%_->B`t(68$#3e1+fP5jh0?z;mEawI6ZpH37D@|uG$;CNfv4@j9p#AW%jW~2p zE;Om(DHf~Q)L-+Zmj8k~v3wv85kink(qGxcMxNLQtck_2W`)RP@aMQul-9^wYEeeC zmPss7!-h>7^GTVoYe*!7IjdF&`LU`C~1bCYNSp`Wl92XgT`va79JrarCOri zIVH*JN8AddZjTYd0=qLTFQ^ziVR=G?0Fg<4%I5Q{?dvd zsGCdUl6B|=wYJctUC?|7lAJ0?GC@wn!`hs2c`xdY+lZK{ZPI|8tT941#k(JpHQBNx zR?#uNl_-}ID!IeDG$gaK1>LV8`3F(q>KywX9_|N6Pv!MMRGFVC-j654=D%Qp6bxHV zjch6x6CeCUA*ry`@h|nMtU99(G_1wFFX%exc)Adv5;1Y^U7~;4l<&Fbk#Pb=niZ!l zq*JAmh+TF-m4&X34%cHmq&i~^yMBYBgHYfRy>Q|?JS+?gfh;^CIwU+SibY2Tb_#-N zL_Zc9j<(&Sd#CVF)+4+(&U{CPM+Aq2b><%tfjDByqJjb=q4WylZX<&t!Xt6WynA4$ z=#bta(ft^f9XoXoM>KrzKkMNqc?b)S4hinZqIz|V>J%B$F$f{pzeUgyy>ME9`XFhu zJ2o|9AsLHwHUsLPh`|umjVYKkvdOokfLTf~V*r2vj}LH+HkbKf0}Ym0`L2A{MxyC< ztZPJ&I=nlC2jVarX*+dPOA|45td1^(p^nC6ENIAiMrvo$k~t3uK51?)xyR?HT!~F& z5L97G2>KV{D-Hj}BbP!I@+Txy@}hsCWQnjXY9b5j^$Pm6n|~_aSd%tg_Cw#FawivD z;dlz0f7E|SSnt5lkj`oxX;DW-2Xa!Cn*e4kka9rEY*Z;Hj&yRK>Wm~VL6K@uYh-X} zIIhFC^(i9f7%#BkM$3%G*7lS8T9gFe3Bs#AG(0M(vs!8wXcLULIEn8?w?QZjnldl;K`c1>K1;Q*_Qsx47V;Yk22^ZlxYs z>5OI`a=i4dwChT90ojsv0~WC5%~`hPn{JeT(N4SC{LFv-Gcy9CBQdGb&o zEQtuB!@CFB3*7Dptd1at0-jLc(THCi8Wh$=k*xyW3U)Xj4W(f`1-KDQFh zglYwSKGg$G7IN8!rof^Y*5IhzBLaJ&EkGI#88fbG!R2Hca9Y9+84U~X6UKN;R2&LY znd0~@XmOb47T-=#i^8Wj_sxw9yfUz=o0sIuj>fvO z9N-W@PmaNv-Gn(kxq4@oX#!H5Sq#2AK+S}zy5_+0uR5@-x(I(Qc(1=4S^l3$jlq>Q z{K|oK805%ucEZmdXO_3cnWdb=x05T&E8@yjLtI(L0v8qowE4+}1p^U4e?SWuf#JXy zUwz7>LEr>%9>@d!1fBu!0QY0K!xpFv)CL*?t$@xz7|<7p1q{G2AOn~L%mx+% ztAI_w9^eR&3tR?n0}p|hfaA}&GZ!cesDOGvQ=lEt6^H}|0`Wi!Faj6{OatZt-vMiZ zZ9oq2GjJBT4%`Kv0B-=-o{DBrgM<5jF4a5LL04p#Gm;lTK76B`OY+x5~ z2>2Da2;2hh11|t}0{8s_rGctI9iTDL1_%Zsfc}6MFapDYF~Ag{@Kf3wvP<8ZWNDfM@IDBP~pFo!hZ+Jf7U2x?pyVhGf#Vr z3(Cy{aiUPF0>!zl{T1U0dw?GNg2@N=WFCWdOiwAmjepr+i%~9l=u70ZuZ3O}=gKG* zl(!Bjr>;Oxpbszz&;ap35?}^K0^@+Gz#L#Pumacs>;et}CxDMV=VAT~1y6QY@cmr+ zzK(C)i_6V#DZcMW-$WyS;`?vO%|q#%%%9-`X=+&_-=xyh zRPo(H@!eMXCU+eb-(3{np$hjA3iD`uQ{B?jSNf)K2H{(#k67uO%oFfU_aW1hgm1cE zn;sLsY0giNRr)6P=?e2N@J;t9(=%G}Jzn}I_mdUo+@az%2X?9|7`vcmKwS=%8p3+g zL(PPmQpSPJf|>($6V&|54r~WhTnw)W>EoY!;O+o$7&r!;1kM7NfNQ{Sz&+q0@UiD_ zm{Tn8q2d>lm|JC6=3NZ^0o0714y+`pt>hB>FofYMd$@Nyim>{^Syw;tO?*PWWL^v3 zVUju60jBgD33K@wsQ9+D15HZBFk10Fu&v$PJKFv|6K)0{=Kezc9GR|N`vmqL1FT=F-?C%Z2kp6sTun%9Kx&UZ#T0pHb3+@tRe zo%jX~<4=4$gU9n`c`fPAeQ$0qe`l}^$y|jm=0N83h2Pq77T=EeDIDfa-|};zuPgfl zAX<0=^)2Ap&y|${>H^IGC7sCrWHl7_&3l3m1dWA4?FD^5Km+Ij6JQ0>fiHn^z*Jx^ zuozeltOd3MIlvL%Byb+c1MUM)fKNR!{aslCU;@SgtAQ=RN#Hi%KERb#208$Jfec^@ zunNcl?gDI}E2{~#0OEm>z!u;ra1F=@JO&{gpdru!2n7ZKLx9hL3BY_{1+X7D3)}-< z1D=CXe?Uv17mxxh1hxQIfPBDR?aFEa-GE+z8TbO21}p&n@A z?!5vd17nstbnewHrD2LY{+y!%Q=C)EXE?d@SB8^wWN>7cl=6`sBRj^F3d*Pt^BC{0 z1A;P~ol`1j6oZdQgppFZccmFV=4y6v?{53^L4q52@Z}a4k?a3 zOLb7IJL}>#SS*f&TqTr__Uc&Ap>;B0L7NTZl5kIXk~#qw%W7FhKJmWvIAnIvrW>?y zk&1gCXtRZxW#kDvvK>0bp+pBYZb?yhitek9vqEH?$%bYs4RK?Djtplj4Y6H_%;qW0 zumqyUQWB+64Y8s=K3z=`ISV;lRM??#Kvr3@l_XXtvt_cG9Qi8Q06QerVqpQ!)+$YL zsk&LMxa)<&$yPd$(j+ap!*+{oi$!p{PK@vECvQ7!7FfI$(V+xsUkK049@$zdg&bMW z5B|gdA=!Y6BwkBF9<>=Irdn}LkC6;d$cAF28Ya1t$*{&vAmrx@TQEKAP_lzMFe{j803K z;>hKFGR1;xfzlz1eA%KvO+6#iEz21Tlg=@if%(u2V)03r@uEgqY#|7 zpina$WkM3)^{QYe`aL%MdwUBx%Ju2@J9vsWGc#`8{FK zFB5tjQLhquT;88#MpLIS)=EaY)CdGY1m<%f%c`lhtw=*KB zv!tbUAwfhJxi%5P-&(!GLi#qwE(D73DmSKei~`1aHe+mcC}4A&+lW=U0v314g6_cO z_ZlPU`(z+fcD}5^wpA2ayon-z#tmt?qgF^5uIOskluTceDSm>4x&d2Fz2SyBtI~Uh z6FJ0**)-nl$4Oe9aTo=2058cCfM-6 zD}El=&*SWN4I?Punq}5rM5ur9OdTNn^3^?1UF4J7BHV`vsg}yukV=QkAbX2KCVSB)YPU?4Bv@hM4pP^Z!z5i!1TfV%sHod{fv;>@p#% z3}-47sTBAvG|FNa_n|G719_bAp%v|*Agd`KTHyq~WSOb71kornIGfw0;^eo6lg~WT z(@xoUN)j2S-Pe>RR`J$u3$a}W1 zjT=@V8C!&D0<9_+u-GA4*m{ROvH_03Qg}I%UhaJk3B5dQ9Oc?%sR^ARodvss;tG;q zt}r(iESt03RO8r#J!QUMn%jSE|gy@Mj{c{IGbMdKNBQ9j>d5snIh?> zq-4rkE4Q63X)%aVg!63LRIXpd_2Q?i$UaNxaqQC=Px@t~r{0P*t4JfRk|6C`(sFi9 znMFv5=+at5Xa6r(LkhTCp>X+>h)q)cD^{ahNL8_ zHM9te{T(>hq-9gQ^=zg$qJCHw+YNPUwxXPgtt_9yCRDSqQ;nqUnre2h4RaAJ#Y%@b zx*|#)Z=l-));eG`LN6bO-#ggofZc>TSh8&n=v45dqfRXEGpsLU1>u$5AFmuOWbSZo zOlL?MM(Q$*nCI60c(jPmNBP6X2$aQJ7c;7eh*XHoSW;&H^o@kc}MJON@783@SLb(Fwb5#7}c=ccLSOAjiEbJx&2dmW`z`gJEYo8(MCpv1N~o7gUA934{A zZod>PSgUc8pH{cQ9nx%IZCmEVQ}vxQ-weOXnRAtFy)z18qay{ph2Htw=$*L}vVTW9 zy#catrejHJw$+unil1F#U%AAw$u9C%jukFew$BCY;8ec1T=1I{;4_SB`NC1Q*cDM6 zr2yq0Yhqb0VuV=+t9)3YJdZg#sBN2*cHkGyGmnuMBK8w-tz-YdEQ?%;v!U!N^f~0l ziLdOl=PqhovOC3<%|oEM+%p-BcV#mv0Wd&Z{GItTedq9Z_Hp{oI)iYBu?^(&Jc9I$ zXS3X}D;86-M7GgQR1uO#Jo+g&nmn-!Zp3`E@$P&BfSR3m7gY?JO;L*mu+)P{o;~)U z3YhCjEP|SS>j`p2cGkE_O<=nlYC_G{c_4YWcw%l-#t{zPZgSX-9e0Bb%#exS>79EA z_ReD3$6mY9Zy~V^cYfI&j^?slcT_vOgy1s%Am=%FGZ)GE5AGrp+3v|~8+Z8Dod>WG z?laMp@V-aUOFu!wes;&6X`Pm>q~yT{iJ)Bpjugl5!s|C4%n{7!WA`SF+28JnHlI6t zOwM35(F2y#;XUsundd*FclO`(&U(pRzM^-|KXC6PE@5Opc?{PkuwOjH&F$IDhv*1b@LccQpM#eC`-B=XY46$C~U(M>EuPsT~^e3{Uv`id4c~G< zaji%^dsIYhO~P~swKAN8GC90ZGl&A_n7o^8c=xhN(%otBA z4w;$s&Y0ms?MTgco-Qv6;~C_a5~F5&i_$br&CYo-SDs+@fG3_kEvZ#v ztk3Yql|Mq1Gu|78_kdEK`H0?mcr!=-tDI`K%$wh4ao?Lc@m!-Sus;ft4z-z|RJ`m> z-4}hcJa0<68Y7!HLaSwW5OVHV`fcm{arDlZh*e?m7%#mc>|#sHup%aQyhI$!DRMLUinh(n92Pq%_qFzb8DuH1(g~ltHb7 zPrFT8O=rF4!NR{rV{sSH}XHb%} zXOj2SI5pc`l8?$$N@LW1gI~7hNf!QYmZZBo*i$*BuaIu;cr#D#&Qd4(hMA&A7BO#`xqQ?DG57LR$OWRyC1SF*Tb!{1={6Zgqm@Y`@1ap!!^b@c{QaR_lz074nGna zpU$$%A^uzL4uYv&K)T!HFZ&++xuP{(EGKhR_sh}m1w1Jy3$4M4u$SfH*}HNQlex4! zI%_n-a-0+wmPc-8dmyZ=dGyZa?;N~E8B8xP4GQ1DVa7u4gunAv@$dC;=p zHopouesB(uZY-(7mE~}ncbrm@{fmg`O(ix55lQ8hS(#`Sb@vEq$vw$S?Ho_~WjJ?& zyiVM-&5l==nWs~giEC2ZtuBz)tK8EydS~9EcMgB&{YKweztcO9zjNo`Jf<27731~uD$vZV${fjlY*m^TzJSiirc`A=R7G-kQDnJ$ z=$*BfN4$^TdHkKZABk{8H#C&}Se1V0fcW)eJ6v{HCs{*Q(}xeD&|T7U93ifosfE2*!61STs%fg z>{w>Es}W7JKdZ&FH`T;}YPLj$7!WE_o=flCvpnUX+!xh!Y!+>>`hI1&!m!9I6E5im78b2vjl#HGf$wS2xknr;n|f_kAsV(6Cy z=zdxfnX!4*5%`><6yQ91XX7n;pDESBm0%h*6D~65lU@D-?qWGyU|tONWoLEl%f{g> zHJe?NLQ}IBwVA6Z>FR=i__Ml}ovwji@?i~{kYGq2Q&Y6{2{n=IH58jDub0);>>c9D zTMIMiSp4!7-PyIG2K8ubYk*dACUWhFAGKh+YEbrbV3xIxr<1>P z_&XPGqO=rts|G(A$L_*i9=FTiKz3Ye_NInL%cdb+nHwpDoUQcE-9hiXeQ;GYo?Wa7 zrnM#*D)v<^BimX_^sQHGS=ilL#3|9$x?6nW*e)OB`HGK$O|6~6zOO9_3;wJv%JyDO zsX|`)pvaF>0%*bPeNBFYD!Ww+MScvX&Qz0_#cil1?#N)Pe8fFAY`qWWswf(s?vn^5 zi`+ZXJuJV}qI)oC>=d@=D2`)AK`kblSf8$qoWU`2#=S_lz^d73A0lRvf+Mw=ll1wW z4<~YAzN@x0lI0+jd>%^X&pa&t&OAvQMJu6L6Myf*fR@rFTBwL_8?xr#}3e z5O%#b&qF>X>j}BZe2TQv43d3Kk-VZHF@Iy<))umui{$bR&uv^1-2t%|~ifB->22qA%>Knjp2Ak%D91%yySK!j#u zibx101pNNanKSo}v`e16pU?Z>Ys1xk@0l~@PQNpAXGDG<|CaHK*Yj?aiM?9j-EDiJ z)ZmbxJNGglVIflKH+w;E?N;0uKu5o|hkg%1b{$*K%Ww7xaq3ApwM8>sxVJpoy?gi3 z1AEIyxXZ0o1%T)ekNu4YpZvr@}L7p--o@9 zw;2?(wWFJGgyZw@H~TDm!CTkMzEU+rUK21S1$yZP=ijj#uU*Xz)5qodLxFq&7e}w%|58b;j=g!ae0FcpIcGTga-Ka2w>yIK~|wFe+)iVYW06%lrvK;M@bcH|OpZ>*uUe8v_KbGHH z__uiL)`2A5iBOB{W`y>(F}kH9U5V!_{meXi8s}-zBV)W^{EeUNc5&)n*5Kyk)iG$2 z?}erE@7W;#2mZ}IAjS*m%Q4)Eyb;FPHDdfA{}$JZ(qsIady#)jFG<)jMoV`bKzFnL zpIKgh&67WJ06h+Qt|Yep!N1v$+0+a>nuDXMd;stAf@YJQ_!o?aA!Tli^`H-fwINi9 zVTkzAm^7#_#1`Z0d3qxzdH=$(a0w@d%PZlpV?1hcUkq;CUdw@$-{Kwko*;-IJ`+RF z8HT01*)Vet|7P!HLkvU2=#jA$lG^tCvHZSr$5=`7d&eSn3P$PDvGllAx>c0!HcAgb zsR$)x!u8_nWBgl^-~8junJ4%+hhGX~2trO+Nz#gOm^&C}cVtS^GvjgCIkq@+_FzcT zT^RY6C%Bh zvInCSqR;m7INm;uelQ+Img}vL$F*>O;9uix-zYO4j=(ws{crv)f5}cQr0d3;jqP*@ zg&r91y(ru<9s`y12n0#a3-^wv$Kgofya=pkFXZ2Rzx-YlLFb{pi>{l{MZcaP)%^Mi zGQRNigg$zHLL2>Ug1nxheZF{N5B+H3LOO2}wx;4b<^D;_TDakUW|F)LeK-mJ^PI#l zCp6234|LZggn2c*2+E7zLlZa`KMrB(V)nf(znM!|fvf)sX2Hwb6A?%ecG71PWNeA9 zm?*`BeYBnKTll>C-hKg>16ZzrO<=zD!PuEUHxS)!3 zli#xZX0KpL>9$A!Z$a&JBb0K#V^Q{AF_7Qf8s^M{{9AYkK?rf@NP3)?OvcEO8G5*K zG71)A`c}A+S*K1p58r0-l^}MVsqF7Q+OPj z9+{%O!PllBp5L0HJ*tgUkUTs%v|~l$e z%krCfSHdE{Ir+{1jU!fPBc7W=FTq}UqiDU)zxfZujSoeOKAu8X!JBs8reT>mwEWVk zJPD_RvDZ(9?T^_;;h+3l{I~FV+rSUqyFN+3pNihYKc-T+rLUvo4Epm_?vTGf6;t+D zh4tjYJzU7?xr31&=WoLySi!$#`OU3lmryet=)G&*e-Lt-%-q~`pzMXUVw&k}|799t z+UOVWS10@AMJP_vpJg}F(I1odWR~*DO$Kz1vzRep4>b_U>?tzHG zOE?6XEdOTZH-}%-7r*$RE_<5PR|g@mY@l;*cOAsTJgcUOZ`o;5j-QzZ=fsK3rO-rZ zHXNjF+YhI4s$Ms(nQoe9UVR>zrtgD~AXshu7Ehl+yOr*RD_PiwTk@N^Quv4Rdkz2Q ze#F1UYdM%QV0!m7(?NUzR?9zT!@>=snB(8lP5hhxIsayU!N0{jgzx9yEPg3yzt~=J zu)D1btwKWOpA{?kMNP;7%pELegZ~s}g}23tcjWgA*5C>2H3#z!L$sDt`Aas+t=bm9 zrC;)I`QdGOjcjRRJQK(UbHmG_R56$f3pDElgQS@ zih&IN!=FSpTnt1auv{2X3}phvKr|Z52eN@&AQvhHO2I@H&gNlK#!WU5%|Ia?k0%m| z97KgsK3opQ@^A#U$^jUZVYLJY()q(O!AzjUUJqmMbHT#MXeL;Ic@|zqB2m6#Y4}nT z%ZCbqXe=`<7LTVg>`x+{j>Qw1Knk7}g3t-DxDZSifVn`-{?E@*La=lAuUJ!He*)1$ z09wIZI6u5plM83yb{xS+__D)`fzt3CVyQd=;jN98!?9v88!Ydi4uV%T;rfJi9@6S8$i;A3!zjh9?Kv*rc$vik_o9BLmDEl zCh#O>#ArT}BW zF&B>)!|`~&rU(-bMGBFEn|KPhk$4PVAp&v%1TB#ZW`-4lWkg&)5Q~+<2n~{eT@Pj9 zRT1GXhq9p}Y#@0M>)B8m`4Z`!jz?qJAi_E-6GW7yGBpV}7f2%pVGECt4JOiwSS*c% z!}G^t1$dG{;KNZ^NOP_!ZJP<^N0o=i3M1fPJf0bz3Bw2I<$}>-xD+ad$|yRqOemHv zhI5FHTsVry3>5+?DPyHjJQmA_Gw?4Hh|B-6R4H5t;DHbqnNXq_%!JaZR6dX>gz&J1 zKokiak7q+UL~07bfvt2R9z)c?tjOgzg6tSAjLIP(kr>BV7Ea~Eh>&5$k%=e-(I{MC z|6-+@I3iO1Luo3YOhw`xO7<41Gb|G>jYK$5JCwq?Ksj7Q0g5HEp?oM`lPV6+*KjuB zq+N5%^PIFP~fB#L3=lj2qdL>*E+vt2qfEWc9$0V{+`HRYNF zk|%{2DR7L$atL-Ygy@V$GpIXI?ST;axj-pU9+3$lh`Db^;0NxD$hRn9P%fGJEs96M zf6+`Rj^rL*3L{bwWyPAp@K`yJ$k$|p@TpK!4j~(5wuol7iu0pKP%x3}a|mE0Q-cQ| z#?=(^DB=m#UlvJ{DhD{0VkpY7G9D_P$Ok#P%7IiORX~)NQMDkJ(wPz2Kp`B7ltyJk zkcSZIab(^sq9G8;hEf?+8OTuSVu-5`+#!!d6VVLvZ~IgU(Nlqzy$ zK2%0##djWXIA4=Tj75tz5?S03v12(@EGRhP-0`B=J)*mnV|x)j z1!i}m`w{&`<9Vmaq!8?dGHy^se_2F z1hanP5PZ|B@*MaPqLtSZrIj<_)ymn! ziGB{|FvJ^)3M$Vb0-sSXfL~WGfw9KMg!yQq?U70nSI6S)B{0WH0sH^%r9=0V{7K zde_RqpDJfhB?=?QOJ2ery4xxjz`H9`J5fwI0gfxjJCJXbOW;=JLMOh1xB6W~E36!R zEtu1*oJD@Kd@0ex%IV9H=amyz5LUz){oIvEYb@-Lym}+jS~(3q#PUsuPvzLn_%0mG z&s7AkQqKOA=qJkQ+lYRr%=^JSqZ|WcL5WF6a2ONq>`v-Vq_1)oe1LKhJVQB>$36kd zY4B1ohnem|7?g9rK|H8V3H)1?M}LQ~syuZ+_H|H>JwOz|1UiR-3MlVjcC)w!Ac@cX{ zDAUWR4>1qQ;VFP4%JgT1Q@IQttz3MCXtLEu-Zouo`}BOR4#j8&xVVYdEbU>l-U!W59WBwfbX($?A3s&TM0u7 z%u}2a9`M`B<=q1Gl``!Spl@zrbfVz>lw;sSlzG3Sd0_Ud1nyKh?Hiy0Q*uPDbCW1lDGSQ{1;V|Ia`J$q_^ zc2G{89-y&cj@#6E0h+EHJ3l~2DMywEsKxS%0G$J7cT(WhR(~bJrkn%+uhm}_Af5pd z_b&?2MytOX4q)(_D5ozCP%oIn6S*uv=PPHx zm#R+ca_keLoWBBLQ|3nhDdim2c)zV&1P5wO*kV5l&`!!3@MPu4wE;TP%E2cnr?EbK znR4{U0lEUrVatKlDgT~+3Qvup!b-<&x(`Nziq+9~;t6T<8QI0(wpnByr_*msE zc#(1*+^t*!pRF7z2IxZN82EB9#|iKCcBeA${q~45y&b?(Lld_2hXHzDIS>9!Iq`Xb zw%Fe2WP(BZCYarfZyltV$_wC`%0+OKatVC8av6NFGSvpL9?`fN0pF_}1wXAE1OH7q z0SSw_piB_>anI@cYVHaO9iDuL5{HnDtBG z29+n!;a{Yj1}{^lZG%|EXzb><3({T6QEps$U!vq=%JL}zKHio}ETs4~?B=?&!s z_){>aZvi}FC&TH(g7gh#njWM*!5k-9@I>X@%pe`ETn5iq{rs#T_SrJ-l#UAWibHWf zesqv-wsP>D%DK5gdd$k_p?oPvj|tM2I~%+CW06M6W$+v@ho^LWkd`R({*dP=XBPyq z>e1MZH6za}r@;@a4z&j9RpmJNQ`Lzq4AK_gQM=%sl~drcVD>lC9;BmHp6ft9QOzkP6Br@YBlCfgo*Ej)O<+YQm5P@2Q-* zC`gAXCopI*M>&5v>RaX5l|kxL&VsYbk*kCB3*{7ejnx6as9XYnq@1}XNHtLthBA0} z<>-$P2IV+7rJMpURgPU7q<-ZR_(xWr3(~D%PSey+P+pYr`5rx{I+>pZ>1E5eA%7~D zz+Wmye-WfnyJ;HXE4HZR-yq*A=kE*BROQ_LXq%La;Q7jthl11w=I}%x4$=yh=fIaM zN7n`E2IbO|DDPm_&pZ{R^(xOj9i$hO3*ZgPk!LYDv%ALOb3v*Fv)$tJLE1yP@F%oi zs*`&W^`X@PpQ7@_%R%Z;c?Nv8av6M)a{Mnrta;S9eHD33IrmzSUQsT*jyhSn1m5Di zMnCdqkoHzCzZIl|mGf_-EwDQ81Zkmi0(`D=7JP|v34F71aYK;qSI++p@uSRp%>GlE z_nh5o4-F4E`s+}E>nmORL%!NG}G#UlU4`Z zryL1}=pyAb_-D#_@MBgV{AcA%I7II$M{7d#m2w(fyO#-D5&S*n*su^yP|kzvm7~K$ zG)p-Jp08X2pRAl15u!!PIq+##2YjY-WMqg2l+)nrl{4U9Drdp>D!9^4lHi&7ouM% zmk$Wh@03epL-eq6Zeoc3Wc8uvu;iQBgS!-k@9t2lml?*czg5E5{avXn*DW z;t(AH=4X#CK{{G)57Bwb)PcOGoC4pZoB`i!<(&wFa=tr6B``lr;;axBT^jd`7ldf5 zeGNxeg=iP$bT&leEnga<8DO@XxiUmeR{yFHouN!uBQL2=?D`P>T)F(?5Uo|t+=z5h z{lqOH!s1bR#=>JE8n&O|%o8EnSvmF;@`-X8gXhP9ISj>TLzGr|;rS4)u=+2A=vu1} z{*7|v#SlHATm-+ZOfQA#OXWOxyZucVQW%`yMY;4E@`-Y~6rzKa%Ws6RpQs5>{Ou4O zr<~e=vZgxpZitqvyac{R<>fC!^i$>1Cgd6ANGMF}m80P>y`-GQN5c4~%B0<>FwU7X z;Y?t%pjMe`!?crfYMU_aV;P^y9i$w`_h-i`=XVGbAJNKrERBz8mMdp>4byeXWh}D3 z8_aPYnGmK2RbB)?t(?JXwim5FmTUc8^$BZtMjl}7Mh^+ox0K6qgbgg^x-Luyt2{D2 zOeZTB!QHBpst?l-RGvLNjD@wv%`*5-)rrgu(|yX(Bg6EhavuDu>PP2<>2u}CQ3zYi zgrP7mOgmWqewg-BjvW`K@nC-T*hyhJLb(7wQ8}6n(<0T+w1lZkIkGTJXDTNah3P!i z=l$a^R^~nAuT$nd=5JS~Q^WK-seY%9IY%LaPrx-Rgt;t~u|9j05AGrb7E)#(fK0#=jO z;8#_i27jbn1c%3&Fh`b#X?x`uIHsHdAEulGA7^=4m=-JNPY=^s%IP!0bdhoie7$n? z%rN~@xeR{D>SKcJFINBTFnyq$Iwwq&o<_Fjm5vuw}qoO*9<4K1|I0|4bxZ31@KmrjKA?)!!%l% zeug?tIs3~n%~dXd7bz$14AVKv8Sv%G(YwNQqm_g20dw9f+#RMTl(BOOy{sGqzp45q z@IRIL+=<%BS`YkhnD({&Aj-RP?x8Rptz3FCObe7FPoZ5%mGjIZf6?ZCfLIiGj&uyX1Z#HZ>M!5dXxdOJ*?s675@n1)X=?nFNe(=K36)99CB znxOJ5c)D`=E5xnpWJ5L7tXv*dL#J8&EpUc{%G0$qlvU1wZ&EIR?^Z5?*Ch*>{)sYAxc^2u4_>F7`fd%qpqv4}3YNBbPn^4<^1|LV z^rdncy!C;a7Nct@s+<6iQO<%7QZ9jKDi`;uq4{8TzqBvTworL$4AMwB6RV*MR3|?c z=Yv@N@pu+x-sAf&E1z0J1u*B0;vqG(UO6@sXKpA*kHDEI%9$f;uqN5)(;TGHL536H zZImPPYiL*H0(gva>DU@NSULaw8ah%rb6gD_Z*{<}%JJioUdn0k3afJ>&TvtVoP@Ja ztUmZR%31J(V2-QkDad;&PbBdy%CS@peW+Z(qKL1Q=}hcdHe0%QLt(N8^7Lw72tpRd6JYa{Okmy|Q$zghkh z&d9O+0@BFxi%6qGjNRNzNF&RiqfA*245Km1(cmyTP&oxY-0FajRxW{0w)&xAv>3b# zo{`TP>Qy-wON1 zTRHf1W!ice1r9aOOSRa`of%2{lhMOyJLSf)!)PbvKPGUFf$}Th$;uyt8I0Rhz+Wksz}p-Koh=amOK|>xGM{fW zR+-NfY5;G&B~cuFlyW`zB;^#iRrw-t8eAJdA0F?}E0lA)6a7dzjz0eFRtNo&`>Y&& zy(g9VjIqBc7iJKBuAG@g^o{Ap{lpxs<5DhyXDMf(pHfbN`;^n*3zQ=Xghx4lEYTgx z#rar6s9b=~^UB$IL>rXT#~?h)<)aZd^(H)}tBH0~PG5`lUCOZ^VLhjE_Bx_@%Bi0a zEmTf}&sNUeMs$gC;uk2x${Fa~qnrglubjUHYr2%<;F<;#o-%ZHQZ9nWE9b!V$_4OA z%8^^J_Ds11`FYCu2eEchIr9+Cr&3PbjrEGku>#TC%GvvgzEVy-K(yWA8b5bo+Eh6W zuCx3rqPfb^|HT?Sgb}iPkDHqpaJ*0B}_edAz(mh01C=>X0wIeS`_8d!2xw+w=NBk>i;pS7yrRM_ls@3@b;jubcdsBnDO!5qPC*>I2nV_74{&eNcTEvNR4mvH$ z39N_dRnET^pnfZVF+kTUM_$01K&yi_HjgW(;m+I2nI{7Dh1CJ?Fx!N!1Rkf1&l6~- za`cS=ovfV4`kYSX6nKTz2VbvT{t)YVtQ@??>W6~#ta9d~0KH*39HcLlk1m#>e*7hiu5hv#>N1$_+auj^KatZF-XZ0a3D(A6I<89^QsX_YK>cjn! zb4@sli-NR^WrTBo<#Y?y9Vut924J3Y{N^B~loLP3+_%+-{9NVi4VZVf`qv{ql~a)a zN;v|4Ksg6@ik7hs;VtFtO(+-2d2j^%5=m>=-BmdUf5#}Nur^?Za{A|(k5-O8hIJRp zi6^lJOu3Bby4A{||A=x5>m2^79DfMuYvs_{7X2X(Lw?&3?X8^NDnwJ2Gh1Tr#>z2w zd8~2_@-F2lc)4;4bC*914;Xg(>jpsU5xd=DUQ_d$azowj+6QcW+OS3}s7v(bi`nPfsyzTdm zzZvkJ%7t&^*_F#XU@lv^^i9lPE2qKBtUma1)4AH*IiJe1quyUjY^S{b5aFcSmIYix-7hVt1m&bNi=x5{bolghcX zL-e|G33I!jDyJ~#JL-57HtI+GD92&w zOD#kHR^`YoSkGYfuRs`-qqk!XgK}vl){38G!VvFAc~Q=-4$*Yw;^mn0RnFcJqNU1- zABN~Mj^?pe!RoIH(Fa!lGUU~hH9zbZr0*%G_D7wmoW2BWQIyLU zhv;18Y!3cf`JExU)ynTcoGVA+*YnCT%*B_La~GkGI>q=~8bG;FE?*a-2IV~F@lRGR z-i*AboQ9j1D96CJDwhzS1?9+nA$r{MA5cdr(<@j5VEJwA8l5y@!1v{}lXB`Uq`PwA zP1M`US=c>ZxrDiUY~~~NTNLh`ql|CA=?djM-1&ua1iZ%bpHOcrN5StY7r}v)aWhj6 z(e}#G4QNx86CYqbfO7Fe)Emlt-tehbe`T01P^Pa!bd_=${Bz|Z+`msbAI6-ia%@eeey+rR_0)q?|^W zpH?owuQ!wv@T<1jgrN+(qm`qOPgjnN3eyS7rJZs1x^gaxc|fZJ{U0f3;m#eFq5q(A z;Xuq+Dkl!XJfLzK@{uhj46(^r+hBPj);1`YAfKe1orJkywmnrAK zE0r_gE0qgaJ8_G00`hy5Q{X49&Tj+snsOHJr2karvsXv8nlSS@uDdGdP&bZKPTv%! z8CIt;OiAU^ETo;4V@<_H%9;6?n^um2f2T~aTU0L1zubmv;)8X-k5hRRpIee7ECpmns!G=I{dD~UpTy7n}k`yv$Ml{ zI*bF_I1WW8?(mTgpI|u1&(-U2zr(jU{5yxAG8|&Ne|31H!yh|Lr%GT%e`|+#ba-!v z4|I68!zVes$l-2>&vE!-hkxksj~)J{!}mMzQEy29KOoo8yvpX;k?85IQ)Ra>l}W`;SCOd?(m3qKYn(1 z7`upaMwPq~clacSPjh&+!`C}}m&5BF{)@vOIgB$&Jb!m~IOg!-4xi|7i^Dw*uW(h?!^1lLXW7c(T^!!uu$1?S4j=01%yjr@hm#I3ak$6f zvm9RG@I?;a;P9;u|Jva{IQ*!?PdogA!>>8~j>Bb#KX*9T<;T?sha(P09mY}$nt*E} zE-a;>$+)KAnu_Z{TnFKrhU;Klhu}ICR~%OzuETIm$5oGOFI-p-LRjKKSlU5Y(n0&- z+8@^#TnFI7at<1cYaFfyT!-VDfvXW0mT1s5xUdX>uq=aS;hK#LOEKsuTnSu9=h#1s#v;1Y9TLItkawxK6=^B@%?C5!8fh0j_3TEx33OiG{cp;aZHV z4cDo-mf&i~)q$%MR~N1{uG4UJMTo>TF5LZ90Rk#LlU4&~ju8VP9f-8&bQe2nex*XRPxUR(Y zLtIzkx*FHDxUR!>J+2?)x&c=X*NwPt!gVvQpWwO$*H3ZXitA^%Zo~C+T))6|JFYu$ z{Sw!mxbnDuh3hU{_!q~OslMhKGm#(RaJAn5SNEIq>*oCWf92OG@i~1-IhfBJn}>an zo3T@GvZt#L+lTiIHuugO<0JKwOL&h{KBq#CWa8U&AGX59IS7LsHk(FbOHZ*_?X7nT zkZiO(*fLJ>G21f_GU6SDlg5@HA5*~(G*k$%#Usu)Xy64jAR4OYN6RqT6bx!HpKp`^7OKeaFWj|)6-nNBcqHbV&cYy5%?aOdu(G0 zj|lk{N0+xQ#VKlfPNJL-)wZaw+w4c2G-njpQzv*cb_p3QC*@#6zmDX?&w)pS6=BF<^AX&{f z?8Tu**lk%8g%!H32*to073X=-v#crYTZLkq6KL#%-_zIOIK&&OCY!wiFP?We_HlM$ za#1(-y7t{qx3@JrF7O$?zA4|Km+5IQ)w7B{!JvE8Hw&72T5&F)uhWNe&ZUBb!^u@~ z*X-Z%&f}gUZX89k5xZ~dWG6U^3I^4YF*OyZp8)2bAG`+}oa>VsA#bHC{+V0fP3%11 zyrc_{(uVDHn_vy~lojFNQ$ESb7c@2ZwjpPj3^G`b{kFS0+g%IDmb%w{5_?$VBxTOH zp8M+DvNlv6%Q#14hiuu-8yg?X5d^4_cq8fR0z=6@bH;!uV+U$3uzJ7;O4&j^T}2O@ zfJ9EIll|FE9LS+4Zhd8rNzr=Eo}^cyt2HF2tt!jmh;s5bpOxz>iwPc~t2x=()ne1Z zcq(RJ<5(ISs}FL=Nh-$$-3WP*wzhSs!*P_8`pf~w$w)oOW9G;`WLq4Mg6drYj(wg{ zE})$>XF{r*atf+BTLY;e3C~p+Z{BR3;ccedaN?n@sMK{nK`v=dwoGbc=$hcD%b~>P z?8_>XByZhrTWAwE{(%rBq|czav9t2{8~e0o>urf-w5O;fBu&sDwxdYn#Tk592S zj%Y!41bno~M0C?Rrd6inD~9z-kJY0l7cCbkKZ+~KrnZ9Y+sZA<0pap^a`zY3e` zIiE4%J{=B$<`xu@;XE=2TAsv_aj<=vInu;t7*ia2P$Q$O$0Z60hAy1x9`JeQT;X)L zF2b2CoC#E-g-uR==xkktX4|X$%~=vHdUz1Z5025(A_{kqUN%v@^Lj+=HEES%Q&(|5 z_vLN{VGji|ZkQeRC9`r$NEZ!B(TRfvDum|5^a>HG$ky(qnz5{9r?YBBuIK87+fTD< z=JiRG(IoRRUt|uCNBk~q_an=OQd-)|Kx(Vsr2Q!CvS~UbM*4c&+Ix~6OOQVnk7ILn zz{s1MI=ed2&bD(;sM3ga@oXJwPTdMizKL|2D$L}3ZGIJYJa4u!Yy6aYSsT_t0dkvZ zW4O@RN_KbP+*BkXpFiTaUye7bfQ(dOLrzBGDjFSwiePof@k+>R=_Jav*ST|CWRt;G zs%3oExRV8q=N&AqiieJ+N$yp0N>sQi@yVxox{;<1aH*&?;AU4VqlNmyr4Q_wn6Bv8 z8CQ5DwKtBsle6jE5V!_I2i#~3{Y*_uFbHx+2dWhmZ6{7Umh{?=DIN`V1s}7=m6qtJ z#A&Fkl8Ir&w0YY{m1@ycI!QTY4jGxtBVw$1f$2)iJ}hkZPgbbbJz_m zp?&g`$V$ztyzT0!)K43$=H~+|LH8L|FS3z08e>dM5Iij&wGlOr25Di z>>)E7Lzl&%LX}Nb(A|mypN*G-;-e87H-rriiVqGFYAhZZ8p_O-`mvyqWX|-&y8&lG z^U^73!q2IW>;hZpoJd7x8Yb}uIh9{TC41l%bTJ?4l{9sW?N?x=4Cf9>*QVM4!wP&{ z<{%5)q99GH)q7f7QEIBCCUfyIq27CO5|uNnng{R$Vx+e3;LA~YntE`skqzQt6XRG< zx~r=ljlT@X4dLR~m|JJR&bVc16Am54JN3}c|3|+y_A1iH!~}Pegfu(Y)N8}Jh22Rx zd&%S;YoHP1b+=3nFgPyc5F^e%6?xEeh4a;avSjkDWHgLIv~=|%>_gdTve7cwF&$-) zfDC1|_4KrK(YVg3h#7Sg@q+HGe+GG_l8pz1&eTm>GkXbc6(k#KAgZ#YP4Wugtv%Ba zo5OA^y{^asaxmW4WeTU3wJ~35*$!E7Y3387Dm~&F-o|TpQ|BV&K6~puCOR5YG6x$N z&#M%Z>P~ezRAoMk%qg=rf~vJOj)o}CcqNioU#ap3n-5hGM?ix}u$CN!Yxgz7f8^AYJ4irnm@i;fo_oB+o!?&76&n+=CH@_OZH zCeV*vDi*;wZV+Sd7-htX+VXmp#*BwG?7^!R%y>|^rw6?oRBU*^;t^5!3d?@@aML4= zj4{wYA}nAOrlNZbMc2@}Bw=DtDgnDUW*E?H z@-zdQFRq}>tBVfP$Z3(>u3;S4G*Nck&%6-uVUjS$Q_Ej{!9s$!rTh3z2`w*vVB4yh z(aa=@JcT4o4Q^xNn3F!$&%3S>bT&|E=Np!P!Dj5jPz;3>(>F=p@hhhPKGC z26r*gU$Itsgjj~txJRu=)k8<4zz&*9t1NvP@s*vCY?5s1Sb)i#F53eZ4~&U@79>HX z(^7!Bi1Rp_7vM@I=M`6+l&+QuY7#Ywc`}lrHycEM#FPi*@QT~i*Upm_GU}_PPTb;N zx_!0r1aMLErG!c50{vGDPidhY=;IN6blEY!Vtq&M=C_P0p*}{HR2~LZ2SzXl*>E0o zkeTf}Ryk*~#2{@Xvl(NmQa6>Wno3r*toeoCgE@!ltyD**Wb)~ZCfW$s zr7au9l~ON;E5-5{EUNav#QfJNb6&2t;JM`0W?yI7cUodZ$JZ`a(33gWO+fu2WV3wof(Sb^Mg8zV$t~yL+10|DiCM$`t2_(O= znDpTJ+bS2d1Xc!1EUO8pmgA&Ghn-`yGxOf_*%B>Py?r8a&)BT;9=Wfp9cu(^^cov@ zTjrq3&AGxG`Ve_)k7G_q%IGmRKLNAwF*-k0|+L3_lKxN(`#tuPA2L5I{D%Jh=x7ep{&UBkhk@4 zOgkQUij_~@)>CjW%n(DRH*$)(eQA;htn5W6 z)2&zwg;^1-jq(PKMUQ7>`f%*C7EL_rprnOYrqT04Xet={wp!s|RkpDC%5fjgd3{pJ zQ$6X{X0Q3Meu$9YXff4-Y$M09dtnqqGd0Ja`;Lo&mQ5-1y^D=Qom^Xr+ZYjnqZPM~ z1va(gNQ>;cDjw!Q_pPtJ9pSB#rh73phBYowaXhfI)~qg7c!gQtA~=Hg0}MO$aLS0Q zjs|8G&{#VH6n(Vam4Z(1C0T+8m7xU5o~DI1+wxQROJl^AuChtnI@UA-sFbwp#eYp= zrFl_BGcT^dn+fuR4b5qNt$o~!_af8?oaH-dBjJWjpTG#bMGC5b!@70YSp{}rRFciu zF)4*M1*H-B0-;-oCXVwkPfmE<6|{lee=*)cN7r%aj18~#^K+nMjO?})2amg})g05x zY3*ctlMZ6LD+ZwMu8Z;8MI?{RpnGczxmrgsO(o^~f-W8(EsrNj^26DQRKlz^N+Alc z=>xJHnFM0rYSYrDwsxMXmuT?im@l%)TIGn0;cGyoHMjj;z2S)W-7!IfK-v{#gi2#w zO2geA8{cReG3DqfN=Zasm(Gq_Hl-7bd)nGtnwz?PSB)~}?%K>z@YXkxmju1RUd!Z37{bd`@ZUN%Q~3x!ahFKk;RoeR5Q z#gq_)VdqS9>oQb zOCQQYCr?G9mEf0)RKdYT3cQJSmwSP2Ee9eVrBUlGW|Ru#hY!F}05sw|1J^ieTJ#to+CP~K$PiYr71C4c($k@U?)&yMNzEN&XBoo2XhQj3=dH}!I%Fg1vD z_L29nthxueqphPurc}68IjUO1QFc(cda@T_U<-k)gQi z)Ua4ZDQiTK(mV`@T9Zq!c|lx=;Yo3dU(Zadh1B5okIRtXuaeg{w^if!7V}c)S3Fe? zvC1IVB@vvL!NpyieJ}vp#M6utlVZB073)q#=s2MrL}wP%^HQS`ZxFl`QD5!kk6DK< zE^8g=y*!Ce`pzr4vcfOFjY{^KlD44D{B6cyBU;5iM4k*}8*7|Py%!9=>Gbc+pp<`a zmXL7hlMCF(M5W>`i8c)-7F^qorTSsY3fo@XdU{KrotS6So>rYU;hWwr?M)#AF2tyq z9{?{v?tGX8y0@#nYndG#H;z;Zum~G#I9*Q%3E+rb$*fL{A7^3-^Y%O)>-AIh-b4a) z5Nb@1bA^j6jQG|JTA^0qk{J=M5P7{ywPjSyjJsD^shQJB^|Z~9jV^}qeAcd{-n$)B ztKuy=w*sl3Ih9p_CgZeP+nshFOXm`xL6ltAc5H@S0 z(Nko%j1Cjx8gu4o^=v^^fz$OCM-0YME}{V(yt(@8m|qA#9w1 zMICX*67F{6k_u4u^r7DMG*AtCPD8k$tK|&t_P2W#o;X|a9InI^c(W)DeFhF&#RIt# zqub1D?6?{Bf*{eu{Ve(JMe0@ar31q0*g*=mc0w1ed=GMp9c1E0jR#%vzRAymY3ycc z<&8{gQ7jo-gqqn%&{1!0MJG=0>|Bkx^;YAV1#?!bYCWD>HS=HQ#>BhfcKF2u`RMB9zII}*>bZ)K1Tbk+!7dLqWRlcUP($G;| z*5rLk#nM4Rl&>i`_7T+1)?S{dMsV;V*lXU7HG}q=6{-^PaHrz2_>n3ERXM`Z*82076hsZ)r!MnvqGlV&^*!d9tUuyDbghSs;VH6_RFj!!fual{GJyWvvz- z6%QkX}=3{ujXw_*g_RqskJ##?RIqHa`6#+B-Oc2yf)MiXTIdMBo#=Gwtb zFPjAQLWSN;TPsSJI;^!U9KZ`8I?0u$?6w^>Z|%gCFAF3_ygO^$+>3V)HeS%RsH^8R z9&+Hjjt&`@UD(#m^?@TX$;<*oAG&lrYGUskZ8qdCy)ont!vZYhHFsErp2TN1<_61~ zP+_nO3-P)s(=JYwN({@w;l(X@|6(;+O=q8*1z=rh#dnKPgJE$W`i$xuheSuC*qm=o zuI4*01>p#f3-S6#`P+vDe;|Bo(Av$7zXE5L1@iSll|cFnT%~k3qhl;z8vxm+{IT|u zRrgi5?24|!o!8pih?Y%O=$m!93B0YK)>iXl(AV;A4&(V_@2-Kly$g98uhAMcYHK?3 znx_XZ>d{+4mD$t{skBUHJ%Oi!x)k$;zSBq~&JXHZvIl)D@6Lln6AA!gU$y3%H7$BK z6FCOEU|B=H#a$cL6>^{5IInkV(Y-@_>aBIhx%J)As8TbD59Jwtw5nv@8J$Ra=O%%# z-|&nonU4vaZuIgI*(#Zh*Jtm>M5uXbvTGa(Ob;AxTJtj-%wmr-n@v$UlUqt2&y_BR_99wO$Es+4&os>u2BWxep_Gb}T@2IN z+S-B<|1MOiroXbdtFOH!xug|C9|$iuOse0zxC^hEJj@~jEEm9f4l@ek2wL!l!Iip% zT;v*@bQ5N})UNcj&}d`Gg~yaC)wu1H`2tsLQeeTP2@-(mVhDtb2oUAt~%$T1Vg;drJbz6|VX9W!C-Bm}M< zwJjrxNQ)J-WfjAwID|~ZOYV7yqOCdEZZZ#ax|`sdRMBeG;u^IWBcr!K6&JLdz`$jM zcah9JvD-2jWh8pTPk{b{d~LvSuNeg|co@IJ&`PJo3BToynKXXVRJ`b;DdlJ~FM8Z5 zLhkQq!5|C|NN|V4+@soVMIJH&?yzwG$7CYD}lgkN=V1T z(PU4D9mSHyjqi0SxZF$Uiq|~ZK^DXamkYnBVIXK|Q=6TT-Fi?>*eq0ei~M4Yy%<5- z!UkzfJ^<;~vmXycijplZwmR^=3Yb@_uEiCOu$2WS(aa){Y>DYKqbvG?T z;+PNLT%qaHiUg_6BYEPox@JV~Oi<Hr!%tLI6C!(+QC)^6*0lgTL4p{UOrJ^j8N( ziV+Wv08d^O1sDWDXIzIeG{`)vG{|8V4t7?hRgSXM|H|G;95$$kK>lDDJ>Kp#c8*E< zW2j!F$yc^gPogvB*0`R5*0OSMvLu$|wcBk3jM&Y5BH>Je(FVKkhRDpE7`&;dhQ&x` zh0IF?Ka9wnSqHi2@c>za<_5?YqAWY#&WH^OfU#pTf+MZ+%&2mx&G?NM3g18`n6Lt7 zNCgfD8@ORJR@p?x8IZU`+m+962L%xEBppycB$Z!nSINaQ#}V#ZVcOBWYI(X+m%(MH zb&xo*a=-Gc5LYA^#;wxW>xkQ&+6_b}HEGjhP%E;X^eeZ6pqzVW= zuRW{!u18iy!a;S*-b!0unTt%`GNXL_w0h6O*{)?SfBcz>Sug7-S~&;Q``TI^v1Z5} zL%QWo&KN5?Cx>pMjRpz2h@Ga%D07)|-Su;(G3QLV;0$3`&4@YPTq%aV&;aY_m#%?V z;EkjHVokkYhHuYYeKhG6q2hb=a_zSO#@65`*I6jD*aT}MDxJial~t)JA5#t;FJe?3 zIU@X;7;((1qeYAchn8#0>OAAj3z>&B^B>iZ?o06&>O3XZYE>m5B>qgOI0;E*a_|B# zo@n(lBm~^o#{h9Pm2Sg19g~y2ojQb#9<2a_87PMi}02Tz9 zuv!ydjv=pq`~W&GjUfl4GKsCq_bhI&S_Imb^K^o7QKS{`8b;#f zPPwh}7S$S+hw zS+Jk4R5@?O?&?l<%F6jw-3-OZlR74qQg{6@+pkD*5qJsCcYfZscia=#*nqj0#o1Wn z5i3BjPmK+R3jNaKXnG0lTlU`v9X%&ySW~u1^4#a1DP~HzU^~9DRKK0_rGD;Y$N5g) z^1KXVg=Xl>x95~wwrHv;Ctk7WQwC`lc4%XULV;Z-w4&yl3KM>7#{00k&!!OI2?h!5 zzzS5_dd_UMyGyWx{t^+sZ=zL*DgWJspk4H$4_`l}!9ULuBSCDs8ijN3m_~;%Lh#_}8uAcA5^~3O^Rgc6Dg{M#Wdf=O?lz zx-v9&34FCw)=6byQ>a*e2h0Q=t3{MVtmZ^+cW+zT<9IrgRhaIsq+Gf9Kjnz zVScPaRFxB1tEJn1kdGj;z;xa#dfXKzRl{NxW~h$5QdMox#jAicYJGnydMU0Ir@~ON zUwl>Iw-KJ8B9pN%P8|XzSv%h1&)YO%3@whYIJapVhPv zj?_N3yo?X=$$;6i))~0>V~Xcrn=$aOofyZ!i;>E%u&d!TkX{hDW9)Z@9c_Qwph}1_ zGu|`TFMhsT+!5{SPGe1!jS$aFUP6bE+ApRYPk7#mx0V>Jjbh8u`0A71hC32#} z`#y%>lq!eL{I6En46$#&F0M4F95naMq)tXHft_KnV91kebK%`rMUEF9she!?-`B2q zL{C}Du=lRuXv?}V&a}RammZiU8P#(0byua-@22=J_|=&s^M|Z_pnPd2e#2|th~vkg*~^?#MIHng)tIEinqY#Q@Y z5_g2tzn7sEcLvTe!iv4cy~|q7aw84|o4GGDd|y%iSm65U_gvXT=G%15r**EPC1fQ( zQ}CVt8p(IK7TF$(x%b}${rid#n71}(j!wrt&@|af$4bx}?&WT}Nd&K_Xx7?P3uTc_ zwa}~fe9Ka!Sv^eY5AmMIgZ!S{d3;xl(WxOE@ymeYhF3*9GOhsq?QC5Guj}Rrhwy92 zV4-$0<4l8s=8s4E&N{D_BCPPm8CnoSZi9SR?Qoh*=nWxu-q6^#RmW3%>qsi(6%TE- zy)gw>)g6&@<@^p{J7})lfAPhVDQ8=IzT>^VCGdR16@*fnrx;S1!6TB*Xk;4xdt~Xi{MM+~X6+9HnzZdSeI38|Kc{4YA;_H1#auSuTW! z7sAYFnA0$~ZdP(m-Ry>W>c+gry0OW_&B|5bnNo}d=gVOal$vNyoA;yxNjm4gwq?)$*2^XMj6LP%$ZrQW}=G^)mm_-r_p8! zT9{KY7NON@vfivvnTrMbv-sO7#0S2UG$ZG_KN?FqntGOCZct2l10O!ZWibjQOuAZH z+Qu{WbebK!tqEE%>|_NsER=6U!b8K8Eb5cZ2Uvt}H+|Q*jsqFZ+Gz+d^21%KJuu7z@R!J-bn z;r;rsULX0gm%qQn5)H(vv?bOQ%W`?64%xNF_tq9#PK?EHga7i^L?&_Muc?qAKt_bX zY~|gt1RtD<;u7}2d20Te#J!b|N*n=q#HwyNA~hl$6O#+DgxR#C{3glUV+UD~I2JR5- zQC~Or`!nb8M*#EYux9hp3da{=DA`SUKBd6qW;w5bCvyO%DA?gZ*+`zh{NSB89oP6% z5chTouYQK!61!r~7GKDCJ9T8t%Ho7v;(g)F%z2yta+c-4J!zB@fOKl`S3>Igh&F~N zrC{WLJ1sZr0@pTT?73~7gq9e{H(t0w1%&LU%hnlq92alyTyFR?02AF(m-_)|IRoE| z^z`;&o|&uUZk)}y`QPRk*c=0!W8nYyG4S-i-v4Sij!@L*3rLYWK1`7^50KC>a0vK5RthH!NrIdJ^uX z_ATgf?kmIhLp~fB|MroS$Z>Ws?r|=;_iu!{$Is0FjC&XzZs-2(;O8yy0mJxrtocKH zFNbf76hDK)hlUBSlJ;Nq^G5k#V*D#K8x6i!r;VWM7axJ4`QtZ0^RL>y(g^b;8;&;S ze6No#f{L(0f)0EqfB%DyE;`VIpLg8}#=Wz*H164Zb2s=G?*%#;iJgjf;$X zxe+E6_}&d)wTphftFJqz&M~$5EvmArd(Lm{uAlF4f|IK9pJZ}q_oi4KxaWq8Lw$iY z6Z@UmK~R=4pc{$KNtJt3G(236_#fX_yLYiMl3#rJ*z}*=YgG59Xkp-c*FApDY=wLB zdg@84!ZS%RN33)dsLSe6(D{XBF_*b>tg?;`@i+3F z5wwH*K&rD7{<1$86{a6~@L`iKxN_(2_ji6MGJOxoB+rjPpm6PD@9~%aarWRc#&%8C zJAg)vBs!q4r<>z|FYMuu7??U{iWdw2oxSGnGw`NfX?2i)q1)hdpu)d-XYhOXn8O_J zXisSIbBwreIAxHiqxJqm#4G>X*SX(YB%6OW$H3+o*c=0!V_t7=F|auXHpjr` z7}y*Gn`2;e3~Y{p%`x!*E(Yc|_P^D*a#LS;Y~kdG8mAuo=1Ie;_aA`g0DZ&n;UO6@ z;QQJu3$?#3EH4C4eyDcW72*-wU;a+0ckAVw0=;9FZwmI#Vwd78K4B*}Zn0Lzbi|nz z&-NbLUsxMHk42lHwBlK-!xGVfz20w&61%?fCD_TY4S2>UKg9mkeZTJ5y7_g-%xhf! z-rkMw1iUZW&@avU@+7&Or?m)w@SI0N?H$2fe&{wFvf7r@G?;fk>1Xir? z{Z8ZRV}myQwfC=IQrI=HZq=y9O%JYE-}hnvnl{E5i zp9<9N_NT^yhGOGDJOc0Tsq24jVRpvqJr1q!|7^{MaO1%2d+G=FJFjl}o4eFs`1(CO z>hxTxZsj9=v4+~4-|E@AA@FJach7mEZt81&>o<;rrN)7C;Mh?+HV#Z%!=ck6d-Txe{I9MuQqL(8tUD$ztA{vWVCT0yhhy_apI8n-S{2R*#E_*r~1p!Y#3SQ zs0of-)4vW+J8~W0jWBnSk?S@UmVXwmyPrpm>uaZ%8~Q)}`^?&X*8aWr_?poJHT3t| zbCpRV~Z+_>hQ;D*488fsiwnA!hu zU+spU9v`54HsRm9M|xK7vsV7T=5Mg_*Wmp>ha0o{-`Viy@){Zl)lV(=OlTZ9YsWdO z_xlniF#2G_X~xywI~x0^Bi_%7vhXAoUJYS%AjCQ7d}O)0)yHlc`$_+&3u||+=LpWQ zBmL#&rClyuQzz+D_grb#z>$%<{(sdW3^N9HzO-TGi?u5!!E*oSvj(Q`IBQ@@boM~| zlQerEyzas^lEoX5DMmgtqkrd1H%?xdt?z#ZPV6{)VEgs6`@`#D2^O|oH@km7=+}vb zne5Aw$c&No*VF9&;_Ut>>uT>uKI#2l-Ks{((6d)JB122~Y<{j=HFD;rHOSB()b+2a zLzb@Vf3R-1XIFtuD|f!AZ%p0THFe9^Bd0&3?llA+ zgEiLI3~jXQR)#O?ePjCS@U|v8?q#=TKKFXvr_VI>KUcSAV|d1HTV7W`b-ShC!eiXa znYr${*OC1qhp*i7n%WgLNXte<5I=r@cpVTavERB)YnMM790*NaTf6ddWLhNQ(nB~2 zXRdiCG^_us4R@ViLo@pynZ5G;zM2h}em{UTU82eO)rKp@aP4f=W;Gjn#qccT_Ol`z zn$D|%W^<&zfBeAoaQ}1^j)r3Y^ev?@jc^Ln!fbW@G6nU^x`7#6PMv|0FhAeee@?M` z{J`Xa8R0-->Z41eo1WUR{@O)H(9S&hFA5Dte@I? zdvBXsiuy>lDJZffZNcSZeGf8pnu*LSh4OaJRg_?ZL8MiBdbC?2KR152Yb2c|u`VUJzm z$fk$umah$}+YJZp*|!EB^nQ2dz_~ka*y>yq#es7p8^Q*n8@@P)OWCIz{(--ZYnO9) z_#dnn@JE7{0Z7nhXwb6%ZFnYZ?}mpRtP0OL@KwUoYaqH|iH4`ygoo|$zsA+S&*IO9 zxsL~F?eYsnM#PEvb?vFNhtk_X344wcvVYUshF93;?15YPInnCO>i=Xz^3zS5>ZXSG z=-mbdZ}!01dqj^KnDFVW{_z`^&FcUA%+;5$$74U?4Db`o&#f$+-aT{R0d}BqAk;Vz zYeemb9P-MBrC)INcm>&GJhI15GY76RN^^JYM}2Zo{)G-3X)zhPbD z+J+*+hXieSk^jyz;ob0YLx`K_-tVA+#`DbTe|y76JBGQ8Z^2FQc^v0~hZ_4|YFvE| z>a>ZwzEeZ7LVf?=H#~NzJUMFSJ`~$c8}|7Gk#^AV+AAMo)eT=XpsoGwLz?TOUeK$< zEB(Lo-n*K^)Q?Ja)23PdD;xhG*4_m?s_I<$pOA!v>qG^OiWntoP+JoVnv|d!Nnnpm zl&Tb3jaX4?TU!xkAc#olWHg(7rll8JPV0r*o|YbMrL72F0^wpN;4M;XBUFf&;u=N; zFAW!!`F`(OdryXd{h#mrKc0u|J$tXqyWaKQ*Spr{V#lu&5!^db_Y2$%X~|7`NKFhy z&pKC`52~ltISdC1wGy#LD(eb~*lhQXD0A2K`+f{`K?!pT$W7}n;w2+h zZI{Z({4Mt&hAgL{Nvo-#{d(#QjiL9|OQ&cIy&JOksTp?*hPr4J(DuyGpslQry$w{W zO#gMOT{t|Du$FsLvx8AhF}|>Lz7o`K`KO@PSuVp4*-7=S%M2I?kXsq@imX%{KL*jz z54F^C6im>$Pw1w$sys5la@I&MsT0u!*tbm1m=4R<&!Vl;urCs}Vq(+xr1BusnoxYr zblu+pHQ-x0g5I;u7}^*>hdTgGIfw+y-laxSN{}OLBNkROS3rSacd7I4GVj{lXX=Rw zK40>;@=N!*GgTmcTJ}fOSSNPHWnR_=12Su^*m_zGZ)?X>Jo z;frxchAdke>Q_@aI5$#iiN!kX?tO{6`;on`QovbbW^b=@SjndiLDg$AkZ7wAwJ&^*<;0~V)XHQDy<7H<^m0w{rns2D znfcaqEFvX7^?r38a;esd++P>#X{_W=mJyneofWPE-BQ?8h{ip+*x-RJ)pcYd>G=l;5m#w3Ra zGmAy)p3*!SJXA_=@=Q0WeqIbBdiyI-?ev!#EWCK{{CuAb&4LlthJaSisr+@ICv7d+ zBGMsCP5aOEW#pafKLW#~B5}f;X@$`@bH&<2uZB;E9?l707CqcAJQG@IlZgP}e8!y` z;!4E8dS;QwTf_c3yXT5T?V3(`5J(H`_iRm7^QyOoe&yC^3%~Bwpn@;;yfm_cW_t?- zHpqP_ersna{)OZl`5FICq^9Lu5^x4%Eush}lvs9NXgA}VG zx+Sl!>Oft5an9WdESBP_yM^=a8e-UwK#fN{T+t@$fifX*&BL*VtQdX#;h6+f~p`?;X~YQR1av_EB@ZkVnS zb{sACj`EGq6(d0Gn`ePRV66f~9rUQ!E`<3#jC0Ped>{NA&)E8z3vRYkc@XY)Kewg{a8y{ZT8g+k(zdOEuNTwueVbx4OS3 z`l|recj#381hWi1H$Kpl$cw;v($?5_UWZ=3c1w;A`U+nMpN_;UYRfcmd3FQWh+U@z z`2t+$-D>-&JZ5oGn>w}nC@CG?Vr9uCm70{ppnFoU7`MgaPZRH3@~#^70_cKjxN z5t9{@{3zqCt_d^=m$kT8kw++a(Fh4Ya zS0$KjyY7`(o4wiJ@*pL$>3_DSe}D5sJckQ_q7ta2o8)2scySpwURv+mQd)MkQ~D`k zq0%CRo=nSmDKUZjM{Y8|5p%Dox%-fD4X?y@Hja$#jQDl&pmSBRy@^1{%k|Fp(9ZSt zEzkOJ0bAaoqagl9QP2sOmY}o+Kk4Oy9u2oY_BbW%&B1gcmzMkQ`!2Uu zIzC-rVpF(;oK|g2SGCHo@R#^4Hb%X(7*!dQf;cvbgCSd+KN?BcmVX0%&28bwaqChK zSZR#{iVG&Js=8(Kf&@HTFgo-DVquoC)wQW<$Fwz*(A@(j_}Bd;@1(ZcStoYcD~Gs$ zTK;I~bJ-oPvv;4lDN*-uBT8!?SJ$ReH=U&^Zl#(eHdR+@pt_O9*3pRA20}?$g!eiA zg`u~&pbY<_QL5U{*&4Grf;#YQh%s?|ih}|*$tCJm(x2~2H=-<>@Ye4ckbhsPDRGrc ziQ7me6iVD|DA8FXvnbjzUf-m~!_1IjYz)s9jDgk!b`}=IvKQy1q{u@0J0|*2c2mp6#%^_WPhNl&Jdy4SZU2{3sy}kpD+5YFz8%eCXwi% zJrR1X;eV^p?3H%jJ}bT18ux&p+TVN*e}mEXvS9kz(6~S7XWw7IGiX-O0;Nso5^~lE zjfSeUPZGYA-$J|uGk~yF3SRBpeFU0?qa&+S8RP)5K3yOGW^rA`dz2O|rXDr1l;}NW?SKEJqvsnM9T?2W46bWJg5rhX3WH2a~j` z+py%C+ag=6^mD;6IM=|>_(OVBPMJC#bT z{QKC>aQ~p)P@cLYOK<$% zRKRtNRI7ICNC^oHY-5H3O^Ygh;S+<-qH^`$gi7_zFR38~e!^A5o?NOsXef6rDABU_ z|5( zLyxGR(9I6@A9SW))#g$szNpZ(c2rc)k-sGf5?QS%JvNrEXIb#K)XzFZ!Mgn6dMPoT z(08sp`A+9q{`DJkI+yybbVAnO8a5v#Z#4dir{elM1^%^#>8-Qu!dbDc_$iD1RrtbNcxD_MU5sOdjNNKh_r+y5%{Ym(1JrjzGBDGd@A(7cJ5W+GXF`THfE1l~7 z{q!a z@a)$*`|Y4JN#N~1F1+*TpSUfd+~BxLz#EJ&E>_b{%ku?|Xb2`IX?PivSV5C0ZpK#P z|Gsd&@P9O+*F?nmNsgeZ8A+e<^!m@IVmAL1Sz*~%6f!Eyu5Sz4f5(&VWVNItc`dKh zKgWAa@gP49_5PH*WlJaIAn*O_JK|qC5IvkfXGru=Nw{#yp%^HN~CsL3qLX|&5XAP5)+GsvH+swGHiE;hZ9Sd=2o8-KDqh};Q`g7B4;LF7xfm;_fvpS zQau02_)JN9*Yp^8hBCg?8GZ2mowl=bHU{jgii7DbcE=U|^`TK|y!F#ua8DF)hZu0f z`Avt$M_#-te)}kN)~7k)F9+k-mFmSH@g1-Ei!j~9BJrAo$wS&Fsqw|F1JOhIb4sEI zOTweZ%cwb5ApI;We09j{NH>xyd4iVNspJ6nD(m6${1By)6u$A{d=Y5VF)l`h?C#Xi zEcr^9%fEhbE+7v-9)`OK(uS(K?->EFTce34FX~jkM}%m#tPKOvf6+x9zVLU!+xlvQ zx2lOHk%pi%kH`rj+m<&dgD9CyEEs*7s>JYT#IZ8u|LtTvT{r^+11Y z1J=1nx>L0McWb^cHDp$1J%;JkB?m%EAEok^>EG1@!w0H|kmlgjW9*z-u@!bJ_N}9x zw7+iSF_Drcfb;Bl;b&)3F@|{6#<^a4MAgQ5CL}vZ6aruq}FLc!H7{UYS>tV=2H3#B9trMwwv`t17fxA;3M zd}>|ud*NYrS8@r!_Kx4wmv_Y!8yMM_Dl&}h!sWKltMJDZ7!rOTq;!Vt3XP3EsK5jK z=%sw$Q?f}-ko`N54UsOjyP_SeIo6gI)h+#Af9$pXG<8;FP_!dQKc$n3t=3aHz7i_- z^RYH!|0^|5Q%P-n5^ItNh4ItE_-W1f;{#3iq;Cjcg65o7)07?%?$6(n$mD3^)o8k6 zex>FA_2Ib}qxr)HrsTQNjuPFK-JUv)vKK{OiN2T@u*0QA>5XC`8 zA4VO+MB{!K8of7YUsqZvEnP%|P;60Zl$G9Qp32W?M?c+qdTVU!;=*Y6C;Arx+yB#z z8&$t(cTRMFPGLvn1kuk={z$9fQ-ThS3WJD?cim&cRC%ST8%6Bie2dn{(p6zRoSUQB z=;cRE5n&~kofAZxMFS6@WLbz&d-bl<}v|AIqU3lL%$Z3OoFFo@8< z#LBRPJ`sB(bRm*8F`-!6=31h!(Jdykq)&W}I_~P3SYT;Yews+-dSsmNx{US4pPQ)2 zPiZFT6wo^Y3LoKWJc_G}QiEqLYpO21h{&dWb&-|cYDEvFBk#4>vd1&%%qVUecTr?i zANt1XvEmbQh&UEEEzG$nypIR&g3WIA5oi>I{jfPa*|RibhJ6TIqIumn9GV>)XDw6_v8I zKQA$2_u2LPWx>~q&($_?eU}uv zK-$K=xvTnx`$z97^M$KckdYWsIpO@~Hvdm09Sj+fl}D7ZcU=3R(lQxf1eH6M_7n8fuL4y>Q!{8f zgUl-zO*Os@e)>s1mc~zK$eD}Lj+Oaw>XLdVlI3kkTc>)#+DuB65pd>jF#SA1kNTzmhZ6t>5}5{xCElV1jTz4E#*{)oxbSAyE?GLFT#_9FOIIT0r z=~z_#EbQm^Tzga<*B;%|Aol39wYJK#M-%>I?a}C`gs#Oo#O6&BL3gcAj0|KnMwDd6 zkb8%B_~bzy2#qxWy}Z^d2w>HH{q=vD*O&2H050@5pT{kDmvP;&iy@EVx1jJ>n$)0cA*rLhNl>8m;RTned{ZV5&jE8RqV8P%J9kH>pJf6-?<^* zm)>l5>B0Y18{^v`sXoTI2*XxN8bb^Fp@I3^t*RlA_PpFLV$AnZ#J%(7(Tm6+Z~Z2o z|FZyg8d-LbN*9BZIB2(AD|#fH%tFf!HR=QH@PA99PAmqfU*90B01+aHLqT?D1*vc9 z4g|i)PhQ``Mpd+NB_t+z7%d=|d<2G@78_4>ak=vSHww(*=7a0SQ%$QR*I+`dg`-zq zvOH{opCvdjSW}Ex)A=p#?~=^#=(|J~q>RN7>y?hYj9*E}@k#k(`6q&|`h&o!RHz73 zO$#NeXRY_S_>ow@go@*fy49a9m4JC8@-foQgD$MNUl#n?8VFEi6$vKzD{lM zW9w*=_=nULiSX#xHIe(9C5nT!PB%13)I>_l&?hrvR#jKHT5|^SWkkCq7liD?>fs7m zYJC}sUMLPYlrGtL+KY00sb4nlB(By)6Tk`u$GUrORqyS7_cjqb=-%mU1{rZ`jLy(# zl{TJ4$^rf!_4M^Z=L-r5Zps*AZ7zEJu}^gg$pPu0vhFnADz}C(oaKTfl^Q6sA`1ac zRF`?$%6bcQbh0dVRHTE6El8JiDE@~|4FYJ8HXs$Vj>jBZhZIhK;f3K@sXLb|J))|ralCT zy35olw09C~?E;58D=rCppe1E_0RQer@r&))YAKkAt>dE6kchQ;w{~oWdAZVil8CMH zZsV;|Q^f4l=^D#<_U6*k%fwAq)A z)J3NW1-b31m(S9CA+4$5%ql$f+tG%n#?^KDoBxRPQX{89(9V#!elfrrSKk>)5&Rdn z%nJS=D^ETCWp0^diN|L6cNxk77*=yxU&d>7KZmq{ytBkP20!vT5nIW{Mcyj+R!INR z5(&$;N+E5AJ_Q%E&Yz#RnK_LQ>CXin$Mju`1qq!FLCYG#`2__xXmZ#i{fTq_2#+Md z=&aG58knAfVtgu(tiaT{vzD!w8e;I+I|AufV{P}GVa+6nrJ)y3;?XbbiRvpgGyw-Gjj0zRM_mne51ncEG zl^Utz?47Ptu}LJ|TAkdtfWR1<^L#qh{*%$+I;B7>lBt~rNbUQ)tTwT_rQz&U2Sy5< zsTVio>rswPw+Vp_uimH``_v1;A~sMu^#`Lb_opWgv+VhJC}w|zj0JP=6Ku{hwetjw zPpl(jb56U?3r}X*_rxsFt+QF*n^Mw{JUoK1T;`u=Uzpt%B}SEj)}UE1_w0*!{-`QF zNo`DywobWrx|7sqa1$Rs?LCauUqFx|fHh81=L#AtvLLhZ zOifUjF__6Jc@qdS$&`O&E+M3h-&*GRt(o|k2cMC5;w2(cmC-0LcR z1ug3Z0c{Zmwp(4yy-v_Z1^scoh_OwGvD-&`f!{$eJb)v7hOg1Dcd6Y-2{C0P2|~ui zt4G{dTX+?)6LqolfNSP%LtKh{;T3{V zAj4g4R~t#F1lP}{hRG8Vp1TQP2>jQJ!gr+9ZZ(eHLQ1*dy!#4 zS&KbGr&lc~3~T`8bSfm=<}#i-3s_@>IuZ-MKvCKX#m^~k)ooRA3Hoba*&y1A`MrqW zOzscQL&?COb?_&lCrR$81|_n!DY~VXJ^T90z4_Erynqm3zd7dk41wf7mIm#*70}~K zpb@&%^eCp-7j+6zL_9|IFnbt0dK~$TN00wF*Hb~!EmJZA1kgJ?A@ye^B=mvK7c(Ak z;~Z)48rrksn)z0Pf-7kf6nuK3X22;nJ3LH2^T7A}xt??5muYteWu<#DqCZqGnBr&Q z;;jxjkrmSL0BP7J^&j2!p&B#;1KQpq5UG8H)wo%$_L!R$>UC~#2a}gEdpfEl{EKKQ zAx5C=$U*#|{p)277y>{Eaj93T=SLGO151$N#tWf<)<#z(|)XShnHrstqAdQw(!-L%>Bu7pI}MUo7%rVMZjODW#{O$N33vvi^RsH z;DZ#DOwuzv!hM0#Mlk)g)Fp&egB5KPk=n&*!Y8AD1~b^Ou3{&0u_HCWjd$6vU}jRbO{MCkfoCVj zt1r~Q2hre_@xf)m_^`p2|FODtp_~-UKS-28@7p(pG)EbTA=d=zJYxo3)I!UjpMmLzw!odV8|h(kIeVU};_{ z@r;(dQ>A$sArD!|3#MO)u#bXF+S~}uu<(IW@i&iUrbG6v9mz?WyP80Q*59l=%YGud zt=MkAnySwppZ|%EMm?3y37AH>J+6X-tlV1hEBaZ^RYg|SM*sI)0nHly zGMT`&{`Gk$vx4&3;!F6u&mYsY5Q_v_@ydq^oatgmD-#r&=TV%6JqYQzdie-(9;O@&bcJH6_F;4 z$ivMcUD&-Anyb!qso0JL6|3wO?1jnk!522~jIbEmo$62YJe1R|^OV9vCN$lBPWrS+ z{^WS*9I`_?=GI&GHf!`I!GC=0Z)nidzcou6)4dZqV~#95t(-G7ke)P53a7V4UQZR( z_@78e)2A)2kEVyruTPyCh%V0aMXn4ulZKJJ5*RnB_|!Jmgi_0@`Hn<+xeP#7BGk-~3<5JNf^t zdzJg=_@7O$p8Ror1j+XnR+k_!k|ts@pS|S`@+1m<;djmEBq{d35sI$u{x_4Qp1Lq= zeS=kvrNheEww?dwVHM#Iq*79*Px8gW4@>@G)xyGg|4EZqI(Y|SPEtKz%&IT&_4+U4 z)ct#Kuj~nIrqinoX8#-d!%bu0s>uRH^036yB+SjZ#> z5U3ne6i%_w<&}rx6C(Tg^`tap`Geb_An6CuB>fc9j~74XiQi&NL&#y( zy&&XFL}5?j*F;7|=k`#`{wiahSd>}lIm#b|97h?d@vk426Q6S+dPG)e56cSe;TXL~ zXoGgr9nue?Bl7q5TGA5S{rSufB9r~sU(#OawTyN!a_fURqhv-#w}(c5C>rjPiOdL= zMribYJ;lzT_Pm_q;2V3Tow;?cklcyz`BwBU&^}65D^Y8Ua5pnu}4+75eBEu#fQ;qXw^M=bKgLg~~1?)^U( z39Sjjo1dfjNo3a%(Ma+9;pYQ!Rf4o9U3)>jb5CKg>cHIZ$-2WSgbD2fso}(@L)gkM ztE=PHmj_2DC@|;!U^Gz>jK0Gv)e*G`I2d!}H1(U)a(vA@!+#3J$3I0Zi=6snZT~c2ytT{thO%+$16DcANBDIhp`S@7^+InZIshDu7f;3UkDsB+3b0hpG$Wc(Z{NX)G!UVxy)vQ~c*KbIw&xY$1b(-3 za{TVGY@SPmaxj?Mt(;xf=p9N;5Z!-yD2MouSmJwCCr|2gzgbjoe-jg>0Fo#%2swHq zOp~xv-}&_LQwG1)v>+y5)T?kLG|8TxG@FkkRpu9r1RG7H+z+{Bg7Rg42PEpYNTaEX z1C=A$zL{>%;^z*Y)yL=Mgg-{k$ohJq@&hcb2UW2P@D1j!D^ z#={G)Ge@{j)RGXLnvO8;ny1n9JO(!b;8JfTV;i1+#}b4*hY%ZVvX0*HN{uBibr(k`2G59Hj|Z3?Hp@F_3Fc3ecyt%|3+A+o zU@f?!@`jRhm`s`WK>DS~8gi=q%@vqySz{41I6l1c93i<*!Z1LXPWmZR9}f?O+T1~- zc(7;n=4$vSG7y3rY2YJtXuX`Y;=@j~MsK5#D<57ZX$bkS2l>#Wp06?VR-*nmT;#)$ zj#8mF)3)t5o&G{B7V|7*&+nzW59XYp`AV1O4TPuFxZaIt<#eQmR^E`44*#oVM4=TY zbHs|r4W2<)ydFH)A0N;DADpOrTy7>at|u}+cp&qwm=z~3a}y7;{rGKeZ~~DF$oK#G zeE6FmWI99R{!2QTb8e{WzogxHXM`@$PaqZPGBmo|8+Gn^DYW`KYPg`w#YENRbI%G? z&PYd2mqfgL{G;@>vQ5zfkT7>~<; zdd=F^JN1Y+5u_6@2bOqgE$iw~QMW%Th7*DvI%qpv=>jD&o(L7h9OW&A-=6POpN63Cd zL>Id;+maG$GL-Dnb9$3iwaI_4NI(tb@Y6Mre-A$x%y}VHrRFY>-pc^CDl}8cpd^(E z2{>9**XS4Z1pRCN+T=sha^LYN8PBuX%JZ@DdOZH-3&DRzRSLjK0oYZQTGonf1;2M{ z`+YJjB3iz#E$GY#hDoTz%h93M=yt*xiH)>IbNlPw zo>oLUS-Z@CwmrM#-A;fH9cT3EQS$AuE8qT}ZPmRy&XDA3>P1d>hpyF`LX!1vUi1v) zOufAbO00vV>a)zcMUbL4>o8dT&A%3?qMJVpjsD0=Yyu(RZtU~O^KAMI_@B6YSbm-V ziP~X#{0$Aut!vp9XxrP5AKUAe4!gLvWmsWw;~ROw=o{sAEt_~H<+j)7Y^z&3n75(A zoZ!ape!*yWb)e-?pe@;-*IVmzHr6f8tEg?ME$nAS-?_YIY4xQwEq52@TG5T153niM zs@f5W*2ixdmMi(&`677l3Pz9Q0MD?}`S~^FJ*oV_(r{@`P0QbF+V=GmmzrhJA%K6y z(&~bmmg+*zbfT#@%WGN=P$ExCSUG>cV(GAgmg@kD#%Sk>@u`z|^C|`X4F3gWVa?Jp zKdWg87xp7DFn7EN`8=dV@Pc~5u`8a$o9uP1`}m(;d|E5J8^nmhgA!px{D|xk*(vJ3 z*VZ&K{0k$sDhyv2tm>NESP!cYfhNvk3XH!O((>tQ zA614PPEqTJYI^88L+D{}sn&EU%OrUcVGlZ?Qv9gb<_wapFQk6L-mi&hvh0_{92Q^x zL$$k7%w95I>m~hFl0vbF$`Q($aChJF;t#nyzlp5^3}P6#h?9z|lT5 zVL&28PgV~O5&R5aH$w1pib2m9ay5F{f zPO$3v47H?BH`Fo}^vz|&z-hm+a_lgV* zV`hOL_4p;?zs%5xA%L5#pstIEY}*jfymML zkimM$9pMqjhHQrHI}LQ$ev@!&q?Xh-v_+QLcpW|%hdceOl&ng~hU)yM-1~fGj|CCl z2AsqM(GHMD{tDeJq9{8tHG4d)uemWMu|0HNWt!a@Vq@fApViZpOiyRhlecxoBLWJ4 zkpj4?visnidizo_U+&W=#nz8oInYj+I7k;6YLMjBg@{1i$H7z0Xuc!n0PpACEaaUB zYYacip5c|u|53u?F&Q(ZPf$M^s3-ps8e{TPBQtz}jSeIA@_`W%TIA_CKxT2D8;{;I zF}LUu?Ba>(C-owde*zXm2LTFe05=;g&i}Ip5Pa{jY6XH^&JOBq_YN9 zJ<6sR-WyimbL{zSkRs0cky>Y5eSDTShi{~1yqVKBnDwu*XZ=bq)V&3^uw8ya|3PQs zl+alcd<;1kZrq=qFigzho5>R&Re+#;qYx+MbsjrGGQBQfcH>CXC5_e^1}l~kC8@K` z0L|Z}gL4CwgZoGJ5Z%`2;p`8PO(Kwup!JZwKch5y`BQVx;wczzpM)=`#q9QUV7Gd| z91AlX`!j>7t2G+>r91I1c|L{ikd*WBxfT|xhb{&Q&N!`Y)>PzYrJrQz)5K$zyt|GS z2v=E=p!P{7$7;2EOP1M6)&ZfX^$2>O^3mKZ|31vlSQF2=%r=*sxR9o`jEj(JA|?;0 zK~m!^%q+M1#&UEiS-|IS;AjJ}0rx$malE|HTSi{8ML^0jCIojqWD_tmXL$)cmp#A$ zTji6xbg{a-Q=5g}i6PU4(~0h~tT|Nd_P z!&~}nAvY5VyU4WKk5-en(JG_z^&;k=J3yZ9@4Z#Mx81$Ba&QdoBU59Yy|*2`w{5+* z>w0fjySIs$+zAdPMWR)HJT+aK!^Wuvkv*|BJn9#@1&2{at*)*%`4f*&M})%exSTA} zF9Q7?P!IFNvSY;*WTzht=B&{OiMPrl_0d2>e8Nmc9A|ng?tR2IS)KeXFZ$q zK-_cvZ1-0``ITdS*$*tEp=j$flq01i5tEzus2XkE;ysd^91@rr&VFvy>vLqSK2}6U z;E_S_=BN5Hyx>8yo2u*dnrSf$a{ky~8GIrpuW8k%it-szv{g?|jWxU|;f1?vSbb}rUbrTu`yF-0K}m9Goy}|9Q?*Oy(l<(1P5M#1 zg^NB@XHHXVA@{zpobe<8sESt^UKZ_{?$r)@b$e917Sg=aS|r7v{{qyT(5Q3=FTJWy zIOfEg&pU3{Ey~=+kZ(o-GH}k8LUr?;z*vFnUlF+Gc#n)&=$Ct}%HE^zw&w|sQ=2aTy&B-1b z-k5-$?2)axoEsvK91GK8jgF4miS!9nIwdnc$k!d=8=O=?4M7NPm2=s^=>fj=VmYX} z7igF@M&OTp^&hM{QCf;wPSY~VKnxp%-7J6ILA_aBU1ln2uymzqQYqRht+4F>9qEu` z*37R4`NbJ7@{51TNyy?Xf5lm|j46%o>6a>@+bNWqwWRR|UyVOD1}K-t+G5FI)MF82SAPm$do^QN<#tA*9A%8SqOPAXzL3^W*!Jur?I;P&R|TXIN#e8lys(dN;rJk4lNiuCf=zLq-Cd&~}S z{}ZnnAruaC9CjeOXW%N4KOY5p+WX?;{sh>s1i*)KSA#DgsR zr{DTq(te6kBF^7B=#lmh;ZuSa@!=QAZo!#jI5q#(^d6TkW;xdwg%BazwHM!d_!3RM z9>-7H)_u71q!w+-%?0~1oaC>>R5Dnb<;>IisyjSXtF3T>Xq@iI*N)r4VOUW*_;-`o z$oj46=F8Ge?-6qqTa#rx(RiA`gpmUOy`fqT{Lsodlzziiz*^(ygOCjK9uza%6wmiqFs9L7w_ED_KuCnVg()4d*L0 z^y+VxwV@s@HH!SPCVqI4g2WGWq~JRTafb&nWdbg*&7M4@y|knfCD^l^uqXFV%e^tN z)zoilKTI3gzyF^0=Sa38K|xA#k;XR2KQG;0aEM}|Na~6k1NDRst z6IH9V5ptg#zl>9u{57Ct$FoHA(ZbbEHQO=4ybJ6(F0e5@pw9>Pq@w|)iFBt2T_xgA zpp#q-5}wm41OZ&pbay4Em-t2Vy#pDl)I|1J49WZ?`B}i{s5>D@|9v+AH)j$I6hmPK z%1I=NnJU@9;%}ZHhD<{HM}X=}p3Lv3sly4Xls1l1d~DHULaQR~p81#ezMA)}M;pZU z~+4X>0-Jbs%j8Dr|%oAiEOb>ee|-dcO>`PWXr!G55U@)<3? z5-N`UQ_r%d_F89+4)-`~bbImq3;M|#Mogrz;F*iySwysV8#gaWc>H09;DX&Zc6;(l zR4-c-z^_y#tC1kt5>rf(t)!xc+)gAp6V5lwd7zEaGdD6iXkRmU zJbz-29%PXjWU)6g!U^839XlxaB^Kd5Ar{el+sR88FI~O2-MzQUy(LQN-bGv20g5kt zPDLBZjb#X2WW{pbixWg@#ijXnt(tsh8{x`L1irC&mrHM!96_e{U~MJc7peA?DVyU> zz*gi8`(f)qfgYFH(eZA(*^(wlW%5RM$AY9+hST$7ru9wgPr6-yi|pv072Aou1H7~R zwOzH&e@WcXzjlp86os>A5t0`U6&(22?i5x_*V=oS(&}$X^n?vR3(jJ;Xo+5jywjqm zTy`{E_@UYG^Q^pa)|lZhm!a1Zu3N8bFE}?~KbxsNb}O}|>IWZ4)pyk7)8vddmAZ}} zfbS8?bRL6?lY1+!ax1QLE1sxJ2y9t}9(uyG{u5oO8|(24J)3L7WsC^Ad<_nj-SOEq z?sS{|1~qI{YGj0&Pd$m1OqHWqZkGLk&?K~*!Er*32ge!YC)BRD2&WnMfTL~Vt%44< zm4~pAP^|jH#vCHQ%aB7on~TDy2I3R*Flgo%sh{rCNA8(-sR3}FKPHDD^dxfpF;M{+ zLn4fEu|*AtqH;a{HrmD2Uu`Zc&1IRnG?~k6E}rOdYAnP-hdd!xBA27s^TIF5fLf(B zrc)%83ij7QQLU&z;SLTBby@rDOrspk$(FPG2r&Egq(lnZV=DkRN1vqcZ@ERgqMxsa zh(&7q5(m~gS|y=7({A|8#N3>CIZ%1t`F)>YefOFU(Z&*#%0cL~sa5*-g@=K9k+ACK zyG%g-HD0nODZZwQ_gG=GnbhQOcxe1{PoF%L$Cqk&>Y4)~r?kse5u9Mo^IHGfKM4DH z%}3u5@A2+Zu*+$Td-VsW)UF|huUH1><#oLD771dvX?d7Xll779{uYT7xSH1=`-e=p zs+U75>Db6I9CP39t~lLPcLMR5<0Nq(d%H#DT5ysrl2 zW#~r?hF@@&C{g~Yj8Ck${_EnK*))XkKR?crPHTn zUFF{U|5x4}Z+}81$t2~7oDEF3UjGinZY=XRuNES(UkciewaH9Z=}!0XwxjoaoBbF%_kwSR z++cqced|cieft?)lfQNsVOE`PbGm=+6*stN{B#op?jL>YP;_&i-iJr1Rj(}hYxl!k zC#Ywjk67C}iT3(y`HGU8TF|iB-k0osI-n`#!)M}AeT{>G#BIF1&iS2y9@zM9zkt~oJXJk| ztkN|xO?_@boNWmT%>`YP3e(FJb*R2kxcLk7MR>Ulg$L7A|G;`-{nSA2^8%o{Ic+D*|*02sJSd$yqB8LmkO--+zb`$J_4i^WXWP3NeD+#0fzuf^ikSozUrN; zD=YYt-GPd&=}x*D6nI8Z%GT@D6@1_`hm*m=mr7HJWGlL_No{F>ud!_?DBhJ6JXPK; zNvr~TG0Y!s&Gq$u&Mlh`vi(gj|EbKmqHMgx2uXH`%;NxjS^;+YyoQt-winM0iMm}d zP;V7XuGDYYp&VcIikg12Ug!O1Pu<@tBfBjQs#5>@1|o=Y}iiC@l@mEnB0Z$*Bh&kLM0-M^O4($saUGk+p8*Z3F> z4zGM!>I^5JWa)MJ-IXs#-gh%f-Yb_)Q*4LiFKI4i`kSMfczuQ*^?3(1&cvH!Ib!~) zy<|z+w-`5>a8X_NGO`^GzbH}?l!SFb+#LZ)<1^J zkBaU3egMfu)3sFKn@mDnZVAtA@`30!LsLN~Y&q^^_?^Ef1Wxo5$6v?@gUVo+1!32g8&q}e)I zQ|$n+@(}kXy6Ba>$T+wARM36ecWfy_{9*ygwEq?Brxy)=it6RSws>t*ZmLkX6wj-X zL9iGa$&Gdoz}dS6X9o5?(z8(l^xc7;Ek?qQ4EWbh%oee%v%P&N5Zz*gEakGKY=mP& z40ki_a@>!FXmDjNU+Ucgk=JChrnDqZy}N7**uNA?l}JY;|K%e#+5i8{vuyn*I-%H0 zbTTLDhW1qfBY^TQ9bo7s2!_3%{O8)`+?UDyeekFRyA|6(%;g;UrV&GOv|w+>YkFk@R3Fc> zO$~G{+c)Lr|K75Fglcr7RM(%y2m~+YfFTbn$$1(pk1o(y$rZ3QR$lF^PfWI}!4F4E zM3i9r+E+A5lzOfG(zNz-)7qLh+}4tRlv#4>lqk1i7k}!Bw>3^%e&oI+LF*_){p_v` z1$7GrUDEaM5VdK5i>N2%=Kmg1-=~^J6#H4S5hZ!98U5mZFH$lcTtcy1J7Gc$@D=bL z1MwXGDa^gQw$G*9{3M#nnMuQqd8Z7wUhkoRuI*XTQc-3JMM zG#sLtJf>B=HFuA?cUHW$3#guIc34PN#W)w@1ri*iD%2KWfCHGvBdXHbL$qC0^Ziu$deywL?9TsaH)s z76<7N$OKU`o#%aOSPIU9r9Qy@(r-+H1AsFd%LPWN+ynXkZ*(;`o%^gbbj_-6fUO^Z}P7fakh8rR>)kl30m#L(nT?)xI|{rURf zn8rJKcU#|g?{g-<>nl(1`)<=({jSPu=g(X8@6kj>&7kCj)EE9Fr#;EtPd3ZzuxKcC z9Vr zRDAe@5uwy}^&gylEVFZw!0LX&F&=4AAcW`MDR7rI@r8lN+1|-TKNlvA*VFs~^<1+w z(D-*L5q_D&s#ft-QX~}e3H6aCUE0+0f193nDNcbR|% zb5-?=tc>;OBX5K~>JLlsWQW0G};#NgB49b&93D0rF)Nv9_9 zejV?}WZqw(-#2z!XdX=l@!>1x5_cS>Ge#Oa5D)IFb;@s^Jx+X(ZdA>Sj90!}cqup8 z$If96@$G6I|MTRrYv25pluSAA$Qurt);+1UN8R}+t)FFE#8^vCg2$ZE*;v~CoB5b) zl%R*#KEgNS_`(aGPPjmgmc>qJ;2`^Upq!Is-k0+Xx-466YkaNui?B-%hX>Q z%I~ZUY}?dLV{yW1z! zrLrYq4sv1>JBx&pR5vm z!0#GP7@G6BABboD>0lx9*_mgIG<}+uNWX^}4t&fX#;~9)KbBu{@ zKR#(nc749xQ#GkZ&e6ZRQocFXcfS$mUt(&1$hO5PI;@P`YDj+c#~fL|miFxJR@GN) z<_)2o)W->hPc4Q?iNuKCx zZaewU`Vk|8@x@at&;aQFd53_$Lmhly3xaQKAiIGfja|)iP<{d< zS|?I0S^-Ug8b==d zS%jC{_b9jTyLI2;bsI{go!d=2v=TW*oj`}6g~80f&A{<2D#?4|w)58aSdLvMfYYZ8 zW)KGei$c5tz)hp4WHXsuKpOMqmU>9C?_cby|cS0oRR-ZEPc6caCnPmw%d9#LE6WVLf z@y2sUqtF3LW~HcgHtJr?j()daZ~i3LfkNyRnx|n5zYnDarAM@uq}3+My+K()C9y<^pl)Z z+m0KkJ&J#|yl}o+qUFROSnA)Q(17oR>AEn(di$&p>=v2%FpO+ z@5EeZQL%db*RVYYYBG~QzFpX0lM19*+pH@gj8TOPUxs;!eb&bJq32T|gD<{?)<|7V z+3X$Mqy|!r(=`e?7%1`vh+c+}k!FL`50(l-EdxiN)ffee&={&;IAMQf%4c-~Y zU`U$~SOXj7BW>$ls#a>Vm|mh>)gQQpldjdAogqffg7AxX#_Ip}_?MZtmRuRHmK+hEn*50-J%96G_yq^Z+BJ-> zO}BVm8P^U%$Gs=GlvC`U%ZMj&JdUO!K~eOuKEDOl$ayuosgRQ)<@^>-D~!vTT^va3 zoNU=Au+zTKN_Rv!VW+M*%RJ-(X!1q;LS%TEhqoY=U@v5im&VJnOIyHJ{=>+8S=b-st<7YHy;pr zUwa5t6E1RQ7eX3M;zojL^~=XJMLiEznxc(mqzikRddRmmz3gCw+W1ZKohEv+(Ea9P zqR#XZ4iX{s9McY7{LU{TV*=0I$Vlq!&r&BDecN8nx=%Sd_=SAe1f{u1G${=9!EJmQ ztAMiV8X!a2yb_3h)^9#mgBf6aVwoJ2>N-e^nTsQ8*A?RPx(Jw9B8J641KYo})Hh$m zj8Fe!C_bC-t)x@eSn;|RvwvHC<4rwMNpzQyhn!g@ndYTXySgYZ*EiYD`_${gnOJgV zwECbg{7bgiGYp23PSjQHyZiTUiCMMw_gK_jF5~A+EzRL#gxqz|NK{TXYxo@x+~Vqw z-8sJYx|e)5geenU7jmA0+reSoff`|24?hgdsS`2^ zpb1?1^bv2n=3U@_qQCnAwD;r#Xli_nm*F>#`F@pK{(4=$GkR#?ocF3P;46S%h*+Ax z{+I0yqP=KaXY?TLSyj8(^hOFHdF>V3pA;#mhCd*RcELq`@biP+N8{(RZ)*H}n@e&h zOzJeObWv&FIIQWa;zG%^;KQls5}Je+{@!6&K|W^?6GfwalE!SF6n+w41Vf&q57`WC zImLRTmCa#13H8k$VUjLaG-iFLDVtvGk$`XZ#~iKDcA* zPZPkzH$LqiVL)VRyCe_@r+h40&2;t($$y#77U<5{635Q}Tj_yngGWUZSP!q@_749P7y8NBGV~Sq2><(ItN5|O#|IeH7z1Bq zu=>X~Pg^zW@2{+pc!{mQb}acq{5YEaIghp_QMXK5f$y}vtP1bQW1H-e@C3d~{FHt( znva5`g7>KLNDuVs=;)$lzA((DrHz_DJx>e*^|g=l%=Y@(LP9#kE|0I^vC*J!XX2#> z|4@T$t@;lJ;$NF9Uq{X5>!|)8F64ne95fQfVdRXww(u0(Oy(!cztmeo#K9~H;b5}D zBA-_cnD48eOpuE2t8#kq;-d7lDdN{Y^AU4MW8#G3fIfkwC{hpn7nTU}CPOL7k3vO|6}jcV!{ID=A&Kn?YvzSWO^3!*4>bS!299L%104 z+3;do)W&b>9WSSnWX3CdU^BhH$(zi$w`S-=#!CtYJ6L6a9QQJb>OKLU+e%LO&X8+w zeB^V>mmR-6E^s`5k`7!CZ@w7`DW}$dUZ19ojC?v~J}Nk_#hn2{mYu2dGXQG*vA!?k z?=t8I0ecB~vRONF0-x#H85}pGY|cNlAD=2?5@fj?3g&1yCs+ty4b!3g{FhiHVS6cu zUgVYP5X{ks3F(g9ZZq&PU*;U=EC5qyEIS4s`3R7}BO>HwrS*0$muZolz%IB-jC7i*#-(Z66FxoihaKJjEz$GX%zO(unpIS_F zM49+lku6@dDT^jeeCPA#s{Hu#jk0m36mO6eE^LNh+@#I22?+!vYq|tbvgx<)_$&-y zoTA9%XGQ@xMdaqa;G}Uc!B%CBy>{4g^SnROItC%0jh-+X^yhc^q4 z-l(Z{`4&%&pJi>lwR@oXLnqe8w>T2Ap}VP()6-uM+9Ng7n1$PH{iN5ckA=VCM;iXG zWWhfK_yZFEPTmJVpEHDO`wXGJ&k!m-_}^{trf&OYtP__9k7S-c!&74mjLsey(f5sS zFtBpBO&C-hJZcvr~&rsCr>|SiM#)Q^7#DY$m5f>JRW;_Sj%Hh8-GXrQhZ-+ zA7sSTzmq4$N5j|lKh_t+`pDo~rjov+wI3k{7jk zNPfjoT}J+9^fRPjKgV`PAq#>zBEq8WMZrV@-Ny-=AE#ynoH_#X{gZc7q&|LYF~9dm z59Wq1k(AUD+0Rf73B4kKzi^)b9=Xt|dnHg+x1Y}+;|b_U+)qByV>mHY6?EjgFuT>( zqz+5`s^0!58a*^_QOBHLc_Wyb8Nt(dEJgtI`#gQ09p8t4Ff%%k444?%c9(m~)G_wW z=h|Br>-pI(^D~wCxklz^B+D7-?-{a&;jh~!)5DidDA1vPZTLK!N_`b-?5*dVZo8MLbRoBp(zyI$y#@Hsj28at#naMENxm< z4QfsalhUQe@rIq6@v&!9ja7>8toQKwGBbl+(#5>VLf_fH(os`2P%5;g{?bb?R4&r+ z&tOsMe*pg~iH&{U_wm@$KOOjo(Nq@v%U6FM{0n)b;lG(`!2d|==fHpSN(29uQlT&W zGpXE=e25jA{{j4J+rNeX6oLObn#zLzZ>;_vAOBDDM#KN`G!1`>wFpDceenPALk9k( zQsF504Skf$QPo<^5s9f^3y3->sYH6OFA?sI55Ld!(XfZ(J>~1#=2-6nj)*Ja+o;%1 zMVKZq$1bcMf|v!m6$xT0GM0%VYT{9My`2Y|`qC%;Yx}^-?|h=S^O@VS`!6v4zy8nv zS^xLxhK}j~@LPTQ?>!&!qu5piRJf6ti}v#Gz(6h05swP9>Ot7S$vYINno{hqJ-`9c zth!gV%}GX&q&cN|W)Fvd&ew4OvJR_Row=t-ofg;n?wtS6fWRYwRZk7@+|HMVi4lmz zTlf=QeYk`Sc4I9OGQf|XT{tV9tL2p!QF7@nBY&^ER($g#qz-X{Yxv?ir=Sjj(?1}G zNMy37E?J=cg*8)!bZS{V`2+D4Lp^r~OlxY*v6s?H3=->bIb?Sy>I0CQV_tGW(Cq18LVL3wbq>m&0OC6 zi}zD$e8vUsTHG9yH)8;{X;1)e_mbt5=@T`w;^hn2L1r zQhX5^08=8_IOkl8#JhRBOpB!Rrc({#T6#$`Lix9zVm4;HsnN2iTjudsd3qiPxoy5B zuSiYRUzpXO{Z{+5U9;d1ZuT!zDY?J5xxL=cHxt#nq<%xq*SQ^LDC%R5H6m{?;t|al z)0y`n!3FeWa*cJ|fo&7&`=+y#OlLwjbmoseXdsqhe)JVO9HfWokKN02x6@8;af#Dv zvFkT;=^Df(fUhmx^ZB$>VB-5gMFvWtl@B6&qn8^XI1`U=d*S^#SjuswPs zJ{LXAQt8Ap$x1$gW4o0j44F?t;9o6yQf6Hws87q!!-1;l$j_IusC7ROm9pSWA-PLvpAn5^{Z`9;<4Wp@hCvHF9u(R92Im=(KARD;Kh`rN zIUe)D$J1KKUJ5aFi`tSMR3c<`pd?kI850&_zq<7LRfC&iEn>T&L3wzm5)>uxf>c<- z;Otsi9q{POi_eEEg7YQUXno%FiF*2V;PR zgdhh9heP($Ej;7fNQ>lxR^?XC5#hF&TT-axwuIYfSo7tU5b1c%1(w@#Zuz{F+>(bk zJ_Y%6Tf^-XmiD-{xE(%7-%im19ev8GIuQunj+56g)?WKPGd^v=1?&e`0+ku1(5d?4 z4n0ahj})orR^#N^_e?id#`okFqvs|FfTZG~KamZUm-Qcgjxtt#OQSeg@t)!J{6#0TYb z#G6yYTA{JmdhH0kKI751=l@rlkFVn?uOfF0KssGOMrlC&EiCrQ21B5@72&@}ovxvH zR;1InH58M8qAdH1!K}0hAhIY$w#h1AcqaU^+N1zW%E}C;2Yk*TyJoe-=W$497glW7 zsi*It*e2`uk)ia;D0bd;H7+p6IXC0aBBFHSJ5a3 zcrob3tmPiG26XwGE2SfX*2R)(brKDU*!u=UV!^Qabn`Mo0wF5t|Iqd}@KF_41NSaT zAYkA|1c?d~B`PRrRIJ1V&5~W%m5tyB7F)1blw#EuWfwvb*|=HF<$4ucX>A{AX{#-5 zwWX~es3m3rNkGK_eqi-cKnr(WMW8l(XxaCFX6_~%KH8^!-#5Qs_RgIXf0nOvQfQS2IL@!M<-q<$Q>$P@Kg zoS4u{xsLVxAi+b$KF=f_>~rd;l&MdOe@l!k!w+iqjyhz1NIyL|g}T?1DMjA?#cHYUwvSRL)GgJja6qD@+LvQj8g%)<`I>-NdEmi(>1*6ktTk^h zqX!&n$Lk8Y>MVwBB;h8Ak^;cRDq@Z9A%iEKe1mDuWRrC9xAM`~{Ak`t4T&q9yNJ-? zg@w*7yeJ|56avD>T*p)QN63l-8qZ^hmUow5H+E)|n>qaKlbN=;i`c!kZPV|k* zs4Ame@O9?!z%603>Mb4rRpPHHHJiic$ko_}YHVP>3nE~=n0sQ@C}+o;z+8pv3Y|CA z3r4?Rl>p6O%kwBn(^33D2R+b7tXhSx1LaRXO;Fxw+$p$&URhXr#6cEPk>v^#*ExA7 z3c~k@qJo1n?g>vnQg_ZX}X|n8KPl zdnjEBdta(-8RudyIFiNO*L4EH+&)f(Qe<|d(2i4q<0CDOmo)k@RI7kX2XdCHGKQC_ z1WFXzAX+!l+$Fi`3ROCV#1KnC;>a`zN}&}hHiLK}xg4q23Oy_f7!Gtn<6S6m6-A)FYL*k?dG>GAsX6@=0~x#rmbsSVZdffg{GF zq3knrSFJQA;oMd0GOARVU%~AB z5;fHW%%5cp=wvRxv;-cb*PfIxvTE5BFNZ2BJ%}l@vUB|$3>anFd_r<;0AJY5IjI?V zTI6e1GhxK zKSno@3`jzQa+mKaY{zU!|EAWuKrPa&ge#SX+)kkNGy2Y~GIQ5znqV}D5!Liy)@QMW z{9U!eaMszmpx2taA|E<8{+e5Qfydy^MKKjtp{I1!nLw#l;4vVYd*%wJQn4)Pzb2bN z{v6UN97w-$}d(Vkwr~+4;Jl zCgsC#NWD5m>UE-z$?vg5YMmqL9rMa)SV(|sXzMF&cpfqW!T?3|5BuB)01Tso^8J~{P~0uSL12;?_+ zzaV^$^OQ7@g#?E&u*sRGDH2)sLzt{#|EMvVB4+`MOd7wz2s?K>C-6Zki#|g$uaIU| z1aNXC4RR(tszm29DVm*bywLBi2Qr=VknDM0bpr+^zJc=F;b`~tX^Ux}(Uj+^cJ33^ z&QC|nA`{u!p?o?(z|17>g(m~RQOGMxpjcNK_MX0u@aAhOh0!3}Kh>+xU_Rx_!E1c! z0uNmJ=_?3=A*a$^|5+Kg_K&3Y4|MHYeX%QgMRA4MLcoJnkCyvHJ|SzmFLPgv2OG7z zu(}Du4yuDycfS0E?2gk;?)=C-FB|1v09b+IJ7E7`&DsgObVt)vVx)&>>jC1_pO+_I zrEk^(*3XB8KKQNsV?45)`5jk?z`Fl{>H_A-dU*6Nf02!i)y?~F`v?u_Wea#mTkWvkIxS5j~^&7?(M@Dl$uMmK^R~CKV_t% zGgD$L-H#Ues#m0~wJXOo`YR3xR}!lrhJVp9i}EXdTqVi0R85WkE;M~@tSWD+(ZJo# zV{|TH9?bU7zFhS$N;lJY1{yxCJ1I2%WlmC_St_E5`l|M|1!;q-n>+DWSU?szFy6PIVzdr#DyuSgB zQ1WmojOI$^VU4LcXhnBs4@Z4^D~x-YteWN|NZuh>rZ| z_@KC_N`az?W~WD>exI6s%+bt3Zh}s}l1F)S0OQ&3FJm-?SS>-Y;)3vMDT3x!(aJ8v z>GnqLO^)7<=bm@Sc}$kR$@)cUu?=+IuJbw-0tKk;3`QM6(w{1YR-g3*k6QB|SO$lJ zGboBM_j8k89UgXo2~+B83}EZ^Ws)dre`?i~NcXBUqfYu$qiMF6Tga<@>jIuBB#|e0 zw-g!UtNcjTvs^ikqN=>tdVgHOC z84ZX{nHy`M9HL@=!8%GRj~zTS+84iNb9%?>GEuDMd_6TGPHIy)stCoX8ZU0O&a^^{qaKucYPW^$bEtOgF>q!`gU<}*gLpJ22ImYcy+(6$Cy~v z5Ose{uD2yx)R-ZL9I=#2t*Oght#@U5NbQgG#Wr`9`4;K37u%xjaLz|VVMVY-<|OVb9_eAT6fjiEvrsSuR1$qevPF=0^SE-6KWf~y9Z!QVAc|JDroxM zvDpOCAPU1z680?)=5T^MDS&} zJVkIswm)fr7!RIE$;w3Wlz_S0X!so^rT)o}*wb8+^c&Bn@KBl_$#|tNR{aHE`{I`# zbePwP4sTWsiR4!)WO&&d*}TZ-#S9fJ#%59qHna*h_`rtZV`GEB9a(wo zRkp_{MRrOnvK07-Y<#5LLds3|3|Ed0{HVJJ`|d*jtjnFfYZ*dNH6>3WH)lV@ZsVJQ zhL0j8dZ=FJ07@Z=*^QP&FGypCc61$LHm4G>6UDel|8V1OUXJV7O7^kE7v7zuI&3dQTX0cs+S|&ES7VK}HwyQJZj{%Jv zqlp86NZF#RybbFy4{l%IEsH-!)B4+*2YXu=;cjp>6Z$hVnM~!GYphAHp0UMmk9=7w z^@4*bs;n+IBBmCXb@R9vUW}~@hlhbpLbgf&@q}fVqd$!73p?)jw*(#U$ z^L^@mhTo{!!)|3?$T+uUpK(LMFqVRS#$^2r8p8p1psk`N--zE$AARw|#@rq+#t@ygplYgFJ!aqOMXn29o?FcIDnPAoR3zsJs`S9c*2w7_fLCBbNGK-JCMLk2%l=acwJ~Qb9C4J^<-x-_je1(uTc2Qp+ zhhubd%ZD_9U1T6J@PX+0z6+DS_vw;Hdw0LZy=*LDwfuc7xTmnQZNe)D~Btw@o zEo?chyoweh@dI`S4B;G9m*9og~2Ka?@O%^k+W&Jy*pMHZX_ zC!#*ihdE`(dQ-EI^yx^TF1Bj&O_9n5+RU1wqxgg)@5?HkiD;`euBZaZp5g=+wB2>F zb*VKj-`iZVZcb@tqqANg^y4)ku%bmB`$1*ftRAVi!2_|hzo0EGHbaOq15YZVvX->1 zdJysJSKGQMB;!~H6+^xJ8paaN(?z?Z=*yZRQ`g!>rzsm=TXvZ5C<%ZN0=(d0*D=xW z!AK!)SW+TDKuYFI?#}buRchD+7w-4PU-v>q){??+-SXsOhVU!gI8ud768f`94X9hX zKk;$o%=DF5LkJjwodNG*|B&cfU&Z^;R=@dS#ndMwBPl0+jf>eJ_8Binu^PEYdYeO; zTAdph0Vvb6*3>7{Enw4EI ze6hJTu;6iHqZK6DODlxv1-ES5FO?Uck^gXJTz*E*uO_W%>BeAq(thKY>t*9xdM@GWu zG(1Fx_~Bj%LCiy$q-jY3={#QSd-lgO1$Vs?KU^AFSASS>oK5L|B1&k%x=6R6d2O8% zYor-4sZiBzs-DIV4~g6mKU^8PE`IpyM&e=0WSCl=C;q}ZkljsUzQDePygQx8KjREH z@E8c5+QrBoRh$N&jCl$_iG1Is@7iuyrIr;DrpQw9BCoMgNIGE11r-pFePN+bnIl z@EfAdH>nkMb-Q*MCTP+8y;Ph;ns9jAo$oIc4sVz9$cq$h7d*X8iK3Pn4d+usdIY@O zF;7LFm*m1vtu+!6sBY>LxMVrepbJ#e;#|pAST1tulipgo734T%Tp^ciIK2Qdl$qMF zHI&L_wS1wStz$)gSroMjiQweyG3RCWM1Cv!7<_Qux%@;=mMUtkGHBZP$y@~}F;UDe zW38J$xz@V5jN`Ievudp*KhG7TgTCp(atswNgKFb`s)xugVTOZNpD-^niHI=xn>1u1-4 z#syrp?34=Idm`0k_t-V(YZ1aeryiV5p9yk?hf#jUIb*6=4*JZwK|L$sReL%A%iPH_ zskw5qY>fXDWak%N6=m+R^gh4lGZVvXS}nr^qOfwQ+cG2 zfljg_z%`6SbZ#UX;GWRNtfSAKPMiT*kbRHWd3~kA^k`pa?t{{~L`k;!I2TbbqRZA7 zP|z01EL!MKN+wHvRWdA2YZABfP41@HLkVDJPW_JLm#E1+QkbY>0~r(0D3XwfsgF>F zM4bw)cAkblfufCPL$v9fN`P-izKX$}%NZo7LobXQP9w?_?MvE6n%O@d2wP7{8R@g# zfIic)R61rGXF9LY??eZ;>HFiPX3vDvO;5C34Lg;){!%PBpv0Y!6xz0w563!?aXG zud1YGsl;#nSyr>uFcNeuFfn3~=jN1v?7C&_6 z!k$=;Ixn@57RC<^iB!f9RdV6v(AT2_QVzLt7MN_FRe~5EBXJNa6kjDs!^_WjKo|95 zGnE06Rlr?ruHrR!u_^AHcs?as>bm4W?2Lx@C@=Lf4Pa^tI)b_-Je)$x$|AuYKUOt} z^qZ;`e$&NnceGs(H?Ef#<&}o{P^t<`C``b67H_HRRn#i^;++2sO?NpHz3itid4dH zk=Mc}y$P9}nlh;O2>Q_>&sF*m<(%$wtwmq|1(dDGK=oEWZ1+x@a(2Lb*ik^hTi6`S3D^OokwJemO++vSXQo6$ox zBYmU94RhNd_b6&5qC_{qz2I;eH9Y9nu$p0``W~u!v~ulBzUO{fuDBd?s&@7d+wfVku zG5%$@=s_PDzDOwFxbJLh>Cfn5V}2(u3pV}{zaMacHZ71 zjjOu?KEo6FNb9xzaRnGkbw$n%_qpYzPY;?U!K|K|RSUNP!z+q=>zvQ0z>KRKO0Gt? zi&rkbp(Q5wyP*8X!?#X;6a9DgsPoaJN7dp3GFsz`MO;>3+%IVJ{8{`2jbA438lr6J zsNjg_i``fwzKRe>CI`wm^ciT4>jy&i0retjuI{kl=&z&r3al^WAw!;`w?d~+Ga6(v zX3vu42F&mO0IlF$Y6+A4AcEIPH%rA|?B*_vT12t&V99VG@Zc ztk<@0QH;Q|Nu2@kN#$Hc&ZDF%YTHiZs%ac_sT2Nh3)RHZKo@O+)U8x`9DX?d3G&(; zcq-&sLk9sV%HP<6K9C2=m_jQ0zPlEk@CeBczZ>9(*u>;`H-HYIKg>Jt@+Q| zVSl4Ix7d%JN?m63PvMFok-lV+O#&y54^a-7TaeumY%A@S!0fj$Y}3HW4-xpRXvS+ zKPi+#>xh)%Rg2BU-MpHK2K5``7oPG_d6Bf z<Wp2`=!Z~94!->?+F?^!=f-QaOj&bj8}+2- z(X$+R9@WdT$n8iuw8LbEYR!0~sp@i^%ha71wk~;RL3dnX_?y(>evv-e4|J*3*Cb<5 z%Z)>s#W8uwo=4PNR&{w~fKx$wbequcsJh%4E-w{pqu=N7jS-UWkKw~8whCeeGZa6Z zXT)m-SJnjM329zo{EH&v-ib0OkoJb$uKkJ1%%xkUYd_`Z|InYF$LLS=x4BUK_x-t* z^d0?~A}{~0Ka-E>PmhlN1UmbpZliRO?_=Fu0Fc4Y*Ki{)jCZX)mqo!HwYi_mg7@v5 zVLLlJY-iqm^sqhnn`3tK^K@m-c%997nIyypt&G>%&fW4-@pAOX5R;toD%In)lkw^{ zw=c?ipF5{AvS?2ji2zNGuM+&vL{7Aps)?{vCPL~U(rKUdjW2z9gKvAc%3P}E%ThI8 za+7T)ne4LXyA@tZOUk8d#mt6r^F`ZaWiCQKy*#&PD+L8ZhJRi9sw40b4t&*MOu$}N z)jcxM`31RP{_KL^NE}skcOD|DVokJB`=rg{W;uOD2!qllSN@ep!aq=hWefQ-TVMFy zZ-4vS{U3Wbm~BaCaPm-|clB+ni}r7|{oW#c50XavUrK$cju{okcj?fa?;X{l4}X2^ z4%K#aC?=hx?R!q|=+9;{ss6ktajHKr5k-H@+6c4>IDNpv_;d8*?D50Ya{yMM)KoDE(HUj^GO zl|q4w!4yq_yMt}P(Vp%9;NW@9UAJJJofJb7Z>Zl_)vrKwNMbF&iG-{g^R8gGS4au$ z7UU7ORdg7>>1?ym5cJ(VV53}_J;y1uS&$R6trTK#`s*WJ_ZUo<*D`d6k%zL9vHB7*f_ z)D=J;??)|!y`fAAw91uqnSICe{eM4h`}g|&eq3<>c62y`!`gzIoS?TYm~^_|)_U`> zS8i*r@@~zpb86D$tahoTD8@2C9N)7NG+sr~G~-m&jC%#-RT5)v!Pvx&7j+ zWRyJfPB52BAl1W77rivTN-}!posVVTo^uDd3G4dA*WB!u`L0wL|6=T2WLA}IP!R`C zFz#whKmkJV|FZ~_QuL&M&ezDBUpc{pFBuZL4Zse)7Q=LaX!SMN`` zQ@=o_{>{E&Et29@6dPh!T*jhIfC#t_@Gh4R5<_$ zbSvL|0_3)qN<^%()JS}SD4fxwiNe|Qf*v8(HVdmp7>PDsgZBJxT?%+a6<|vNi%x9V z9O)T5)XPXbp^{$P9m7{f;!$4AS|T`MJtN~dw;+DF=&qij7VHeO51kX9-p<_Xc6a{ryhyjq z2J0D_=ZxF?)+#mEGj(r-r>mJ=%WkUm*7b4`#Jj-`zL-2XIGH-#_7}dGJkX8lV)y=t zHF->4{vX5B_k?a;7rWZ)xpiYPR|~kqd)wPp+|mqrH`aRBLDbw<$5+Wpl!5{6EquqD;Co-+;12=Fqcmz!cX3eDqL?yifE9QgvXOWIL8fI(+SI26JHMv`9pth>(hIsuIYI9l zod`hCi=~StPSepvasyXQ}@;4Q0#19rN?3Gz>Dk!8!##hPdlV{#}cKuaMrZ8dfwv)TD3S6+oi zC!W`^l2ox#NB6yzO@5B$}84rA$_)Z|Fma1&JaQhl4-Vy?x4;>m~eKKkMKL9 zxLBd&uvqj_MOX}^bK3nkgc_aa*6us%=Ckt=kYQcmm@hpm zr(Yc#u*tKI=H%Bd?b5H#4VbTE!o{So?*8j}lDqx8+<8)7=-&_2{;Q*Zm%IC~+KQb< z!{yT8_!^`Uvk%C=G$H+sFL>M|e!d4?C7pa6{CZL5Z|Yfo%&Cv(bgdlrUF|aAPoIam zw;Jz#=P1rR)TKR&KgL4pnskjiAGQl#I;p@@eOXmrWRNpP zH47nm!EcGA+&t$3)wp%h?+Y`niK^5m`wQXt5EvPWeXyhuHGypoOy46GdTab4FH7l) zEPFU@*Q72ueJf{>ykgd%$WngNv`eZir5kA3BUNf4WtA$yJ%vIL<-HSIopH17>Xacvj_wal7`fuGU+=c%xbdHHwr@i)L0`dF{_CjudtQug@Q^X>NAj+$@pJeu3Yqvu<+xMRL;CaF4rVZ*zMfArp4un8W=4Voq`7q?k2Mnf^{Im{3^R!EO+O;Ggpj_o7k7+%v4z zMZbAv=AQj+URR>9Bl&Tj2og4Xm&hEAuPYk1(Ywyvqvv%F8YG2dcfJ1QQm@m$eH1jU z9~~Q-0gXnGs^LZlJntp3hUWkx6+FKyQNUAfiXDf3-Fp$u`Tr4^zoH2Ma|OWU*!O+s zI^LPV!?Zrpb%+`|CbLY`#QJ$g{J`Laz0joKmAef&OyL1x3YmFAICGi8#ljTUAF780 z&+Sp*GKCXgh#wNB@PIId%{S}$8dm~359df!)P*7&&;EZzk)J`RONW=!;pIXErpvp< zyWUj<%^ujLc>>ihtuM-%Oy_>t3g&WcMMLGMA|ZAsbu1ih^oVr*#!u-K5! z$`|Fl%Ic-{7R8p`foOp>p)hUuTB`GbwZ|vI29HNc)YP8qSTZ%ASzRba`n7)e|BLd5 zC4H!uDHGRvf6{S2>z;2kLKiT30=GO-2%3q#sb_8{B*srndnF-Jj8lgQ@}l>Kq8oRVFz(+&CQ%r8a2EmC=fTE9|4RtP08Yf^ zMgl$zg#ADbn`bl65}qr07V}&YwDM3LKmodTIj_smhZ7s$v?6V(8hvJ zIp_SyXuw2)>_k8@oz`5N6=7N40{EKJKS~#9ad{hVe zsWKK*hUhgt3UkZ;RJszhP0t0rxr3X$d$6wCtSQDmY!TYrQoE73j!dcRrFMI4CqRt* zKUMuzkYY$4e4kf{l=0A;op5;6g~MVO4vj7xVj2$0(P#%K)V7wIw3Vm-b}>+Ye)%?_AelH zIEzFNf!!UDx~~fo-Iqn8u~{UFDkM65*22pe`A#H~3nK!lYhj*`Mxs6)NR;Yx?5U(N zM{JQi_z}PW$v~RFc7kQ7?ltpANp)PXl;~Jyk@kP3CQ_nM#kzAzIjiFP0me#$MM7P{ z!qfnBI^ZG7Y5zGqz?>X-R4M}dnNuS&qNuZI7fZJ4SizDu70iM|gpWjuEKq|(LIMteP~2rE0gob*L}vfz zu$Y(wi^#=-7nSfGSvYjepu6$HGQX3qAa3jdk?CjFa5kJ+DGfbO>7}asRP}3R(aI4o zYR*poDt!@UNKBl(9sp1rAuTxI6h8<#$0EtG>?bOF67hvaECyf9>u!w|;sye-&*Y^T zf)}6P&oi&sx~iW!zF+0o;(H3%RgUk6ILrCMrr3hm?+*jY00QgX!SX{FmANq>RyY@WHA&TQEc>iJej z`sK0c_K+xouUiCAkaeE#d}kVGswZXjkJ|9Zi~i9&H)Zw7;%jp?Zj}Bvx3N|PO>fw| z6Lu%irVLT#&SyYb8Mdc;0}YvZH~HFIycjoYPvahKwwDcew~+ZBk=-JO&vx0N7I>WD6mR%3=BT|+HKgPeS0*Ps=pqS}go8V~%8 z_u7j6#{K9(vS^D*JG6-oIonORS9{7}FA7NMn^17U@{6juw6o^IP|yF>k=31%#X6E( zbuWs+3Zc1_bBQNdIkkE2$l8kCcU=(7W6)GpA3O7?Cv1LLJ8XB@dq*3IT8(@ECNz;y zv;Y=aF0x_U&#H8sMn*zYf$SjMhoy?t9Fn8A=ahYP-4Db+VFktUBX=Fd57#E? zuqf@c5`ewq9;yiEGr@|Dz9ycA-x#}xdmu@tTl_%r+#YDzGyX$fkjL}z*q#}Sm7evM zotf1Y>t=J>FxU=x?@EK~%2J4L%PzS^V&_+5J0fhCy{*!zNq^Ffi<^}iXdzz#Paw+6byhur>3N)Qo z-jupruGJVWDEN{)^Og2P^B$vd30c{Fwq0ra50r+y?>{dS52Gi4d???u7^{q-meqTR z3AH5m@<Z;8aF!FY z=WMIB=in;({n@`wmxax8jEa*xaE3F%Dnb_{Sd1&hwPP~*_Xp$6CFb7rYcNHT>*XG@ zd5}6Aq|Y7;oy_XHE)H2E%M|?ynR|qkBvU(C%IIeypeBL0 zP}0xGvt(fqpPtV>(zwzSORaA6z)MklQ5Iq?PGm`l(x{f2$kcs*Y`p znd_??M;2z1$&Y))4=tRVGB-Agk=jXZ@>VF9NGG+WIk0-Gx^cg`FI_}t4e#p4x2t2X z$1=(4#;QU$cbW?mX1iNJ&>ndbb7&bDN}J|D)xcCQvpKPOVc&Q%57J6A+qkfuvKYUh zeJ#2aB(HcYXpDOc?jbmgp*g%KsIg2UF}d#B|JE3Lm)unt@V=egJ-~l))pOWAP>9&d_w&4O;Xt~4=fZKo zd^xp`u7Jf0Z?kVw~!4!=gF6C0(0|9&F>7c~2VIQQU{)&4F zqql{v?qNC=7?$)`yzV!~yzZ-5Kj$VcW!u+SB()W1znUAQ zVP~lCs$nJsG`C%)x?LndKDnTou^9lX=Y2Ei{j0D3OF`w?R|LJUKzdr%$vTlX^vLL6 zF8zWFBQN%uuj`q)KbaZ;I$y^k4>~`DpI6}zxA;WwsTj_^5V7lk&ZK&coau{!B}qM(tWkuRREe7Xioopafg33Wj7N$nT*)%66YthNtS<~HFny0HPf(spY_tG_!Z?3 zN{onDjiM$Zw^c=Fkrh0RtMV0%#MN4njdHLX+2ymYnud~dkGa@*=`T*Rg42tz*gCHnqO zLE1ezvv@1z)9^o1B;I5F9#3cbr5)*?%2{7^y7Lt>%dNZfR6k|;syrTEhCkh z!HYrw|qG zxjYu>DQ_pJEeF)uGj)yDe~j<(VpLt=KO+Mx;L`si`NzWe;qD53#o=G1FLbR3PEV`} z1Jh@!-;?B*O_0&xqj32g?b-ga*Ju#)=>kKnBtJeOzQdbL6`{D{99Zo|XU1p{ zafn=KR=i`=EZXL5S)hYsH#*$c5|{?n72j9W{Kj*$ho*-+k6+ulY014fjM#OWq?7zAZS>q3#0^K< zGK%71PPtyOu9`a2!=zk+U`M%?r$q78IrAEk13-RhHDVF{R00uF zU{@RL63as$IK!&F9)0zzCBeGJq9!?%u+R+_cgBifQDR$^v{8MxmCmH=Y(h2j?FBOH z>nasJJ@+&(5e!nHkGkVB7M`zgx*jo5U&JI8DC!tZL2$uom-bx+U}8L4;(bYtT} zA+NNm_BhXdkNM-ix8yS-B7IyZo3hIIVqWgTD8l?Y=f2_G&a&rEbVgtpjC+U6_~g{L z5;i{&;+*;}u_HQJpW@6IK70jN-ust)S_u^c8&V8-k1KfRa&As~C9@-o<#h zZVV0(a(2z5t(>q(IUoi6|3p!5W{43IO6-gbRk6FVtLsQ72qRo_{~yD+$bEd@d3xTQ z+nFP1$Cgnvsmn>N_NsD`sl|DjehR`L79q90;88i1ylJu^qtW=W5?n_gxi~Lvi#4{9R#<)Vtsp4*R*LW(Dbp&iKy9E&9ju}D4s|Rd?b;RE8kFc2yrc&o~z|^NqbHAZV}vgw#Jr8 z_p#EehtIB?h-H;hbO8nK&ZUqJf$U;kA^X#2?!ml5OT$KBkEr1MT*jV>Uy3of^2`Nt zpSHivolXdYlpw?Nr!^RX>(2t&87CG)#;*lSJ32rEX>g($HJO(`qevsLRY<}ZxA?)a zyGz{CFX${?M7q}a9rn3345E9<*&~MxH+t2iyqu(BW97g_T zpec=a#J^+LCZXv)y(g=ru)Hn|PRQ1hI5oGH9{SC#C3K4V=GJlowa}hD)Y-naIC7Di zgj6cMb#}j}?hZC?FXT?8LSk$>$cH!G53PJ~L4)aTY^<>9Hd`_$3N}5dze#%cTVuz! z#rm5+N%fUN7(``71*I6$$b7GXwx?FK5{(= zBSzzd9@4p`GD@8ZfW1nP>dsdtnKgAWJ!mu@+^HaiV~X;3(_=6ZhKZXwlRE&W`xgB$ z+pnjAzV25v|Igm^iK=e{^BUfb?2UbKf$<2p<`%>}ve%>(egfCD`Xtp)d^~iXt%3tBdNMcK3CMA-H>VQa03;nx_XW~2lJQY_@Z#<~nnbM% zKg5LPS3nWz$~?D*$WJ>k;dF20VZdR7Q8Im;`TG<$84Y!m*ojfYJ=JPY!j5eyY7u+` zxlH%uTGj5iSS{$MMlmZmuq&5OYf8!Goba4x_P?Kxa8uKXf!8E>Sl zVRN+9Qt|cMGoY@uL{+!L1B{W7sJG?ajOS{ukMujsQ|j>~o!;1d;|$@W6bk}`tXd0m z%9-<=cvHc}swJbPG;vV*QTmdw^@Oz5*X}PH#CAyh<`D0DNv3G(KGLaOV$CA|+0|o4 z`G-_T2gpG}{L6lKixvnuD^!t@A4%JN#*&s=dq%bJ?YDpT0tlhpgE`DpJz>f2iLT&-!PNX6)T1Bd2QWZxpBEC4%D}eJi zf5rUL=$VAd2$e-k2n{DRoEoir$_bSl4F`djTVoExzm2XXZlU_@XjKm^H4?8W{GC-C zvaV+?pbG=8WqzkQt{uPz-g>2T<5S%@0nalU#OzB;KosivfN<5uwF4P8CUu5Ck|Dm} zX-@`oN!e; zUs3rZvpEHiUg!>7$ih<{PDQUDitiCz@IaI8Td=aV&8cIG$ZR@~R!Cg#a78a*e?Ope zzvf$1ls^iY19RGyH)Qd&dLTN-X@iDz#;{jj+s$YYTP(}HQGAj?P_rAi*5ZPQ+S+@%yFU6s$zU2RAPD=Jv-0a4 zf?2ai)tXE@)!-SZ@C;WQVidQeH{4;Xu4SjJtVQ5In;fhbl4GKVuH={^N(zH>8-Tfh z&qN+@J?YaYk~zIs*u8IkRnWoRS<_wFD#*_IyYMM8a0j`MmhLBArBg5j`<(u8QS9*8 zysHgN&>F*<__nYcnTg_@wZ`Sdf|idDY?^8zmK*gqNIs-fjwp~=_2lyKO1bW)DHWBM zP&pcoV(?Ihtsa7q;tGkCPcPvogHbP%js-?t_i+N3%D#}BR;@HJXG5svX*u@6VRjKj z24qglo=TFlJmHzv^_{H*L-2+3OPxDccs99<$``#5Z- zoZoDhl?#!FQl4iwt72>3Qn4qC;1pq>SWCfzXvo~^q&OxMzdN5fq1)l;5%7v!?pp1+ zXn$rR^XHxtX9V8}lsaV+Xc;?HTFSH3eU`Y-V)rRzGV4i8n4wQ^Q)RavtL#mDQ)RbG z;6E?>VY12Hg)Yt}vInepamvkwyoDc$)Wi8?j4L-vw<-GFu^(3Ua7q>Eai}$EE9XIY zPK@>gid)6h>Xv{eT{i-9c)%ma%t-X%gYsquI&IY>g8lC8&QIPwVmMUn({CI(9O8ye zhU06@TJ00_g>N5!IDX1E1+pa)_|HLhqb~cH!!agXcEx{Jb~myi6uDGk?Tb%otVL`I z#@_cH3qy8fwq_t~cJIIKP$P4VuT!E|DpN)|+3Xk}*M3Zi^8d%=U`}%BO;mV4SA!&{ z{?7USBL_)OD2(R_I(80{Oc}XZ;!ch^s6R4gMlf`3d}(&0KX|8OkXo5DL_>yl${;^_{h1UT{woI&)6CdnP2A6IQw^58h0ksNzu4d2*|3Z zo%y;W^Rn7sGGJYX@eeu{_Pc||F``tl)yc>2vL&vLZ;q!$ca|(zZ=B`qeT$$OR5qpcu0s?^@8;~JTPK2 zeEZjBdSCHL}DCv|2%x19(-@MN#?)}e**o40!X>Q&ZG|t_O zdHA+{#@AK{EmQgtyqxC^ywY+s$o4|zm2B7?fySuD5Dn#kMQ}JiN~?4_}9E-iX`vXxgWS~ zeJ?v)ftQKZ+(s(qvdRhJ=`ENPxsTi*`pm1U;Ljcuy8u|th>aQ^og1|Jmq;1?b$fAl zRo6pTRwS}eqp4g(RL+H)#TmuuPe+pUWYsgB{P>hQsGLb5Sn(te4F)Qs7>GtWPKJ*y75Z|fYzRw2)&LxPVu^Wd zIT~J7YCaT7c9{xx&0!45%?$|Bc&g5e=C3#}jq!>VBO={a;D+G(p|vcLxCK<@Oen6k z#^I>oDpiotgo@5)s_7^!{zYCi?2F%n746Of%bQh!y^dKRRg4>Y`~nf(C>!gpm-z0Ntkayiix%oCC&H!au?rD}p|@gG(-=Snw@BW)9;N>R;*stxUb@9Cg=Ve=XpawWM~~${0(ps9 z+sYOT^nlwozrgHsOJF74@ubnZQpcKTt*u0e+~!f=R;X`?&`ECHr^ka!Se&P#&mxJs zuM7Oao9@?MGpLvhBx@f#s5tU5vBD<2@!Mpz9j(78=iu%WargOMQ~U z8n@J%8+8K(tx%(Yk1uhi_T!-KixG3njc3;cpC_HiJCqq@{4zOvkR&jgwxIDv`)}GJ z?HB3bWwbv%2;-y?77G*?%|m=1tv<_k{xm+bq)1PKmA$8qz|WK0)uGZe$agV?B25vb z;WUOW8Vz4%h@3MnJa#w#^>|q0re#{=2fEKaO^*y4=Eopx!Rh(++;Gio^F8NJ4*>`w zbM!q|n;zhM?wWL8-*YwT-oEET=|bOgSETcN&-r9ThnvX`nS3>)THt&7f^@It)xM`o zBYD23&sC#-RGMdWnr9@@^CR9?` zc&y4n}}vQ!ihb;6vwp3|wmC8^K}?fgy&kLz#a`KAt?)p*+H zb&lsbGM?hk=)(3F#?nyGICHHUP8$x@x#oi74CmtS^Z5?`=kb3J|8f3B(NnT@-H(Ys z9jm}Yr9q3;B+%9syOqlrlM5KuxS%45$os9y;MuJ5=vhp8tM|+2O4gpi%Gx#~v4k~{ zDU?eFG%Kv;>oq6R(Zsu9dqiJ)9yS7L#0p`%U}_s49gF~$q5{h$p*Wmi=)z?|fb=OJ zWmhfg{DRh|LIsK)&W-@GXWL&^PRo|@rCEKELw7V)G5+`5b!Afm#&iBM2DhRu zI#9}{#F3O3v?sM9f^9|~_v&d3%^m10;X~FrRegaD*}dacfUcqtThmO=OzIB|4n)^U!!{$b zum|;&oEGbh5#aiDUDhT$1WzK4qP}G)z9Q+2y(-*bF`$}i{3O1`X8Ulg5$x@3lm<#T-`Af#nNCo1l8 zspk-9!*JmlM!!hfTI&jy1Tev3jP!CR-c58{jKl`Q(jI4=(NVvj`qcnS)9@U$Tsq`@ zrAssFR5RWb04WNmnjx$v@Y2mN8ooo>&J{EzXcd%`UhugRd~U!DaK>3a>3H`Kz-#e$ z{Ey4XBC6_H5qMT4uJl&GFEhFvmH~wv(g<_FTo$e*@-IQn`20FC6=5`dM#JQ8 zcVedmF4P8Z$@8dM_S9521Dt!$pJ_Z-owJlgE*ob(eyObSS*NL`eKMKxcKFg_0nld* z)}^lr=Iw9>oT3j_en#TdEBuU)|K-wUJoQ33ae`fTsdAfI?HO-1Tq;ak*y{w7+u*?F zvvT}7MvT#PU3U&di_m=ccP~V)7{<$uQv{QO1J4N+PpSgvLlVl#$*mL9UaltU&?k+!3AMWTz2PNa0=G#4)PSlz#b zt2P>h)1;F*T6)Gqk4ap7ej(E1hY4CW(`dyhA`+>YM$L7q>n)0Hl_0{9;UWy-qZ;dL z5pm3}c0?J}jTlA5M3hC#9i}0XFUH8`ymk$JX^Bf%{s;<}DSu>}>HJ=Ou9>MKT54v= zv%O}TxQ)@*Nn2{BNgRobo%`PwNPnQeq-K*9;CAj8yYN#GE=1>|fQmp?E1)(>&2k>J zVjeFroI=;fqUy#;pz>r!H4`PO7lFwl6E6oR@&R~}FJ{Nc zGf=%3cDxs=cez}pzZWZrMz5)+g{tie*weza1^Q&{qxh;zs({>O`d7 zc^28+y1?t`Qb_UbYe!+9|AnnGM|%%iPk#*mt4L~9N9;@b5+f9q^T$KZt8kLC?7jg> zm8p!9z$CCPXx1=jR}C!=T7$NqA@DzqyA`Z#A`k{OxOYBieQvxM=tM>+!+@cGSs_wISVJyF7X`pa`YUh z>@1lg=Y_4a#?TCL>=mxOh4xiZo@OY%L#3nuj8c7Q`WteB{e>=L9>S>WOVFxhWb8{$ zX%&DtSD#I-t4Nzk{a!dZK!6@Z>hGj-3vs@KU|-HtI+dNf2xQC2OOb+&qugMp;2rZ> zM&l$3b_HV5B5~0k9#4chwiNz*XnV3KDrfZ39xqTxX&P4Wx-yhKH%HjaT!Wl)bKPiu z?%5u!XuGFJe0@Ih&Y?bJR%q+=63v8b>o+0l@eat z&!}?kCDKf11Ivo&kFSjm=8!;&kdboJIz1zh?|-@_J68>I;}2I~(l zGvEN_CuodKvO+IbU4{#ia*JrXy`a�J%*=bHMt}P_&WaujQxn`7I2X-x(UPzB`l) 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

  • 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 knuP(In0-eiGRCV6TgIWScth generation ancestor - * of the named commit object, following only the first parents. - * The returned commit has to be freed by the caller. - * - * Passing `0` as the generation number returns another instance of the - * base commit itself. - * - * @param ancestor Pointer where to store the ancestor commit - * @param commit a previously loaded commit. - * @param n the requested generation - * @return 0 on success; GIT_ENOTFOUND if no matching ancestor exists - * or an error code - */ -GIT_EXTERN(int) git_commit_nth_gen_ancestor( - git_commit **ancestor, - const git_commit *commit, - unsigned int n); - -/** - * Create a new commit in the repository using `git_object` - * instances as parameters. - * - * The message will not be cleaned up. This can be achieved - * through `git_message_prettify()`. - * - * @param id Pointer where to store the OID of the - * newly created commit - * - * @param repo Repository where to store the commit - * - * @param update_ref If not NULL, name of the reference that - * will be updated to point to this commit. If the reference - * is not direct, it will be resolved to a direct reference. - * Use "HEAD" to update the HEAD of the current branch and - * make it point to this commit. If the reference doesn't - * exist yet, it will be created. - * - * @param author Signature representing the author and the authory - * time of this commit - * - * @param committer Signature representing the committer and the - * commit time of this commit - * - * @param message_encoding The encoding for the message in the - * commit, represented with a standard encoding name. - * E.g. "UTF-8". If NULL, no encoding header is written and - * UTF-8 is assumed. - * - * @param message Full message for this commit - * - * @param tree An instance of a `git_tree` object that will - * be used as the tree for the commit. This tree object must - * also be owned by the given `repo`. - * - * @param parent_count Number of parents for this commit - * - * @param parents[] Array of `parent_count` pointers to `git_commit` - * objects that will be used as the parents for this commit. This - * array may be NULL if `parent_count` is 0 (root commit). All the - * given commits must be owned by the `repo`. - * - * @return 0 or an error code - * The created commit will be written to the Object Database and - * the given reference will be updated to point to it - */ -GIT_EXTERN(int) git_commit_create( - git_oid *id, - git_repository *repo, - const char *update_ref, - const git_signature *author, - const git_signature *committer, - const char *message_encoding, - const char *message, - const git_tree *tree, - int parent_count, - const git_commit *parents[]); - -/** - * Create a new commit in the repository using a variable - * argument list. - * - * The message will be cleaned up from excess whitespace - * it will be made sure that the last line ends with a '\n'. - * - * The parents for the commit are specified as a variable - * list of pointers to `const git_commit *`. Note that this - * is a convenience method which may not be safe to export - * for certain languages or compilers - * - * All other parameters remain the same - * - * @see git_commit_create - */ -GIT_EXTERN(int) git_commit_create_v( - git_oid *id, - git_repository *repo, - const char *update_ref, - const git_signature *author, - const git_signature *committer, - const char *message_encoding, - const char *message, - const git_tree *tree, - int parent_count, - ...); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/common.h b/git2/include/git2/common.h deleted file mode 100644 index 7a4c54c10..000000000 --- a/git2/include/git2/common.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_common_h__ -#define INCLUDE_git_common_h__ - -#include -#include - -#ifdef _MSC_VER -# include "inttypes.h" -#else -# include -#endif - -#ifdef __cplusplus -# define GIT_BEGIN_DECL extern "C" { -# define GIT_END_DECL } -#else - /** Start declarations in C mode */ -# define GIT_BEGIN_DECL /* empty */ - /** End declarations in C mode */ -# define GIT_END_DECL /* empty */ -#endif - -/** Declare a public function exported for application use. */ -#if __GNUC__ >= 4 -# define GIT_EXTERN(type) extern \ - __attribute__((visibility("default"))) \ - type -#elif defined(_MSC_VER) -# define GIT_EXTERN(type) __declspec(dllexport) type -#else -# define GIT_EXTERN(type) extern type -#endif - -/** Declare a function as always inlined. */ -#if defined(_MSC_VER) -# define GIT_INLINE(type) static __inline type -#else -# define GIT_INLINE(type) static inline type -#endif - -/** Declare a function's takes printf style arguments. */ -#ifdef __GNUC__ -# define GIT_FORMAT_PRINTF(a,b) __attribute__((format (printf, a, b))) -#else -# define GIT_FORMAT_PRINTF(a,b) /* empty */ -#endif - -#if (defined(_WIN32)) && !defined(__CYGWIN__) -#define GIT_WIN32 1 -#endif - -#ifdef __amigaos4__ -#include -#endif - -/** - * @file git2/common.h - * @brief Git common platform definitions - * @defgroup git_common Git common platform definitions - * @ingroup Git - * @{ - */ - -GIT_BEGIN_DECL - -/** - * The separator used in path list strings (ie like in the PATH - * environment variable). A semi-colon ";" is used on Windows, and - * a colon ":" for all other systems. - */ -#ifdef GIT_WIN32 -#define GIT_PATH_LIST_SEPARATOR ';' -#else -#define GIT_PATH_LIST_SEPARATOR ':' -#endif - -/** - * The maximum length of a valid git path. - */ -#define GIT_PATH_MAX 4096 - -/** - * The string representation of the null object ID. - */ -#define GIT_OID_HEX_ZERO "0000000000000000000000000000000000000000" - -/** - * Return the version of the libgit2 library - * being currently used. - * - * @param major Store the major version number - * @param minor Store the minor version number - * @param rev Store the revision (patch) number - */ -GIT_EXTERN(void) git_libgit2_version(int *major, int *minor, int *rev); - -/** - * Combinations of these values describe the capabilities of libgit2. - */ -enum { - GIT_CAP_THREADS = ( 1 << 0 ), - GIT_CAP_HTTPS = ( 1 << 1 ) -}; - -/** - * Query compile time options for libgit2. - * - * @return A combination of GIT_CAP_* values. - * - * - GIT_CAP_THREADS - * Libgit2 was compiled with thread support. Note that thread support is still to be seen as a - * 'work in progress'. - * - * - GIT_CAP_HTTPS - * Libgit2 supports the https:// protocol. This requires the open ssl library to be - * found when compiling libgit2. - */ -GIT_EXTERN(int) git_libgit2_capabilities(void); - -/** @} */ -GIT_END_DECL - -#endif diff --git a/git2/include/git2/config.h b/git2/include/git2/config.h deleted file mode 100644 index 19d4cb78d..000000000 --- a/git2/include/git2/config.h +++ /dev/null @@ -1,554 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_config_h__ -#define INCLUDE_git_config_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/config.h - * @brief Git config management routines - * @defgroup git_config Git config management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Priority level of a config file. - * These priority levels correspond to the natural escalation logic - * (from higher to lower) when searching for config entries in git.git. - * - * git_config_open_default() and git_repository_config() honor those - * priority levels as well. - */ -enum { - GIT_CONFIG_LEVEL_SYSTEM = 1, /**< System-wide configuration file. */ - GIT_CONFIG_LEVEL_XDG = 2, /**< XDG compatible configuration file (.config/git/config). */ - GIT_CONFIG_LEVEL_GLOBAL = 3, /**< User-specific configuration file, also called Global configuration file. */ - GIT_CONFIG_LEVEL_LOCAL = 4, /**< Repository specific configuration file. */ - GIT_CONFIG_HIGHEST_LEVEL = -1, /**< Represents the highest level of a config file. */ -}; - -typedef struct { - const char *name; - const char *value; - unsigned int level; -} git_config_entry; - -typedef int (*git_config_foreach_cb)(const git_config_entry *, void *); - - -/** - * Generic backend that implements the interface to - * access a configuration file - */ -struct git_config_backend { - unsigned int version; - struct git_config *cfg; - - /* Open means open the file/database and parse if necessary */ - int (*open)(struct git_config_backend *, unsigned int level); - int (*get)(const struct git_config_backend *, const char *key, const git_config_entry **entry); - int (*get_multivar)(struct git_config_backend *, const char *key, const char *regexp, git_config_foreach_cb callback, void *payload); - int (*set)(struct git_config_backend *, const char *key, const char *value); - int (*set_multivar)(git_config_backend *cfg, const char *name, const char *regexp, const char *value); - int (*del)(struct git_config_backend *, const char *key); - int (*foreach)(struct git_config_backend *, const char *, git_config_foreach_cb callback, void *payload); - int (*refresh)(struct git_config_backend *); - void (*free)(struct git_config_backend *); -}; -#define GIT_CONFIG_BACKEND_VERSION 1 -#define GIT_CONFIG_BACKEND_INIT {GIT_CONFIG_BACKEND_VERSION} - -typedef enum { - GIT_CVAR_FALSE = 0, - GIT_CVAR_TRUE = 1, - GIT_CVAR_INT32, - GIT_CVAR_STRING -} git_cvar_t; - -typedef struct { - git_cvar_t cvar_type; - const char *str_match; - int map_value; -} git_cvar_map; - -/** - * Locate the path to the global configuration file - * - * The user or global configuration file is usually - * located in `$HOME/.gitconfig`. - * - * This method will try to guess the full path to that - * file, if the file exists. The returned path - * may be used on any `git_config` call to load the - * global configuration file. - * - * This method will not guess the path to the xdg compatible - * config file (.config/git/config). - * - * @param out Buffer to store the path in - * @param length size of the buffer in bytes - * @return 0 if a global configuration file has been found. Its path will be stored in `buffer`. - */ -GIT_EXTERN(int) git_config_find_global(char *out, size_t length); - -/** - * Locate the path to the global xdg compatible configuration file - * - * The xdg compatible configuration file is usually - * located in `$HOME/.config/git/config`. - * - * This method will try to guess the full path to that - * file, if the file exists. The returned path - * may be used on any `git_config` call to load the - * xdg compatible configuration file. - * - * @param out Buffer to store the path in - * @param length size of the buffer in bytes - * @return 0 if a xdg compatible configuration file has been - * found. Its path will be stored in `buffer`. - */ -GIT_EXTERN(int) git_config_find_xdg(char *out, size_t length); - -/** - * Locate the path to the system configuration file - * - * If /etc/gitconfig doesn't exist, it will look for - * %PROGRAMFILES%\Git\etc\gitconfig. - - * @param global_config_path Buffer to store the path in - * @param length size of the buffer in bytes - * @return 0 if a system configuration file has been - * found. Its path will be stored in `buffer`. - */ -GIT_EXTERN(int) git_config_find_system(char *out, size_t length); - -/** - * Open the global, XDG and system configuration files - * - * Utility wrapper that finds the global, XDG and system configuration files - * and opens them into a single prioritized config object that can be - * used when accessing default config data outside a repository. - * - * @param out Pointer to store the config instance - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_open_default(git_config **out); - -/** - * Allocate a new configuration object - * - * This object is empty, so you have to add a file to it before you - * can do anything with it. - * - * @param out pointer to the new configuration - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_new(git_config **out); - -/** - * Add a generic config file instance to an existing config - * - * Note that the configuration object will free the file - * automatically. - * - * Further queries on this config object will access each - * of the config file instances in order (instances with - * a higher priority level will be accessed first). - * - * @param cfg the configuration to add the file to - * @param file the configuration file (backend) to add - * @param level the priority level of the backend - * @param force if a config file already exists for the given - * priority level, replace it - * @return 0 on success, GIT_EEXISTS when adding more than one file - * for a given priority level (and force_replace set to 0), or error code - */ -GIT_EXTERN(int) git_config_add_backend( - git_config *cfg, - git_config_backend *file, - unsigned int level, - int force); - -/** - * Add an on-disk config file instance to an existing config - * - * The on-disk file pointed at by `path` will be opened and - * parsed; it's expected to be a native Git config file following - * the default Git config syntax (see man git-config). - * - * Note that the configuration object will free the file - * automatically. - * - * Further queries on this config object will access each - * of the config file instances in order (instances with - * a higher priority level will be accessed first). - * - * @param cfg the configuration to add the file to - * @param path path to the configuration file (backend) to add - * @param level the priority level of the backend - * @param force if a config file already exists for the given - * priority level, replace it - * @return 0 on success, GIT_EEXISTS when adding more than one file - * for a given priority level (and force_replace set to 0), - * GIT_ENOTFOUND when the file doesn't exist or error code - */ -GIT_EXTERN(int) git_config_add_file_ondisk( - git_config *cfg, - const char *path, - unsigned int level, - int force); - -/** - * Create a new config instance containing a single on-disk file - * - * This method is a simple utility wrapper for the following sequence - * of calls: - * - git_config_new - * - git_config_add_file_ondisk - * - * @param out The configuration instance to create - * @param path Path to the on-disk file to open - * @return 0 on success, GIT_ENOTFOUND when the file doesn't exist - * or an error code - */ -GIT_EXTERN(int) git_config_open_ondisk(git_config **out, const char *path); - -/** - * Build a single-level focused config object from a multi-level one. - * - * The returned config object can be used to perform get/set/delete operations - * on a single specific level. - * - * Getting several times the same level from the same parent multi-level config - * will return different config instances, but containing the same config_file - * instance. - * - * @param out The configuration instance to create - * @param parent Multi-level config to search for the given level - * @param level Configuration level to search for - * @return 0, GIT_ENOTFOUND if the passed level cannot be found in the - * multi-level parent config, or an error code - */ -GIT_EXTERN(int) git_config_open_level( - git_config **out, - const git_config *parent, - unsigned int level); - -/** - * Reload changed config files - * - * A config file may be changed on disk out from under the in-memory - * config object. This function causes us to look for files that have - * been modified since we last loaded them and refresh the config with - * the latest information. - * - * @param cfg The configuration to refresh - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_refresh(git_config *cfg); - -/** - * Free the configuration and its associated memory and files - * - * @param cfg the configuration to free - */ -GIT_EXTERN(void) git_config_free(git_config *cfg); - -/** - * Get the git_config_entry of a config variable. - * - * The git_config_entry is owned by the config and should not be freed by the - * user. - - * @param out pointer to the variable git_config_entry - * @param cfg where to look for the variable - * @param name the variable's name - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_get_entry( - const git_config_entry **out, - const git_config *cfg, - const char *name); - -/** - * Get the value of an integer config variable. - * - * All config files will be looked into, in the order of their - * defined level. A higher level means a higher priority. The - * first occurence of the variable will be returned here. - * - * @param out pointer to the variable where the value should be stored - * @param cfg where to look for the variable - * @param name the variable's name - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_get_int32(int32_t *out, const git_config *cfg, const char *name); - -/** - * Get the value of a long integer config variable. - * - * All config files will be looked into, in the order of their - * defined level. A higher level means a higher priority. The - * first occurrence of the variable will be returned here. - * - * @param out pointer to the variable where the value should be stored - * @param cfg where to look for the variable - * @param name the variable's name - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_get_int64(int64_t *out, const git_config *cfg, const char *name); - -/** - * Get the value of a boolean config variable. - * - * This function uses the usual C convention of 0 being false and - * anything else true. - * - * All config files will be looked into, in the order of their - * defined level. A higher level means a higher priority. The - * first occurrence of the variable will be returned here. - * - * @param out pointer to the variable where the value should be stored - * @param cfg where to look for the variable - * @param name the variable's name - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_get_bool(int *out, const git_config *cfg, const char *name); - -/** - * Get the value of a string config variable. - * - * The string is owned by the variable and should not be freed by the - * user. - * - * All config files will be looked into, in the order of their - * defined level. A higher level means a higher priority. The - * first occurrence of the variable will be returned here. - * - * @param out pointer to the variable's value - * @param cfg where to look for the variable - * @param name the variable's name - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_get_string(const char **out, const git_config *cfg, const char *name); - -/** - * Get each value of a multivar. - * - * The callback will be called on each variable found - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param regexp regular expression to filter which variables we're - * interested in. Use NULL to indicate all - * @param fn the function to be called on each value of the variable - * @param data opaque pointer to pass to the callback - */ -GIT_EXTERN(int) git_config_get_multivar(const git_config *cfg, const char *name, const char *regexp, git_config_foreach_cb callback, void *payload); - -/** - * Set the value of an integer config variable in the config file - * with the highest level (usually the local one). - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param value Integer value for the variable - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_set_int32(git_config *cfg, const char *name, int32_t value); - -/** - * Set the value of a long integer config variable in the config file - * with the highest level (usually the local one). - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param value Long integer value for the variable - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_set_int64(git_config *cfg, const char *name, int64_t value); - -/** - * Set the value of a boolean config variable in the config file - * with the highest level (usually the local one). - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param value the value to store - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_set_bool(git_config *cfg, const char *name, int value); - -/** - * Set the value of a string config variable in the config file - * with the highest level (usually the local one). - * - * A copy of the string is made and the user is free to use it - * afterwards. - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param value the string to store. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_config_set_string(git_config *cfg, const char *name, const char *value); - -/** - * Set a multivar in the local config file. - * - * @param cfg where to look for the variable - * @param name the variable's name - * @param regexp a regular expression to indicate which values to replace - * @param value the new value. - */ -GIT_EXTERN(int) git_config_set_multivar(git_config *cfg, const char *name, const char *regexp, const char *value); - -/** - * Delete a config variable from the config file - * with the highest level (usually the local one). - * - * @param cfg the configuration - * @param name the variable to delete - */ -GIT_EXTERN(int) git_config_delete_entry(git_config *cfg, const char *name); - -/** - * Perform an operation on each config variable. - * - * The callback receives the normalized name and value of each variable - * in the config backend, and the data pointer passed to this function. - * As soon as one of the callback functions returns something other than 0, - * this function stops iterating and returns `GIT_EUSER`. - * - * @param cfg where to get the variables from - * @param callback the function to call on each variable - * @param payload the data to pass to the callback - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_config_foreach( - const git_config *cfg, - git_config_foreach_cb callback, - void *payload); - -/** - * Perform an operation on each config variable matching a regular expression. - * - * This behaviors like `git_config_foreach` with an additional filter of a - * regular expression that filters which config keys are passed to the - * callback. - * - * @param cfg where to get the variables from - * @param regexp regular expression to match against config names - * @param callback the function to call on each variable - * @param payload the data to pass to the callback - * @return 0 or the return value of the callback which didn't return 0 - */ -GIT_EXTERN(int) git_config_foreach_match( - const git_config *cfg, - const char *regexp, - git_config_foreach_cb callback, - void *payload); - -/** - * Query the value of a config variable and return it mapped to - * an integer constant. - * - * This is a helper method to easily map different possible values - * to a variable to integer constants that easily identify them. - * - * A mapping array looks as follows: - * - * git_cvar_map autocrlf_mapping[] = { - * {GIT_CVAR_FALSE, NULL, GIT_AUTO_CRLF_FALSE}, - * {GIT_CVAR_TRUE, NULL, GIT_AUTO_CRLF_TRUE}, - * {GIT_CVAR_STRING, "input", GIT_AUTO_CRLF_INPUT}, - * {GIT_CVAR_STRING, "default", GIT_AUTO_CRLF_DEFAULT}}; - * - * On any "false" value for the variable (e.g. "false", "FALSE", "no"), the - * mapping will store `GIT_AUTO_CRLF_FALSE` in the `out` parameter. - * - * The same thing applies for any "true" value such as "true", "yes" or "1", storing - * the `GIT_AUTO_CRLF_TRUE` variable. - * - * Otherwise, if the value matches the string "input" (with case insensitive comparison), - * the given constant will be stored in `out`, and likewise for "default". - * - * If not a single match can be made to store in `out`, an error code will be - * returned. - * - * @param out place to store the result of the mapping - * @param cfg config file to get the variables from - * @param name name of the config variable to lookup - * @param maps array of `git_cvar_map` objects specifying the possible mappings - * @param map_n number of mapping objects in `maps` - * @return 0 on success, error code otherwise - */ -GIT_EXTERN(int) git_config_get_mapped( - int *out, - const git_config *cfg, - const char *name, - const git_cvar_map *maps, - size_t map_n); - -/** - * Maps a string value to an integer constant - * - * @param out place to store the result of the parsing - * @param maps array of `git_cvar_map` objects specifying the possible mappings - * @param map_n number of mapping objects in `maps` - * @param value value to parse - */ -GIT_EXTERN(int) git_config_lookup_map_value( - int *out, - const git_cvar_map *maps, - size_t map_n, - const char *value); - -/** - * Parse a string value as a bool. - * - * Valid values for true are: 'true', 'yes', 'on', 1 or any - * number different from 0 - * Valid values for false are: 'false', 'no', 'off', 0 - * - * @param out place to store the result of the parsing - * @param value value to parse - */ -GIT_EXTERN(int) git_config_parse_bool(int *out, const char *value); - -/** - * Parse a string value as an int32. - * - * An optional value suffix of 'k', 'm', or 'g' will - * cause the value to be multiplied by 1024, 1048576, - * or 1073741824 prior to output. - * - * @param out place to store the result of the parsing - * @param value value to parse - */ -GIT_EXTERN(int) git_config_parse_int32(int32_t *out, const char *value); - -/** - * Parse a string value as an int64. - * - * An optional value suffix of 'k', 'm', or 'g' will - * cause the value to be multiplied by 1024, 1048576, - * or 1073741824 prior to output. - * - * @param out place to store the result of the parsing - * @param value value to parse - */ -GIT_EXTERN(int) git_config_parse_int64(int64_t *out, const char *value); - - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/diff.h b/git2/include/git2/diff.h deleted file mode 100644 index c052f34f8..000000000 --- a/git2/include/git2/diff.h +++ /dev/null @@ -1,853 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_diff_h__ -#define INCLUDE_git_diff_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "tree.h" -#include "refs.h" - -/** - * @file git2/diff.h - * @brief Git tree and file differencing routines. - * - * Overview - * -------- - * - * Calculating diffs is generally done in two phases: building a diff list - * then traversing the diff list. This makes is easier to share logic - * across the various types of diffs (tree vs tree, workdir vs index, etc.), - * and also allows you to insert optional diff list post-processing phases, - * such as rename detected, in between the steps. When you are done with a - * diff list object, it must be freed. - * - * Terminology - * ----------- - * - * To understand the diff APIs, you should know the following terms: - * - * - A `diff` or `diff list` represents the cumulative list of differences - * between two snapshots of a repository (possibly filtered by a set of - * file name patterns). This is the `git_diff_list` object. - * - A `delta` is a file pair with an old and new revision. The old version - * may be absent if the file was just created and the new version may be - * absent if the file was deleted. A diff is mostly just a list of deltas. - * - A `binary` file / delta is a file (or pair) for which no text diffs - * should be generated. A diff list can contain delta entries that are - * binary, but no diff content will be output for those files. There is - * a base heuristic for binary detection and you can further tune the - * behavior with git attributes or diff flags and option settings. - * - A `hunk` is a span of modified lines in a delta along with some stable - * surrounding context. You can configure the amount of context and other - * properties of how hunks are generated. Each hunk also comes with a - * header that described where it starts and ends in both the old and new - * versions in the delta. - * - A `line` is a range of characters inside a hunk. It could be a context - * line (i.e. in both old and new versions), an added line (i.e. only in - * the new version), or a removed line (i.e. only in the old version). - * Unfortunately, we don't know anything about the encoding of data in the - * file being diffed, so we cannot tell you much about the line content. - * Line data will not be NUL-byte terminated, however, because it will be - * just a span of bytes inside the larger file. - * - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Flags for diff options. A combination of these flags can be passed - * in via the `flags` value in the `git_diff_options`. - */ -typedef enum { - /** Normal diff, the default */ - GIT_DIFF_NORMAL = 0, - /** Reverse the sides of the diff */ - GIT_DIFF_REVERSE = (1 << 0), - /** Treat all files as text, disabling binary attributes & detection */ - GIT_DIFF_FORCE_TEXT = (1 << 1), - /** Ignore all whitespace */ - GIT_DIFF_IGNORE_WHITESPACE = (1 << 2), - /** Ignore changes in amount of whitespace */ - GIT_DIFF_IGNORE_WHITESPACE_CHANGE = (1 << 3), - /** Ignore whitespace at end of line */ - GIT_DIFF_IGNORE_WHITESPACE_EOL = (1 << 4), - /** Exclude submodules from the diff completely */ - GIT_DIFF_IGNORE_SUBMODULES = (1 << 5), - /** Use the "patience diff" algorithm (currently unimplemented) */ - GIT_DIFF_PATIENCE = (1 << 6), - /** Include ignored files in the diff list */ - GIT_DIFF_INCLUDE_IGNORED = (1 << 7), - /** Include untracked files in the diff list */ - GIT_DIFF_INCLUDE_UNTRACKED = (1 << 8), - /** Include unmodified files in the diff list */ - GIT_DIFF_INCLUDE_UNMODIFIED = (1 << 9), - /** Even with the GIT_DIFF_INCLUDE_UNTRACKED flag, when an untracked - * directory is found, only a single entry for the directory is added - * to the diff list; with this flag, all files under the directory will - * be included, too. - */ - GIT_DIFF_RECURSE_UNTRACKED_DIRS = (1 << 10), - /** If the pathspec is set in the diff options, this flags means to - * apply it as an exact match instead of as an fnmatch pattern. - */ - GIT_DIFF_DISABLE_PATHSPEC_MATCH = (1 << 11), - /** Use case insensitive filename comparisons */ - GIT_DIFF_DELTAS_ARE_ICASE = (1 << 12), - /** When generating patch text, include the content of untracked files */ - GIT_DIFF_INCLUDE_UNTRACKED_CONTENT = (1 << 13), - /** Disable updating of the `binary` flag in delta records. This is - * useful when iterating over a diff if you don't need hunk and data - * callbacks and want to avoid having to load file completely. - */ - GIT_DIFF_SKIP_BINARY_CHECK = (1 << 14), - /** Normally, a type change between files will be converted into a - * DELETED record for the old and an ADDED record for the new; this - * options enabled the generation of TYPECHANGE delta records. - */ - GIT_DIFF_INCLUDE_TYPECHANGE = (1 << 15), - /** Even with GIT_DIFF_INCLUDE_TYPECHANGE, blob->tree changes still - * generally show as a DELETED blob. This flag tries to correctly - * label blob->tree transitions as TYPECHANGE records with new_file's - * mode set to tree. Note: the tree SHA will not be available. - */ - GIT_DIFF_INCLUDE_TYPECHANGE_TREES = (1 << 16), - /** Ignore file mode changes */ - GIT_DIFF_IGNORE_FILEMODE = (1 << 17), -} git_diff_option_t; - -/** - * Structure describing options about how the diff should be executed. - * - * Setting all values of the structure to zero will yield the default - * values. Similarly, passing NULL for the options structure will - * give the defaults. The default values are marked below. - * - * - `flags` is a combination of the `git_diff_option_t` values above - * - `context_lines` is the number of unchanged lines that define the - * boundary of a hunk (and to display before and after) - * - `interhunk_lines` is the maximum number of unchanged lines between - * hunk boundaries before the hunks will be merged into a one. - * - `old_prefix` is the virtual "directory" to prefix to old file names - * in hunk headers (default "a") - * - `new_prefix` is the virtual "directory" to prefix to new file names - * in hunk headers (default "b") - * - `pathspec` is an array of paths / fnmatch patterns to constrain diff - * - `max_size` is a file size (in bytes) above which a blob will be marked - * as binary automatically; pass a negative value to disable. - */ -typedef struct { - unsigned int version; /**< version for the struct */ - uint32_t flags; /**< defaults to GIT_DIFF_NORMAL */ - uint16_t context_lines; /**< defaults to 3 */ - uint16_t interhunk_lines; /**< defaults to 0 */ - const char *old_prefix; /**< defaults to "a" */ - const char *new_prefix; /**< defaults to "b" */ - git_strarray pathspec; /**< defaults to include all paths */ - git_off_t max_size; /**< defaults to 512MB */ -} git_diff_options; - -#define GIT_DIFF_OPTIONS_VERSION 1 -#define GIT_DIFF_OPTIONS_INIT {GIT_DIFF_OPTIONS_VERSION} - -/** - * The diff list object that contains all individual file deltas. - * - * This is an opaque structure which will be allocated by one of the diff - * generator functions below (such as `git_diff_tree_to_tree`). You are - * responsible for releasing the object memory when done, using the - * `git_diff_list_free()` function. - */ -typedef struct git_diff_list git_diff_list; - -/** - * Flags for the file object on each side of a diff. - * - * Note: most of these flags are just for **internal** consumption by - * libgit2, but some of them may be interesting to external users. - */ -typedef enum { - GIT_DIFF_FILE_VALID_OID = (1 << 0), /** `oid` value is known correct */ - GIT_DIFF_FILE_FREE_PATH = (1 << 1), /** `path` is allocated memory */ - GIT_DIFF_FILE_BINARY = (1 << 2), /** should be considered binary data */ - GIT_DIFF_FILE_NOT_BINARY = (1 << 3), /** should be considered text data */ - GIT_DIFF_FILE_FREE_DATA = (1 << 4), /** internal file data is allocated */ - GIT_DIFF_FILE_UNMAP_DATA = (1 << 5), /** internal file data is mmap'ed */ - GIT_DIFF_FILE_NO_DATA = (1 << 6), /** file data should not be loaded */ -} git_diff_file_flag_t; - -/** - * What type of change is described by a git_diff_delta? - * - * `GIT_DELTA_RENAMED` and `GIT_DELTA_COPIED` will only show up if you run - * `git_diff_find_similar()` on the diff list object. - * - * `GIT_DELTA_TYPECHANGE` only shows up given `GIT_DIFF_INCLUDE_TYPECHANGE` - * in the option flags (otherwise type changes will be split into ADDED / - * DELETED pairs). - */ -typedef enum { - GIT_DELTA_UNMODIFIED = 0, /** no changes */ - GIT_DELTA_ADDED = 1, /** entry does not exist in old version */ - GIT_DELTA_DELETED = 2, /** entry does not exist in new version */ - GIT_DELTA_MODIFIED = 3, /** entry content changed between old and new */ - GIT_DELTA_RENAMED = 4, /** entry was renamed between old and new */ - GIT_DELTA_COPIED = 5, /** entry was copied from another old entry */ - GIT_DELTA_IGNORED = 6, /** entry is ignored item in workdir */ - GIT_DELTA_UNTRACKED = 7, /** entry is untracked item in workdir */ - GIT_DELTA_TYPECHANGE = 8, /** type of entry changed between old and new */ -} git_delta_t; - -/** - * Description of one side of a diff entry. - * - * Although this is called a "file", it may actually represent a file, a - * symbolic link, a submodule commit id, or even a tree (although that only - * if you are tracking type changes or ignored/untracked directories). - * - * The `oid` is the `git_oid` of the item. If the entry represents an - * absent side of a diff (e.g. the `old_file` of a `GIT_DELTA_ADDED` delta), - * then the oid will be zeroes. - * - * `path` is the NUL-terminated path to the entry relative to the working - * directory of the repository. - * - * `size` is the size of the entry in bytes. - * - * `flags` is a combination of the `git_diff_file_flag_t` types, but those - * are largely internal values. - * - * `mode` is, roughly, the stat() `st_mode` value for the item. This will - * be restricted to one of the `git_filemode_t` values. - */ -typedef struct { - git_oid oid; - const char *path; - git_off_t size; - unsigned int flags; - uint16_t mode; -} git_diff_file; - -/** - * Description of changes to one entry. - * - * When iterating over a diff list object, this will be passed to most - * callback functions and you can use the contents to understand exactly - * what has changed. - * - * The `old_file` represents the "from" side of the diff and the `new_file` - * represents to "to" side of the diff. What those means depend on the - * function that was used to generate the diff and will be documented below. - * You can also use the `GIT_DIFF_REVERSE` flag to flip it around. - * - * Although the two sides of the delta are named "old_file" and "new_file", - * they actually may correspond to entries that represent a file, a symbolic - * link, a submodule commit id, or even a tree (if you are tracking type - * changes or ignored/untracked directories). - * - * Under some circumstances, in the name of efficiency, not all fields will - * be filled in, but we generally try to fill in as much as possible. One - * example is that the "binary" field will not examine file contents if you - * do not pass in hunk and/or line callbacks to the diff foreach iteration - * function. It will just use the git attributes for those files. - */ -typedef struct { - git_diff_file old_file; - git_diff_file new_file; - git_delta_t status; - unsigned int similarity; /**< for RENAMED and COPIED, value 0-100 */ - int binary; -} git_diff_delta; - -/** - * When iterating over a diff, callback that will be made per file. - * - * @param delta A pointer to the delta data for the file - * @param progress Goes from 0 to 1 over the diff list - * @param payload User-specified pointer from foreach function - */ -typedef int (*git_diff_file_cb)( - const git_diff_delta *delta, - float progress, - void *payload); - -/** - * Structure describing a hunk of a diff. - */ -typedef struct { - int old_start; /** Starting line number in old_file */ - int old_lines; /** Number of lines in old_file */ - int new_start; /** Starting line number in new_file */ - int new_lines; /** Number of lines in new_file */ -} git_diff_range; - -/** - * When iterating over a diff, callback that will be made per hunk. - */ -typedef int (*git_diff_hunk_cb)( - const git_diff_delta *delta, - const git_diff_range *range, - const char *header, - size_t header_len, - void *payload); - -/** - * Line origin constants. - * - * These values describe where a line came from and will be passed to - * the git_diff_data_cb when iterating over a diff. There are some - * special origin constants at the end that are used for the text - * output callbacks to demarcate lines that are actually part of - * the file or hunk headers. - */ -typedef enum { - /* These values will be sent to `git_diff_data_cb` along with the line */ - GIT_DIFF_LINE_CONTEXT = ' ', - GIT_DIFF_LINE_ADDITION = '+', - GIT_DIFF_LINE_DELETION = '-', - GIT_DIFF_LINE_ADD_EOFNL = '\n', /**< Removed line w/o LF & added one with */ - GIT_DIFF_LINE_DEL_EOFNL = '\0', /**< LF was removed at end of file */ - - /* The following values will only be sent to a `git_diff_data_cb` when - * the content of a diff is being formatted (eg. through - * git_diff_print_patch() or git_diff_print_compact(), for instance). - */ - GIT_DIFF_LINE_FILE_HDR = 'F', - GIT_DIFF_LINE_HUNK_HDR = 'H', - GIT_DIFF_LINE_BINARY = 'B' -} git_diff_line_t; - -/** - * When iterating over a diff, callback that will be made per text diff - * line. In this context, the provided range will be NULL. - * - * When printing a diff, callback that will be made to output each line - * of text. This uses some extra GIT_DIFF_LINE_... constants for output - * of lines of file and hunk headers. - */ -typedef int (*git_diff_data_cb)( - const git_diff_delta *delta, /** delta that contains this data */ - const git_diff_range *range, /** range of lines containing this data */ - char line_origin, /** git_diff_list_t value from above */ - const char *content, /** diff data - not NUL terminated */ - size_t content_len, /** number of bytes of diff data */ - void *payload); /** user reference data */ - -/** - * The diff patch is used to store all the text diffs for a delta. - * - * You can easily loop over the content of patches and get information about - * them. - */ -typedef struct git_diff_patch git_diff_patch; - -/** - * Flags to control the behavior of diff rename/copy detection. - */ -typedef enum { - /** look for renames? (`--find-renames`) */ - GIT_DIFF_FIND_RENAMES = (1 << 0), - /** consider old size of modified for renames? (`--break-rewrites=N`) */ - GIT_DIFF_FIND_RENAMES_FROM_REWRITES = (1 << 1), - - /** look for copies? (a la `--find-copies`) */ - GIT_DIFF_FIND_COPIES = (1 << 2), - /** consider unmodified as copy sources? (`--find-copies-harder`) */ - GIT_DIFF_FIND_COPIES_FROM_UNMODIFIED = (1 << 3), - - /** split large rewrites into delete/add pairs (`--break-rewrites=/M`) */ - GIT_DIFF_FIND_AND_BREAK_REWRITES = (1 << 4), -} git_diff_find_t; - -/** - * Control behavior of rename and copy detection - */ -typedef struct { - unsigned int version; - - /** Combination of git_diff_find_t values (default FIND_RENAMES) */ - unsigned int flags; - - /** Similarity to consider a file renamed (default 50) */ - unsigned int rename_threshold; - /** Similarity of modified to be eligible rename source (default 50) */ - unsigned int rename_from_rewrite_threshold; - /** Similarity to consider a file a copy (default 50) */ - unsigned int copy_threshold; - /** Similarity to split modify into delete/add pair (default 60) */ - unsigned int break_rewrite_threshold; - - /** Maximum similarity sources to examine (a la diff's `-l` option or - * the `diff.renameLimit` config) (default 200) - */ - unsigned int target_limit; -} git_diff_find_options; - -#define GIT_DIFF_FIND_OPTIONS_VERSION 1 -#define GIT_DIFF_FIND_OPTIONS_INIT {GIT_DIFF_FIND_OPTIONS_VERSION} - -/** @name Diff List Generator Functions - * - * These are the functions you would use to create (or destroy) a - * git_diff_list from various objects in a repository. - */ -/**@{*/ - -/** - * Deallocate a diff list. - */ -GIT_EXTERN(void) git_diff_list_free(git_diff_list *diff); - -/** - * Create a diff list with the difference between two tree objects. - * - * This is equivalent to `git diff ` - * - * The first tree will be used for the "old_file" side of the delta and the - * second tree will be used for the "new_file" side of the delta. - * - * @param diff Output pointer to a git_diff_list pointer to be allocated. - * @param repo The repository containing the trees. - * @param old_tree A git_tree object to diff from. - * @param new_tree A git_tree object to diff to. - * @param opts Structure with options to influence diff or NULL for defaults. - */ -GIT_EXTERN(int) git_diff_tree_to_tree( - git_diff_list **diff, - git_repository *repo, - git_tree *old_tree, - git_tree *new_tree, - const git_diff_options *opts); /**< can be NULL for defaults */ - -/** - * Create a diff list between a tree and repository index. - * - * This is equivalent to `git diff --cached ` or if you pass - * the HEAD tree, then like `git diff --cached`. - * - * The tree you pass will be used for the "old_file" side of the delta, and - * the index will be used for the "new_file" side of the delta. - * - * @param diff Output pointer to a git_diff_list pointer to be allocated. - * @param repo The repository containing the tree and index. - * @param old_tree A git_tree object to diff from. - * @param index The index to diff with; repo index used if NULL. - * @param opts Structure with options to influence diff or NULL for defaults. - */ -GIT_EXTERN(int) git_diff_tree_to_index( - git_diff_list **diff, - git_repository *repo, - git_tree *old_tree, - git_index *index, - const git_diff_options *opts); /**< can be NULL for defaults */ - -/** - * Create a diff list between the repository index and the workdir directory. - * - * This matches the `git diff` command. See the note below on - * `git_diff_tree_to_workdir` for a discussion of the difference between - * `git diff` and `git diff HEAD` and how to emulate a `git diff ` - * using libgit2. - * - * The index will be used for the "old_file" side of the delta, and the - * working directory will be used for the "new_file" side of the delta. - * - * @param diff Output pointer to a git_diff_list pointer to be allocated. - * @param repo The repository. - * @param index The index to diff from; repo index used if NULL. - * @param opts Structure with options to influence diff or NULL for defaults. - */ -GIT_EXTERN(int) git_diff_index_to_workdir( - git_diff_list **diff, - git_repository *repo, - git_index *index, - const git_diff_options *opts); /**< can be NULL for defaults */ - -/** - * Create a diff list between a tree and the working directory. - * - * The tree you provide will be used for the "old_file" side of the delta, - * and the working directory will be used for the "new_file" side. - * - * Please note: this is *NOT* the same as `git diff `. Running - * `git diff HEAD` or the like actually uses information from the index, - * along with the tree and working directory info. - * - * This function returns strictly the differences between the tree and the - * files contained in the working directory, regardless of the state of - * files in the index. It may come as a surprise, but there is no direct - * equivalent in core git. - * - * To emulate `git diff `, call both `git_diff_tree_to_index` and - * `git_diff_index_to_workdir`, then call `git_diff_merge` on the results. - * That will yield a `git_diff_list` that matches the git output. - * - * If this seems confusing, take the case of a file with a staged deletion - * where the file has then been put back into the working dir and modified. - * The tree-to-workdir diff for that file is 'modified', but core git would - * show status 'deleted' since there is a pending deletion in the index. - * - * @param diff A pointer to a git_diff_list pointer that will be allocated. - * @param repo The repository containing the tree. - * @param old_tree A git_tree object to diff from. - * @param opts Structure with options to influence diff or NULL for defaults. - */ -GIT_EXTERN(int) git_diff_tree_to_workdir( - git_diff_list **diff, - git_repository *repo, - git_tree *old_tree, - const git_diff_options *opts); /**< can be NULL for defaults */ - -/** - * Merge one diff list into another. - * - * This merges items from the "from" list into the "onto" list. The - * resulting diff list will have all items that appear in either list. - * If an item appears in both lists, then it will be "merged" to appear - * as if the old version was from the "onto" list and the new version - * is from the "from" list (with the exception that if the item has a - * pending DELETE in the middle, then it will show as deleted). - * - * @param onto Diff to merge into. - * @param from Diff to merge. - */ -GIT_EXTERN(int) git_diff_merge( - git_diff_list *onto, - const git_diff_list *from); - -/** - * Transform a diff list marking file renames, copies, etc. - * - * This modifies a diff list in place, replacing old entries that look - * like renames or copies with new entries reflecting those changes. - * This also will, if requested, break modified files into add/remove - * pairs if the amount of change is above a threshold. - * - * @param diff Diff list to run detection algorithms on - * @param options Control how detection should be run, NULL for defaults - * @return 0 on success, -1 on failure - */ -GIT_EXTERN(int) git_diff_find_similar( - git_diff_list *diff, - git_diff_find_options *options); - -/**@}*/ - - -/** @name Diff List Processor Functions - * - * These are the functions you apply to a diff list to process it - * or read it in some way. - */ -/**@{*/ - -/** - * Loop over all deltas in a diff list issuing callbacks. - * - * This will iterate through all of the files described in a diff. You - * should provide a file callback to learn about each file. - * - * The "hunk" and "line" callbacks are optional, and the text diff of the - * files will only be calculated if they are not NULL. Of course, these - * callbacks will not be invoked for binary files on the diff list or for - * files whose only changed is a file mode change. - * - * Returning a non-zero value from any of the callbacks will terminate - * the iteration and cause this return `GIT_EUSER`. - * - * @param diff A git_diff_list generated by one of the above functions. - * @param file_cb Callback function to make per file in the diff. - * @param hunk_cb Optional callback to make per hunk of text diff. This - * callback is called to describe a range of lines in the - * diff. It will not be issued for binary files. - * @param line_cb Optional callback to make per line of diff text. This - * same callback will be made for context lines, added, and - * removed lines, and even for a deleted trailing newline. - * @param payload Reference pointer that will be passed to your callbacks. - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_foreach( - git_diff_list *diff, - git_diff_file_cb file_cb, - git_diff_hunk_cb hunk_cb, - git_diff_data_cb line_cb, - void *payload); - -/** - * Iterate over a diff generating text output like "git diff --name-status". - * - * Returning a non-zero value from the callbacks will terminate the - * iteration and cause this return `GIT_EUSER`. - * - * @param diff A git_diff_list generated by one of the above functions. - * @param print_cb Callback to make per line of diff text. - * @param payload Reference pointer that will be passed to your callback. - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_print_compact( - git_diff_list *diff, - git_diff_data_cb print_cb, - void *payload); - -/** - * Look up the single character abbreviation for a delta status code. - * - * When you call `git_diff_print_compact` it prints single letter codes into - * the output such as 'A' for added, 'D' for deleted, 'M' for modified, etc. - * It is sometimes convenient to convert a git_delta_t value into these - * letters for your own purposes. This function does just that. By the - * way, unmodified will return a space (i.e. ' '). - * - * @param delta_t The git_delta_t value to look up - * @return The single character label for that code - */ -GIT_EXTERN(char) git_diff_status_char(git_delta_t status); - -/** - * Iterate over a diff generating text output like "git diff". - * - * This is a super easy way to generate a patch from a diff. - * - * Returning a non-zero value from the callbacks will terminate the - * iteration and cause this return `GIT_EUSER`. - * - * @param diff A git_diff_list generated by one of the above functions. - * @param payload Reference pointer that will be passed to your callbacks. - * @param print_cb Callback function to output lines of the diff. This - * same function will be called for file headers, hunk - * headers, and diff lines. Fortunately, you can probably - * use various GIT_DIFF_LINE constants to determine what - * text you are given. - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_print_patch( - git_diff_list *diff, - git_diff_data_cb print_cb, - void *payload); - -/** - * Query how many diff records are there in a diff list. - * - * @param diff A git_diff_list generated by one of the above functions - * @return Count of number of deltas in the list - */ -GIT_EXTERN(size_t) git_diff_num_deltas(git_diff_list *diff); - -/** - * Query how many diff deltas are there in a diff list filtered by type. - * - * This works just like `git_diff_entrycount()` with an extra parameter - * that is a `git_delta_t` and returns just the count of how many deltas - * match that particular type. - * - * @param diff A git_diff_list generated by one of the above functions - * @param type A git_delta_t value to filter the count - * @return Count of number of deltas matching delta_t type - */ -GIT_EXTERN(size_t) git_diff_num_deltas_of_type( - git_diff_list *diff, - git_delta_t type); - -/** - * Return the diff delta and patch for an entry in the diff list. - * - * The `git_diff_patch` is a newly created object contains the text diffs - * for the delta. You have to call `git_diff_patch_free()` when you are - * done with it. You can use the patch object to loop over all the hunks - * and lines in the diff of the one delta. - * - * For an unchanged file or a binary file, no `git_diff_patch` will be - * created, the output will be set to NULL, and the `binary` flag will be - * set true in the `git_diff_delta` structure. - * - * The `git_diff_delta` pointer points to internal data and you do not have - * to release it when you are done with it. It will go away when the - * `git_diff_list` and `git_diff_patch` go away. - * - * It is okay to pass NULL for either of the output parameters; if you pass - * NULL for the `git_diff_patch`, then the text diff will not be calculated. - * - * @param patch_out Output parameter for the delta patch object - * @param delta_out Output parameter for the delta object - * @param diff Diff list object - * @param idx Index into diff list - * @return 0 on success, other value < 0 on error - */ -GIT_EXTERN(int) git_diff_get_patch( - git_diff_patch **patch_out, - const git_diff_delta **delta_out, - git_diff_list *diff, - size_t idx); - -/** - * Free a git_diff_patch object. - */ -GIT_EXTERN(void) git_diff_patch_free( - git_diff_patch *patch); - -/** - * Get the delta associated with a patch - */ -GIT_EXTERN(const git_diff_delta *) git_diff_patch_delta( - git_diff_patch *patch); - -/** - * Get the number of hunks in a patch - */ -GIT_EXTERN(size_t) git_diff_patch_num_hunks( - git_diff_patch *patch); - -/** - * Get the information about a hunk in a patch - * - * Given a patch and a hunk index into the patch, this returns detailed - * information about that hunk. Any of the output pointers can be passed - * as NULL if you don't care about that particular piece of information. - * - * @param range Output pointer to git_diff_range of hunk - * @param header Output pointer to header string for hunk. Unlike the - * content pointer for each line, this will be NUL-terminated - * @param header_len Output value of characters in header string - * @param lines_in_hunk Output count of total lines in this hunk - * @param patch Input pointer to patch object - * @param hunk_idx Input index of hunk to get information about - * @return 0 on success, GIT_ENOTFOUND if hunk_idx out of range, <0 on error - */ -GIT_EXTERN(int) git_diff_patch_get_hunk( - const git_diff_range **range, - const char **header, - size_t *header_len, - size_t *lines_in_hunk, - git_diff_patch *patch, - size_t hunk_idx); - -/** - * Get the number of lines in a hunk. - * - * @param patch The git_diff_patch object - * @param hunk_idx Index of the hunk - * @return Number of lines in hunk or -1 if invalid hunk index - */ -GIT_EXTERN(int) git_diff_patch_num_lines_in_hunk( - git_diff_patch *patch, - size_t hunk_idx); - -/** - * Get data about a line in a hunk of a patch. - * - * Given a patch, a hunk index, and a line index in the hunk, this - * will return a lot of details about that line. If you pass a hunk - * index larger than the number of hunks or a line index larger than - * the number of lines in the hunk, this will return -1. - * - * @param line_origin A GIT_DIFF_LINE constant from above - * @param content Pointer to content of diff line, not NUL-terminated - * @param content_len Number of characters in content - * @param old_lineno Line number in old file or -1 if line is added - * @param new_lineno Line number in new file or -1 if line is deleted - * @param patch The patch to look in - * @param hunk_idx The index of the hunk - * @param line_of_index The index of the line in the hunk - * @return 0 on success, <0 on failure - */ -GIT_EXTERN(int) git_diff_patch_get_line_in_hunk( - char *line_origin, - const char **content, - size_t *content_len, - int *old_lineno, - int *new_lineno, - git_diff_patch *patch, - size_t hunk_idx, - size_t line_of_hunk); - -/** - * Serialize the patch to text via callback. - * - * Returning a non-zero value from the callback will terminate the iteration - * and cause this return `GIT_EUSER`. - * - * @param patch A git_diff_patch representing changes to one file - * @param print_cb Callback function to output lines of the patch. Will be - * called for file headers, hunk headers, and diff lines. - * @param payload Reference pointer that will be passed to your callbacks. - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_patch_print( - git_diff_patch *patch, - git_diff_data_cb print_cb, - void *payload); - -/** - * Get the content of a patch as a single diff text. - * - * @param string Allocated string; caller must free. - * @param patch A git_diff_patch representing changes to one file - * @return 0 on success, <0 on failure. - */ -GIT_EXTERN(int) git_diff_patch_to_str( - char **string, - git_diff_patch *patch); - -/**@}*/ - - -/* - * Misc - */ - -/** - * Directly run a diff on two blobs. - * - * Compared to a file, a blob lacks some contextual information. As such, - * the `git_diff_file` given to the callback will have some fake data; i.e. - * `mode` will be 0 and `path` will be NULL. - * - * NULL is allowed for either `old_blob` or `new_blob` and will be treated - * as an empty blob, with the `oid` set to NULL in the `git_diff_file` data. - * - * We do run a binary content check on the two blobs and if either of the - * blobs looks like binary data, the `git_diff_delta` binary attribute will - * be set to 1 and no call to the hunk_cb nor line_cb will be made (unless - * you pass `GIT_DIFF_FORCE_TEXT` of course). - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_blobs( - const git_blob *old_blob, - const git_blob *new_blob, - const git_diff_options *options, - git_diff_file_cb file_cb, - git_diff_hunk_cb hunk_cb, - git_diff_data_cb line_cb, - void *payload); - -/** - * Directly run a diff between a blob and a buffer. - * - * As with `git_diff_blobs`, comparing a blob and buffer lacks some context, - * so the `git_diff_file` parameters to the callbacks will be faked a la the - * rules for `git_diff_blobs()`. - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_diff_blob_to_buffer( - const git_blob *old_blob, - const char *buffer, - size_t buffer_len, - const git_diff_options *options, - git_diff_file_cb file_cb, - git_diff_hunk_cb hunk_cb, - git_diff_data_cb data_cb, - void *payload); - -GIT_END_DECL - -/** @} */ - -#endif diff --git a/git2/include/git2/errors.h b/git2/include/git2/errors.h deleted file mode 100644 index 9e0a1a9e6..000000000 --- a/git2/include/git2/errors.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_errors_h__ -#define INCLUDE_git_errors_h__ - -#include "common.h" - -/** - * @file git2/errors.h - * @brief Git error handling routines and variables - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** Generic return codes */ -enum { - GIT_OK = 0, - GIT_ERROR = -1, - GIT_ENOTFOUND = -3, - GIT_EEXISTS = -4, - GIT_EAMBIGUOUS = -5, - GIT_EBUFS = -6, - GIT_EUSER = -7, - GIT_EBAREREPO = -8, - GIT_EORPHANEDHEAD = -9, - GIT_EUNMERGED = -10, - GIT_ENONFASTFORWARD = -11, - GIT_EINVALIDSPEC = -12, - - GIT_PASSTHROUGH = -30, - GIT_ITEROVER = -31, -}; - -typedef struct { - char *message; - int klass; -} git_error; - -/** Error classes */ -typedef enum { - GITERR_NOMEMORY, - GITERR_OS, - GITERR_INVALID, - GITERR_REFERENCE, - GITERR_ZLIB, - GITERR_REPOSITORY, - GITERR_CONFIG, - GITERR_REGEX, - GITERR_ODB, - GITERR_INDEX, - GITERR_OBJECT, - GITERR_NET, - GITERR_TAG, - GITERR_TREE, - GITERR_INDEXER, - GITERR_SSL, - GITERR_SUBMODULE, - GITERR_THREAD, - GITERR_STASH, - GITERR_CHECKOUT, - GITERR_FETCHHEAD, - GITERR_MERGE, -} git_error_t; - -/** - * Return the last `git_error` object that was generated for the - * current thread or NULL if no error has occurred. - * - * @return A git_error object. - */ -GIT_EXTERN(const git_error *) giterr_last(void); - -/** - * Clear the last library error that occurred for this thread. - */ -GIT_EXTERN(void) giterr_clear(void); - -/** - * Set the error message string for this thread. - * - * This function is public so that custom ODB backends and the like can - * relay an error message through libgit2. Most regular users of libgit2 - * will never need to call this function -- actually, calling it in most - * circumstances (for example, calling from within a callback function) - * will just end up having the value overwritten by libgit2 internals. - * - * This error message is stored in thread-local storage and only applies - * to the particular thread that this libgit2 call is made from. - * - * NOTE: Passing the `error_class` as GITERR_OS has a special behavior: we - * attempt to append the system default error message for the last OS error - * that occurred and then clear the last error. The specific implementation - * of looking up and clearing this last OS error will vary by platform. - * - * @param error_class One of the `git_error_t` enum above describing the - * general subsystem that is responsible for the error. - * @param message The formatted error message to keep - */ -GIT_EXTERN(void) giterr_set_str(int error_class, const char *string); - -/** - * Set the error message to a special value for memory allocation failure. - * - * The normal `giterr_set_str()` function attempts to `strdup()` the string - * that is passed in. This is not a good idea when the error in question - * is a memory allocation failure. That circumstance has a special setter - * function that sets the error string to a known and statically allocated - * internal value. - */ -GIT_EXTERN(void) giterr_set_oom(void); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/graph.h b/git2/include/git2/graph.h deleted file mode 100644 index 5850aa6e2..000000000 --- a/git2/include/git2/graph.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_graph_h__ -#define INCLUDE_git_graph_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/graph.h - * @brief Git graph traversal routines - * @defgroup git_revwalk Git graph traversal routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Count the number of unique commits between two commit objects - * - * @param ahead number of commits, starting at `one`, unique from commits in `two` - * @param behind number of commits, starting at `two`, unique from commits in `one` - * @param repo the repository where the commits exist - * @param one one of the commits - * @param two the other commit - */ -GIT_EXTERN(int) git_graph_ahead_behind(size_t *ahead, size_t *behind, git_repository *repo, const git_oid *one, const git_oid *two); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/ignore.h b/git2/include/git2/ignore.h deleted file mode 100644 index d0c1877a8..000000000 --- a/git2/include/git2/ignore.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_ignore_h__ -#define INCLUDE_git_ignore_h__ - -#include "common.h" -#include "types.h" - -GIT_BEGIN_DECL - -/** - * Add ignore rules for a repository. - * - * Excludesfile rules (i.e. .gitignore rules) are generally read from - * .gitignore files in the repository tree or from a shared system file - * only if a "core.excludesfile" config value is set. The library also - * keeps a set of per-repository internal ignores that can be configured - * in-memory and will not persist. This function allows you to add to - * that internal rules list. - * - * Example usage: - * - * error = git_ignore_add_rule(myrepo, "*.c\ndir/\nFile with space\n"); - * - * This would add three rules to the ignores. - * - * @param repo The repository to add ignore rules to. - * @param rules Text of rules, a la the contents of a .gitignore file. - * It is okay to have multiple rules in the text; if so, - * each rule should be terminated with a newline. - * @return 0 on success - */ -GIT_EXTERN(int) git_ignore_add_rule( - git_repository *repo, - const char *rules); - -/** - * Clear ignore rules that were explicitly added. - * - * Resets to the default internal ignore rules. This will not turn off - * rules in .gitignore files that actually exist in the filesystem. - * - * The default internal ignores ignore ".", ".." and ".git" entries. - * - * @param repo The repository to remove ignore rules from. - * @return 0 on success - */ -GIT_EXTERN(int) git_ignore_clear_internal_rules( - git_repository *repo); - -/** - * Test if the ignore rules apply to a given path. - * - * This function checks the ignore rules to see if they would apply to the - * given file. This indicates if the file would be ignored regardless of - * whether the file is already in the index or committed to the repository. - * - * One way to think of this is if you were to do "git add ." on the - * directory containing the file, would it be added or not? - * - * @param ignored boolean returning 0 if the file is not ignored, 1 if it is - * @param repo a repository object - * @param path the file to check ignores for, relative to the repo's workdir. - * @return 0 if ignore rules could be processed for the file (regardless - * of whether it exists or not), or an error < 0 if they could not. - */ -GIT_EXTERN(int) git_ignore_path_is_ignored( - int *ignored, - git_repository *repo, - const char *path); - -GIT_END_DECL - -#endif diff --git a/git2/include/git2/index.h b/git2/include/git2/index.h deleted file mode 100644 index 2df5103fd..000000000 --- a/git2/include/git2/index.h +++ /dev/null @@ -1,552 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_index_h__ -#define INCLUDE_git_index_h__ - -#include "common.h" -#include "indexer.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/index.h - * @brief Git index parsing and manipulation routines - * @defgroup git_index Git index parsing and manipulation routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -#define GIT_IDXENTRY_NAMEMASK (0x0fff) -#define GIT_IDXENTRY_STAGEMASK (0x3000) -#define GIT_IDXENTRY_EXTENDED (0x4000) -#define GIT_IDXENTRY_VALID (0x8000) -#define GIT_IDXENTRY_STAGESHIFT 12 - -/* - * Flags are divided into two parts: in-memory flags and - * on-disk ones. Flags in GIT_IDXENTRY_EXTENDED_FLAGS - * will get saved on-disk. - * - * In-memory only flags: - */ -#define GIT_IDXENTRY_UPDATE (1 << 0) -#define GIT_IDXENTRY_REMOVE (1 << 1) -#define GIT_IDXENTRY_UPTODATE (1 << 2) -#define GIT_IDXENTRY_ADDED (1 << 3) - -#define GIT_IDXENTRY_HASHED (1 << 4) -#define GIT_IDXENTRY_UNHASHED (1 << 5) -#define GIT_IDXENTRY_WT_REMOVE (1 << 6) /* remove in work directory */ -#define GIT_IDXENTRY_CONFLICTED (1 << 7) - -#define GIT_IDXENTRY_UNPACKED (1 << 8) -#define GIT_IDXENTRY_NEW_SKIP_WORKTREE (1 << 9) - -/* - * Extended on-disk flags: - */ -#define GIT_IDXENTRY_INTENT_TO_ADD (1 << 13) -#define GIT_IDXENTRY_SKIP_WORKTREE (1 << 14) -/* GIT_IDXENTRY_EXTENDED2 is for future extension */ -#define GIT_IDXENTRY_EXTENDED2 (1 << 15) - -#define GIT_IDXENTRY_EXTENDED_FLAGS (GIT_IDXENTRY_INTENT_TO_ADD | GIT_IDXENTRY_SKIP_WORKTREE) - -/** Time used in a git index entry */ -typedef struct { - git_time_t seconds; - /* nsec should not be stored as time_t compatible */ - unsigned int nanoseconds; -} git_index_time; - -/** Memory representation of a file entry in the index. */ -typedef struct git_index_entry { - git_index_time ctime; - git_index_time mtime; - - unsigned int dev; - unsigned int ino; - unsigned int mode; - unsigned int uid; - unsigned int gid; - git_off_t file_size; - - git_oid oid; - - unsigned short flags; - unsigned short flags_extended; - - char *path; -} git_index_entry; - -/** Representation of a resolve undo entry in the index. */ -typedef struct git_index_reuc_entry { - unsigned int mode[3]; - git_oid oid[3]; - char *path; -} git_index_reuc_entry; - -/** Capabilities of system that affect index actions. */ -enum { - GIT_INDEXCAP_IGNORE_CASE = 1, - GIT_INDEXCAP_NO_FILEMODE = 2, - GIT_INDEXCAP_NO_SYMLINKS = 4, - GIT_INDEXCAP_FROM_OWNER = ~0u -}; - -/** @name Index File Functions - * - * These functions work on the index file itself. - */ -/**@{*/ - -/** - * Create a new bare Git index object as a memory representation - * of the Git index file in 'index_path', without a repository - * to back it. - * - * Since there is no ODB or working directory behind this index, - * any Index methods which rely on these (e.g. index_add) will - * fail with the GIT_EBAREINDEX error code. - * - * If you need to access the index of an actual repository, - * use the `git_repository_index` wrapper. - * - * The index must be freed once it's no longer in use. - * - * @param out the pointer for the new index - * @param index_path the path to the index file in disk - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_open(git_index **out, const char *index_path); - -/** - * Create an in-memory index object. - * - * This index object cannot be read/written to the filesystem, - * but may be used to perform in-memory index operations. - * - * The index must be freed once it's no longer in use. - * - * @param out the pointer for the new index - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_new(git_index **out); - -/** - * Free an existing index object. - * - * @param index an existing index object - */ -GIT_EXTERN(void) git_index_free(git_index *index); - -/** - * Get the repository this index relates to - * - * @param index The index - * @return A pointer to the repository - */ -GIT_EXTERN(git_repository *) git_index_owner(const git_index *index); - -/** - * Read index capabilities flags. - * - * @param index An existing index object - * @return A combination of GIT_INDEXCAP values - */ -GIT_EXTERN(unsigned int) git_index_caps(const git_index *index); - -/** - * Set index capabilities flags. - * - * If you pass `GIT_INDEXCAP_FROM_OWNER` for the caps, then the - * capabilities will be read from the config of the owner object, - * looking at `core.ignorecase`, `core.filemode`, `core.symlinks`. - * - * @param index An existing index object - * @param caps A combination of GIT_INDEXCAP values - * @return 0 on success, -1 on failure - */ -GIT_EXTERN(int) git_index_set_caps(git_index *index, unsigned int caps); - -/** - * Update the contents of an existing index object in memory - * by reading from the hard disk. - * - * @param index an existing index object - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_read(git_index *index); - -/** - * Write an existing index object from memory back to disk - * using an atomic file lock. - * - * @param index an existing index object - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_write(git_index *index); - -/** - * Read a tree into the index file with stats - * - * The current index contents will be replaced by the specified tree. - * - * @param index an existing index object - * @param tree tree to read - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_read_tree(git_index *index, const git_tree *tree); - -/** - * Write the index as a tree - * - * This method will scan the index and write a representation - * of its current state back to disk; it recursively creates - * tree objects for each of the subtrees stored in the index, - * but only returns the OID of the root tree. This is the OID - * that can be used e.g. to create a commit. - * - * The index instance cannot be bare, and needs to be associated - * to an existing repository. - * - * The index must not contain any file in conflict. - * - * @param out Pointer where to store the OID of the written tree - * @param index Index to write - * @return 0 on success, GIT_EUNMERGED when the index is not clean - * or an error code - */ -GIT_EXTERN(int) git_index_write_tree(git_oid *out, git_index *index); - -/** - * Write the index as a tree to the given repository - * - * This method will do the same as `git_index_write_tree`, but - * letting the user choose the repository where the tree will - * be written. - * - * The index must not contain any file in conflict. - * - * @param out Pointer where to store OID of the the written tree - * @param index Index to write - * @param repo Repository where to write the tree - * @return 0 on success, GIT_EUNMERGED when the index is not clean - * or an error code - */ -GIT_EXTERN(int) git_index_write_tree_to(git_oid *out, git_index *index, git_repository *repo); - -/**@}*/ - -/** @name Raw Index Entry Functions - * - * These functions work on index entries, and allow for raw manipulation - * of the entries. - */ -/**@{*/ - -/* Index entry manipulation */ - -/** - * Get the count of entries currently in the index - * - * @param index an existing index object - * @return integer of count of current entries - */ -GIT_EXTERN(size_t) git_index_entrycount(const git_index *index); - -/** - * Clear the contents (all the entries) of an index object. - * This clears the index object in memory; changes must be manually - * written to disk for them to take effect. - * - * @param index an existing index object - */ -GIT_EXTERN(void) git_index_clear(git_index *index); - -/** - * Get a pointer to one of the entries in the index - * - * The values of this entry can be modified (except the path) - * and the changes will be written back to disk on the next - * write() call. - * - * The entry should not be freed by the caller. - * - * @param index an existing index object - * @param n the position of the entry - * @return a pointer to the entry; NULL if out of bounds - */ -GIT_EXTERN(const git_index_entry *) git_index_get_byindex( - git_index *index, size_t n); - -/** - * Get a pointer to one of the entries in the index - * - * The values of this entry can be modified (except the path) - * and the changes will be written back to disk on the next - * write() call. - * - * The entry should not be freed by the caller. - * - * @param index an existing index object - * @param path path to search - * @param stage stage to search - * @return a pointer to the entry; NULL if it was not found - */ -GIT_EXTERN(const git_index_entry *) git_index_get_bypath( - git_index *index, const char *path, int stage); - -/** - * Remove an entry from the index - * - * @param index an existing index object - * @param path path to search - * @param stage stage to search - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_remove(git_index *index, const char *path, int stage); - -/** - * Remove all entries from the index under a given directory - * - * @param index an existing index object - * @param dir container directory path - * @param stage stage to search - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_remove_directory( - git_index *index, const char *dir, int stage); - -/** - * Add or update an index entry from an in-memory struct - * - * If a previous index entry exists that has the same path and stage - * as the given 'source_entry', it will be replaced. Otherwise, the - * 'source_entry' will be added. - * - * A full copy (including the 'path' string) of the given - * 'source_entry' will be inserted on the index. - * - * @param index an existing index object - * @param source_entry new entry object - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_add(git_index *index, const git_index_entry *source_entry); - -/** - * Return the stage number from a git index entry - * - * This entry is calculated from the entry's flag - * attribute like this: - * - * (entry->flags & GIT_IDXENTRY_STAGEMASK) >> GIT_IDXENTRY_STAGESHIFT - * - * @param entry The entry - * @returns the stage number - */ -GIT_EXTERN(int) git_index_entry_stage(const git_index_entry *entry); - -/**@}*/ - -/** @name Workdir Index Entry Functions - * - * These functions work on index entries specifically in the working - * directory (ie, stage 0). - */ -/**@{*/ - -/** - * Add or update an index entry from a file in disk - * - * The file `path` must be relative to the repository's - * working folder and must be readable. - * - * This method will fail in bare index instances. - * - * This forces the file to be added to the index, not looking - * at gitignore rules. Those rules can be evaluated through - * the git_status APIs (in status.h) before calling this. - * - * If this file currently is the result of a merge conflict, this - * file will no longer be marked as conflicting. The data about - * the conflict will be moved to the "resolve undo" (REUC) section. - * - * @param index an existing index object - * @param path filename to add - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_add_from_workdir(git_index *index, const char *path); - -/** - * Find the first index of any entries which point to given - * path in the Git index. - * - * @param index an existing index object - * @param path path to search - * @return an index >= 0 if found, -1 otherwise - */ -GIT_EXTERN(int) git_index_find(git_index *index, const char *path); - -/**@}*/ - -/** @name Conflict Index Entry Functions - * - * These functions work on conflict index entries specifically (ie, stages 1-3) - */ -/**@{*/ - -/** - * Add or update index entries to represent a conflict - * - * The entries are the entries from the tree included in the merge. Any - * entry may be null to indicate that that file was not present in the - * trees during the merge. For example, ancestor_entry may be NULL to - * indicate that a file was added in both branches and must be resolved. - * - * @param index an existing index object - * @param ancestor_entry the entry data for the ancestor of the conflict - * @param our_entry the entry data for our side of the merge conflict - * @param their_entry the entry data for their side of the merge conflict - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_conflict_add( - git_index *index, - const git_index_entry *ancestor_entry, - const git_index_entry *our_entry, - const git_index_entry *their_entry); - -/** - * Get the index entries that represent a conflict of a single file. - * - * The values of this entry can be modified (except the paths) - * and the changes will be written back to disk on the next - * write() call. - * - * @param ancestor_out Pointer to store the ancestor entry - * @param our_out Pointer to store the our entry - * @param their_out Pointer to store the their entry - * @param index an existing index object - * @param path path to search - */ -GIT_EXTERN(int) git_index_conflict_get(git_index_entry **ancestor_out, git_index_entry **our_out, git_index_entry **their_out, git_index *index, const char *path); - -/** - * Removes the index entries that represent a conflict of a single file. - * - * @param index an existing index object - * @param path to search - */ -GIT_EXTERN(int) git_index_conflict_remove(git_index *index, const char *path); - -/** - * Remove all conflicts in the index (entries with a stage greater than 0.) - * - * @param index an existing index object - */ -GIT_EXTERN(void) git_index_conflict_cleanup(git_index *index); - -/** - * Determine if the index contains entries representing file conflicts. - * - * @return 1 if at least one conflict is found, 0 otherwise. - */ -GIT_EXTERN(int) git_index_has_conflicts(const git_index *index); - -/**@}*/ - -/** @name Resolve Undo (REUC) index entry manipulation. - * - * These functions work on the Resolve Undo index extension and contains - * data about the original files that led to a merge conflict. - */ -/**@{*/ - -/** - * Get the count of resolve undo entries currently in the index. - * - * @param index an existing index object - * @return integer of count of current resolve undo entries - */ -GIT_EXTERN(unsigned int) git_index_reuc_entrycount(git_index *index); - -/** - * Finds the resolve undo entry that points to the given path in the Git - * index. - * - * @param index an existing index object - * @param path path to search - * @return an index >= 0 if found, -1 otherwise - */ -GIT_EXTERN(int) git_index_reuc_find(git_index *index, const char *path); - -/** - * Get a resolve undo entry from the index. - * - * The returned entry is read-only and should not be modified - * or freed by the caller. - * - * @param index an existing index object - * @param path path to search - * @return the resolve undo entry; NULL if not found - */ -GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_bypath(git_index *index, const char *path); - -/** - * Get a resolve undo entry from the index. - * - * The returned entry is read-only and should not be modified - * or freed by the caller. - * - * @param index an existing index object - * @param n the position of the entry - * @return a pointer to the resolve undo entry; NULL if out of bounds - */ -GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_byindex(git_index *index, size_t n); - -/** - * Adds a resolve undo entry for a file based on the given parameters. - * - * The resolve undo entry contains the OIDs of files that were involved - * in a merge conflict after the conflict has been resolved. This allows - * conflicts to be re-resolved later. - * - * If there exists a resolve undo entry for the given path in the index, - * it will be removed. - * - * This method will fail in bare index instances. - * - * @param index an existing index object - * @param path filename to add - * @param ancestor_mode mode of the ancestor file - * @param ancestor_id oid of the ancestor file - * @param our_mode mode of our file - * @param our_id oid of our file - * @param their_mode mode of their file - * @param their_id oid of their file - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_reuc_add(git_index *index, const char *path, - int ancestor_mode, git_oid *ancestor_id, - int our_mode, git_oid *our_id, - int their_mode, git_oid *their_id); - -/** - * Remove an resolve undo entry from the index - * - * @param index an existing index object - * @param n position of the resolve undo entry to remove - * @return 0 or an error code - */ -GIT_EXTERN(int) git_index_reuc_remove(git_index *index, size_t n); - -/**@}*/ - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/indexer.h b/git2/include/git2/indexer.h deleted file mode 100644 index c428d43a8..000000000 --- a/git2/include/git2/indexer.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef _INCLUDE_git_indexer_h__ -#define _INCLUDE_git_indexer_h__ - -#include "common.h" -#include "oid.h" - -GIT_BEGIN_DECL - -/** - * This is passed as the first argument to the callback to allow the - * user to see the progress. - */ -typedef struct git_transfer_progress { - unsigned int total_objects; - unsigned int indexed_objects; - unsigned int received_objects; - size_t received_bytes; -} git_transfer_progress; - - -/** - * Type for progress callbacks during indexing - */ -typedef void (*git_transfer_progress_callback)(const git_transfer_progress *stats, void *payload); - -typedef struct git_indexer git_indexer; -typedef struct git_indexer_stream git_indexer_stream; - -/** - * Create a new streaming indexer instance - * - * @param out where to store the indexer instance - * @param path to the directory where the packfile should be stored - * @param progress_cb function to call with progress information - * @param progress_payload payload for the progress callback - */ -GIT_EXTERN(int) git_indexer_stream_new( - git_indexer_stream **out, - const char *path, - git_transfer_progress_callback progress_cb, - void *progress_cb_payload); - -/** - * Add data to the indexer - * - * @param idx the indexer - * @param data the data to add - * @param size the size of the data in bytes - * @param stats stat storage - */ -GIT_EXTERN(int) git_indexer_stream_add(git_indexer_stream *idx, const void *data, size_t size, git_transfer_progress *stats); - -/** - * Finalize the pack and index - * - * Resolve any pending deltas and write out the index file - * - * @param idx the indexer - */ -GIT_EXTERN(int) git_indexer_stream_finalize(git_indexer_stream *idx, git_transfer_progress *stats); - -/** - * Get the packfile's hash - * - * A packfile's name is derived from the sorted hashing of all object - * names. This is only correct after the index has been finalized. - * - * @param idx the indexer instance - */ -GIT_EXTERN(const git_oid *) git_indexer_stream_hash(const git_indexer_stream *idx); - -/** - * Free the indexer and its resources - * - * @param idx the indexer to free - */ -GIT_EXTERN(void) git_indexer_stream_free(git_indexer_stream *idx); - -/** - * Create a new indexer instance - * - * @param out where to store the indexer instance - * @param packname the absolute filename of the packfile to index - */ -GIT_EXTERN(int) git_indexer_new(git_indexer **out, const char *packname); - -/** - * Iterate over the objects in the packfile and extract the information - * - * Indexing a packfile can be very expensive so this function is - * expected to be run in a worker thread and the stats used to provide - * feedback the user. - * - * @param idx the indexer instance - * @param stats storage for the running state - */ -GIT_EXTERN(int) git_indexer_run(git_indexer *idx, git_transfer_progress *stats); - -/** - * Write the index file to disk. - * - * The file will be stored as pack-$hash.idx in the same directory as - * the packfile. - * - * @param idx the indexer instance - */ -GIT_EXTERN(int) git_indexer_write(git_indexer *idx); - -/** - * Get the packfile's hash - * - * A packfile's name is derived from the sorted hashing of all object - * names. This is only correct after the index has been written to disk. - * - * @param idx the indexer instance - */ -GIT_EXTERN(const git_oid *) git_indexer_hash(const git_indexer *idx); - -/** - * Free the indexer and its resources - * - * @param idx the indexer to free - */ -GIT_EXTERN(void) git_indexer_free(git_indexer *idx); - -GIT_END_DECL - -#endif diff --git a/git2/include/git2/merge.h b/git2/include/git2/merge.h deleted file mode 100644 index f4c5d9881..000000000 --- a/git2/include/git2/merge.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_merge_h__ -#define INCLUDE_git_merge_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/merge.h - * @brief Git merge-base routines - * @defgroup git_revwalk Git merge-base routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Find a merge base between two commits - * - * @param out the OID of a merge base between 'one' and 'two' - * @param repo the repository where the commits exist - * @param one one of the commits - * @param two the other commit - * @return Zero on success; GIT_ENOTFOUND or -1 on failure. - */ -GIT_EXTERN(int) git_merge_base( - git_oid *out, - git_repository *repo, - const git_oid *one, - const git_oid *two); - -/** - * Find a merge base given a list of commits - * - * @param out the OID of a merge base considering all the commits - * @param repo the repository where the commits exist - * @param input_array oids of the commits - * @param length The number of commits in the provided `input_array` - * @return Zero on success; GIT_ENOTFOUND or -1 on failure. - */ -GIT_EXTERN(int) git_merge_base_many( - git_oid *out, - git_repository *repo, - const git_oid input_array[], - size_t length); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/message.h b/git2/include/git2/message.h deleted file mode 100644 index 395c88690..000000000 --- a/git2/include/git2/message.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_message_h__ -#define INCLUDE_git_message_h__ - -#include "common.h" - -/** - * @file git2/message.h - * @brief Git message management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Clean up message from excess whitespace and make sure that the last line - * ends with a '\n'. - * - * Optionally, can remove lines starting with a "#". - * - * @param out The user-allocated buffer which will be filled with the - * cleaned up message. Pass NULL if you just want to get the needed - * size of the prettified message as the output value. - * - * @param out_size Size of the `out` buffer in bytes. - * - * @param message The message to be prettified. - * - * @param strip_comments Non-zero to remove lines starting with "#", 0 to - * leave them in. - * - * @return -1 on error, else number of characters in prettified message - * including the trailing NUL byte - */ -GIT_EXTERN(int) git_message_prettify( - char *out, - size_t out_size, - const char *message, - int strip_comments); - -/** @} */ -GIT_END_DECL - -#endif /* INCLUDE_git_message_h__ */ diff --git a/git2/include/git2/net.h b/git2/include/git2/net.h deleted file mode 100644 index 6e3525f5d..000000000 --- a/git2/include/git2/net.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_net_h__ -#define INCLUDE_git_net_h__ - -#include "common.h" -#include "oid.h" -#include "types.h" - -/** - * @file git2/net.h - * @brief Git networking declarations - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -#define GIT_DEFAULT_PORT "9418" - -/* - * We need this because we need to know whether we should call - * git-upload-pack or git-receive-pack on the remote end when get_refs - * gets called. - */ - -typedef enum { - GIT_DIRECTION_FETCH = 0, - GIT_DIRECTION_PUSH = 1 -} git_direction; - - -/** - * Remote head description, given out on `ls` calls. - */ -struct git_remote_head { - int local:1; /* available locally */ - git_oid oid; - git_oid loid; - char *name; -}; - -/** - * Callback for listing the remote heads - */ -typedef int (*git_headlist_cb)(git_remote_head *rhead, void *payload); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/notes.h b/git2/include/git2/notes.h deleted file mode 100644 index c51d3732a..000000000 --- a/git2/include/git2/notes.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_note_h__ -#define INCLUDE_git_note_h__ - -#include "oid.h" - -/** - * @file git2/notes.h - * @brief Git notes management routines - * @defgroup git_note Git notes management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Callback for git_note_foreach. - * - * Receives: - * - blob_id: Oid of the blob containing the message - * - annotated_object_id: Oid of the git object being annotated - * - payload: Payload data passed to `git_note_foreach` - */ -typedef int (*git_note_foreach_cb)( - const git_oid *blob_id, const git_oid *annotated_object_id, void *payload); - -/** - * Read the note for an object - * - * The note must be freed manually by the user. - * - * @param out pointer to the read note; NULL in case of error - * @param repo repository where to look up the note - * @param notes_ref canonical name of the reference to use (optional); defaults to - * "refs/notes/commits" - * @param oid OID of the git object to read the note from - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_note_read( - git_note **out, - git_repository *repo, - const char *notes_ref, - const git_oid *oid); - -/** - * Get the note message - * - * @param note - * @return the note message - */ -GIT_EXTERN(const char *) git_note_message(const git_note *note); - - -/** - * Get the note object OID - * - * @param note - * @return the note object OID - */ -GIT_EXTERN(const git_oid *) git_note_oid(const git_note *note); - -/** - * Add a note for an object - * - * @param out pointer to store the OID (optional); NULL in case of error - * @param repo repository where to store the note - * @param author signature of the notes commit author - * @param committer signature of the notes commit committer - * @param notes_ref canonical name of the reference to use (optional); - * defaults to "refs/notes/commits" - * @param oid OID of the git object to decorate - * @param note Content of the note to add for object oid - * @param force Overwrite existing note - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_note_create( - git_oid *out, - git_repository *repo, - const git_signature *author, - const git_signature *committer, - const char *notes_ref, - const git_oid *oid, - const char *note, - int force); - - -/** - * Remove the note for an object - * - * @param repo repository where the note lives - * @param notes_ref canonical name of the reference to use (optional); - * defaults to "refs/notes/commits" - * @param author signature of the notes commit author - * @param committer signature of the notes commit committer - * @param oid OID of the git object to remove the note from - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_note_remove( - git_repository *repo, - const char *notes_ref, - const git_signature *author, - const git_signature *committer, - const git_oid *oid); - -/** - * Free a git_note object - * - * @param note git_note object - */ -GIT_EXTERN(void) git_note_free(git_note *note); - -/** - * Get the default notes reference for a repository - * - * @param out Pointer to the default notes reference - * @param repo The Git repository - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_note_default_ref(const char **out, git_repository *repo); - -/** - * Loop over all the notes within a specified namespace - * and issue a callback for each one. - * - * @param repo Repository where to find the notes. - * - * @param notes_ref Reference to read from (optional); defaults to - * "refs/notes/commits". - * - * @param note_cb Callback to invoke per found annotation. Return non-zero - * to stop looping. - * - * @param payload Extra parameter to callback function. - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_note_foreach( - git_repository *repo, - const char *notes_ref, - git_note_foreach_cb note_cb, - void *payload); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/object.h b/git2/include/git2/object.h deleted file mode 100644 index e029f0125..000000000 --- a/git2/include/git2/object.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_object_h__ -#define INCLUDE_git_object_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/object.h - * @brief Git revision object management routines - * @defgroup git_object Git revision object management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Lookup a reference to one of the objects in a repository. - * - * The generated reference is owned by the repository and - * should be closed with the `git_object_free` method - * instead of free'd manually. - * - * The 'type' parameter must match the type of the object - * in the odb; the method will fail otherwise. - * The special value 'GIT_OBJ_ANY' may be passed to let - * the method guess the object's type. - * - * @param object pointer to the looked-up object - * @param repo the repository to look up the object - * @param id the unique identifier for the object - * @param type the type of the object - * @return a reference to the object - */ -GIT_EXTERN(int) git_object_lookup( - git_object **object, - git_repository *repo, - const git_oid *id, - git_otype type); - -/** - * Lookup a reference to one of the objects in a repository, - * given a prefix of its identifier (short id). - * - * The object obtained will be so that its identifier - * matches the first 'len' hexadecimal characters - * (packets of 4 bits) of the given 'id'. - * 'len' must be at least GIT_OID_MINPREFIXLEN, and - * long enough to identify a unique object matching - * the prefix; otherwise the method will fail. - * - * The generated reference is owned by the repository and - * should be closed with the `git_object_free` method - * instead of free'd manually. - * - * The 'type' parameter must match the type of the object - * in the odb; the method will fail otherwise. - * The special value 'GIT_OBJ_ANY' may be passed to let - * the method guess the object's type. - * - * @param object_out pointer where to store the looked-up object - * @param repo the repository to look up the object - * @param id a short identifier for the object - * @param len the length of the short identifier - * @param type the type of the object - * @return 0 or an error code - */ -GIT_EXTERN(int) git_object_lookup_prefix( - git_object **object_out, - git_repository *repo, - const git_oid *id, - size_t len, - git_otype type); - -/** - * Get the id (SHA1) of a repository object - * - * @param obj the repository object - * @return the SHA1 id - */ -GIT_EXTERN(const git_oid *) git_object_id(const git_object *obj); - -/** - * Get the object type of an object - * - * @param obj the repository object - * @return the object's type - */ -GIT_EXTERN(git_otype) git_object_type(const git_object *obj); - -/** - * Get the repository that owns this object - * - * Freeing or calling `git_repository_close` on the - * returned pointer will invalidate the actual object. - * - * Any other operation may be run on the repository without - * affecting the object. - * - * @param obj the object - * @return the repository who owns this object - */ -GIT_EXTERN(git_repository *) git_object_owner(const git_object *obj); - -/** - * Close an open object - * - * This method instructs the library to close an existing - * object; note that git_objects are owned and cached by the repository - * so the object may or may not be freed after this library call, - * depending on how aggressive is the caching mechanism used - * by the repository. - * - * IMPORTANT: - * It *is* necessary to call this method when you stop using - * an object. Failure to do so will cause a memory leak. - * - * @param object the object to close - */ -GIT_EXTERN(void) git_object_free(git_object *object); - -/** - * Convert an object type to it's string representation. - * - * The result is a pointer to a string in static memory and - * should not be free()'ed. - * - * @param type object type to convert. - * @return the corresponding string representation. - */ -GIT_EXTERN(const char *) git_object_type2string(git_otype type); - -/** - * Convert a string object type representation to it's git_otype. - * - * @param str the string to convert. - * @return the corresponding git_otype. - */ -GIT_EXTERN(git_otype) git_object_string2type(const char *str); - -/** - * Determine if the given git_otype is a valid loose object type. - * - * @param type object type to test. - * @return true if the type represents a valid loose object type, - * false otherwise. - */ -GIT_EXTERN(int) git_object_typeisloose(git_otype type); - -/** - * Get the size in bytes for the structure which - * acts as an in-memory representation of any given - * object type. - * - * For all the core types, this would the equivalent - * of calling `sizeof(git_commit)` if the core types - * were not opaque on the external API. - * - * @param type object type to get its size - * @return size in bytes of the object - */ -GIT_EXTERN(size_t) git_object__size(git_otype type); - -/** - * Recursively peel an object until an object of the specified type is met. - * - * The retrieved `peeled` object is owned by the repository and should be - * closed with the `git_object_free` method. - * - * If you pass `GIT_OBJ_ANY` as the target type, then the object will be - * peeled until the type changes (e.g. a tag will be chased until the - * referenced object is no longer a tag). - * - * @param peeled Pointer to the peeled git_object - * @param object The object to be processed - * @param target_type The type of the requested object (GIT_OBJ_COMMIT, - * GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY). - * @return 0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code - */ -GIT_EXTERN(int) git_object_peel( - git_object **peeled, - const git_object *object, - git_otype target_type); - -/** @} */ -GIT_END_DECL - -#endif diff --git a/git2/include/git2/odb.h b/git2/include/git2/odb.h deleted file mode 100644 index f39e7b541..000000000 --- a/git2/include/git2/odb.h +++ /dev/null @@ -1,391 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_odb_h__ -#define INCLUDE_git_odb_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "odb_backend.h" -#include "indexer.h" - -/** - * @file git2/odb.h - * @brief Git object database routines - * @defgroup git_odb Git object database routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Create a new object database with no backends. - * - * Before the ODB can be used for read/writing, a custom database - * backend must be manually added using `git_odb_add_backend()` - * - * @param out location to store the database pointer, if opened. - * Set to NULL if the open failed. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_new(git_odb **out); - -/** - * Create a new object database and automatically add - * the two default backends: - * - * - git_odb_backend_loose: read and write loose object files - * from disk, assuming `objects_dir` as the Objects folder - * - * - git_odb_backend_pack: read objects from packfiles, - * assuming `objects_dir` as the Objects folder which - * contains a 'pack/' folder with the corresponding data - * - * @param out location to store the database pointer, if opened. - * Set to NULL if the open failed. - * @param objects_dir path of the backends' "objects" directory. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_open(git_odb **out, const char *objects_dir); - -/** - * Add a custom backend to an existing Object DB - * - * The backends are checked in relative ordering, based on the - * value of the `priority` parameter. - * - * Read for more information. - * - * @param odb database to add the backend to - * @param backend pointer to a git_odb_backend instance - * @param priority Value for ordering the backends queue - * @return 0 on success; error code otherwise - */ -GIT_EXTERN(int) git_odb_add_backend(git_odb *odb, git_odb_backend *backend, int priority); - -/** - * Add a custom backend to an existing Object DB; this - * backend will work as an alternate. - * - * Alternate backends are always checked for objects *after* - * all the main backends have been exhausted. - * - * The backends are checked in relative ordering, based on the - * value of the `priority` parameter. - * - * Writing is disabled on alternate backends. - * - * Read for more information. - * - * @param odb database to add the backend to - * @param backend pointer to a git_odb_backend instance - * @param priority Value for ordering the backends queue - * @return 0 on success; error code otherwise - */ -GIT_EXTERN(int) git_odb_add_alternate(git_odb *odb, git_odb_backend *backend, int priority); - -/** - * Add an on-disk alternate to an existing Object DB. - * - * Note that the added path must point to an `objects`, not - * to a full repository, to use it as an alternate store. - * - * Alternate backends are always checked for objects *after* - * all the main backends have been exhausted. - * - * Writing is disabled on alternate backends. - * - * @param odb database to add the backend to - * @param path path to the objects folder for the alternate - * @return 0 on success; error code otherwise - */ -GIT_EXTERN(int) git_odb_add_disk_alternate(git_odb *odb, const char *path); - -/** - * Close an open object database. - * - * @param db database pointer to close. If NULL no action is taken. - */ -GIT_EXTERN(void) git_odb_free(git_odb *db); - -/** - * Read an object from the database. - * - * This method queries all available ODB backends - * trying to read the given OID. - * - * The returned object is reference counted and - * internally cached, so it should be closed - * by the user once it's no longer in use. - * - * @param out pointer where to store the read object - * @param db database to search for the object in. - * @param id identity of the object to read. - * @return - * - 0 if the object was read; - * - GIT_ENOTFOUND if the object is not in the database. - */ -GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *id); - -/** - * Read an object from the database, given a prefix - * of its identifier. - * - * This method queries all available ODB backends - * trying to match the 'len' first hexadecimal - * characters of the 'short_id'. - * The remaining (GIT_OID_HEXSZ-len)*4 bits of - * 'short_id' must be 0s. - * 'len' must be at least GIT_OID_MINPREFIXLEN, - * and the prefix must be long enough to identify - * a unique object in all the backends; the - * method will fail otherwise. - * - * The returned object is reference counted and - * internally cached, so it should be closed - * by the user once it's no longer in use. - * - * @param out pointer where to store the read object - * @param db database to search for the object in. - * @param short_id a prefix of the id of the object to read. - * @param len the length of the prefix - * @return - * - 0 if the object was read; - * - GIT_ENOTFOUND if the object is not in the database. - * - GIT_EAMBIGUOUS if the prefix is ambiguous (several objects match the prefix) - */ -GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len); - -/** - * Read the header of an object from the database, without - * reading its full contents. - * - * The header includes the length and the type of an object. - * - * Note that most backends do not support reading only the header - * of an object, so the whole object will be read and then the - * header will be returned. - * - * @param len_out pointer where to store the length - * @param type_out pointer where to store the type - * @param db database to search for the object in. - * @param id identity of the object to read. - * @return - * - 0 if the object was read; - * - GIT_ENOTFOUND if the object is not in the database. - */ -GIT_EXTERN(int) git_odb_read_header(size_t *len_out, git_otype *type_out, git_odb *db, const git_oid *id); - -/** - * Determine if the given object can be found in the object database. - * - * @param db database to be searched for the given object. - * @param id the object to search for. - * @return - * - 1, if the object was found - * - 0, otherwise - */ -GIT_EXTERN(int) git_odb_exists(git_odb *db, const git_oid *id); - -/** - * List all objects available in the database - * - * The callback will be called for each object available in the - * database. Note that the objects are likely to be returned in the index - * order, which would make accessing the objects in that order inefficient. - * Return a non-zero value from the callback to stop looping. - * - * @param db database to use - * @param cb the callback to call for each object - * @param payload data to pass to the callback - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_odb_foreach(git_odb *db, git_odb_foreach_cb cb, void *payload); - -/** - * Write an object directly into the ODB - * - * This method writes a full object straight into the ODB. - * For most cases, it is preferred to write objects through a write - * stream, which is both faster and less memory intensive, specially - * for big objects. - * - * This method is provided for compatibility with custom backends - * which are not able to support streaming writes - * - * @param out pointer to store the OID result of the write - * @param odb object database where to store the object - * @param data buffer with the data to store - * @param len size of the buffer - * @param type type of the data to store - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_write(git_oid *out, git_odb *odb, const void *data, size_t len, git_otype type); - -/** - * Open a stream to write an object into the ODB - * - * The type and final length of the object must be specified - * when opening the stream. - * - * The returned stream will be of type `GIT_STREAM_WRONLY` and - * will have the following methods: - * - * - stream->write: write `n` bytes into the stream - * - stream->finalize_write: close the stream and store the object in - * the odb - * - stream->free: free the stream - * - * The streaming write won't be effective until `stream->finalize_write` - * is called and returns without an error - * - * The stream must always be free'd or will leak memory. - * - * @see git_odb_stream - * - * @param out pointer where to store the stream - * @param db object database where the stream will write - * @param size final size of the object that will be written - * @param type type of the object that will be written - * @return 0 if the stream was created; error code otherwise - */ -GIT_EXTERN(int) git_odb_open_wstream(git_odb_stream **out, git_odb *db, size_t size, git_otype type); - -/** - * Open a stream to read an object from the ODB - * - * Note that most backends do *not* support streaming reads - * because they store their objects as compressed/delta'ed blobs. - * - * It's recommended to use `git_odb_read` instead, which is - * assured to work on all backends. - * - * The returned stream will be of type `GIT_STREAM_RDONLY` and - * will have the following methods: - * - * - stream->read: read `n` bytes from the stream - * - stream->free: free the stream - * - * The stream must always be free'd or will leak memory. - * - * @see git_odb_stream - * - * @param out pointer where to store the stream - * @param db object database where the stream will read from - * @param oid oid of the object the stream will read from - * @return 0 if the stream was created; error code otherwise - */ -GIT_EXTERN(int) git_odb_open_rstream(git_odb_stream **out, git_odb *db, const git_oid *oid); - -/** - * Open a stream for writing a pack file to the ODB. - * - * If the ODB layer understands pack files, then the given - * packfile will likely be streamed directly to disk (and a - * corresponding index created). If the ODB layer does not - * understand pack files, the objects will be stored in whatever - * format the ODB layer uses. - * - * @see git_odb_writepack - * - * @param out pointer to the writepack functions - * @param db object database where the stream will read from - * @param progress_cb function to call with progress information. - * Be aware that this is called inline with network and indexing operations, - * so performance may be affected. - * @param progress_payload payload for the progress callback - */ -GIT_EXTERN(int) git_odb_write_pack( - git_odb_writepack **out, - git_odb *db, - git_transfer_progress_callback progress_cb, - void *progress_payload); - -/** - * Determine the object-ID (sha1 hash) of a data buffer - * - * The resulting SHA-1 OID will be the identifier for the data - * buffer as if the data buffer it were to written to the ODB. - * - * @param out the resulting object-ID. - * @param data data to hash - * @param len size of the data - * @param type of the data to hash - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_otype type); - -/** - * Read a file from disk and fill a git_oid with the object id - * that the file would have if it were written to the Object - * Database as an object of the given type (w/o applying filters). - * Similar functionality to git.git's `git hash-object` without - * the `-w` flag, however, with the --no-filters flag. - * If you need filters, see git_repository_hashfile. - * - * @param out oid structure the result is written into. - * @param path file to read and determine object id for - * @param type the type of the object that will be hashed - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_hashfile(git_oid *out, const char *path, git_otype type); - -/** - * Close an ODB object - * - * This method must always be called once a `git_odb_object` is no - * longer needed, otherwise memory will leak. - * - * @param object object to close - */ -GIT_EXTERN(void) git_odb_object_free(git_odb_object *object); - -/** - * Return the OID of an ODB object - * - * This is the OID from which the object was read from - * - * @param object the object - * @return a pointer to the OID - */ -GIT_EXTERN(const git_oid *) git_odb_object_id(git_odb_object *object); - -/** - * Return the data of an ODB object - * - * This is the uncompressed, raw data as read from the ODB, - * without the leading header. - * - * This pointer is owned by the object and shall not be free'd. - * - * @param object the object - * @return a pointer to the data - */ -GIT_EXTERN(const void *) git_odb_object_data(git_odb_object *object); - -/** - * Return the size of an ODB object - * - * This is the real size of the `data` buffer, not the - * actual size of the object. - * - * @param object the object - * @return the size - */ -GIT_EXTERN(size_t) git_odb_object_size(git_odb_object *object); - -/** - * Return the type of an ODB object - * - * @param object the object - * @return the type - */ -GIT_EXTERN(git_otype) git_odb_object_type(git_odb_object *object); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/odb_backend.h b/git2/include/git2/odb_backend.h deleted file mode 100644 index 029c61b9f..000000000 --- a/git2/include/git2/odb_backend.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_odb_backend_h__ -#define INCLUDE_git_odb_backend_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "indexer.h" - -/** - * @file git2/backend.h - * @brief Git custom backend functions - * @defgroup git_backend Git custom backend API - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -struct git_odb_stream; -struct git_odb_writepack; - -/** - * Function type for callbacks from git_odb_foreach. - */ -typedef int (*git_odb_foreach_cb)(const git_oid *id, void *payload); - -/** - * An instance for a custom backend - */ -struct git_odb_backend { - unsigned int version; - git_odb *odb; - - /* read and read_prefix each return to libgit2 a buffer which - * will be freed later. The buffer should be allocated using - * the function git_odb_backend_malloc to ensure that it can - * be safely freed later. */ - int (* read)( - void **, size_t *, git_otype *, - struct git_odb_backend *, - const git_oid *); - - /* To find a unique object given a prefix - * of its oid. - * The oid given must be so that the - * remaining (GIT_OID_HEXSZ - len)*4 bits - * are 0s. - */ - int (* read_prefix)( - git_oid *, - void **, size_t *, git_otype *, - struct git_odb_backend *, - const git_oid *, - size_t); - - int (* read_header)( - size_t *, git_otype *, - struct git_odb_backend *, - const git_oid *); - - /* The writer may assume that the object - * has already been hashed and is passed - * in the first parameter. - */ - int (* write)( - git_oid *, - struct git_odb_backend *, - const void *, - size_t, - git_otype); - - int (* writestream)( - struct git_odb_stream **, - struct git_odb_backend *, - size_t, - git_otype); - - int (* readstream)( - struct git_odb_stream **, - struct git_odb_backend *, - const git_oid *); - - int (* exists)( - struct git_odb_backend *, - const git_oid *); - - int (* foreach)( - struct git_odb_backend *, - git_odb_foreach_cb cb, - void *payload); - - int (* writepack)( - struct git_odb_writepack **, - struct git_odb_backend *, - git_transfer_progress_callback progress_cb, - void *progress_payload); - - void (* free)(struct git_odb_backend *); -}; - -#define GIT_ODB_BACKEND_VERSION 1 -#define GIT_ODB_BACKEND_INIT {GIT_ODB_BACKEND_VERSION} - -/** Streaming mode */ -enum { - GIT_STREAM_RDONLY = (1 << 1), - GIT_STREAM_WRONLY = (1 << 2), - GIT_STREAM_RW = (GIT_STREAM_RDONLY | GIT_STREAM_WRONLY), -}; - -/** A stream to read/write from a backend */ -struct git_odb_stream { - struct git_odb_backend *backend; - unsigned int mode; - - int (*read)(struct git_odb_stream *stream, char *buffer, size_t len); - int (*write)(struct git_odb_stream *stream, const char *buffer, size_t len); - int (*finalize_write)(git_oid *oid_p, struct git_odb_stream *stream); - void (*free)(struct git_odb_stream *stream); -}; - -/** A stream to write a pack file to the ODB */ -struct git_odb_writepack { - struct git_odb_backend *backend; - - int (*add)(struct git_odb_writepack *writepack, const void *data, size_t size, git_transfer_progress *stats); - int (*commit)(struct git_odb_writepack *writepack, git_transfer_progress *stats); - void (*free)(struct git_odb_writepack *writepack); -}; - -GIT_EXTERN(void *) git_odb_backend_malloc(git_odb_backend *backend, size_t len); - -/** - * Constructors for in-box ODB backends. - */ -GIT_EXTERN(int) git_odb_backend_pack(git_odb_backend **out, const char *objects_dir); -GIT_EXTERN(int) git_odb_backend_loose(git_odb_backend **out, const char *objects_dir, int compression_level, int do_fsync); -GIT_EXTERN(int) git_odb_backend_one_pack(git_odb_backend **out, const char *index_file); - -GIT_END_DECL - -#endif diff --git a/git2/include/git2/oid.h b/git2/include/git2/oid.h deleted file mode 100644 index 6be02da6e..000000000 --- a/git2/include/git2/oid.h +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_oid_h__ -#define INCLUDE_git_oid_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/oid.h - * @brief Git object id routines - * @defgroup git_oid Git object id routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** Size (in bytes) of a raw/binary oid */ -#define GIT_OID_RAWSZ 20 - -/** Size (in bytes) of a hex formatted oid */ -#define GIT_OID_HEXSZ (GIT_OID_RAWSZ * 2) - -/** Minimum length (in number of hex characters, - * i.e. packets of 4 bits) of an oid prefix */ -#define GIT_OID_MINPREFIXLEN 4 - -/** Unique identity of any object (commit, tree, blob, tag). */ -typedef struct git_oid { - /** raw binary formatted id */ - unsigned char id[GIT_OID_RAWSZ]; -} git_oid; - -/** - * Parse a hex formatted object id into a git_oid. - * - * @param out oid structure the result is written into. - * @param str input hex string; must be pointing at the start of - * the hex sequence and have at least the number of bytes - * needed for an oid encoded in hex (40 bytes). - * @return 0 or an error code - */ -GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str); - -/** - * Parse N characters of a hex formatted object id into a git_oid - * - * If N is odd, N-1 characters will be parsed instead. - * The remaining space in the git_oid will be set to zero. - * - * @param out oid structure the result is written into. - * @param str input hex string of at least size `length` - * @param length length of the input string - * @return 0 or an error code - */ -GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length); - -/** - * Copy an already raw oid into a git_oid structure. - * - * @param out oid structure the result is written into. - * @param raw the raw input bytes to be copied. - */ -GIT_EXTERN(void) git_oid_fromraw(git_oid *out, const unsigned char *raw); - -/** - * Format a git_oid into a hex string. - * - * @param out output hex string; must be pointing at the start of - * the hex sequence and have at least the number of bytes - * needed for an oid encoded in hex (40 bytes). Only the - * oid digits are written; a '\\0' terminator must be added - * by the caller if it is required. - * @param oid oid structure to format. - */ -GIT_EXTERN(void) git_oid_fmt(char *out, const git_oid *id); - -/** - * Format a git_oid into a loose-object path string. - * - * The resulting string is "aa/...", where "aa" is the first two - * hex digits of the oid and "..." is the remaining 38 digits. - * - * @param out output hex string; must be pointing at the start of - * the hex sequence and have at least the number of bytes - * needed for an oid encoded in hex (41 bytes). Only the - * oid digits are written; a '\\0' terminator must be added - * by the caller if it is required. - * @param id oid structure to format. - */ -GIT_EXTERN(void) git_oid_pathfmt(char *out, const git_oid *id); - -/** - * Format a git_oid into a newly allocated c-string. - * - * @param oid the oid structure to format - * @return the c-string; NULL if memory is exhausted. Caller must - * deallocate the string with git__free(). - */ -GIT_EXTERN(char *) git_oid_allocfmt(const git_oid *id); - -/** - * Format a git_oid into a buffer as a hex format c-string. - * - * If the buffer is smaller than GIT_OID_HEXSZ+1, then the resulting - * oid c-string will be truncated to n-1 characters. If there are - * any input parameter errors (out == NULL, n == 0, oid == NULL), - * then a pointer to an empty string is returned, so that the return - * value can always be printed. - * - * @param out the buffer into which the oid string is output. - * @param n the size of the out buffer. - * @param id the oid structure to format. - * @return the out buffer pointer, assuming no input parameter - * errors, otherwise a pointer to an empty string. - */ -GIT_EXTERN(char *) git_oid_tostr(char *out, size_t n, const git_oid *id); - -/** - * Copy an oid from one structure to another. - * - * @param out oid structure the result is written into. - * @param src oid structure to copy from. - */ -GIT_EXTERN(void) git_oid_cpy(git_oid *out, const git_oid *src); - -/** - * Compare two oid structures. - * - * @param a first oid structure. - * @param b second oid structure. - * @return <0, 0, >0 if a < b, a == b, a > b. - */ -GIT_INLINE(int) git_oid_cmp(const git_oid *a, const git_oid *b) -{ - const unsigned char *sha1 = a->id; - const unsigned char *sha2 = b->id; - int i; - - for (i = 0; i < GIT_OID_RAWSZ; i++, sha1++, sha2++) { - if (*sha1 != *sha2) - return *sha1 - *sha2; - } - - return 0; -} - -/** - * Compare two oid structures for equality - * - * @param a first oid structure. - * @param b second oid structure. - * @return true if equal, false otherwise - */ -GIT_INLINE(int) git_oid_equal(const git_oid *a, const git_oid *b) -{ - return !git_oid_cmp(a, b); -} - -/** - * Compare the first 'len' hexadecimal characters (packets of 4 bits) - * of two oid structures. - * - * @param a first oid structure. - * @param b second oid structure. - * @param len the number of hex chars to compare - * @return 0 in case of a match - */ -GIT_EXTERN(int) git_oid_ncmp(const git_oid *a, const git_oid *b, size_t len); - -/** - * Check if an oid equals an hex formatted object id. - * - * @param id oid structure. - * @param str input hex string of an object id. - * @return GIT_ENOTOID if str is not a valid hex string, - * 0 in case of a match, GIT_ERROR otherwise. - */ -GIT_EXTERN(int) git_oid_streq(const git_oid *id, const char *str); - -/** - * Check is an oid is all zeros. - * - * @return 1 if all zeros, 0 otherwise. - */ -GIT_EXTERN(int) git_oid_iszero(const git_oid *id); - -/** - * OID Shortener object - */ -typedef struct git_oid_shorten git_oid_shorten; - -/** - * Create a new OID shortener. - * - * The OID shortener is used to process a list of OIDs - * in text form and return the shortest length that would - * uniquely identify all of them. - * - * E.g. look at the result of `git log --abbrev`. - * - * @param min_length The minimal length for all identifiers, - * which will be used even if shorter OIDs would still - * be unique. - * @return a `git_oid_shorten` instance, NULL if OOM - */ -GIT_EXTERN(git_oid_shorten *) git_oid_shorten_new(size_t min_length); - -/** - * Add a new OID to set of shortened OIDs and calculate - * the minimal length to uniquely identify all the OIDs in - * the set. - * - * The OID is expected to be a 40-char hexadecimal string. - * The OID is owned by the user and will not be modified - * or freed. - * - * For performance reasons, there is a hard-limit of how many - * OIDs can be added to a single set (around ~22000, assuming - * a mostly randomized distribution), which should be enough - * for any kind of program, and keeps the algorithm fast and - * memory-efficient. - * - * Attempting to add more than those OIDs will result in a - * GIT_ENOMEM error - * - * @param os a `git_oid_shorten` instance - * @param text_id an OID in text form - * @return the minimal length to uniquely identify all OIDs - * added so far to the set; or an error code (<0) if an - * error occurs. - */ -GIT_EXTERN(int) git_oid_shorten_add(git_oid_shorten *os, const char *text_id); - -/** - * Free an OID shortener instance - * - * @param os a `git_oid_shorten` instance - */ -GIT_EXTERN(void) git_oid_shorten_free(git_oid_shorten *os); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/pack.h b/git2/include/git2/pack.h deleted file mode 100644 index bc628c56a..000000000 --- a/git2/include/git2/pack.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_pack_h__ -#define INCLUDE_git_pack_h__ - -#include "common.h" -#include "oid.h" - -/** - * @file git2/pack.h - * @brief Git pack management routines - * @defgroup git_pack Git pack management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Initialize a new packbuilder - * - * @param out The new packbuilder object - * @param repo The repository - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_packbuilder_new(git_packbuilder **out, git_repository *repo); - -/** - * Set number of threads to spawn - * - * By default, libgit2 won't spawn any threads at all; - * when set to 0, libgit2 will autodetect the number of - * CPUs. - * - * @param pb The packbuilder - * @param n Number of threads to spawn - * @return number of actual threads to be used - */ -GIT_EXTERN(unsigned int) git_packbuilder_set_threads(git_packbuilder *pb, unsigned int n); - -/** - * Insert a single object - * - * For an optimal pack it's mandatory to insert objects in recency order, - * commits followed by trees and blobs. - * - * @param pb The packbuilder - * @param id The oid of the commit - * @param name The name; might be NULL - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_packbuilder_insert(git_packbuilder *pb, const git_oid *id, const char *name); - -/** - * Insert a root tree object - * - * This will add the tree as well as all referenced trees and blobs. - * - * @param pb The packbuilder - * @param id The oid of the root tree - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *id); - -/** - * Write the new pack and the corresponding index to path - * - * @param pb The packbuilder - * @param path Directory to store the new pack and index - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_packbuilder_write(git_packbuilder *pb, const char *file); - -/** - * Create the new pack and pass each object to the callback - * - * @param pb the packbuilder - * @param cb the callback to call with each packed object's buffer - * @param payload the callback's data - * @return 0 or an error code - */ -typedef int (*git_packbuilder_foreach_cb)(void *buf, size_t size, void *payload); -GIT_EXTERN(int) git_packbuilder_foreach(git_packbuilder *pb, git_packbuilder_foreach_cb cb, void *payload); - -/** - * Get the total number of objects the packbuilder will write out - * - * @param pb the packbuilder - * @return - */ -GIT_EXTERN(uint32_t) git_packbuilder_object_count(git_packbuilder *pb); - -/** - * Get the number of objects the packbuilder has already written out - * - * @param pb the packbuilder - * @return - */ -GIT_EXTERN(uint32_t) git_packbuilder_written(git_packbuilder *pb); - -/** - * Free the packbuilder and all associated data - * - * @param pb The packbuilder - */ -GIT_EXTERN(void) git_packbuilder_free(git_packbuilder *pb); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/push.h b/git2/include/git2/push.h deleted file mode 100644 index 51f059ac4..000000000 --- a/git2/include/git2/push.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_push_h__ -#define INCLUDE_git_push_h__ - -#include "common.h" - -/** - * @file git2/push.h - * @brief Git push management functions - * @defgroup git_push push management functions - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Create a new push object - * - * @param out New push object - * @param remote Remote instance - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_push_new(git_push **out, git_remote *remote); - -/** - * Add a refspec to be pushed - * - * @param push The push object - * @param refspec Refspec string - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_push_add_refspec(git_push *push, const char *refspec); - -/** - * Actually push all given refspecs - * - * @param push The push object - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_push_finish(git_push *push); - -/** - * Check if remote side successfully unpacked - * - * @param push The push object - * - * @return true if equal, false otherwise - */ -GIT_EXTERN(int) git_push_unpack_ok(git_push *push); - -/** - * Call callback `cb' on each status - * - * @param push The push object - * @param cb The callback to call on each object - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_push_status_foreach(git_push *push, - int (*cb)(const char *ref, const char *msg, void *data), - void *data); - -/** - * Free the given push object - * - * @param push The push object - */ -GIT_EXTERN(void) git_push_free(git_push *push); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/reflog.h b/git2/include/git2/reflog.h deleted file mode 100644 index 4944530af..000000000 --- a/git2/include/git2/reflog.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_reflog_h__ -#define INCLUDE_git_reflog_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/reflog.h - * @brief Git reflog management routines - * @defgroup git_reflog Git reflog management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Read the reflog for the given reference - * - * If there is no reflog file for the given - * reference yet, an empty reflog object will - * be returned. - * - * The reflog must be freed manually by using - * git_reflog_free(). - * - * @param out pointer to reflog - * @param ref reference to read the reflog for - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reflog_read(git_reflog **out, const git_reference *ref); - -/** - * Write an existing in-memory reflog object back to disk - * using an atomic file lock. - * - * @param reflog an existing reflog object - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reflog_write(git_reflog *reflog); - -/** - * Add a new entry to the reflog. - * - * `msg` is optional and can be NULL. - * - * @param reflog an existing reflog object - * @param id the OID the reference is now pointing to - * @param committer the signature of the committer - * @param msg the reflog message - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reflog_append(git_reflog *reflog, const git_oid *id, const git_signature *committer, const char *msg); - -/** - * Rename the reflog for the given reference - * - * The reflog to be renamed is expected to already exist - * - * The new name will be checked for validity. - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param ref the reference - * @param name the new name of the reference - * @return 0 on success, GIT_EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_reflog_rename(git_reference *ref, const char *name); - -/** - * Delete the reflog for the given reference - * - * @param ref the reference - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reflog_delete(git_reference *ref); - -/** - * Get the number of log entries in a reflog - * - * @param reflog the previously loaded reflog - * @return the number of log entries - */ -GIT_EXTERN(size_t) git_reflog_entrycount(git_reflog *reflog); - -/** - * Lookup an entry by its index - * - * Requesting the reflog entry with an index of 0 (zero) will - * return the most recently created entry. - * - * @param reflog a previously loaded reflog - * @param idx the position of the entry to lookup. Should be greater than or - * equal to 0 (zero) and less than `git_reflog_entrycount()`. - * @return the entry; NULL if not found - */ -GIT_EXTERN(const git_reflog_entry *) git_reflog_entry_byindex(git_reflog *reflog, size_t idx); - -/** - * Remove an entry from the reflog by its index - * - * To ensure there's no gap in the log history, set `rewrite_previous_entry` - * param value to 1. When deleting entry `n`, member old_oid of entry `n-1` - * (if any) will be updated with the value of member new_oid of entry `n+1`. - * - * @param reflog a previously loaded reflog. - * - * @param idx the position of the entry to remove. Should be greater than or - * equal to 0 (zero) and less than `git_reflog_entrycount()`. - * - * @param rewrite_previous_entry 1 to rewrite the history; 0 otherwise. - * - * @return 0 on success, GIT_ENOTFOUND if the entry doesn't exist - * or an error code. - */ -GIT_EXTERN(int) git_reflog_drop( - git_reflog *reflog, - size_t idx, - int rewrite_previous_entry); - -/** - * Get the old oid - * - * @param entry a reflog entry - * @return the old oid - */ -GIT_EXTERN(const git_oid *) git_reflog_entry_id_old(const git_reflog_entry *entry); - -/** - * Get the new oid - * - * @param entry a reflog entry - * @return the new oid at this time - */ -GIT_EXTERN(const git_oid *) git_reflog_entry_id_new(const git_reflog_entry *entry); - -/** - * Get the committer of this entry - * - * @param entry a reflog entry - * @return the committer - */ -GIT_EXTERN(const git_signature *) git_reflog_entry_committer(const git_reflog_entry *entry); - -/** - * Get the log message - * - * @param entry a reflog entry - * @return the log msg - */ -GIT_EXTERN(const char *) git_reflog_entry_message(const git_reflog_entry *entry); - -/** - * Free the reflog - * - * @param reflog reflog to free - */ -GIT_EXTERN(void) git_reflog_free(git_reflog *reflog); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/refs.h b/git2/include/git2/refs.h deleted file mode 100644 index a0abbc339..000000000 --- a/git2/include/git2/refs.h +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_refs_h__ -#define INCLUDE_git_refs_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "strarray.h" - -/** - * @file git2/refs.h - * @brief Git reference management routines - * @defgroup git_reference Git reference management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Lookup a reference by name in a repository. - * - * The returned reference must be freed by the user. - * - * The name will be checked for validity. - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param out pointer to the looked-up reference - * @param repo the repository to look up the reference - * @param name the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...) - * @return 0 on success, ENOTFOUND, EINVALIDSPEC or an error code. - */ -GIT_EXTERN(int) git_reference_lookup(git_reference **out, git_repository *repo, const char *name); - -/** - * Lookup a reference by name and resolve immediately to OID. - * - * This function provides a quick way to resolve a reference name straight - * through to the object id that it refers to. This avoids having to - * allocate or free any `git_reference` objects for simple situations. - * - * The name will be checked for validity. - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param out Pointer to oid to be filled in - * @param repo The repository in which to look up the reference - * @param name The long name for the reference - * @return 0 on success, ENOTFOUND, EINVALIDSPEC or an error code. - */ -GIT_EXTERN(int) git_reference_name_to_id( - git_oid *out, git_repository *repo, const char *name); - -/** - * Create a new symbolic reference. - * - * A symbolic reference is a reference name that refers to another - * reference name. If the other name moves, the symbolic name will move, - * too. As a simple example, the "HEAD" reference might refer to - * "refs/heads/master" while on the "master" branch of a repository. - * - * The symbolic reference will be created in the repository and written to - * the disk. The generated reference object must be freed by the user. - * - * Valid reference names must follow one of two patterns: - * - * 1. Top-level names must contain only capital letters and underscores, - * and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD"). - * 2. Names prefixed with "refs/" can be almost anything. You must avoid - * the characters '~', '^', ':', '\\', '?', '[', and '*', and the - * sequences ".." and "@{" which have special meaning to revparse. - * - * This function will return an error if a reference already exists with the - * given name unless `force` is true, in which case it will be overwritten. - * - * @param out Pointer to the newly created reference - * @param repo Repository where that reference will live - * @param name The name of the reference - * @param target The target of the reference - * @param force Overwrite existing references - * @return 0 on success, EEXISTS, EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_reference_symbolic_create(git_reference **out, git_repository *repo, const char *name, const char *target, int force); - -/** - * Create a new direct reference. - * - * A direct reference (also called an object id reference) refers directly - * to a specific object id (a.k.a. OID or SHA) in the repository. The id - * permanently refers to the object (although the reference itself can be - * moved). For example, in libgit2 the direct ref "refs/tags/v0.17.0" - * refers to OID 5b9fac39d8a76b9139667c26a63e6b3f204b3977. - * - * The direct reference will be created in the repository and written to - * the disk. The generated reference object must be freed by the user. - * - * Valid reference names must follow one of two patterns: - * - * 1. Top-level names must contain only capital letters and underscores, - * and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD"). - * 2. Names prefixed with "refs/" can be almost anything. You must avoid - * the characters '~', '^', ':', '\\', '?', '[', and '*', and the - * sequences ".." and "@{" which have special meaning to revparse. - * - * This function will return an error if a reference already exists with the - * given name unless `force` is true, in which case it will be overwritten. - * - * @param out Pointer to the newly created reference - * @param repo Repository where that reference will live - * @param name The name of the reference - * @param id The object id pointed to by the reference. - * @param force Overwrite existing references - * @return 0 on success, EEXISTS, EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_reference_create(git_reference **out, git_repository *repo, const char *name, const git_oid *id, int force); - -/** - * Get the OID pointed to by a direct reference. - * - * Only available if the reference is direct (i.e. an object id reference, - * not a symbolic one). - * - * To find the OID of a symbolic ref, call `git_reference_resolve()` and - * then this function (or maybe use `git_reference_name_to_oid()` to - * directly resolve a reference name all the way through to an OID). - * - * @param ref The reference - * @return a pointer to the oid if available, NULL otherwise - */ -GIT_EXTERN(const git_oid *) git_reference_target(const git_reference *ref); - -/** - * Get full name to the reference pointed to by a symbolic reference. - * - * Only available if the reference is symbolic. - * - * @param ref The reference - * @return a pointer to the name if available, NULL otherwise - */ -GIT_EXTERN(const char *) git_reference_symbolic_target(const git_reference *ref); - -/** - * Get the type of a reference. - * - * Either direct (GIT_REF_OID) or symbolic (GIT_REF_SYMBOLIC) - * - * @param ref The reference - * @return the type - */ -GIT_EXTERN(git_ref_t) git_reference_type(const git_reference *ref); - -/** - * Get the full name of a reference. - * - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param ref The reference - * @return the full name for the ref - */ -GIT_EXTERN(const char *) git_reference_name(const git_reference *ref); - -/** - * Resolve a symbolic reference to a direct reference. - * - * This method iteratively peels a symbolic reference until it resolves to - * a direct reference to an OID. - * - * The peeled reference is returned in the `resolved_ref` argument, and - * must be freed manually once it's no longer needed. - * - * If a direct reference is passed as an argument, a copy of that - * reference is returned. This copy must be manually freed too. - * - * @param resolved_ref Pointer to the peeled reference - * @param ref The reference - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reference_resolve(git_reference **out, const git_reference *ref); - -/** - * Get the repository where a reference resides. - * - * @param ref The reference - * @return a pointer to the repo - */ -GIT_EXTERN(git_repository *) git_reference_owner(const git_reference *ref); - -/** - * Set the symbolic target of a reference. - * - * The reference must be a symbolic reference, otherwise this will fail. - * - * The reference will be automatically updated in memory and on disk. - * - * The target name will be checked for validity. - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param ref The reference - * @param target The new target for the reference - * @return 0 on success, EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_reference_symbolic_set_target(git_reference *ref, const char *target); - -/** - * Set the OID target of a reference. - * - * The reference must be a direct reference, otherwise this will fail. - * - * The reference will be automatically updated in memory and on disk. - * - * @param ref The reference - * @param id The new target OID for the reference - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reference_set_target(git_reference *ref, const git_oid *id); - -/** - * Rename an existing reference. - * - * This method works for both direct and symbolic references. - * - * The new name will be checked for validity. - * See `git_reference_create_symbolic()` for rules about valid names. - * - * The given git_reference will be updated in place. - * - * The reference will be immediately renamed in-memory and on disk. - * - * If the `force` flag is not enabled, and there's already - * a reference with the given name, the renaming will fail. - * - * IMPORTANT: - * The user needs to write a proper reflog entry if the - * reflog is enabled for the repository. We only rename - * the reflog if it exists. - * - * @param ref The reference to rename - * @param name The new name for the reference - * @param force Overwrite an existing reference - * @return 0 on success, EINVALIDSPEC, EEXISTS or an error code - * - */ -GIT_EXTERN(int) git_reference_rename(git_reference *ref, const char *name, int force); - -/** - * Delete an existing reference. - * - * This method works for both direct and symbolic references. - * - * The reference will be immediately removed on disk and from memory - * (i.e. freed). The given reference pointer will no longer be valid. - * - * @param ref The reference to remove - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reference_delete(git_reference *ref); - -/** - * Pack all the loose references in the repository. - * - * This method will load into the cache all the loose - * references on the repository and update the - * `packed-refs` file with them. - * - * Once the `packed-refs` file has been written properly, - * the loose references will be removed from disk. - * - * @param repo Repository where the loose refs will be packed - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reference_packall(git_repository *repo); - -/** - * Fill a list with all the references that can be found in a repository. - * - * Using the `list_flags` parameter, the listed references may be filtered - * by type (`GIT_REF_OID` or `GIT_REF_SYMBOLIC`) or using a bitwise OR of - * `git_ref_t` values. To include packed refs, include `GIT_REF_PACKED`. - * For convenience, use the value `GIT_REF_LISTALL` to obtain all - * references, including packed ones. - * - * The string array will be filled with the names of all references; these - * values are owned by the user and should be free'd manually when no - * longer needed, using `git_strarray_free()`. - * - * @param array Pointer to a git_strarray structure where - * the reference names will be stored - * @param repo Repository where to find the refs - * @param list_flags Filtering flags for the reference listing - * @return 0 or an error code - */ -GIT_EXTERN(int) git_reference_list(git_strarray *array, git_repository *repo, unsigned int list_flags); - -typedef int (*git_reference_foreach_cb)(const char *refname, void *payload); - -/** - * Perform a callback on each reference in the repository. - * - * Using the `list_flags` parameter, the references may be filtered by - * type (`GIT_REF_OID` or `GIT_REF_SYMBOLIC`) or using a bitwise OR of - * `git_ref_t` values. To include packed refs, include `GIT_REF_PACKED`. - * For convenience, use the value `GIT_REF_LISTALL` to obtain all - * references, including packed ones. - * - * The `callback` function will be called for each reference in the - * repository, receiving the name of the reference and the `payload` value - * passed to this method. Returning a non-zero value from the callback - * will terminate the iteration. - * - * @param repo Repository where to find the refs - * @param list_flags Filtering flags for the reference listing. - * @param callback Function which will be called for every listed ref - * @param payload Additional data to pass to the callback - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_reference_foreach( - git_repository *repo, - unsigned int list_flags, - git_reference_foreach_cb callback, - void *payload); - -/** - * Check if a reference has been loaded from a packfile. - * - * @param ref A git reference - * @return 0 in case it's not packed; 1 otherwise - */ -GIT_EXTERN(int) git_reference_is_packed(git_reference *ref); - -/** - * Reload a reference from disk. - * - * Reference pointers can become outdated if the Git repository is - * accessed simultaneously by other clients while the library is open. - * - * This method forces a reload of the reference from disk, to ensure that - * the provided information is still reliable. - * - * If the reload fails (e.g. the reference no longer exists on disk, or - * has become corrupted), an error code will be returned and the reference - * pointer will be invalidated and freed. - * - * @param ref The reference to reload - * @return 0 on success, or an error code - */ -GIT_EXTERN(int) git_reference_reload(git_reference *ref); - -/** - * Free the given reference. - * - * @param ref git_reference - */ -GIT_EXTERN(void) git_reference_free(git_reference *ref); - -/** - * Compare two references. - * - * @param ref1 The first git_reference - * @param ref2 The second git_reference - * @return 0 if the same, else a stable but meaningless ordering. - */ -GIT_EXTERN(int) git_reference_cmp(git_reference *ref1, git_reference *ref2); - -/** - * Perform a callback on each reference in the repository whose name - * matches the given pattern. - * - * This function acts like `git_reference_foreach()` with an additional - * pattern match being applied to the reference name before issuing the - * callback function. See that function for more information. - * - * The pattern is matched using fnmatch or "glob" style where a '*' matches - * any sequence of letters, a '?' matches any letter, and square brackets - * can be used to define character ranges (such as "[0-9]" for digits). - * - * @param repo Repository where to find the refs - * @param glob Pattern to match (fnmatch-style) against reference name. - * @param list_flags Filtering flags for the reference listing. - * @param callback Function which will be called for every listed ref - * @param payload Additional data to pass to the callback - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_reference_foreach_glob( - git_repository *repo, - const char *glob, - unsigned int list_flags, - git_reference_foreach_cb callback, - void *payload); - -/** - * Check if a reflog exists for the specified reference. - * - * @param ref A git reference - * - * @return 0 when no reflog can be found, 1 when it exists; - * otherwise an error code. - */ -GIT_EXTERN(int) git_reference_has_log(git_reference *ref); - -/** - * Check if a reference is a local branch. - * - * @param ref A git reference - * - * @return 1 when the reference lives in the refs/heads - * namespace; 0 otherwise. - */ -GIT_EXTERN(int) git_reference_is_branch(git_reference *ref); - -/** - * Check if a reference is a remote tracking branch - * - * @param ref A git reference - * - * @return 1 when the reference lives in the refs/remotes - * namespace; 0 otherwise. - */ -GIT_EXTERN(int) git_reference_is_remote(git_reference *ref); - - -typedef enum { - GIT_REF_FORMAT_NORMAL = 0, - - /** - * Control whether one-level refnames are accepted - * (i.e., refnames that do not contain multiple /-separated - * components). Those are expected to be written only using - * uppercase letters and underscore (FETCH_HEAD, ...) - */ - GIT_REF_FORMAT_ALLOW_ONELEVEL = (1 << 0), - - /** - * Interpret the provided name as a reference pattern for a - * refspec (as used with remote repositories). If this option - * is enabled, the name is allowed to contain a single * () - * in place of a one full pathname component - * (e.g., foo//bar but not foo/bar). - */ - GIT_REF_FORMAT_REFSPEC_PATTERN = (1 << 1), -} git_reference_normalize_t; - -/** - * Normalize reference name and check validity. - * - * This will normalize the reference name by removing any leading slash - * '/' characters and collapsing runs of adjacent slashes between name - * components into a single slash. - * - * Once normalized, if the reference name is valid, it will be returned in - * the user allocated buffer. - * - * See `git_reference_create_symbolic()` for rules about valid names. - * - * @param buffer_out User allocated buffer to store normalized name - * @param buffer_size Size of buffer_out - * @param name Reference name to be checked. - * @param flags Flags to constrain name validation rules - see the - * GIT_REF_FORMAT constants above. - * @return 0 on success, GIT_EBUFS if buffer is too small, EINVALIDSPEC - * or an error code. - */ -GIT_EXTERN(int) git_reference_normalize_name( - char *buffer_out, - size_t buffer_size, - const char *name, - unsigned int flags); - -/** - * Recursively peel reference until object of the specified type is found. - * - * The retrieved `peeled` object is owned by the repository - * and should be closed with the `git_object_free` method. - * - * If you pass `GIT_OBJ_ANY` as the target type, then the object - * will be peeled until a non-tag object is met. - * - * @param peeled Pointer to the peeled git_object - * @param ref The reference to be processed - * @param target_type The type of the requested object (GIT_OBJ_COMMIT, - * GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY). - * @return 0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code - */ -GIT_EXTERN(int) git_reference_peel( - git_object **out, - git_reference *ref, - git_otype type); - -/** - * Ensure the reference name is well-formed. - * - * Valid reference names must follow one of two patterns: - * - * 1. Top-level names must contain only capital letters and underscores, - * and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD"). - * 2. Names prefixed with "refs/" can be almost anything. You must avoid - * the characters '~', '^', ':', '\\', '?', '[', and '*', and the - * sequences ".." and "@{" which have special meaning to revparse. - * - * @param refname name to be checked. - * @return 1 if the reference name is acceptable; 0 if it isn't - */ -GIT_EXTERN(int) git_reference_is_valid_name(const char *refname); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/refspec.h b/git2/include/git2/refspec.h deleted file mode 100644 index ee06f8eca..000000000 --- a/git2/include/git2/refspec.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_refspec_h__ -#define INCLUDE_git_refspec_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/refspec.h - * @brief Git refspec attributes - * @defgroup git_refspec Git refspec attributes - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Get the source specifier - * - * @param refspec the refspec - * @return the refspec's source specifier - */ -GIT_EXTERN(const char *) git_refspec_src(const git_refspec *refspec); - -/** - * Get the destination specifier - * - * @param refspec the refspec - * @return the refspec's destination specifier - */ -GIT_EXTERN(const char *) git_refspec_dst(const git_refspec *refspec); - -/** - * Get the force update setting - * - * @param refspec the refspec - * @return 1 if force update has been set, 0 otherwise - */ -GIT_EXTERN(int) git_refspec_force(const git_refspec *refspec); - -/** - * Check if a refspec's source descriptor matches a reference - * - * @param refspec the refspec - * @param refname the name of the reference to check - * @return 1 if the refspec matches, 0 otherwise - */ -GIT_EXTERN(int) git_refspec_src_matches(const git_refspec *refspec, const char *refname); - -/** - * Transform a reference to its target following the refspec's rules - * - * @param out where to store the target name - * @param outlen the size of the `out` buffer - * @param spec the refspec - * @param name the name of the reference to transform - * @return 0, GIT_EBUFS or another error - */ -GIT_EXTERN(int) git_refspec_transform(char *out, size_t outlen, const git_refspec *spec, const char *name); - -GIT_END_DECL - -#endif diff --git a/git2/include/git2/remote.h b/git2/include/git2/remote.h deleted file mode 100644 index a0f5d5246..000000000 --- a/git2/include/git2/remote.h +++ /dev/null @@ -1,465 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_remote_h__ -#define INCLUDE_git_remote_h__ - -#include "common.h" -#include "repository.h" -#include "refspec.h" -#include "net.h" -#include "indexer.h" -#include "strarray.h" -#include "transport.h" - -/** - * @file git2/remote.h - * @brief Git remote management functions - * @defgroup git_remote remote management functions - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -typedef int (*git_remote_rename_problem_cb)(const char *problematic_refspec, void *payload); -/* - * TODO: This functions still need to be implemented: - * - _listcb/_foreach - * - _add - * - _rename - * - _del (needs support from config) - */ - -/** - * Add a remote with the default fetch refspec to the repository's configuration. This - * calls git_remote_save before returning. - * - * @param out the resulting remote - * @param repo the repository in which to create the remote - * @param name the remote's name - * @param url the remote's url - * @return 0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code - */ -GIT_EXTERN(int) git_remote_create( - git_remote **out, - git_repository *repo, - const char *name, - const char *url); - -/** - * Create a remote in memory - * - * Create a remote with the given refspec in memory. You can use - * this when you have a URL instead of a remote's name. Note that in-memory - * remotes cannot be converted to persisted remotes. - * - * The name, when provided, will be checked for validity. - * See `git_tag_create()` for rules about valid names. - * - * @param out pointer to the new remote object - * @param repo the associated repository. May be NULL for a "dangling" remote. - * @param fetch the fetch refspec to use for this remote. May be NULL for defaults. - * @param url the remote repository's URL - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_create_inmemory( - git_remote **out, - git_repository *repo, - const char *fetch, - const char *url); - -/** - * Sets the owning repository for the remote. This is only allowed on - * dangling remotes. - * - * @param remote the remote to configure - * @param repo the repository that will own the remote - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_set_repository(git_remote *remote, git_repository *repo); - -/** - * Get the information for a particular remote - * - * The name will be checked for validity. - * See `git_tag_create()` for rules about valid names. - * - * @param out pointer to the new remote object - * @param repo the associated repository - * @param name the remote's name - * @return 0, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_remote_load(git_remote **out, git_repository *repo, const char *name); - -/** - * Save a remote to its repository's configuration - * - * One can't save a in-memory remote. Doing so will - * result in a GIT_EINVALIDSPEC being returned. - * - * @param remote the remote to save to config - * @return 0, GIT_EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_remote_save(const git_remote *remote); - -/** - * Get the remote's name - * - * @param remote the remote - * @return a pointer to the name or NULL for in-memory remotes - */ -GIT_EXTERN(const char *) git_remote_name(const git_remote *remote); - -/** - * Get the remote's url - * - * @param remote the remote - * @return a pointer to the url - */ -GIT_EXTERN(const char *) git_remote_url(const git_remote *remote); - -/** - * Get the remote's url for pushing - * - * @param remote the remote - * @return a pointer to the url or NULL if no special url for pushing is set - */ -GIT_EXTERN(const char *) git_remote_pushurl(const git_remote *remote); - -/** - * Set the remote's url - * - * Existing connections will not be updated. - * - * @param remote the remote - * @param url the url to set - * @return 0 or an error value - */ -GIT_EXTERN(int) git_remote_set_url(git_remote *remote, const char* url); - -/** - * Set the remote's url for pushing - * - * Existing connections will not be updated. - * - * @param remote the remote - * @param url the url to set or NULL to clear the pushurl - * @return 0 or an error value - */ -GIT_EXTERN(int) git_remote_set_pushurl(git_remote *remote, const char* url); - -/** - * Set the remote's fetch refspec - * - * @param remote the remote - * @apram spec the new fetch refspec - * @return 0 or an error value - */ -GIT_EXTERN(int) git_remote_set_fetchspec(git_remote *remote, const char *spec); - -/** - * Get the fetch refspec - * - * @param remote the remote - * @return a pointer to the fetch refspec or NULL if it doesn't exist - */ -GIT_EXTERN(const git_refspec *) git_remote_fetchspec(const git_remote *remote); - -/** - * Set the remote's push refspec - * - * @param remote the remote - * @param spec the new push refspec - * @return 0 or an error value - */ -GIT_EXTERN(int) git_remote_set_pushspec(git_remote *remote, const char *spec); - -/** - * Get the push refspec - * - * @param remote the remote - * @return a pointer to the push refspec or NULL if it doesn't exist - */ - -GIT_EXTERN(const git_refspec *) git_remote_pushspec(const git_remote *remote); - -/** - * Open a connection to a remote - * - * The transport is selected based on the URL. The direction argument - * is due to a limitation of the git protocol (over TCP or SSH) which - * starts up a specific binary which can only do the one or the other. - * - * @param remote the remote to connect to - * @param direction whether you want to receive or send data - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_connect(git_remote *remote, git_direction direction); - -/** - * Get a list of refs at the remote - * - * The remote (or more exactly its transport) must be connected. The - * memory belongs to the remote. - * - * If you a return a non-zero value from the callback, this will stop - * looping over the refs. - * - * @param remote the remote - * @param list_cb function to call with each ref discovered at the remote - * @param payload additional data to pass to the callback - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_remote_ls(git_remote *remote, git_headlist_cb list_cb, void *payload); - -/** - * Download the packfile - * - * Negotiate what objects should be downloaded and download the - * packfile with those objects. The packfile is downloaded with a - * temporary filename, as it's final name is not known yet. If there - * was no packfile needed (all the objects were available locally), - * filename will be NULL and the function will return success. - * - * @param remote the remote to download from - * @param progress_cb function to call with progress information. Be aware that - * this is called inline with network and indexing operations, so performance - * may be affected. - * @param progress_payload payload for the progress callback - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_download( - git_remote *remote, - git_transfer_progress_callback progress_cb, - void *payload); - -/** - * Check whether the remote is connected - * - * Check whether the remote's underlying transport is connected to the - * remote host. - * - * @param remote the remote - * @return 1 if it's connected, 0 otherwise. - */ -GIT_EXTERN(int) git_remote_connected(git_remote *remote); - -/** - * Cancel the operation - * - * At certain points in its operation, the network code checks whether - * the operation has been cancelled and if so stops the operation. - * - * @param remote the remote - */ -GIT_EXTERN(void) git_remote_stop(git_remote *remote); - -/** - * Disconnect from the remote - * - * Close the connection to the remote and free the underlying - * transport. - * - * @param remote the remote to disconnect from - */ -GIT_EXTERN(void) git_remote_disconnect(git_remote *remote); - -/** - * Free the memory associated with a remote - * - * This also disconnects from the remote, if the connection - * has not been closed yet (using git_remote_disconnect). - * - * @param remote the remote to free - */ -GIT_EXTERN(void) git_remote_free(git_remote *remote); - -/** - * Update the tips to the new state - * - * @param remote the remote to update - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_update_tips(git_remote *remote); - -/** - * Return whether a string is a valid remote URL - * - * @param url the url to check - * @param 1 if the url is valid, 0 otherwise - */ -GIT_EXTERN(int) git_remote_valid_url(const char *url); - -/** - * Return whether the passed URL is supported by this version of the library. - * - * @param url the url to check - * @return 1 if the url is supported, 0 otherwise -*/ -GIT_EXTERN(int) git_remote_supported_url(const char* url); - -/** - * Get a list of the configured remotes for a repo - * - * The string array must be freed by the user. - * - * @param out a string array which receives the names of the remotes - * @param repo the repository to query - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_list(git_strarray *out, git_repository *repo); - -/** - * Choose whether to check the server's certificate (applies to HTTPS only) - * - * @param remote the remote to configure - * @param check whether to check the server's certificate (defaults to yes) - */ -GIT_EXTERN(void) git_remote_check_cert(git_remote *remote, int check); - -/** - * Set a credentials acquisition callback for this remote. If the remote is - * not available for anonymous access, then you must set this callback in order - * to provide credentials to the transport at the time of authentication - * failure so that retry can be performed. - * - * @param remote the remote to configure - * @param cred_acquire_cb The credentials acquisition callback to use (defaults - * to NULL) - */ -GIT_EXTERN(void) git_remote_set_cred_acquire_cb( - git_remote *remote, - git_cred_acquire_cb cred_acquire_cb, - void *payload); - -/** - * Sets a custom transport for the remote. The caller can use this function - * to bypass the automatic discovery of a transport by URL scheme (i.e. - * http://, https://, git://) and supply their own transport to be used - * instead. After providing the transport to a remote using this function, - * the transport object belongs exclusively to that remote, and the remote will - * free it when it is freed with git_remote_free. - * - * @param remote the remote to configure - * @param transport the transport object for the remote to use - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_set_transport( - git_remote *remote, - git_transport *transport); - -/** - * Argument to the completion callback which tells it which operation - * finished. - */ -typedef enum git_remote_completion_type { - GIT_REMOTE_COMPLETION_DOWNLOAD, - GIT_REMOTE_COMPLETION_INDEXING, - GIT_REMOTE_COMPLETION_ERROR, -} git_remote_completion_type; - -/** - * The callback settings structure - * - * Set the calbacks to be called by the remote. - */ -struct git_remote_callbacks { - unsigned int version; - void (*progress)(const char *str, int len, void *data); - int (*completion)(git_remote_completion_type type, void *data); - int (*update_tips)(const char *refname, const git_oid *a, const git_oid *b, void *data); - void *payload; -}; - -#define GIT_REMOTE_CALLBACKS_VERSION 1 -#define GIT_REMOTE_CALLBACKS_INIT {GIT_REMOTE_CALLBACKS_VERSION} - -/** - * Set the callbacks for a remote - * - * Note that the remote keeps its own copy of the data and you need to - * call this function again if you want to change the callbacks. - * - * @param remote the remote to configure - * @param callbacks a pointer to the user's callback settings - * @return 0 or an error code - */ -GIT_EXTERN(int) git_remote_set_callbacks(git_remote *remote, git_remote_callbacks *callbacks); - -/** - * Get the statistics structure that is filled in by the fetch operation. - */ -GIT_EXTERN(const git_transfer_progress *) git_remote_stats(git_remote *remote); - -typedef enum { - GIT_REMOTE_DOWNLOAD_TAGS_UNSET, - GIT_REMOTE_DOWNLOAD_TAGS_NONE, - GIT_REMOTE_DOWNLOAD_TAGS_AUTO, - GIT_REMOTE_DOWNLOAD_TAGS_ALL -} git_remote_autotag_option_t; - -/** - * Retrieve the tag auto-follow setting - * - * @param remote the remote to query - * @return the auto-follow setting - */ -GIT_EXTERN(git_remote_autotag_option_t) git_remote_autotag(git_remote *remote); - -/** - * Set the tag auto-follow setting - * - * @param remote the remote to configure - * @param value a GIT_REMOTE_DOWNLOAD_TAGS value - */ -GIT_EXTERN(void) git_remote_set_autotag( - git_remote *remote, - git_remote_autotag_option_t value); - -/** - * Give the remote a new name - * - * All remote-tracking branches and configuration settings - * for the remote are updated. - * - * The new name will be checked for validity. - * See `git_tag_create()` for rules about valid names. - * - * A temporary in-memory remote cannot be given a name with this method. - * - * @param remote the remote to rename - * @param new_name the new name the remote should bear - * @param callback Optional callback to notify the consumer of fetch refspecs - * that haven't been automatically updated and need potential manual tweaking. - * @param payload Additional data to pass to the callback - * @return 0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code - */ -GIT_EXTERN(int) git_remote_rename( - git_remote *remote, - const char *new_name, - git_remote_rename_problem_cb callback, - void *payload); - -/** - * Retrieve the update FETCH_HEAD setting. - * - * @param remote the remote to query - * @return the update FETCH_HEAD setting - */ -GIT_EXTERN(int) git_remote_update_fetchhead(git_remote *remote); - -/** - * Sets the update FETCH_HEAD setting. By default, FETCH_HEAD will be - * updated on every fetch. Set to 0 to disable. - * - * @param remote the remote to configure - * @param value 0 to disable updating FETCH_HEAD - */ -GIT_EXTERN(void) git_remote_set_update_fetchhead(git_remote *remote, int value); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/repository.h b/git2/include/git2/repository.h deleted file mode 100644 index e207e5bb5..000000000 --- a/git2/include/git2/repository.h +++ /dev/null @@ -1,647 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_repository_h__ -#define INCLUDE_git_repository_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/repository.h - * @brief Git repository management routines - * @defgroup git_repository Git repository management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Open a git repository. - * - * The 'path' argument must point to either a git repository - * folder, or an existing work dir. - * - * The method will automatically detect if 'path' is a normal - * or bare repository or fail is 'path' is neither. - * - * @param out pointer to the repo which will be opened - * @param path the path to the repository - * @return 0 or an error code - */ -GIT_EXTERN(int) git_repository_open(git_repository **out, const char *path); - -/** - * Create a "fake" repository to wrap an object database - * - * Create a repository object to wrap an object database to be used - * with the API when all you have is an object database. This doesn't - * have any paths associated with it, so use with care. - * - * @param out pointer to the repo - * @param odb the object database to wrap - * @return 0 or an error code - */ -GIT_EXTERN(int) git_repository_wrap_odb(git_repository **out, git_odb *odb); - -/** - * Look for a git repository and copy its path in the given buffer. - * The lookup start from base_path and walk across parent directories - * if nothing has been found. The lookup ends when the first repository - * is found, or when reaching a directory referenced in ceiling_dirs - * or when the filesystem changes (in case across_fs is true). - * - * The method will automatically detect if the repository is bare - * (if there is a repository). - * - * @param path_out The user allocated buffer which will - * contain the found path. - * - * @param path_size repository_path size - * - * @param start_path The base path where the lookup starts. - * - * @param across_fs If true, then the lookup will not stop when a - * filesystem device change is detected while exploring parent directories. - * - * @param ceiling_dirs A GIT_PATH_LIST_SEPARATOR separated list of - * absolute symbolic link free paths. The lookup will stop when any - * of this paths is reached. Note that the lookup always performs on - * start_path no matter start_path appears in ceiling_dirs ceiling_dirs - * might be NULL (which is equivalent to an empty string) - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_repository_discover( - char *path_out, - size_t path_size, - const char *start_path, - int across_fs, - const char *ceiling_dirs); - -/** - * Option flags for `git_repository_open_ext`. - * - * * GIT_REPOSITORY_OPEN_NO_SEARCH - Only open the repository if it can be - * immediately found in the start_path. Do not walk up from the - * start_path looking at parent directories. - * * GIT_REPOSITORY_OPEN_CROSS_FS - Unless this flag is set, open will not - * continue searching across filesystem boundaries (i.e. when `st_dev` - * changes from the `stat` system call). (E.g. Searching in a user's home - * directory "/home/user/source/" will not return "/.git/" as the found - * repo if "/" is a different filesystem than "/home".) - */ -typedef enum { - GIT_REPOSITORY_OPEN_NO_SEARCH = (1 << 0), - GIT_REPOSITORY_OPEN_CROSS_FS = (1 << 1), -} git_repository_open_flag_t; - -/** - * Find and open a repository with extended controls. - * - * @param out Pointer to the repo which will be opened. This can - * actually be NULL if you only want to use the error code to - * see if a repo at this path could be opened. - * @param path Path to open as git repository. If the flags - * permit "searching", then this can be a path to a subdirectory - * inside the working directory of the repository. - * @param flags A combination of the GIT_REPOSITORY_OPEN flags above. - * @param ceiling_dirs A GIT_PATH_LIST_SEPARATOR delimited list of path - * prefixes at which the search for a containing repository should - * terminate. - * @return 0 on success, GIT_ENOTFOUND if no repository could be found, - * or -1 if there was a repository but open failed for some reason - * (such as repo corruption or system errors). - */ -GIT_EXTERN(int) git_repository_open_ext( - git_repository **out, - const char *path, - unsigned int flags, - const char *ceiling_dirs); - -/** - * Free a previously allocated repository - * - * Note that after a repository is free'd, all the objects it has spawned - * will still exist until they are manually closed by the user - * with `git_object_free`, but accessing any of the attributes of - * an object without a backing repository will result in undefined - * behavior - * - * @param repo repository handle to close. If NULL nothing occurs. - */ -GIT_EXTERN(void) git_repository_free(git_repository *repo); - -/** - * Creates a new Git repository in the given folder. - * - * TODO: - * - Reinit the repository - * - * @param out pointer to the repo which will be created or reinitialized - * @param path the path to the repository - * @param is_bare if true, a Git repository without a working directory is - * created at the pointed path. If false, provided path will be - * considered as the working directory into which the .git directory - * will be created. - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_repository_init( - git_repository **out, - const char *path, - unsigned is_bare); - -/** - * Option flags for `git_repository_init_ext`. - * - * These flags configure extra behaviors to `git_repository_init_ext`. - * In every case, the default behavior is the zero value (i.e. flag is - * not set). Just OR the flag values together for the `flags` parameter - * when initializing a new repo. Details of individual values are: - * - * * BARE - Create a bare repository with no working directory. - * * NO_REINIT - Return an EEXISTS error if the repo_path appears to - * already be an git repository. - * * NO_DOTGIT_DIR - Normally a "/.git/" will be appended to the repo - * path for non-bare repos (if it is not already there), but - * passing this flag prevents that behavior. - * * MKDIR - Make the repo_path (and workdir_path) as needed. Init is - * always willing to create the ".git" directory even without this - * flag. This flag tells init to create the trailing component of - * the repo and workdir paths as needed. - * * MKPATH - Recursively make all components of the repo and workdir - * paths as necessary. - * * EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to - * initialize a new repo. This flags enables external templates, - * looking the "template_path" from the options if set, or the - * `init.templatedir` global config if not, or falling back on - * "/usr/share/git-core/templates" if it exists. - */ -typedef enum { - GIT_REPOSITORY_INIT_BARE = (1u << 0), - GIT_REPOSITORY_INIT_NO_REINIT = (1u << 1), - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR = (1u << 2), - GIT_REPOSITORY_INIT_MKDIR = (1u << 3), - GIT_REPOSITORY_INIT_MKPATH = (1u << 4), - GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE = (1u << 5), -} git_repository_init_flag_t; - -/** - * Mode options for `git_repository_init_ext`. - * - * Set the mode field of the `git_repository_init_options` structure - * either to the custom mode that you would like, or to one of the - * following modes: - * - * * SHARED_UMASK - Use permissions configured by umask - the default. - * * SHARED_GROUP - Use "--shared=group" behavior, chmod'ing the new repo - * to be group writable and "g+sx" for sticky group assignment. - * * SHARED_ALL - Use "--shared=all" behavior, adding world readability. - * * Anything else - Set to custom value. - */ -typedef enum { - GIT_REPOSITORY_INIT_SHARED_UMASK = 0, - GIT_REPOSITORY_INIT_SHARED_GROUP = 0002775, - GIT_REPOSITORY_INIT_SHARED_ALL = 0002777, -} git_repository_init_mode_t; - -/** - * Extended options structure for `git_repository_init_ext`. - * - * This contains extra options for `git_repository_init_ext` that enable - * additional initialization features. The fields are: - * - * * flags - Combination of GIT_REPOSITORY_INIT flags above. - * * mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_... - * constants above, or to a custom value that you would like. - * * workdir_path - The path to the working dir or NULL for default (i.e. - * repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH, - * IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not - * the "natural" working directory, a .git gitlink file will be - * created here linking to the repo_path. - * * description - If set, this will be used to initialize the "description" - * file in the repository, instead of using the template content. - * * template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set, - * this contains the path to use for the template directory. If - * this is NULL, the config or default directory options will be - * used instead. - * * initial_head - The name of the head to point HEAD at. If NULL, then - * this will be treated as "master" and the HEAD ref will be set - * to "refs/heads/master". If this begins with "refs/" it will be - * used verbatim; otherwise "refs/heads/" will be prefixed. - * * origin_url - If this is non-NULL, then after the rest of the - * repository initialization is completed, an "origin" remote - * will be added pointing to this URL. - */ -typedef struct { - unsigned int version; - uint32_t flags; - uint32_t mode; - const char *workdir_path; - const char *description; - const char *template_path; - const char *initial_head; - const char *origin_url; -} git_repository_init_options; - -#define GIT_REPOSITORY_INIT_OPTIONS_VERSION 1 -#define GIT_REPOSITORY_INIT_OPTIONS_INIT {GIT_REPOSITORY_INIT_OPTIONS_VERSION} - -/** - * Create a new Git repository in the given folder with extended controls. - * - * This will initialize a new git repository (creating the repo_path - * if requested by flags) and working directory as needed. It will - * auto-detect the case sensitivity of the file system and if the - * file system supports file mode bits correctly. - * - * @param out Pointer to the repo which will be created or reinitialized. - * @param repo_path The path to the repository. - * @param opts Pointer to git_repository_init_options struct. - * @return 0 or an error code on failure. - */ -GIT_EXTERN(int) git_repository_init_ext( - git_repository **out, - const char *repo_path, - git_repository_init_options *opts); - -/** - * Retrieve and resolve the reference pointed at by HEAD. - * - * The returned `git_reference` will be owned by caller and - * `git_reference_free()` must be called when done with it to release the - * allocated memory and prevent a leak. - * - * @param out pointer to the reference which will be retrieved - * @param repo a repository object - * - * @return 0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing - * branch, GIT_ENOTFOUND when HEAD is missing; an error code otherwise - */ -GIT_EXTERN(int) git_repository_head(git_reference **out, git_repository *repo); - -/** - * Check if a repository's HEAD is detached - * - * A repository's HEAD is detached when it points directly to a commit - * instead of a branch. - * - * @param repo Repo to test - * @return 1 if HEAD is detached, 0 if it's not; error code if there - * was an error. - */ -GIT_EXTERN(int) git_repository_head_detached(git_repository *repo); - -/** - * Check if the current branch is an orphan - * - * An orphan branch is one named from HEAD but which doesn't exist in - * the refs namespace, because it doesn't have any commit to point to. - * - * @param repo Repo to test - * @return 1 if the current branch is an orphan, 0 if it's not; error - * code if there was an error - */ -GIT_EXTERN(int) git_repository_head_orphan(git_repository *repo); - -/** - * Check if a repository is empty - * - * An empty repository has just been initialized and contains - * no references. - * - * @param repo Repo to test - * @return 1 if the repository is empty, 0 if it isn't, error code - * if the repository is corrupted - */ -GIT_EXTERN(int) git_repository_is_empty(git_repository *repo); - -/** - * Get the path of this repository - * - * This is the path of the `.git` folder for normal repositories, - * or of the repository itself for bare repositories. - * - * @param repo A repository object - * @return the path to the repository - */ -GIT_EXTERN(const char *) git_repository_path(git_repository *repo); - -/** - * Get the path of the working directory for this repository - * - * If the repository is bare, this function will always return - * NULL. - * - * @param repo A repository object - * @return the path to the working dir, if it exists - */ -GIT_EXTERN(const char *) git_repository_workdir(git_repository *repo); - -/** - * Set the path to the working directory for this repository - * - * The working directory doesn't need to be the same one - * that contains the `.git` folder for this repository. - * - * If this repository is bare, setting its working directory - * will turn it into a normal repository, capable of performing - * all the common workdir operations (checkout, status, index - * manipulation, etc). - * - * @param repo A repository object - * @param workdir The path to a working directory - * @param update_gitlink Create/update gitlink in workdir and set config - * "core.worktree" (if workdir is not the parent of the .git directory) - * @return 0, or an error code - */ -GIT_EXTERN(int) git_repository_set_workdir( - git_repository *repo, const char *workdir, int update_gitlink); - -/** - * Check if a repository is bare - * - * @param repo Repo to test - * @return 1 if the repository is bare, 0 otherwise. - */ -GIT_EXTERN(int) git_repository_is_bare(git_repository *repo); - -/** - * Get the configuration file for this repository. - * - * If a configuration file has not been set, the default - * config set for the repository will be returned, including - * global and system configurations (if they are available). - * - * The configuration file must be freed once it's no longer - * being used by the user. - * - * @param out Pointer to store the loaded config file - * @param repo A repository object - * @return 0, or an error code - */ -GIT_EXTERN(int) git_repository_config(git_config **out, git_repository *repo); - -/** - * Set the configuration file for this repository - * - * This configuration file will be used for all configuration - * queries involving this repository. - * - * The repository will keep a reference to the config file; - * the user must still free the config after setting it - * to the repository, or it will leak. - * - * @param repo A repository object - * @param config A Config object - */ -GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *config); - -/** - * Get the Object Database for this repository. - * - * If a custom ODB has not been set, the default - * database for the repository will be returned (the one - * located in `.git/objects`). - * - * The ODB must be freed once it's no longer being used by - * the user. - * - * @param out Pointer to store the loaded ODB - * @param repo A repository object - * @return 0, or an error code - */ -GIT_EXTERN(int) git_repository_odb(git_odb **out, git_repository *repo); - -/** - * Set the Object Database for this repository - * - * The ODB will be used for all object-related operations - * involving this repository. - * - * The repository will keep a reference to the ODB; the user - * must still free the ODB object after setting it to the - * repository, or it will leak. - * - * @param repo A repository object - * @param odb An ODB object - */ -GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb); - -/** - * Get the Index file for this repository. - * - * If a custom index has not been set, the default - * index for the repository will be returned (the one - * located in `.git/index`). - * - * The index must be freed once it's no longer being used by - * the user. - * - * @param out Pointer to store the loaded index - * @param repo A repository object - * @return 0, or an error code - */ -GIT_EXTERN(int) git_repository_index(git_index **out, git_repository *repo); - -/** - * Set the index file for this repository - * - * This index will be used for all index-related operations - * involving this repository. - * - * The repository will keep a reference to the index file; - * the user must still free the index after setting it - * to the repository, or it will leak. - * - * @param repo A repository object - * @param index An index object - */ -GIT_EXTERN(void) git_repository_set_index(git_repository *repo, git_index *index); - -/** - * Retrieve git's prepared message - * - * Operations such as git revert/cherry-pick/merge with the -n option - * stop just short of creating a commit with the changes and save - * their prepared message in .git/MERGE_MSG so the next git-commit - * execution can present it to the user for them to amend if they - * wish. - * - * Use this function to get the contents of this file. Don't forget to - * remove the file after you create the commit. - * - * @param out Buffer to write data into or NULL to just read required size - * @param len Length of buffer in bytes - * @param repo Repository to read prepared message from - * @return Bytes written to buffer, GIT_ENOTFOUND if no message, or -1 on error - */ -GIT_EXTERN(int) git_repository_message(char *out, size_t len, git_repository *repo); - -/** - * Remove git's prepared message. - * - * Remove the message that `git_repository_message` retrieves. - */ -GIT_EXTERN(int) git_repository_message_remove(git_repository *repo); - -/** - * Remove all the metadata associated with an ongoing git merge, including - * MERGE_HEAD, MERGE_MSG, etc. - * - * @param repo A repository object - * @return 0 on success, or error - */ -GIT_EXTERN(int) git_repository_merge_cleanup(git_repository *repo); - -typedef int (*git_repository_fetchhead_foreach_cb)(const char *ref_name, - const char *remote_url, - const git_oid *oid, - unsigned int is_merge, - void *payload); - -/** - * Call callback 'callback' for each entry in the given FETCH_HEAD file. - * - * @param repo A repository object - * @param callback Callback function - * @param payload Pointer to callback data (optional) - * @return 0 on success, GIT_ENOTFOUND, GIT_EUSER or error - */ -GIT_EXTERN(int) git_repository_fetchhead_foreach(git_repository *repo, - git_repository_fetchhead_foreach_cb callback, - void *payload); - -typedef int (*git_repository_mergehead_foreach_cb)(const git_oid *oid, - void *payload); - -/** - * If a merge is in progress, call callback 'cb' for each commit ID in the - * MERGE_HEAD file. - * - * @param repo A repository object - * @param callback Callback function - * @param apyload Pointer to callback data (optional) - * @return 0 on success, GIT_ENOTFOUND, GIT_EUSER or error - */ -GIT_EXTERN(int) git_repository_mergehead_foreach(git_repository *repo, - git_repository_mergehead_foreach_cb callback, - void *payload); - -/** - * Calculate hash of file using repository filtering rules. - * - * If you simply want to calculate the hash of a file on disk with no filters, - * you can just use the `git_odb_hashfile()` API. However, if you want to - * hash a file in the repository and you want to apply filtering rules (e.g. - * crlf filters) before generating the SHA, then use this function. - * - * @param out Output value of calculated SHA - * @param repo Repository pointer - * @param path Path to file on disk whose contents should be hashed. If the - * repository is not NULL, this can be a relative path. - * @param type The object type to hash as (e.g. GIT_OBJ_BLOB) - * @param as_path The path to use to look up filtering rules. If this is - * NULL, then the `path` parameter will be used instead. If - * this is passed as the empty string, then no filters will be - * applied when calculating the hash. - */ -GIT_EXTERN(int) git_repository_hashfile( - git_oid *out, - git_repository *repo, - const char *path, - git_otype type, - const char *as_path); - -/** - * Make the repository HEAD point to the specified reference. - * - * If the provided reference points to a Tree or a Blob, the HEAD is - * unaltered and -1 is returned. - * - * If the provided reference points to a branch, the HEAD will point - * to that branch, staying attached, or become attached if it isn't yet. - * If the branch doesn't exist yet, no error will be return. The HEAD - * will then be attached to an unborn branch. - * - * Otherwise, the HEAD will be detached and will directly point to - * the Commit. - * - * @param repo Repository pointer - * @param refname Canonical name of the reference the HEAD should point at - * @return 0 on success, or an error code - */ -GIT_EXTERN(int) git_repository_set_head( - git_repository* repo, - const char* refname); - -/** - * Make the repository HEAD directly point to the Commit. - * - * If the provided committish cannot be found in the repository, the HEAD - * is unaltered and GIT_ENOTFOUND is returned. - * - * If the provided commitish cannot be peeled into a commit, the HEAD - * is unaltered and -1 is returned. - * - * Otherwise, the HEAD will eventually be detached and will directly point to - * the peeled Commit. - * - * @param repo Repository pointer - * @param commitish Object id of the Commit the HEAD should point to - * @return 0 on success, or an error code - */ -GIT_EXTERN(int) git_repository_set_head_detached( - git_repository* repo, - const git_oid* commitish); - -/** - * Detach the HEAD. - * - * If the HEAD is already detached and points to a Commit, 0 is returned. - * - * If the HEAD is already detached and points to a Tag, the HEAD is - * updated into making it point to the peeled Commit, and 0 is returned. - * - * If the HEAD is already detached and points to a non commitish, the HEAD is - * unaltered, and -1 is returned. - * - * Otherwise, the HEAD will be detached and point to the peeled Commit. - * - * @param repo Repository pointer - * @return 0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing - * branch or an error code - */ -GIT_EXTERN(int) git_repository_detach_head( - git_repository* repo); - -typedef enum { - GIT_REPOSITORY_STATE_NONE, - GIT_REPOSITORY_STATE_MERGE, - GIT_REPOSITORY_STATE_REVERT, - GIT_REPOSITORY_STATE_CHERRY_PICK, - GIT_REPOSITORY_STATE_BISECT, - GIT_REPOSITORY_STATE_REBASE, - GIT_REPOSITORY_STATE_REBASE_INTERACTIVE, - GIT_REPOSITORY_STATE_REBASE_MERGE, - GIT_REPOSITORY_STATE_APPLY_MAILBOX, - GIT_REPOSITORY_STATE_APPLY_MAILBOX_OR_REBASE, -} git_repository_state_t; - -/** - * Determines the status of a git repository - ie, whether an operation - * (merge, cherry-pick, etc) is in progress. - * - * @param repo Repository pointer - * @return The state of the repository - */ -GIT_EXTERN(int) git_repository_state(git_repository *repo); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/reset.h b/git2/include/git2/reset.h deleted file mode 100644 index 00d25dff0..000000000 --- a/git2/include/git2/reset.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_reset_h__ -#define INCLUDE_git_reset_h__ - -/** - * @file git2/reset.h - * @brief Git reset management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Kinds of reset operation - */ -typedef enum { - GIT_RESET_SOFT = 1, /** Move the head to the given commit */ - GIT_RESET_MIXED = 2, /** SOFT plus reset index to the commit */ - GIT_RESET_HARD = 3, /** MIXED plus changes in working tree discarded */ -} git_reset_t; - -/** - * Sets the current head to the specified commit oid and optionally - * resets the index and working tree to match. - * - * SOFT reset means the head will be moved to the commit. - * - * MIXED reset will trigger a SOFT reset, plus the index will be replaced - * with the content of the commit tree. - * - * HARD reset will trigger a MIXED reset and the working directory will be - * replaced with the content of the index. (Untracked and ignored files - * will be left alone, however.) - * - * TODO: Implement remaining kinds of resets. - * - * @param repo Repository where to perform the reset operation. - * - * @param target Object to which the Head should be moved to. This object - * must belong to the given `repo` and can either be a git_commit or a - * git_tag. When a git_tag is being passed, it should be dereferencable - * to a git_commit which oid will be used as the target of the branch. - * - * @param reset_type Kind of reset operation to perform. - * - * @return 0 on success or an error code < 0 - */ -GIT_EXTERN(int) git_reset( - git_repository *repo, git_object *target, git_reset_t reset_type); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/revparse.h b/git2/include/git2/revparse.h deleted file mode 100644 index 6edb7767c..000000000 --- a/git2/include/git2/revparse.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_revparse_h__ -#define INCLUDE_git_revparse_h__ - -#include "common.h" -#include "types.h" - - -/** - * @file git2/revparse.h - * @brief Git revision parsing routines - * @defgroup git_revparse Git revision parsing routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Find an object, as specified by a revision string. See `man gitrevisions`, or the documentation - * for `git rev-parse` for information on the syntax accepted. - * - * @param out pointer to output object - * @param repo the repository to search in - * @param spec the textual specification for an object - * @return 0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, - * GIT_EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_revparse_single(git_object **out, git_repository *repo, const char *spec); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/revwalk.h b/git2/include/git2/revwalk.h deleted file mode 100644 index ad57b622e..000000000 --- a/git2/include/git2/revwalk.h +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_revwalk_h__ -#define INCLUDE_git_revwalk_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/revwalk.h - * @brief Git revision traversal routines - * @defgroup git_revwalk Git revision traversal routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Sort the repository contents in no particular ordering; - * this sorting is arbitrary, implementation-specific - * and subject to change at any time. - * This is the default sorting for new walkers. - */ -#define GIT_SORT_NONE (0) - -/** - * Sort the repository contents in topological order - * (parents before children); this sorting mode - * can be combined with time sorting. - */ -#define GIT_SORT_TOPOLOGICAL (1 << 0) - -/** - * Sort the repository contents by commit time; - * this sorting mode can be combined with - * topological sorting. - */ -#define GIT_SORT_TIME (1 << 1) - -/** - * Iterate through the repository contents in reverse - * order; this sorting mode can be combined with - * any of the above. - */ -#define GIT_SORT_REVERSE (1 << 2) - -/** - * Allocate a new revision walker to iterate through a repo. - * - * This revision walker uses a custom memory pool and an internal - * commit cache, so it is relatively expensive to allocate. - * - * For maximum performance, this revision walker should be - * reused for different walks. - * - * This revision walker is *not* thread safe: it may only be - * used to walk a repository on a single thread; however, - * it is possible to have several revision walkers in - * several different threads walking the same repository. - * - * @param out pointer to the new revision walker - * @param repo the repo to walk through - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_new(git_revwalk **out, git_repository *repo); - -/** - * Reset the revision walker for reuse. - * - * This will clear all the pushed and hidden commits, and - * leave the walker in a blank state (just like at - * creation) ready to receive new commit pushes and - * start a new walk. - * - * The revision walk is automatically reset when a walk - * is over. - * - * @param walker handle to reset. - */ -GIT_EXTERN(void) git_revwalk_reset(git_revwalk *walker); - -/** - * Mark a commit to start traversal from. - * - * The given OID must belong to a commit on the walked - * repository. - * - * The given commit will be used as one of the roots - * when starting the revision walk. At least one commit - * must be pushed the repository before a walk can - * be started. - * - * @param walk the walker being used for the traversal. - * @param id the oid of the commit to start from. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_push(git_revwalk *walk, const git_oid *id); - -/** - * Push matching references - * - * The OIDs pointed to by the references that match the given glob - * pattern will be pushed to the revision walker. - * - * A leading 'refs/' is implied if not present as well as a trailing - * '/ *' if the glob lacks '?', '*' or '['. - * - * @param walk the walker being used for the traversal - * @param glob the glob pattern references should match - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_push_glob(git_revwalk *walk, const char *glob); - -/** - * Push the repository's HEAD - * - * @param walk the walker being used for the traversal - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_push_head(git_revwalk *walk); - -/** - * Mark a commit (and its ancestors) uninteresting for the output. - * - * The given OID must belong to a commit on the walked - * repository. - * - * The resolved commit and all its parents will be hidden from the - * output on the revision walk. - * - * @param walk the walker being used for the traversal. - * @param commit_id the oid of commit that will be ignored during the traversal - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_hide(git_revwalk *walk, const git_oid *commit_id); - -/** - * Hide matching references. - * - * The OIDs pointed to by the references that match the given glob - * pattern and their ancestors will be hidden from the output on the - * revision walk. - * - * A leading 'refs/' is implied if not present as well as a trailing - * '/ *' if the glob lacks '?', '*' or '['. - * - * @param walk the walker being used for the traversal - * @param glob the glob pattern references should match - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_hide_glob(git_revwalk *walk, const char *glob); - -/** - * Hide the repository's HEAD - * - * @param walk the walker being used for the traversal - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_hide_head(git_revwalk *walk); - -/** - * Push the OID pointed to by a reference - * - * The reference must point to a commit. - * - * @param walk the walker being used for the traversal - * @param refname the reference to push - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_push_ref(git_revwalk *walk, const char *refname); - -/** - * Hide the OID pointed to by a reference - * - * The reference must point to a commit. - * - * @param walk the walker being used for the traversal - * @param refname the reference to hide - * @return 0 or an error code - */ -GIT_EXTERN(int) git_revwalk_hide_ref(git_revwalk *walk, const char *refname); - -/** - * Get the next commit from the revision walk. - * - * The initial call to this method is *not* blocking when - * iterating through a repo with a time-sorting mode. - * - * Iterating with Topological or inverted modes makes the initial - * call blocking to preprocess the commit list, but this block should be - * mostly unnoticeable on most repositories (topological preprocessing - * times at 0.3s on the git.git repo). - * - * The revision walker is reset when the walk is over. - * - * @param out Pointer where to store the oid of the next commit - * @param walk the walker to pop the commit from. - * @return 0 if the next commit was found; - * GIT_ITEROVER if there are no commits left to iterate - */ -GIT_EXTERN(int) git_revwalk_next(git_oid *out, git_revwalk *walk); - -/** - * Change the sorting mode when iterating through the - * repository's contents. - * - * Changing the sorting mode resets the walker. - * - * @param walk the walker being used for the traversal. - * @param sort_mode combination of GIT_SORT_XXX flags - */ -GIT_EXTERN(void) git_revwalk_sorting(git_revwalk *walk, unsigned int sort_mode); - -/** - * Free a revision walker previously allocated. - * - * @param walk traversal handle to close. If NULL nothing occurs. - */ -GIT_EXTERN(void) git_revwalk_free(git_revwalk *walk); - -/** - * Return the repository on which this walker - * is operating. - * - * @param walk the revision walker - * @return the repository being walked - */ -GIT_EXTERN(git_repository *) git_revwalk_repository(git_revwalk *walk); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/signature.h b/git2/include/git2/signature.h deleted file mode 100644 index 00d19de66..000000000 --- a/git2/include/git2/signature.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_signature_h__ -#define INCLUDE_git_signature_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/signature.h - * @brief Git signature creation - * @defgroup git_signature Git signature creation - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Create a new action signature. - * - * Call `git_signature_free()` to free the data. - * - * Note: angle brackets ('<' and '>') characters are not allowed - * to be used in either the `name` or the `email` parameter. - * - * @param out new signature, in case of error NULL - * @param name name of the person - * @param email email of the person - * @param time time when the action happened - * @param offset timezone offset in minutes for the time - * @return 0 or an error code - */ -GIT_EXTERN(int) git_signature_new(git_signature **out, const char *name, const char *email, git_time_t time, int offset); - -/** - * Create a new action signature with a timestamp of 'now'. - * - * Call `git_signature_free()` to free the data. - * - * @param out new signature, in case of error NULL - * @param name name of the person - * @param email email of the person - * @return 0 or an error code - */ -GIT_EXTERN(int) git_signature_now(git_signature **out, const char *name, const char *email); - - -/** - * Create a copy of an existing signature. All internal strings are also - * duplicated. - * - * Call `git_signature_free()` to free the data. - * - * @param sig signature to duplicated - * @return a copy of sig, NULL on out of memory - */ -GIT_EXTERN(git_signature *) git_signature_dup(const git_signature *sig); - -/** - * Free an existing signature. - * - * Because the signature is not an opaque structure, it is legal to free it - * manually, but be sure to free the "name" and "email" strings in addition - * to the structure itself. - * - * @param sig signature to free - */ -GIT_EXTERN(void) git_signature_free(git_signature *sig); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/stash.h b/git2/include/git2/stash.h deleted file mode 100644 index cf8bc9d4c..000000000 --- a/git2/include/git2/stash.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_stash_h__ -#define INCLUDE_git_stash_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/stash.h - * @brief Git stash management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -typedef enum { - GIT_STASH_DEFAULT = 0, - - /* All changes already added to the index - * are left intact in the working directory - */ - GIT_STASH_KEEP_INDEX = (1 << 0), - - /* All untracked files are also stashed and then - * cleaned up from the working directory - */ - GIT_STASH_INCLUDE_UNTRACKED = (1 << 1), - - /* All ignored files are also stashed and then - * cleaned up from the working directory - */ - GIT_STASH_INCLUDE_IGNORED = (1 << 2), -} git_stash_flags; - -/** - * Save the local modifications to a new stash. - * - * @param out Object id of the commit containing the stashed state. - * This commit is also the target of the direct reference refs/stash. - * - * @param repo The owning repository. - * - * @param stasher The identity of the person performing the stashing. - * - * @param message Optional description along with the stashed state. - * - * @param flags Flags to control the stashing process. (see GIT_STASH_* above) - * - * @return 0 on success, GIT_ENOTFOUND where there's nothing to stash, - * or error code. - */ -GIT_EXTERN(int) git_stash_save( - git_oid *out, - git_repository *repo, - git_signature *stasher, - const char *message, - unsigned int flags); - -/** - * When iterating over all the stashed states, callback that will be - * issued per entry. - * - * @param index The position within the stash list. 0 points to the - * most recent stashed state. - * - * @param message The stash message. - * - * @param stash_id The commit oid of the stashed state. - * - * @param payload Extra parameter to callback function. - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -typedef int (*git_stash_cb)( - size_t index, - const char* message, - const git_oid *stash_id, - void *payload); - -/** - * Loop over all the stashed states and issue a callback for each one. - * - * If the callback returns a non-zero value, this will stop looping. - * - * @param repo Repository where to find the stash. - * - * @param callabck Callback to invoke per found stashed state. The most recent - * stash state will be enumerated first. - * - * @param payload Extra parameter to callback function. - * - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_stash_foreach( - git_repository *repo, - git_stash_cb callback, - void *payload); - -/** - * Remove a single stashed state from the stash list. - * - * @param repo The owning repository. - * - * @param index The position within the stash list. 0 points to the - * most recent stashed state. - * - * @return 0 on success, or error code - */ - -GIT_EXTERN(int) git_stash_drop( - git_repository *repo, - size_t index); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/status.h b/git2/include/git2/status.h deleted file mode 100644 index d0c4a496d..000000000 --- a/git2/include/git2/status.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_status_h__ -#define INCLUDE_git_status_h__ - -#include "common.h" -#include "types.h" - -/** - * @file git2/status.h - * @brief Git file status routines - * @defgroup git_status Git file status routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Status flags for a single file. - * - * A combination of these values will be returned to indicate the status of - * a file. Status compares the working directory, the index, and the - * current HEAD of the repository. The `GIT_STATUS_INDEX` set of flags - * represents the status of file in the index relative to the HEAD, and the - * `GIT_STATUS_WT` set of flags represent the status of the file in the - * working directory relative to the index. - */ -typedef enum { - GIT_STATUS_CURRENT = 0, - - GIT_STATUS_INDEX_NEW = (1u << 0), - GIT_STATUS_INDEX_MODIFIED = (1u << 1), - GIT_STATUS_INDEX_DELETED = (1u << 2), - GIT_STATUS_INDEX_RENAMED = (1u << 3), - GIT_STATUS_INDEX_TYPECHANGE = (1u << 4), - - GIT_STATUS_WT_NEW = (1u << 7), - GIT_STATUS_WT_MODIFIED = (1u << 8), - GIT_STATUS_WT_DELETED = (1u << 9), - GIT_STATUS_WT_TYPECHANGE = (1u << 10), - - GIT_STATUS_IGNORED = (1u << 14), -} git_status_t; - -/** - * Function pointer to receive status on individual files - * - * `path` is the relative path to the file from the root of the repository. - * - * `status_flags` is a combination of `git_status_t` values that apply. - * - * `payload` is the value you passed to the foreach function as payload. - */ -typedef int (*git_status_cb)( - const char *path, unsigned int status_flags, void *payload); - -/** - * Gather file statuses and run a callback for each one. - * - * The callback is passed the path of the file, the status (a combination of - * the `git_status_t` values above) and the `payload` data pointer passed - * into this function. - * - * If the callback returns a non-zero value, this function will stop looping - * and return GIT_EUSER. - * - * @param repo A repository object - * @param callback The function to call on each file - * @param payload Pointer to pass through to callback function - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_status_foreach( - git_repository *repo, - git_status_cb callback, - void *payload); - -/** - * For extended status, select the files on which to report status. - * - * - GIT_STATUS_SHOW_INDEX_AND_WORKDIR is the default. This is the - * rough equivalent of `git status --porcelain` where each file - * will receive a callback indicating its status in the index and - * in the workdir. - * - GIT_STATUS_SHOW_INDEX_ONLY will only make callbacks for index - * side of status. The status of the index contents relative to - * the HEAD will be given. - * - GIT_STATUS_SHOW_WORKDIR_ONLY will only make callbacks for the - * workdir side of status, reporting the status of workdir content - * relative to the index. - * - GIT_STATUS_SHOW_INDEX_THEN_WORKDIR behaves like index-only - * followed by workdir-only, causing two callbacks to be issued - * per file (first index then workdir). This is slightly more - * efficient than making separate calls. This makes it easier to - * emulate the output of a plain `git status`. - */ -typedef enum { - GIT_STATUS_SHOW_INDEX_AND_WORKDIR = 0, - GIT_STATUS_SHOW_INDEX_ONLY = 1, - GIT_STATUS_SHOW_WORKDIR_ONLY = 2, - GIT_STATUS_SHOW_INDEX_THEN_WORKDIR = 3, -} git_status_show_t; - -/** - * Flags to control status callbacks - * - * - GIT_STATUS_OPT_INCLUDE_UNTRACKED says that callbacks should be made - * on untracked files. These will only be made if the workdir files are - * included in the status "show" option. - * - GIT_STATUS_OPT_INCLUDE_IGNORED says that ignored files should get - * callbacks. Again, these callbacks will only be made if the workdir - * files are included in the status "show" option. Right now, there is - * no option to include all files in directories that are ignored - * completely. - * - GIT_STATUS_OPT_INCLUDE_UNMODIFIED indicates that callback should be - * made even on unmodified files. - * - GIT_STATUS_OPT_EXCLUDE_SUBMODULES indicates that directories which - * appear to be submodules should just be skipped over. - * - GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS indicates that the contents of - * untracked directories should be included in the status. Normally if - * an entire directory is new, then just the top-level directory will be - * included (with a trailing slash on the entry name). Given this flag, - * the directory itself will not be included, but all the files in it - * will. - * - GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH indicates that the given path - * will be treated as a literal path, and not as a pathspec. - * - * Calling `git_status_foreach()` is like calling the extended version - * with: GIT_STATUS_OPT_INCLUDE_IGNORED, GIT_STATUS_OPT_INCLUDE_UNTRACKED, - * and GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS. - */ -typedef enum { - GIT_STATUS_OPT_INCLUDE_UNTRACKED = (1 << 0), - GIT_STATUS_OPT_INCLUDE_IGNORED = (1 << 1), - GIT_STATUS_OPT_INCLUDE_UNMODIFIED = (1 << 2), - GIT_STATUS_OPT_EXCLUDE_SUBMODULES = (1 << 3), - GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS = (1 << 4), - GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH = (1 << 5), -} git_status_opt_t; - -/** - * Options to control how `git_status_foreach_ext()` will issue callbacks. - * - * This structure is set so that zeroing it out will give you relatively - * sane defaults. - * - * The `show` value is one of the `git_status_show_t` constants that - * control which files to scan and in what order. - * - * The `flags` value is an OR'ed combination of the `git_status_opt_t` - * values above. - * - * The `pathspec` is an array of path patterns to match (using - * fnmatch-style matching), or just an array of paths to match exactly if - * `GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH` is specified in the flags. - */ -typedef struct { - unsigned int version; - git_status_show_t show; - unsigned int flags; - git_strarray pathspec; -} git_status_options; - -#define GIT_STATUS_OPTIONS_VERSION 1 -#define GIT_STATUS_OPTIONS_INIT {GIT_STATUS_OPTIONS_VERSION} - -/** - * Gather file status information and run callbacks as requested. - * - * This is an extended version of the `git_status_foreach()` API that - * allows for more granular control over which paths will be processed and - * in what order. See the `git_status_options` structure for details - * about the additional controls that this makes available. - * - * @param repo Repository object - * @param opts Status options structure - * @param callback The function to call on each file - * @param payload Pointer to pass through to callback function - * @return 0 on success, GIT_EUSER on non-zero callback, or error code - */ -GIT_EXTERN(int) git_status_foreach_ext( - git_repository *repo, - const git_status_options *opts, - git_status_cb callback, - void *payload); - -/** - * Get file status for a single file. - * - * This is not quite the same as calling `git_status_foreach_ext()` with - * the pathspec set to the specified path. - * - * @param status_flags The status value for the file - * @param repo A repository object - * @param path The file to retrieve status for, rooted at the repo's workdir - * @return 0 on success, GIT_ENOTFOUND if the file is not found in the HEAD, - * index, and work tree, GIT_EINVALIDPATH if `path` points at a folder, - * GIT_EAMBIGUOUS if "path" matches multiple files, -1 on other error. - */ -GIT_EXTERN(int) git_status_file( - unsigned int *status_flags, - git_repository *repo, - const char *path); - -/** - * Test if the ignore rules apply to a given file. - * - * This function checks the ignore rules to see if they would apply to the - * given file. This indicates if the file would be ignored regardless of - * whether the file is already in the index or committed to the repository. - * - * One way to think of this is if you were to do "git add ." on the - * directory containing the file, would it be added or not? - * - * @param ignored Boolean returning 0 if the file is not ignored, 1 if it is - * @param repo A repository object - * @param path The file to check ignores for, rooted at the repo's workdir. - * @return 0 if ignore rules could be processed for the file (regardless - * of whether it exists or not), or an error < 0 if they could not. - */ -GIT_EXTERN(int) git_status_should_ignore( - int *ignored, - git_repository *repo, - const char *path); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/strarray.h b/git2/include/git2/strarray.h deleted file mode 100644 index 6ea570c14..000000000 --- a/git2/include/git2/strarray.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_strarray_h__ -#define INCLUDE_git_strarray_h__ - -#include "common.h" - -/** - * @file git2/strarray.h - * @brief Git string array routines - * @defgroup git_strarray Git string array routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** Array of strings */ -typedef struct git_strarray { - char **strings; - size_t count; -} git_strarray; - -/** - * Close a string array object - * - * This method should be called on `git_strarray` objects where the strings - * array is allocated and contains allocated strings, such as what you - * would get from `git_strarray_copy()`. Not doing so, will result in a - * memory leak. - * - * This does not free the `git_strarray` itself, since the library will - * never allocate that object directly itself (it is more commonly embedded - * inside another struct or created on the stack). - * - * @param array git_strarray from which to free string data - */ -GIT_EXTERN(void) git_strarray_free(git_strarray *array); - -/** - * Copy a string array object from source to target. - * - * Note: target is overwritten and hence should be empty, - * otherwise its contents are leaked. - * - * @param tgt target - * @param src source - * @return 0 on success, < 0 on allocation failure - */ -GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src); - - -/** @} */ -GIT_END_DECL - -#endif - diff --git a/git2/include/git2/submodule.h b/git2/include/git2/submodule.h deleted file mode 100644 index 1abd33e79..000000000 --- a/git2/include/git2/submodule.h +++ /dev/null @@ -1,527 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_submodule_h__ -#define INCLUDE_git_submodule_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" - -/** - * @file git2/submodule.h - * @brief Git submodule management utilities - * @defgroup git_submodule Git submodule management routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Opaque structure representing a submodule. - * - * Submodule support in libgit2 builds a list of known submodules and keeps - * it in the repository. The list is built from the .gitmodules file, the - * .git/config file, the index, and the HEAD tree. Items in the working - * directory that look like submodules (i.e. a git repo) but are not - * mentioned in those places won't be tracked. - */ -typedef struct git_submodule git_submodule; - -/** - * Values that could be specified for the update rule of a submodule. - * - * Use the DEFAULT value if you have altered the update value via - * `git_submodule_set_update()` and wish to reset to the original default. - */ -typedef enum { - GIT_SUBMODULE_UPDATE_DEFAULT = -1, - GIT_SUBMODULE_UPDATE_CHECKOUT = 0, - GIT_SUBMODULE_UPDATE_REBASE = 1, - GIT_SUBMODULE_UPDATE_MERGE = 2, - GIT_SUBMODULE_UPDATE_NONE = 3 -} git_submodule_update_t; - -/** - * Values that could be specified for how closely to examine the - * working directory when getting submodule status. - * - * Use the DEFUALT value if you have altered the ignore value via - * `git_submodule_set_ignore()` and wish to reset to the original value. - */ -typedef enum { - GIT_SUBMODULE_IGNORE_DEFAULT = -1, /* reset to default */ - GIT_SUBMODULE_IGNORE_NONE = 0, /* any change or untracked == dirty */ - GIT_SUBMODULE_IGNORE_UNTRACKED = 1, /* dirty if tracked files change */ - GIT_SUBMODULE_IGNORE_DIRTY = 2, /* only dirty if HEAD moved */ - GIT_SUBMODULE_IGNORE_ALL = 3 /* never dirty */ -} git_submodule_ignore_t; - -/** - * Return codes for submodule status. - * - * A combination of these flags will be returned to describe the status of a - * submodule. Depending on the "ignore" property of the submodule, some of - * the flags may never be returned because they indicate changes that are - * supposed to be ignored. - * - * Submodule info is contained in 4 places: the HEAD tree, the index, config - * files (both .git/config and .gitmodules), and the working directory. Any - * or all of those places might be missing information about the submodule - * depending on what state the repo is in. We consider all four places to - * build the combination of status flags. - * - * There are four values that are not really status, but give basic info - * about what sources of submodule data are available. These will be - * returned even if ignore is set to "ALL". - * - * * IN_HEAD - superproject head contains submodule - * * IN_INDEX - superproject index contains submodule - * * IN_CONFIG - superproject gitmodules has submodule - * * IN_WD - superproject workdir has submodule - * - * The following values will be returned so long as ignore is not "ALL". - * - * * INDEX_ADDED - in index, not in head - * * INDEX_DELETED - in head, not in index - * * INDEX_MODIFIED - index and head don't match - * * WD_UNINITIALIZED - workdir contains empty directory - * * WD_ADDED - in workdir, not index - * * WD_DELETED - in index, not workdir - * * WD_MODIFIED - index and workdir head don't match - * - * The following can only be returned if ignore is "NONE" or "UNTRACKED". - * - * * WD_INDEX_MODIFIED - submodule workdir index is dirty - * * WD_WD_MODIFIED - submodule workdir has modified files - * - * Lastly, the following will only be returned for ignore "NONE". - * - * * WD_UNTRACKED - wd contains untracked files - */ -typedef enum { - GIT_SUBMODULE_STATUS_IN_HEAD = (1u << 0), - GIT_SUBMODULE_STATUS_IN_INDEX = (1u << 1), - GIT_SUBMODULE_STATUS_IN_CONFIG = (1u << 2), - GIT_SUBMODULE_STATUS_IN_WD = (1u << 3), - GIT_SUBMODULE_STATUS_INDEX_ADDED = (1u << 4), - GIT_SUBMODULE_STATUS_INDEX_DELETED = (1u << 5), - GIT_SUBMODULE_STATUS_INDEX_MODIFIED = (1u << 6), - GIT_SUBMODULE_STATUS_WD_UNINITIALIZED = (1u << 7), - GIT_SUBMODULE_STATUS_WD_ADDED = (1u << 8), - GIT_SUBMODULE_STATUS_WD_DELETED = (1u << 9), - GIT_SUBMODULE_STATUS_WD_MODIFIED = (1u << 10), - GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED = (1u << 11), - GIT_SUBMODULE_STATUS_WD_WD_MODIFIED = (1u << 12), - GIT_SUBMODULE_STATUS_WD_UNTRACKED = (1u << 13), -} git_submodule_status_t; - -#define GIT_SUBMODULE_STATUS_IS_UNMODIFIED(S) \ - (((S) & ~(GIT_SUBMODULE_STATUS_IN_HEAD | \ - GIT_SUBMODULE_STATUS_IN_INDEX | \ - GIT_SUBMODULE_STATUS_IN_CONFIG | \ - GIT_SUBMODULE_STATUS_IN_WD)) == 0) - -#define GIT_SUBMODULE_STATUS_IS_WD_DIRTY(S) \ - (((S) & (GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED | \ - GIT_SUBMODULE_STATUS_WD_WD_MODIFIED | \ - GIT_SUBMODULE_STATUS_WD_UNTRACKED)) != 0) - -/** - * Lookup submodule information by name or path. - * - * Given either the submodule name or path (they are usually the same), this - * returns a structure describing the submodule. - * - * There are two expected error scenarios: - * - * - The submodule is not mentioned in the HEAD, the index, and the config, - * but does "exist" in the working directory (i.e. there is a subdirectory - * that is a valid self-contained git repo). In this case, this function - * returns GIT_EEXISTS to indicate the the submodule exists but not in a - * state where a git_submodule can be instantiated. - * - The submodule is not mentioned in the HEAD, index, or config and the - * working directory doesn't contain a value git repo at that path. - * There may or may not be anything else at that path, but nothing that - * looks like a submodule. In this case, this returns GIT_ENOTFOUND. - * - * The submodule object is owned by the containing repo and will be freed - * when the repo is freed. The caller need not free the submodule. - * - * @param submodule Pointer to submodule description object pointer.. - * @param repo The repository. - * @param name The name of the submodule. Trailing slashes will be ignored. - * @return 0 on success, GIT_ENOTFOUND if submodule does not exist, - * GIT_EEXISTS if submodule exists in working directory only, -1 on - * other errors. - */ -GIT_EXTERN(int) git_submodule_lookup( - git_submodule **submodule, - git_repository *repo, - const char *name); - -/** - * Iterate over all tracked submodules of a repository. - * - * See the note on `git_submodule` above. This iterates over the tracked - * submodules as decribed therein. - * - * If you are concerned about items in the working directory that look like - * submodules but are not tracked, the diff API will generate a diff record - * for workdir items that look like submodules but are not tracked, showing - * them as added in the workdir. Also, the status API will treat the entire - * subdirectory of a contained git repo as a single GIT_STATUS_WT_NEW item. - * - * @param repo The repository - * @param callback Function to be called with the name of each submodule. - * Return a non-zero value to terminate the iteration. - * @param payload Extra data to pass to callback - * @return 0 on success, -1 on error, or non-zero return value of callback - */ -GIT_EXTERN(int) git_submodule_foreach( - git_repository *repo, - int (*callback)(git_submodule *sm, const char *name, void *payload), - void *payload); - -/** - * Set up a new git submodule for checkout. - * - * This does "git submodule add" up to the fetch and checkout of the - * submodule contents. It preps a new submodule, creates an entry in - * .gitmodules and creates an empty initialized repository either at the - * given path in the working directory or in .git/modules with a gitlink - * from the working directory to the new repo. - * - * To fully emulate "git submodule add" call this function, then open the - * submodule repo and perform the clone step as needed. Lastly, call - * `git_submodule_add_finalize()` to wrap up adding the new submodule and - * .gitmodules to the index to be ready to commit. - * - * @param submodule The newly created submodule ready to open for clone - * @param repo Superproject repository to contain the new submodule - * @param url URL for the submodules remote - * @param path Path at which the submodule should be created - * @param use_gitlink Should workdir contain a gitlink to the repo in - * .git/modules vs. repo directly in workdir. - * @return 0 on success, GIT_EEXISTS if submodule already exists, - * -1 on other errors. - */ -GIT_EXTERN(int) git_submodule_add_setup( - git_submodule **submodule, - git_repository *repo, - const char *url, - const char *path, - int use_gitlink); - -/** - * Resolve the setup of a new git submodule. - * - * This should be called on a submodule once you have called add setup - * and done the clone of the submodule. This adds the .gitmodules file - * and the newly cloned submodule to the index to be ready to be committed - * (but doesn't actually do the commit). - * - * @param submodule The submodule to finish adding. - */ -GIT_EXTERN(int) git_submodule_add_finalize(git_submodule *submodule); - -/** - * Add current submodule HEAD commit to index of superproject. - * - * @param submodule The submodule to add to the index - * @param write_index Boolean if this should immediately write the index - * file. If you pass this as false, you will have to get the - * git_index and explicitly call `git_index_write()` on it to - * save the change. - * @return 0 on success, <0 on failure - */ -GIT_EXTERN(int) git_submodule_add_to_index( - git_submodule *submodule, - int write_index); - -/** - * Write submodule settings to .gitmodules file. - * - * This commits any in-memory changes to the submodule to the gitmodules - * file on disk. You may also be interested in `git_submodule_init()` which - * writes submodule info to ".git/config" (which is better for local changes - * to submodule settings) and/or `git_submodule_sync()` which writes - * settings about remotes to the actual submodule repository. - * - * @param submodule The submodule to write. - * @return 0 on success, <0 on failure. - */ -GIT_EXTERN(int) git_submodule_save(git_submodule *submodule); - -/** - * Get the containing repository for a submodule. - * - * This returns a pointer to the repository that contains the submodule. - * This is a just a reference to the repository that was passed to the - * original `git_submodule_lookup()` call, so if that repository has been - * freed, then this may be a dangling reference. - * - * @param submodule Pointer to submodule object - * @return Pointer to `git_repository` - */ -GIT_EXTERN(git_repository *) git_submodule_owner(git_submodule *submodule); - -/** - * Get the name of submodule. - * - * @param submodule Pointer to submodule object - * @return Pointer to the submodule name - */ -GIT_EXTERN(const char *) git_submodule_name(git_submodule *submodule); - -/** - * Get the path to the submodule. - * - * The path is almost always the same as the submodule name, but the - * two are actually not required to match. - * - * @param submodule Pointer to submodule object - * @return Pointer to the submodule path - */ -GIT_EXTERN(const char *) git_submodule_path(git_submodule *submodule); - -/** - * Get the URL for the submodule. - * - * @param submodule Pointer to submodule object - * @return Pointer to the submodule url - */ -GIT_EXTERN(const char *) git_submodule_url(git_submodule *submodule); - -/** - * Set the URL for the submodule. - * - * This sets the URL in memory for the submodule. This will be used for - * any following submodule actions while this submodule data is in memory. - * - * After calling this, you may wish to call `git_submodule_save()` to write - * the changes back to the ".gitmodules" file and `git_submodule_sync()` to - * write the changes to the checked out submodule repository. - * - * @param submodule Pointer to the submodule object - * @param url URL that should be used for the submodule - * @return 0 on success, <0 on failure - */ -GIT_EXTERN(int) git_submodule_set_url(git_submodule *submodule, const char *url); - -/** - * Get the OID for the submodule in the index. - * - * @param submodule Pointer to submodule object - * @return Pointer to git_oid or NULL if submodule is not in index. - */ -GIT_EXTERN(const git_oid *) git_submodule_index_id(git_submodule *submodule); - -/** - * Get the OID for the submodule in the current HEAD tree. - * - * @param submodule Pointer to submodule object - * @return Pointer to git_oid or NULL if submodule is not in the HEAD. - */ -GIT_EXTERN(const git_oid *) git_submodule_head_id(git_submodule *submodule); - -/** - * Get the OID for the submodule in the current working directory. - * - * This returns the OID that corresponds to looking up 'HEAD' in the checked - * out submodule. If there are pending changes in the index or anything - * else, this won't notice that. You should call `git_submodule_status()` - * for a more complete picture about the state of the working directory. - * - * @param submodule Pointer to submodule object - * @return Pointer to git_oid or NULL if submodule is not checked out. - */ -GIT_EXTERN(const git_oid *) git_submodule_wd_id(git_submodule *submodule); - -/** - * Get the ignore rule for the submodule. - * - * There are four ignore values: - * - * - **GIT_SUBMODULE_IGNORE_NONE** will consider any change to the contents - * of the submodule from a clean checkout to be dirty, including the - * addition of untracked files. This is the default if unspecified. - * - **GIT_SUBMODULE_IGNORE_UNTRACKED** examines the contents of the - * working tree (i.e. call `git_status_foreach()` on the submodule) but - * UNTRACKED files will not count as making the submodule dirty. - * - **GIT_SUBMODULE_IGNORE_DIRTY** means to only check if the HEAD of the - * submodule has moved for status. This is fast since it does not need to - * scan the working tree of the submodule at all. - * - **GIT_SUBMODULE_IGNORE_ALL** means not to open the submodule repo. - * The working directory will be consider clean so long as there is a - * checked out version present. - */ -GIT_EXTERN(git_submodule_ignore_t) git_submodule_ignore( - git_submodule *submodule); - -/** - * Set the ignore rule for the submodule. - * - * This sets the ignore rule in memory for the submodule. This will be used - * for any following actions (such as `git_submodule_status()`) while the - * submodule is in memory. You should call `git_submodule_save()` if you - * want to persist the new ignore role. - * - * Calling this again with GIT_SUBMODULE_IGNORE_DEFAULT or calling - * `git_submodule_reload()` will revert the rule to the value that was in the - * original config. - * - * @return old value for ignore - */ -GIT_EXTERN(git_submodule_ignore_t) git_submodule_set_ignore( - git_submodule *submodule, - git_submodule_ignore_t ignore); - -/** - * Get the update rule for the submodule. - */ -GIT_EXTERN(git_submodule_update_t) git_submodule_update( - git_submodule *submodule); - -/** - * Set the update rule for the submodule. - * - * This sets the update rule in memory for the submodule. You should call - * `git_submodule_save()` if you want to persist the new update rule. - * - * Calling this again with GIT_SUBMODULE_UPDATE_DEFAULT or calling - * `git_submodule_reload()` will revert the rule to the value that was in the - * original config. - * - * @return old value for update - */ -GIT_EXTERN(git_submodule_update_t) git_submodule_set_update( - git_submodule *submodule, - git_submodule_update_t update); - -/** - * Read the fetchRecurseSubmodules rule for a submodule. - * - * This accesses the submodule..fetchRecurseSubmodules value for - * the submodule that controls fetching behavior for the submodule. - * - * Note that at this time, libgit2 does not honor this setting and the - * fetch functionality current ignores submodules. - * - * @return 0 if fetchRecurseSubmodules is false, 1 if true - */ -GIT_EXTERN(int) git_submodule_fetch_recurse_submodules( - git_submodule *submodule); - -/** - * Set the fetchRecurseSubmodules rule for a submodule. - * - * This sets the submodule..fetchRecurseSubmodules value for - * the submodule. You should call `git_submodule_save()` if you want - * to persist the new value. - * - * @param submodule The submodule to modify - * @param fetch_recurse_submodules Boolean value - * @return old value for fetchRecurseSubmodules - */ -GIT_EXTERN(int) git_submodule_set_fetch_recurse_submodules( - git_submodule *submodule, - int fetch_recurse_submodules); - -/** - * Copy submodule info into ".git/config" file. - * - * Just like "git submodule init", this copies information about the - * submodule into ".git/config". You can use the accessor functions - * above to alter the in-memory git_submodule object and control what - * is written to the config, overriding what is in .gitmodules. - * - * @param submodule The submodule to write into the superproject config - * @param overwrite By default, existing entries will not be overwritten, - * but setting this to true forces them to be updated. - * @return 0 on success, <0 on failure. - */ -GIT_EXTERN(int) git_submodule_init(git_submodule *submodule, int overwrite); - -/** - * Copy submodule remote info into submodule repo. - * - * This copies the information about the submodules URL into the checked out - * submodule config, acting like "git submodule sync". This is useful if - * you have altered the URL for the submodule (or it has been altered by a - * fetch of upstream changes) and you need to update your local repo. - */ -GIT_EXTERN(int) git_submodule_sync(git_submodule *submodule); - -/** - * Open the repository for a submodule. - * - * This is a newly opened repository object. The caller is responsible for - * calling `git_repository_free()` on it when done. Multiple calls to this - * function will return distinct `git_repository` objects. This will only - * work if the submodule is checked out into the working directory. - * - * @param subrepo Pointer to the submodule repo which was opened - * @param submodule Submodule to be opened - * @return 0 on success, <0 if submodule repo could not be opened. - */ -GIT_EXTERN(int) git_submodule_open( - git_repository **repo, - git_submodule *submodule); - -/** - * Reread submodule info from config, index, and HEAD. - * - * Call this to reread cached submodule information for this submodule if - * you have reason to believe that it has changed. - */ -GIT_EXTERN(int) git_submodule_reload(git_submodule *submodule); - -/** - * Reread all submodule info. - * - * Call this to reload all cached submodule information for the repo. - */ -GIT_EXTERN(int) git_submodule_reload_all(git_repository *repo); - -/** - * Get the status for a submodule. - * - * This looks at a submodule and tries to determine the status. It - * will return a combination of the `GIT_SUBMODULE_STATUS` values above. - * How deeply it examines the working directory to do this will depend - * on the `git_submodule_ignore_t` value for the submodule - which can be - * set either temporarily or permanently with `git_submodule_set_ignore()`. - * - * @param status Combination of `GIT_SUBMODULE_STATUS` flags - * @param submodule Submodule for which to get status - * @return 0 on success, <0 on error - */ -GIT_EXTERN(int) git_submodule_status( - unsigned int *status, - git_submodule *submodule); - -/** - * Get the locations of submodule information. - * - * This is a bit like a very lightweight version of `git_submodule_status`. - * It just returns a made of the first four submodule status values (i.e. - * the ones like GIT_SUBMODULE_STATUS_IN_HEAD, etc) that tell you where the - * submodule data comes from (i.e. the HEAD commit, gitmodules file, etc.). - * This can be useful if you want to know if the submodule is present in the - * working directory at this point in time, etc. - * - * @param status Combination of first four `GIT_SUBMODULE_STATUS` flags - * @param submodule Submodule for which to get status - * @return 0 on success, <0 on error - */ -GIT_EXTERN(int) git_submodule_location( - unsigned int *location_status, - git_submodule *submodule); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/tag.h b/git2/include/git2/tag.h deleted file mode 100644 index 1ffeb0b4a..000000000 --- a/git2/include/git2/tag.h +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_tag_h__ -#define INCLUDE_git_tag_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "object.h" -#include "strarray.h" - -/** - * @file git2/tag.h - * @brief Git tag parsing routines - * @defgroup git_tag Git tag management - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Lookup a tag object from the repository. - * - * @param out pointer to the looked up tag - * @param repo the repo to use when locating the tag. - * @param id identity of the tag to locate. - * @return 0 or an error code - */ -GIT_INLINE(int) git_tag_lookup( - git_tag **out, git_repository *repo, const git_oid *id) -{ - return git_object_lookup( - (git_object **)out, repo, id, (git_otype)GIT_OBJ_TAG); -} - -/** - * Lookup a tag object from the repository, - * given a prefix of its identifier (short id). - * - * @see git_object_lookup_prefix - * - * @param out pointer to the looked up tag - * @param repo the repo to use when locating the tag. - * @param id identity of the tag to locate. - * @param len the length of the short identifier - * @return 0 or an error code - */ -GIT_INLINE(int) git_tag_lookup_prefix( - git_tag **out, git_repository *repo, const git_oid *id, size_t len) -{ - return git_object_lookup_prefix( - (git_object **)out, repo, id, len, (git_otype)GIT_OBJ_TAG); -} - -/** - * Close an open tag - * - * You can no longer use the git_tag pointer after this call. - * - * IMPORTANT: You MUST call this method when you are through with a tag to - * release memory. Failure to do so will cause a memory leak. - * - * @param tag the tag to close - */ - -GIT_INLINE(void) git_tag_free(git_tag *tag) -{ - git_object_free((git_object *)tag); -} - - -/** - * Get the id of a tag. - * - * @param tag a previously loaded tag. - * @return object identity for the tag. - */ -GIT_EXTERN(const git_oid *) git_tag_id(const git_tag *tag); - -/** - * Get the tagged object of a tag - * - * This method performs a repository lookup for the - * given object and returns it - * - * @param target_out pointer where to store the target - * @param tag a previously loaded tag. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tag_target(git_object **target_out, const git_tag *tag); - -/** - * Get the OID of the tagged object of a tag - * - * @param tag a previously loaded tag. - * @return pointer to the OID - */ -GIT_EXTERN(const git_oid *) git_tag_target_id(const git_tag *tag); - -/** - * Get the type of a tag's tagged object - * - * @param tag a previously loaded tag. - * @return type of the tagged object - */ -GIT_EXTERN(git_otype) git_tag_target_type(const git_tag *tag); - -/** - * Get the name of a tag - * - * @param tag a previously loaded tag. - * @return name of the tag - */ -GIT_EXTERN(const char *) git_tag_name(const git_tag *tag); - -/** - * Get the tagger (author) of a tag - * - * @param tag a previously loaded tag. - * @return reference to the tag's author - */ -GIT_EXTERN(const git_signature *) git_tag_tagger(const git_tag *tag); - -/** - * Get the message of a tag - * - * @param tag a previously loaded tag. - * @return message of the tag - */ -GIT_EXTERN(const char *) git_tag_message(const git_tag *tag); - - -/** - * Create a new tag in the repository from an object - * - * A new reference will also be created pointing to - * this tag object. If `force` is true and a reference - * already exists with the given name, it'll be replaced. - * - * The message will not be cleaned up. This can be achieved - * through `git_message_prettify()`. - * - * The tag name will be checked for validity. You must avoid - * the characters '~', '^', ':', '\\', '?', '[', and '*', and the - * sequences ".." and "@{" which have special meaning to revparse. - * - * @param oid Pointer where to store the OID of the - * newly created tag. If the tag already exists, this parameter - * will be the oid of the existing tag, and the function will - * return a GIT_EEXISTS error code. - * - * @param repo Repository where to store the tag - * - * @param tag_name Name for the tag; this name is validated - * for consistency. It should also not conflict with an - * already existing tag name - * - * @param target Object to which this tag points. This object - * must belong to the given `repo`. - * - * @param tagger Signature of the tagger for this tag, and - * of the tagging time - * - * @param message Full message for this tag - * - * @param force Overwrite existing references - * - * @return 0 on success, GIT_EINVALIDSPEC or an error code - * A tag object is written to the ODB, and a proper reference - * is written in the /refs/tags folder, pointing to it - */ -GIT_EXTERN(int) git_tag_create( - git_oid *oid, - git_repository *repo, - const char *tag_name, - const git_object *target, - const git_signature *tagger, - const char *message, - int force); - -/** - * Create a new tag in the repository from a buffer - * - * @param oid Pointer where to store the OID of the newly created tag - * @param repo Repository where to store the tag - * @param buffer Raw tag data - * @param force Overwrite existing tags - * @return 0 on success; error code otherwise - */ -GIT_EXTERN(int) git_tag_create_frombuffer( - git_oid *oid, - git_repository *repo, - const char *buffer, - int force); - -/** - * Create a new lightweight tag pointing at a target object - * - * A new direct reference will be created pointing to - * this target object. If `force` is true and a reference - * already exists with the given name, it'll be replaced. - * - * The tag name will be checked for validity. - * See `git_tag_create()` for rules about valid names. - * - * @param oid Pointer where to store the OID of the provided - * target object. If the tag already exists, this parameter - * will be filled with the oid of the existing pointed object - * and the function will return a GIT_EEXISTS error code. - * - * @param repo Repository where to store the lightweight tag - * - * @param tag_name Name for the tag; this name is validated - * for consistency. It should also not conflict with an - * already existing tag name - * - * @param target Object to which this tag points. This object - * must belong to the given `repo`. - * - * @param force Overwrite existing references - * - * @return 0 on success, GIT_EINVALIDSPEC or an error code - * A proper reference is written in the /refs/tags folder, - * pointing to the provided target object - */ -GIT_EXTERN(int) git_tag_create_lightweight( - git_oid *oid, - git_repository *repo, - const char *tag_name, - const git_object *target, - int force); - -/** - * Delete an existing tag reference. - * - * The tag name will be checked for validity. - * See `git_tag_create()` for rules about valid names. - * - * @param repo Repository where lives the tag - * - * @param tag_name Name of the tag to be deleted; - * this name is validated for consistency. - * - * @return 0 on success, GIT_EINVALIDSPEC or an error code - */ -GIT_EXTERN(int) git_tag_delete( - git_repository *repo, - const char *tag_name); - -/** - * Fill a list with all the tags in the Repository - * - * The string array will be filled with the names of the - * matching tags; these values are owned by the user and - * should be free'd manually when no longer needed, using - * `git_strarray_free`. - * - * @param tag_names Pointer to a git_strarray structure where - * the tag names will be stored - * @param repo Repository where to find the tags - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tag_list( - git_strarray *tag_names, - git_repository *repo); - -/** - * Fill a list with all the tags in the Repository - * which name match a defined pattern - * - * If an empty pattern is provided, all the tags - * will be returned. - * - * The string array will be filled with the names of the - * matching tags; these values are owned by the user and - * should be free'd manually when no longer needed, using - * `git_strarray_free`. - * - * @param tag_names Pointer to a git_strarray structure where - * the tag names will be stored - * @param pattern Standard fnmatch pattern - * @param repo Repository where to find the tags - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tag_list_match( - git_strarray *tag_names, - const char *pattern, - git_repository *repo); - - -typedef int (*git_tag_foreach_cb)(const char *name, git_oid *oid, void *payload); - -/** - * Call callback `cb' for each tag in the repository - * - * @param repo Repository - * @param callback Callback function - * @param payload Pointer to callback data (optional) - */ -GIT_EXTERN(int) git_tag_foreach( - git_repository *repo, - git_tag_foreach_cb callback, - void *payload); - - -/** - * Recursively peel a tag until a non tag git_object is found - * - * The retrieved `tag_target` object is owned by the repository - * and should be closed with the `git_object_free` method. - * - * @param tag_target_out Pointer to the peeled git_object - * @param tag The tag to be processed - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tag_peel( - git_object **tag_target_out, - const git_tag *tag); - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/threads.h b/git2/include/git2/threads.h deleted file mode 100644 index 11f89729a..000000000 --- a/git2/include/git2/threads.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_threads_h__ -#define INCLUDE_git_threads_h__ - -#include "common.h" - -/** - * @file git2/threads.h - * @brief Library level thread functions - * @defgroup git_thread Threading functions - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Init the threading system. - * - * If libgit2 has been built with GIT_THREADS - * on, this function must be called once before - * any other library functions. - * - * If libgit2 has been built without GIT_THREADS - * support, this function is a no-op. - * - * @return 0 or an error code - */ -GIT_EXTERN(int) git_threads_init(void); - -/** - * Shutdown the threading system. - * - * If libgit2 has been built with GIT_THREADS - * on, this function must be called before shutting - * down the library. - * - * If libgit2 has been built without GIT_THREADS - * support, this function is a no-op. - */ -GIT_EXTERN(void) git_threads_shutdown(void); - -/** @} */ -GIT_END_DECL -#endif - diff --git a/git2/include/git2/transport.h b/git2/include/git2/transport.h deleted file mode 100644 index fba5fb920..000000000 --- a/git2/include/git2/transport.h +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_transport_h__ -#define INCLUDE_git_transport_h__ - -#include "indexer.h" -#include "net.h" -#include "types.h" - -/** - * @file git2/transport.h - * @brief Git transport interfaces and functions - * @defgroup git_transport interfaces and functions - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/* - *** Begin interface for credentials acquisition *** - */ - -typedef enum { - /* git_cred_userpass_plaintext */ - GIT_CREDTYPE_USERPASS_PLAINTEXT = 1, -} git_credtype_t; - -/* The base structure for all credential types */ -typedef struct git_cred { - git_credtype_t credtype; - void (*free)( - struct git_cred *cred); -} git_cred; - -/* A plaintext username and password */ -typedef struct git_cred_userpass_plaintext { - git_cred parent; - char *username; - char *password; -} git_cred_userpass_plaintext; - -/** - * Creates a new plain-text username and password credential object. - * - * @param out The newly created credential object. - * @param username The username of the credential. - * @param password The password of the credential. - */ -GIT_EXTERN(int) git_cred_userpass_plaintext_new( - git_cred **out, - const char *username, - const char *password); - -/** - * Signature of a function which acquires a credential object. - * - * @param cred The newly created credential object. - * @param url The resource for which we are demanding a credential. - * @param allowed_types A bitmask stating which cred types are OK to return. - */ -typedef int (*git_cred_acquire_cb)( - git_cred **cred, - const char *url, - unsigned int allowed_types, - void *payload); - -/* - *** End interface for credentials acquisition *** - *** Begin base transport interface *** - */ - -typedef enum { - GIT_TRANSPORTFLAGS_NONE = 0, - /* If the connection is secured with SSL/TLS, the authenticity - * of the server certificate should not be verified. */ - GIT_TRANSPORTFLAGS_NO_CHECK_CERT = 1 -} git_transport_flags_t; - -typedef void (*git_transport_message_cb)(const char *str, int len, void *data); - -typedef struct git_transport { - unsigned int version; - /* Set progress and error callbacks */ - int (*set_callbacks)(struct git_transport *transport, - git_transport_message_cb progress_cb, - git_transport_message_cb error_cb, - void *payload); - - /* Connect the transport to the remote repository, using the given - * direction. */ - int (*connect)(struct git_transport *transport, - const char *url, - git_cred_acquire_cb cred_acquire_cb, - void *cred_acquire_payload, - int direction, - int flags); - - /* This function may be called after a successful call to connect(). The - * provided callback is invoked for each ref discovered on the remote - * end. */ - int (*ls)(struct git_transport *transport, - git_headlist_cb list_cb, - void *payload); - - /* Executes the push whose context is in the git_push object. */ - int (*push)(struct git_transport *transport, git_push *push); - - /* This function may be called after a successful call to connect(), when - * the direction is FETCH. The function performs a negotiation to calculate - * the wants list for the fetch. */ - int (*negotiate_fetch)(struct git_transport *transport, - git_repository *repo, - const git_remote_head * const *refs, - size_t count); - - /* This function may be called after a successful call to negotiate_fetch(), - * when the direction is FETCH. This function retrieves the pack file for - * the fetch from the remote end. */ - int (*download_pack)(struct git_transport *transport, - git_repository *repo, - git_transfer_progress *stats, - git_transfer_progress_callback progress_cb, - void *progress_payload); - - /* Checks to see if the transport is connected */ - int (*is_connected)(struct git_transport *transport); - - /* Reads the flags value previously passed into connect() */ - int (*read_flags)(struct git_transport *transport, int *flags); - - /* Cancels any outstanding transport operation */ - void (*cancel)(struct git_transport *transport); - - /* This function is the reverse of connect() -- it terminates the - * connection to the remote end. */ - int (*close)(struct git_transport *transport); - - /* Frees/destructs the git_transport object. */ - void (*free)(struct git_transport *transport); -} git_transport; - -#define GIT_TRANSPORT_VERSION 1 -#define GIT_TRANSPORT_INIT {GIT_TRANSPORT_VERSION} - -/** - * Function to use to create a transport from a URL. The transport database - * is scanned to find a transport that implements the scheme of the URI (i.e. - * git:// or http://) and a transport object is returned to the caller. - * - * @param out The newly created transport (out) - * @param owner The git_remote which will own this transport - * @param url The URL to connect to - * @return 0 or an error code - */ -GIT_EXTERN(int) git_transport_new(git_transport **out, git_remote *owner, const char *url); - -/** - * Function which checks to see if a transport could be created for the - * given URL (i.e. checks to see if libgit2 has a transport that supports - * the given URL's scheme) - * - * @param url The URL to check - * @return Zero if the URL is not valid; nonzero otherwise - */ -GIT_EXTERN(int) git_transport_valid_url(const char *url); - -/* Signature of a function which creates a transport */ -typedef int (*git_transport_cb)(git_transport **out, git_remote *owner, void *param); - -/* Transports which come with libgit2 (match git_transport_cb). The expected - * value for "param" is listed in-line below. */ - -/** - * Create an instance of the dummy transport. - * - * @param out The newly created transport (out) - * @param owner The git_remote which will own this transport - * @param payload You must pass NULL for this parameter. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_transport_dummy( - git_transport **out, - git_remote *owner, - /* NULL */ void *payload); - -/** - * Create an instance of the local transport. - * - * @param out The newly created transport (out) - * @param owner The git_remote which will own this transport - * @param payload You must pass NULL for this parameter. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_transport_local( - git_transport **out, - git_remote *owner, - /* NULL */ void *payload); - -/** - * Create an instance of the smart transport. - * - * @param out The newly created transport (out) - * @param owner The git_remote which will own this transport - * @param payload A pointer to a git_smart_subtransport_definition - * @return 0 or an error code - */ -GIT_EXTERN(int) git_transport_smart( - git_transport **out, - git_remote *owner, - /* (git_smart_subtransport_definition *) */ void *payload); - -/* - *** End of base transport interface *** - *** Begin interface for subtransports for the smart transport *** - */ - -/* The smart transport knows how to speak the git protocol, but it has no - * knowledge of how to establish a connection between it and another endpoint, - * or how to move data back and forth. For this, a subtransport interface is - * declared, and the smart transport delegates this work to the subtransports. - * Three subtransports are implemented: git, http, and winhttp. (The http and - * winhttp transports each implement both http and https.) */ - -/* Subtransports can either be RPC = 0 (persistent connection) or RPC = 1 - * (request/response). The smart transport handles the differences in its own - * logic. The git subtransport is RPC = 0, while http and winhttp are both - * RPC = 1. */ - -/* Actions that the smart transport can ask - * a subtransport to perform */ -typedef enum { - GIT_SERVICE_UPLOADPACK_LS = 1, - GIT_SERVICE_UPLOADPACK = 2, - GIT_SERVICE_RECEIVEPACK_LS = 3, - GIT_SERVICE_RECEIVEPACK = 4, -} git_smart_service_t; - -struct git_smart_subtransport; - -/* A stream used by the smart transport to read and write data - * from a subtransport */ -typedef struct git_smart_subtransport_stream { - /* The owning subtransport */ - struct git_smart_subtransport *subtransport; - - int (*read)( - struct git_smart_subtransport_stream *stream, - char *buffer, - size_t buf_size, - size_t *bytes_read); - - int (*write)( - struct git_smart_subtransport_stream *stream, - const char *buffer, - size_t len); - - void (*free)( - struct git_smart_subtransport_stream *stream); -} git_smart_subtransport_stream; - -/* An implementation of a subtransport which carries data for the - * smart transport */ -typedef struct git_smart_subtransport { - int (* action)( - git_smart_subtransport_stream **out, - struct git_smart_subtransport *transport, - const char *url, - git_smart_service_t action); - - /* Subtransports are guaranteed a call to close() between - * calls to action(), except for the following two "natural" progressions - * of actions against a constant URL. - * - * 1. UPLOADPACK_LS -> UPLOADPACK - * 2. RECEIVEPACK_LS -> RECEIVEPACK */ - int (* close)(struct git_smart_subtransport *transport); - - void (* free)(struct git_smart_subtransport *transport); -} git_smart_subtransport; - -/* A function which creates a new subtransport for the smart transport */ -typedef int (*git_smart_subtransport_cb)( - git_smart_subtransport **out, - git_transport* owner); - -typedef struct git_smart_subtransport_definition { - /* The function to use to create the git_smart_subtransport */ - git_smart_subtransport_cb callback; - - /* True if the protocol is stateless; false otherwise. For example, - * http:// is stateless, but git:// is not. */ - unsigned rpc : 1; -} git_smart_subtransport_definition; - -/* Smart transport subtransports that come with libgit2 */ - -/** - * Create an instance of the http subtransport. This subtransport - * also supports https. On Win32, this subtransport may be implemented - * using the WinHTTP library. - * - * @param out The newly created subtransport - * @param owner The smart transport to own this subtransport - * @return 0 or an error code - */ -GIT_EXTERN(int) git_smart_subtransport_http( - git_smart_subtransport **out, - git_transport* owner); - -/** - * Create an instance of the git subtransport. - * - * @param out The newly created subtransport - * @param owner The smart transport to own this subtransport - * @return 0 or an error code - */ -GIT_EXTERN(int) git_smart_subtransport_git( - git_smart_subtransport **out, - git_transport* owner); - -/* - *** End interface for subtransports for the smart transport *** - */ - -/** @} */ -GIT_END_DECL -#endif diff --git a/git2/include/git2/tree.h b/git2/include/git2/tree.h deleted file mode 100644 index 7726a6599..000000000 --- a/git2/include/git2/tree.h +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_tree_h__ -#define INCLUDE_git_tree_h__ - -#include "common.h" -#include "types.h" -#include "oid.h" -#include "object.h" - -/** - * @file git2/tree.h - * @brief Git tree parsing, loading routines - * @defgroup git_tree Git tree parsing, loading routines - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Lookup a tree object from the repository. - * - * @param out Pointer to the looked up tree - * @param repo The repo to use when locating the tree. - * @param id Identity of the tree to locate. - * @return 0 or an error code - */ -GIT_INLINE(int) git_tree_lookup( - git_tree **out, git_repository *repo, const git_oid *id) -{ - return git_object_lookup((git_object **)out, repo, id, GIT_OBJ_TREE); -} - -/** - * Lookup a tree object from the repository, - * given a prefix of its identifier (short id). - * - * @see git_object_lookup_prefix - * - * @param tree pointer to the looked up tree - * @param repo the repo to use when locating the tree. - * @param id identity of the tree to locate. - * @param len the length of the short identifier - * @return 0 or an error code - */ -GIT_INLINE(int) git_tree_lookup_prefix( - git_tree **out, - git_repository *repo, - const git_oid *id, - size_t len) -{ - return git_object_lookup_prefix( - (git_object **)out, repo, id, len, GIT_OBJ_TREE); -} - -/** - * Close an open tree - * - * You can no longer use the git_tree pointer after this call. - * - * IMPORTANT: You MUST call this method when you stop using a tree to - * release memory. Failure to do so will cause a memory leak. - * - * @param tree The tree to close - */ -GIT_INLINE(void) git_tree_free(git_tree *tree) -{ - git_object_free((git_object *)tree); -} - -/** - * Get the id of a tree. - * - * @param tree a previously loaded tree. - * @return object identity for the tree. - */ -GIT_EXTERN(const git_oid *) git_tree_id(const git_tree *tree); - -/** - * Get the repository that contains the tree. - * - * @param tree A previously loaded tree. - * @return Repository that contains this tree. - */ -GIT_EXTERN(git_repository *) git_tree_owner(const git_tree *tree); - -/** - * Get the number of entries listed in a tree - * - * @param tree a previously loaded tree. - * @return the number of entries in the tree - */ -GIT_EXTERN(size_t) git_tree_entrycount(const git_tree *tree); - -/** - * Lookup a tree entry by its filename - * - * This returns a git_tree_entry that is owned by the git_tree. You don't - * have to free it, but you must not use it after the git_tree is released. - * - * @param tree a previously loaded tree. - * @param filename the filename of the desired entry - * @return the tree entry; NULL if not found - */ -GIT_EXTERN(const git_tree_entry *) git_tree_entry_byname( - git_tree *tree, const char *filename); - -/** - * Lookup a tree entry by its position in the tree - * - * This returns a git_tree_entry that is owned by the git_tree. You don't - * have to free it, but you must not use it after the git_tree is released. - * - * @param tree a previously loaded tree. - * @param idx the position in the entry list - * @return the tree entry; NULL if not found - */ -GIT_EXTERN(const git_tree_entry *) git_tree_entry_byindex( - git_tree *tree, size_t idx); - -/** - * Lookup a tree entry by SHA value. - * - * This returns a git_tree_entry that is owned by the git_tree. You don't - * have to free it, but you must not use it after the git_tree is released. - * - * Warning: this must examine every entry in the tree, so it is not fast. - * - * @param tree a previously loaded tree. - * @param oid the sha being looked for - * @return the tree entry; NULL if not found - */ -GIT_EXTERN(const git_tree_entry *) git_tree_entry_byoid( - const git_tree *tree, const git_oid *oid); - -/** - * Retrieve a tree entry contained in a tree or in any of its subtrees, - * given its relative path. - * - * Unlike the other lookup functions, the returned tree entry is owned by - * the user and must be freed explicitly with `git_tree_entry_free()`. - * - * @param out Pointer where to store the tree entry - * @param root Previously loaded tree which is the root of the relative path - * @param subtree_path Path to the contained entry - * @return 0 on success; GIT_ENOTFOUND if the path does not exist - */ -GIT_EXTERN(int) git_tree_entry_bypath( - git_tree_entry **out, - git_tree *root, - const char *path); - -/** - * Duplicate a tree entry - * - * Create a copy of a tree entry. The returned copy is owned by the user, - * and must be freed explicitly with `git_tree_entry_free()`. - * - * @param entry A tree entry to duplicate - * @return a copy of the original entry or NULL on error (alloc failure) - */ -GIT_EXTERN(git_tree_entry *) git_tree_entry_dup(const git_tree_entry *entry); - -/** - * Free a user-owned tree entry - * - * IMPORTANT: This function is only needed for tree entries owned by the - * user, such as the ones returned by `git_tree_entry_dup()` or - * `git_tree_entry_bypath()`. - * - * @param entry The entry to free - */ -GIT_EXTERN(void) git_tree_entry_free(git_tree_entry *entry); - -/** - * Get the filename of a tree entry - * - * @param entry a tree entry - * @return the name of the file - */ -GIT_EXTERN(const char *) git_tree_entry_name(const git_tree_entry *entry); - -/** - * Get the id of the object pointed by the entry - * - * @param entry a tree entry - * @return the oid of the object - */ -GIT_EXTERN(const git_oid *) git_tree_entry_id(const git_tree_entry *entry); - -/** - * Get the type of the object pointed by the entry - * - * @param entry a tree entry - * @return the type of the pointed object - */ -GIT_EXTERN(git_otype) git_tree_entry_type(const git_tree_entry *entry); - -/** - * Get the UNIX file attributes of a tree entry - * - * @param entry a tree entry - * @return filemode as an integer - */ -GIT_EXTERN(git_filemode_t) git_tree_entry_filemode(const git_tree_entry *entry); - -/** - * Convert a tree entry to the git_object it points too. - * - * You must call `git_object_free()` on the object when you are done with it. - * - * @param object pointer to the converted object - * @param repo repository where to lookup the pointed object - * @param entry a tree entry - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tree_entry_to_object( - git_object **object_out, - git_repository *repo, - const git_tree_entry *entry); - -/** - * Create a new tree builder. - * - * The tree builder can be used to create or modify trees in memory and - * write them as tree objects to the database. - * - * If the `source` parameter is not NULL, the tree builder will be - * initialized with the entries of the given tree. - * - * If the `source` parameter is NULL, the tree builder will start with no - * entries and will have to be filled manually. - * - * @param out Pointer where to store the tree builder - * @param source Source tree to initialize the builder (optional) - * @return 0 on success; error code otherwise - */ -GIT_EXTERN(int) git_treebuilder_create( - git_treebuilder **out, const git_tree *source); - -/** - * Clear all the entires in the builder - * - * @param bld Builder to clear - */ -GIT_EXTERN(void) git_treebuilder_clear(git_treebuilder *bld); - -/** - * Free a tree builder - * - * This will clear all the entries and free to builder. - * Failing to free the builder after you're done using it - * will result in a memory leak - * - * @param bld Builder to free - */ -GIT_EXTERN(void) git_treebuilder_free(git_treebuilder *bld); - -/** - * Get an entry from the builder from its filename - * - * The returned entry is owned by the builder and should - * not be freed manually. - * - * @param bld Tree builder - * @param filename Name of the entry - * @return pointer to the entry; NULL if not found - */ -GIT_EXTERN(const git_tree_entry *) git_treebuilder_get( - git_treebuilder *bld, const char *filename); - -/** - * Add or update an entry to the builder - * - * Insert a new entry for `filename` in the builder with the - * given attributes. - * - * If an entry named `filename` already exists, its attributes - * will be updated with the given ones. - * - * The optional pointer `out` can be used to retrieve a pointer to - * the newly created/updated entry. Pass NULL if you do not need it. - * - * No attempt is being made to ensure that the provided oid points - * to an existing git object in the object database, nor that the - * attributes make sense regarding the type of the pointed at object. - * - * @param out Pointer to store the entry (optional) - * @param bld Tree builder - * @param filename Filename of the entry - * @param id SHA1 oid of the entry - * @param filemode Folder attributes of the entry. This parameter must - * be valued with one of the following entries: 0040000, 0100644, - * 0100755, 0120000 or 0160000. - * @return 0 or an error code - */ -GIT_EXTERN(int) git_treebuilder_insert( - const git_tree_entry **out, - git_treebuilder *bld, - const char *filename, - const git_oid *id, - git_filemode_t filemode); - -/** - * Remove an entry from the builder by its filename - * - * @param bld Tree builder - * @param filename Filename of the entry to remove - */ -GIT_EXTERN(int) git_treebuilder_remove( - git_treebuilder *bld, const char *filename); - -typedef int (*git_treebuilder_filter_cb)( - const git_tree_entry *entry, void *payload); - -/** - * Filter the entries in the tree - * - * The `filter` callback will be called for each entry in the tree with a - * pointer to the entry and the provided `payload`; if the callback returns - * non-zero, the entry will be filtered (removed from the builder). - * - * @param bld Tree builder - * @param filter Callback to filter entries - * @param payload Extra data to pass to filter - */ -GIT_EXTERN(void) git_treebuilder_filter( - git_treebuilder *bld, - git_treebuilder_filter_cb filter, - void *payload); - -/** - * Write the contents of the tree builder as a tree object - * - * The tree builder will be written to the given `repo`, and its - * identifying SHA1 hash will be stored in the `id` pointer. - * - * @param id Pointer to store the OID of the newly written tree - * @param repo Repository in which to store the object - * @param bld Tree builder to write - * @return 0 or an error code - */ -GIT_EXTERN(int) git_treebuilder_write( - git_oid *id, git_repository *repo, git_treebuilder *bld); - - -/** Callback for the tree traversal method */ -typedef int (*git_treewalk_cb)( - const char *root, const git_tree_entry *entry, void *payload); - -/** Tree traversal modes */ -typedef enum { - GIT_TREEWALK_PRE = 0, /* Pre-order */ - GIT_TREEWALK_POST = 1, /* Post-order */ -} git_treewalk_mode; - -/** - * Traverse the entries in a tree and its subtrees in post or pre order. - * - * The entries will be traversed in the specified order, children subtrees - * will be automatically loaded as required, and the `callback` will be - * called once per entry with the current (relative) root for the entry and - * the entry data itself. - * - * If the callback returns a positive value, the passed entry will be - * skipped on the traversal (in pre mode). A negative value stops the walk. - * - * @param tree The tree to walk - * @param mode Traversal mode (pre or post-order) - * @param callback Function to call on each tree entry - * @param payload Opaque pointer to be passed on each callback - * @return 0 or an error code - */ -GIT_EXTERN(int) git_tree_walk( - const git_tree *tree, - git_treewalk_mode mode, - git_treewalk_cb callback, - void *payload); - -/** @} */ - -GIT_END_DECL -#endif diff --git a/git2/include/git2/types.h b/git2/include/git2/types.h deleted file mode 100644 index c16bb8872..000000000 --- a/git2/include/git2/types.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_types_h__ -#define INCLUDE_git_types_h__ - -#include "common.h" - -/** - * @file git2/types.h - * @brief libgit2 base & compatibility types - * @ingroup Git - * @{ - */ -GIT_BEGIN_DECL - -/** - * Cross-platform compatibility types for off_t / time_t - * - * NOTE: This needs to be in a public header so that both the library - * implementation and client applications both agree on the same types. - * Otherwise we get undefined behavior. - * - * Use the "best" types that each platform provides. Currently we truncate - * these intermediate representations for compatibility with the git ABI, but - * if and when it changes to support 64 bit types, our code will naturally - * adapt. - * NOTE: These types should match those that are returned by our internal - * stat() functions, for all platforms. - */ -#include -#ifdef __amigaos4__ -#include -#endif - -#if defined(_MSC_VER) - -typedef __int64 git_off_t; -typedef __time64_t git_time_t; - -#elif defined(__MINGW32__) - -typedef off64_t git_off_t; -typedef __time64_t git_time_t; - -#elif defined(__HAIKU__) - -typedef __haiku_std_int64 git_off_t; -typedef __haiku_std_int64 git_time_t; - -#else /* POSIX */ - -/* - * Note: Can't use off_t since if a client program includes - * before us (directly or indirectly), they'll get 32 bit off_t in their client - * app, even though /we/ define _FILE_OFFSET_BITS=64. - */ -typedef int64_t git_off_t; -typedef int64_t git_time_t; - -#endif - -/** Basic type (loose or packed) of any Git object. */ -typedef enum { - GIT_OBJ_ANY = -2, /**< Object can be any of the following */ - GIT_OBJ_BAD = -1, /**< Object is invalid. */ - GIT_OBJ__EXT1 = 0, /**< Reserved for future use. */ - GIT_OBJ_COMMIT = 1, /**< A commit object. */ - GIT_OBJ_TREE = 2, /**< A tree (directory listing) object. */ - GIT_OBJ_BLOB = 3, /**< A file revision object. */ - GIT_OBJ_TAG = 4, /**< An annotated tag object. */ - GIT_OBJ__EXT2 = 5, /**< Reserved for future use. */ - GIT_OBJ_OFS_DELTA = 6, /**< A delta, base is given by an offset. */ - GIT_OBJ_REF_DELTA = 7, /**< A delta, base is given by object id. */ -} git_otype; - -/** An open object database handle. */ -typedef struct git_odb git_odb; - -/** A custom backend in an ODB */ -typedef struct git_odb_backend git_odb_backend; - -/** An object read from the ODB */ -typedef struct git_odb_object git_odb_object; - -/** A stream to read/write from the ODB */ -typedef struct git_odb_stream git_odb_stream; - -/** A stream to write a packfile to the ODB */ -typedef struct git_odb_writepack git_odb_writepack; - -/** - * Representation of an existing git repository, - * including all its object contents - */ -typedef struct git_repository git_repository; - -/** Representation of a generic object in a repository */ -typedef struct git_object git_object; - -/** Representation of an in-progress walk through the commits in a repo */ -typedef struct git_revwalk git_revwalk; - -/** Parsed representation of a tag object. */ -typedef struct git_tag git_tag; - -/** In-memory representation of a blob object. */ -typedef struct git_blob git_blob; - -/** Parsed representation of a commit object. */ -typedef struct git_commit git_commit; - -/** Representation of each one of the entries in a tree object. */ -typedef struct git_tree_entry git_tree_entry; - -/** Representation of a tree object. */ -typedef struct git_tree git_tree; - -/** Constructor for in-memory trees */ -typedef struct git_treebuilder git_treebuilder; - -/** Memory representation of an index file. */ -typedef struct git_index git_index; - -/** Memory representation of a set of config files */ -typedef struct git_config git_config; - -/** Interface to access a configuration file */ -typedef struct git_config_backend git_config_backend; - -/** Representation of a reference log entry */ -typedef struct git_reflog_entry git_reflog_entry; - -/** Representation of a reference log */ -typedef struct git_reflog git_reflog; - -/** Representation of a git note */ -typedef struct git_note git_note; - -/** Representation of a git packbuilder */ -typedef struct git_packbuilder git_packbuilder; - -/** Time in a signature */ -typedef struct git_time { - git_time_t time; /** time in seconds from epoch */ - int offset; /** timezone offset, in minutes */ -} git_time; - -/** An action signature (e.g. for committers, taggers, etc) */ -typedef struct git_signature { - char *name; /** full name of the author */ - char *email; /** email of the author */ - git_time when; /** time when the action happened */ -} git_signature; - -/** In-memory representation of a reference. */ -typedef struct git_reference git_reference; - -/** Basic type of any Git reference. */ -typedef enum { - GIT_REF_INVALID = 0, /** Invalid reference */ - GIT_REF_OID = 1, /** A reference which points at an object id */ - GIT_REF_SYMBOLIC = 2, /** A reference which points at another reference */ - GIT_REF_PACKED = 4, - GIT_REF_HAS_PEEL = 8, - GIT_REF_LISTALL = GIT_REF_OID|GIT_REF_SYMBOLIC|GIT_REF_PACKED, -} git_ref_t; - -/** Basic type of any Git branch. */ -typedef enum { - GIT_BRANCH_LOCAL = 1, - GIT_BRANCH_REMOTE = 2, -} git_branch_t; - -/** Valid modes for index and tree entries. */ -typedef enum { - GIT_FILEMODE_NEW = 0000000, - GIT_FILEMODE_TREE = 0040000, - GIT_FILEMODE_BLOB = 0100644, - GIT_FILEMODE_BLOB_EXECUTABLE = 0100755, - GIT_FILEMODE_LINK = 0120000, - GIT_FILEMODE_COMMIT = 0160000, -} git_filemode_t; - -typedef struct git_refspec git_refspec; -typedef struct git_remote git_remote; -typedef struct git_push git_push; - -typedef struct git_remote_head git_remote_head; -typedef struct git_remote_callbacks git_remote_callbacks; - -/** @} */ -GIT_END_DECL - -#endif diff --git a/git2/include/git2/version.h b/git2/include/git2/version.h deleted file mode 100644 index bc03e85d6..000000000 --- a/git2/include/git2/version.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_git_version_h__ -#define INCLUDE_git_version_h__ - -#define LIBGIT2_VERSION "0.17.0" -#define LIBGIT2_VER_MAJOR 0 -#define LIBGIT2_VER_MINOR 17 -#define LIBGIT2_VER_REVISION 0 - -#endif diff --git a/git2/libgit2.gypi b/git2/libgit2.gypi deleted file mode 100644 index 0494be661..000000000 --- a/git2/libgit2.gypi +++ /dev/null @@ -1,50 +0,0 @@ -{ - 'variables': { - 'includes_common': [ - 'git2/include/git2.h', - 'git2/include/git2/attr.h', - 'git2/include/git2/blob.h', - 'git2/include/git2/branch.h', - 'git2/include/git2/commit.h', - 'git2/include/git2/common.h', - 'git2/include/git2/config.h', - 'git2/include/git2/diff.h', - 'git2/include/git2/errors.h', - 'git2/include/git2/index.h', - 'git2/include/git2/indexer.h', - 'git2/include/git2/merge.h', - 'git2/include/git2/net.h', - 'git2/include/git2/notes.h', - 'git2/include/git2/object.h', - 'git2/include/git2/odb.h', - 'git2/include/git2/odb_backend.h', - 'git2/include/git2/oid.h', - 'git2/include/git2/reflog.h', - 'git2/include/git2/refs.h', - 'git2/include/git2/refspec.h', - 'git2/include/git2/remote.h', - 'git2/include/git2/repository.h', - 'git2/include/git2/revwalk.h', - 'git2/include/git2/signature.h', - 'git2/include/git2/status.h', - 'git2/include/git2/submodule.h', - 'git2/include/git2/tag.h', - 'git2/include/git2/threads.h', - 'git2/include/git2/tree.h', - 'git2/include/git2/types.h', - 'git2/include/git2/version.h', - 'git2/include/git2/checkout.h', - 'git2/include/git2/clone.h', - 'git2/include/git2/ignore.h', - 'git2/include/git2/message.h', - 'git2/include/git2/pack.h', - 'git2/include/git2/reset.h', - 'git2/include/git2/revparse.h', - 'git2/include/git2/strarray.h', - 'git2/include/git2/graph.h', - 'git2/include/git2/push.h', - 'git2/include/git2/stash.h', - 'git2/include/git2/transport.h', - ], - } -} diff --git a/native/atom_cef_render_process_handler.mm b/native/atom_cef_render_process_handler.mm index 428e9237f..fd0a60a58 100644 --- a/native/atom_cef_render_process_handler.mm +++ b/native/atom_cef_render_process_handler.mm @@ -1,7 +1,6 @@ #import #import "native/v8_extensions/atom.h" #import "native/v8_extensions/native.h" -#import "native/v8_extensions/git.h" #import "native/message_translation.h" #import "path_watcher.h" #import "atom_cef_render_process_handler.h" @@ -119,5 +118,4 @@ void AtomCefRenderProcessHandler::InjectExtensionsIntoV8Context(CefRefPtrCreateContextBinding(context); (new v8_extensions::Native())->CreateContextBinding(context); - (new v8_extensions::Git())->CreateContextBinding(context); } diff --git a/native/v8_extensions/git.h b/native/v8_extensions/git.h deleted file mode 100644 index 74876fe11..000000000 --- a/native/v8_extensions/git.h +++ /dev/null @@ -1,22 +0,0 @@ -#include "include/cef_base.h" -#include "include/cef_v8.h" - -namespace v8_extensions { - class Git : public CefV8Handler { - public: - Git(); - void CreateContextBinding(CefRefPtr context); - virtual bool Execute(const CefString& name, - CefRefPtr object, - const CefV8ValueList& arguments, - CefRefPtr& retval, - CefString& exception) OVERRIDE; - - // Provide the reference counting implementation for this class. - IMPLEMENT_REFCOUNTING(Git); - - private: - Git(Git const&); - void operator=(Git const&); - }; -} diff --git a/native/v8_extensions/git.mm b/native/v8_extensions/git.mm deleted file mode 100644 index 49aa98bf1..000000000 --- a/native/v8_extensions/git.mm +++ /dev/null @@ -1,493 +0,0 @@ -#import "git.h" -#import "include/git2.h" -#import - -namespace v8_extensions { - - class GitRepository : public CefBase { - private: - git_repository *repo; - - static int CollectStatus(const char *path, unsigned int status, void *payload) { - if ((status & GIT_STATUS_IGNORED) == 0) { - std::map *statuses = (std::map *) payload; - statuses->insert(std::pair(path, status)); - } - return 0; - } - - static int CollectDiffHunk(const git_diff_delta *delta, const git_diff_range *range, - const char *header, size_t header_len, void *payload) { - std::vector *ranges = (std::vector *) payload; - ranges->push_back(*range); - return 0; - } - - public: - GitRepository(const char *pathInRepo) { - if (git_repository_open_ext(&repo, pathInRepo, 0, NULL) != GIT_OK) { - repo = NULL; - } - } - - ~GitRepository() { - Destroy(); - } - - void Destroy() { - if (Exists()) { - git_repository_free(repo); - repo = NULL; - } - } - - BOOL Exists() { - return repo != NULL; - } - - CefRefPtr GetPath() { - return CefV8Value::CreateString(git_repository_path(repo)); - } - - CefRefPtr GetHead() { - git_reference *head; - if (git_repository_head(&head, repo) == GIT_OK) { - if (git_repository_head_detached(repo) == 1) { - const git_oid* sha = git_reference_target(head); - if (sha) { - char oid[GIT_OID_HEXSZ + 1]; - git_oid_tostr(oid, GIT_OID_HEXSZ + 1, sha); - git_reference_free(head); - return CefV8Value::CreateString(oid); - } - } - - CefRefPtr result = CefV8Value::CreateString(git_reference_name(head)); - git_reference_free(head); - return result; - } - - return CefV8Value::CreateNull(); - } - - CefRefPtr GetStatuses() { - std::map statuses; - git_status_foreach(repo, CollectStatus, &statuses); - std::map::iterator iter = statuses.begin(); - CefRefPtr v8Statuses = CefV8Value::CreateObject(NULL); - for (; iter != statuses.end(); ++iter) { - v8Statuses->SetValue(iter->first, CefV8Value::CreateInt(iter->second), V8_PROPERTY_ATTRIBUTE_NONE); - } - return v8Statuses; - } - - int GetCommitCount(const git_oid* fromCommit, const git_oid* toCommit) { - int count = 0; - git_revwalk *revWalk; - if (git_revwalk_new(&revWalk, repo) == GIT_OK) { - git_revwalk_push(revWalk, fromCommit); - git_revwalk_hide(revWalk, toCommit); - git_oid currentCommit; - while (git_revwalk_next(¤tCommit, revWalk) == GIT_OK) - count++; - git_revwalk_free(revWalk); - } - return count; - } - - void GetShortBranchName(const char** out, const char* branchName) { - *out = NULL; - if (branchName == NULL) - return; - int branchNameLength = strlen(branchName); - if (branchNameLength < 12) - return; - if (strncmp("refs/heads/", branchName, 11) != 0) - return; - - int shortNameLength = branchNameLength - 11; - char* shortName = (char*) malloc(sizeof(char) * (shortNameLength + 1)); - shortName[shortNameLength] = '\0'; - strncpy(shortName, &branchName[11], shortNameLength); - *out = shortName; - } - - void GetUpstreamBranch(const char** out, git_reference *branch) { - *out = NULL; - - const char* branchName = git_reference_name(branch); - const char* shortBranchName; - GetShortBranchName(&shortBranchName, branchName); - if (shortBranchName == NULL) - return; - - int shortBranchNameLength = strlen(shortBranchName); - char* remoteKey = (char*) malloc(sizeof(char) * (shortBranchNameLength + 15)); - sprintf(remoteKey, "branch.%s.remote", shortBranchName); - char* mergeKey = (char*) malloc(sizeof(char) * (shortBranchNameLength + 14)); - sprintf(mergeKey, "branch.%s.merge", shortBranchName); - free((char*)shortBranchName); - - git_config *config; - if (git_repository_config(&config, repo) != GIT_OK) { - free(remoteKey); - free(mergeKey); - return; - } - - const char *remote; - const char *merge; - if (git_config_get_string(&remote, config, remoteKey) == GIT_OK - && git_config_get_string(&merge, config, mergeKey) == GIT_OK) { - int remoteLength = strlen(remote); - if (remoteLength > 0) { - const char *shortMergeBranchName; - GetShortBranchName(&shortMergeBranchName, merge); - if (shortMergeBranchName != NULL) { - int updateBranchLength = remoteLength + strlen(shortMergeBranchName) + 14; - char* upstreamBranch = (char*) malloc(sizeof(char) * (updateBranchLength + 1)); - sprintf(upstreamBranch, "refs/remotes/%s/%s", remote, shortMergeBranchName); - *out = upstreamBranch; - } - free((char*)shortMergeBranchName); - } - } - - free(remoteKey); - free(mergeKey); - git_config_free(config); - } - - CefRefPtr GetAheadBehindCounts() { - CefRefPtr result = NULL; - git_reference *head; - if (git_repository_head(&head, repo) == GIT_OK) { - const char* upstreamBranchName; - GetUpstreamBranch(&upstreamBranchName, head); - if (upstreamBranchName != NULL) { - git_reference *upstream; - if (git_reference_lookup(&upstream, repo, upstreamBranchName) == GIT_OK) { - const git_oid* headSha = git_reference_target(head); - const git_oid* upstreamSha = git_reference_target(upstream); - git_oid mergeBase; - if (git_merge_base(&mergeBase, repo, headSha, upstreamSha) == GIT_OK) { - result = CefV8Value::CreateObject(NULL); - int ahead = GetCommitCount(headSha, &mergeBase); - result->SetValue("ahead", CefV8Value::CreateInt(ahead), V8_PROPERTY_ATTRIBUTE_NONE); - int behind = GetCommitCount(upstreamSha, &mergeBase); - result->SetValue("behind", CefV8Value::CreateInt(behind), V8_PROPERTY_ATTRIBUTE_NONE); - } - git_reference_free(upstream); - } - free((char*)upstreamBranchName); - } - git_reference_free(head); - } - - if (result != NULL) - return result; - else - return CefV8Value::CreateNull(); - } - - CefRefPtr IsIgnored(const char *path) { - int ignored; - if (git_ignore_path_is_ignored(&ignored, repo, path) == GIT_OK) { - return CefV8Value::CreateBool(ignored == 1); - } - else { - return CefV8Value::CreateBool(false); - } - } - - CefRefPtr GetStatus(const char *path) { - unsigned int status = 0; - if (git_status_file(&status, repo, path) == GIT_OK) { - return CefV8Value::CreateInt(status); - } - else { - return CefV8Value::CreateInt(0); - } - } - - CefRefPtr CheckoutHead(const char *path) { - char *copiedPath = (char *)malloc(sizeof(char) * (strlen(path) + 1)); - strcpy(copiedPath, path); - git_checkout_opts options = GIT_CHECKOUT_OPTS_INIT; - options.checkout_strategy = GIT_CHECKOUT_FORCE; - git_strarray paths; - paths.count = 1; - paths.strings = &copiedPath; - options.paths = paths; - - int result = git_checkout_head(repo, &options); - free(copiedPath); - return CefV8Value::CreateBool(result == GIT_OK); - } - - CefRefPtr GetDiffStats(const char *path) { - git_reference *head; - if (git_repository_head(&head, repo) != GIT_OK) { - return CefV8Value::CreateNull(); - } - - const git_oid* sha = git_reference_target(head); - git_commit *commit; - int commitStatus = git_commit_lookup(&commit, repo, sha); - git_reference_free(head); - if (commitStatus != GIT_OK) { - return CefV8Value::CreateNull(); - } - - git_tree *tree; - int treeStatus = git_commit_tree(&tree, commit); - git_commit_free(commit); - if (treeStatus != GIT_OK) { - return CefV8Value::CreateNull(); - } - - char *copiedPath = (char *)malloc(sizeof(char) * (strlen(path) + 1)); - strcpy(copiedPath, path); - git_diff_options options = GIT_DIFF_OPTIONS_INIT; - git_strarray paths; - paths.count = 1; - paths.strings = &copiedPath; - options.pathspec = paths; - options.context_lines = 1; - options.flags = GIT_DIFF_DISABLE_PATHSPEC_MATCH; - - git_diff_list *diffs; - int diffStatus = git_diff_tree_to_workdir(&diffs, repo, tree, &options); - git_tree_free(tree); - free(copiedPath); - if (diffStatus != GIT_OK || git_diff_num_deltas(diffs) != 1) { - return CefV8Value::CreateNull(); - } - - git_diff_patch *patch; - int patchStatus = git_diff_get_patch(&patch, NULL, diffs, 0); - git_diff_list_free(diffs); - if (patchStatus != GIT_OK) { - return CefV8Value::CreateNull(); - } - - int added = 0; - int deleted = 0; - int hunks = git_diff_patch_num_hunks(patch); - for (int i = 0; i < hunks; i++) { - int lines = git_diff_patch_num_lines_in_hunk(patch, i); - for (int j = 0; j < lines; j++) { - char lineType; - if (git_diff_patch_get_line_in_hunk(&lineType, NULL, NULL, NULL, NULL, patch, i, j) == GIT_OK) { - switch (lineType) { - case GIT_DIFF_LINE_ADDITION: - added++; - break; - case GIT_DIFF_LINE_DELETION: - deleted++; - break; - } - } - } - } - git_diff_patch_free(patch); - - CefRefPtr result = CefV8Value::CreateObject(NULL); - result->SetValue("added", CefV8Value::CreateInt(added), V8_PROPERTY_ATTRIBUTE_NONE); - result->SetValue("deleted", CefV8Value::CreateInt(deleted), V8_PROPERTY_ATTRIBUTE_NONE); - return result; - } - - CefRefPtr GetLineDiffs(const char *path, const char *text) { - git_reference *head; - if (git_repository_head(&head, repo) != GIT_OK) - return CefV8Value::CreateNull(); - - const git_oid* sha = git_reference_target(head); - git_commit *commit; - int commitStatus = git_commit_lookup(&commit, repo, sha); - git_reference_free(head); - if (commitStatus != GIT_OK) - return CefV8Value::CreateNull(); - - git_tree *tree; - int treeStatus = git_commit_tree(&tree, commit); - git_commit_free(commit); - if (treeStatus != GIT_OK) - return CefV8Value::CreateNull(); - - git_tree_entry* treeEntry; - git_tree_entry_bypath(&treeEntry, tree, path); - git_blob *blob = NULL; - if (treeEntry != NULL) { - const git_oid *blobSha = git_tree_entry_id(treeEntry); - if (blobSha == NULL || git_blob_lookup(&blob, repo, blobSha) != GIT_OK) - blob = NULL; - } - git_tree_free(tree); - if (blob == NULL) - return CefV8Value::CreateNull(); - - int size = strlen(text); - std::vector ranges; - git_diff_options options = GIT_DIFF_OPTIONS_INIT; - options.context_lines = 1; - if (git_diff_blob_to_buffer(blob, text, size, &options, NULL, CollectDiffHunk, NULL, &ranges) == GIT_OK) { - CefRefPtr v8Ranges = CefV8Value::CreateArray(ranges.size()); - for(int i = 0; i < ranges.size(); i++) { - CefRefPtr v8Range = CefV8Value::CreateObject(NULL); - v8Range->SetValue("oldStart", CefV8Value::CreateInt(ranges[i].old_start), V8_PROPERTY_ATTRIBUTE_NONE); - v8Range->SetValue("oldLines", CefV8Value::CreateInt(ranges[i].old_lines), V8_PROPERTY_ATTRIBUTE_NONE); - v8Range->SetValue("newStart", CefV8Value::CreateInt(ranges[i].new_start), V8_PROPERTY_ATTRIBUTE_NONE); - v8Range->SetValue("newLines", CefV8Value::CreateInt(ranges[i].new_lines), V8_PROPERTY_ATTRIBUTE_NONE); - v8Ranges->SetValue(i, v8Range); - } - git_blob_free(blob); - return v8Ranges; - } else { - git_blob_free(blob); - return CefV8Value::CreateNull(); - } - } - - CefRefPtr IsSubmodule(const char *path) { - BOOL isSubmodule = false; - git_index* index; - if (git_repository_index(&index, repo) == GIT_OK) { - const git_index_entry *entry = git_index_get_bypath(index, path, 0); - isSubmodule = entry != NULL && (entry->mode & S_IFMT) == GIT_FILEMODE_COMMIT; - git_index_free(index); - } - return CefV8Value::CreateBool(isSubmodule); - } - - void RefreshIndex() { - git_index* index; - if (git_repository_index(&index, repo) == GIT_OK) { - git_index_read(index); - git_index_free(index); - } - } - - IMPLEMENT_REFCOUNTING(GitRepository); - }; - - Git::Git() : CefV8Handler() { - git_threads_init(); - } - - void Git::CreateContextBinding(CefRefPtr context) { - const char* methodNames[] = { - "getRepository", "getHead", "getPath", "isIgnored", "getStatus", "checkoutHead", - "getDiffStats", "isSubmodule", "refreshIndex", "destroy", "getStatuses", - "getAheadBehindCounts", "getLineDiffs" - }; - - CefRefPtr nativeObject = CefV8Value::CreateObject(NULL); - int arrayLength = sizeof(methodNames) / sizeof(const char *); - for (int i = 0; i < arrayLength; i++) { - const char *functionName = methodNames[i]; - CefRefPtr function = CefV8Value::CreateFunction(functionName, this); - nativeObject->SetValue(functionName, function, V8_PROPERTY_ATTRIBUTE_NONE); - } - - CefRefPtr global = context->GetGlobal(); - global->SetValue("$git", nativeObject, V8_PROPERTY_ATTRIBUTE_NONE); - } - - bool Git::Execute(const CefString& name, - CefRefPtr object, - const CefV8ValueList& arguments, - CefRefPtr& retval, - CefString& exception) { - @autoreleasepool { - if (name == "getRepository") { - GitRepository *repository = new GitRepository(arguments[0]->GetStringValue().ToString().c_str()); - if (repository->Exists()) { - CefRefPtr userData = repository; - retval = CefV8Value::CreateObject(NULL); - retval->SetUserData(userData); - } else { - retval = CefV8Value::CreateNull(); - } - return true; - } - - if (name == "getHead") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetHead(); - return true; - } - - if (name == "getPath") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetPath(); - return true; - } - - if (name == "isIgnored") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->IsIgnored(arguments[0]->GetStringValue().ToString().c_str()); - return true; - } - - if (name == "getStatus") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetStatus(arguments[0]->GetStringValue().ToString().c_str()); - return true; - } - - if (name == "checkoutHead") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->CheckoutHead(arguments[0]->GetStringValue().ToString().c_str()); - return true; - } - - if (name == "getDiffStats") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetDiffStats(arguments[0]->GetStringValue().ToString().c_str()); - return true; - } - - if (name == "isSubmodule") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->IsSubmodule(arguments[0]->GetStringValue().ToString().c_str()); - return true; - } - - if (name == "refreshIndex") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - userData->RefreshIndex(); - return true; - } - - if (name == "destroy") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - userData->Destroy(); - return true; - } - - if (name == "getStatuses") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetStatuses(); - return true; - } - - if (name == "getAheadBehindCounts") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - retval = userData->GetAheadBehindCounts(); - return true; - } - - if (name == "getLineDiffs") { - GitRepository *userData = (GitRepository *)object->GetUserData().get(); - std::string path = arguments[0]->GetStringValue().ToString(); - std::string text = arguments[1]->GetStringValue().ToString(); - retval = userData->GetLineDiffs(path.c_str(), text.c_str()); - return true; - } - - return false; - } - } -} diff --git a/package.json b/package.json index 11a5b12a4..5e8f9e82c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "ctags": "0.1.0", "oniguruma": "0.4.0", "mkdirp": "0.3.5", - "git-utils": "0.1.0" + "git-utils": "0.2.0" }, "scripts": { diff --git a/src/app/git.coffee b/src/app/git.coffee index b9f469b1c..fe4b6a8a8 100644 --- a/src/app/git.coffee +++ b/src/app/git.coffee @@ -2,8 +2,8 @@ _ = require 'underscore' fs = require 'fs' Subscriber = require 'subscriber' EventEmitter = require 'event-emitter' -GitRepository = require 'git-repository' RepositoryStatusTask = require 'repository-status-task' +GitUtils = nodeRequire 'git-utils' module.exports = class Git @@ -31,9 +31,13 @@ class Git statusTask: null constructor: (path, options={}) -> + @repo = GitUtils.open(path) + unless @repo? + throw new Error("No Git repository found searching path: #{path}") + @statuses = {} @upstream = {ahead: 0, behind: 0} - @repo = GitRepository.open(path) + refreshOnWindowFocus = options.refreshOnWindowFocus ? true if refreshOnWindowFocus $ = require 'jquery' @@ -64,12 +68,11 @@ class Git @statusTask.off() @statusTask = null - @getRepo().destroy() @repo = null @unsubscribe() getWorkingDirectory: -> - @getPath()?.replace(/\/\.git\/?$/, '') + @getRepo().getWorkingDirectory() getHead: -> @getRepo().getHead() ? '' @@ -116,12 +119,7 @@ class Git path getShortHead: -> - head = @getHead() - return head.substring(11) if head.indexOf('refs/heads/') is 0 - return head.substring(10) if head.indexOf('refs/tags/') is 0 - return head.substring(13) if head.indexOf('refs/remotes/') is 0 - return head.substring(0, 7) if head.match(/[a-fA-F0-9]{40}/) - return head + @getRepo().getShortHead() checkoutHead: (path) -> headCheckedOut = @getRepo().checkoutHead(@relativize(path)) @@ -129,7 +127,7 @@ class Git headCheckedOut getDiffStats: (path) -> - @getRepo().getDiffStats(@relativize(path)) ? added: 0, deleted: 0 + _.clone(@getRepo().getDiffStats(@relativize(path))) isSubmodule: (path) -> @getRepo().isSubmodule(@relativize(path)) @@ -154,10 +152,7 @@ class Git directoryStatus getAheadBehindCounts: -> - @getRepo().getAheadBehindCounts() ? ahead: 0, behind: 0 - - getLineDiffs: (path, text) -> - @getRepo().getLineDiffs(@relativize(path), text) ? [] + @getRepo().getAheadBehindCount() _.extend Git.prototype, Subscriber _.extend Git.prototype, EventEmitter diff --git a/src/stdlib/git-repository.coffee b/src/stdlib/git-repository.coffee deleted file mode 100644 index 4a1291e8b..000000000 --- a/src/stdlib/git-repository.coffee +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = -class GitRepository - @open: (path) -> - unless repo = $git.getRepository(path) - throw new Error("No Git repository found searching path: #{path}") - repo.constructor = GitRepository - repo.__proto__ = GitRepository.prototype - repo - - getHead: $git.getHead - getPath: $git.getPath - getStatus: $git.getStatus - getStatuses: $git.getStatuses - isIgnored: $git.isIgnored - checkoutHead: $git.checkoutHead - getDiffStats: $git.getDiffStats - isSubmodule: $git.isSubmodule - refreshIndex: $git.refreshIndex - destroy: $git.destroy - getAheadBehindCounts: $git.getAheadBehindCounts - getLineDiffs: $git.getLineDiffs