issue-#182 fixing code page conversion in RTF import

User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#182 fixing code page conversion in RTF import

Post by Josef Templ »

Zinn wrote:Ok, it is a problem of the used operationg system and its fonts. The translation is corrent an can be moved with cut and paste to another program.

One other topic: You change the output to ? when you can't translate. In my opnion it is better to change it back to equal the input ch as it was before we starting this issue. You may have a change to correct the untranslated part. With question mark all information are lost.

- Helmut
This change was done deliberately after a lot of experiments with code page conversions.
Here is the rational behind it:

1. A code page conversion error should not appear at all. Actually,
it is hard to produce one. Most cases are returned by WinApi as "success" but with "?" as the result.
For example, when you convert a single byte of a multi-byte encoding, WinApi returns a ? and success.
There is no way to detect such cases. Outputting ? in case of an error simply
sticks to a convention that is already in place.

2. If the code page conversion fails, you get an incorrect result because the character codes
of some encoding X are treated as Unicode. Pretty much like random results.
The problem is that it may look like a valid result at first glance.
You may not notice that there has been a conversion error.

3. It is hard to imagine that something useful could be done by the user in case of a
code page conversion error. And I think about end users here.
For debugging such situations a developer will need more information anyway.

- Josef
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: issue-#182 fixing code page conversion in RTF import

Post by luowy »

update,accept any codepage.

Code: Select all

