From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ml01.01.org (Postfix) with ESMTP id 41A871A1DEF for ; Sat, 6 Aug 2016 05:16:01 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 06 Aug 2016 05:16:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,478,1464678000"; d="scan'208,217";a="1020753046" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 06 Aug 2016 05:16:00 -0700 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sat, 6 Aug 2016 05:16:00 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX151.amr.corp.intel.com (10.18.125.4) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sat, 6 Aug 2016 05:15:53 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.147]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.107]) with mapi id 14.03.0248.002; Sat, 6 Aug 2016 20:15:51 +0800 From: "Yao, Jiewen" To: "Mudusuru, Giri P" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCHV2] IntelFsp2Pkg: Converted PatchFvUserManual from .docx to .md format Thread-Index: AQHR71Nfc15fvsdL/EKyTgQt3c5h96A72bjg Date: Sat, 6 Aug 2016 12:15:51 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C50027FD374@shsmsx102.ccr.corp.intel.com> References: <1ce08840c59c53cbad845676e7d9651bba3fa57b.1470409268.git.giri.p.mudusuru@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: Re: [PATCHV2] IntelFsp2Pkg: Converted PatchFvUserManual from .docx to .md format X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Aug 2016 12:16:01 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Jiewen.yao@intel.com > -----Original Message----- > From: Mudusuru, Giri P > Sent: Saturday, August 6, 2016 3:55 AM > To: edk2-devel@lists.01.org > Cc: Yao, Jiewen ; Ma, Maurice > ; Yarlagadda, Satya P > > Subject: [edk2] [PATCHV2] IntelFsp2Pkg: Converted PatchFvUserManual > from .docx to .md format > > Converted the the word format of the documentation into markdown > format > for PatchFv.py > > V2: updated the commit message descripton > > Cc: Jiewen Yao > Cc: Maurice Ma > Cc: Satya Yarlagadda > Cc: Satya Yarlagadda > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Giri P Mudusuru > --- > .../Tools/UserManuals/PatchFvUserManual.docx | Bin 21481 -> 0 > bytes > .../Tools/UserManuals/PatchFvUserManual.md | 123 > +++++++++++++++++++++ > 2 files changed, 123 insertions(+) > delete mode 100644 > IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.docx > create mode 100644 > IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.md > > diff --git a/IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.docx > b/IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.docx > deleted file mode 100644 > index > ab1eda993e7b7d249a0390dc1db83ff4987395da..0000000000000000000000 > 000000000000000000 > GIT binary patch > literal 0 > HcmV?d00001 > > literal 21481 > zcmeF2^Ot7LlBnOZZQHhOS9RI8ZQJbXQkT1I+cvvwSC{R&^?he%%{h0@z5l?>{ > vlVs > zd+!w)J2T>q^+aYU%7B2P0>A-~004jp07V)e6bJ+W#DM_-C;&)cZ4rAr7gIYIeHB > j! > zQ)gXz4_h0;d{AJ@TmbOb`~Q3W51xUB6gh=3DpLBz02@(+kQb&xeL#-Wsl-1`!_it > 7$~ > zk(CiY6Z6;mOFU_rvbsja{LR`8+)Cb2D=3Dpf# U*| > z!weY}wS+6Qfg2I;ACK;JIR}uGv8UA$gSroMjR80G3~)2LBxzTR w > z*>JFw1EB0GTGs4r1357sNGqBhRAwjv6TW+-I_-vs)=3D5{5{j > X > zMiIUmGWc38{B*yjx9K81|C&13g4o9cIfL Ee > zV$-VeLatfibi7X?c-TM4SC>>)8z|>nDwIQ>@Jak`?)cbyWhaGA%jM^8!HATF%C > cP_ > zL5}LjEvgry8hx+h-AZSX?m_#k*vi*>eNd5~j4|SED8w@zAX_@G=3DFT=3DIahh``vK_ > 9H > zul=3D9-=3DNmyKWyaWC5d4%DYNBfqY;g_VQx^zj=3Dcz)!cPBa4T%Mo+fX`15fa1S+E > `B0* > z^X->8%6~Z~%$MitJDJ)zGtmFl{;$XW4|dak`t+EjHE9qb*sx2mEyEFCjx}iFxs^@ > H > zJa^(hAR*~zK<@Apg{xhi1%z#iYkG%wN8<{=3DGlMf1c#3(!s|__5bC)v>B(|(QY@4 > GY > z6g5Y*GlIo3Yds=3D!A}Rsk9~FN Cr;qp > z$CS5q4d1DQWTY3ZYQkBXUkWx3Yq0D8hS%l5_JcONTpo`^8-XyiU!gamwvifgi > nXG; > zr^U8moF@C3XjB2szHOPmcrW^?9~~D;3zY{IIeqKnngybzhv2f3?>St}LqMcSi|* > _F > zDiU1JV8Q T< > zzTWtsZ(TAA(-aETe > 0B > zUaDQIdr|cc7(cc?=3D$B(3an0Dl5PA@wjlBZBW(cV*J&n0g4SGUl{a(Q$o=3DQ?55v^ > RX > zl4LEVhSY+NV_aE?meCn@jiCgOz6|s)1`m?OWZD3RB$H8Jfnd|%35#TyLyl*v=3Dq > 6i~ > z5r1=3D@%Ge<5;%w_0)}U=3Dj(H%2P=3D3fi}plj~C+oMk{eY*j|wkht%tb=3D2VZ^<7*otS > zt > zB#mg>1$j5()`|Nj?B#kf;PE; > Cbe > zY8PeM!|K-3yEgKX>dPCSUf(+p^+FK%bspgVos9_)mxQWd006lu007dL>HKYD| > 7=3D}n > zeAdouBZ*tpryn3ujhl5Sn&7?7^hT))+NyPxNw}Bip1Smipk!G>0YHMItIpqE32vx > V > zM|0Nnoi=3DU(=3DHMWRq-2#1H0pKiKohbG3f)ER#YYPMAIy)jG8|EzjGPrJkCRb5;P > RaJ > zLAU*5`kS#i%{1a!%e@N^{XKjYI_-`J(;J^}@dCPdvLfbO?!f~A^g&PCRy(+A^hqX; > zSG!_oIxWsTn>pU{s6#unEAD;I(GKjlxQ~OXm~#3WW{aesTB3P-LrgIoHNi4GR > W%of > zE1P|xI6WHmj2UZE9R%V>42N!ao~<76oeXCKnI2s~bVRnylHF18)l!uldH`P8z#( > $* > zl!9jro5W)i!YuT*Tqc-=3DBwZ0Y1O|}7Pkq`IMYXo}jDs-nbEdPT^hf-k7gkD@=3D0h^Y > zI%aTTiN0VmwWo~pKf$q-S1m4-dADDx)Kt%Ft 3xB > zh%q>gFkbwyLdV6Rr~1|^n+vv`S236m!4uNu`aE|Rc4N6mYA#knI~{0-*10&j5& > A~5 > zp8&I}jdp}$YHftH 5% > z+}c^9h1K=3D@tL}OCzs?EN^jg`aE3FQ|x?c6e1#&`qB(KiEVCB~mhol~3`P{E9g*SU > e > z-i+{KC x > zZt9L)ftYboBaL{qvty@&8j6Y&48W`fx@wBror(Xj`(;gAl^o5;Xhd;?9+{}K90}xv > z8sZKspksU}c1y$K6gxfxp+tbAK;{F~md}_KON`6jswcR0-FN?9KM;q^U8)n%wm1 > IG > zH#X=3DbBU@45r1)W? 0o^bQ > z)y*)rY;q^SZ5A)*=3DNWqzlcv{4LkU8?ZQQ9($9p~lL}l6H8Je7Ywg%Qzi}3|tJA9wm > z+29=3DOy#u_}xmjhOX0X#$iLPyI*@*~}$I0ymCnjf7WR@c)DN}&Ka2!OEKO#NJb > ZiXA > z1zMlOEX?kiGDKnB6A_XP%FWgjg@xFFUSsSV5DEne5pbFV?PLbBu;RxC(*$K;x > =3DAuR > zi$aHqSRY?npdR$7P6`Ln&yEfVWniQYiA0vW{H^siA4;}@*LFr@MSWi$x7n~nF > $4U> > z4VkJF{0i;x+mY<8CDW%C_$M9fV?BpQ71DfnBBb75W+_SEhTi%YrMHR>7x>a > _<2*jD > zzLv;~Cv(uQ&b*`f{nzW)&yObwO{-6MTj(~j(N)y$-Ka6bywR)0k&4ai>kY!J0tM*b > zj(AjC1fxkm*M=3DOigf4)fO&awYdnM3j^e{gU&WtORS > Germ& > zBrrYUb5w@cJ w*l > zY#s^oF-`sJqCA-HJ z)i-Wa+5>%ecwhsfi{0U2aFeTr9iwVbXgN~U>;Z0%GEjbRCT%SzJvrH(Slicgjna`J > zs4J-u#xMu5O(Lhcf!~v_;>>szKcKHP`PplmII4rx5#&xMTk(?C0>&5%q~WZ&af` > Wc > zB)|YgOuPa1Ar@%hX9pFph7o0~LEr->Ci^`uGeh+m#sacZm-glv8_(|q K > z=3D58qI=3DO|*!Q+80hz0Id;wkpR!zN^twmI3uIvRaySb5{K?xvBZ$CUxH=3D+a1aObh > Rf0 > zfFB+K2Z$?J|vnL!dzAW7oUs`68$kFN|y>>Q~eHoGG9Rt > hc8i > zTRqXfDF%$w`el1o0dJYsMl!!wYS^=3D=3DV9M_UH_OFRdDvpP=3Dfw~uhgi}W%S2qb > pSn6v > z1OY~lVIa@2Z^;Z?cCqO}sRAr*x96l_g;GO0C2X(=3DHP>ZufX|jq?C()R@aScb>0zI > G > z?qeNNqdG~QHjrtv6)JBsanZXyt?+znk6<82X^j((>eMC2?Vg!W!zchLz=3Dk!PTn~(6 > zZ9)z5)2dint!Uxih}pTX`cP;Njd-7|J&K@E1S4V8r!2d-@7LiDp1|1P&U8c9yZg7# > z@d_{f3YT8R3=3D)^wK3+E;XY;SKCo8jS912%kpBr}k&yH_h5eNeY8dwX*>YZxV86 > Z{u > zX`aT7R(rq44v{7@1Mi-P8anvHZ00Rwf&0)sxX26>P~iu>3111>yC6uQY}25IR6P > st > zM_)Hjl&bxCxxK#yY2I3PE`ZwW6GX=3Di*mln1(3t+|VZ=3DzYH-0tX5RX(6mpLk^+bW > Aw > z2kMQrG?h_KLySW Ic > zuwfEThGtb!ktb5skr*SG#PoI$5!u{-`QCac?2-Z?H(UjZITmq|lhQ&mBcKpo@rd > @o > zfH#FpySAH9O(0;#7APsUm^|b87BOLP9#aro %CX$# > zy`)-u#(VT;XM7gTJ#-h{ihm0d{LNK#&RE7Kc_ > zW6)t3q)5ancQ-5&N8=3D#~aT(P;Lefdl)`Gs39dd7@PIEvLFd11 u > zbV08|9s4Ou&R%(AVlw$GK9hWt$&>7xx$485wu>&~=3Dd6taVD37xiL-@c(=3DlL5k > HsXu > zVkAB!)i*j-!DFBBsumNStcDjTZ1Xt6;C~YUB8&t()maNn>kDE(UTNPPSGo^)GsW > w; > z=3D;XqVpV}v?_cZA%Eo=3D%jNQuaN)71=3DgB=3D~9(jH#RH~$`SH}(=3DyG~= @V > 3 > zEhCk984CxUlC7VfaVMdWyWe;>RxZ+4O=3D7m+vr5Ga#@-TR8P_Eiq > WDek zSrCqM-zoLNP0mTuO;&!kB5M5v%BJ{ryYor*AxO$yHvc1yy-syN|C?z-r}kzz_~D > B+ > zuee}`(12dE35n1+F*8X7F~O!moiS6k{iXubAyqAHx=3DWa6p+!+apwL7Q-2}9>TRX > iR > z&>G)fRfmgu;!8{z^{tc)Z&Srk0$G%sV-<8UGE&wLUD+5DG7;rOOruY)>tGLE&1 > Gh5 > zX5SwiUC=3DZIXh~l5SQQH8;+RiMVp}lMtS1*}zElrcEM$XO7^Z6M^t6@XBTgH-&k > !7h > z?vnyvOA!jZ4Nndrb<>B1Rn;A5Cvf`g1abwziDNkkZd4V!_`ctF2z?HJtVu@P8S>4 > B > z-!ZC0%1nt K*7sT > za%^eRZxuZczjs?kX6LQcE7^HI=3DE+85PiM03X9DL>dK~k>S4hb>8dqkY;|NQ0_#k > DH > zZ7A53)r6Bkk0DmUd4tl~QKOGxw8YG;$y~M_Ebe8a=3DX-}xoo?Alxtr$(=3DJUm{7AF > le > zhvAnrz za)`mI3DzM~Z=3DoWa1>*UF^=3Dh5Aso_K>z`j(v< BVu > zv7d>}n9;KFiWX;yvPmi+_AG%3FUnj7mbD3Da|oTs#TWn^uM j > zx$)6|Z-MM#YoLCpr0~d&EC8xA&~afdH;5Xj^;>r)yo-@B`DI^%tw{pM4d=3D{yq3l > ?d > zgBMR#5vd#l(Wq3cwyZR3!?WjQI}k^D*b|s8qi6uYbhOhi2-&gw$oCs2aW-* K8# > zt{ETP|G-41Eduwz`H}GJ+k!33aaS`pnxyTwhZ=3D)P7>o|lTYQtkb0H644`MhY9l!`b > z=3D;t~EWl0S$$g(aWv~v-dhVc#}B#u!AF1OagRZyW@x)$mDx2YWqxJs`AH3I8t-f > @j_ > zM^B+39oeBeiXQlZTbw)`%zNgDmwsso;nxX-iSACv#Y~Z)a4}Y*U8>^F)vVpS))x > &_ > z5bej8aP5 c2Q > zuGShX;*YUCFaFdtn%B1J@E19#DUG>8|iR eo8( > zILJY-Zuy~{AlP;!9qbvn$3O&^Ik55B220e8G=3D3jIcj_yzjP0R8wdjo^S=3D^OG;)?(T > z_BeL0#?&1%niJS+o)zls4v->+$l;F-B5mV`;*)IlwDV!?7Tg4X!^$Lh?Ap`E+Ruy{ > z(9(LNIRvnLFPRn+`Ehg9EcT-m2KDv^U{gm8$$z`!)I(~aBwc@il9`9V(kLf`Xj1SS > z_d(lYs-&3q!tA1tHT~zHgW%zCZ$3-4_9783O5V!}+SN9yywn6y;sq7v)^R3dcg2b > U > zD|aQ)vi0-EVVbm?O#mOv5eF$WNY=3DsQg0GnmTNtWf>GxE6oPt9Q#vQO(%5 > Eak5qu(i > z%t#wj>_$q7HbbR24F&em0gAMorxeb`&3v > 0l#P* > zmWVbjd-1%}Lr(sXEFUBwl-7U&t8^3bv7+rw*g2C+60rSkfJ7W5Us > Sj{+ > z{NZDUmGa|n)) > | > zb{ONFb$-Hmku07ooS}*TQ(>3%)}p$|Z SK > zaUYb~oRMlNBH5=3DHXv#2#kOH{=3Dj?0*$=3D%$FDKjBB%5;6aE<5OllyrGpT-czQrYv > 6K} > znRX3^69~03a#+j&QOL;*nTnFJaIChTz1NZfK@;?-cUhL5Gj > nP > zkr1gz7;PzHhOBq7iX?~k;vsdi=3D$-a>4vG}H;;EKY)0nly$*y=3Dx=3DW>$xw_n5#s?$5m > z{p-PHcGWeKNL2+eqzln}+OJ6|%yV6iMpv=3DFI`2D6B_Of|f2i!&Y?aSLWm!Vm1T > }=3DB > zi;hZ12!HE%Oa=3DfSXFE)@Tj<3KlZXmGOYhSM)(PGLf#buPmO2@dp$Ss=3Di?&!Gt4 > PM_ > zNFIP=3DpzimIB)~joGy1cv--iuG#n83F&_zgG5TkF9xI2D-ENLgsk5+4=3D@fT@Q^Uq > `Y > z7%_~;CCB<6k2}OkyQpu?1&bBS9u@F2La3u(JoRFs#Fkv!G(>yFPO *bBg > zp19iqX)A=3Dc&w4Sxor&?KBMHywO6;C^ss!Ro@YWvtgF6-DeIn{%Sw1;20{?x5Z > OLw) > zeK&q7uyl;+o0C-Ys-3+EJc4ial_b2ElgDQ1Q8EaN%{2oywe}^gIg*?m1V;FKoqD7 > V > z>H|%iE~vrOCJ`}20G9i{2(7=3DLcCAy03Jy9(aKA7yv`^R0cVHuljinuzlVq=3Dhxi)LB > zNuGsVC|!b>AA!Ma23LZA+We%z67MSP&6r w*@_ > zYyS2U_^FudF8T3y5o8R`Om9vnm3$;!P<&R?Psda{zbTc-Md^TQ?kwr)sJxcBa6c > 3g > z^S+#!EMe|=3DW8W;vee;Ia!WTWPP u > z9xLsfo2GjHoa$R5S9*~$r#1?>6SEK2w^rw}WmuMJ(_MzXiFACHaVg{#(c-tmgx > m0& > z5l^_s8c&#<#mPnEQ=3Dq-#cJ?h@6JkCT>|w8lkfQ)LN?lx80_vcEgNU?|AJqEw$rx > la > z4vO~87K3?(<5x)HWHY_kH(j8HB;Bn9Mo*Uq&r)s)OmDz;HHTE2>a{3#n3c>G8 > &r0j > zr6#htix&A+d3_-0W|jQA!{p8y^3#sfF^Mlh%7~{Tk=3DWOWn5AIy)Gp$A495KCJb > gB7 > zl|dEhm8pxv5s?{>G~KQ9u0oeKJ5Y(0iMk%bg{u~evTEyg$z%)uuXCZ;(bVy#lyvo > # > z`GxFn_!kMPBf?wkYy+jXh2f#u_^jKsl%%!SWj7AlsrZbj@+VXx(##E@UXqqzt_O > Dx > z(T!-F_e7o11uoZ5xxh(X&1mROuVb`)gAEfx2!RrkwDXJTBfDYl%~un1P3r~4mED > H- > zel5W`C4AeUzbZ88u}rrYsxNfsr8h+vEtQ~yK&bLmKsK`FuV-j<7R%TXBc0c+?s49 > _ > z=3D5d`r3SA&_78syxULp+!RY>Y#wBxxh#lvhTQ+< > GU~ > z%w3Ka^GPoY;=3DnlBEZ%tjOkLad_W7_1joe6Z1Ab>cqF_iUn9|htT!L@=3D Dl=3DW > z#ClZ)w`0>*6wj@1x{>N2F~7%L#}t-bx&EP#hI4{|#mFj)Y+Z2~6l;~*D9x!7YRVge > z7nawdhI+u;*R#tpm-sBeUPa+#3JK?q^a~8r^O}Lcy$S!Wz|h}y?qlZpex_Z+I>#{ > D > zTl9uT&&y4hq@14dvw{^V2j5ilAg^XGWote49v(Rp+)$c}FZ5J8!_49?XUA7!+s`2 > M > zhm(A+RF^{e7Vdq+ePXVML}fO< ~* zY)vmoV{vX3q+U}H1kS9>=3DTJoT5lV+Pbd+rcS9HW~gSzc~#jfyqMFS_!^i|UGy}4< > i > zI;HyTHkmj>%8x&5B4H@Ft6^g#h5=3D+tP-C#Ka}PeS9J6o;9daG5?T1B~_r_El2N > uoH > z_e$2wQgm>m;H}nH6D9DK$|4M_-B=3Dxb&p`5XA0+OcC2xkb;wOHH^i`^DRQV > 3t?;5GL > zMq6H#v5^?d4m|UqV fhZ > z16uqSgie4**l*CMavzqhn&!&}i0{YjFXU6}3Pwzg43Pcbp=3D*lU6#0WaG_U}r9*Q > mJ > zvEHgc$P^N=3DEDCrfM5KO_ve7tY)zc~G)d(169wiqurI%O)Pw%o4fj ~* > zC_FGmi?0t#|IAq2Ni3Jvkzc95?qv&wpy*tAy5Vtp#OH&dV{Mv0jD-pVlp=3DQ#K<3 > Yu > z?i+Ipp%Hl!J$rSvseYx@WrP4HbE% ;kT > z8d5{R0>zu<$?F=3D?(hm2o8iN$C&Bek*@?fFhl+oO zE08v} > z%$WgTE{VcKAi<80(e`wpiSUtBsLz2Z*B-ASlh8~qVIyaGAfnd3(rZ<0eLs=3DA>_U4 > T > zn_XVORtrmDq}wGgPEKmN^K#J0lWY(%+}Y+QYhgw{Ri(`}0jsY&8B9{&S8LQ+qi > !#R > zX_2PX6XuHL%%<~Ybs@S5qe9%~$aQ_K^~r|gfd84SofU;RXR`#+&!!y|EsRVZ_ > zhhn > zfRP!7uV)deX#z>>wRPJJni5}MF4Qf~XSo*trWS$>4E2Eug#5d$TKgiVMJ0u&8dr > ^Z > z66Z>s^IH4L3@!y5bZqeyOFwgYBi|k*H2L-gw^oRv5t6b+4E_w|Gc9{fp^eK)YU > G=3DC > zrB!3uhHE{?fM4X!%K}Oy&Wd(QUG!~zj-Zo)CHi &nF > zh=3Dfq^qN$pIAxd`0?V|nGPbhna2r > x=3D > z1Ez@8V_9MFYC3@&{Oft1yMdlg8k%U{h03IQ0aBcu !?+ zRRRtG6yg8?X#bglcd; wlTHq2 > zz%Cr$GBR~pF<)>_$`@yKF94{&%`hBo**4rzI}m;O*DLD^w+-G*b&bTgq(Ke6B > =3D+T~ > zN`6x0=3De^fYe1g*QrHf%$JY*s&g;l+Gr%4ggYfr)Cn)40(2Zl;dN$M=3DnwCj+DPO8 > Ms > z#@NTL_NXOQQKKLOU*aXlwdfS-r5~w<2>lv*hg4Dqb`xSTXdO`wRESTI$3r%jt > !mo3 > zQA~2YDchJMo7nNC3NwnyckE8PeBjlQNnSnXM!8Zb=3DApgd5U#Na$}6V8ct*b; > 0u*}U > z!}hyw5c|LNimsKXf92#HU7@PYqtmo%ni{I?{Z`s+gdA#YJfa*_7%LxfDrvOAd_f > GX > z@R$DFw{?06O#^B!gNxKsnJ2~lD>p|iQw1L!v)!71SFq{$M1G8AO;pMk&)b;RY > 2<^O > z5a2jJHLhA2JFoQOBn)yKUBynBHMgH`!;S2!A6>oER4#@^bL2+M?i;{Y;;mkqFTj > kX > z)t^g0VfQRqVflmwSy1N7)MMU?(nU35ZtdkG0N_kCW X5AUUB#S > z!s6Km#+Uehe5YQ5yDznWBIZ$ > Qj > zem|QYCMXcd_Pf2A#aQ&v9Qu6er|5or^JGJuGbf*lX2^MaI2(0mq5Fc3 > zRT@ > zN*EH&&)kPRzr{plQFA1tAaU$M>xZ1biJBx$;q1+j0ejDm!o8cMGD~;I<>DS_+{O > bs > zD1i3xb(%) ! > z?aG26BXMmfip%tfDUS*-C5$@f{1%V^eSY!nblLUCOOOn|+A+Nto-B hFNrz > zC9Ge%+6nB3n@znpgezzHoL4k%o8$=3De1a$}j@?qLFcQz%idLr&_+IKiVkn$4gk > zSQ2 > zQym5BD;G&jiOv8?&Bnu2fUk`FR BcVy > zwXr|~1Y$nsxuYuB)`4BvvHKN>JbK$JJXu`3LN$1^<#7Zn3?d&35?WV>d<#l rm > zku)5tYq8oe>vMbGB&CYo_|7ggN6Hw6zCcyNt1aD1W{tP%!NfzPa3`dD9j|*U > z&*m%A6_NzRTkVDR-M1=3DE@6YGm4$2&cF4E~TMpTQ9=3Dw