StdCoder.Decode ..,, ..vEB...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,6kb4,6.5Qw7uP51QCPuP7PNN9F9vQAy1xB.gdj,UBxhYhAbf9P0G2sIdvPZntgcghghZ
 cZRC8T0E.E5CBH.Bso2.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.2qG1,
 sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.TNow,wYFH.0E.kdyU.cU.ktAcoZimBhWhioh
 gnZcZRCY.2.wY.E.0.p.0.4.I3tfj1.0E65.g0AU0KyBU.2.C12.e,2.AU.Ue.4.072U2U,.,c
 8fP3bOY3E,5zdGLmWom4KmKKtCLLO3U.s.E.sI,.,Uy.,c.o2rFHoA2lqK.o27HHQ52C2FI3Yj
 yC.E6V.A..2UeEeWQ1Iklb8IepZhZJinpZHZCZORNX2hgnRg.AS.QiiIepZhZ7F6.Z52.KAS.i
 80E.QE.sQRtIQeoBjghg2hgn7.X5.u0n9PU.Iy5.,.60cM6.,U00.umUG5.E.Y.2..EKE.4.0E
 .EM4PhU.wcNC.zwPA.A.I.,gA3EUfL6k.a54E.6.7zt1EA0z.IklT879HHfPLvQR7HHfPL9F9v
 Qs.E.sHE.cFE.AUyUHZiYRchZgnpZD3iZphIxhjZh2BhVZhjxgcwYHBjnZiZhhjIenJiXxZ,Jg
 jhioxYg2YbAcWxB0GVmqkCqp8orWrHaW0Ikmj,6.Q46.I12U.kzV.IZ..5.V2A0AU.E.GC.ZD3
 6.c6E.606..4E60E.6.6t..0.040.O22.1cDsI......kH.66..X.16.2UY1.6.c66.,U6U..M
 .R.16.6t..0.q32.C20E.AUvUH,.8ItyqvCrm8LISGWyqlKrL8IVqGaaqlKKrCrmSGK0mH8Iq4
 qlUUYddRgZ,HF,y.4E.Em,.2.I22U.E2E..AUCU,2.IdLD.l.4DOormKmCLLOormKmGomCrl.0
 E.MC3UA6.GG,E.0.sUZz0E..y.OE,U.Uq.3gwP.0..I16.M.EJ.1.V20EX5.zT1HM9,dAV7Ah7
 An7Af79,NMH99,dNH9S99N,7RZPMV96f9QTfP,tMT9QnPORvN,NMR969PPV9Rn96dPNl9R,dRH
 PN0GuyKEGLoKKECKqaKs8qr4KtGq4akK00SHM8HM4HK0GlWKK0meuqoCqrGqm0mtKLs0rr8Luq
 k2q0UlQag2YW3Baqq0LtyKvKKm0Gs4Kt4qn8rk0Lo0Go4KrGKqaKrSKEaKr0Gc4KtCrm8poCKo
 GpmWLuqk2q04nO4HM0HQmGECqmuKuKKt0mFSHOmGE4KmGqouqnQihBggZhUAgiZgUQgV3idZiV
 ZhUYhZZiohgm3Yu3YrBho3hUQgVJijphUAhi3YI3hdRiLphYRccBgm3Ya2YLJidZiZxeiZg1VB
 AVh22..kFWHPmGEaqq.PPNRXUAhidIdeF,NOP9QTfQd1kP0HP8HMmGEC4UloanYZUAgY,GqmCq
 oqqkmaoBgWRiUYij7J99S83M1HM9UlAamIag2YXhA.ldAN76BPOaKrSaXxhYhAVPMDPN,tMTfP
 hPNZvQHvPR96H1.U,.J0Umj06.Q3Y,A06.4.2E0.M.P.16.2U8,.E.6T,6.m.S40E..C6E..y.
 aY.E.UqE.IEU...p.0.4.I3.2G6.HE.wzBUioZigV7A.2U8,.E.s861M2E.A.6U2.k.8U.2U,2
 .2UegCWA8z5E.0.N1D.n00U1O2E..W.y10E.cUC,2..67,U.A.6.6AU.2U5BH.M.6.,U,o.0U8
 U1Ikmj,6.IC2U.EBU.U,2.IZ..,6.0ES9.oU.6.Wu.M.V.,sCs.B.OY.s.E.G8CE3U64.CE0E.
 Wq.s.B.qA4E3U2B.GE,9z4E.0.t1,.p.0..J,U.2m,E.QU.2.,s16,96.sM16.GE,0.8,GE,E.
 yo.M.J.mt.6,f.8w.6,Z6.sL2U,A00U8U1o.2UxY.KE,9z4U.kHE.0.p.0UZhN6.J,U.2G2.RR
 .oU0KyB.,U83.2.e,2.m80Ue.2.,6YU22.0kYl,.nP.Q.kg8.96,,E.0E9l18Mtr.0E.sCE.c4
 6.,6f6.c8.2UE0e.Q1gU,E.wQss603gwP.0.BI.6.I16.K46.J,U.YLE8k0W5SE3k0m,A.0k0O
 20kE5.1c30.PO.M56.he.gU.3.0kMk.uV.E5l.42,6.N.5.0E79E.c22U7Ikmj,6.op.2.,6.I
 16.,I.3U.EJ.6.VQ.k,0.9c3Ei5.1M4kHk.aG.khVO6.o5AUPU.Q5AUOU..i,0ESk.4,Y5A.kR
 k.0,0kR.6.h41c46.T9,AUQU.AX1E0K.eE,9z4E.0.tw.6.,EBU..EJYDA.0E6V.Q,,E04.Aa0
 k.yF.6.97.AUIU.g2c2...0,0E20.1s.2.B.1s22.9,8,0...4,0.AUH.UEU.g2s3.s2kTk.8.
 ,EGk.WV.2U.g2c3EGk.G0,6.7,1.0kGUK.UO6..00,6.9,W,0kGUL.UX.UQU.g2M56.k.W,0kG
 UdU.Y2AUIU.g2AUu.7,1M86.j41626.Jc.AUEU.2s0k.e,2V,k.01,Eze.1c3EE2.1646.,S.s
 D,U.o4AUWU.2OAUC0FN.c6kDk.4,o4AUEE.0kik.q.0EED.1c0kZ.kKl.G,0EJ6.1c36.D5m,0
 kLL.1M16.B.5M.,.1Y.gU12.0k6U0U.Y1g.E2k0KF.6.r.9s76.F,G.0EKk.S,o2AUF.R,WF.6
 .PR.gU9.BO3c46.z,1s46.k.e,Y5AUPU.2c0k.4,g1AUAU.g1M46.3V.AUMU.I2M2kfl.m.0k7
 C.5s06.Nw.QUD.LO.Q.6.,c.QUC.Pz.QU9.XO.AUL.Le.QUD.rO.A.Ef4E.QUC.RO.A.kP9.e.
 wx,k,qE.kO8.5c1E05.5.Qw0UB.z31c4s03gwP.0..I12U.U,2.,EJYD.t3,E,k.0W.2U.AU.k
 .CJ.ENv.5c06.,f.QUBU.or0k,u.oMQ.E,4.1s2kC5.5M0kZG.zTHT8Ff8H986FuPb9RdONlnV
 yKrOrRqEIeGJqE,8k20LtyKpKqlGr2qHE8GVmqkC4IYBAVjJibBgiBhuBgoBhjph7gbUIYrxir
 pZjJgZJijphiQgcJYBAVXxhiZimBhWlr8rtakS0GFyIlKKt66PPO5fQTvQnvQdXnZZUAcghgsB
 giZgZJiUAdgJhdphWgV7oiZJinV7U0QetRiolLQC5XWV0IYBAVX7QnfQHvNF9RHMD,,...YhdR
 gZV7gbUI27uP51klU0IYBAVX3hVphbhgnBVx228EFqk2aqtCruKqtakS.8k4eGJam4qk2aoa0p
 b8Jeqk2akdapdGpWqIK0mfaKr4IsaKK0mfsHNPNN765uHP89PM0HcFH9P9vQN76BuPR9Rb99,7
 ITfQdvQNldGrrEK0GfaqmQig2YEJij3iZJioBhZRiggV7AV6xhnZi4dPEYyqtQcgBhkJA69,tI
 d9NN0b99,7J99Sq2maggV76J99S8369G3O3.gdV3ikhgmRivgV7gV7QcDpdHZeBAV7QcG3Yx2Y
 kYcMRbUYd43Yx2218Kr76BeF,ND,lWWpR0Ge4IV0mS0Wt2fvgV7AVcBggpgkxhdpho3Yx2YExh
 mFL0rra4GoYOJE8nRqk2aEuSro0rt0mS0Gc..UkQbBA,NPORvO5PP796v7637FHPMNXiwdkhA9
 8SdPNZfP19P3tCPM1H6Jn8I9O1HM0PONPfI9PM7PNZ96vFcyoYuIeKId0GeyIE8pWCob8JW0GI
 OoomqmoZGhgVZAam4ak2akkGKtmGE0rrCLR0mYuIeKoXKIdqk2akWuIWin4ak4oe,JeUgV7AVY
 hgWhibJZu2Y0xdDZd3BcCRbBA,PM1H68J76PONPfIUUIZdgV7gV72eGxd1hc2heGhcU2ZmJbUg
 dZ,M8,dE1vQ996FN8p76BOON1BOONPNrN1HcE9uFHeHPM0HcI98JfeIR86ROGNO1HMFRGE8okC
 bvgV7g,....0prCLEWmIeX7p7kRqk282..Zf9VvPbP1HMFRWExhnRbBA,kV...kdKKu0prCLE2
 ijRCo7kIin4aEV.Iii2ijFRqHE0rrCr4.bONd1r,....0GdKqkGKVaLuKKEWmbKJe0GweHE8og
 GpWamRqk2.sIUiwc3ZecIiiAgYJiUQZUIii2CmGEWrIiHEaIbCII8LL05HN1HMFRWGhgV,in4g
 ,V0.85.K4U0Vn3Ycoe,JeU2ju2Y,JeGBcN3YDpcUIcNlR0GlKqnmGEmqmuKR0mYu2.82U6BcAZ
 ecAamoadgV7g6.UvgV7k428.wcZph5ZhjJgVZhBhgYBhphhU2Zcxgu2YLBhiB6uGYSIayIV4Ia
 iHEKLriKR0mVyoaumYKJriKryqvuqR0Gf4IdQihJbUwedtHKKLCJeSoaKIWaoeqoIin4.ktqKL
 GrwqqmGKEenS0mfaKrUIBfBhc2xf6xcAx7M1HM0bXppZcxcgxhWFEenS2hbRbBAV7UkheiRh4x
 hmJeZZhZBgnhgUIbx2YpphfhV7g6wcZpBUB,in4ak4..PON71D8PTfM2Ycoe,,.sI.cC,tJA6.
 .30kUCpdKIdGJICrquGu.v76jOOy2G3.EK0GN0nIin4ak283ktqKLK5.PM090PON71.rN1HM1q
 UE,ULJidZC.0GISLteHEGZsNHTXgd9jeQH9R8rR0mlWKR0mVWoU8pIi130kV4odKIECKo0mbOo
 4ak2mLECIdmGEGpU8IKIYUIYioZrgcMZZU2a,3aMpZi2a4pcMJbUwimpZLJidlVWqk8LICKoam
 4ak2mbApcugV7A,WHMWJR0mv..8HM4oVWpIaEIeWZhimxhUIZdg,H.Z7Kp76..MA18KHN1H.CH
 geHES5.EM4nQ8Hgam4a.YaMJbU..cAgcMBZB.KHgeHES5..ZdBlO8P.oaMJbU...V7KHN1Ur2f
 u22..MA.2bMJbU..6AZtEh7KHN1Ut2fu22..ZlN0Hgam4.18Kp76..0nMOHMWpI.8Ige1..ZVt
 2fdg,kVWJR00.UkMBZ7KH,MFleC,,..j7FlO8P.anM..UmMAl7KHN1Um...MClO8P.Q4...58K
 HN1H.GHgeHE..U23fdg,kO...8HNWpIq.cBleC,,..XtAlO8P.waMJbU...d7KHN1Us2fu22..
 VdA7uElO8.n7Kp76..8nM8HNWpI.4IgeHE..2aloal2fd.IcMJbU..cAVtA18KHN1U13fu22..
 VlOCHga0kWWJR00..SnWWpIq.cFleC,,..WHgam4Uk2fioZs2fg2YkIcMZZU2a13fg2YkgcMpZ
 iAa43fg2Yro6N76lNAl89,7C7GK0GQOYioZt2aMZZUAb23fugV7AV7wimpZL,U13dG3Zkgc43a
 k2dUQZUwdGZccQgcBZdAZBAV7g6qk2K2,tJZPOw8UvgV7g,.EeWqo.66CKoeX1,p7658GQbBcE
 .aIX0mlWKEunS0mM0HMWJEGJYKIbqk2AV7FICaUUkgc4FgaGEOGEWml6Dv76VNFOIXWpI0GeWo
 W2YX3BpNDCIY8ZDJe2Vd2Yh2Ykg6VFYam4M098HbOGB865Xx2YUIakA60GeW2ER6CV7KH68J76
 ...g5MA1GEGJY.e18Hgqk2ak2.kS6AXNC2YI37UuUn2fBAV7..vVmkW2YI,cC6BlO1HM0.kSUm
 o4,7J.e1KHgqk2a..g5EM2YI,cCcBlO1H..g5kM.UuUr2fBA,.kS6AZtE2YI,cC6ClO1H..g58
 Xn24,7J.e1aHgqk2..vVkAaq24,,UuU,3fBA,.kScAA5,7J.e18Igqk2..vVkMBZFE.cCsElO1
 H..g5sB7GEG3UuU33fBA,.kScA4HQWJEG3UukQ41..v,A5,7J.e181..v,Q6,,UuUn..kS.7GE
 G3UuUo2fBA,.kSUmI4,7J.e1K1..v,4nN2YI,cCcBlO1H..g5EO2YI,cCsBlO1H..g50HNG2,,
 UuUs2fBA,.kScAXdA22.e1aHgqk2..vVkAaqA4,,UuU,3fBA,.kScAVtA1GEG3UuU03fBA,.kS
 6AKnN22.e1CIgqk2..v,SnW2YI,cCMFlO1H..g5EQWJEG3UuU43fBA,kW0GECKo008mT8m4ak2
 cHqU7gcANGUx6AldF0Ge.I52YWAVcIZUYgdxgdZiUQikBgXhgUIZdg,KIbQ5a.UX3hBAV3FEGJ
 oa4.rVBM103.0pk85a4EEWGtGKR0GXa4bHdAA9nRwimJ52DP0N1EtcJ6N9fNZORNXu2YI7S8Zg
 ltuGdYBamRqU7YeNFEqk2ak2OoruKuaIrOqr0mS00Ed..H9NN765vP7PNVOMDPNp76H0DWv2Ya
 JbUocjpBbf9dOSVPNBPM5PNr76RPNl9Rp76BuPA72Y3pd2R5AV1xhgxhmBdipgjND.83.Uu2Y7
 p7S2Qgu2YExhmV1xhgxBr76RPNkVyKqya7,90.RnmWbUg5V0I8.ErKKw.R9RsCPM0AVYtQd99,
 NRRPO5ePdfC,NGRW5,BvPR9RpFXoBH0r7619RdHR0GekaEqMEGbdVZFE0rkGLuI52DZ0Cb,Vd,
 qk2aU3lRkVy20GuKKw220nR0Gny4dPM396v76XtC,tMT9PYiVJgUENiHECrpaKs0mS0mNiHEOq
 oKKqGqouqtGLt0mSYavg,OpUsMFfC272YoBgWReoBDeHECpWGpRq.HcN1vMd99,dR19PN767PN
 BfFTfPmGEGanZCaKmWLKogihihZZUQgihihZ3VPMZHcyqtmGEaKR00.PM0HUjphoRigcNTfPe1
 ua7VvsMT1bfC,tET9PA7M1HUctQRORP998rmqKc4KtmGECrpaa2hgnZiu2Y0x7kRUaJbUo6Rnt
 uGXoBr765vPPPPp761eIAfUQam2YDpcUQc6VBUXZZUQgjphu2Y1xhi,r76V9Ap76VeQT1gAR7I
 ZHskwiHE0LR0GeK4Z06IZXvgV7EtKLqKau..bHdUvgV7Es4KuGbu..bnUko.rN1sQLPOVvER9R
 NlusE2Yu2Y7p7.6On9Q9fQNPORnVGLweX1xBkRAhY3jmI5H0EEOqokdGLteHE4IdUl2amYaUwd
 432EEOLR0Gfaqmc9gArN1HUoBgWZhZRco3ju..dfQDPMV9ON761ntaqVyKmKKc..g,Qip3iZJi
 DJiHhiWRco3ju.2Dq.qk2ak2UX3inJiXJbExd7p783AcGJ8w7CJYyIdGpVWoUk4ak2EmCLueHc
 yoY...50q.6P9HKCKsenYuIeKoX.g,q.VeIUGh6KLuWmtCKoendWob83M8r,O3CrteHcy2I8..
 b0UvU0h6.HeFCKs0mS0ml0LqKaUYe6h6qk2M0ROFj88bvQNtMV9PIZmAZvod3xecQgkZgn7959
 QN1MEbuI90FtQb96576ROGNO8B7859Q7XUQYUo7YZUAak2adQbUgV7k2CZH,PuHhOFFtInuId0
 18FZ8859QbfQiJMqpImmdapd.sQbvKVNLQgkZBamRq.HM05ntcCvtQbvC59QNPNenSCKsmqmI3
 rN1HU3,sMkhCKsqJRqntCKoinYuoVWml0rIin4MF2YEhioRbBA,HM1ak2Ec.kVyKq68HfC,,S2
 HdCwhglYu4r,O3CKR0mV..82.1mdUXxhglt0mF00mGEM8k2CKEenSQgjZBQbBUL3d7Zd33YcQg
 UQ2M8,d7c9H9N,t6,NOH767uH,tM,dCc9RPNl9R,NFR8FU,,66UgMAV,P.Z0k4ak2K2Corm4rN
 1g,.UHhA5uPNXc..r765fC03Cb1xBAZvU7o8MOp7650a2U0,EbUdBZvsMHf9H9N,dCAhv2YXll
 0GRqXXRbUQgddP99S.T1bHECqrm40GRq1HP1HkWkd.Q5AVBEc.EXyKr2ZdJbU.M8ocjpBH0r,O
 3OKR00R1Q5I6o7MEC3ogjpBb96576Um.AVa3YugbUogjpBin4a.j0cN,t6,dHA3cNRNO796576
 .B96pNDoZihgslW.A6.,,Y3X,UG,ogBAV7g6ocjlRqk2g,.UHFXyKr23.sCGLneHEcPCLLG3O4
 9P8rN1AVK,.H0r,30k2u2OqIiHEOKLa4pVdFnogUIbx6RBvC,dNRdP.OqrsQr76y40GRk4aU3V
 H,Q5g,.UChgsFIO3CKoEYM8k2O38KR0GVa3qk2I6.HcQ7f9ZON1HVEI8qIiHECKo00C28KEqob
 GIE8nOOnIqk2g6o7Q5g,03.S3dHEQgcJ5.PU7o8QimRgu2Y,J82Ym2YDp6.sC,7Nb9Rp7610Aa
 Uwd4tEUmhgnJbUAdC,g,82.HeFCrpa42Yy2Yk2YI37q.aEWKoVWmtiqoUdgV7M098HEmKqt2Yx
 2Yohgs76d8G.HMG2ZaxB0mSod7ZddsHZ86FdNc95vP7PNV0,ND,7AH76dmW.HkYsMF96t76XVM
 FY66jeQsJ.FtRZ99,tMFP8P.HkWMFSLtu0sEkl.aU3p7P.HMFNWBAV7M0CLtCqh0XUIbxsIFuH
 2ZX3hdQbBk2aUmhgn3Yukfoh,3CqoumKuaKVaLuKKeyqfaKmKqVW4Oqru4.YZUQjngjg2YnJCN
 76X79,7NbHK0mMamRq.aU7FtKqt0GT0HEGJYkv85.6Nb9Rr8AvO8r,aU3VU2d,ZdIFM0nIwimp
 ZL,UX,M0KIbQ5M09WB.NmY.Eny4dXUYe6l4M0HMEEesP2YX2YCFKI4i1AVaxBuGnipoGKwqJEe
 159Or76HeHAhY3jdQ5y4.I50Hgqk2aU3,.MOMOEEG3U7ogdhggtI8rhaKmIaR3Yug551.8nIiH
 EOqo..v001MFR0K2,tJkRk4AVE,.kV0JIamRq.HcJMONdQ9vQp,.cE.Ad478B1,NDuYAB3.oZX
 ,66..aEXyId0moenS0HEGpb0ml0rK4HEGobwemBBS3Ur,VvQQfdhfdQb3pd2RbU2YU2YBAV7AV
 3Z79O1ak2aEtERsJu4.6R..B1.69S3U0xf3JeGxf7pdKBcABd2xf13d,JeHZZU6QcLN765HK0m
 4a.Hkl0LmcLN765HqM8k2akYcQobk2YIVUg,A,B0.IiZN9X767WrJii.CIokl0LmsKHPLH,g,A
 V3VcIZU2d,Z76AIZdgV7k2o6.kl.2YUwimp3.Unlh..akWuYv..QApNDVtCPM0K2,,6IrN1g,H
 6I..geiBhXxB996FVu.a0I6.HMGBGm.G5.P.HsR.CIoUcN1AV3Z7H0.BvPYC00.HME.EEC0Y3s
 CM0HcNTXioAMLe151.a0y4.I501MF..a4aKrEEG3U7ogd7PC3r0Z,QA.cAH,H1.g96AU3p7PU3
 FE.f0sCPUBM0V0.VOM4qnAAin4M0h0hfC,,C5wivU0,kYOYy3iVZCumW4ru4KqCLI8rum4RtQd
 PSNHL4KuGLtaGEGJYM0Fd8uqmSLE8rum4,dP9PN7PN796JN8PU7AVrldKKu03F7Q1fQ03HtCPM
 0ak2OLEe1hOO9ntQcj3CTeNFdQf9PYZUoed,7PN99QHtC,dQf1,dCvFvWGeKKwI8NXndIkIi1A
 VmhCo3UHhgoBcoZCF7Q19RAZvg,AVrlfUKBhZxicIipVg.CbpphYhgaBhihgYZZUoed,.M8rN1
 M0jXHFckv8LL8okCrmWmIuGaKKrSKuWKIamIqk2MFN0WGs4Kuc9BPOZvQd96576VPMEqKKnGrI
 q.aUDJeU2Zk,MM796x76am4a.HkbEeKKw.CbkBgbhg0JiZBgf3Y776VPMd1T9QdvQH76d8G.VP
 MZnnUUghVJifhgm3Yi,.AVr,UkVE,k2S5j0C2oc4BZvg,AVrld.S5...gcCtCkvsJ.sEZO8r,0
 bmBA22wim7ITvQFN8MF2YEBgmtNkRk4Ic3,YABfF66pND,7ArVihC,dCAavcN,,BuPQiiYgdJi
 iYcZpgVhigZicAZv2YChcL33TfPAZv2YaxBoZa3YuEnuGuaLsK45nRQif,0001fnoC2,,Xl4aU
 XphphhU.0GbklyKqsQHtC,tI99R50WGMmGE0pr85GqmOqkK55uPNXd.7ntcCvFuK4r765Hr0GR
 qXCBdARbU2iVJCV06AIiZhB2YuEX4IaCpWiHEC5GYnZC.M1H.BfIEEEeKKwI8sQGqocH9vRFdH
 H8HHtC,dQEEEmKKn83QbU2iVZC0GRq1.u0kkkR0Gu4aH,,dCvlxqrRqk22BIig,dHEe1RWv6R1
 HqEw00.bPRVPNy2UU.kkuqtUZ382Yug5VVBA,59QNPN0GRqXmgaqQbUod3VkRCmWX,HFEu26NY
 ZUQgk,Qgk3Yug5V,Ad4tJH1wcZZi9hgtReoBgohgcwedpBcJLuLPOFROJH76t76V76dmW.,NEN
 9R,tO9PSN76RvP,tMTHvK466,d8H,HcH99Sd985nIi1akfAdAllWKECGE0Hg0GWyo4ak2AV7FI
 CKo0mSwYQxYd2YDJ8C4sSDN8,tH.MTDN8,7J66jHLS3.EEKIbG2M0j1.sM66RONUdg,AVcI3Rv
 PdPNp76PONUZJiUghVBjUYgZZhdpiZJiUgiiZgZpgdpB0mlWqk8rkCKuKKtCLE4Ku0GuWqmggi
 ZgUIZd.9Wv.Z0gV7AV3,o7.rN1w8m2s6.M0HWXlSIYvJYUYe6l4M0HsQLX1,k4a.HcH90HtC,t
 MR7NC56NCbv2YXpZVZio76sRAgoZCrlluGsYio766Q19RQ5gCHvE22gCH1r76oA22ogjlRq.ak
 luGrK4,dCQgjphv2YXxB,,in4k2uom68M1MFN0C4MT376d0k2C5.24k2a2yKrQYUUUYe6,A,H0
 MD,7On9Q9Hq.Ye6FEkd.S530.D1QbU2ht3C.cCo7qU7AV7MF.UnhikhAT0UI,bPRV1.enS.M0K
 Ib.aUYtQ00CqroZYhgntCK566.KLra4iHEOqr66.OqruavsRZndME685vPRnkG5HFE0rkEE.2i
 VVvg,A,5vPR96p,cP9XBM0akW.AV7,0mFUU.uom686698HbOF,tMFHR6Al869eHq.KIa.FnS6L
 376d8Gg,AVC,sC,N1M0HWc6Q,dD,Va23F965FFSGFaGEG30mf.V88HtCKIbQbUg,AVd3Yug5iH
 EOrkmKEe1g,AV7VX3hUo58mk8mI0GH0WXFSqXWIjWAZUwdG,u14IFaGE.m1eJFaGEG3q.aUL,W
 mlcDMM.6DcSsH.x,10.t,p07uHCahtKHPL,dCvllWqRkVM8rFb.aGEo7q.aUXNPP1EMWpR0Gn4
 qlGLEe1XVcBgnp700O2Q5M0a25XxkK8GEG30Gn4ql.PNAr76R0..aUL,EEu10HFaGEO06DMC3N
 8,7Fq.a.hPMN96MAV76J76hPMNnJ00kIg3TeI7GF0HFQbUo7.rFo.Ee8peKo4ak2A,9eH.HEvE
 RcR19PeGEOqksCk2A7kS660GeUC,6690k223CLsKqlaqkmKECKo.91JN8k2A7C5UyEE.7OF588
 .am2W05vPPnkuKm0mti4VPN7961vQ,tQHfPD9P99659O1166J,A,98HUjFEqHE8Gu4aW2YI37w
 868dOE3O8PM0A,90.EqaaZJYUY8.sEZO8P.HkW..2iVJiW2YI,VOMZPMDnkM1M0K2.UnhgXZiW
 2YI,..aU3,.2YWYhYJggBipxhohgW22kfUJllyaZ3Zm2alQ6H76Fd8,NRRPO51p76NPNB9R,7N
 TPR39P996XPRTXUIZd.HkW..8GtGKlmqsUW...23Y6H76F,.pFtaqnWaUYgj,.,,M0K2.UgBCc
 6...F,llI00.I5N1Crou4AC66.HkW..IilhijZC3,..68MCaGEW0.eXm,Cro.UU.A,90.kmuqt
 0rkCaW2YI,..FVkIaMBZU23.I59fP,tQVPM22U7MF..ghn3iVRA3,..68sAlO8,,.e1P96b9Q1
 XU.A,90.UiZgVRicJYUY8..68AanM8,,.e1RHm4qtWKEemIU7MF..ghYBgn3hW...23Y4H76.E
 RMPGqkCbU.A,90.EswA376k4k26I1fQ11QbUod3FsamRq.a.Vf9hPMNPO796pVvZeZ3jo,CLLy
 KsGbxRbU2iiwhkZCRdR19P,dC..2CDHVMMqbU.MP1vQL96pND0LLy4oCi1A,0rkG5,,dON.MHA
 haBhZZg,Zio78V1m0HN1HU7686O1XX,19RABGrm2YeA3M0K2..NPMHfP376d0k2cNTXUI5Oor6
 87PNBfFM8rN1M0wCC310F7J9XBlmm4RONjvJ9POD9Od98jfQRNM69OorsQuqr8rq4KqamIin4k
 2sR.68..QeoBjg78jfQR,mWvhjdAZvg,A,S5.W0..dOSVPNBnl2ZrJCEKogjFLAZdQbBU7kv.E
 I..sIHfS998jfQUgcAd76J76FPMNfNy4amIi1A,S5.W0..5uPNvPWmv8LLUg6IT1GaaBgplVsP
 amIi1A,S5.W0..TeNBvQ99RFtRZ1Y3VN8HN1M0K2.UWJ2.A,a2FPMb1OGEoiVZBv76V,KYUwCR
 tI.F,.UL,UVVgcFsQu4UBU7kWMF,tRQ8Uc....AAY3.3vPN9NHN8P.HU3p7P.HkWmY7,MDAhW2
 YI37q.a.H0..6A.k2kv.EI..sId1.Y3jfQR,uGny4RtQdPS2Yh2YvpcjpBbnoGrkmqoCqyamIq
 .a.9W3,b068...W044m0.R,u066L76rfFTXn,.k2MFR0A,98Ha2UxkumKF00.HU7,..24.M0sR
 .68...W0Ug.ELUi.0mK.CbpphYdQN1vP8HN1M0g6K2Q8Uc...68MM69.o3c9UUQ3Un,..a.9eH
 U7MFNmY.g5cPTfP9f6,,aUesQdvPVvQ,FqmKEKbY,aKrSKEemIU7kv.EI...23.N,Ui.R,2Yh.
 QC.gA.HkW..QioJidRhZJYU.P.HU7,..24.M0sR.68...W0Ug.ELUi.00UntQdfQsPf9RvP8HN
 1M0g6K2Q8Uc...68MM69.o3c9UUQ3Un,..a.9eHU7MFNmY.g5gikhA376.A,Cru05TWp,,dCQg
 jtCP.HUr,Uc..kb..Y3FtRZ1o3c9aKxKKEeGEGHEiGEKnI0GWaIfAakAZdQ5M0wC.23..Cpo68
 .m0.u0.00l76L76.UBU7MF..cM376.A,C5...k2sR.68..w7..NlKWmv85c9..d,.Uv.HUr,Uc
 ..kdEI.Y3F,EL.EE6C..g,A,FVaxhitQ,d8H,aU3,.cN376d0k2MGojcBgnp7Ye6FEOrkcCYAB
 10mWu2k2MGYAbHEqXaxBG5,,g,A,ogihihdCoCiHEaKm2YuEMiHEu2O4aWUoAoZdZgUUq,P.H.
 BvPsMggEVUUVphn,91iHEq.a.O4ohZFEEnkti1EEe1k4ak2A,K29m4a.H.B1,dCo62ZqBAHtC,
 tRZnd.W0..d0QAkkEKo6.uGnamIqk2M0gcC,aU3Z7H0kSwYaRgcBAbHuSGEGJYKYBU7kY6O.BV
 Yhgn,B1dXd2YI,M0sE1mWoiV76TeFP.H.V79,NANFNmGECHR0GnELC4UUUkAVcI3,FbCpYoYUY
 6Bnu66B76bOSPfMT9P,d7,NGRfR19PHXhobUgeiBhXVeAZU2YBA,a.mbrwau2Ya,Ec.AamgamA
 VcI3qokCKEqGT0mfKqtGrm8Lr0mWKLtyKsKqkuKE0GJa0A,YDWHRogj,..V7AVNAH68Jla4qlQ
 ecBhaZiUIddRiU2YeA3M06TAbu2YaxB...bN0Fd8,76EY4KrSqumKE0GJa0A,YDl7Ap76B1..U
 sAVcI3U5JcmQalIaU2Ye.a.m5XdC,dN...Ia72Ze.Icdxgp2YUIZd.H.FVw3YsIauAVBBgX3Y8
 xhcBgW3YcwhgZgd2YUI3k2EysAp76...MBH68JFEU6hgWJiZxiU2Ye.a.m5ddC,dN...Ya72Ze
 .AcmBgWBhX3YUI3k2EyMBp76B1..UqAVcI3U5JiZhgf3YUI3k2EycBp76BvP...lNAH68.Gpu8
 rpaqtWKE0GJ.H.tXrI5B1..EN4n2WGJ22Eo4qo0GEe0M06T2bucN...Ab723.9OMb9R,NFffQ6
 6,,M06TAbu2Ya,..6AjN0Fd8.ZORbvQHPMR96.a.mblIasIbUoA..MCbdAH68sIFPO.qGTIdV3
 iVphZRiZ3YUI3k2EykQeHEO4..6BnN0Fd82dVpBM9xlZyKtKqkuKE.A,YDCHMeHEO4..Aanoal
 AVcU8xhcVhobUIdj3B22U7UwVoIbUoA..MCbdBH68JV5Jcm.PdDCpoqKsmqoOqo6658OHfP9vQ
 .M06TcBpFn...f7AH68JV0BhblKuHEGJt4KmaKuaqrAgg3Y13B.,d8U7UwFP4HR0Gn..UlI4bN
 0Fd8wcmhAgZysFZPN66.H.t1ZdC,dN...Gn2WGJ6JffQUho5dORZ122U7UwVnIbUoA...lN0Fd
 8oed7RRPMPPNbPN,N9xFfa4.0GJ.H.tXrwau22...Kn2WGJ6G9fMkKuX6hgW,,,M06T6CpVj,.
 .oa72ZekU8rkUh2Y,JiV,,,M06TMCp76.....6JZPM.M9,NE.,,M06T2bkIbU.....UpRiZJiU
 gZUA6UU.A,YDAau22...K16G.fvQET.66.H.t1hdC,,..UrAVcI38okmKuaql0mKuX0Bgg,,,M
 06T8HMGHR00...XN0Fd8IepRCkKuXLBB7vPjvQ,tARNA,785OSZPON9PHvMH76,d8U7UwFN8HR
 00..6Cj7BH68JVI3hVlKuXI3hVFE.a.m5b7Cp,..MA2a723gcVRC91.11w8.U3Bgn,.M8,76J,
 A,YDKHOeHEO4..Yanwa72ZeEcCIEGnNSHEqGT2YoQar66fePH9R99N,tI4KuQCHeEP86,d8U7U
 3p7k2MF.HkWm2.q159QDv7,7JF0M0A7.EI.vFnEuUIVUogjFL..O5KIbg,A,90.qXWsQ376d8G
 9m4k2MGoD.d0,dRcCIao2Y3lRU7kYsQfnm.UX2YC,EIeGECrl4KqKKEGqrSLr0GJa0A,wCgAEI
 .gAUHVc.69WGv44J,N166JFQ.G2.M0g6Ko4A,H.j1.F,...UgcR11W4.Hl4k2MFR0A,98Ha2.Q
 gaJYUY8g,A,S5.W0..50W0UgsET1OrkmqIQgdAZBA,aU3,.6NRf6,7J.a.HWy,.0Gv66pVq2Y3
 pd2,a.j1.F,.UD,W0UgM9Orkmae..A3M0K2.Up3iW22M1M0A7..00I5.U7kv.EI....UgcRc8.
 .P.HEI6On9Q8LqsOb96JN8k2g6..B9P7PORXW.aEI66BPO99P0mouqtIipRgoBhjphU.M0YAcC
 ogdVdpBQbUAhYdA,,VtCOqokdsKki.lm4a.HkW..UmRigZiW2YI,.66ZPNbPRN9R00k26N.Gbs
 tCP.HUaBBNndkQqJEe1V,M0A7OqoK466vFFWog0pW8JaaIbiIF0GeW2P.H.B0H9NlHEkM4HEGp
 b0GaKIbWGnaqm.H76P76X767uH,dNH1sKH1PNAXNL,dCoA.URNFRWU.H.B1UAhcC33.GmIqmMq
 JEEM.a.O4UUI5mqouqpC4,t88GISGF0mJ0Gna4Ufc6DN83tCP.H.h96sId9Na4bf97POu0moou
 acogdhAkIiXrlfUKlvWGvmGEO3jvQ6NAhi7NN,..a0HU7Uq,.C5.EISmHamR0mv..F,kt.Ug..
 .H,A,wCEc68cE11.kK4nIin4k2Eo.sEdXuklM1HU7kWuYvg,A,FVkVbNM2YVZioNOMNI3k2gcA
 ,.2iVJiYJYUY8.HU7Fu4Klma17SqHEu2G3U7Uk,,,7XG,R,o3sC,7RQ866pVvhjBAV7M0gcCN1
 M0KIa.kScNHf6,,U7EbK2V1M02ii.I5Y8I8sQOqo85vvC,7QOqo85,dC2iVViYBBXf2YqBA6Rj
 POVvQrN1M0A70LLO46D,7AU7UXFrggUYhZpAaKrGqmuKu0GuyKEqqkiqm0GuWqmoiVNR996NPN
 DPMNHJa0A,2C.sS.Ughga79,7J99S.oAMTq.a.0bghga76pVk,.P76Vf9B1iHE0LL.,dC2aBA,
 a.9eHi1Hk26Q11,,d0.qorAhaFm42WGsUg6QU7MFN0.6PHf6,7JFWBU7Eb.U7EsuGv.sS.UgVg
 ..oAMTU7EsYB2YuEv660005,7QR,222iiYhZVf6Q11RdNH1qGEAA6PsCPk2A,0rkEEEe.UBlo.
 68Ug.M0K2.UlZhW22.a.R0.a.Vf9h1Uv,.yaoRixViwBdHLEEe1..N118NJPRb9RvvCk26QyKs
 kqQC....YZUY8.cQHvNFnUGKpky.HUkBA22Y8.MH.Uc.m0U7MF..IiW22.a.R0.a.Vf9hXd,i5
 .sPMT.oZqFE..Et..U7EswBMP...m4.m0.Et.Ux,a.VPM666J.ka..F,Y3.HkW..sM376d0k2c
 H.k26QRdRABkx..T1v1UioC00gjvg,A,0bj,P1UI,.N1.N,.cQ.ky.HUkBA22Y8.MH.Uc.m0U7
 MF..IhW2YI,M0o7.M02iioCa4sS.UjVx,ELO5,,..N1.N,.cQ.ky.HUktPkq...YB.Y3.Um,.v
 1A,0rkEEEe.UB,.W069.aU3,.sQ3f6,7J.a.R0.a.Vf9hXd,i5.6P4axRbUEqAA,dCoCI36Qg,
 A,0rkEEEe.UB,.W069.aU3,.Eq8GEG3U7Eb.U7Esu0.i5.sNZPO7PTr,DfQHHEEv..k26Q11,,
 d0.q2.68Ug.M0K2.UoBiXJYU.k26R1nd.sS.UXhgiZCZ9J1nyqk2aU7MF..cQ376.A,G5...cQ
 Ee4Klq5A,90..7PN5f6,,U7Eu....51Ug2YIhA.IC.U7MF..IgW2YI,M02ik2Yug5VPMc9VeQT
 HIamR2iUI52acYeZ,UEVdQ5M02ii.Uv,.Grk8qtqrRq.a.VHu4KloZolh0LLGrkQCNHrqJLCLu
 yKs0GRcR.j10m4a.HUk,YCi3sQm4Yit3C,dCQD.El4KtGpkgjv2YoBAb0.vHEq.a.HeH588Vf9
 dPM.Hl4k26Q11,,d0.q2.68Ug6QU7MF..2jW2YI,M02ik.VPMc9EI.EM..03a0M02iioC.iLe.
 UoVx,a.VHuELG5r0QCNXRtQ.O5..A,05EusKUn7PEu.YiVJAkR0Gu.22Qjx,A,a2.Ud.a.VPM6
 66J.ka..F,Y3.HkW..2CDHl84.A,u2.A,0LLO5.r9J.krky6QRtPc9hXUI5..0582..P1Esumr
 UqlRqU7M02iVVUUI,.P0.23EK.A,FVoBANHE4KuMO..HkW..YimxhrZgW2YIV7UnZiVJio3Yjp
 gUYiV,ZvPj96JN8k26QEEEm.o3ELUv.b000iry6RYB50pVXlR0Gu852Yug5VtCP.HUC,.HUkp3
 ABkxG3.bHnUg22.EqoAN,.sP69,7J91.d1v1A,0bjVigB...N11GpEK..85A6..Uk,.P.HUkdN
 H1,dC24,7Qmaa76p,krUqFEkx..N110gD,VoViEr0GR6Aq.a.VPM666J.ka..F,Y3Q5M0K2..S
 qkc6,7J.Wqk66d9O9nt05IgZZirhgZphUYicllKKqmqt0mrOKE4KEGrkEEUdpBdvR0bic8U7Eu
 8rn44,,hXvk2A,90..NPNBHF00.NPN2YjdNbXUwha3Yo3BGrkEEUe.a.R0.a.Vf9hXd,i5.6PO
 ag..oAMTq.a.VHqEEe1FdR1HEiWoJCM8,d8,7RjHsQ5Vf9B1000bgVvk2A,0rkEEEe.UB,.W06
 9M1M0K2.UXhggZhsJYU.Etaqn663vPffP7PMZPS,tPB9611klEEaKr000bg2YdphXZhpZgdphb
 NOdvQ,7O19Pwha3YBA,a.GLoKKEC5.UXhggtQrluCbY3YoxB19N796196dWUYij3YoVkBgm,cQ
 f9P2Ye.a.V9AEs4Kuc96QF,0024.sQ03a0M02iioC.i5.6RQix,a.VHuELG5r0QCNHrqZn,68.
 ..sCq.a.V16RQ9ktYB6R.iry2YBU7kY..A3k26Q11,,d0.q2.68Ug.M0K2.UdphoJggJYUY8.V
 1.HvQ,7Q1fQd144Ue.aU3,.sMc6,7J.KKrGKEy45PN2YeA3M0wCS3QccFIGpU8YBU7MF.T1cQT
 HF0Ge..cQTvR.a.V0UcAZvg,A,0522YA.R,o3sCAAb8R66sS6RYB50cHQbBM0aUcEoKqkGqm85
 U7MF..GqmOKn8GEUBU7kYOYcBgn,EEGqmOKXEEe1h19WBU7MF..Oqr6R39P3,g,A,a27nts6Cr
 p66d8G22ERcNT11HEKIb.HkW..QgjZBGLlm4k4k2MG.C0.22ERsMm44av2YXphpFR6A0mdKKuC
 22ZkY3VN8,NF.HkW..IiZZgW22M1M0A7.vlly4G5,7JFWUQeZZCEICKrKbgsET1UdoZX3Yf2Yq
 VBxd2dAOnI0mW.aU3,.vVbJiZdP376k4k2MG.sMEu.22.W0Y3.kI..UUIZUIapoad.k2g6.MDI
 gghiZJYUY8g,A,a2.C4YC.,,Uc.N,.A3..662YqgapQaqAZUg6U7MF.kScQdfN376d0P.HkW..
 AgiRidJYUY8.HkW..YhVphbJYUY8.HkW...BPN376.A,90.UjRgcJYU.k2g6..GLtCKo80.aU3
 ,.cQmqlWKF00.HkW..AAQgkxgW22661fPbPO5uP28DHEe1hXBM0aU3,.6OHvMFf6,,q.aU3,.6
 N3vM80.aUckqaqtCKE.aU3,.cMHfP376EE8LmumdKKu038LmuGcyqtWmI0mJ0Gv66PlMamR002
 3Fn4k223K5y4,d8U7MF..KLF00sJkeu46858GZGv4adAZv2YnV17R,,fX1l4k2g6..CKF00MGB
 86ku6Jkuu422oC0mW.aU3,.Es8LF0GeUY,pVnRhdN0FVnRB0mUu20rk85JN8k2g6..GKF00.Uo
 hgsN0FVpRiZ3YJphdRA2Yk,.HkW.Flrq4cN3POPPMJvPZf6H76TGEW0.kouqr8LF..Em8qq4Kp
 y4q.a.TWc..AhixB22..FPOPPMJ1...HfPk4k2sH..NvPPPMJvP66..kouqrUI,.oAUBAV7M0W
 0uKo4KrGKqKKm0GmK4HfP19RHvPCLEe0M0K2sM.4quGLoyKt8GEG3.,,b1P.HkW..Igp3ioBhh
 JYUY8...aU3,.sMqqqKKrIYU...U7MF.66EtKqkGroqKF...U7MF..GqrQgjhhhJYU...U7MF.
 66cNTvPdPNZf6...k2g6...Nf6,,...HkW...IiW2YI,..k2g6...Bf6,,...HkW...RvPdHF0
 0...aU3,.EuuqtKKs80...A,90..kl8GEG3...HkW..UXphW2YI,..k2g6..FPNcQ3,...aU3,
 ..6P...U7MF...85...M0K2..Ua,...aU3,.MOOaW2YI,..k2g6..LPNnvRTfQ7vQ376...M0K
 2.UjJgehgXZiW....HkW..6Q9fQ19RTfQ3,...aU3,.6QHvMdf6...k2g6..8rouKuaqq80...
 A,90..OrkGrm4HF0Ge...M0K2.UmhgqZidhB...k2g6..Wrm80...A,90.ktGrwsQFPN99R376
 ...M0K2..fHpKql....aU3,.6R5f6,,...HkW..MOd9P9f6,,...HkW..6S9f6,,...HkW..2j
 ZJ2...M0K2986Fd8KbfpB22U7kYsQLX2hgnZCB76FtMuKEcHAZUo2ELUUQ2R0G3.e1EEKIb.Hk
 Wu2k2QifFW.oc,tIq.akWmY7Vc328mH8GEUBU7MG2YcYgZVx6RWbdoYc2ZX3iy2ad2YDJ8FtQL
 POC2qXkM8,7JFWU2YUg,A,uomWbcUvg,A,a25XwUt66UqVukb8JWQA0mKw7I2aGEKIa66h1.Co
 U0JICKoAZUgZU.3NE3Vf2Yl2aUg6i1A,u2Uv.HU7,...Aaq2YecRs8y2C4,,c6VVBA,a.9W3,e
 1.s8U1,A3.3NE.qk2M0gcC,A,0puGLICJYy2CIY83A3HtC,N1M0o7.r,a.H0Q2D7LD76d00mf8
 5CIcAZvgcC,A,98Hg,A,u2.k2MGUw..O5,dCw7QA00EF01,,00.sE.H,EF42UU.k2cH.i1A,a2
 ...kM.s8UXFE.8GMM1M0g6.e1.s8U1,A3.3NE.q.a.9eH.HULJidZCF,kIQ5R0k4k2g6.HMFNW
 BU7MGUxc6xf6,,w8EM4IMWpIaEIeWidP3fQ9PMaKrSKECLs44,d8U7MFA7.q0..GIgam2ktyKn
 GLEWqw0LoKKr0GJa0A,90.wfW2YI,UJ,2ZmkMWpIaEIcP.UcBD.k2g6.EJ8GEG3QifFWUuEe83
 k2g6EICKo00NeFH76TGEQAsEZO8,,2844M1M0K2.c6rnI0mb.ky8mI0mb.EiAZUY8sJEICKoa0
 A,9eH.HEb.a0AV3l4UA,51QbW22M1M0HWY,vFn.0W6FEO40GRcFTXcogihCHtC,dNc9BvKMLe1
 V7K0mYkoGadg,AV3,G4klUo,kYuoVQgihCsIUj78EK2adgV7k2K2.EuEEG3w8EFiHFam4k2KIb
 Q5M0R0.gcAVcQgcdD66aGEy266v7An7KH76d0P.HsJUXlR0Gb.am4kWMF,N1M0R0.gcCN1g6MF
 228rtIed,Q5HM10350ZOFCYipCGLeyKdaqlW42YcAhiJbUY8lHf.hWrRbUIgZVZphYJ5HeHd0i
 HEO3yquGLR0GeK4PWZZBqorgAHtCPUKVmJbUY8l1YhndI9PMIivsRp76dONlXV7Q85BuPZPPGL
 uK4CKoeX137ZuCOKRo6RntuGXyKrQbBM0HMMd9RZ994KuGbkIbUY8sPYB42a4Kav2YX7Pp76Vu
 PGrtumVyKqyav2Yopgg2YVdNp76ktY8VPNBnlQ5V99,tQHfS999,NMbPOp1TfNBHR0mYu2D0PM
 0QioBDmGE4aoBDeXHh60mvKqoS4N761vR9POcC,NG.0Gt4Ku698rkG5V,WbG7PQC10H1EtKLqc
 C.ktI8NXvgV7EuKKwI5d0P0NXB,r76BHtCbABhihgg2YadQ.VdC,dE.r76BvPcC,NEMK8nOsHB
 GXy4u0.q.Cqrm4bfC42.Ecy4Q6sCOKr69CKr69aKRA7.PM030krKLu0GRqXIhA.bHma468HtCS
 LLCoruKrQgoZej3ZjhioBZvg,OKEEX.717WVhCW0,7RB96pVap3n1C4Er66pVlQ5B1iJMqZuEu
 OaBAV7QgiFEkMsMT1bvKVNLEcyKtUZNMfX1,rN1HUj76pND...2YnBhu76pND4HN0GJ0Gcy42i
 jBBin4sPBfN0GR6ArltGrw66sSsR910GRcFELu4Yhvg,440HEenSo7iHE8rk..oA.0GR6JZWv2
 YaBB.V76pNDOoUQ8r,d1,dCAhipZI3hdRiBxhYhAFN8rFt0GR6R99SuGbKqv8pm4KmIicod7Zd
 dQbBEtMN0GR6J9XKVn7JFPO8pum4FNOR99,dM9vNHtC,dQ11,,ZPRNXiUgd9YCrN1c9bON038q
 mS4oZGhgVtEFPMQAHtCPUL3d7Z7uLtummyKu0GHcQR7ITXd6Dv769fPaGEGobqk2AVVVU.RNMd
 Xv.HeFWGtoidhA,t6,dH66B,.HuI,7J9XG,bHdUd22.HM0ZPR66UqVcYeZ,sQ.HtC,dQ11,,K5
 u0.Q5M0BPOZvQUUUIJ8q.KIaA7,tM66BeF,7JFWUogdJC...RmRU7,19R2YX2YmBA2ad22cNHf
 Q.CGEOqo.2ad2YIVBU7A7.00Uk.ICc9B10mFICEqkI0mb..1HECGE0nI0mbEe.sQ0bbdEEEaYU
 IiVZCwBCrIqk2aU7Ye6hcC,Hkvumf85CpdGLtaKrSKI8Gi0rk8LmA3P.HkYOYmBA6POaUQ20Ge
 .A,S5..YhdJYdkvumf85aIrGLI8rk.EWaIfYir7Qam4A,HkW.Hk2Ad4dNEaEEOGE.oA66ICEqk
 IY8.HUr,Q8.ogdJYdQ5.a2WGt44oAkKIiVZCYBEWaIfUk,Hk2g6k2A,HeF.N0..110nIY8.HUr
 ,Q8.QiWJYdQ5.a285.Yc7,05A,HkW.Hk2Ad4dQUbNOo5VuPEsUUYe6,A,S5kd.UgJYdQbU.MG2
 3.EW.05rlv.C3.MPf9P4HFam4a.HkW.Hk2A7iLeK4.maaNEe4m0W5.Z142MT,N9,dQUjVUg5rP
 T,7JFWUwiiw8..4Lp8mIq.aU3Z76J99S...0mYuIE..d8G...cQ3N8P.HkW.x98dON.6P...Ud
 2YI,...5f6HN1M0KIb.aU7Fn..G3.2C....M1M0wC..6QSaW,M0K2U7MOg5Vl4k2w8ko0GS0Gt
 44YiVJgnVi3Y2xdBU7kY6J.klUmNMAdC32.Eu4aPBhRpZoBD0GeW2k2kYUs,EtUIFE..C5Q9.U
 U...GrsGaXN8,N1Hk2a.KIagcUwiiw8..sM3l4k2kWuYBM0a.98Ha2d0..66..b1i3.....Zf6
 U7kWuYv2YBU7kY..IgV7J..sQkh.....IgWA39eH70M0wC..Ew8mIi1.H0.sQkhktEEGoY.V1P
 .HU7p7aqIq.aU3VBM0aUr,QccBA8GE8WBU7g6.HcQ19RdHM008rkkR0Gna4Uk22ogdJCUBAV7M
 F.aIXAgoFEMMdXk6JM1M0V96pVrpZExhnlRU7A7UiQgjZhj765765vP0GeW2k2AB6A0mfWoYm2
 FNO,7DC4aGEO05vPNvPCbdhfUQYUAA.AZUY6,NGRuE669eH.HkYMO,ND,tMRPR0GeEECqrm4b1
 e119R.Q5HeHQAA390k2wCUH,UXpgWAZv.kYkoamRq.aUXVu..gV7k2K2U7AAB96p,Eny4R7Rn9
 QOaX77r761vQH1..CbutC,NMb9RnXU..Eua5rlkSrmUU..sR9PODXvg,AV7lkogUQYUYia7JM1
 M0a424..BfPA3BVaxBCrhaqiQ2ogd2Y2,AB.M0a2H1BfPfHEUUogj,cCAABvC,NGcNRPRaW3,M
 0S5kdcQ.Bf6HtC.A7.M0GLn0GR.PM0Hk2K2U7A74qta4,t6CroEeW2P.Hkv.C3.QiWAZv22.H0
 1vQH17OG2hVZBVvPM8rN1M0Croe5p,bPOgV7k2K2U7A76RnXUQYU6REe.A,HWcocjpBumoG52Y
 7pdUAgn,H76BFzWGXyKr..QioBD6J66j1sIICUdJYdg,A,98HEz..C4AAa5o2FdF..sQ.d0.Um
 ,6A3N8k2gcC,A,H0.f1Zno66HeH,NMADc7u5...b16J..ICUpZhWAZBU7MFN0...kkMSEH23..
 .b16J..IC.0HFam4k2gcC,A,H0.bHtaqp.HeH44n1OWy,..kt.G3..ZHrUnZimBhfd6HN1M0KI
 a...y4kkMSEH23...b16J..ICR1Uf7A3N8k2gcC,A,b9R66p,GrwM1HM0akW.AV7lkSrmUUQ2j
 PNUIVBU7MG2ZVxiZ,uX4xBcPUd2YakvKqoUxkr..G300.ICR18KFam4k2gcA,F,...c7.cD..6
 J...EM80M0KIb.aUrhgd,p,jPNk4a.HMF.akYMMd9RwhapgnhA,t6,tPBfN0GeW2P.HkY..9Xy
 2Yk6J66..Up3iWAZv.kY68GLu.EWa2.M8P.HkWm2AA.ES0WU..Q8.YgiJYdQ5.a2FN9FNMd9R.
 6F..HN8k2g6krOKn2Yy2Yk..sI.MR0HFa0A,9W3VL,.Em2aWA3M0KIb.aUj,p,d9R.9n4a.HMF
 .akYsRR7IEECGE0LEG3kfU1,EEK2U7AAdHMI5UBA,K2U7llcDAak6K,7JFWBU7A7kSIak2am66
 d8G22.b0.9fPb9QEFa0AV3Z7HWX,sA0GeW2...qqt05.AV3,.Aan66...UiZgVRC,d6HN1M090
 .EO2YI,...P9N113,AV3,.6Al86d0.Q6kK8mIq.akW..A4,7JF0.C3.yJFam4k2K2.U13fU.W0
 AhXlmeXgVUYgj,,NQMN,VUwii..UgZgWZhlhijVWA3M090.EW22..EtUUYgj,.e0..UmZgWZBU
 W.akW..25,,..YBsQuag,EJ...YhlhijVW.akW..A5,7J..Et.bPO.Ue...cQXPRT13l2ak2aU
 BM0akWMFP.Hkvu0..KLFamR.MG2ZDJe2tMAZv2YBU7sMF96pVI3hdtJ.C4r,aU7p6cD2bk66k4
 k2sR.b0.Dd6HtCq.a.j1MGocjJih3ZDJe2,N76dONlna4ak,FPNlPM7PN5POPXg2YmY337A379
 ,dF18HbmIqk2M0K2q.a.j1sE.q.aU3p7P.HMF.m2k2CoUg659O,tH0m4a.H6TGpUIbUwii.C3.
 Grk8aWAZBU7YD5eIp76j1..0bm3YWAZvsR.NePr76B1.pV4,k2mbW22RFFiJFmGEgfWoZiIYuJ
 Yg2YWYjWYZUIYyJYu22.50.AVwFi8GRwCUH,UQJYdg,AVwlx8GR00..sS3N8P.H6TgjWIbUwC.
 .MT3N8P.H6TWHXI5Fd8Gab,V1e0.C2IYUM8P.H6TaHMWJR23Wqw.JFE..g3U7YD4Xu68oBqGl8
 rm4adpB,,..Q8.w9U7YDVNEWJR...b1...Ez8mIq.aEyEWWJR00C5....UhIYdg,AVwVl2fioZ
 kAc179,lUKIguGLo6gV7k2wC..s7.U7,.EK.6Q...6AcFkIU7g6g,AV3p7.i1IiiIeZBAUXl4M
 F.j1sEEFqLFamRq.FVchgVNNZ96JN8PUrtI99R68VN8r,jnfUH,kxmJtGLn4Hiohn7L1fPQgkN
 AZNBZ7L7PNBfNVd6HtCP...Uaxhi7R39P3N8r76H96pND0XBkf.H1EEGobq.HMGogjlti3qHEO
 2oZYhAK5,7J66B1i3e1FuPGLXoBu0O2umkmqo4qtGGEK2Ur,..IYdkv.a2FNOsR.b0UQpgiBhg
 3YWAZv.UoJidVaxBCrhM800.b0c6rNT3N8r,aIbMOq.90sR.50.,,EaM1H.UH,kxQgjZBGLlmq
 R8mIiXd,XtCPUL,UXVU.akv..Ei8rmGKFamRwCU7VXxBQC2YBxd2lOAZvg,.sI.sNZPN9XdQ5.
 a2.U2B78nO2YBxd2,H,.sI.cMNPR9nI.kY...hNBftA0may2..kV.rd6iX7pd1,.sR..v1S5Ea
 ..C3.GqmYiVJgmAaq2YWAZvg,...V9P1POAZBMF2Y1dP.QAkRM1qUElVEdMGP9QTfQd9FdONlH
 J0GIOpUMP99NplfaKry2CJeSY3,r76TOJdGveHEO3CbKVvgV7M0H.kbKJe0mvmGEWKR0mYuIeU
 v2YDh8aqtCpouqnmau2Y0xdD,HtCPUKVoJbUY8gdjFqCbBxB9nRIiZRig2YVZgmJbUAdC,sRZf
 CGZs,mqtw8cQr76kdW2duEk4aU72hiZgu2YLlUABFOER8FNOFrVoZCpFe2DEqMEMOMN6Qp76Ve
 QgAdPO9XHZiY3emxBr76VfQ9fNpFc8591cETPRQiEJiZpgvgV7I6.FXUUBhAKb5VV78PPN7P8r
 ,1mdK2WKrGKECWkYZUIakAZvUVZgm3YukfoBsFN1morCqpWGouKmamREu0GR6J91.7POo7WWv2
 YrJiUIbx6RRdHwemBhoFIu2i1aIX2djRC58P.umlmqruqm4IuGLt.0GeW2PU72emxhk,9X1xhg
 ZhZRgoReoZgEVc2idQ5AVCh64KuGbdkkELaIraKuOItyqq0Jty4.SLtQ842WmkGLuAZBM0sCAV
 HtIKoaumX6819NZ99CKoamRq.j0QAC0lGWg,akf85S3Ur79C4U7p74Km8rIiXHBfHZ8.69k4.E
 tK4sJ..fePNvP51.O5vFeEfktYAUcYidQ52imhARtR,dCvFf.f1BPORXv2Yk,F96pND..UBEfa
 arFY4KrEc8rrgdnxgcoig6QZPNamRq.j96pND0LtKaiwiv2Yc3Yu.6Or76HvQbWbFEe1B0MF2Y
 7hhkdQ.r,PEc..UGBhX3Bc8o8gBeXLlb...O5h0o8Q5AV7.kbkv..sHMO.e1y2.OpU6RY8lnaE
 qMHkR.ERA7.SbuUs,mqtw8cQrFtGKRgdZlmYgZtCPk2aEocCS310FOE.ZPRNXu6JWbG7PQCZGq
 sC,7QZXu6IMN.30.rV0,MGBGmIgpxgUYe6,akYqKsyKt6J68PPNmGEOLK0mvm0N76HvQ.HtCP.
 ZOFdWCV3lRak2qk2aEo66pVB,.W0a0A6.2YX22N,i14am,jGrU5,m2Ud.R0Z9NHtC,dQ7f919N
 Z14Km8rRIC0rrCLEe1V,G5Y8g7YBG4UdQbUwC,,df9sJUc.Ec4KtC5H168Z9NN76jfQNFtKLqM
 8q.Z1sJ..f0.g,O5Y8o8QC7168d168dON.o8AZiQeZZi2hgaBAQicIC69GpmMH.kkG5g,05umv
 00O3Cbp,H1006O,,..k4cJH1W2.q2EskIUr,V1RtRr,.2hv.UUU4,g600UG,sCg,V0cI90UJph
 dRAIZU2ZKVhFRw8y2..EvcJUKVvU7A,.y2S5e1.w7AB.p,T0a0oe,Fu6JWbBVglaUv.6Ne1R0k
 vI52DEqCbL,iXpRgusEF0AV72Be1A627.11pFe2DEqMEMOMNi1.919XH,Q5ER28gAU0,UvEV.2
 B0GRMH.UcUd.10.,t6.UVdQkfoBsFUA,M8EuUI,.71R0HtC666RR,j023.aIX27....66.aEc8
 5kmsET1Q8Uc.AVCVVVd6611RFr...SLtU,VcEuAZBkWsCPk2C3K2DWcUgMR5nRkfWYAluCKECW
 k29U7A6UpRgUU4pc4hcMZZUAakM8r,a2fvM,7D,NA29d0,tJYCj0.gCqU7AV3Z7HWplFkWOIXW
 ZI37wimpZL,50Krla0cH.HeH.8nIiXH,.Up,HMF.Z1sJ..f0.Uq32Y8o8QC7168d12CoZr32o8
 ku.R1,,2hU...M1oed,F0.P0.a0wiUUkViwiv..WqR.S4,,B0MF22cQUXlmiXBAVE,U37QTfQY
 8I3FN1HEveHEO3cJsC,tRNVg6SN76nfC,NG.Ahn,I5w7sCOZGNPI5jWD,.gV7AZvg,OpU6RY8l
 naEqMHkRcC,Vs,mqtIeZBAklW450M0HcQY3NXg2YVZAplYu2D0WKrGKRU,V6B6k4aEV.A6b0OL
 ECGEu2N,i1HsJH8JF86hfCGZsdJsQUUYcDh,aEuUqpZI3Bq2mKIM16OcCw8R1S2MEN9PTvMFtS
 X79,NAbNTN76Z76J76df9NONRvNM8,t8AZvAVcI3PvPhPM39P999,tQFPMZPM39P0GJg,akYOY
 cphY3YX22,,q.HM01Ht2Yu..UA,M80GqKKr0GR6AU7IiUI5GLLEd.F,HFE8LLU1VcQAin4k2SJ
 YY7u5yaUYcD,HkY6859O,VIVB,bHva45vP7PNH76BVX,.UkBgmBgd2YINFU7klW4Yeclf..k2s
 IC32eJZecAAmWH3dDFICadA3a2kIiX7VghgiB3k2MGQAqX176WoW2YHBfH,.mWAN8r76kkM8.N
 1,NFg,ak2g6i1A,Zf9..P.HMF.akd..Y3V7KHtC,NG.i1AVmhA,,j0.MJ.UBU72BI5..IeZBcg
 ZhjFouag2YghANlxsCP.HsF9fPD0g7EIWKrG4ROGN89qqmGqIqk2MFg,KIag6akWu2K2,NFl9Q
 .Q5qUE,..Z0EJM1oCUn,i1...ABsN.m2.q4plfsH.K2.cJ6RY8lnaEqMHkRUI7SUgRCZmkgArV
 c,66ZPNMMI5H0D0W4p,42WoU.aEV.A6b0.EN.HsJH0UsdJsQUU.akVyKrO5.Ucoig2YkYZUgd,
 3fcAdCZ8M8N76dP8r,W4.R1S2MEUv,EuuGasN..EvUg.4Kl66U7Ad47O2YX6AUBk2akkICp,..
 N0kI.HcQ,,df9.68M8ICkVEIkRq.akfW2..M0C3Ec.mWH,kI.44Hl4k2Iii..g,AV3lRM0akd.
 .Y3V7K.HcQ91w8.UJ,.U7w6.q2.m0Y3PXd.9WBM098Hk2KIbkW66..sCg,V0..K351JVBEv.C5
 sC...Q5H1S4UA,UhFRw8y2U3,.O3G5d0P0NXB,r,GZs,mqtI81nmQ5W4.Z1m4NlkcCaIbsFEoc
 CkUEY.AV0,MEC366.81M0jOG.2Dh0b122k2G5oCkaMNN98.F1pVLdPkX.10.Uo2Ye22kn.IadQ
 b723cREK.11,,AV7p6665,.ak24am76..Ea.A3,7P2224A,HcQ,,df9.68M8ICkVEIkRU7we6,
 ..aU7ll.6G.HUH,28Ug6HTeHD885eIHN8r76.cA226PY3ZVBU7kd..EaUApcdAZv.44I400YBU
 BU7MFNmY682YyEFEEy2C4vFe4IVaGEG3U7kY68cD2a3p6WpI0GH.tVkg6BWd6J6659Oe15Wcwd
 G,H76PFM6AWoI0mWsCk2sI..sMQbUA7AAcAi16P.P.HkWuYv.HEtu0.k4k2K2U7Q8..Y76AlO8
 H,.kRq.aEtK4sJ.Ugh8.k4k2W4e1..83UcFKYBsS.akX.MH.UCFKgBa0g6qU7gcANFAV3p7g60
 0.QAQ5..H0ZHeKKwI3OKR0WdltuGXYBrlbY8bfC,tIdHtQiiQ8TfQa0o8ICCJuktI81nmQ5dfC
 ,VsNH6PbnaUvsRZfC6SUgRCj08rRQgcZZUohX3husIkVUBcE.4YH,B96.81EtumVyKr.ogdQbU
 ICbON03F,6REeK4.G4EIamRwC,,d1jvJUcUdM1ICZ0buEFPMUvg,S3.ZPO7PNZf99vPB967uHM
 0Z1.ohX3hd.a266vlVAZUo2uqlWKEqXAFEG3IiiI8.Udg,akWmY7ll.0GeW2C4pV1JeBAV7A,R
 mRULJCw8.j151,tMF96cP59OP..b96pVIVKVn7NH12ZoN1KIb2Y7,UvM1H...AgWZeZ3DJFI.Q
 CkR.sI.b0a0o8.ktI8ggmR5d1WbBVglaUvUuUs,mqtw8cQrllWKKUu...U,tI.Ug.EtQ6....6
 R..6N.amRwC,,d1S368M8EtI8Q8klk4sJF0.c9.M0Z1.oBa0MG.vlVA3.,VAN8.Z1.Udg,HkWm
 2.66UXFRsEq.H.68MD8GEEH.,,Ee.I5GpU8oR0GtuGd..a0cHi1wemVL,sR.0ml22oBq..C5Ye
 ZFf..WGukW66.UstC...8poC4c8W0Un,i1.b0sIkIUKVo,lnaEqMHkREREw.NvQS3IivcQ7fCO
 oosQ83KKti1f1p,lHdYBCbG,rN1.cQ796pVapZChAZ023EE8Lmumd..G5Y8g7YBG4EIamRwC,,
 d1S368UBEc4Ktko.WGtkvEtUd.b1G3O3.EIGbv.F7J91UKVdsIY644.Y32DP0.44g,90..Q5HM
 103EdK2UJphd,JVa,EXkR..QCUd.h0Z1ktI8kR0GuUsNH6Pg7sCOLREwo8QCkRcCG3q2mqtw8k
 RqU7AVX7AN7659OXdC,tIF0UUYhZVmhApVClXUpV1,8rmOLR0GVyobm2in4I6.10.EK.cQRtE.
 .oZHFc.EqKKr00OaAhgixAsC,dQ9HEe1B0i1G5Y8.6NcHM8wiUIbx6Rkf.F,HFEoZHhgo,.j8G
 EqKKr0GT0GMYcDV7ICZ0b0QAVN80GtuGd..XN8rN1MGBGtKKvY8MR5HRqX137.4XUQZUMBh76J
 lb8JWEMAZBU3Z7986fvM..EEi0.UlM8P.uYvk2Y6YhZ7981kYMRg5VdFB0,7JEtK4pVyJiZpiB
 AV7AV3Z7HWpFS6AV,F0jWotJ.SLK0muC4a..Q2O2EYkvu0sEku.o7Pk2kREv00G3O3CbY,2Zo,
 CLEEvqk2KIb22cQ.KqRAVB6I..6FTvQdONlHJ23.b1Q5.C3kdUdU7o8.ktI81nm66UsNH6Pg7s
 CSbuUs,mqtw8cQrllWKKUu..qU7g,H6IZ0U1xBkVWqk2YcwimJ52DEq..eX1VdQ5230pV0mVyK
 mKKE0Zb76POMVnouqnCLEqIO0GImokGrouqI0GuyKEKJr.KIrCqrGqouqn0GJk2W0ZONBPNZPN
 RvM9fC,7JFPN,NJR1sIdPMR9N1fQ799OpmQCTfP4HL0HK0GfyKq0mMME79NHvQTfP,tJ9HqKqw
 mGE0LL0mOCHP0GJa082AV7g,akV4Y3,Tm4A,tnVY34YgEEo3jVusR.C2WmlWqIqU7UApcug,EM
 WHMWJRwC.UkQcr2fdgV7.AaMJbU..EXCIgam4.I4plv..gct2fdg,.bFR..Um2fdg,.d7Kp,..
 GHgam4.g4p,..0Hgam4.o4p,..KHgam4.waMJ5..sBlO8P.EQWJR..U,3fd.kQWJR..U039P.k
 U...WHgam4.I6p,..OIga0.58Kp,..KIga0.78Kp,..CIgam4.gcMJ5..Qco2fd.EX...KHgg,
 Ut2aM,..aHga0.X,..gcq2fdg,.Z,..Qcq2fdg,.b,..oco2fdg,.d,..cB.kO...81.o4..U0
 3fdg,.jFR..Ut2fdg,.lFR..U43fd.kQI5..Ycq2fdg,.1GR..U1N8P.EVI5..ocs2fdg,.5GR
 ..kUCHga0.78K..EWWHgam4.g6p,..SHgam4.o6p,..XNCZlI.Ack...KoMWpIq.UlcC..EW.U
 m2fu..U4R4.sAe1..AcMBZB.6BleC..kM.Up2fu..U2BaMBZB.cBleC..ME18KH,Ur2fu..U0B
 cMB3.WHge1..o6.MCleC..ME9mI.MEe1..QcMB3.8Ige1..8IW.U1dC..kVWpI.6Fl0..4oMA3
 .KYu...3mI.cFleC..cE38KH,EVK1..sEX,.O1..EN.Ur2fu22..2aMBZB.6CleC,,.U,B5H,U
 2dC..ENA3.KYu22..g4H,kVOXu22..KoN.UrcC,,.U1R4.cFe1..4IOA3.78AleC..cFVlI.MA
 e1..GIMAZB.cAleC..sE1mI.sAleC..EVAZB.6BleC..EQWpI.MBleC..MAbNA.EP...58Fa0.
 jFR..U3N8P.EQI5..cFa0.7GR..kUOXd.kWI5..Qc1N8P.MFVFR..EWC1.A4p,..O2.I4p,..G
 1.Q4p,..81.Y4..EXK1.g4..EWK1.o4p,..3OBa0.jFR..EXKIga0.lFR..EWKYd.kQI5..MEa
 0.1GR..U0N8.I6p,..aHgam4.Q6p,..B8FlO8.Y6p,..78Fa0.9GR..kUOYd.EXI5..IcoM8.O
 IMIbU..kUG2.A4..EV4Xd.EN...Z7ASHga0.b,..Ic3N8.Y4..Uq..f,..AcrM8.o4..EXSHga
 m4.w4p,..38Ca0.lFR..Uk2fd.kQIbU..kUWXd.kUI5..IcrM8.I6p,..aHga0.5GR00..CXd.
 EWI5..cA.6KR,2a03fg6A58KNV33fiMAY3jFgmm4ak2aEE0GM8IMoZi2a0ZaMZZUcEnFLuGMQc
 MZ3o6Rd9VtEf7KNFMCIQoZikWWJK6FnFLuW2RcMZ3o6N76VdF9GKEXIbBU7wimtJ.sEFeI0nWO
 IM66.5nIamIq.K2PU3FEC2hXo,r,PEVUBkUQ8.EK.cQC2.sCsIUckRq.d1G3kmEm.AZvsRZ966
 RkfUm33A3PUmdIsIEIC4rN1w8Ezo3EL.k285.cPA3kYOYcEEqX1N8O066Y7H,cQR,.kIq.KIaU
 X76EEMFQAe15eIPU7cHi1Qcj,.jfQQAHFECaUUil4.ktUIVK,.2ZoN1K2,NG..rl4..dONo82Z
 nJbU.sIkIeHECJukt.in4I6.HWn3Y7R8hOOQCh0,7JF0ZOFdOJ2YEJCK4K4d8OYet3CFtQFdJH
 PNC5M8N7637J99SUn,8mIq.98HKYGhcI,ROGq.uYBMF2YI7SUvgVBA,.MFl9Q6J9Xe68bfC,tI
 kt.iHEOKR.b1NnIi1HcJsRp76b0CbLJCsCG52DP0NXBlmQ5ZXI7SUgRCZ09nRQgcJ55mUQ582U
 ,tIkt0mFo7m0661uIbOFcN.MAHtCPUn,EfEIAZvU7,5,00g,akvumVyKr..jf9..aEuUn3ZIhA
 Un,aGLGJoaaBlm23rN1MGYiUQ2R0.AVm32YCcI44W0a0M0Zf9kVUXVBU7w8.KqrG5T0aU7FIkF
 Y8g7sQO5C49P8kl..EskI.k2sM00GJosJkk.U7kvw8sI58OsIFuH2ZXN8HtCP.HU7llMDCYU6G
 2Yr,.Yd4B39eHqU7AV7MFQ5M085.QAqU7AV7g6q..K2g60mW.kRAVB6I..kkEwI3F,b0sIkR.s
 QUd.h0.QCj085d1WbBVglaUv.2DEqCbGVZJivsMF1..A6b0C5EK6A.En.kM.b1gAO3W0kYOYn,
 22M1AVrtE....k2G5QC.QCkI.PWZ78.HWoVC,.aEt00G5.23A3k28LLU1,sCk2S3..k2A7W0,t
 6G3q2QCh151...6Q..a.51Yeclf..k2MGQAq16G22.b0QcGtC,VL,.NWBA,a.98Ha2UIFEGJY.
 .UW22HtC,,..g,A,K29mv..C3UdAZBU7kWuYBM0HM0K2rV7M085.QAq.akWM1.MFkW66.UstCg
 ,V0..Z0EJ23Q8UH,r,Un,a0o8YiuUsNHggglaUv.2DEqCbGVZJivEo.2YrJ5UntJEtg,.A6b0C
 5EK6A.En.kM.jOGsQpFe2Dh0b12Y2,HsE.d0512ZnZZU2agMH.S2HVoB3kv...b0.Et00G5.23
 A3,dQ83C2Uv.j8G..U7wCj0C3sI.AZv2Ym,.5XBU3l4WGJqk2ak2S5.EMWpIIZdgV7MFNWBUCl
 2EE..sC...g8UektsI.b0i1.b1A3cJsR.CbL,ZHEG5kaEqMHkR.W56PbHdAA9nRQgc,M1.MEC3
 QiU.m0V,10cN.MAUn,dONo823U7p6b166k4M0Q6....M0w8sEU4hc4lIin2W0NPOd9RNPN,NNA
 hVphUI3M0d1C5.C5M8UBlm23U7FuEb..HcQEu.UcUdM1M0Zf9kVUXlRU7w8..U7MGQAsE6G.HU
 r,.C2kf.Ea.aU3Z7HWcEEu13,,tHsMg5dWd6J.a.HWcUyEMo6WZUo2ESkWo622665XukVWIdw7
 kI0mKUk6GH,i1Hk2sR.UXl4a.HkWuYv.HEt...HMFg,HM0.90K2,,.kRM103.a26G99SJ76FdN
 .b1Q5Y8.kdUdQ5aEfEtsIktI8gArFuUsNH6PbnaUvsRpFe2D4491BGtAgoNNsMFXHtHQ6661fC
 ,NGsFQbBM0HMOplY.2YnZimJ510Aar2YDpcUQ6M182U,tI.UgEMM1IC50.EtQ8.Uo,d0y4NvQG
 4u2FN8r,jnV.EuamR0mvQ8.UmdIsI.QbUAgUIbx6Ar,j0Um,RVa,AV7p6196PuHAaq2Yx2Yk2Y
 IVBk2akvw8.IYPJYdM1M0j1MGo62ZVZ3dGwMM052B4451NXsYZUIYkI2O2AZvg,AVr,QeHZCEF
 qp5zs59mIq.K2r,S5kY.w770mGE....Iagc6V,.U7llcD,dAV7K,FY66bHtipk0may2gfUI5CK
 ogcAR8,tQdfQ..IYDKYUgcCZ6UClkamRq.o611EE.M1M0b9RZvKXdBv866AlWrpZL,b8Ra4wlD
 ylDK2r76j1.ktGLtamRU7wCUAN1HU3Z7MMUo2Yx6A.M0j1sI.3VWAZBU3lWq.akv.C2sX3N8P.
 9eH.Z1.QAq.90MG.A4CGE0HE.sQMM.q3UBk2aKEEI4HP0mK0mk0ma.H76J76b76L76FtA,N9,N
 M.0GWaIfYad2YfsArN1sJUd3YX6AGYUwii..3,rFWKoVAhd22.S5kd.C5q..CLEEeEfktYgd,Y
 CPkW66H0UvgVBgcCZ6FuPY8lnVoBRN18ssHZs,dfQT9PNPNZvQCZYR6mKWKqtCK.4jZ3D.UiQc
 j7R.7ONbvM,kV6R1PORPNZHLUm,..Unp3.6F6.ZD,0E.0.GV.2U.U72U.2.,..1cUZz10U.2.4
 4,s,,UN3.0E.QEXU.6..F6.w5,E.0.320U...7F.2U,2.2..kXkD7.16.A.2U.E,h,,U...x.0
 .4.AcmBhVZB,DX1.0E65.2..N6y,E4EeCuhYVZQbyIklbcjNRPPNQiiQcj,.EA2U.2..E2E.U6
 U.2hXRClt45J.nT32kwL,Fyd9HQvFA,iW1...
 --- end of encoding ---
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#182 fixing code page conversion in RTF import

Post by Josef Templ »

luowy, this looks like a good idea.
However, it is a structural change and we must be very careful about introducing any bugs
in particular with flushing the buffer.
I have picked up your idea and added it to the branch.
At some places I added an additional flush of the buffer.
Some trivial code cleanups (dead code, dead variables) have also been included.
WriteUnicode has been renamed to Write again. This keeps the overall changes much smaller.

I have left the handling of charsets 0, 1, 2 as it was in my previous version because I think it
is the correct form. Did you look at it in detail?

@Everybody: please test RTF import.

The latest diff is here: https://redmine.blackboxframework.org/p ... b7e23f7cf1

The overall diff is here: https://redmine.blackboxframework.org/p ... 500bf37a89

The version to test is here: http://blackboxframework.org/unstable/i ... 1.1005.zip

- Josef
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: issue-#182 fixing code page conversion in RTF import

Post by luowy »

Josef Templ wrote: have left the handling of charsets 0, 1, 2 as it was in my previous version because I think it
is the correct form. Did you look at it in detail?
I had to say,the origin code is designed carefully,I spent a lot of time to debug your code,until return to the origin code piece;
I used this sample file which created on on my PC(cp936), copy&paste the content of encodingBug.rtf.
Attachments
encodingBug-cn.rtf
(102 KiB) Downloaded 228 times
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#182 fixing code page conversion in RTF import