hK=3DjKDsNdVo > DwP$jzY^0 > zvNJv*0`Plo=3DUvi4D%#j>C39v*2Zy{KGdN@&Ur|-o2nT36?~Qp;;q*j!GU?Wk{(P > *e > z!piHJCmQbsn^Td9N?hb}UHs)8G`_4HHfUz?vKd?pXK|X09?kShozaLOyXyXms!( > p0 > z<~F2BRIzaFygK$;u9Vt{8gf=3DPNG+n88|tiQHfzo^194zm_df;ebVD#0C& > XAg > z0Ve!&Uem87c3COIV_C#n2sp4W+a6Ji((76oXE+W#(aB?H*f7fno8Bl42S~iP$cj > Aa > zakNwv6f!ePYu0Q(GVyO5S09EP 1) > z?hViRi))l2z7Z{=3DrzXO|v3w5&$gon-d^({_cqu`vs1(#o)z*RcUR6s0xw+`d3>oj1 > z*VW6Athzn0(fsnskH8e|MZ&I)Tpr%`!z;^G5G2!aPm9Xc-?o$2UXyJd W > zah#ZgG(S))w#Xhuw}bvh6zoY83DKrHW|zX#O-+8lAo<-1^K)8d_7!TKzXEg>gkJ{ > ^ > zCdQ?xfsbBgAP@Q%()}wiHiR+{q1Lt^MiEiTcF^h@#=3DhcbGnct#T0@vf;c77vGU > @{f > z8kF!uE^YcTPpAgpT05;&DiSl2DzbW!+8GiTsZELXcG>0{AF5DErd85+pkN*>{|o > O_ > zp#nt?t^*%uYR%fmRotgy9)iq?+!XC_Ig#YGZp2y(1he)sUHjA{Z+lH7J|^pWY)>^n > z{hZp&*xU!380V3iHO=3Dp=3Dq47x_&a2&yAw~^WQL1$!qIZY~0csz!ZntAN*OAA(C > gLZL > zyhx#CK^6VFSco~WIrz9-$GTwlG*&9>)e6@+wQ-I=3DFc&T`T@*2uWIWN`)0SuX > T+S<8 > ztsaR(Q?zHxt8sL!Y#t9LQGGL<0wb8iY11YL44OVJ2)LbKTd?G^QYf-lKcx+h^B~9( > z2%qUB>Rt92{%vS09JtTg{5qR=3DhWt;v%g&}QE|zxY&VPlq28}hlHE~2=3Dh8cgvI~ > @t{ > zgCybope1&pEL7DSAR0$9B%;=3DVq`F-n-*66^s$rp-+^gWx*7J$<`f|Lkk9QeW`io > d=3D > z7;XF1J2Xvt+0JH9B?69d1%i4U|5ghg-J`aK#uZuu+4i^hhb4VI{oj=3D*+>F*3i1~I) > zi+=3DUIuDbPlm87PK3wr-(h)7=3D?I@Q > ^jo1 > zPFLwE5ZRR(UD{Y9=3Dw8+}g^Sd3%y+N!zmK#Pm>WGFjV)}{?2e@)JJq;)Q)jrvsl6{ > * > zDDGOqf8|< XR > ztA`rZeJLG^O+4DnHdCkH67Ax3ebmpg+>A2=3D0lw&qe(#4G+Qsf<38%t?H|Uu6i > >p?S > znjAytc~XKB!l~tYK!eNuP4hp2T-Va-aGzQkV#5r6+|Qmsr!{KECG}EpK=3D{(P$9pxO > z+kl8aVmqnXK(`857C-)UTob<}(z5w8wc^w?e(t?C*z*m7Fit8a>wF$7r-|gVx8OI > L > z3X?R2{MO3)UHVVmYuFNuzze)ETA=3Dtma33O=3D*G06}z&YvqbA0J!p_{eca;QIV=3D > dI_^ > z%VZ$+{=3D~tTWCo{x2M9Io0{pDxENwg>vY+!tA{2FX78lS*72e86J+V2uHf$WV_ > 7u2& > zo;(6?wzeG2feD<3LEt3lohzy$Es_PLa-VZgq(%Ivd&w#TCFFO&sks>g1=3DRhlDPBx > F > zC1KGaxw9oIZ(wqSQe`t1d4*l!mY9i2q9x)b8hKcZ@kJr|{88V=3D6y^4R?Z99Uvanj > C > zm!^eTG^C+${RCFv83tI#J*50vkeQis%tsYr+J=3Dh8yhx5nD>#OvCXRB`X3W^Wha > 43P > zb5eQYm7A3oD@y_#loSeYcciY%5Tjb3)W_s$$ZRR2K0=3D8OIpzqG;b%0)bi!`IFyG > f9 > zntq>X>0z6(MlQw_;XS=3DZJr5c#+_q5Qo6?B-z4uHkuULUrEEQ!|*@Cg7Nke53b > OCmt > zd|1#@s&WH*& 6^H5 > zIS>`ej~GmP4)$CDv4=3Dkq6Cp^FGV)cFdEWz^2?-0Ij=3DW277K*u7xnVA$EFo_l3JXd > ( > z&J+(C3+k=3D|p6?gxSVF|CVm@pn>ZC)Qco#B*C`?EX7P1iA(`Fp=3D!QinJ5(+X@N&( > Y> > zVFWR@^92&>ET&tk=3DxijKDgNp?=3DQn;o@*$>2z6Kbkw+|*4`);3N$%r6 =3DQ% > zM9~mRJ1N3sz+>wQ)>GkY9 > *}W&~ > z_AKzJOvAUQ=3DUX3@WF~TyhBYi@-XXRi=3DfM1APijdeQI=3DoCk<3idp4hpVCR9=3D@ > JsvH^ > z^3C&B8whFst!qnr%KiuXDtj%6f2@w6J6rxpC}QH4-B0<(MS1 U1 > zQIKEhqG`s6G8q*ZvB=3DG^O3oBcWaC-9agFU>=3DTL%rSlt|7`{Fs(B9O($v1f%*oO > w+x > zzyR?WN2RCaei>zz+I+O(_E2UR^Cs?Eb&K#=3Dh0xO0=3Dd9^|b#I6nxq0%!xwS0kd > uzEC > zPbuE4yNvEt|K`;ex%Ifo2%BQJ=3DHI~R-ezfl4cfkuXqRg0$m`nR{%4ymJRYNe{9=3DS > 0 > z569)|_n$C~&dX@9KPPz{m;}96UM*u!w0r7UF^2^|TgLWjlhxBX#<%xIO?`uuC > VF+=3D > zuns4mYkv^fXs$+&erAPc9$?3UV$( > 2yu > zNc*3dyRc^!CA*dqoV9uztx255W>U 4x~ > z@?j<0LAz>ajg5KC^Cx%TFzmy2d+?rR@m%2F1_Mnh6$t;Y18TBg$JtQ-lXKinjg > > z9;7HMDfBTS`f*$f(E5hM2NA>IKoMc07{}})9Jj$^uj$RF%01oV;}Aw6TrK?Bc=3DYX > T > zx5rWFYKWrV=3D>Sbm(&HdcWW A^nDM*=3D4H > z4WS;Q$S5{J3zDO}_aS4w)vf6>s0A(7>?zm&Ho1PZ>c(j?9yIYQ$x!6g(MREd`2rb > @ > zQf71z_DKr{1)JYhIFA^!JLxyU!l}%Hl|!g&Pv|3Oyjo?p*&ME^S1=3D0^T`LHJ>G3XO > z!+FF-VZvr~rX&rrWi~Gz9A_%cy1@oc0_>9d$k^p{iM&Z-(hep5pyQ|A@`5uZJBy > }a > zr4e)`kxTf{0bevTZrwH0EBTLd|2deNqh+cPz>5O@YdX5!qxjPfChJea8GGfR9B}Y > d > zN8J2KE=3Ds}bWp2T>Fz%BxZnKZ_f 85 > zfn=3D#l^!4$tgSM0X317eP^S^^BYwBhDci1l|H30yy|8v2dT|8|}oz*Q}EX2&rOpR > Us > z4&!G!y3T7&$iCey?+DnPJio)~D6*;Xw3~3I3rlghI;T;=3DG%Kite-xgPc7M>L6GA3} > zwj!Qb&K-`TOP=3D)_xlaQV{t)=3DQ@kDvZ*2n_o&3Fi}27kwo_UVGn54ZfBf1jNF P? > zX>k(DYc&6Xk$UIv`8x0K=3Df|%w$3P_GMMx+;mDBvu&@DfI{(SAYTfH(Qqh|{&a > 0sRU > ztJ#$sPyME6cpCMi%cn9#gHneUo1#H2>;B}MKh1^Ufv!{&?^gC)8he1y7`f > 0~w > zZ!o_797%G^%d!TtkMJG14kB3=3DHs`_J(WMI9r4WL&Eo&U8R6sMnrBDp4>dbT > SeIrba > ziWq;GHiYSlQWIiLCsyQFVALNQNd;GFUfaI2uA}p-!jNLsqUCMshwNU|)}Ex6s8 > NkE > z`Ao&B;2L|o#r%PtTzM>0BqHJXK;{tN2^&%zhKPo=3D{-U8QorrMuk9X?{cWu5b+ > Zp*) > z+q)9e$Ql>S6@#Ee^RiS { > z-8AxDb03WIoKuXC)*YpcyX@)C0fZp$T*QPrD8cRaXiBIThfq%`uS8J2gTcm@@ > |&of > z!mx&M1FXAvFrynZ6MoN~1_5kSIu@p&&Ze1Y{5p1YJl~8=3DlJp1HdEkBdS3MurZ > p6Mg > zrOC7EybCu4&! 8^ > z6PykxjEg$V>^i39kL&&> NJA > zQNMeW-rXnj6`-^a&;8d4`Dh~fx5TJm{hh+}5Xr~?O!KcnXMoNoQqaB$xd7lnoH > 02$ > zb9EEq#o196Yp?yW_7zuakWD9f6X(1*KePxJyq2&nNLiWD1Y6~e@tQFl=3Dkx|Fy > ^)SP > z&JTAh-YE@;=3D6@5 ?u6p > z9PgB~wdDensa5>0@B!7ke5NUIs;{gBYY6X3k4t~5O7S xSi > z+YRDhaA+rY4s}_@Oc>*nVOW7@w8D=3DD@?D!YOM1vXWgSo@2Mb%#zZ5Q > )I0Fu>K^96~ > zx{~Bu7)xah-Sdv>*${rvUToA)&*j6v3tVmLR54>iEX`G128X+@2CL>tw#FKuj2Et > % > z3y=3D8|ka9vauJ{-!{gUDw4MU06Uk&{nO6|2vmV+~7V@~wBFgOGTg|GFCk`IX- > n_Vmk > zWdw+UrPHsg3Oo2D<`=3Dv+0rzl`{%j!UkNqm+xSF_CP^wvtpqw1MY) > $;5S > z#jCe7MhA*}aXQBtzzHe$az!-yAWLO&NnGLkKG6FRxY?l!xHgGR6~I$Y9VSp>+P > LUu > z#eU1}%nKHu0;e{J#jRO&tOQA5Iq@@52;>BHlLH@_^Qv6IoH8DV6@(_P%=3D=3D > uvZt#TT > zt8>6dJ75pmOA5KSurQX{SDH-`81*?a*mH}V1}f17cL7-afW`};{V>$OJ 5 > ztI4v|G-q<*VP?tUVyOprk^#aykn4LHNA7gfr#zAaj;aqF^GpudwfQMbKmXNP)Z > 8RB > z(5wsF5GOBgqddsskR$9wCbU?9^F#?~BeDlp0-Ra > ZT > zX?npPA+-liVBwH#QZ^UY+!Ud@&s>8a$@~(Y%j}7wm{n;^Vh@bIxw{JmMl0tE > T46Vm > z3HVpRr(qpXg6E^{ScN<{M!G|izUw5YNasy>=3D$N@Wa^y`XJo0#_u@|& > Qj<{;lk > z{}TQaIPX-98fbh)@Js9_C~e2!AQmb*cXRZ&jRX#%f`1*w`^FCZB(4KWV`@E@Y > w>S=3D > z`78+k9^`M)G5@z{t85YjE}W8pUteQ|e#~WjspB!8CrFR&DzXV0`~R5|ry>YAlOz > tH > zk#rpDQ5@s_!M~OLkC{*=3DRQXF)a}cx|) G > zJBy_IzFd#fA^2n|`PV{Zod|)Xf6e;Wjq7Z>4hCsIK35Az;8Sn#6>T_^p2R^(6~SNI > z5=3D}--Drj|w%_3UBX4u?>T3@@myJSc4e5=3DtL#?iqEc|l^B4nDtLVY+@9qY}qVTT > w$@ > z_~+bjjsmBB6L2Yg=3DdjQ98llDLyCGHL1l^PEw#hRw&+OEsFBA$)DEae^Oi%;G3k > FQ6 > ztU|&C-Id>g1YNb%%*U=3D=3D@!G#cK-cUM7QDWE7K)QcC$KhmBuvOc L4glme > zI(`b>JAGM#bbr+L#%Y-w<)GKZDofhRYV^UtktyB^Us+RdKAD<56dD26njgRix8 > Ug- > z|Fj$V?fWrwEm$zN24nxIwa?Qp=3Dpk??T%R9N8MTiJhV1YigfIi3pbMKjIb&8lm(> > |o > zJdW2|s@qWGmuTzf_Y*J|qRx5_%?Zu|$=3DJ`ksxvkzd!r|lI5B<|iz4u0+#Ej7O!ny0 > z5JI=3D(IHeUzJ&)YhOwdm?aI6yF&$IV~k@yJ8F09ry(NvEg*J}!eCkjrCQ^#Ob+Rg~ > d > zfJyX=3D$6p^dLBhyiTa=3DY-6 T > zipWDZ^%P>g_gFCfTfBF@DfZ{hVK!uah@fx~Eo0OXT34(GINqO_(TEkm23nK7 > BRRrQ > zuRap(lR<-Jg}u_=3DMy}tC2ueD8+@fg|%~$!G_y``{p=3D9CEz0oZ_<6ELW%IP1%I Cb > zMK!S?N>tJKwD@H7Y7##Xl8{q-v%o*--t{2b zlqJ^`ZwNQFnaWBLg9xo$Mt&&iHlB&&{iyOGXC4ix > q)- > zfDYp(FUj v > zdsF2)45#Z?L6^OF1T}BgCi^mR^77#zRPF0hHvvx+_8Atx*C%RiJu8kw!3_MwC^ > O zfB_%t0uF%wzGBS4XYtG2honnC$v!m-syCV#o&XZ@;H7r6U)9oH0mjrWkDO- > &*gG@m > z&(hvFhgH}DF}waJ9EH @+M > zQ?t^6Sra|_N&7>;!?&@f!{-g>u8c-0N3*Eov5fK(b1Srhs7Ort}7_;t=3DQ > W > z-D&!IX4uymCE8{AjfEYp2Xwj>4tk-Vb06g$4n(d!y2eMFW@SdsoUZX3M=3D@OE > M+5x! > zy53n_LN#xr-BtxoLqtN_=3Dl(zRFrDyKlk(fht>??vr-mZJW_%t-u3J7ifgI0?w2VZ3 > zJ%D9M)ZJnp;}nbDz3nGCvNZyCM oI6fV > zz}1%QKANZ9U1g8^Mt2)dVJw`U^pJgopgzf7AG%0#y0Ww27P;&(;$U^GH0e`0 > GM^08 > zY}n&Xel1%LVr%-`_4=3D4NQRC&-&=3Da5W@3cdsIr@0 lJtOnG > zaw2q{f>?t=3Dnu~crWXY^vT5!KGH!FJFsn-7JFQ|&bI~zS1v @ > z&_Orw+a^p~vT}p0In{cFpMVx)7h!$OCCc7kKUQQ&vL%{mcC@}!6_J8!0NzQ > MinV?i > z?G=3DGW>uBvv#@`zOKZ*eI>>*LC=3D}BcG5cm7b>HZoA+_OT&#ZGS=3D9FLvr( nS|1Oz > za5{y_t4xTwoeENgg%wsKHK^#=3D^tWInL?T|YS0se*M~yOF$_kapoYmj$Ra2&| > {Y`lK > zV0}1t0-k}?m#OYkDz1MvXkZA > V&A- > zKf)PEyDZmw@jWWHcyC0&FK>J17JO_V1=3DNKg2_n0&b@kWxFZ0(83VcMsws > Hq!(=3D9p? > z2Grw+pOT{5?K}3a)lJ3-x`<>AH!iyNv2RV6lD4v@WBs0ReVl&Q?7#T=3DP7R67WJ > eTK > zzYP}epMU<_VyaQK=3DM}ZDCox|Ihe%(=3DR9`hNica GTU > z#^w7NQAHmm-$eG=3DO7~FnjL1qoN@%E6i6IB3>g?Ado`}|1&$sqSZ6#IFX@91 > B^E&^u > z>H6W?0P=3D^r(n*vYDoW6ij=3DFJlR=3DYLAoYE zn)HB@gKO2xo^mM8UWl0k3Lb5su_@` xX70@X(_ > z!(Q7R(95(yDC8MF8nUfl4MDS!1M-vEX>5!@_Shwc#|&mOI@tTNtaq7pvM}9 > ^N!Tw) > zAeEt7cd_N$c@<|aF-n#b%!IWzZ6h2^M wucSD0R > zx|`~&6_^wYFMoJ>d(rzlVSd8T2RVhY*SnKeom^tM5ms_i@_J@6Rym6#pQh`n > !!`PM > z2v68&f?ePAqPx^A6or6%8J~|&)PJ7}d1K_zfd3+EQbPa$;a|!6FH=3D0z(f$jk{RCK! > z1RUM9M^#Rqw7iGpHbzc7izr8oM3A^i(T1Pzb!i0=3DiJ_c`=3DH?40lj#!H5thf > B > z0TBlZ0{)s3o93y7MDfMJJAe8Ehj#-Q`koxQpPn4vPhGZur4ul`MGV_;dzhVUAGv > ?N > zPb( 2# > zbNHc8^;1q{BZ!BGQ-F|>=3DSl92n_||;;M*+GPF+0*hlmj-4xdo37q&J~L^V)k)3QS > $ > zXk_%|E+wWkKlE!vW8tfUR`wI_Q0bdh8!|%FNk9mr^78WzeEy#8(T1?MCos-_ > x`j-6 > zWaY)~0GXuoa2QSfU?2N-&C;r{pl}cKsdLLI(^=3Df?haIv5Qi2LvA(G(gj9$D0sA3eD > zoSK`d?rcGJU(|z|n@DiOr|;_x6qM}_nwa)u#fuU591lJ2mDk=3DMj`zfg*7way=3DSzo > o > znaACihw!_xaw8AH+h)A&9&+H|2@cm^{vJyZzyui9H-pUr_7U9{&AaNI1$`6yc > &b73 > zx^Ko(C!_@Q$ktxf7dl>{U1g=3Da7_^L~y7N8_px49F%R)qe#S++GCMQsA7tZ%)as > Z=3DX > zo7>=3DRhD3v*T<5Ry50yLgel#0h52w&YJ#1CaK7Stwu-}7i^Jf-fh?pB({1IRqvKDl_ > zjDhaQfDaf3`hwZzJX?)BarTrinEmAX3ue(x2Yrxs@E^L7ASF7_VOfz$m>~k3e!g& > D > z(C?PCN9?<7|nHJ^!(AKBlhjTl5SIC!IwN@xo7m7->%z@jKXN-S8~kwO+ > n2+ > z_aZt-rj=3D9TA@~OcEx4Iqsn-6h X > z`I+{V`JDpUx^+#?gllbzMN2(V{*hu_Gxh4JR+S{-r`Yku z1f$=3D3?@1xiY9+=3DeKHr&k1`63jHzfRe)OfXO2D}aQ3&rrV{ii$AvrHS@stPnO`-W8 > y > zC)LuNw0q@grJJpV$GTyZ7le!%e` qm@t > zqKn5?cwZ=3DM3dyY7f&g@Y^1_fD-R@&(Ed6Opy{gQg_sQ&dPDSuuu+lXp>kJjG > _Jy)2 > zN6VetND8TIl<|RTUTK^XHDS4M|ADfyStK6e{GIiL0pD>36@J<(U6p`D)pL 8$p > zPKi^^Zq68rexa=3D47s|H%2g(}ch}2RXX22%=3Dy4R^^%Nj<9`$E~tJpZkm3SapDK-sY > K > zq!drqhFY?l5{t1MlP>2P$L4_}zycizH^5aU6kZVhvu4`UMZPfDMIjDeW2&K|9 QE > zJ)L4|q9Snpo1lVcGUI2RX!Qn0+20JCYqd$5%c)(QGVbz4vG=3DJQP#UQfhRunirS!p > 0 > zQ<>xm*-(h$3kY8X_3{_W3Vb2dsr=3D?S;rsuEvZ?=3D!vfkpJUnn~ny@vk}l%@VxlqL > Hc > zW&Qp_*?$!r{zZx#qwRQw0{>5xmH97}Rs9FbBIlh-{f)9;V*d$c$8*0F?u+;@t^f > bR > zxtvAlJdGK zL2d5E{s#OUfhS5$R;!S6nbamIp}E(L;NRfcnwQ$aB(9g$0Yy0lUiL+|gDc!*!i#^w > zDZ3(+j4~cj`Ijs}p0V547>Jv75QyT5(dqxCy!(wE#7X?W$8W-^l|E0Uo9l(VL8y`=3D > z*c;{lL|L{T1e;N0$~vR-Vi9iOLlPIkh876dh@&k38w-f`VRQ&0k y > zP{=3D(g5whNXdyLIk+JI8taQa5?8}PF52`3_21>{hXndvi65Hg<3H 9 > z!^m|yRM65o{Og*M+d!P!5^1(QZ|%^iPZ6$7;_joXt6e7-&?$KJTn5UzUntmWa > Ly6; > z;^YoWfDjL7g0WOT6jjOZc7qO0ZB=3D;EwfqO?ToZ$13WdATb#ZU_s%t`6Unm<% > zi+@!czdMY#;Q#B1W)aQE85}LlAgn;y=3DlKg|;Y|ge*iqPw-E#^$2t0()BcLElI{O70 > z7u`N`;1=3DC>cfXhQprme5wXAv8QMRB=3DiuG>joPG$$Q6fqR-Ri|D#8qz@+! 25V_ > z?(7WbYjzNXB %MsM8 > z=3Dxyhgf8 XWk > zA0kf3Lqz+jj6Ad(&G5ytFz904FUP@HTg&#b%iltXAhGdxY0F8irs`v=3D&!;IgLJZIV > zR%|>Z{!v29_jvY8&Z&ZEhQU)?&P+U|H3$oO2JM4rB^gbRw!`7Uw$Nq0M$^o > 6mx$^s > z{)=3DMv$7mgD#AB > uc > z>xlH&Q5@Os^0=3DXL8nj2$nq!n0m=3DROn@lOcuRmbfH9N`-e6`L4TNFqU4nkfy{ > #a#7? > z$f9OY(~-B4aGhn97~oiNq-ebP%Bjq&i=3DBm6|Lh=3DItzn#ji!be53p{x1I2DwBT&54 > Y > zlUH-6f%5#>*Mp+eaYX;|C#Z}odwYS0-y{bXKAvK)U&ixCR3#!ysl)P#0r0O#N}> > QQ > z`7}bicS*EcAsS4|PiO#q$rwJ*i4ej|Q1##=3DY1H61E}|#Li5(E2d>w&V>z20JwRz$1 > z+9jj#bv;x0+ovu*AL5phaz@e5TUVlG6z^ISpC&kz#ik$Xmq^lF8kQ@$7>2M=3Dx<; > Dw > zL=3D)>4BXo6V;})fTUocyB%;7Ge++A0x+s!kz#K=3DKqT~y)fiWjZlKBWjtYsps!hMQFv > zJ%{}h`9bx=3DM94M6a=3D^OGt~C1h*!Cou{ee;JE%n=3Dv2mOOkXD)CZwucMbLq!|-; > )~kX > zth{<*3b)StbH}0}gBN9=3DMe&0e-=3DL<=3DCHUEV4(F;}_YMN6$eW0BzULjPjfS > MI-A > z)=3D;$56Il6+Wo6x(6pMl({0Eo1(gJs`uS3mX4F?Ogdco7)-| > zuDPaCT1tr_HPm#8Dc96ENQxLj%|uW`%}P~5P%}Z*Jl81~;kX>F;iAzRYA9OsSgI > |j > z=3D7Uy>o1Uu+Y1jP=3D?)Uw$*Z$#o)?RzP-~RS~_wznjFROvIce|IpLz-|SPjZh|_p9-Y > zw#t^~m961oG3%nwc+xlQ|K+`|y0y97gD&5_OY%X_oAd_MHjO{$sYBI%ftkni > kM*U# > z(7n=3DUA=3DWhvfNcYbE1a#B2+po93(%OW`|B$F+x2R7S5yp%CQLO(rmde?6VhP > ?Alh-v > z0!V4QYLgAEeWF}mn31X_pUO%X+Is=3DmJH9xX;tJ9u*wF5;x9N)wJZ4!@eB2% > UrQqr` > zwcg*Q3imRYH|f2cRbM=3D5tL~I`5}5|2e0(?iM*ha|ITXE0@%fxDe=3Dtqsmu2SO+ > wV`^ > z-9#K}I<(bDZS|C)Sl^XPA=3DKt@Zrx$p0c?ABJa76|_U~aCtGQ- zI;OqlNFhNJYyod#c & > z2W#j CNXm > z1f=3D_L*TK%C6&zLAD;t4_+9y{JR43G39UH%DR6fsWWs?;*8iNSk2~LbLo5n0gg > X~kq > z!#+pL-VbafrTO<|=3D98-<)s^<&`fv0E64U=3D6?WpjvY2A}(XpN6FT5fJ59}IrHl!JaL > zLg2_}*hzXSDzd8PzlIGiWZNq1suFiGPDnD>8Q&|Y1$%5>Sug|r > s > z`UJS)({AOd+aR?1_fLN7wMyetp6f$SYK#ko;qK6QqATga!FJHV%z>m#1Pd}pKee > Ph > z(pXbRjOT`w>7N+zzb_SO@&UO^Qz9OJOmYv 6|HJ* > zY#5-MVb<;-eE~#wSmE3qw_hvmE#Cu2jptqHYq>Aii7}fhhufeF>JqW36FH`i)BA` > a > z>dU_lN}8{95}KY9(%g+DvW*FE`&u@zd9p*3&>kFzYj&E|`^Pjfj0efu9<;r}pIU=3D) > z)CEbc()Z2Kc2vz0u)(KvJZ8dL%CVd#zcr$~ibS;Cd7q6(bBPn>3Kj%fRv*k)V;&8v > zq9scd6j!02mhybeTNEp*vqrH+XfbQW{phPMO7CJ6tcmSbuYBVRfQi14d|(Y!9 > HtqZ > zRS!FtyVd6SkFqI=3Dl*{8;+rFkH#oGYd&=3DsUtVKIIH5O-(t=3Db4H-t8cm$ > Q > z#&75*3l8IfF^-mW22Tj~)+;tpcDSFKUdjGf3yw|oOwMd})*(TV-c9O)C{aIKu=3D+0 > x > zvV6*J6Q24{MKnteoxpY%!z@X9DMZNiB?Y&`J<^9cjkXnX(#7a+ZqGD9?gARVH > CQ@~ > z%=3D##sC7&h9&RjjPyLoCWjz03A$i0s9T3!A+K}@LxHJ;ku4tZh8*uA(a2sQnbmgk > I! > zh0Br?Mg;5rz}Ujz%AUZU*7Fbh3^vmvNa3+~V`sG 8_jET > znWTBl;)EN!CnRlyF=3Db^$1A$dRgBuNj{>ik^1*wFl#+6OAp9ZXmeQfInIq|YdzV> > H7 > zop^Ed@%ew=3Dg*;`)Po8P7*OV-K3(rRlhNiB1n=3DXTMIa+Uv^l%Mw4x%b`Z(fSQ$ > k*m_ > z3s_91N!8$OqY*dz9RB{~&;4-Mc$%p4eA|a3Xe(}qhaUAagqJb<+b@uo(Da7XP > RpAQ > zbz_&3f{&8DBevNQ*QFSUoybPrKjEDvlh;9uQIi>}1m=3D7wtRuOxVT8#mKV+>P > m}^kR > zOee$8fO}8GhcAUch0GsCfDJ{lo3-j8K&fDse5LbRp+*6HrM~07VDr1Hh#adR!3 > uZ< > z{?c4GKXemUCp2#)tzc|3@Hme}$bQ{9g-KsquGwyI$`Tj0HG4}m_05I3dM4>6? > gWxu > z3=3DrUxf%h49VO~+W1!1yEE&E#80Cfg`@QjVMPH7fAP> GKD*}g > zL4vOXl}tFDu Gh > zkWqi*9U87YHnDIVjpD$>4&MR>J{Nr?XuX8K$4WDjXvm$ccBpCFJOIDPWiJ& > WJ}Mo| > zv!5^|Zf~tmD%^ZFwg%4rh _ > zb&ug4`hK_f>%YiPEN;*zxT|LmziwVJ6ZS}K%lORleOU)kUn2`)e(q)XJu1GpKXEoh > zz|Rt#wN(2K{MI&+KfO~1Ym~sVK2xWGvt(V!|8kw8WTJEvI^ohLyTJY6Ekp^Ytb > {m$ > zzYsizQ`SXLQcx;RPbi8&#}udar<8C?jnWC6aP1gQp;)41pcKuVFxZhbvVTp%PbD;z > zJZJOOCoEJ{k`OAYAF|h!aLNqh3BgnKGsF0{1XF@3_ZTPOZP+pR%#MQ+e|E_~L > 6d7- > d3{H*x_y>T1(~`rCis~HsWh6)HOT@R{e*iTGZzuo& > > diff --git a/IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.md > b/IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.md > new file mode 100644 > index 0000000..3c5d89f > --- /dev/null > +++ b/IntelFsp2Pkg/Tools/UserManuals/PatchFvUserManual.md > @@ -0,0 +1,123 @@ > +#Name > +**_PatchFv.py_** - The python script that patches the firmware volumes > (**FV**) > +with in the flash device (**FD**) file post FSP build. > + > +#Synopsis > + > +``` > +PatchFv FvBuildDir [FvFileBaseNames:]FdFileBaseNameToPatch ["Offset, > Value"]+ > + | ["Offset, Value, @Comment"]+ > + | ["Offset, Value, $Command"]+ > + | ["Offset, Value, $Command, @Comment"]+ > +``` > + > +#Description > +The **_PatchFv.py_** tool allows the developer to fix up FD images to > follow the > +Intel FSP Architecture specification. It also makes the FD image > relocatable. > +The tool is written in Python and uses Python 2.7 or later to run. > +Consider using the tool in a build script. > + > +#FvBuildDir (Argument 1) > +This is the first argument that **_PatchFv.py_** requires. It is the bu= ild > +directory for all firmware volumes created during the FSP build. The pat= h > must > +be either an absolute path or a relevant path, relevant to the top level= of > the > +FSP tree. > + > +####Example usage: > +``` > + Build\YouPlatformFspPkg\%BD_TARGET%_%VS_VERSION%%VS_X86%\FV > +``` > + > +The example used contains Windows batch script %VARIABLES%. > + > +#FvFileBaseNames (Argument 2: 0ptional Part 1) > +The firmware volume file base names (**_FvFileBaseNames_**) are the > independent > +Fv's that are to be patched within the FD. (0 or more in the form > +**FVFILEBASENAME:**) The colon **:** is used for delimiting the single > +argument and must be appended to the end of each > (**_FvFileBaseNames_**). > + > +####Example usage: > +``` > +STAGE1:STAGE2:MANIFEST:YOURPLATFORM > +``` > + > +In the example **STAGE1** is **STAGE1.Fv** in **YOURPLATFORM.fd**. > + > +# FdFileNameToPatch (Argument 2: Mandatory Part 2) > + > +Firmware device file name to patch (**_FdFileNameToPatch_**) is the base > name of > +the FD file that is to be patched. (1 only, in the form **YOURPLATFORM**= ) > + > +####Example usage: > +``` > +STAGE1:STAGE2:MANIFEST:YOURPLATFORM > +``` > + > +In the example **YOURPLATFORM** is from **_YOURPLATFORM.fd_** > + > +#"Offset, Value[, Command][, Comment]" (Argument 3) > +The **_Offset_** can be a positive or negative number and represents > where the > +**_Value_** to be patched is located within the FD. The **_Value_** is > what > +will be written at the given **_Offset_** in the FD. Constants may be us= ed > for > +both offsets and values. Also, this argument handles expressions for bo= th > +offsets and values using these operators: > + > +``` > + =3D - * & | ~ ( ) [ ] { } < > > +``` > + > +The entire argument includes the quote marks like in the example argumen= t > below: > + > +``` > +0xFFFFFFC0, SomeCore:__EntryPoint - [0x000000F0],@SomeCore Entry > +``` > + > +###Constants: > + Hexadecimal (use **0x** as prefix) | Decimal > + > +####Examples: > + > +| **Positive Hex** | **Negative Hex** | **Positive Decimal** | > **Negative Decimal** | > +| ---------------: | ---------------: | -------------------: | ---------= ----------: | > +| 0x000000BC | 0xFFFFFFA2 | 188 | > -94 | > + > +``` > +ModuleName:FunctionName | ModuleName:GlobalVariableName > +ModuleGuid:Offset > +``` > + > +###Operators: > + > +``` > + > + + Addition > + - Subtraction > + * Multiplication > + & Logical and > + | Logical or > + ~ Complement > + ( ) Evaluation control > + [ ] Get a DWord value at the specified offset expression from [expr] > + { } Convert an offset {expr} into an absolute address (FSP_BASE + expr= ) > + < > Convert absolute address into an image offset (expr & > FSP_SIZE) > + > +``` > + > +###Special Commands: > +Special commands must use the **$** symbol as a prefix to the command > itself. > +There is only one command available at this time. > + > +``` > +$COPY - Copy a binary block from source to destination. > +``` > + > +####Example: > + > +``` > +0x94, [PlatformInit:__gPcd_BinPatch_FvRecOffset] + 0x94, [0x98], $COPY, > @Sync up 2nd FSP Header > +``` > + > +###Comments: > +Comments are allowed in the **Offset, Value [, Comment]** argument. > Comments > +must use the **@** symbol as a prefix. The comment will output to the > build > +window upon successful completion of patching along with the offset and > value data. > -- > 2.9.0.windows.1