Post by Josef Templ »

Thanks, luowy.
\fcharset0 must be mapped to cp1252, as you mentioned.
I once had a test case that suggested otherwise but that must have been something else.

\fcharset1 according to the rtf standard refers to the platform's default code page, which can be
specified as WinApi.CP_ACP. \fcharset1 is more or less useless in the sense that you get non-portable rtf files.
This is mentioned in the rtf standard. It will probably not be used by any rtf writer.

\fcharset2 according to the rtf standard refers to the Symbol font, which uses cp42.
Most characters will not be mapped, but some will. The standard mentions that MS Word is assuming cp42 for Symbol.

See diffs at https://redmine.blackboxframework.org/p ... 124694753d.

- Josef
Zinn
Posts: 476
Joined: Tue Mar 25, 2014 5:56 pm
Location: Frankfurt am Main
Contact:

Re: issue-#182 fixing code page conversion in RTF import

Post by Zinn »

It works when I load into BlackBox via File Open the file encondingBug.rtf or the file encondingBug-cn.rtf,
but it doesn't work when I copy them via cut & paste from LibreOffice Writer.

encondingBug.rtf produced a trap
TRAP 100 (invariant violated)

HostTextConv.Font [00000ABAH]
.f HostTextConv.FontInfo NIL
.i INTEGER 10
HostTextConv.ParseRichText [00001A9CH]
.ansiCodePage INTEGER 1252

encondingBug-cn.rtf produced a trap
NIL dereference (read)

HostTextConv.MemReader.ReadByte [0000003FH]
.r HostTextConv.MemReader [4BA14990H]
.x BYTE 0
HostTextConv.Next [00000AD9H]
.b BYTE 0
.ch SHORTCHAR 0X
HostTextConv.ParseRichText [000010A8H]
.ansiCodePage INTEGER 1252

- Helmut
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#182 fixing code page conversion in RTF import

Post by Josef Templ »

I tested with Wordpad and OpenOffice: OK.
I also tested with LibreOffice: TRAP 100, as you mentioned.

Since I know from experience that LibreOffice is very buggy with respect to rtf generation,
I looked up the rtf text and found a mistake in it.
It uses a font number 10 with command \f10, but it does not define that font in the font table.
It does also not use that font, it just selects it for an empty text stretch.

It is possible that there is a convention to ignore undefined fonts or to report an error only
if there is also some text written using that font or to use the default font instead.

It would be trivial to use the default font, for example.
Look at PROCEDURE Font and replace the ASSERT(f # NIL, 100) by:

Code: Select all

IF (f = NIL) & (i # defFont) THEN font := Font(defFont) END
BTW, this TRAP is probably the same in BB 1.6. and 1.7.

- Josef
luowy
Posts: 234
Joined: Mon Oct 20, 2014 12:52 pm

Re: issue-#182 fixing code page conversion in RTF import

Post by luowy »

Josef,
it worked well after last correction;
but I think it is better to flush cpbuf immediately when \' not followed;

the 09X is accepted to fix up a problem copy&paste from VS Editor;without it,the formatted tab will lost;

and I want to know, which version of RTF standard do you use?
https://en.wikipedia.org/wiki/Rich_Text_Format


luowy
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#182 fixing code page conversion in RTF import

Post by Josef Templ »

I am using this link to download the rtf spec:

https://www.microsoft.com/en-us/downloa ... x?id=10725.

I found it by Google Search for "rtf spec".
I have added this link to the header comment of HostTextConv.


You are right with the TAB character. I have added it.
In the parser example included with the spec there is a note that
only CR and LF are 'noise' characters.


With the flush after \'xx I am not sure.
There can be a CR-LF between any \'xx and that should not flush the buffer.
You can argue that this is not very likely, but as far as I understand it, it can happen.
In my version, the buffer is flushed with the start of any symbol other than \' anyway,
so it should work in the same way except that it correctly ignores CR/LF.

The flag MB_ERR_INVALID_CHARS caused troubles in one of my tests so I have removed it.
The strategy with RTF readers seems to be to do a best-effort in reading what can be read.
So it may actually be an advantage in some (very rare) cases to be more tolerant here.

I have also added the fix that the default font is used when a non-existing font is selected.

See diffs at https://redmine.blackboxframework.org/p ... e888115072.

- Josef
Zinn
Posts: 476
Joined: Tue Mar 25, 2014 5:56 pm
Location: Frankfurt am Main
Contact:

Re: issue-#182 fixing code page conversion in RTF import

Post by Zinn »

Josef Templ wrote: I have also added the fix that the default font is used when a non-existing font is selected.
- Josef
IF (f = NIL) & (i # defFont) THEN font := Font(defFont) END;
ASSERT(f # NIL, 100);

The IF line doesn't help. It traps anyway, because f is still NIL.
Deleting the ASSERT statement doesn't help either, because then it traps later at the Attr statement.
- Helmut
Post Reply