From 48193975e5a0e48ebbb68217f8533ad2bfbdede2 Mon Sep 17 00:00:00 2001 From: Henri Salo Date: Tue, 18 Aug 2015 13:42:22 +0300 Subject: [PATCH 001/145] Prevent infinite loop in readObject() function. Patch by dhudson1. Closes mstamy2/PyPDF2#184 --- PyPDF2/generic.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index df1e028bf4..657612a899 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -82,6 +82,10 @@ def readObject(stream, pdf): # comment while tok not in (b_('\r'), b_('\n')): tok = stream.read(1) + # Prevents an infinite loop by raising an error if the stream is at + # the EOF + if len(tok) <= 0: + raise PdfStreamError("File ended unexpectedly.") tok = readNonWhitespace(stream) stream.seek(-1, 1) return readObject(stream, pdf) From 098394a3b3f8cf4254601014c1db3f4cfc85df68 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Sat, 5 Dec 2015 11:17:12 +0100 Subject: [PATCH 002/145] /DCTDecode stream data --- PyPDF2/filters.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 3717fd4c58..fb2da39c72 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -350,6 +350,9 @@ def decodeStreamData(stream): data = LZWDecode.decode(data, stream.get("/DecodeParms")) elif filterType == "/ASCII85Decode" or filterType == "/A85": data = ASCII85Decode.decode(data) + elif filterType == "/DCTDecode": + #return raw data for jpg image + pass elif filterType == "/Crypt": decodeParams = stream.get("/DecodeParams", {}) if "/Name" not in decodeParams and "/Type" not in decodeParams: From 7b591a285dbc5d2d8152c8aa5890a85f6e05a2c8 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Sat, 5 Dec 2015 11:44:08 +0100 Subject: [PATCH 003/145] JPEG sample --- PDF_Samples/jpeg.pdf | Bin 0 -> 100898 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 PDF_Samples/jpeg.pdf diff --git a/PDF_Samples/jpeg.pdf b/PDF_Samples/jpeg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..07a7fbbcb0acdf9e860d0c2e99aa7de16beef809 GIT binary patch literal 100898 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

Kf9K;}kn@ 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

|yW?co$!V9cWF{49jw#3 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 VdwKVr^c-zX^ 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 z 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 NvjWJ;zsQRL{vUfPu7>~s literal 0 HcmV?d00001 From 39de327cd964aee8053a3ff02f69d2e8ee93b5c9 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Thu, 10 Dec 2015 10:18:47 +0100 Subject: [PATCH 004/145] JPEG 2000 filter added --- PyPDF2/filters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index fb2da39c72..6dc84a4fbc 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -350,8 +350,8 @@ def decodeStreamData(stream): data = LZWDecode.decode(data, stream.get("/DecodeParms")) elif filterType == "/ASCII85Decode" or filterType == "/A85": data = ASCII85Decode.decode(data) - elif filterType == "/DCTDecode": - #return raw data for jpg image + elif filterType == "/DCTDecode" or filterType == "/JPXDecode": + #return raw data for jpg or jpeg2000 image pass elif filterType == "/Crypt": decodeParams = stream.get("/DecodeParams", {}) From ba3da42d687a7779b2bc95ab2eaac195cd36cfec Mon Sep 17 00:00:00 2001 From: Matt Wilkie Date: Wed, 6 Jan 2016 11:26:40 -0800 Subject: [PATCH 005/145] Extract images from PDF without resampling or altering. Adapted from work by Sylvain Pelissier (@sylvainpelissier) http://stackoverflow.com/questions/2693820/extract-images-from-pdf-without-resampling-in-python Script works but has limited range of image types it is successful with. Future commits will have sample PDFs and notes about what works/fails. --- Scripts/pdf-image-extractor.py | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Scripts/pdf-image-extractor.py diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py new file mode 100644 index 0000000000..8052d1976b --- /dev/null +++ b/Scripts/pdf-image-extractor.py @@ -0,0 +1,42 @@ +''' +Extract images from PDF without resampling or altering. + +Adapted from work by Sylvain Pelissier +http://stackoverflow.com/questions/2693820/extract-images-from-pdf-without-resampling-in-python +''' + +import sys +import PyPDF2 +from PIL import Image + +if (len(sys.argv) != 2): + print("\nUsage: python {} input_file\n".format(sys.argv[0])) + sys.exit(1) + +pdf = sys.argv[1] + +if __name__ == '__main__': + input1 = PyPDF2.PdfFileReader(open(pdf, "rb")) + page0 = input1.getPage(0) + xObject = page0['/Resources']['/XObject'].getObject() + + for obj in xObject: + if xObject[obj]['/Subtype'] == '/Image': + size = (xObject[obj]['/Width'], xObject[obj]['/Height']) + data = xObject[obj].getData() + if xObject[obj]['/ColorSpace'] == '/DeviceRGB': + mode = "RGB" + else: + mode = "P" + + if xObject[obj]['/Filter'] == '/FlateDecode': + img = Image.frombytes(mode, size, data) + img.save(obj[1:] + ".png") + elif xObject[obj]['/Filter'] == '/DCTDecode': + img = open(obj[1:] + ".jpg", "wb") + img.write(data) + img.close() + elif xObject[obj]['/Filter'] == '/JPXDecode': + img = open(obj[1:] + ".jp2", "wb") + img.write(data) + img.close() From eeb2b659aa2e3d3d27711f3f047996536401bf8c Mon Sep 17 00:00:00 2001 From: Matt Wilkie Date: Wed, 6 Jan 2016 11:40:14 -0800 Subject: [PATCH 006/145] Fails with "ValueError: not enough image data" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` > python pdf-image-extractor.py ..\PDF_Samples\GeoBase_NHNC1_Data_Model_UML_EN.pdf Traceback (most recent call last): File "pdf-image-extractor.py", line 33, in img = Image.frombytes(mode, size, data) File "C:\Python27\ArcGIS10.3\lib\site-packages\PIL\Image.py", line 2047, in frombytes im.frombytes(data, decoder_name, args) File "C:\Python27\ArcGIS10.3\lib\site-packages\PIL\Image.py", line 731, in frombytes raise ValueError("not enough image data") ValueError: not enough image data ``` Source: http://ftp2.cits.rncan.gc.ca/pub/geobase/official/nhn_rhn/doc/ """ All distributed data are subject to the Open Government Licence – Canada. Canada grants to the licensee a non-exclusive, fully paid, royalty-free right and licence to exercise all intellectual property rights in the data. This includes the right to use, incorporate, sublicense (with further right of sublicensing), modify, improve, further develop, and distribute the Data; and to manufacture or distribute derivative products. -- http://www.nrcan.gc.ca/earth-sciences/geography/topographic-information/free-data-geogratis/licence/17285 """ --- .../GeoBase_NHNC1_Data_Model_UML_EN.pdf | Bin 0 -> 360285 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 PDF_Samples/GeoBase_NHNC1_Data_Model_UML_EN.pdf diff --git a/PDF_Samples/GeoBase_NHNC1_Data_Model_UML_EN.pdf b/PDF_Samples/GeoBase_NHNC1_Data_Model_UML_EN.pdf new file mode 100644 index 0000000000000000000000000000000000000000..608056d8f23060abfbb56e50367443049dd318db GIT binary patch literal 360285 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%0A;Wj4IL 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%0Duw1NXwzgI)u)ndJ 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%0D6vE*i zD?iq_zyvQ~v~kkY>_*IoEe&PPxVs*vmmPH`we$R-&Gj13+r2YBtzu@?(`V?Xlb+tpdl z7}?<9n;QYPJ#mL~L9H8S0-kfnfPkQVpIK#P=a8H!Ghp<&(t)O&Iaut=V@2{mL4 zs$HmJUk(n|H(dNOzaSgvFUWehJPYf1*1lNZJ+j{6=I*dsX)s$kgU=sK1TlhglGDw(s~B9`{WzCI`2put8|Gq1 z*vuKC2)s&aZ@^Mrj4XQ4YS9PIKFpZ|mQUXy&fhBVM1{O)v^YBCs||$Ib@*OCZJJ@a z?K{DRR@Z7zh~GpC9TjlZA@8$g#Rto}lPQ3%V>pX?F{BwM$coZ}Zd-y|I+PMxCqfJ% z#0U!bBSd+Coi6Z3Va^SZa$-oh!*QzQdm*sQ_67!kDqhU35eUHxE@Ace-aRfQdB5W> z-0mu=r&#;;vUY2eM@FTer_-I_W;!6DZd2J$6n6UDfjCY_hBQ0jdxa{w4tFK zI+}+kn;MZ2UTZAXh6|M3fMf-Ym+v&w#tv6^+ucKRKG&IOb%@$($w8z$xh-I-XP6m zaO-u+&n?Z8{mY>RbbF%vlN9b&FsjKvme$hP=ixA9xgoJ{Fwb)G?y!E^6jK!gd~jlR zBl-Kp^upXP>$0p>EEWCKKEdVUntY$!G26)3+KIcU-pRCkG~r#{6YW2`I54VDw!vmK$45@6f4amn`C-lf;>N)V$ zc7xi$8ybs0QHpfdPqEd>KmpP-eX<{;@rz!>mZN9FU$tWn=!RG`smT5b0S6ZV^(fEA z?yX+EKD;G82!P(RSOs8UFy_~Pp&kE1JIpD1vVc=3!efzonMsnRY_y_6DYch~+A#vZ zmNVpJCb_*F5R<&ZJAIC27JHpwao%Ud0$Q5l6Qpw{-OE=>G`W7)$gO+!LkCj@T2qQg ztx1ctWJ(jBc#Kfn{zs9tgf05e@d&{|JfU^5-@Vv3uB%zirO`V(R;pO8Z#(dhmI)Yu zItq0{#x5>%tsc`}7uvbx?BrS9i0RbcS6rdn-dKA1n?iD%SR9sC$XUtPF3|u(1l*?M z!nuZFQ~EwxYG24QJeM;eG1d-XGdjkM=s(xVqaNk0$vQcTi=<{}f z^|m8ZHG|zeicGm-o48@d(QcF3Uns~F6$GK$=NxTiL$6|kW1@$?{b=s@z^MQTN`xRo zZHG;iLvq9P=p!T7X^Gr78>r0;X2XJ%a9#hppC*?Z3>#an^5bfT2?u5-_KPjww)c0! zZQD$~wtR?7Ca~~slnqbTfuLW)8UY8BaiB55I2WiaU%E_t#L>gALmSAC7z{CRy*~@E zHjCoHLI$!K4(1+~ONEAaOLa8WUj5u^_&@i|-X(Slsa8DFvl6<4`}lo}kBZo!0jPX9 zAthU8(!erOW>|I69v5q4f^IHQ^Y@Zc6rDcrIPgYlq7tFb-oghr@5Uc^Q)dP+P7QS^ z1;--kf192fZBhA?3p+y^x+K3jAoEVh9H2h(mKpzUN67d8i-bSUO<4R8@ySUPs>{NjINvaK(6bZ@y9`T4?=WAtZf$RuU} zAnxIkT)DSx3t#3y9pytQ>6v$Vw{-Le$}sgzWC5d~Rc1fzB-LrVaHr?<221YhB*j_g zDCf8Mz6!B(BW5$}%ry^-9iqc``3tpeuv?+k^fMP8B?4p4Fx%E!_E|-=$kVa=-Nkap zzP5@$5yWPX-c&{o=n`8PCcA`3-*zJV~)6EG<}|`d1VEH%BE`4Vk3Bg z!M}FJ&5yphw%}U#P5oRHcYb4=@xsvVs=0roKsNWL<|fn68Jreheqr*@XPtC8U{S2~8tkU$L+N&Ea%1ncOWWqY_TIU z-Aq3}i^@4Pc^Smhc1-1fZVC)AK4u$d$OF`ya)>E!H1)Z7e=YDjuCgjRJ2b%n??up; z1H>T9htB|rFCy7`0b0+bbuSa<9s5-IKvqG6xx$sQcXH1~w#oRPLE9V+!AUJRV}8o- zNublukje`7j}Sy$T%fBP=bhJSp|D7vJ0LT;GEyJsY!8ZpSjl@r0f)aUe0*6_S(Ao3 zMo)&dkNTqVGjYCy?81_33*h3v<^ijl#J`@27+Ve801s&7@3dBXRykLEx02HU*m{FF=qVxxI^fY%EL z(J7`X-dml$_e)g)5lC}*mT(ZCq7j7mzaJzILe#+bvCYU~iwS(*2z*i3rW9(8I2j0* zOwt1iQf2%Rwxv(}4LD|uy(|{8Rq$7Ray&5zPeqBuOI(sXo?q{h;#oh%kq>dk?Cmq< z+I>%}d673{m&qs*B1fnmx)&Q^pTis7G}E`%^SnL2tBN+^7Z@(2Urzr6^#4WlWAxxG zAH+2VDcMr%_fjyn)|vg$T9(%0MKh4?!fqza@I5H;4k!3>0DhcfbW^cH{EYw2HPGa< z6{JuP79a#5qmq(@QH-gox)?7ps#*U>O$nV`+p@yS+v^X`Bc{K=1!* zxK$=o$}w@*qH(m2=w1UdCGZue<&~ic?@KO?L_y^GC3v%$L$0-;`8nd+ZwnVPB2K+x2H@OQ6kTHu& z1`4O|6jYk>JbN6~y$Lcdu4HjLaHuKj;X)vIQQ9X@rQPi(-G!?qNg#G&)VnoQnq9QN z8WNQ|S#?ygMj{*6fgKRlMxqRPZa~Q_yw52tHd-KAByZW1FDE`T-Oe@s#WJ!qd7kwxJqBek|`f0y#tE>gL z|Bt=54vTX8`o=*NL`p(Hl#mq3p}Rw5010UXhVJeXkuD{N7Lh@^85(Kn?viehZg_9d zbB^bHzfZi^^ZxbwJr`c%+_mqu*Js7vYpvN^t)1oVSTg~P1mNo(C`#jXED<^hH_%#| z=2kG-*$5HMTa`*kzvul;uwzhY=?u#2I&6Ma{{qDJ(MYDi$TSIey*J)nH;p+!;jado3LxV^WX~~eIGcjCHD|`Q z`DJ!Xx~VHnB^pm1GQOgQyA_8yuQnhHeneTG26Zd~dH^6aHjmp9ylk~JQp~=w-uc<< zN{4I&+Rm50|60CCp@chnBDhsJ$0SpPY?l_uXU<8?h9$GdhB0)!Pi8-TlRLd=FEg+& zYIf+G8P;&%Td@Vf@PTe!ix9%;`_;J%4bGIhZ&z6DnF$NC^gxv+`mprASCZmWU$p`OF*zQAzFtnE{;`LL4Hz0mjDa@)jW=0uJCtwdo4W zy$*SQ`Po2VUMl+$cp?C>ZM{F`6DKqB&B2E6jP33TLhuh>Q2Y& zKne1$^A0+&rfV83ix{zrjWHIus8h;4KFX zeT9S}o9XNJgW$k}jQ$CP$eWyqR20HA6ohD1Gn`Wecyz9B|S9ZgDd7$p$^`Zm68kvM8 z`i%XO@au`rwPJi00d)D!2y{Hz#2&P1Li#%eHla2or1z#-*;Sru>BJN3XK`zx#0eaN zekb5oXCJ%aQE}?8=dKl>WoeOU;K*F*T8|M_kFQyK_qS$0;$O2J0nOVC-TvBSB7SWE zBnJ5!9R&K@0MoI5Ucb&;tTx}x18F%*SgrY>oc)-5PTsdb|9i)%V?rEp>Lo^?&mrRw zs+eeSaWVR}C3xd22|OJaVb(d8HSQ9JUeP|Z&1jI)uWt0vBI#4j9~Kyq?7^)OXkb-~ zF*Vb=!h9CU+KF~ON?pSy(Li6NB>3OmHo-tth4;FB%*d@u2BN!2uT{8*pabZ}w_R{V%2wY2#c21Y@~M}M&2>_gCg_Tr)9!4iSFd84k64TSB0yn6ayb#L^=aL*nJ2 zPTeNRr%sALZKO7*HuN;ppmeM(p3aE3+OE2PIR`%$_6*2PACw>|bQ!3W#CP@D&@kv8 z8dbQp9u2m(?-X;zEUfuKUFm=T;rSP!w+%Ef<#1p?hppJS0UmdXnKLM3$>weKKS39d zKbo7NThxxpR5e7(ikQo?GQd1hX#R{TFr2H9wc0L_^Im?DBIfGDW^T~~x)Io>t|ez$ zh;qk5$@tt*tKGb+g7hN@QP$|ZC|$f1s3o1BDK%f^FlS^XG4I8+Wdi^P;@xYCx``W++b8`)97K4352W0KXNdHNPVox7xh;)!Bi17CS4e&dk~dUD<=?2U z*ZDlzl&0RkzxgXzt+VvWreS~OkS6ybo6V#tBaMOTFPjjQd3afhT-->w8UC^ERP5n5V!lr%UnSW>f?;*XW#UB z=x`rKx382BaZxjgt6H+VEKPq^4q|unu%L&>OScwCDDJfvER`f^bcr(P4zf*}{u``DLOavp!8KQN#p_Zte<>+5%2Yb4uZ{1w7uYYoU4LP`Uqnlr4w5c+xbFZG!0H zK0RvL(owz_3OwHQ0@o({+IIVuQ>K2gZ8O6Y;s+u`yw{E5)v$6CW{1x_!+qHJDg8j9 zGCZWlBt@gE)Nr@oSX6N%gnwcvebH>*DZ9dSS({?R{2hiRyGnHIq}Ze>03X|{XzADa z2qMl+_QlvoDWIn?dz;V?a6I3~#SGOI#ZPlyYg)x}ToW6U3tm}GYhP&IR<>Iu945@p zbu1drT^irX+{wGj$=2w4#cn|Uv+MU`DK#lz1z30Up|z(DK9Kh5TBFMBHZ)6i&-(-N z&1_ewMsZl`sS+GwK6FjB^RCJe1N;BN{ITUSypm0eNT&YI-$b$_AsYO7aWbY)1pC78MK~-7QDK zpN8p|l245*r@`M}DFV|6NPsjBFp3#PX?mFlGNg;-FUjXlR$XH9y=Y(i*8Rw;3jQ=U zW>5VHzoT-o=)AGOvQ3bv!QQia_xRgNa#nxm;$&f6pK^AY!RVOgT0gBAT`^&4MIf}f zoM9sB5nT5b>t7v3whgtJ)Ua>G?Kn?=AILgT+03j_NLfBz(_CcvAvi_t%p@>#95>zL zMMb;2Wqe$4nS)%BM|e^frXgqu6Wm1KVlf7rEDz22sE%$U)xZw9clL(x8+(h5RUffj z^%g^ngS0V+S!HVtmCn+fbJfZ&<-m{lj(Ahgmum3i4Xgd!cS-gkd&)-mX(kt9osh{G zi}uio*TJ+P-{-IWb?fdombaA4kv)(LE^E|4{RR@Ki3(LJ;8lFV<0jQS5dUL2>g8z`7FFJZ1RLr)`UV-_Os+jdK6)n% zPNn-fKjSHbl302kO*tK)r=+;9=L)*+G|#wPU6}PSTYc#0pfAhV0=>=bc%dLuKfs51iq$Z^fCAEOniuM!D+Hrc; za8w3CDF;w|+p8BQjXPuv)YCQ_|e&(_pkAC)+4yFa956ED4$RJ`3 z@D*9&>>jZwICPTCvaB;(p?HDWDq6H^;}H?&n?-{!(=X|UGyMWY8>@%U50x7r>hAXV za++Cj( z5+NRK-$4f(X3~)B8ElKp?6Il2l6v%atLQXXRDNG@QH7f5eus=M!QwIg6Ki+EI&@ejK)l}5%Uf04ah$mPP z967iaD7h3#T_a8?O$tG>d6au}os81q)O=#R!~ILJIWaTr=uj!!wQ z8_H*&@@05GGQufWUo%kLD{%XRb!8p%~Ugw zlQq9m?%ntPt1x&{{jsu!sd@lysd&SYDHu?}xHBG7s;5k|IaxDkqqjADxZ9~m?<>yq zM#h1pNENdb)q*%w;DTtmWHT>(!r`N)5EUBE8dNM+B6v26E#6T zi#q_slbh=%6rOr6n|l$RSiGI8f9xP{hVjZJR;=!IqGs)BxuTXF{wed{Az|2xBO&=> z*5$=Huv}1P(MCFh7MvNs+!TSng`lvxU-WVG4 zv}?%E#ex7QJ2(jHSZPa9(Xv1+Rl_pFaGK?rpab8Z`Y*;jG1S>wcrRX*Lx}3xsYhx>bL(7;pQjq&K7QN@Y91uU+b!=@g}dn>{A6-YlRc1$ z&x5F=KOVX=wP5X`9D4*}Al=PrQd;jO=+fDd=QjXW>#^O68)sd~r|~DXj+X$*q<($} zo>$z_5n3^FBM3D_zbe?PfprhhhuK8a=YXvdx+5! z7vs+YaY`V1`z^b_f)bGXQKsM_zOC11%1Z%Ttc}j~8!rK;u`phVh0efH?Q1n*{6butadv8<6CRcNn347|0*~pda zgcFi>^q|PBen7=xD-+fMPo2f8!jfPgy-H3eJP#T(Ql3Pwbm(PAjFpZ)q;Q;^ygJr- ze?Zv*>C=P#`!^9kITr0jYE!t52FOB^?TV;3K=lII!m%Y>m#CBQrkpj}(~kG7P_DzA z4*v*}nMX|%m<@(%f6iic?2PqLxdTzx<`g(tT-3fAV-h(2-bEw#+Ie?jCYkS~RWdyJ zvZb!JI4N&$9cuvoU_cTbD1_D2qqo?lWPj#~LlE1qyqc4e*8TB4+-OZZfrIivM_r3G zRbE%d=EFMMmh!{IfFY}1L!rm7w*63Bv4z!o+ai_VeLD`)&FxjGBNO#(S zu8I7t+{0%d+IlyLpTE9#zIVLX(mt7UF%UP52^Go*AaBrRr zns6$cn5faQLVjwv%n-lxI|EZ6v9?&JIneu7WxQeQk(b zDoLUF<8`i7BBk{OJX<>4;tYrR4lr)FvuKz~d3wnnlcJP_QfPGktOI+>`O{&*Z>&OJ zBN9FB^1C(zRo8ZR+k%6JBPG$?)1l~OMSriQEiE=>Copr_KgO%~>+U>S=tCk=$J6^M znnP>GS{&h$ru&VjCh!Ew*ZXft#IC*33W?AG#B`#TE&f&&)s{v=DJ$s0Y`02!I@!e9 zIcxv<3uO(M=1;i^z<{;rr1mqZL@imk<$ev-VqO?3JRSiQgql!1b*f7Qp894@Z-xNouLPX7F3$}nqF5#jnU=9 z6)miu27FgN%-hCY-N)F4^@Cs8sSU1O%v9wp_CUBCM;+IgyK|Aty8fOlEF+v`9706& z9Q_b%a3oCXRot?bcp1EmFEnk(%|HB@m0*yS7|2}dJ--)8^BbOkjmZIAWswFaAF#Gs z|5cky)%nPSfy7=j#o8?ikDd~tk;%1HyuArG$q9jAkZpOQ8!WA|rE?85;``=$Eb~_b z=%5QO(y5wugZ<5FjmphL&#Q$#>D=c1XFu4iF8CEUoAoV(*_&uo6yie?q_w;=fr_Bh#6@>W+;RL@R`ZojvpM7a9QzL=^k6`FcSnR9;CaNPEk#atNr@8QGP8 zLbP+59h-8}xy@d5aw3PqFTMxVwDMD*Q{tvA_Pw|+|}lPd17z?RQ@DZ!aVXr2jRlWg0QG7pk;VH)WMhIym8}x&w zUi-)w)+dn=Q|h6~pd_%CLS*`YOv$IDH@m4ayh&EyXeAE7N$iAih_~7V6M%M{&4CPM zhY%U;eb_JV6T<34fTBgZu*Xa6k*3IYp7%VGQt>|C3-1H}&=S95&W|J*OgU$bY8yyU zwqL#mV?YxtNC^Cd_!mDwV4sI$fOm~=csvQt8jIR1CX2eIl=5Vd)q)l_jDJ;Eb7m4c zSv`-C2k$=B$|hs@#(RT(fKz-(7f@BO74#f zt>C{f=}@}5l4df?;C_5& zc~mfQVF<7CINEBhyRH*V2Pv?ygX{ zaB(ad!n`V{JOl+;ld1>Ywl7AfWTVs$7cG)_IUVHcOiTJYT~CXs8ls%>AA3sjZzk5_ z^XZnY5aHVWWEThrHnSvG;kDLj-*Yj#d8a+Yi%rF8oyHqnW16MC_Tsb%RgoMAmVu%8 z#|wFMPdx-4ZThY*_-tX_8_4VdqnSipt_)N=nAARZp*z^mrdI!$m(HX?4h}S`pLH4> z=w3Ce$2APj1A$On_CN4FexwGyT+W`FsHQm{ae3nz=@fdxfi>)(Ue#hBMGEX@GsShd zb5F3hA!+~@MuRyJ?G(D&V}@DnpdSrXc>O|v4eVcM#8cu9#fLwOCeR~rM%X2y{6{bO zQu09IMeRUQmoSM3Wq4SqsKmTUt$dHx@05+<8ZMsLhth@|1v~`npX&0A&@R>GCdi+q zGy$*6Qh#b4>EKT*E%lCeho0*^%ypdGgLwH}#bF*OQkSPD!ZtR3dy+i*oF0rl?v7S;+e~@LIid(If1#KHO zuwB(O*Pjv)0b*D*a3D_=?3bw!&Y;Vq-pZ{jP@D%!)8*OaJua^MEVzQVS4#lv8mZb_ zZ0;!pq;_Lerx2-TurO}~IUMI=pT%x`Oct6~Wd`26T&|48&uFqN5ViJRl}IR}TV-NzBf99=37JXmE*6JM(Y zXJ?qI&T?LsZX2K7$LhJ8ND20X(g7SVNe)1E59 z?Vb#?P9%;Y1JN)!HSx}mEHWCT)4WfBsjYFietLld`vU>w=b*nYs|pwkKX6< zX?^U@-`Yd%$X%`&YwLy3C8;#s95b*T zMn!2~_rPk0iLDX;g$hPhBVS%er#^JpjpZ_wDDfwcg};bF8*-X`cHjT`VCQ~k32s`= z0lE=vPq#9^11t!3bE|@PgfR2tHsCE;JOhtRu^U>)*`Kox%w54UkJ98?1>A_;4S7gm zXO*3J42Hn62XME_Klw&XMSnD;;5L2XGNUj8-No&{!Za%1IkGta7w`u#01crIPeQeQ zty|Y{|DqU*O2dY|0SirARl63S!2n| zlyf!ZeF`+Xl2GQF%F9-NEU%eO6342U4M+I)^u_T=T_`ErvJf;mbwv_i*%(Rp^k41$ z9kF#A_r1CxmP;X@+3m9u1YYGeUF+fY5*jAU;TGOVEI`3QUEQZK{!T1_ZP7lBIK z;zfesjJE#FT6O|WEl|(jWnjD0Y+ZP^uCh&1Jnl3?Dzhb38Mu(vvz?V&2i4e1E1S^b z^3dMgZi!8)d;a>h7x&3-l?s!;72gG<(2X-T{Hmp4IO&-nZ|PvNoZl)OURB3uU^sq} zXkYESve0SI7AAR%=VHC*-Kx!`HlF-wS5srU%Lg{vNWbr@bM7|mF$KkLuUZY{h)iQu z4z7~EZP8f3tE^*uNVSHxsic35d6`UVhE?yl9!aF(cTaLOvK@@@DbN_g26TB`Ik$CF z;v9iwg^jhrQ${#O6_>C>)! za{=chgBLXHMb*yH$eP$qtNVv*mF^a$svH>|blR}woChbiBhxR-{OH4&igGE{Y!`Wl zgHp+JigPE~(CW;Y6!QzR?Ar_rx60NylRqO~e9|oU)E<*=r^>!vx4LanTCs5!S#y}T zH?471GRo@XXJ@Z-&Y&T^dGZ|UnSx?$Wq8U=1T&`xZ&xW+Z@jQ_?C$9=K6b4Yis2G} zXYiyy2_4@>K3(FlAy%e9S#j!|+-PUS-naSINxa*mXO}OCutt9lbku<^|5fo1%CFuX zD8R}oHDtvT&Z5*=%c+@y+O+y#BpT8&1+6X^R0@%_=I6QUDrukPM$%omdTBV6IXY!} zt(Ln=4n3|Y?(SZO9!NwQicEQGn;6H8SWT#S_$Nq@j7^KBs$DhFWLYn9+=n&OdRU3~ zB+0xO#)C1bJCT;=&EPv7#wd2k+LkhYsa;(XcQ`XU7(exCUbE{ly%@V~XD@1%WdRg~ zs(aC>CPdX$o7PpU=|*UM-ZY2D$2n3%4~DBqyOj%}o2Cxw@PpwsAV*pC>Xg%K(_JuQ zE8{Ke;Wt7}Sj_m|io8fsGP8w8PTNj-G=T)FqDT%cc-b>4(xCj{F7@4;L&Q(muy^-i z2v+ZC8}P_Ri!l{T{cvCi^0IXuwZ3!uvYLI8EJ9)pQQ~5xZ3x(?iul+blt^MF-pqI2 zl)s}zxDDKUf8}vw$tqz)$)l&Fd8@Jx$GCObEnQMWtm}bp)6=sXZ3}i6yb`2o<1UGA zi%b1J#|X)c5-}|p18X)bo0lQseOtSHL}0~yQyxFQ(p8CRzuhd^9>?Vs`Lx`k%FTiV zb~jh%S2!2un?CzsLgaQCJ+9cXI1w1P+K!A%Tb8yv^j4Y`j`XlNYz=S1sAYM!WU)o$bz z#2FqA4{x|nKS&4H@ZoA}rMryJDAye1NbN5>U6it45w3vEeQAZ>?A;rnR@>FdvdwV# zuvZIRFU2W~Yj+rVPitEiH%GNtT{I(6G4-xeRWuvhE)sG=Fwkb}W|525a55egyF3=F zeXwbj?ZR{tQR7jyt~J>WS7qyPj3fBoCi@}D2dEjWJ3s&QJdb=TYgLt4sF@~VQK_Ut zF4IE`elfD&qt<;WV7-yca0cOR$a+j4lQ~~5`<3$H3Ang4f{m?X9ln`edr&rRW@+_h z8a@pXUkdZAy!X|+n*pp{vL#@uRmZTk!C>?@iP=K#*?P2+)#t0-UAm;wniD&(HP;b! zDfZHwk@qltD~t4Jmqm0fL($X24V!V>E8Y7{YEJOuLAOr`&UTi%<5zeQAsQ}-x02ML z_{9~+Glvgs*0F^OSkZtVJSPJJCDee2a0^ut;VvZ@k?j5de^201ffs2J60qr{e6Rll zT^~KV&ndMYbm@Wch9)2>CGx=qFA@SPWcjng3)=Lk|JNTu%2z0qJ;m(*e$BM&Wy}6p zDDZ#0W}2j}t_zcluD!j12GA_EEB8MZ z5ZxT*RcL&PCnmh@HEAn}3`dI*;cM>ekIdgJ&I~}5oFcXqz=zLd znUC6<-Ncr`vmOiH*jyg?rh3cVWSO3tncak?0b`d1Z*&a{d{ZI$&E#F*3Jd>T^vcOH zUYC1nmJ@M&{;^J2d{L8k+d|*}`tV4Zn7<0QmaXft@Bm#+-#2$ zooq2}DeURt2hoYXzd!a@1ONN&fBEvKH2tqI{I4+lkA$H&b#lK&OLIYDS;x|K9#cTs zft|C)rdUp1t4GFqaw+(8ZHJ8Q`A~GCXFJB0l;yhxiRb^x$F!|aLzyE2m%ob1i(15g z?=ygH(*E=r|FPxfVB!4xa+kTUCQPqaekNEUU9x$Q)wdz8jw(V{J7|$9I$pkCzaTss zWH$ahlj7+~rn{b`vbuB(=YA?-Na-}|a%bGUjeSKn-039CZ*OmpURm8<2fxd^aM)m&JntOVmH8}R>R^Y8qYbR<<^ZXo?Xp#&*ApQ-Nzc)Q+cqVO0$>88kU!eD{u$K`Ua##%b$=oQ+{*>Zlw~kFY+~-Zem- zFTqZW&wS|F2_a)!y_}nh+xCEbT6IVNK(UdQm6v@svg?UwliQaSYttG3lHdWB&0y0W z=&r+~P9uNRNt}dUhS@}8v%Oi<9)s0;GV8V|2UlPYI0VdKS#-_QfN~RMyztsgbVhBG}luth6pw{JdM#qAyPGjK3O~_$2H3sCZ7`{1x30 zEnV6e22)$tynr@xvC_K7#k&kz29y-9BUC$^7#3BK6dTi8q8@wZn?}1gSSuxFwq8Wc zCLuN&C9q~w5*;+6u7}!}k*yoPQ3MI6+*DY#=gjP7os}J1}qp#!%!=fO~nAghCsttjFwNDbi$52A_5ky8)TCYA-?dj;cdtN*c*+W{dAhHgDU+a;kaU};bN=jSC61zPbCBLyO z9y96!&Adj^`?FgGSqIEsSwq+oW0lGk5@*BdO393}a_(;r?GZJ}5yn?%j%e$@F2i<_ zoW#nHb41PbB+`whvU(Q`@xbLRG;36Xh^8{FkCAr6naymM zZ0T&5?28H_;y-Jx=O$L<+k^?s;qgr+x)Gk;jzrKVIzQ&Uyj%QvV{8KJ(e^QoyOEnC zdZ%g-g|hqk5y~xy523H1!&Hqu0X~Jh%_ZYEDo@Zuh{Xx*q;F~P`!isj zllOvSOsr!5Rq7OEmT)6}zVfP;Z^);zFpDZm^}Zj?E9efcRU>XkTbO%=l=Uyvh!9`W zGox|c3eVQZ_Hqw+lk(g>{|8+fU#gtvw)Ac7{zvaFgmZBEzj1k^MkS(UmOjlP+P^DU z5Z_*sz&&1r9Iv}8oI94|p^h^1L*=#2BC3kI-L$v!%2HqReDR(kD@pR}RBxF53l3DB zreiwLjvL4t<8tHW*U*h z;ekT)poh7x8^=huZp#Y}EW}bx;ezw|#}iwf4|k$<${_EaRq1b>gq^^1w_;H`jSCXi zQNSN}-gM#a-|_r$j*ZqieP@q`<}}MOO1bRmH%O|h%|{c6lSpLnopo^^3=2Hx7t9f5 zcdQCp1PoZwT<>;PeDzCL(Mv%uN7QN8w6z$lb2!sqmL&VAIREvbGVMghm3hwQ1FJf+ z(K+{SoZHghi9O$Ik%ueBr-$!fFnxZr5(-yaT{%CPZ<3uAqb^Y-8Ac&`w$7tYfUcug z>gk}SgY~ZC?UhmAt9RIM?%ZOOf63m_@o8orfxlFTe7P@nI5rep*;daR)xa}$y(9BE z#R{=3LVmuLiSBs-n&>fK&1S!bY|o)W;djM^77?IEQy;DTB;T4BNao3mx}ejCAGzE)JbbL z=}!{HRwxuDMZ0xBUom<`!WUWG3ERk!#6!xS7>fK+Qk3#!f)k@SH5f_Uh@q*Tl99gh z^JOp-M*qp45>J{0Xi(Tde5;;GAq(MI6Rt>lH~To%UDj}l=;)C*BrG-Oz z)4KGNcS~qFBf{zG5i6R`$xl2K!)gi7EtDT!iF~c2oMz!grZ3a#2@}$DfT}aC5$+_<5w5M+cN4J$?}U#LtBhSSm`c#Rlc%^6cQ$`+^B80r+|B zdaKOGO;Rq}xavbe5|^EPxJftR0%;?rbr2pG<42wKDS0Cv^ehbL^zVb+X-wm6LE-4e z5TPrr_>#{cY?H6|KfjlW|5hY#E<)PCHHQ3M4AMp$$i4|W9 zO|NQ>XlAlkO$S_dysqYV(2)Ao?ry06k0h3Zf)?5#O&X$=?+#?>0y?!G_`E&72^c=n zrlFQ^*)1Z*T!*7)$bx5rKPrzO$38M>QJ&v4EFv;$man=yM@S~NIr<}%sxaVP6;pa) zfSAK=*ppj|h4uU_*^WjZmvMUeHjjQRlKy~mBKbvy1|xP7dQqggPAwzr8#|$BR~74B zm|Eyeix^2i%ZVSnsMz&fa%J67XiDOiDP&kE&(SHI-HJ%p8Th)ZwCGY7GB0x5cmAZV zhGn|6y(r*HH#Q(UN`2WNSgl3-?)GBkkL8P}S5kg9Epn$p0)iRXa}Kh}4OR8=wXuEQ z^-eeL_V+toD&0QWGNi^)Qq6dTCGWo*3h@c#%_!>@Q=cJvOyXPVK;qFS279hidcW7d zyhDOSiiP-_*AE#4-uK0#a21xMBeCq^a@MLK<->}6`0XfW%m}GO$e8^D+O8KpR%l0i~3TjpHs4^A>00_Ufz_+mjNB5#=pB-PDk&2zd#6;#wS7* z_S`EGh-rw`xK2BmsC@(FN6!G3Y4U#`QawKfe8`HcC2UnXbp?XX*;NnJ_h{iD}9FXId z^PUtw@Ax7kLzr~Tw(k-)wSjQE@HrulIHB2U75@Fm8MP(0LzWY$){x5EbWyeFP+7Io ziNq6&H~2Zv>d%Sm-8pq@tKxKrRMT&bV^z;doM09wl&>SbC~CouAUP_KK`r6t?+Bl7xZ| zk!mt5_K62tP4}|zW+Qcs8uk%55%rg3j!(L3_U*}7>qt+ombD_(SuIu)L> zR#Z813)n14n)L=&f>e9PI%I1s`k}(8p?8iR#V1K>cQ;bn&sZ?mjXV=i!c*o@&42M^ zLND$(Her_@ja*y3dQ?hWlCj1*h7L=n=*#%AOC5so4?Io1+?L(8w9zLPQtZLh#kWJa zH=XLak3VQUZqOC%d`6s_L0r9K?7btK<*A(>5+KBDtnI5cDpy_#9YdNghv5|#(DY(L zx6e&Fxy`Qk+WROg2sJs)?@ zJ->Q{JF3Zy1$dp1JHp7CRAsuyaBl56+mAt+3?W^ed zv56kD+V$ zGezXb*dOUIA82>QHrJz52INQ4D29<6ny+{4dHR^)5F$eFsv;JW?`BH{&&ei7G8o;M-=_F^ZyRTP4a zoWS&OB5KP09T;^e8+EhuWvP&E7gS|!-dpQ^z)%Xw8Wa}!FKVz zm*+eVK_|pxxS~x`1eUuso!xay3vbm1{2wb;IfCooos_%EgcSJMBt2IC(DB`ukSA3! zW3tS8Fqk;h4QQhn;%(W|s}OL7z-Q zr1ni4sD>F7rTiB{Gv-%D!YGa(Pv?+G2EL-x;Eak!GwE4e(FU9G#wY4Ltc+Hd?S8W% z9HyuGxV0wpWsbl|=sm;%VAJM?9{G7K_7*cf>hw=2gyjtuvAamG-{6245>s|=MLn;I zKi|-6c%)>@yBO&9MDrH9N$;)ilLnU0GT7}T$uZiafD>RNWM;IA%=6w1Vaan$lU|25 zsYM%kgC)FV6vSE|D~ln_RC#BL`yU4$i0-WfFE(hJ}NTueHI5v z4D^^VuWcp5;fSkl8b#_y0X_a-=1kYin<4DMvlEKehqzO%`iS2x5S89Ncm^4&S`CZr zW4o_2KFE25N^uXSLBpE3@P*py9sB3l&!!r(KDhyiEJ^aw7eVayFLF+9FDcI2Ga8XA zm-oai^n^tD#oA(2oHSi;j zOili)=TWNfp0Frc-S%}q6pG=SnUw5&=i|NRM74$*tLoO6f%cF!kY`3Kt*$}11N^2| ztFTZW`d)R&W!K8j;nK6OOVcrYsr;k;lsfh82-OAf_bX~s(Nj-IyMDaKNKVtx`5Uj) z5hjK}Doi1{q1mXWl2!^WExOKSN)S77{B0tpcMnQKF!`h_?Q#xywuH2I%c>O?a%XeH z4r81(YKtxW^U@gVyFOIsYGpS#*)LN-cNt@BXZ=Mvw{42GDbx20FjzLogCkm+JDeVO zemGQRS$?dYiDTTsf%GiPucC~OFaSBsuCvPyG2PgP5^oNl)#a_WVJfDbF$>N8sjuXj z__N^6yVCD!x$%=;?6M4XFm@pt#B}T01d8G=tujU-C?J0pC6re*TxCm+s;7GrJ>^}i zYKV&cv8Q#|Do|;DiW(XE=0_eu(Sbru8efOoz3IY_o=O7b@2*nP?1Y|X0JW$4j&Y#v z-pb%;1Vo)im zn)0lr18+%jjgI!QF0rjvdmfkR!Ck%RsO%$0mJ14c`O>F>3BYci^e62y9LktntKPA( zYo8?c?&SB)4~@Q};s4<&qCNQZQ$k5-t#dyT(?IhYr7w-Er9Vk&py@)?3#y|!(eN0} z6H^P*!emm3s$eQ9!66tG&d5C7B0fi1^F_r#75$zRrW^{jjz05_7!5Z$iSoBML6MII zW`}}63c8E(vbI0Ej6XHgi#+ZEhi~nE5u6J9BuTqFKWt+F+p9lQpL+lBkuElJ5{Zh_%;ZArC zUT9o3HFjeTKQcuoqPfaGRr_1=3u_C`beV!U7MFu4`K(B&?i$N9hkCNpMjH2`2jF{| z9I@=(mgY=9jZXm|-Cd8gc*5+9I2oy07nlGr9=k>GOEIaVzH!E*9F#2@=00bU#yo1* zckDZ~DOP7u4U`+??#-}UxR^YhYY$efsomeP*I|?6MvEQunsmfejOsCr(y@QQ#1&VN zeL9bBJ&X=t>n8Hvz?<(vynLVs4vf02sQXB)0@N|FZlo22X%(qjq6 zGI@aTdfL22&r;XCcM5b)GNtb?7kew%{oZYKCM%~v-`eTGvwQb+#?$@OWK!)jd9z%; zQ@efcPjhx+sWA6MYSw1cdnkmuwoBvbN>%^@zzeQN$t`TBoWirhS{C>aj9-Q&qMfTSiknfB9YJ7 zNg#MLt35gSL~(w`*U6fJ$NCXHWY0Zr`bW%d>$GB~xmVayR_vUsgF3XRsvNj}ybMdz zLC!S)715R?lv1wKBR2cP zLI~z|!18KS>_~fc2du1$u6UXjShEzywDUPlgqbyR%SA8SwV(gn;>y#n@lvfa-pJr^ z#bB-Ik)2MTa`&RtVAbA-&W;E6Bj`q+rbf;QNgEa+Ftz30B+jdsLouqapM4`4r4yVw zEqN`>Sb^6%5PyYY?)y>j-$y*JBa?rNcuH7V+W)yJmXfW5!A<5@R@cJdI+V#IqHAYx zbBnO8iLN=lh?TiMlendxmA;9k5wLrfrLd))$)Cs9H;Nh9>DiiC+gsU^aovPAfyksS zQ2Ao4YfHw;!UWd+^&P|l`nmg-9T^A5_5P7S4E2WO8|rQz{TDj_YWpVIdPC%IbV-=& z8rfaHM9N;*+(b{<(#YI^jG0N;PVYL`%+1UWZ0Gg!I|B=dnMqXF`niFLk+D4)Ckq#o zu%pq>&A`|=xq*1A^Unho4&c&tw^V-J$;`~8`s*ncc4j89f$lXY$XHpK6zvTxl*!mQ zZ*Kn?%4GnaCcAzY84EKr5GrQj(jxm?FRz2c|I*99&~ULfVEzXJe=%Q5ALx~dy$i$h zU)|EzwY0w`)sBpd>zbcTN>;BdO#rA2$Tw9kAtwF|h!+$NZ->&|?qvzjc z;7{^IrNpjZcP%e0OgB<G<&T#Br2a25{vlyZ|Br-=4fMNkaj^d` zTx|cPaIyVOxH#DVDO@*~flPn_3&6Y^HvWxy|5D&_1DK)%#2&zq>7UBa`X7qkf1&p` zISGaThTd~tCole{_cxFJe+`wtVel_0r~ecKwtrx7V}O5}x4$gGe+9>{Y}9{ghBGo#e3Od% z7vcNU-u+WQ*#C*m|1B=RQiFfu!om5QdjxU+=^i<60Q?&+|JHH*$GH5W?EelEX0HFx zMgDHZKwO+0zhm-$X~ozLa}p-bm&`SD)IU!-s{0+9Zgo{Dc-s*$BGG?D@T5R%=OT2M_sn za93ad78kltVEIzDyt!CuP{`9yqk-G<&%SHn(J>@b#08I4zI_^_pcz|wb(yWcC%F^4 zo#Tw;^Xc$8p?Kkgp^&RsuVS$y=F9uYDqtt+v1A41aq@JT_DH)=wHw5G8so1do;Zy( zCF4!C!i+K31L%5O%0hC!cT)yZMH)Ui#-X&O8I10rEje{?Q0)J*XGq@!R2q=Na8m=o z1PY+}4Fsu2;7QbPeR16iQ4X`{spgpj=Bp@j=r~f*r-=$u7G#lpmh^(zPafoSFdy3@ zXHR`rYhXLlk8qIYNoCn5}`H-D|t)p-@;acIr3@lbbID(PAg z1ozC7FXfY}70RBI|J_NP;9hXw>WcD`$BK8mLhTn@q=PFlpwfVieJPda!^4P2Og~n3 zFA$!dsOI34wZA$)VKh}?+Y1)MQ7=yIXtJ%{-i$Ax-!$~m(=wf@+?Zmr=;pkt9t)kVAk7AqU$6ilu! zq0O`%y`-Jlf%!ngMQPaAj`_>?vWhghpiHla(Wd?pyA=0Nn#T zG4RI-V&S^>0{?kM0Shw+>)+LFQEkjpgA=Id`RMgM?f=mBPEoc*S+{Q5w(Xs^bEj<^ zJ8g5PZQHhO+qP|6H>+-|*6Ocw>YSH**Yk=Mu_9(f^!d%+$4C%>c_yWRVYf~KGm|H= z){V$9#WgasBoB!%dVSBrj6)*T9j)6(5rzh4yw-vXuD_YEt%{?3H5@FyJ$dpkmJdxn z-j79sA0pNtASP^h5sauX52-jb{1Gs00vb)#5ZrN@h(E9zH+S`GN= z?NP!+q;fRb@O&zC{P8?9;(V%Ie6V6Bd3Ny@PXrOkcs-r- z0yMDo$yQ#RXi-AUR8LRdToYI7h2!63Iu-L-VHkTfAjpMu9gnLqr{@Bkqk1QygA3$0 zOP)$VDd)7ma?RzE%;BkzT|0{CTy=YuJKN8QI@_h3=lJO^37TD&`%9l~qgiaHBR-IK zGcnuArLTG!dgF8(f^~nt&Tth%H3;77H!4BERM#sNK`AK|2k2r0x7#G%9ROY)i$W!D zvm?k5axdq!)RQ%Z_R5D+JsU)s5AfqA=fVS>($Li+**bW64AJr4ggXr`p#nm^Q0Zka zzpOBH@7cxn6Va{PG-FwO1bDeRrlTM1_Jh`5eA;r3w_z2enw}SFKe7K(o}%kGf3=T3 zp2s1t-d!}#t=E?7tSd5x8*Nuiz91z8N)LwjzZaYWHQwp?b$D#&ju&laC|$&^@DZq$9qE3?+FuaTk8ENfHzk}2+J z%PCXu*9-5*(nd3y2z~)dgu5GYKR_LmVf;lGVb2(jQ8<;M4N(QK|M!WBsYr`3mwvy8 z)Thd53T0XC*G&rHjvW;wEc0Wof2&R6+O&rp1TgwK!J;p`2L}?N-o-OaH2jk-{Yjx! zeUHh;Sh*JZs4G2&nr`WqQd#@~E+v0xhPw(!F^4g+7F_Hig^^VeipNo9pvnXQ zN`S9gOCb&6v`9=h;e!BDm#}8TLg5;u?AkycdM=3~Z37u%wb)*%nuNUIe(PNqZ#jRe zXNH#g@kRl{kbtN;!D7cv&s5TJr2Rm|-{|m+(ZGkeSz&3a*w}CN@GhT|?~#QAdQwEWm}UdGcQL%3JE82EfCc$_?UH#xqAvUh z3U641tD#^nv)YJfv5(xO9N^KepjnZRUxB??T=5!N0YnU5@2L0PtF{o-84(@)B)2Sg zyL37gPBV*a*9U(Q!UQHCl?PmOT0PQ+`dm09m(jC6V^v=XDu?6TC{L3?~W(f|xb+4CJkhfK6@~Nn{VvVDV(K7qrB|(IJzbFv4k|aj$ zy;tOjBF;1{Mz_@^%$~$2NOId$R4rjU+&t#X*8)wtxyX1(p5Z%UF}w19PodnjT8j0R z%E*`(M&&0(Aue5Ovsv-+ObF5J1_k1u1Y<0bKP1mM=<1YM4n8UgYa(c>o_+?IJAZxI zQ!h0Y?L`IBT5_*_@0AHE5L5z=>O#$-V!klzLt(DK=dW!Da@^|tAw*>NBqx@$QQMLf z;&Eqsvb{Q_G`xr0iRy_nNTb=_P&8waEFJADKe=i~?ST@7*{3=65(cd^K702Qn2OOP z=O`>ZE#Pf-baER8u4qB8Gdm2NA!W}mebO=P%5Yt2SKCO6Z6G{0 zj5lv!BPUtx|E(_i!9PE`;$O3?|AUgJ=lGw}qEczxdYvAj1A2ziPoUVM1+{tu^@Th*L=tJ;!LyXBcRy89>gN#s6-XZTLQxIT9@F^D+6pRxcIu*xwJ zo!$qEC=wcq$Ge_c?bG@?ds+?G*bs7mS{k;>-9W7k_n(_6a*2BMDA4putQ|}^>KAig+-)gs}gCuzqiq*If?sE!_ol{pvth!`a0BZoWzD*{nQ%u!kM z96x1L(d_D+EsjZvSkx|zL*2=lB_o1BN><2+4wYL4%L3k~RU z=V`lhX>FE=5FVRp7TJfTlx`p*IZ2W}{ji;IYoo1TywZp>HYcv~IU{!)BNk3ee5TRGHZQQ6u68A+L^Mw zI`}TNMxNTsVV+*Qo(H@E(xwN_c3yxgYg;KAULW?g1jn;-2QH4@F076Nr+sYiqQ;1u60M|U?nv%CD@ z%wwjZI(+7}rE4IGvkhk^-tgxG7SZVr4E{l2)1J*z9Oy=XQOY-R(7r zuFZM|BxkMZh|Wf`5C3+Y-^VtRzJCF&WDDZq;nc+C@^I{$dn-}L#rAyIJX=Z2PX>8u z1*kfCnjBlpryG~;u8LxjqlMbL**{-|pWL^BgYN=CtqkL3t(2JEPZPA((Pu=slXmd= z3?<-nt*nV8C;$h!*}|xl>brZZs567X7#v$DuJ8Acsk|!%)bf|zB1*exVv~?pF<2Pdf?^^T*av&iI3eXy-0hkDjSLU%3It91f0(R$ck-Wi# zH8?PvwYoHC47yB3-h9!XT>d9|(vBwSn;oaq?BtE~iL{}CW=;9!ElJH%#IbePV=a#I z!NYXdw_b#FzGX)#fYuBFHjDb@r;>Sy{e^`@LpvzTEgCv0n7d>+fE#(|YJ?8vb9%rc zIYnqcpZqBahqs#H)q5g?C|{Ch(#ZItU4$}$ZbbubKzx69&)jGCSo$_} zNWbWd#TvE2eUwmGHBadHvQdiIxx%Z|OIvM~b~p7*sFi-PHw6$CH&?8;*u@GDqDQ|r z(~}=}@qB(avu412YlT1@F_09-bU=WUg4p@5z$S>ZciAyd;wt#D$NIY86@0=e+i-KA z=YcC{^Y&KILWv$-XF#vJNkfJ1fE9E}NIFu38!?I`=w*pP*ID}d4W#2xj-p2%OmDPS z^MGD8w>`FV4PFqD^R!fda#r;CRU>~XXico-*I_oxS5DgJi`S~hjHV~79#QIDZ!CMh zw^hxo^)I@YNKxfR&Sn{;LA9u>H~7Q$ZILo|zssS)x@3zIs~G7ce>l|c9v^y@q3F(( z@#)|eD>?1qgHR+_pF_JKI%?nmATY%8S_EK(03q_nNlhR)=EL3=-~wTB2|U+>Y=X%0 zF7)KCHwe#ZYoS}?%g}@K1L1vy(sX-y`8j`vHICQe*ddKe?ulK(#j1 zkjDBUa>*V|3?)ljN)g<`N65s~OF5q5^Vji=4IMJ5#19-ce z&MUB=5pVAi3P`znaFH+drK;3CiwEEBnPwyLagNgE$Z0f9j9DkXwqnMKn%dv(!?ygn zl9{(9vuc7CyHVe6hoGEIt$`iL>U6J0_m5W=1n)MKSxTMqK#>0jK6$?`WN50)2=E5; z<&?7DVTki96=XwU`GEEDXCr{8kFa|Bq0APHJ}9Gyw7P_816)W;8b%EGw7oHle^Jf2 z<?kMFJ)i%tU*auvuMSl|FLc3gOrT!q*f*5u2O%LBcp)^UjWnr1A=g*0 z!+s=m^w=!oS{q!{{E~ousnSjQ9b^1pl7_+@3hYDU03U}2M8LS9l@P*m)+JOA;-ox` z<6pa)D~g-HY{o#sw>j2hBqr^panm8!YImLP-VPK6R)C3dZWuiNC(Uav8-FT3?@X7>R0*nCkchYkc9e zbJxZ(V@>1Yb%&i4iS(vR{rnLnqP1pwQTlySJkL9Yt@<=}WxN7<@2rfJ4e3ePk00A{c%aKIb-Rr^%lYcPhhClIjAHcK?j z44RLss#-P73=4b#P_x%5@*@op{tn3k{j}L8FXjd3RM9UBOVWi-vK~D%ox!XKa`Hi} zxN8#b#puo_M{p@dD4erCNkD@Xwn)s%9u(4^ii^eBZ{=r zhLZ=K*Q+u$$y76}q_!-d43%gG(oRn$Mw`@~T)6%&plUIGxq(#50_)1`n8{L|fn z2O}Ldnhd8-JbvCwsSB|o4fiHv;+t`zaR9ww>uXf}nUYSwL{(VmK-Z1waSRwLegMpj zD`d?D_2Jz(k`6Csz8V*uqt^PZbD*akT?jUQ|Im35-e5J;XQ>2H%dFXpL1b6$gIOFR zc3}WK8_IIl?$B4ll!$o{<6Yo@q*EP}2xsOsrm`%Qx9KL$X@>oh2>Q;nI(eUtn{adH zdN($%Dw=nDMy+@2YytpH)^dvgK**h{q6WOtKk?L*I9cx>7_cn#pft^N?vMjf^n~n$ zt6M0v%_HBgGq+%(1h`No>KW4t9I&ClrG;DWO~sUG%m-$O+EQN!%x+YgS``KAIf+p& zGbr106{6om3Yek-ro`%6^45c#i5umXwOo13@~FlNN6S014|$Nq+2CEDApkxHX3mJZm3#YP}THEBP1H7 zJ+$U1w2a>&#Rs^Mtth&o{= z2W`77AEhR(%g|(5>rEMSDxs9S1bnk zIkQaJ&R%TT6i#XRXL-IgKp<3^zDq3{yr_XjhbP|u%%Zm53|k+z;r1-^wn;XWDLhm% z%3z>yK>TOp>O=?8eGJIBCnW@;(T4ERfZh4q9n#X%>!tiqj zWG(Uzl*mZsdfZ6aB=mIaOB~lEc5b+ZU}Si&Ji>q>+l)@DhUSZ@_+aj$f31eLa6viC za!zKPq3^m8z`)90&e3)D&=!M zvTza1zcj3)0dp~KU7#Q=9^G?^qHB04cj zVvN^zIUVy;mI)=)53xkUJxmx$@GQm5f&u!C)T-mj^4pW>v5c4d8Ro^4R zgIxg3x0V8Purs*WQ_Z0JeU9*0vpr)Nd0J<(Fi7=g?8}&dS*B>3yp`kIPb&5t*iUk8 zcuk5@#J7%Ph6_hopKni5OmFzJrKLtM(*RxOwBm9lmN5d;l2VaJ{E0XnNFic|ySsv& zp74n&1ycLY5{Dm8*1?8a5RuX=F99SsNqiC3mBAdpKlCvbk2+QF z>Yn2N4)uOstt+%Se|)Jo0swZ38fhl+0pENf@=OBR8t#`SbK;a=Twa%Z_Bhr=VAwXg zKb-EFX)f4GtQUE^z;wT2`$SFQUB}Xyt~0aT7yb0_rBqy9Qsk=?B?$bxg?UKW!gX}E z?V_zCcZ}q9aO!^OzM#DQh*61X5RrdTe0Nb}?Tn7Q_n7YbB_{Q#t0qFJ{$D24|L#5c z@AQX-<3A>(l?kK&pg%#^Ko4*ZB>rK0WC}nqz_$v`!Z;)$VR#WZAezpRtP1APGs zE=6~x{T9iMj`4=_XGmI4vYeJo8e`0Il+1c$#}D}`y$*CPOoC}Yf6F4}Ss|0cKPLR6 zdT$_2(>n!1Zb6O3zaxnN!?oL`mTIW-sks&Kt7xu@MkvEh|CTWuakTZxO`>82$L%gt z_P|L@y{NOa<@VKVY9R0*k?|Y@jAH>Z+M*Z%GkT!IpqJR7m>SCdopDqpk3#jSxCK<= z%>`zidJy*c(IyfmZCjLZr0nZLpb#(@jI z-@DO3&5v$+wXJ!3+l{ZX(&^$*Yn<%&SN@ZRpC-cgZKk4f+T-b#14Rs|rTORrLw zr_4-+3BX=$X@*i6W(A}M&{rZ42vO&Fk2K`N0ZK3_68N1{jeu=>kYQbwgF(&;$ZG$5<5KYC+sH}3=*x?Zdq>ak z@xo5~V=PPX^|C0I4u;Tnm$s(Ii}9y}!$*Jb85cngXkUAgGUADi@7RJ?FZ=I)_(`ah zb-+%3Q6nIkW`GD~AHxPlL<|egLVaQXJIci7cz>|`&BtC4@(EJci03b8jJujOr@AH#l6~z=y)dwdViLDKA@5$XjQL- zX_KvhZEGN{iv6@IMbGmA!uK_Hc)59oAA6jjgSUIv0$2r4#+%c}4fOdrld-&pj8X;g z`|-3=ODw@1LBkD7`6+-Ql#BBS)dlzT&HfC4l1+@1OL4gxb)4z(INq>>4m_CwbIER6 zCN8Kn66ArApuXW9eH}M-CSUpO^!lHV2~NQCZUkzF#sJWLRTbJ?Z}XgSek>&!`ZW%x?1t2o@=7mT=TbQuCxbhE;RFJN_x2v&WuLDcYhJ_bA=WB$=n3dtd&=PR_Q3QP}=C5!_T&!h+{H_%LzN_l{Y zBJjBa@X~~nb!c4^-b8{~1u!WtNt_atOy=DVlsWyxlCjk%n*zi% z80s&;Vtn4Ct^(-H{1ji6W$WDw;|2ca_WkKv!-E2 zaJASjWLVv73nD9x0VrE5; zQX;`_HBJ%T11zTt$|EJf6TsYjz{kN5{;mcu)u$M&C$T`)r>ancIB>TUnM@Uv?D09@ z#0P$3c9g!$F?~AtPC@968>Ow!`&wRWjm@N}4|a<`J$y#*6VZhbq_ui3oEd^vdZ~&{ z?|oQ~_QpPx(ZCgCT4CPd5%e(;oX6bRteZ?@(+r?D0`pkbX|z(8BoBBE)d;wmN>LP{pr z5|!k>A2&X3Z+4lj>-}Gnw2WzwQH!kgOTkWenxkHQGtYhcjmzKgyQKgk+s>(I_h5gk z7Fs~+EKFwZlWx|VgiL!U0)|}V)lcmWAHOj;?!s4!8802XmYk{UY>o}0r^@xP@PW#- zmT>vt(EMA!`PIPUs<%hrw8LuI$zp~qmQNhY)&+53eGyW=;&75B+EvrOx@JZ?uQrS5 zHkagGX}AL{mMqhmCXV}ej%ubpqzCw)Yi^CZveHK@KG%C8914UtLs1ZaZF8+$Oj%k& zoR!}OWn@t)G@n1zG1O?&v31_DlfTF)M;pL?JYc1WmhrxX1V>=nc9uP#2>K7`%UJoA z4Ij{#$Ma1NPY>kh_E$(3>~&?Fz@b?o9n+kB5PEtE;_PXQ5Pe&(0ACv!ekAZ}`cb$a z$x6p$+Z;>x?lq6>gd79R`l-ya)zE;nP>7+Z8`GGDVWI z9CWhd5_6DQ4U4CyTlQj}8|kb1K7brPP_(u?WNYkVXrH44{-n%$euvt(pam+S_W*T= z_~UIbRc?(N^Eb1P!rdFk-u9eE*j3&kpMm1`+uwjwv&ZYXu(W(wEepXTe&@xT!Y0i* z`b3?Ih&%_t&2>x7_pAn)rdXs9vfEF+BjsL*PM~XGwQsOf$JiNqm|z`KK=5ON z-@{rY04|TWL?NuROmU)q=m=?%uPlo{r5OEnR})Rk0L&O_L2)}=+xfefvgn+;`ML~j zHVs;Jp^sGxFea&)0JU?6i#12?Bbs9_SvhpICn~Zg79Z&-oN5Wf`q)7FivEe zPwot`e--FPSYek#|74%ySa++&nv%1EYz&}G(_DVh__r9^B*pVW_YAwzgAl-qeC2Y) z1i+NnK~)ZUBH;qMNZLgp%8oT z%$VyGO}u3qSX5~nh?l1zus??{^b71^QI6&ErYu45&Y_jIQ*y9aFRYcgxpa)EQDaG1 z#k1*Y3}|EQF~QgO$q)N2{BBu@4M0Vj2HDJM=QAr!Ub!IhfGmu8@yblgb_hvIdAE z-UT_0(x}pqO3y-R44$t2gWiGoJi}l(z+D`#9A+b}VH(u+HQcHHRE z;QKk!;E)PDHF&GxEw`+owFaS9Z5cd!;_$ZEmXQas2zE}9`zpzYM;+qA6E_ehoycp@!WEh&}S zr8l%j9@I>FwAlFd&GnC!1O`G;WrTNCpeYc$Pdj+L?k*;M~cske}afQYYdG)T9g z0{|QAcpCWnagZAKTpbmXB#65vu{%M#yn3z-O*}pHHK!gfg~kR+YQo>i0?vk4XSYRf zt~`R@cPDK#+nlIps2M-|0$;`Qzp-7RR@7vyb)@1odFs7O;gluX<|@w^fC#703K5{p z8pp|g#?|t`zvNX z+L)@G+zeoSsAU9|Ih3GH6NqGyV{5o{oT9eNWrQT%2lSwUM7mUTJzl)&dV29%V2A<5Q7Kec&z$sSpE zbjYq9qHdH$%R_xyS{0;w2mS;05VX z#0`Xx`@B!(ev=)`18~Rn@F28XCjQ$c!*~yIz^G+uP)`2?)D+-$TyK8EtkNsN$R6qF zM?bIn6b-|(W%{#;kT5t@^HMm83D2>g58P~Y96 z&*2i9Hy;!SybagT**aGT6wMG4)bpURih*NlX-10;QeU#;Six;s!=|{HnfGTwH`1R< zm~8(x+T25ayI(#&crH2>cw)m!3t@8=m@~~#Cz>NFAQ;**E4lMh#dfDWSPVVVqwv- z+2RiGQtU+IoB=Yg2o3M*Kd%SY*Y$6R1f+(!S0wGm~ zM+9GX&M46Z%eDz4XSEO zDEL>LTnaL`od}hYRWr74s3j8+G1|$5O22KdVaHxJ%UQg8mO%@m6sRvj;teZ8C_eY2 zBuJ@d;=L1JRIcg+6$(#CNMyFu>~AD6f|jWB{zJ)j`;gFaKGO}SC11%|TbuXzYxTs{ zJGWB#ehY!(F)H4k&&BIbi`SotZd@WgaS8$Kyn7++R5s0KrKHSZGi7VxPrlg3BY|cX z5yi_9m@QODZq9dZkX=vdF(5Uawr!h?&oC^dg#kqP#=`IcA}xLm*9^aRBqkJ(9k-U^1BYM5S|UBi%5gx)cs;!)wR2KqDgBM^+WC>nQ6x zfX$ImvIP)JCkvK!1_kI9YEe%|9lImUh9op{~cNm%;}+gE!#qiW2Fk z*iG7+nHFhVR($?ee`MjDE!O588!?UfG0sM$Rhz;c(Xj?kM(s<&&{>@kV!U=G`1-Qu z3}hnChmE!lBrTgKe2jepCoWH7z$4(qE;rl;#PSk*Wz%qfD;pKeIBv#`cZko~h0 zH*ySqz$ezCF*agWlDIt0&H+oBH&x(4k8uK*-}kAs$aJNKLRwLsvJfKp6Lb-5s?Mk& zeieByj4`IGN2v1dNRtMM_Q6|nfRSilVkls31;Vy? zy;c*Tpk3mgp95FY0go>>;$Y03)JCbU@$krgf1UBOmKV31w7Hm| zlJ)`B&*Pw}3)f{)*R`{XpiAHHzMPbM@C8=6-5$M^SX|-av$Va|nkn5+AB{AWom<8W zm}Z*m;3fNgTz|Zr6z}INlxS8~^lS8*DL#1i)(juC zFF9zIvea@POVnC4KIbW%t)=7;0KgS0C|F(8z_djwm7+jYDBT0K`9LjXSY(CEIQUs^C99=<1hh@+Kl zE?}I$|MY?4J=WXLJKi!%31C1uzQO_(R+`dQ+d?p3xtv(;*mAw}|E&|rIxLC@R;O6F zg9EK);YfJ{IU-wFc{iYq$c%b2qmiB43b6d61U0Fe@Rs=hQJTq7gbW?Pafk)okkelC zFtmLQ$7U9G#)RI?ey;`-7Yw-MW@;UtT@YUuc50Ibem+hwZf89F4n(nlS_+Xn zYj?Q1xCwhQ#ugyI{QrZ8!YB*_Y-ve3W!4DZ9@~ zEnCh0_^A@%K=#R+c6PUENe!WSy&ey5!|IPAuqXL`lQvSN>5G9Q?LTTn+H|#Qn~+5N zWa0qoxncNVK!5X6Wvty_bE*u^UCRPC$E&J+pd}-Hi|F!&B?=H>9?dlPV2!k)#F)|8 zrcg~&mofqxhXH`bTPq-Y3MJ)HTH=Nnd?cdlxb=Z9Zvfq!h20*YV}*6=_imGHEV2iZX2?{6-J<{I2H7!( z&F=XPR=DG3JSsqDs)xo0+ZnFP9mVupXa?mg`~X!BgtCCihiz9M%t z>?{;p4gABT=ojcVE$ltk4|r1Vwivfy+UFFS6A{`Xxs1gJxv((&5X(q5zc^Qjx2p`I z1JGQ@NORVF#b(aw+g;3 zXB>QufQc$nwy90sUc1j$rR&B%$IPnBLT~wsm!9HQ6F>(n$1X%B-m4g|(`TVZmVl)s z6-Z=p(+~7+9h*=tOsX%m-2Ksx^;gCzU{XiOn7m;}s{TA+1^ZOkd3nine@aaBoJDna zqaLCQVAAS!X!AhZ=y`t66U%`qx9jv(V6p=a0Y9s1m;fCo6Nm4lzI45|=!vN`w+5^9 zbpDj7HbvEw`t`0ujY}7H=8K3wy)~b@>K(^X;w91h<~lp!gax``ZVrN>crO5R5JjKwfl#=jkPRKj0t||57Eh`hH#t0?Jz!89Cp!*d{-eYkCbtHB1VKYpXy^fpR0C zJ4W(A8<|sK#zX7lqo4b2t7xr|TT)^R;0Yd;HI7wS@nvog8T@$4P5``>FH(u4sg`G| z?G~wjpjAUa0z4H97a86q4Q`Kz$}ThXa{}mQ&N>mK*jas3M z$*CKp|AoG*99Z`KTYN_@$*tap)S#Rsdh+}(QqshoyML6_J54TjFkdN!e5MWFMI}; z&lz#2X`3VnsdsgU)n&9QApyio))zrfO#i0hb^zyy!raQ#s^|N&FtYkO#C+sD-%Gqk(iY`%&)YGNf#otg%`g;Gz#B1PKV#y7`pggrhy`>VrEF@L_Qnz&Dj zWZ(i)_OQ+-P|syd4DTH6c``ZLnb89naM-o^sI16y`ih`w+#Q+O_WI=JOL5!rMQkIjR^+BxbGV6ewhHPKMIyC!Z_j!mI zlCXlMro;}PyzzhG1Ydg&K=G6KU~XaDTA>6Ix4IdM4q1*d+o>! zs?tFd=S~s(Y3x|whLxRSFLskt>9G{|1T^;u+4>Y)vCkzAPU{a!C8T$gG8cO8&hy3C z#-+;ZhNwdn7?am~brFtvvkDwA?}e__gPN6~+u3rpiG*dH5~mU@n6o zNWcB&sv8NPX*RV-5aU9&7pp;(q@;u-Yg%qfdF?8B)?uw@zi2|jw6^GWVGLb~2#ugF zObghJUBTWCa~9vFjg?!fC@hmF2kL>40R7wfGfaB~6$q!&~R$)Q`# z05pbrww*Fk4?YnvFJf{$Rzyd-)Y3t!WV2}82Hlju1gXHAMocwN=$LakbWX!U?p(70 ziNBpQa!samfmV{K5hE4s#792E>?Ct-5p(0&))&B}uR&P4jf+u9bK&4FUw8TlHYw(GJq>X`P?ekN=?7B{3Yf;z~r?!H;Qz5=Y&@E;>N1M$X;wrQpJM?q5OBP30a#@(&<`ij2sAq4!3>32B%6r+2X-YR;aT$i-X)8B+vc* zsWp<7J*mGnXecm+UkggbgDW!^Q|+0dJM8d+>nRHy}op}4pq{I-o`HXEFa8Yxh?2;pXmgF#m32k`+wS{XJ) zO3voNoy?eQJ%_-5{v`I}l_RasOf6rAV( z$!B4lL~)%PVc|`Sll}rN1mu_^xF=9+tDNUWF1{ysp3?*3rAOCZ80$8|Zfxn>ivi;A zFtRW?KbU!S_58C`pYP8cRVT|6q##APa(&Dx^YvK8=2V3%?)=x&-?UCW%faPFuph1j zm}~)ymmf}<)=;Ks5_a8GuT(7eMFC(5?rWcTAR#PR)U>4aqe0&cs6Q6^1`jyKaV-fb z8^s#)plJ-*MYx$j4zLM}dE2jtrDc8&?FBXkKD&Ld7}m-eiBZd^6cAIDmcsEN@Fn4& z%DVFc4Fp(WI$Z>~g8MhflStQ-4=ul|h$+BUR?}61(S7xh1Dl6WJ@K+uK!G{*Ahm($Qw{u%7 z)FjA(+*-lzibW@Y-}kextRpj$^;VGrdiERwjtck%l!g0L9&Zc5+?BUx?sI(E|GEXI zv}|7tcLfkecn(a#s@U@&YNHzVj%d>jb$@W}UeQ@_j@oW*(4fi{QSLMO*dJvb#7(&h~nMT3B!w~-_^Ds2p_+(SB_Qw zrjiFzpd$W<)+X z)>?B{MQi|-)x)-F@2hk3bA<_|4#w-c=WKGO_1ib{X;$t|_Zn9uO2R4~^Qx{V(O`PZ z&y(8gK?Na|8E{$@9Q<20G$$#@I`&*!rxWCHep|Jd+YI>nN#0WO*u`ox^3D*_g<`zk zIP|6+dRZ57bJ91c(mes9@c)&4d-$degoqUvlobsaML8X(vIi-wm(M=Lvm;~NL5y7# zg3Bp8z|0(JjhaqJe85_GHJ@eoK|))5DOr_LGHKTJ2-He0p@;;aYvGsWk3~l3HqN0Q zb%Jz!LukgW$OPQ>JQ@6>VGW!6eO`$!DGJz|2PK?>JL10TMBZnak(>V>c3YA83-4mb z(lxvE&fMaUV+0}l6f+)CM$_HB!H!dEPc%sxoTn-QRUlf!4Xj97*?a&2wX z4I@|caYC>)Z9wcyFIZ@Nz+FuJ7#9r)BLm_Nm_ykc7iTbO?5qC|ZSNRlNxyA-mtECm z+qS#VW!tuGtIM`++g6ut+qQM<+3!8^?!E7Q&N=tP`IIXnb46svn)zQjbIdV*&Rn*6 zV7SQ+Bo(YUx#7dwr;2zzVCW$C#J zY&Hf%l3=L5H>iALE#_kj_z_&u?OM5Ir;}valCyfz&9!bXmUPK;tLy_8GX@&H1C)X> z%q?z`WeHzo3EA?5Rt@S#t;67OTwI=cP?om!V0Ag#`WzzRo$!(Q`&7sZex;w3N>~Jx zs5lG<5#p$K+>*AFys=B)FXf(Z1keHD~B0sM=gkl@i;NM6=o5V$cz(o+qKE$Q2>Z{ zh1H-6gQGahDyzY_w}$?zp0(P?R$(U%n4MHlkmGu6af6cODjrgMwD;!PZZ5>51CC6= z9F|BQ6(Wo9Wb~@u1X>Z-$4ydJz%VuN`@w?h@_84V%kGq6ESnJr5el~9Ltp?$$2u7^ zSj5eq2SjUSkJBB2PiHI#t|z}K%C30nP>y<1abKyAK1QKU(?sfO%pXYO$D}}Rf9e46 zyr*AeP&Ug(!kp4RUmXWE2sArUwH+JUk117No$`jt)89E`{mlANCLCt^x2ZKJ&2-XN z6lku&>r4(!~>G2y4nRf2wDEnPYU@5WgC9DcNJ&`N}7anhcr`fF(?qj)sEoA2cUe^ ziAES!XF`i!Dlg(bjOI~auWgiBrk^GT79J~ODAN312O9f;JGF6%K!Ef_AW&DISEo%m zM&Bw*NjO%m#ZuI`)GOW7`?!dL#ap?m%azMe2C0DU7~%*0B>x&&9Ho2^ArAjs8)&$f~YZ5<=VUIr& zSmp)dJHs4zffV{hjAB0|n~eTVOft*1+$@ zzb#vyAVu+#h>${+FqNG_2I21`~1xorMoJ{m56uUbT2mLz^!L-QxTyAEmJ(ND!X?gvjW7B@jlrhv&LJA4K z0aAXN_;@Ul>N^i%K}r@n^Wlm=0I0AqdLfQNa4%eO-p(C9R7-Lnc39B5qmce#00Y@R zN7|V;bn_qx(SxL{<0q7yTi#m+hVS;=pEq96w5SjFhb~7`e z7X>Aat_a@4kk@Rr$<0;f#pX{{W6fz`6cgEL837`hbe0U)tcTv`t?w@)1c(o0ZQ&>S zZf)*gYNS_r>*23H_*g{K_Y9nz& zZJCstP;f4=M{LEv0aBD^S0hgWp%5lGU5iop@d7cO?v!%LQ1KQU2Qr)zM7#2YnqgeQ zi4NOB3rUDH<9C|B%1FkN8h+GA71mFLD*vJ5h>Qoe4IOC*%J`MBENT=<7W zuY_q!=#!|EVC~NTuqu9a-AM*V^S5%MJMNp7H&_9s(ilN2$<)EqJYG~aQazSt>on8a zy0m z4;tqwjs8z$o7~!>dRGplUKAa~5Sk*@Pa!nPa_&IOhhNbJEDTU+oYsm1tPpbdp5kMR zEw;U;4Sc#IbTOW3HLRQbw_@>)V!Mz_CYoYgVqw?^c|HkDsr!PajgwiCv?2IGKJL2* zU|;vzyts<`oic#ZoL45UnYfr=E79jC3nq?VfeQs* z+XFSPN#FpZ1k8+V$)1`pwE@A3=PX9%!H`4>b5wYOnxBIDaWU zXW10A`EAnvy%gCvOMPiqeN0JM7{@comMh5Xm4L^T`Js4xnNYl=;p!yPS`}`~exSEj zYeMWoMs$XhdWi7OUFc07ciz6)tDs}zRECw5rYq2Ea@f=gB3Nn2OpN)AYYoaCCYrcr38vU(xh$00J~ z(vjmZOB9E<9{GD5;{kozRg7KSV2^R1uNH>9`kv7Ym$N^8%TM6cx{M(2&!U;7gSp?2 zXrQ7xMXlrNiH?sZ2NLKVT{<0NuL&8_*TL_P!r}RJDEb(WmxNOMy!X|h-KPW{F?noC zWex+HrrlU_sudwx&%|A;uPy-`q)p+fwq)|_T_U$WMCx7yo?RU>)jsJSXZ2O5$sw#Z zcNin#Dt>s1^%s}*782A~#V{M%hOf+XLjva&s+IJ8g$9_s@#2WYJYh1Lgu@3(Rzi>k zjh8{p5yanA;4+T?ne~_bR8Gzie#($&)ld2xr!3prlW_S&`31g4TglC5D`GIcw zwX^2c{nmptB9r|5aat2`rc~;1)xDO}j~oG4HIeD_<#qZ7ofa8jMGn<0oYm(|IIoTZ zu~aJ)9hrNMmy`b{^nBKT{0?=$!F7II`xA3Sh0gh_7Ge;pR^CS;Sig}fIUg><50a2= zPuh=xi1;`Ia4=F_y>2ghCuhCJ|MLd#=lfkWcNJSrYjj%mR~=dzh)U4S1i15tPG4&G zel{9+TG$cJM15bGTH_-d%@#iUajhqlEZ5Av7ZvyhJ9SHY+5r~D2m{fK;2La8x~vGB z1i|e97RWge6*A7Q^O}MH#CSkm{6Y(c-W0)Pz%>Y}JaC8mt&L7cX|j)IT0XoKHKZoC z+N`*{^oD+7iG>qcI2QVlBGlLymNVV^2D9;ztH*CY+c#)gnXb1Q4~`{%oU=b;z1ceY zDmAk`n!#8g$`PU3kc`)y+M>?tqkbp&0qiJa(vWQ6aixGl(>!A$t=$m!*S^}75O-#| z+5xe}!~u9WnxNHv$I+6*A`C_ABnq5T@GC{p)4vLN;PW=0QJ&hzbh6-k3@l%75vpg| zYLIz1YlxUIBMS%8++Rc_@O4AjD46ciUoJqtpnOI8>H($oTH5e>zUv&I- z^}EiuvmoC^ny1MW_)VH<77M^AQEq9t(g9A$e3>I!roEv$yxovf1`pC)e@KPyWOXJ0 zzUGz+9arg+~LkNI1EOnYGIfVBWa;* zg}#Xy6Z2n@RHaYRJZA%#ZyNshqEVdGV5DFpmiO(91l(kWsxT+SkDwp#kpu<)5m4*5p9xne4kd80iS z@_G)aeYI~-lM?0`B89JM>G4NMc$E(sa1fD$Ftnx%X(*XkWi^A}g61D)$Oa0jTMnyL zKMu!zx1Qvm!=E3HL|PtAt7_CS9QK4|HDXFD=uF_}pl+2R?p3Lng`A{DkfqSm=TWe1 z4d6E2C;x!Iw+c7mo5*PH4n^z4j#k|~zy%$^@_!TYhAT@F-9fO631~#sQnq%{$+}}~ zh41CpoNaIT)3){1llwRk>Fh)`)?ZQ)^h@=|CS}Zhxd>A&n{|l_P1l9ixV3MZ-l{`j zM*u{-1Kr4bYSkO|X-yf8A61i3xXkS_fO*$NqF=_d3q%+b;C$J10q#akJ^kPE)y&?;TO}AI#8pwk36( zMTW4b8I)Lf7=629IM{oHt;Sog0dJ3Jaza2_tpR67WvyyW? z{gi^T*oH&WgolZ>4bM?WqZ-w7rv|f}kvk8G;>r@9eZL%~Oq(^Uml7!LN3pcyE~r`m zgE|)7(GCo=GG_Fvax}Ru!V`Qy;Rr}+H`EQiCFEe+U0h{#y#ip4Rp~%CPOBJg#<57z zcKVfx)3)o-Nr!J3O(`98WZ~{4Q2;@$n$2aU`xi%4o(owMG$E)k+LZzHNO>n1@Wjny z&~F*zNmM7vC)SH5z+|w-eMMN2N;JX^#9Z06`y@>IlKN1W7R7rGA&*hi@k`IkC3 zbrgCvz~9I(r6Pz6t7OLV204T~si@}ZO{X;Tsro`ljg3e$5q%CMkgTVkpiX3iYpMJ~ zL=RupS*C?e;{4)b%HlV_;?W&}H7J0o4knYG^oz`gHkzDdYmO8Tq#eY^e+gvt5P~T* zB8E9;;1Vc!)I|pD=#&+RLy3*&l!DvTU4Ixn3W|)AdvL!@KKJdxDFpB`o>_ zwKegnsKdlJP(i+W?mjZPY=d5{DILMNZvs-LlDHT(Xm+M2BvtR}t)*)c5+Hkyj(2yK z#zcgWb&u#o1v~o&cR}Y7;^RY)o4^HJ8p1axfsBXNn0yH97e0jrbLNlA|M`rS#S3!7o$IE`q6OHmuJH(*R)aV)a*7%zO zg3+UqaQh_X|e9uu{;yi!a{A%BmGzKiz z&jD!e$Edf{X{te^Cus0rYe9p@oW58W`d~ZfT?)&-;{D;ww;4E`J!RYvO?GDp&z;11!mL{>q*?!wfu@JyTzxaKWUgzW)t;+P;hc5&dzQ+GLE>;#fHi=7Syl*2 z7>_OjtE|n$^oJ_kL=@ZP>{W5VjjoQzvZe6PbTVDoQ{ z+)z^3PP(5y;Q)iP>DV)pk>R?0I((Oh^9n+{b!Sq3S-~OD;U@+_Jj7_lAS+QMZV=iT zZy81sGW;sfpcz#u)vU>CBSXtj$h#%WNA1YiSs5{aj>c>-Sb-J<#7Q~+Jnr*7{kcb@ z?m)S+T(St1wKc44kQjl^eCUYnC%fD(TXYq8_I}Crk zpSZ@oJyzLwUbl2`r z?NGF8Aaryj;47MO=c*UU38Xoxqvll*AcG5bNHt-%6Ud{vA|DI#MHkN_+0Ye*-ig6v zd42^k`V61!DFN}gx%6aHO$wy9XE*ATz*3B_N!TaME_@s#?O!Xv1b8~J{IS^+2NW{E zKb6hB+!yZ+uzeHfv+P+^v{TihC_y#Zx8e9=-RtH7`#HJwD9H?~-E13jkP?$Ys=~hP zGfN)`R+g~W%vJ5vB^=>)_oiL8!6HMGO(0T6k9kFr$)8H7LZ`J8GVviaOH6Vk#3G>|KkOQVntk%B~1~@>xZnogOlnNm>#vb~@XW-N3#?aq=Wj$7RAK z(lx-%07C&KE=qZ3+q8$YGjNg*Z4^^hsLz2fuwVQX>0C-NoC#2AvKv(~OU%|>#*Y#K zsD`Z<97;Hgg63X^u4*kTd z`$s#6^-{{Hwx|i zVm{>21WVo)n@b0ggFn^XEY?F`#Ib#cqxzwCh*y6L@^3ciP;I38&6~gqfJnx;ks3UQ zI@#p}+dIt!O!^bW9`3`uZ%6Z|7gf}9wSk1b1;e!{k2@cm0{>O0^|X{_jyM|<9k+02 zc$9soE77W}n0tJkXE00~3+<1GLojcC^!##nU_8v68+kdvCPYz`U2I?q6CKEc9^gVC z)Uf7Bh(K~hWG!&{LhFu`r^y?V$Ccpic3X3c3W^4RVkiO;_8a|A(!>|*6Rkig{XB;Y z1P+6yH$!@L1S6o_2q%(&5-*k*2`wHw7eV5S!H2@>N~c!{ZU5@(J3Yz0UydZndF7lh z_Q7Gh_fqP&o!ekZPHvrM;>}K-6pyT}wYQ&kN{!4z*CVYeePlJVzdbb+6vq>)lJAU4 zo#2%y2iv6p*;T5sdV-1>4~iM980rG@oG?W2A=&fN?@`(Ukd5A;kP;xKSOnlqaF@>R zm-x-JG7P8>&Mj*9-N^A|v*<;L2#$8G*u)as+-f~WDav{AOcC=_C90nVQ0$E$R*ML? zV3nIak0?D6cUrIc8aP{IK(nFjqITlzs{>@VV`sxqcbE`gGcqTxOXnw`d2D@J4jMeN z4MtyrH@R*=udq|0_7n;3U4c@V#8^wGUE=u;9lCtkC2leh2R|#MZz6ns%l3!Hr9pg=1VytOnC))F?0 z#dkH|_k^OIkxK*|<-zz|bw9|_O)v~IUM8YLQx8T)lSByhHDuPH7&xW5?Zo46P47S5 z+IyRA`<{8`>dh!tP9IDAWg?wU7!{~MFxfZP6l=6G;S0yq zR@ps%Uw?fgYh_(F+{xK4HW9ap4z$x$zwFRxyoD~2UTww>=RB2@z~m;DcFi*jNOr&r zm@rFyU9(FtL&33%rCH#1D~*$TI;NKjg*|jz{7`IBz!5);Ti(Wp0>SA3N091d7oxu3 z&@1DasOur4MWJ;ctG((Ty2*has2IxaLF~!&lEoQNbp-z?eQu(TO8D-^vLpYko$7qC z1<=n~cK4YVLgzT>XXpuvtx$2h7vYWIW{BHdd3%xoEU}i=a(Zgwc=ky<)*F(ttg<7d z5m%h*N5w8ng30(}!N7N^{?yOTWX+p$wb(|B3DH9K0c^AG&lU&@BokMf?4M$a>@Cu0 zu(JhQMJ|~5Ki8tnWw|l=_?=D7O}%E{r^zroKnV^t{J{=rW2`F#(wfQSOGHnpH)qEM z+nnB6r}Y#QA4?-#sY*fvfnzO}Tq?1ZSkAbsxA&q_5ne9G+YeQ??$|ka@PU(8`Mm8$ zKvQQ|g?kjGo@^{6eIcA*QA#G_W1OSqQKZ`xJ>_n+}v<7YU<)n;Z*0bmH83 z{BB06W3)f1jV4OidFhMm045X4z$5I-0NJx-cR;6DixE4@xeKAL_AyJToyUq5xd$DE z53Cjgpje=zLzcOuLgllCD6uR)pFTyyuB#OgIk7*7&sAwna`@$<&f(R2AWp$xLN=VZ z0$4e&m%qoPp~9cKns!j{7LAqc6{D8$?vlpR?i*ui$o%jkf%ly zNpx*?xavI>0g7za!{(zGiX?_UHRQq6@;v*vuiE=Lh(ukQ!I2@oWr650gwU>w9ea#J z-BLXry=eIB&yCiQi{bhEvWzjB{>Waa(*0_8372%mG)I$I^f{Y0a{vdmRK*RfmWTsY zl=d#XO_~NnH;gf3^I%xBnf1W<9~-Z!qeWXp=L`*oksYt4@54y>xeXntiX_-l)j`d7 z$1KfZN$R7G7gb5vCM({(ZCFy(d$Cvg%&cKWuA`0?Q)e;$ASp?i{^n%)o*W0SzDZwS z?WQvK)uLHEPMhVZt)(>#~o;FR`Kaij92id(Ul!w0% z#!9Gn69|E_I=yZ;wyJ9TkvCgvUQ+@31yZ`7Kum582=Gs{hzYNSpS`8^%v~%|B-3MK>rVv;J4WF zUojv5q0z|yC2sx)k?;Te?*DPVe^0ggr}O)NBU}A9;gA2bv@wQnEad%-%;QASoOFD-^$nFg0SIj77G$E-c?hgx=>SIi7ILi(yn|V%i|q51CX4 zd=qD2hK1zxM_UY-lW51t!An}`=Ge4s`_!Ul@p zNE^c)up4q1Tgt70uRerWLOq zYllJz2Jb7_TQaF+akmZvTJm?`vJ!74p^!=4t7f$^J<0SL@R$bJcnmN-arL zXv&Uy*g*R{3~}WaJ`89aysgq33gJC$Gbov&+{K)p{ekdPj@FRLt)?* z<}2R~nCsyN{C{6&82+cT^8d*f`A=rZ|FB5@n;DXog@cxZ8J~rP{oC;Pufj0>KbW8Y z(1jT}=>G~N{Lka@85#ebMRB0MW{us7;Dx9A=@-oe8MM~%mlLx6h9oE!*3wElpvRV2 z&7RN$R3km|i>Elu(8WwRuGnh?hykP_jio}rc36RHAeHY3yH25-7Hx~$Jqyg~(YqCW zKL3DU?Lm+t|FaZTI$iIY5~Nx}-X=+F`csP%E?=X+y@WmLWGNK5&gmyhMqYyaCE-O;o&?box> z{EB_-bW}}nt+?D^FH3Ql^d{EBrDLn>L;Jz*o4}vDTn0)DxT_s1dE9H0`H~-Wah#q4 zH$f};3peh28>fa=(MuKTRv*Jx zU-&m3sG60T7MP7gpik@vPvB>f_2td;>2FFB@2`3vE>6#et**Xqu$+MfVC;C;)U_op zws;C2d8lAxLG&ONPUP4Fw4!a~77Y^(+QJ4GR)X2H8biyFljeBs+rL3VlXIZ**jAks z4E(_f4=8(rduyyMG_2yxgCrMcia<_VbPg%1{N~mhDRQ9aBEk8{Gx))&3lZt zK&stz^_c1_FO&7qls%d&z4LEAlTy{HjV!-FaaLX14==lF=xd)f5k-Q=LRT47#X-n| zs3E`>@^B<#m!+?fvM-wGD{H+(pJbH%(Sc5CdSoqUQ`^9nJ8~%M%VL)kBVGI6PrptF zzP#uPc>@soTU#^Ub&FRVe0iVvWk)wY?tPfo5-}aFf`o6g>4*q(r-#E#7u#^jnY=G- zAiQ1*^Zc>o=?YJh%3g)1HUyR5JZ3Tmh5|_B>umf+WfI%6JIu`#H!Lti;Zc&#^YXfh z{1=ogOopB`E_+=Sv^l4>oSlo%0FXJX0VjU=bg>iL6Y7Qjxp)T7>GiYegGXZ*?$eBZ z-%5O;P>9%Ggn=y44HNGcfOf4|m229SYueMZR_GCtxA#=8Tkl8q-5cHeq{avIfT;eq{gZX0SlSbYRzsR8|1ud0|j!6pXrPZ z(0p+`C$QaOuTE^}12ikSu~KRbB%z2#4kS<1ct}7bj;?K)4~DLBK>#7FH;U%xFDeq< zm#ZoNJivaO5GW9<7{!=M{bjr`L1{>T(3CKxpA)`$Bhn&<%vXG0-D1?Nd3wE@8#X?s zP=a-%)W4ee2Uc^C9IQ>S4<1OL+3{h~HAi)i$VIzg2&Hycg;n1vW6lu@Tmr~R0xDKx zhhaz%LjYj&LfrV}KnX`#DOob314Q&OrQp9OE;qr&Eux@g4r1Hn0vEwhaLAEgO%xq+ zDCs};j;Gn2nL3q3cJzZm!NL{K5*Jwm7xUB@Nf8Uq=qmv?4uz34W5&)6ks2VG6*>oi zap;;4+jV+(p~JQdGWtj8?m*-8%Vk@%5gG^PYB|jUhuy)G+2)#*k$)RJ^B}TfAMqvY zYj9EIa=SIWLhC&pOh&c2jDbnT?veo`)-{y(vde?VIA3=Kb-6vM5@5@JAGW>Qn^eN>48pc!s6YK{P_6uvy6=M zCxM9riTwQtPnBqV5(?PO{rmbfc{2nduZ3;obOlC@GaWyodUiV*R2>JdCGU(N-9QA7 zUD50zE>q+hP&?Bc@uAXNN@nYuOlK;6>Re*62G-b9=-XYnWofqv)B&-V|6}HRnPAxf zcZv0T_mRryAQ#X49ipA>(#b;6mfhr$%AF|!JFW8Oo1kK{*~~98ZKQL)aM_x)5-zyT z7I2zXnAN1waMosR0vKftIw@A|KQ9kcT$#KxXS8p6b`zb6@AM@;aqihlQNH@Wwu3~I zR~I?k6xZ-*w_&zDthXr-g)iF2V*O4)oh2lF_IgpW)1xpVeFN69(LrBDcXM-E?y__dfL&9dcfdg z%(IUl^(+?i_b_dLIRffa=%u2QpIicJWFw;V4w_h5D|ACQ=PIK&8H!`F?JW*MbwFa5 zc1Pg5FOv`r3fH(iUuZ3RWUNEP3f(^PA##IFjyRr>RP}+dUq(hZO&;IxBK6Fxtfn|) zc&mwQ4kFM1q6ZCdqJFM2z@>H}oBxg`8ZpVw2fvWW9QU!lx#ZJ6##$ZG7eK^gP0aiX ze|pi7vwi3EQa$<%Qsi}*7>w_`o`{#aBi98}>* zcN|L<#_*k zDi-l8^5Nur8mfh2(M`5QEYB&3Aq^!Nsf`A0u_KZ3Dyo}HoZTa_o&EBP1G2cnB7zD7 zS+n6F^I9kJaZk!w_B>*Ps5W+}M5-3=U8Z+a^=&LkoC+jpLEDc$cxQrz92b664L!yS2Pl!0bvkW#4OBRBW zGn<1Ou2CA2y#o-uA~~R~(Pw7|s!s&e!TWIAC*;b1P;kl!e4>eGyP*8d^VxqddYP5} z-}7V?r7Zr+lYzd+J8Z!!o0+^6r}AU?W0%&j9V097gA`nEEXvHFFe+zX=7G(b)fwx> zAQLyNS9H~l$!4=7^WJlV_GqCYP@9h1X3hLnc1kxcD!us4@%>h@xOqXpwQSX>{`5(Y zzQebdJ!&=@gd~Y0;>b=g=UHT%nbN8^75ffoFdEzWfrL))23rIQ_4A4{igY)qe&kP> zF-c{Kp?ugCBa$r*lGUH^0{-zu*x>-t_4!KPua$}yS-9LPlUM`3t>eA-7UBXjulFO3?WL6iv$m%Xd)`eS7>m{PBt(DAcvkk6)W$ zY9tTAOn|X+seT0{z>jF8dOi?EY4&II$LS33#Jd9Q5}mhqM<{BCN6693A4%Nz)b6^u zX_f^{CZt1qd}u2pH;qKDSZpgZRtg#&c+}A~8t`}yM-s^obDRY$Aw%8e9xazST*c|D zi;MAuig(i1xBBKx_lZY14~J7@WK&7e-&<#aDmZ^rr~lI_%>UFp{8LNuH+=*f0}JhU z!16bqnwIHbL0jJ>yKhqUU(NgXfGHElcRurf*+?*R{Co29KQ|I-ApHm5L;fJHbWKY! z@jZ*AKZJEH_iGzMEg_R!U_ZR1QAThlrP7iLH}Hdem0g@vYQqdOIf+F^5337%)!#KF|G~^{j2{efnIo-{7s4BOalEzXG~*|78cppATOEc^ z&+$fSOysHX8~}>;S*-M0Xiia}m#SIK8PRCY~-f4h#A zneFQuWn8Qd%W;tiS9qpUg0hvuFw2-m9gOo;7M1f;mb zQ`?aV=fm67uzQbc!!p*v$rwMB#_LEm^T0QD$cM|CI_$-H|FioguR(M|d6v?q1O9|k+{Xv-r2rGP) zUFArv8h}1vf^p+LHylV$)MMKe`*D?@#QD_!>1hlE3;+7{VR>m5(^&eOjac>iLIHEz z0uu$*J7orc@34UzB~rqj>-$oeU@pbjelPrNx01)C%Xco{q$n`$TNvyy=%jSJ3CQ?@ zp6Fz3-@LJ;QMf&8G!AaPDx9F2=ul5TkdUy-nrqBHCYB39=eFzJRp_eAnQ&;!x_?B7_V;xS+^Z;xiz@;;$X45CfaUPtw^iTZgBs`Y$H)im5J z1FpyCZ$Ru*!ad{uZrrRDml9r>*!RH^=?>6q!0e%C2Cff=`<(9CWSYg>Ej zB_UUf=EYvfhPF|&btqvoR}*wv6;Z*D zOW1kN-)2$LIm68ldj?dGVE#Qfw{56gQ2i6fi?vZ$64*7{=KrE&GEpO?zX2ud^?817GS(JP7Z#4uJc)%1R4<=+@zo`DG!@mE{q#q`tLF{FYgV`UHq)?mH394Ij? zsEJS|+m~d;%?rbmREuAN3ABj;mR;7a^$WW6Z)c!4Ky2u5z$Jaun#0*T)Mlj04H*Ax``Hh;I>wX@(&-rKw911RmS_QDvl*_>$ zAiFKPZJR|NySPTcRZK7VE5kyM$p?!g)!|cA;m08v>S_gvj7dTs#kqWl8grwB7S$A6 z34zK&7^ReXE+1&AfuzR#wCZ*wAMFbRcWqY?3Ke7g*6xOZjtL5@bB8P>g?B+i%@Ecy z;z)=_jlxnb*+6Ch_NtF`usou|UFWQNYG+m=x-!aha|TkulKj87an)D~XYA9KdM=SOj|O@lzIXB`8Y!8P5f`D+;GLhtfa zwxXL{4H0Emf#?%A08>bj{}?Fh=Y(Gr>E*bs69c!vlCRm?*g)KEii2kZ=+QoDoJJ7h zXge8wl^tT>$*kK7@6aqtNUH{89(b%-TC8C@9JLy1I9pgj&1xmNoZ%lzB|*g}|EM&HBf?i={(m$-ex$@5b0qOSdFJpjIR zqwCtzvw>)~z!sNW9n-{F-nx)BYwcdayQOw!|IXb4SGMUl1^1v?e763;wwr67@iM71 zBk>Nfp;DLF62Hov&Pk`4Or4n|32LmJd{D2riB5%n0J$xGux~jj!nrUW9t*tuw0=~t zkPCYnjMW**l^N^3`Z4%?Hi5o=jP4sh7!j4bq(13ihe_v+#x@pvA(yPuP1}|^J^}E4 z3;-}l5DAyFq#v0NSFUVqPoSDkRCD5ie$oCQ-#*jzq`m>tc6>NFH2E$4UfZ?yf3dIn z2y_!-oOu`jfr_>u7@Vj0*=myMBcdg1!`fuVR)-%6$A?u`ZD4TRsG1*h=@6Cor>;Et zE|NA%hd~8SRm^g*qlg7A#C+3YM3W;&V1|!ntIC@R+_0-q%bNSPy9dzg?Io4%X%Z0j zV^bVU<_-C&2XKwRU#qX95C_H6xiK7W_Sv_Q0SAQSL8^ugXP$DpWP=FjocdGRk^X1u zg{gRb-a}6S{FqO=h(}A_0H)7DoMS6o0QbGkr*mls4TRGV5JvMf7b1a^MAh7P-E*Bx z|Er%dTi5|?KZACS!_;CX^$+&VRHnsv=u4--$n`W%EkQ?r*Dr$DZ=$EsSIDfPmqJed z^beg52JIZR|CxI!1IWRb*HHJ++^kfyE4zVGsHM5oXf>V9;F1KsvG`av>b}OQ4|(Pq zJRf|UuZU`CmhKELdAzzfGc7$ddz-Vis;#sV(*A6nXl|$C=i*4-irJj6ldo!0Qv9MI zBCce+dGgwZt*xZi^r3Svch3AbPp<#H#7Z>X^^owWhpJ$oCY~Bc(J^m>)saFE#ijC7! zw0i!`SDO)ejGV;w0Pe4Y&7waHHJFIVD(98^cJtxw9%uZr_HFaZ5&!9@hIYJ1NTi7$~L+HsMbTg5dl{R)l;U7)`W&-MTd{34GMj z5S7hwyl2d$4>Wz{LLq4SnbqL21;28+l%A3dpTV&;T>QElor!{nu%}UbK}m29JZER-rWsG0e2l9v(*|`N6|Z) z{*pR-qty_3NSk>{s6YOcNY-&Az0X6;FA@aE4fsx+jp=vGw*I>N>bmutS0CbUH=iR1 zsocd3%!v`ctLLLPM2a`{8AnZ-G>^_*e}uaJ{Gm2`eUL;CS0+5QIT;iUMgRNuP4Nu0 zctZ@~nH~vS-xVom&zN-fG*UxVe*g+|Cv&TWb<^J4AC@}s(--I9URda#<*yiq)5;A! z1;$Qdk562+FiAUhqw$vQi=%GK25cQZsj^rbv>{a&xI4Et0TvBxi2xv(P_Oj9Fz zV=&hHTigN0J0eD>eVb%u1u`VD*B@R9tUTvo=fjT{smquVttF(oySh_SVpHSdLbIoZ zgYUf#IiFk5TF`o`GG2Q0I@Y?ox!>>ZdM0(6D1Ry@)4Cft5i>}qOCMzBWhJX((K<@E zd|mu=IALaGYn9BurJ0%K>EJGpWo7Z2QL1tamcJA4!~R`B|v8_E1G(UQe)N5BMgJa z_iHYAk=@ZE{;BBYLcUH_NdXJ-wOuy2%!Ui0ceGt<8IP!E7GUujWL!Y6+W=fQtE2;< zMOPjZKogz@HZX)y(JMZcR=SuO_!;~>b(0Mfbgk-X;&55rm-yUu`t8xvL3+(W`b{yr z>SStSP;IjeKN^IN)iF*!_wWBLz?j-e#+0rO<|{(2#tM?a@15J+}!yWR7|y+ zS0uSt=~zb%`G*{6(TgFl;#V{IO2UeC1fAg2GF$LcX&$!Q@mU@Vl2G1SRhVNs`82pu zdSlrc^b*mn`dC6E@Si>AgiNN{;g9gPYy5Jg@grcDV07-Imx~G*MMWpMwv|nGUmH%* zcSN#5;Mu1FI=K9vAgMV?A<5UnH+S(O@CdI93)TP)#=6BvX8mU;WN zIqZpF;k*&r72p947m)EFz5iOcewl5m5adkgGo_DN} zh1qV>r(z;bfb<3(|B#%pIgv~0l=Ep-i&Z>swGtoq)>OGY!xKyROu?ao?zpu zN2^_fmd~Bsevy7Ac2r#?;0KALGZEv1A8?Z0fU5^ugph>tNw%}P1-rzO)E1yizjV#m zfgpeduTD7q>)j$r)dCn=_ieD>)P;|)|7C-5QLp%O2#zr5sWlif{SQkgIj34`Hl3T; zAGgXeruwL#8-PfWA#Rdxyw7~6tc9D6S=e(s5AICL`?hti?ert&g{wh zg=5?7*tTukw#|-hvtxH`+a24sJ5D;u6Wz>z-kCKs_rCA_zPomvv#Sp3RMm4%)w4E! zdqZgIO)fMizWmzb`RskwfQA6w0Z*EGo*@rkw)dIc(8cyzQhH_g1@5{wS}BKnXWqsz zL&%vlsUmAxp+%O}6pBu?rygz8#U0g4SU;{(LbU$dZFFpn8!Ryir|V(AaOs;@9!iA` zOWd=gwq=FlsJ_gTgIbV~vqZJD%-fND1tiAy&tF)S=qp%5{_R4h;PG~m=eK+%Z?R4( z7OT)cl5leZ;WvJ@n2c|%ZE);-%rBT8su-`|%7a0nVhupn-gCpF zK7I;Yxl5WMyT55cIm*U-8F(TDy>X&yA)g*K2_4n1+XeJHz__06=;Qz4&e7 zc)GQ;dW{md?N^*WtIDo_h#s_Td_^tx;tSGmyWq1_llGOsu&ifLEmtxWo?6)At8thkrLaQfZ5+vm{8a`8w$qXVKx6QBu53UB^LS5>|Q{C=(gI-aegh;ViT}PVg z15SSE&v*VfC_ljGa7KrQhc2lZa+{{>1dEHjr?FlW8~u<4?Miy2o3D%yj-Phcs))jy zi`ekzwADMR!q=gEw7;`vz20HwBRm!=bX?$yKYroXX)XVpgdp_Y8f69kOifvZ!Sz6v z%t#58;yWL~y;wtEJv*(U)U4j=DRL&b2Sb0AN3OeStmd<>Yz@|)um1I=Thi7N%x{akB#mC_w#FR?nFG|SB?%ivBC`LY(;BGWwCbz&!_xzZAQrEQ{4tM)g+ zdp{o0@HC&j=lo!nda-+C!RZ8 zn+Bqz@Txz*hhxCg8R+pgcXL-0bHM1 z`ry4RKj6mZp+7?e)O9f_)m5&`l)K%vE?X&H z*7Fd)H+fXZ84c;V@+T2Nxe$At<(e}KZ*m;?cYgHCt@*FMA!^@4UUi0}ii`n??*@w1 z)Fs2zt*%ejYL3*R-*amKt))iUP@M|pQ@ZAaep31=p-xCv(E+{Jk~kj11W8iiJ(>vP z!@m^<-b$g4&6<+|XGtfD|5aTaxNgrLJvQpm|{VF;O{Wh-Gr(n3)?v|wPLDaj*u;vOYu++Jny zt{ON8s|EfbE`3@wCh!it=sWYr5E8xSfoTvT1KQyOQS;3g%*kEAZTrOV8X;}@)bOEj z*cCmaqL`&Rstlc0_{FEI?&g(Y&tv3MHS+f*=N1nqkH5@dn&&)qJoZR6WpaZ=SaAWr z+T^cHG{<{smE6gbO9MEU`yLoQHz5SF%b9qIRI5F_Q*vSptHa(#dEHF%meYio;Bgwx ztB%IdxME87JNE)y+nPBsAmZ6|QZeI43dx?fuK6l==7moDc*{$5P^yNvnHFXFgupDD zK{3S@#Y4tzbnP_rbE_ys9QrDrRE}`VptdW3vtGnV-2N2M%zXMEOvRy!Usc0`A4TME zwtm86RAabh@>z(<#7UnEb4nls=2=3etHW?A`1H$2+G*Tco@|fzFZfo#*1QQLioITt z^~oef%FiWz8y>s42WULL;&K=N+5%-$*6mKifoD4q_nlByY@a1N$OQ5CfMI6To-stF z6zkU+HeQi-)}Pe;-A$dfNE+IitZIKzO=<-)jMPZdPq3u5wtX%xW#6ls#AY$iwRU@D zI;gm|R8x8cv$E#F+*GZpc2aUC=TV9&&X`);OY5uxJB%Zn9&13;&AC%A(qbsD z*PGOlL|W{8l1rn7y0V@QL7f6^^gO9-C#%{j-BY>OSUjKK6L+XvY%}G$za*pv{;@n8 zS4#r_y`o)L$KRp}U1Sg~;DsnGOe%aY>vIpAq`yV#xhrkh^i zpN}X$xoq}A-KFs(`#ELoJt~mDpES~M=;KZ8&~%y*()@J#*&N(5DmCL5`( z5V%{E2cImRlJN{r&7-7-q5qd_3=?42tngx#2v|tIhF~k9fF~&LgRykleaJg*-jo`K zzOFRZa5Hvx7INTy3rHGyf~R6 zz+t9Yl<}#$&nS^L(!HIl)>9P+v8*u=xWqQ)zfGp0&+5kl>jGU~BFwB@;JK8HJ=*RI-9rMWS zP~&=GPf8r`OjJ8?jpsa9QatFf7z){kATRDg&2@*`p0T8e)QaXQIlIOYx_PbZz#ZIK+SN-K{e~~56|8v(hFzsRm{WK3RQY*<%L11qXkRD__ipZu-qp6=9@ z@f53LfkU*p&PP$c#@$m4ERBFpQv1pdnf?e3cS6U3*TMtzsb%VIj%mxVvHP3Ub#N@6k86{&~j| z!^#vnp_UVbRS2-zgUx0mehy+DV*)mgc5bOy-oEAbQo;=v@A{KKn1UnLpRAK7KjY89 z*x2+wWHZZvo8DOU{L9^pmAe8;pFd4FTts(jSxo@HDz6d{3yxzsO2EnCkg zB^_UhvkD(ohg9Z)BsD#?kIy{U($qJiBfup$8lQ{ z$Vv_T9$3P-v;iLYGMfkb@(MFaQbiB zFn{2f-_jocjo|M88>Ad33)_E4q189+*T1CD68i+lPWVd~-L)D~#GwhZ>SS^_75w?U zZM%x=V68*Ssd?ud?#l_k5cCO^LPM4>+OxU5-G7bUHe~OZCZixACLc6RlJDG6#Uv}; z-g9H~y-g-Z+p-&&9(8Hr;S1IJgLEskCTBZ2E@ESCx$@v)eQ;_DWhfe!6p)9`;b+3v z#00PTwhkH|e?n|c|Hw9JqEs)|6pb=f`aNn_4BZuLOf)7kq{6I+fi#?*eBbqO?T;zr zBjvZ7OXiTDm%5D_rerI{H0<`lAngiY^t3fi6{HK?oFy3Alyb&BdrM@(=l8JLS|V8h zHk^6hgDaJ1%ceHPd$?$lJ53@}$2>iXCq#nW2Ayq8MvFE9ZGGhToh@1Qr<+a$w%O+X zps6gF3H2crQoWUD!#D*3ckyDmA+@=%UzE~zQmOttgDRX^4D6+ebAJiQppvPiKtn$` z?Y;fU1TgI~pdsdbF&Oz{5sjZ4KBl6Hxr^)6ot|m#>;^0;;J3G!7KX=0%BSpaWo4S> z5vH5MX;|K&-1HM)w24&4PcX^8q=XQ!h~3B9I!Htr`Em@}7loqxKqH}PR+j&P zR6Mm4Z9Ad!or%)WS3dULpg6K~DR`%Jm3MRzY*&sDagtLDBdM zdQe{(e8-WDLIi?{GQ(#kwd+ADxXjFTatRfuv#BizrCb?mz>~rarGLz_ag;d>ZTQ`o zx5J0|8y^p75<@cv^tQ;w8W}Xrn-$ZjcX=UaCsA?z<%{XITu$!WwiOTZ)?(S%g}wFC zVI0(otmmmuw(eYZWUI_FL5G!NGUk?!lRNV_U&Kdg2s<#{L#Dw9Z_7Y%3gcpu>=1`# zbqh#g@~oJ!iIB>~nDz&*r$#Oypw{aXAaWcM=yKtR-PWER>mT*xC^cZVMtX_#VB?Ss z=la}ZyY-kh6{t`eD%8LOOY_pF-IO|yjfGbH`u8~V*GOgTnr>O_n&g92gvPXm%Mcfj z_(8#SgvN+DZV}^)B-B{;R)VS^LB<27b8^Tfh?vhzQ1r|6UedT#r*s2odKgC;LCsR{ z*koLHz+)JpBE)8gi6VATcCoH$_wl;IeM)XvTFj}dE<*8?c4`=9VW;>qBn~S>G{ojQ zfOEs*VJxx~2H+R@axH#gkc0jal0#BH-jQDLRC4;IqqX0bXD>CbTiN_xEEQg*xDFoc6R8^G!TKvM8;;M+vrAA;x8R1*Yb?ceH-+8_{sP7AfZK8f4GHRZn2ghgJ#RR|M z-sj!jOZb_W%b3#|Wi#~bCj8RcL;O>gY8ziU|Bh9O&1wy9LezV8b4ekrLZ^2A zI~=c>6F(@K!m-O~eS6j7km1`tj30}7Q|b#ki$8i8HpA~=mTGh_-k?T^e&Lr-BMIsW z^%Gv|


z@u`&7PNle0>G^)fTFLq$0~u5qY(HXEA2*X8!%BZ$3|-ixV?&|=3^eI=lhR+(0rZ01mO3f$V^OdJK zymhjZt}~UZPAmGw;RZFI_G}Kl1BpUre}DN}kHip{{HLO1AD(-1smqJE3BKZ3ZHU0= zXcmBh6_FhbTC4epHl+?8=}o42CGC|j(iJyoOPZVtyhs$YYbG}%z%f6i7}HEV@hSbi zno6HWl!*-gVxZgS``gX?ENvxBtpI0?5-8`BDJXuzJs^GZa|H8 z-EIc~;*dt5@VA}!`z9|zE~_S*9=D7r``i;mwzK1)-Mc)~DbDj)i+H-d`v)YwPg>J| zvj+Tc9=QKkywv~aHQ*n1tp5@+@IRJ=FQ+$pHa0>gE@pb>e>Z7m{?dm2m->{2gO%+s z_|*S#G2mq7`u9JP-Rc|ixJ*dC23DW_@tvwpzIq#F!Z1xGVkzng{J_FiIQbDWxb*1$ zJGU|EkL*Nb3~FfCho1Hp=D%Ziw{>dQt{XhNeRsilI_Y5hTPA|2S_XfZVph%S!WjK{ z2$UJF8OI0+Z}{Cni!fd|jHbbzpL7?8y8$94^L@r`VL@1MKxC}9=`Nt3qXHa&T%w{I zRz_C6&)pA*- zH=8;2)6A(u9V3f`^2D1e<3xyaLcDZNvrnR7lHZfPBkBmEHGHY~8v$CuXqq_VVrTdj)!|@gHU`3WXJ@w-|wJaoHAzVD=3-4r4_UOngJj5aa04*3@cvJa(6{ z?Ho+4M;s_UUdqU6F)jRNlbz~(!ey#@c7N|omTN;MUv>_Yc zbzBj34F>SOk19jyDeKeJ_~3G*aCF|963&dXuCHW5=}D z2HT}pVFJWiDSwpLvqqCx9gcZh@8^zQA?=u`U;fY23G@GEnxSB9t>S9OAWz7~$oO}s zdqP%DMy9W52T3r^@C+>;D5j(wnM{qxX6zTq@G!<<=z<3KOD5~VZc5|GkS}18w!tO9AFEe z)fQ(NL<8{;3~_iM1mS=UEW`qvkGqE0Zc2kds#8#5V$lbDm>P52M75M`>}3}F+zpM) zuE#ru&>Wrm*~*{5saqYC3Gy=t|e^m8N zYiJcKIH{poE@fgwHc`V-C#qMQAs49Ghy|)w!@I~=wgiA!v=;W>*;Wr$ms zwb$VqhNnzME4jpWVXL7|e!c`{kspMt=(TM8B-LoCf&uD4N^atDcx*OHJc7-8ag zD?xX07R{a%1cch0seu3; zzH7k93u|U2g$)5T<4U}^&0IzQTr{UZg4Z&q0R919*%#mcy37a;@@Y-i*he_2NIVHn z^e_stf)MkRO_zd2h9w7Tf$0QER?y4X26hbd0nR=k6>>`yFiXiaZGoh(zMO<@j1`Dn z;}vn+~WjF{YR zQCvo4lHvl$aa&w0{|qW(mSV<>;ct4_0VKW+rH!M#q1Z^%u|167`w}g`@J74HCw(2+ zd`4U$YlUjP#AmYUAZ(Bb9+^}E2V;@5zvEZKCgZfJVr^$gqash96E&)4JZTtb^k?LS zv}<5ZhOFsYYH6dAEfP8^9`5yJCwPg|Pa>#7?glW*-0?QP{L6x82Qp0FxTZv~BmAJa~znFEX{sN^!gBR{}H7jV6 zIjWVmNApWhv5K}comMx)^_}j#qcp^G#+C`yinW_9FHz2)t;GIKBn!iW$0iPxj5V#e zkEa#|TY(1`MjiT1kS`U>CM1a{@ob(_m2)6Gb8Zw+HZ{9B{|I`==!_N$B~08%VKZ$A ze;JQbvs~j1}qwxv}L)tMH=g#o}^MB=Q~BPD1{Afo5zJE37z+c#V(8?4E3*cO&v~T(MIz^ z)CyEKiL^tDi`b6s3PPT{pEZk#=z$3zh&Vk#LJ71E5spa;^+SM`G7`>cR`#2np?Ne; zS4&kEKHEx#jz|kuj(#kts>Em!r=_f)y&zhqj6XdYW!5{Z3u(U;ZaBd%$y<@;6BB?W zGlBl3>cJ?rhMBu#T}=d<@77LHrb6O zP9m$*#0J-n6jemTSRSC9wXO|aSsK64bP2x1@>bgC>LvO*fIy0DhOlwpRLWlEzSR83elSbup{lEiwny=aj1@icDYd3R_H!Hb~kNM}4$ zP`8dh!-%}ZN=yUTfe}^hhFy!G34OaJ>6r=qU2%^>rL>d%5wVM#b!^h1;~k3FjZcYy z^yu&*w+h7&^0Um~?ovvOV~RhJlV;cLap-rnN+QsF{7SPhe7T8eWH%t%IpdkuIvu}$ zb&*x*81=}GFXMQBg&iDVJin;OJZD$hqR|*d0?-sD*Z&nAcakd5d2}#rhw#qMWkYwm)h&xjSSO!PzWXj zS=rO4yjPnFi(Yeg8k?%kyMRmMru7q1{rEtZpem+4gI`m{K(xUe3M@ra21283zrLe@ z?eu%<25LKlYn#BWCOq3J)zgy90e50+DqB>*vx!7JcpYewMx`5tlS?a4#%eL?4};DRT1D)c z;^hCKSIdt0LJ=4$3RL7*q&Nzl44?7Hhm z>!(k4#GOo%e-NEU%H0;kMSj1#nAwi4;$VLN+WZ;tv*lBEcwAL~ZM?*@=Hri-7Ntj2 zmr{Hs?D%Fr)R7^?S%AV&f zr+A6RhR5e3i1#Pqe)(#hPQy6i)d7&ZNV@LEM z&Z=~ESa$53`pTG1Re9$S7BD1YtkX}P!aO}Em(2UWx-j|tvU=h8o1&mGWo#9)pfL{H zjhMikZW*}fyxBLrlP(TRjef?Vo2fTGOXaT{Xg^<8!|Q2shiWp(O$df+xJ^^Cq0+v( zEZ$61bVw>Lr%2&szC2^j)dUZwp0m~H-C*JY>ogu`J=cXJlUZL3@3|f}aM8~2fWfB4 z)-2RzB|^nOacjQ5PZ->MJ8(m~EvtPPOmjk~ua7O=&fhz=sM#nsXrlWbn9-Pf6PYo$ z8sChPmxvwz&bxgRnXME(a%;Z5&sFrCGLtXH7stV}=rsA`sc}6!TcT0}|K2y)GXtM} zA?v;M_K_lQ+Ussz3h<}%+8?l|`T8S7QHE_SNVNu)~^=#f>3k1eImqK{t5`1a0 z4RK^l1bEyIx9jegTNpFRJFq;h&Ykv0;YTgE4q_KCraeL_-0-z?UU-=h(KzMkfc1b;@6F!iazrV8+wx;4Ozbw0DK#< z-`#~AT#33{>wQetCu82n=0-}vp{Xbi{8-AJxyxA?y#KU%3NC?Kf1AZ|FXKLl*Tzz8 ztRz#cr!$;G&ig4rljp1L@No8Bc4H@dvoHl(b>k9)P5Mks`V70|;mgP#HdVLmw=g

eIJorh-981x2NT8hF?x1Dv~hHzZp7>TuGeV1E=q9rW5($Haf z*ohDM{)oAkn7M`bZH@5ZP-RT&c10e6(FI-`?|EYi|KUGBhvh${ztvG2$cNT%o-W)! zclWlthpV-uCD~Su|ElmwRC|n3JL+JCpX*rF1KB?_yAa*s$+JGpW1mh{iX> z;OV1n5lvJ6t07(SFX{w4Te{tYr^Ye#7z}oU+JCYhK*dWJ(1mm8Vhr%@zokH6T7T8z zche=}#2vh(X@*N{+}W)htLD~M!M)++^(bZkV6|cMUBcxIp|XNYlTCdMqO~cyid(O+ z>B1#VuWVmf4YT6AB2}AWB`mrgrBlIT==xlP9G}a^dDHuMtK*Co1%|2l_RE#~EzbCv zCH^AcC|?Biu*(LU5}nG=mgXG!b-x4Yv!PVhNqe6jZcW{?b73|_YRJDes}PoqKBYtP z3k00+SGhZhXmFw*+kCA!U`f(pBg@)*0k9f=&0y)}lY5E&+nee772kp}>tRJu&pFKb z815FJuIE%x0lUOohN4@x6dFaJ(x!MWOon+bCgQv8!|7IFS!2wB!kSqr>XK?%gEFO7 zILDrOu_nW+I{A1gOMdCiLLkz9AnjzsliT!OPqRioCo!np;Z}Ly;QVZapNo~r=jzIU(N9JOw@6{XmTUf@n6 ze5oF?UJcbu@?ib?S7N}Nvwb`glJ4?DG=jgt*I2AZwcxs)xBKJh!{XpkygRY;js8&< zW7YTY@@mI@#&qLo`wv9xR<_+)d-;_dvn{esqlW+9@mk%__@ih<_bx=Y%YZ==O9T4} z(5P<-o`UDVWQdgBg2SK{-xRX~_;nC1JhIB;^V$}fqiz1wtzJRAjGQfgv*Il4n6{Vh zs#p$2$Pt&l*WMyf_8+O6H-lJL?}e}G?f+8+in+t+gsK(?sbhhQKhqxuI?IUFrt|d- zFTpj?3JrK7R1vtrX}Vck=kWer3`_62JM!}%s0`B|7xBHH_jzFqG7Sf>)*f7oSI%X8 zn)y24wp(oNUbX%;ZCu&k$)#7&FV?Ry^!Oc-TbuvcD>CI!8nNwt2Bc<{nNYOT@WI8BtZ zY53^E2hvM>f%viSP)FynZ?N=2V-JS%lY&8y;0i4|1wMaEN)CqnEBtAe$u@23PR#e8 z6!Z5-^pN>BCi;k3xp8YL{U2sjPZbH!r!4r`=LfisR$lw;OA7FhU|TGU)!zPN>~bm_ zIUd~_p|XM|BHfW3cJ379&7dM|=>_(~xF7dMtg73+riV>Y1(Xt*vMU+n&pujw zgj_&dFdPm59yV2G5wq7#{HAt|R4+j*5S)1?|E}O4D_V*(dE5P7f%bE^atkap8%}#& zS3!Vo>K3BBcT|*-Fl|Jo?>U!2W-lpm3bTCN+pn#Yzg@-SI#+r(D~0vK)+b+`3a1v{ z7pwA^skiSp9_!9B3T#c-t~u1N)re4MIjOx`_I3j9?$NQHu-q!ox&#Ki5j)@?UC|j) zvQNrHK88h9(=trGf%s7#7-s2&{MYwT8~I6fwjFf0D~a3TQokIWd@pYo6nzZ2#R%BIb~v;83U}tzY%(>~t!mz0N2x^!{C^Ii=aZUmNB|d!PD(b3Zby zj!cKa3mWe`4UrpYv5W2b#ZGp)JP~q(|6=<6wE+vkU*ysYSqfQd@ecg?4+?aHT*mi| zCvw#E2XpvO(!D9ZsKchw9L8C$2j4J(r1iw^g42g!2u|;x*fqOh{#!9OfMOTg^HdRx z7Z_0wrUT8D3M4luTprw)dZv=MHmG!$ic=l#Vl^oCb%Hxg9xexqo5|JqbjZum%MtJm z7NLXD)#!9!Z|YyE^M`<8x*Ohhwy)!#{(n8OH}OvzS<|2p;B>kk>PCH%-|P$}m=W6K z`6@P}uE^_l-sgh*Ji9#K5BzQa7kRq;jh>zNHzQrb1rWC*3@H3^+T8XRM{aa(V7f4# zX>ZhbtNU~UYe59S^g!U(DsXv2tvE`MmN58yOn*I;dYe_7`T4$ zpK|+ET%6kacBN-W=8Zbto7r+R%LLkEO1>v7mK~O@I=4)pi}Hk82?$pLdHk2T@_EVB zH}N#v!{!{-xig>N^t!eTx+;2l9r&x`etrRFjy3u5*rng{Qv3=}6@K087ZcOGmgm6K zb?_+lue!+Bdv96m`Sfl4-s{!I)x%qhxa9ZpY@g{qAqBAY?b^cA{k*IB5NPxB?BL(X z#(Q&gbqBa}-{>uu+f!^jzMS8ljUBn~>*X2b`upg$l8RW-O=cHs#M8}d(kyF(SS@KM zYtpRXaJd~|0IXkr0rM_K*<&ve*E+7cN*!!YG|xsW6Ix~SXI4dna%K!=WYNZbCeg|t z_NYbLaW-++!;fU{?^9Zfnc#k@URsPQ;nIz0pwkPQ_v_)iQ{(O0&=TxcTTvR|!_`Gw z_EyJ7TSW9|NH-W;l^fto(33UB-=jey`o<>TuF-^d6F6Ng3w8~H)^1F?d-WLW5g-lp zQO>g#*6^jbidb8l#Aknvf#rV%|a-Ba0SBh#-d(LtGNyhY)Z<-aU~~ zap5_mJEJqR&0~-%chDdHzR>6^+WrdHVI@hVASD80CEcMkA1hp#WRJ$2>RMEc9x6&! zO=(JPB}SyicYLdyP?1nxj2Rmo<0VI=L8KwY0n;v>^E06;p{f|0tdX*q23wrSV2o6n zTxnE;Ig%KJESb_+kvZ%uV`3Q*7-JMMfE1d@6!VoC8pR6Zgmc2$XJige#EzLXjQBMQ z7v>3fi-p~X6i@Vx1Qe@-i8(;*GdM2hU>eF#ZQS1eH<>C`FWhVVhD;D5fRa!-Zm7 zjVNXou)>yzNkk6BHklVUU*I1jE^E>&@4pve(REG-Bgi+B8)@ zqsGZ&aT}fDv{i*qb`P=n9cg>ZKDSBmOnHUO^i;>S@cLc%G+}to{gTM~X6M~>JGTs} z|68MLN2u7RNMht{Sv-g064C5YZDqQcOx&@Gh-iQkYmS3svv^>HlRG< zX!cirF~>mTUiip~zEZYE~Vlpmi!azIummxPz?|vkj7Wu8OZc2#|*>>#011hMaUrHY-Z%@@c(j?m4m(LmnxQ0l$)86 ziIs_&k&TI!nUR%+j**Rmk&)u7ZaD|j|M`l)DQ*7&mCnxgH^abxbmqTT_A)d7hsmB^ zLcjGOBV5?E9}ND6h||2Dh@lPkVVyng1}JAs684w(%QTULz#1&RtYPrmXWlcN?^zB0 z3m70a_>!srbc~7K$Sj(1_fTpHozr1qJ9T54oSM$Dmk#ef!o{x#@U@krj&f_NUn%9!d=pPqPN1QEV@EKO$ zzlRbl#?D$`O07gk914b2<0z*>;gKuM~$LMcc)~;BL(zbCT0GSVH zQEa}7QoB&c1gi$LU|haxr&B-qPEU~nJE7ct4rawqz35M0|32Y$IhoG5XH4cX1e%vb zYf@jqXE|zcv0w=N-3@iq%U051ewX^$bBraqunk!(Q97Benc%e0)BzZqD3p0z^yiPwbhGu{T3oT;-UpR74zTNw>DU{dPQ+}T(-g08 z$kcMPeQ(8-uPVH~E_(aXzO;aAzU{bvBKVuV&+TBqY>I{+%XvA&Pyk=ScU#wUdVKaW zaODG{#fdt3Xo^9* z`&gmbNr`Urfxh7%$~u^Xq~WRPFE2`8h`P#`H<_|Nz5VaWcMqNkjizhk_cb~g4-1cmbR?ni=iEqv<9&!Fxm4OoFCmK6Y;nW@Fy~7boTgHv?bmJ3O@>1veM~t zd3+7HidQN7c-@BY(o(I_E=GHzJ>R1mF>6PC-2e!6I?EtwJHY~&9Z5+G=`lGCeM}!N zCJ+L0efZw@MZDY167N$;-JS^+x+22Z~2SD~Nu+fv8(-(6sdW#yr62 z54;v4VPF(tCiHxlPjg);OXGLi?tHF{=gSw;mH{!-njfh0iJRg%rgJnX5^J$#9jGU2 zRv1W+3zfnVL}+)X`r880saWI({G$tjjKMNBene zN4sXJH%h5uTk5DdUo4=@6Tj`xqd$vRGGX|x$|bQzJU4ACBQVx4h04hC`kA`6Kbd0ir54n9!-A` zZc-^ohy+IpckWICPBGL$h4lA}{+)3GZm#j|Dl7b{+|@*y7?*P$TDs;XG3S0i43)nW=3fR~w8iS0Qg(HT>uhd)^5-GJi(&xy zO~*v9U2?g=@I@JbLospaA|!(q&e@7&c>KIyu?jb+-+aK&j8VcVVZnD8AvuvzQg{-{ z%vdC=kO!GVLfOn{+j-u3hJ<*iGo-@=1hH>cstX{8m7fEQa71*AO;Aendz6Iufx`2N z#d$?oV#Q=w^4u^ai=X|LawCSMR#eiG6O7XD4lzqjctuhpR@~oABq{P!T#3geDU7NB z3PXzW+JRqob65)6VgT$4robi$R4EFRBmmV1b&rg()ULe%Qz(g zkmW^COB7Zf;8>IC2gg+X$T5=WS6sm{$_e&qY03F;OOskGJ5Xd6dyUc4l5&F=BxlIp zfll^Z=kM!d9ze3Cyb69|8gZQsYYKTmPb=??lw`IPhCVP?k-j6VmwP*LO%uJ>|EzSX z>44PO<(+5a%yXrqC+tSSthg?K$4t}@jV?d5o_}(Lrzh&hNKeuapOCDj*ow{Dl_=)e zb)L`LA35)AQ(DL~VmsrmB6{aqR=$)gzTP+2mFoCrch2(+UPIgsu95tqyrAPmcLt#= z;e}g6(Vg>Pw;7n1@Bzb-upOC~^nt@s;jl;lCi@QS7wlGyd+Rda$<__Yk+>b5C3QW> zAbGv=0K6#-`10Jv8L2MLlH3vHVNbCCWml}@7!H8=Hc-2`Qm?kKvoAl7@RsR{dquoe zb2hjt34pp%HyFHjL_E7@+Y0oS^4RB}7ufZim$(HwGx1dPMUN+u2T0f|f5uR-`l4JG zD;PBbU~+$9%v;424f@#U^)h=RE{pvKNQxQuJkBRPGaksgf_9QW zuz4g6hUFg>JmnTvZYj@jJ!2l^c;x|@aytVAQais;i?4U39>uyU&+K`tuLit5!(0(_ z$+jxbUOnR;KzS7a8eM__B7IeZK8Z}f7=gqOOnv3Nk)0dnvmLf~u-b$V(AtU_BLaPr zch!ZN8}2iKTZl9N1G)Lnxd)f768>oaJ-c~^8-%m;;+b8VE*Suud-4bFb)sL(mEu&6xw-Z01Ll z=E891N3hO<|LN-k!Bu9iZ65uyYyD6E&&-cS|GrEFZ6_m}hGHC|iKKzgWN~G*Q!}wN zZ~m7wv&&%fqCkHhPc?vxxgO(&%DGvwpjCg!B5crcx+_U6=&6){l^)6_5LRD7eceRK1pW}V+ zG$I^_2DfrQ`z@KV;mMP$Aj`{HEb0{TpK9T9b|liiyL8*`y`znv$#Uzha74xOv5@aH zWy*E~G$2F_KpzMR#BuxciwR)M>aWRz21Ofw!Z$(xZ3;&s75j|`E`gM_11FZqCJ^ze zAs%{qTk8qkb~4ya-FR%EC2P(tduXxNhfgeaUkeBQIX-)2Ky_$<-Jx4JZ7_CD+U{-2 z4*MzX*mO2hLiAQi5^j2r`0sT~q=mj!PS0eRM#)CWE5&Rj_z&xmB(E7WWzm|i0Tm6~ zvgy!mjyRLP(U5R&;KXkBHrzJFIYZnvb-0%u=VB*2Xw#*EUgx_&iJSbbEBa(Xq<lpW};?yD#~W`7kqL z#E6WX-pt|F#-g=Q+ACute!ikFY3*w>)EZGJ z@-*`^vG+&$R?f0UJN`dLSviBZD$2BP{VX59Y~aLpF5f%?bqR5WrfgMI=593zQ?t93 zZH76pQo}NqO!hIl`ghUYlZP#2Ws85ndZ*+^c&+`r_G(SQCS_>jm?QmfJ%C5PmoDo^ zD7FT{3ImpZ1P+K0S%DSt?_Gj*)7)UTXVao7?%$u&(7S8ll8GKSb7A+iz4ZXU#pOM? zOzO2>22{QxwNF~Js>3>mkIx+<$n{&t*{E+`YF}yT)ju%v!S{6|5aoVH`~Ha<{YlKc z2+V&Y@>%73*`X99?H#Tjt z|Dm(}P|AN@{BLZ=sbxugCW_xx-y1V(iqy}Zoc{~!z3X>%vwqCXwsY_1g_E5u!KHR> z`k9C*Q|!OSkqPF%88h{kiY-z+X;JUwMLRRkn9o>Bt!-27V(Gx~_Aj#FLH~p7ybEHl zUY=pn{}S+DbIFpx;!E$Ae!GWpk%W&PTn-t|v7~BOPajK*Kc!~anmo^S0uFRvI`Caz zI)QhC#t$7^Cuo{`cbE)Yv}lqC&FncnAFHA>O7vJqd6C2<&%V*U90=CE)LwJM{|8{W z18kdc(<{wH9q#v~GND`zA}fh%cYAau4oQo%?RMVIZ*H zm=S0m#I;9#eDdL)n-@>|v}jc-d+<|z@eE#SsTR#|=JTQCg(ThUp0^fUzv<=WAKW22 zH2=hHmCMjc&)$nQ7U(ZLviD>hjO*P!ebxN-VO&3*G5p5v$pXQfdm-ukT>A?4 z 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�QQ3dz~$j-9>Nr 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 Vxu+YtL>oC2zvc+20^+Zl{}(o(p-lh) literal 0 HcmV?d00001 From 7bc62cd896cf3b57c557d0fd208056b1642a658f Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Wed, 13 Jan 2016 09:16:56 +0100 Subject: [PATCH 007/145] PDF extraction error handling --- PDF_Samples/Seige of Vicksburg Sample OCR.pdf | Bin 0 -> 206209 bytes Scripts/pdf-image-extractor.py | 52 +++++++++++------- 2 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 PDF_Samples/Seige of Vicksburg Sample OCR.pdf diff --git a/PDF_Samples/Seige of Vicksburg Sample OCR.pdf b/PDF_Samples/Seige of Vicksburg Sample OCR.pdf new file mode 100644 index 0000000000000000000000000000000000000000..234f39b75b8a2dc7f5ad91a8c4a9f758f777e9ae GIT binary patch literal 206209 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


J?&M&Xz#qhdrYz(1dwHV)c#VK4C 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⪼Iy=`2ZBS#OtgBpPj$=vsO|(RmUQyhW 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 literal 0 HcmV?d00001 diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index 8052d1976b..4bf211467d 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -17,26 +17,36 @@ if __name__ == '__main__': input1 = PyPDF2.PdfFileReader(open(pdf, "rb")) - page0 = input1.getPage(0) - xObject = page0['/Resources']['/XObject'].getObject() + page0 = input1.getPage(2) - for obj in xObject: - if xObject[obj]['/Subtype'] == '/Image': - size = (xObject[obj]['/Width'], xObject[obj]['/Height']) - data = xObject[obj].getData() - if xObject[obj]['/ColorSpace'] == '/DeviceRGB': - mode = "RGB" - else: - mode = "P" + if '/XObject' in page0['/Resources']: + xObject = page0['/Resources']['/XObject'].getObject() - if xObject[obj]['/Filter'] == '/FlateDecode': - img = Image.frombytes(mode, size, data) - img.save(obj[1:] + ".png") - elif xObject[obj]['/Filter'] == '/DCTDecode': - img = open(obj[1:] + ".jpg", "wb") - img.write(data) - img.close() - elif xObject[obj]['/Filter'] == '/JPXDecode': - img = open(obj[1:] + ".jp2", "wb") - img.write(data) - img.close() + print(xObject) + for obj in xObject: + print(xObject[obj]) + if xObject[obj]['/Subtype'] == '/Image': + size = (xObject[obj]['/Width'], xObject[obj]['/Height']) + data = xObject[obj].getData() + if xObject[obj]['/ColorSpace'] == '/DeviceRGB': + mode = "RGB" + else: + mode = "P" + + if '/Filter' in xObject[obj]: + if xObject[obj]['/Filter'] == '/FlateDecode': + img = Image.frombytes(mode, size, data) + img.save(obj[1:] + ".png") + elif xObject[obj]['/Filter'] == '/DCTDecode': + img = open(obj[1:] + ".jpg", "wb") + img.write(data) + img.close() + elif xObject[obj]['/Filter'] == '/JPXDecode': + img = open(obj[1:] + ".jp2", "wb") + img.write(data) + img.close() + else: + img = Image.frombytes(mode, size, data) + img.save(obj[1:] + ".png") + else: + print("No image found.") From 19a8872010a3777e89629530bda2a80b517d381c Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Wed, 13 Jan 2016 10:52:27 +0100 Subject: [PATCH 008/145] Testing --- .gitignore | 1 + .travis.yml | 21 +++++++++++++++++++++ Tests/tests.py | 11 ++++++----- tox.ini | 21 +++++++++++++++++++++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 .travis.yml create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index caad7d9538..f2c7267a58 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.pyc *.swp .DS_Store +.tox build diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..b7a7531dd9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,21 @@ +language: python +python: "2.7" +sudo: false + +env: + - TOX_ENV=py27 + - TOX_ENV=py33 + - TOX_ENV=py34 + - TOX_ENV=py35 + +install: + - pip install tox --use-mirrors + +script: + - tox -e $TOX_ENV + +matrix: + # Python 3.5 not yet available on travis, watch this to see when it is. + fast_finish: true + allow_failures: + - env: TOX_ENV=py35 diff --git a/Tests/tests.py b/Tests/tests.py index fa93c10ecf..83b5951f8f 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -27,14 +27,15 @@ def test_PdfReaderFileLoad(self): ipdf_p1 = ipdf.getPage(0) # Retrieve the text of the PDF - pdftext_file = open(os.path.join(RESOURCE_ROOT, 'crazyones.txt'), 'r') - pdftext = pdftext_file.read() - ipdf_p1_text = ipdf_p1.extractText().replace('\n', '') + with open(os.path.join(RESOURCE_ROOT, 'crazyones.txt'), 'rb') as pdftext_file: + pdftext = pdftext_file.read() + + ipdf_p1_text = ipdf_p1.extractText().replace('\n', '').encode('utf-8') # Compare the text of the PDF to a known source - self.assertEqual(ipdf_p1_text.encode('utf-8', errors='ignore'), pdftext, + self.assertEqual(ipdf_p1_text, pdftext, msg='PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' - % (pdftext, ipdf_p1_text.encode('utf-8', errors='ignore'))) + % (pdftext, ipdf_p1_text)) class AddJsTestCase(unittest.TestCase): diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000..02e3dfa66a --- /dev/null +++ b/tox.ini @@ -0,0 +1,21 @@ +[tox] +envlist = + py26, py27, py33, py34, py35 + +[testenv] +commands = python -m unittest Tests.tests + +[testenv:py26] +basepython = python2.6 + +[testenv:py27] +basepython = python2.7 + +[testenv:py33] +basepython = python3.3 + +[testenv:py34] +basepython = python3.4 + +[testenv:py35] +basepython = python3.5 From efae6bcae6f5ddd3be5c145148e1a8ca8e968083 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Wed, 13 Jan 2016 16:37:53 +0100 Subject: [PATCH 009/145] Update README.md Travis CI picture. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23a1eef766..da121d8b3e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#PyPDF2 +#PyPDF2 [![Build Status](https://travis-ci.org/sylvainpelissier/PyPDF2.svg)](https://travis-ci.org/sylvainpelissier/PyPDF2) PyPDF2 is a pure-python PDF library capable of splitting, merging together, cropping, and transforming @@ -31,4 +31,4 @@ Tests can be run from the command line by: ```bash python -m unittest Tests.tests -``` \ No newline at end of file +``` From 1273824c0f8d708f1dbd5872e2216b75e76d46c3 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Thu, 21 Jan 2016 13:42:17 +0100 Subject: [PATCH 010/145] Add CCITTFax Decode and JPEG test --- ....pdf => Seige_of_Vicksburg_Sample_OCR.pdf} | Bin PyPDF2/filters.py | 53 ++++++++++++++++-- Resources/jpeg.pdf | Bin 0 -> 100898 bytes Resources/jpeg.txt | 1 + Scripts/pdf-image-extractor.py | 8 ++- Tests/tests.py | 23 ++++++++ 6 files changed, 78 insertions(+), 7 deletions(-) rename PDF_Samples/{Seige of Vicksburg Sample OCR.pdf => Seige_of_Vicksburg_Sample_OCR.pdf} (100%) create mode 100644 Resources/jpeg.pdf create mode 100644 Resources/jpeg.txt diff --git a/PDF_Samples/Seige of Vicksburg Sample OCR.pdf b/PDF_Samples/Seige_of_Vicksburg_Sample_OCR.pdf similarity index 100% rename from PDF_Samples/Seige of Vicksburg Sample OCR.pdf rename to PDF_Samples/Seige_of_Vicksburg_Sample_OCR.pdf diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 6dc84a4fbc..116b860a1f 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -331,10 +331,51 @@ def decode(data, decodeParms=None): return bytes(out) decode = staticmethod(decode) - +class DCTDecode(object): + def decode(data, decodeParms=None): + return data + decode = staticmethod(decode) + +class JPXDecode(object): + def decode(data, decodeParms=None): + return data + decode = staticmethod(decode) + +class CCITTFaxDecode(object): + def decode(data, decodeParms=None, height=0): + if decodeParms: + if decodeParms.get("/K", 1) == -1: + CCITTgroup = 4 + else: + CCITTgroup = 3 + + width = decodeParms["/Columns"] + imgSize = len(data) + tiff_header_struct = '<' + '2s' + 'h' + 'l' + 'h' + 'hhll' * 8 + 'h' + tiffHeader = struct.pack(tiff_header_struct, + b'II', # Byte order indication: Little endian + 42, # Version number (always 42) + 8, # Offset to first IFD + 8, # Number of tags in IFD + 256, 4, 1, width, # ImageWidth, LONG, 1, width + 257, 4, 1, height, # ImageLength, LONG, 1, length + 258, 3, 1, 1, # BitsPerSample, SHORT, 1, 1 + 259, 3, 1, CCITTgroup, # Compression, SHORT, 1, 4 = CCITT Group 4 fax encoding + 262, 3, 1, 0, # Thresholding, SHORT, 1, 0 = WhiteIsZero + 273, 4, 1, struct.calcsize(tiff_header_struct), # StripOffsets, LONG, 1, length of header + 278, 4, 1, height, # RowsPerStrip, LONG, 1, length + 279, 4, 1, imgSize, # StripByteCounts, LONG, 1, size of image + 0 # last IFD + ) + + return tiffHeader + data + + decode = staticmethod(decode) + def decodeStreamData(stream): from .generic import NameObject filters = stream.get("/Filter", ()) + if len(filters) and not isinstance(filters[0], NameObject): # we have a single filter instance filters = (filters,) @@ -350,9 +391,13 @@ def decodeStreamData(stream): data = LZWDecode.decode(data, stream.get("/DecodeParms")) elif filterType == "/ASCII85Decode" or filterType == "/A85": data = ASCII85Decode.decode(data) - elif filterType == "/DCTDecode" or filterType == "/JPXDecode": - #return raw data for jpg or jpeg2000 image - pass + elif filterType == "/DCTDecode": + data = DCTDecode.decode(data) + elif filterType == "/JPXDecode": + data = JPXDecode.decode(data) + elif filterType == "/CCITTFaxDecode": + height = stream.get("/Height", ()) + data = CCITTFaxDecode.decode(data, stream.get("/DecodeParms"), height) elif filterType == "/Crypt": decodeParams = stream.get("/DecodeParams", {}) if "/Name" not in decodeParams and "/Type" not in decodeParams: diff --git a/Resources/jpeg.pdf b/Resources/jpeg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..07a7fbbcb0acdf9e860d0c2e99aa7de16beef809 GIT binary patch literal 100898 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

|yW?co$!V9cWF{49jw#3 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 VdwKVr^c-zX^ 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 z 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 NvjWJ;zsQRL{vUfPu7>~s literal 0 HcmV?d00001 diff --git a/Resources/jpeg.txt b/Resources/jpeg.txt new file mode 100644 index 0000000000..6d95b07114 --- /dev/null +++ b/Resources/jpeg.txt @@ -0,0 +1 @@ +ffd8ffe000104a46494600010100000100010000ffdb0043000302020302020303030304030304050805050404050a070706080c0a0c0c0b0a0b0b0d0e12100d0e110e0b0b1016101113141515150c0f171816141812141514ffdb00430103040405040509050509140d0b0d1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414ffc20011080258032003012200021101031101ffc4001d000100010501010100000000000000000000050203040607010809ffc4001c0101000203010101000000000000000000000304010205060708ffda000c03010002100310000001f950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cab1ae2a6365f550e977ba07be8a1d12eefb9672fc7e978d1e79ad3d121b8926a8918ef236020c800000000000000000007b7f5d71d9f9fa4702cfc2df7a46db800000000000000000000000000000000002fef8b12d3131efaae14eef3d87af1fceb81db78f48c5f7cc6f4f064db8ff63cdea3cf60cf96f3b1e1cc3416d719c99355a64b03e736e81c990000000000000000af6e86bead3bb7e673793aec84fe651e6c24d64e4d7abe5491a3cdd3795fd33edab9f27bb472bf4bebe2c5de88000000000000000000000000000000d8afe91fb35d7d528decfc2f2675acce296a0cecdab62474b897cad5f2a0cecd7b5fccecc720b17a1ce458bf6a7c58f2f79be21a1b708be349a8f92f11f2ebc1ccdc0000000000013135bff2f8d19277ee70fcddbab325659e0aacbc1860cac98ec9df79cdbb4bedd2cdcc63ba7f27a1cdaade1c9435f89689f5670aef7a6d207a0f50000000000000000000000000000b956e1de8ac491f54a2f3df6c63cf2f55066cd19d174b68c8cccc3e5ef6fcabde4c9e5da6425c5ebd876ba5a4f65c24cfa18ae48741eb9c097e54c7ebbc9bb91476b3b9e0f377d295d1f21e806000000000cbc6b6fa4484cf9ff314dff2aa5cef7da33f5d3a06e393b1fa1f57c3746e95cc39dc9b1662e2ea50df379e419b1c5f44f32d52c4d676891d467b95c4ca8c9eb55aa70bd27e92e11ec3de420ebf740000000000000000000000017acedbd68f2336fd3f57a365ef9775ab271aaad9b96ed4b53da3b23bd6d1e6a6f9161bade87576b193294f4b4c08fcf839b164317368d4e6ae63ec3ea5c87b07ceadf2ef95fe91f9c7d9d78db52b67d8d7d320b7bd23e6376d8f2938000000a8bfd63036cf3fe5e8aaba79fcab757a8e25cb5e1d5a7f86e374fb3b073eb51d1c35506db65e4d32ba690fe64531c3eeeda6f528a1bb87b46a7479d662a564659be5db3d67937aef7416ae8000000000000000000000197bf68d39eeaaec78b8befad82ea8f7a1a54f3130af7ae57ef979feb9e53ccad71a4af371f63edc76b5494d7f47b47be67018cf976d3674ae8df3ecc7563d9e323b2ed624ac5cc78d15acecd85536d29553f21e80600000369d5bb4f3f97396b3e57cf794d66ade3579ed46e3fb83a47974c561997116ed4f67d79eef2012fb2e97b0e359684dde220adadf5ce45b061f4e729da22a7b3cf33706df278539f307d15cfaff004f960f59ee00000000000000000000000d96fcdc9fd739faee4ccd57b11989b659ab9d371b68898f346545c6e1278f8793d2d26a5a0aef1a489c7f69800cbcf7c05c2995c05bc4fdcc7bde8e0c9b567c8f2b77a8dda945ecdacfc8ef870650000243b8f27ebde6fc94bf60e49dbb48f1f8c76ff9ff00b7e8b49c3c2b9c5f3d3dbdec1d5fa7d8f99745fa1386691c47be5da5428f7a0c9cf63956565e0435fb359d8b65af57e6cbf2bad69a741cdd6a66ad1aad64d31c58fe5ff34d3e7bc1ea9cafd9fd002dde000000000000000000000eb92dad6c7f53a3730ba4e6d2db915dced9bb11e931bd679ed6da063f7394e4efc7bcd9a07bb1d6a6c51da8f0c6078cb268da77c45f6687fa83cfcdc6f81fdf7f2af3f7e3927ab4a7d1e9e7fb1be753491f7065e5c60e8bd3b9c7ce6de38f0b680000dc7abf1eeabe6bc849ecda4e250e6743e5f2917358d6e468ae7b1f4574ef94773ebf7a4b834fe9f5eafbba693d3e283bfe06efabf67d0fcf5a2eeba8f1f81f42efbccb69e7f2b48e4bdaf9e56abafed5a7ec38d6664e224638b6dd5fb046f4bafc5be7cfa5392edb73a1e9bd80000000000000000000006dfb972be9ff0047a7b46ebc9e7e9ed3f85660ad6bd6357c291f3f345f41e41b3e16b9cf66e6f2e35988db627d2c3abaaa707819bb6e95b0eee97f55fc37d578527d43f1eed5f3ed5da1b2f173bd3439b8bb1c7fa386d4b62e576e3b5a0740e79f3cb7647cd6e0000199daf8475fe3f0767b176be1f9ca31a4bcd34d5312720ed5c88a6aa2d5db7e57e6fbf931135631df6238ff009358cacc8798af53a4ecbcff0067a5cfb5096e361af6bdc5b3b6db75d8592ad5376dcb8f665bbd91a4ec7621aff38afd8f6ff460ce40000000000000000000742e7b2bd98fa45ca6bfa8d1b8f2b9176f635c851f76ac1e1c9b3c3625ee748c191a2deba2e2cc43cf81e63345cb5e54ce5dbb55d8c7b4d77a7c62ca64dbea4797663323a5a4de458bdd4d3179ded3ab7c7fa02ef94b169b149d7ec694deae457b4175dcd87a5c576ede71e3a73d5dabbc2f97557ac55af9fb11bb86f77fa5f3c4776be4b73a11a20ac07a78c5d908992db7d92a838c2e46dacd924f26eec954a5e6558ab48f33222bcaf5253c84c2d34e5560f6bf430ce4000000000000000000003a34f72ceabf51a2afcbdde8a8c8b556b990819c8fe249177ed5ca5b5dae9bbae60751e85a34d8c3f3df375bf2e4c57cc35eef51f1b92cc6557eb20f632431fa1a43e565e5d0de8c096caf3fe879a4eee177e3bef62b67c2eb7cff00458bb6cf697d1f19571f9484a5e9727222a5ea7a185b925996391834ec5090f46d7985469ccecbd67e2ceffdaf95e5f00ed7c1f1e4e1c50e61ee56566e4c24975bb12319bc95f95cde91e3cedebd4b9cabca99bd4556b18a54d51c546a7b8f25bdd1851e8bd580000000000000000000000e87cf32ba91f61928597faa5258db65b97bf39a65ec74f487f36782e349897eddee7ef569bb8c7498e7abf66d63cef7c57e97833dba137cd73c1d9f9135cdab5efac57c5af3673cbfb48495c97cd7e83e53579c2edc75fbdb1cb435ca7e879dbbe6be4a77de0315ff0021acebcc4b6f7cba567e5fdb7b7fc67876b85f4a70fd57cabdebd5e05fa5e9756c4db75c9f97b5476b9b1c7f2188f73b0f3e4ecdec3b534fb061c564e76a6e65ed1a471b3db566c9368f66522a973bdf482b79e55eb1e548dce62f98e4e37a5f5e166e0000000000000000000000006d5d2f85746f7b57a76e3cd6627c4fc3c9c0e71bfeaf6e6bcccfa56f3aace5fd2175aea9aa7435e3d81bce8bda8a7b77d1f23d243f54e95c9257e31f43899eccfa13c97a7d02466b9d6fc8c0d2e8b153bf5dea7c8af57d4795e6ef0f57d3755d5731c9ea7731f31625bcfc99b930cd8b2b38d6762ae312cde0c759c36b908dcd8ef5d55e55ef69b6372d52d79cdba3a89ea5f02d3f0f758a9a3d7e46ff00a5fe91cf67b48faa6b1ac614f62e6394f9e1a4635dde592e578d63d07a80bbd1000000000000000000000000015523a6ed9c23a1fd169efd463dff005f06549e0e4f1e4c4c8b345bd76343e5f9e961393761e3d7b5a247569fe2763a0e6e853bf1ff00b5cf7b4d50def69c5c1ce92b5c1646d1cc75ae25d1ed79feeb6fe74e71d1f11d8b8b624d55f418f973187ad9ca8bd729da1ccc579893df016ae799d7629185ea91dbd1abebda8ef5b4dc6cab5174759df75d95adf2f93879bc3a5f2f87f2559db0a46e578d71ac67624f656f22d16ad61739b36e6f493bfea0269c00000000000000000000000000000365e89c59e8a1fa2b2be7fd9fd145d8a3f4fcce9c7b3d5af61f435bfa0664351daeef105b0fc8fe9f5554fbc1f4397133146f535a92be8ba397abf45e77a4d6f13dc2b3c4c8cbc49292a48cfc646e24c981a81e1917738b4eb19f3f2b89fb251715ddfbea8e1bf4fdef2da945eff19678bf24e0ccc379afb7798b9789a72e7fdb1721fcd97acd56e1ad72e47e4e9a576a9d427b3b9e8da645767bd7ec1d6ee8672000000000000000000000000000000000000001d1e6a226783f57f445d0b8a19d5ae6c91bbd58bf306f494f13cb5724a7952713218df363bda7597df2437d92af326e3a76b23ba70afb467e5e5e3eef8bd1f1dc27e6dfb2fe34a3ea37efb7bf3a3adc57bec0e7dcbb9ab6b1e3ce57bf5357873ebbee99daf8b744f79d31e7b728a824b3dfb059b619c8000000000000000000000000000000000000000007469ed4f6ce17d51ed1ec5d0abd7b8dd6ee666d06a517f46f15ea783d42abd62bf66fe462646b2e4deb3d271276a9ddbfdebfcef9ff00cd9f617ce9075b8d7d63f2748d2f4dfa11e7ce90f7bcac9fce3936a87ab4ec16743d3da7cf7ca7e94053550c6bfccfb0f20ebfcee91d1f1a00000000000000000000000000000000000000000000006c9d0792f5ae57bfa55297a4c8b59746f5f1ef5a6963a041e548f7be4dc37065b0287adb39f1f271ddbbd63956e7a4ff006e55f3b74aeaf83dd7e27dcf8a55ee9e2a77803c0f7ca32de987934bd2d6f3dd65f28aace71739375be7577cceae3b5f3200000000000000000000000000000000000000000000002aebdc7fa7d3f4930ae9e47d0aed3458b3c5c8f7371abf5eecf6b5aa5bf3f459abd92945ca60674777dd835ec7c49b8e1ebd676af72edbaf5b1ef8f7593c7a3c78614d546712f3da5ef115e558f7f4b2b17ad696ebd2f75d627e4f3a1ddf9500000000000000000000000000000000000000000000000dd34b938ee75db176df07eb1e5bbb4e63df698f96ec7cdf43d7b6cd7b97efa13df2ab5e7f12b918bd2cdec7cbaa3b3837b2aac2cfb79a4d6aaad8cd36efda6b47977dcb1ed65e1ef1d33faf48e77d96ff004d9e9b9dc568db354e7fadb509390d678fcc476fe5e000000000000000000000000000000000000000000000001d733b51dbf83f587af62bd21b66893b7fc953ab6c507075b56b945e9f8fb5697baeb1acd45db9454ec514fb7718b74e5dac6d8deafed1def24ac2dc65a96e973f178d6276be3d3d68deefc2feb49a86fd6f6fb577ca726f987ebff8f391f42c883dab49afd9d4c77fe4800000000000000000000000000000000000000000000000137d4b89760e67b7929bb1b6c76f9dfb231f57bfe535dbc49aa5db155ef253b67132239efe1db57ede3dec762be559a33d88eb9d035d9a847d8c445d1fa47a24bcbf77e65a3718fa578beb6be67fa0b8ee6f0fea5f7579f1f43dff0025b9f35a25f97eeed721ddf9cf4bc5d23a9e0c000000000000000000000000000000000000000000000001bbe91950f43b96d7a7ec1cdf6d7a0368d5731d319916a8fa981c09b8ae8f8ebd971d9da661733072a2bb53c476333ea3e35f5774bc8e9d19d1636f79df8d20fac6a1c2fab7d51d0fe27eb577cbf79f983dd360eb6af81b2c573bd8dec1ae8ce9277e9d0a4ad1513ef9e83e3a1bc000000000000000000000000000000000000000000000000006f7d1780f62e47d0f6c8fb7e53f455d5896a3b98713b05ab5c3d7a9dce2e7e569f564c3631354dfcd8ba5b6fda7f01f71b9c2fa2e334fe47bf3f5b8c381f5cc4a323037af2be5aab4b34e267626d144466369fd1f1b37add0eaf8209290000000000000000000000000000000000000000000000000003aaf2ae97cc9b74f362c3f3ff4a8faae48dcf431945fb6cd7911d5cdcdd5346de345b7c09b93d5645bccca51374bd555579e56e955e53eb2c0ceb5b53a6fe7741e6f97d73649fb7caf23f206b3be687f45e105cd400000000000000000000000000000000000000000000000000006ff00a06ebcfdbaa6d5cd76cf136a623e62333dec5c3b15f5bd7d56aab96ee691a96d5aff0043ca6064534e61ca9bd733e29363af176fa18d7765de6e712088dd79d6c973ce336760f97891b98b97c197e63e71d3b98fd5a8874b400000000000000000000000000000000000000000000000000001b66a7b055cf4f979792f0f661ed4be1c3985b37a1ec6332d62513ef9317969e5c2bb7d98ee487bb54f06b8dda2b7c456cfcf25b8d24b4eeb937067abe9b2b816f58f90c0a3cecdc079a6f9a1fd3a9074350000000000000000000000000000000000000000000000000000176d30fadf64e7fd37e796f578dcfb442d9dd6bf4f0738d77adf3ea9b412f51476b7e55e65b0740e47b05dd7a36bf15812e35fc79fbfc8923b6a8c92a5b6c7b668bbe4b8c7d5f73d360dbe65d6367d63e81502ce000000000000000000000000000000000000000000000000000000379fa7fe27fa5bcc4db1dccbf7c9cf231f6a2af6b8b0d97667c62db97918d019fb6667a9874bc7df203832c4d797e7224c6b977d628a2e51b2a9dd6aee5b2c4e1c5ecf9cb18fa4530c8000000000000000000000000000000000000000000000000000001b2eb48df64d3c7bb17cd6e62634a62d2da2e2e6706de2c4879976f590cad7d3624e328b55f376e63e74b8f32b3f2fd0c50d19b2eb3c692d635fa39fbdbe43b9f12f470da1e9e1000000000000000000000000000000000000000000000000000000000c9fa8be54d839127d558f1f21f3cb545fa657a9a6164e5627a3861e3b3b0fcbcf6bdb88f34d7e7994bdc845cd72e36eda62ceb507cafafa5dc03d4c01b0000000000000000000000000000000000000000000000000000000000093eb9c41cfdbec3c8f91f7af2d3fd0185ccf2a8edb9dbd4b0776f7e685adcd8ec1e70d81bbafd1daaf04a2fe9d479f47bada05cd4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffc40032100001040201030303030402020300000002000103040511120610131420212231600730501523324016332434357090ffda0008010100010502ff00ee4f4d2ec68ce69b1765d7f47b5a2c6d9067ad2b310b8fe36358c9474db941000bad2015f66374e8c06469b1d1934b4658bfde66db8d790d0519e45fd12e6ca859017171fe52be3ca5186a08a870f24a9f0251b156f1268d3b6979348a5da77edada36d2936a58f922171ff6a184a7283162a3a62286a6d47534a18f8b0ab38e83230dae8aad2bdcc55aa127f1f0c2539d6a410b047ccb0984f3bc1838abc798920846d4cc47e564669dddd37716532e3b5342a40443c5ff00d611737ab86d20a4c2c359990c08604d132105ad287685d70172ca74641236471b3e2ec7f1956af99e3008d0b285f81e2f30359aef546c6f654a7792c7c8d9f9697685f7df926747f2b49c7934d029634eda7ff528634efbd4a215a318d78d30f6674ce85d548bcae18afa26aef1391697954f0437a2cf74bc98d7fe2aae3db8ebb33a725e42446ee8cf48cd73d21990d84361348ce874b69fb9372696153c1f1fe9e3b024682261661ed142f2a6c6bea5afe35b4c4849519bc7362a509a3cbd06656be8367f98d11f16ea1c37a59bf8708ca42ab486bfbb86d18e9a5745df92127dc65a5ea1467cbb0839bb63a6d4911469db68e356e1f117fa10c2760e9e12085985337611e4588c5f35363580325598548da223e282cfc84cb1398784ace5c658af4ec5246ec85d9949f28e0e4f9fc03e3ff8686379a4af5c6b87766dae09856f4d348a474ebeeb83a18dc9c61e2ce5da1241f52c0613ce87a6c7c7d4183f4e89b8bbb6d4b173121702fdead564b5250a034c75db7da9ff00df8311e378599b304ccf6256679a75e57dc563e06d38a6ca9e8af72515bda80f9260da31d2b910d9832f8d2c65afe0e288a63ab59abc7dd932725c9712913616795ade2ce04103bbc5513d443598558f8ee0fa7c67d763a56a3387859756d6660bc3ab09d964a0d3feec15cecc98fa234e161f681f03c565fc637338c4194c97379ec6dddf7da174edf1b75cdd4523f2a24eb969a4916f6b27870ca559622825fe0b1f51e216044ddd9d725b546815b930fd26dc2ce32bd38ba86787c916b62c8e46152d9f890f93f7c7cde39ba43241c1e6061eafca03a99fcb23448e3d29e3630901e23fdb66727c2637d242c3ef1b0f129b266ed3d9737fbf7ae09e1db144e2fc5461fdcc5d2f235aa0e0130b838a89759e18f97f035a3f2cc2ec9df489fda72715d39918e1793ac638a0cc7561d9534a531d689dd48fe209a6722dfb40b8be1b365511f596e2bb962b842e994aa459187f73a7e9958b7c112d3a76d76224c48e6d296c239797b6b3a89b93495b6d2c5c5c7e1fa76d8a92b858af94a9e32dfcc66a4e13c36ab9d4b1fc0566d20b1a4d3ed7919725bed24ba5211128865140331227667841423c46f4ff00b109a17db28dd6d484894c1ce376717fdac355f494c476a0c73ca8b17c06d47e3452239114c8e42744efee8a4e2aad8faa21e63720d22fa5f1b6bc478ccc7f6b2b65a646df2c5a4d22eaea62507f015e2d42d5ddd0d7d26817a6f8281d91ed937d4a38c53943134d6f9a050a924e31cc7ccfde2fa78a45b4cfa5e44e7bececafc7c65fd9a15ded5b8db4d483c92e2e8338deacc23986e0f2cfa22976a8d37b45174ffd190c67894a1e33efaed58b5362a2f20652ab82b1f495693e6b592063b447d9d93329231963bb54a95aff007ebd5fa1abe9b5a4c81db460cea5aec8ab2900c53b3b3a075112b127d3ef18c8d156905a22d3c7f2daf612bf1f38ff0067a74395f1658f2e1362ac0f1ca58060ce5a67233d9c40e65d378a1d4948423cdc0dac80ea4400f2163f02f20d9c1f8c6e55f13c1ff6f4f45c87318f630ca527028cb815693b332715c7b75653f257ff007e87cd5d6dbd01c8a5ac712675a72442fa315c76a6aa8e3e2e2e80d4a5bf7042e4a0c73cc784e95f20643a4b50e671ef4a48255cbe392dae4beea683c913b69ff63a69ff00f20097978153cbf05772de41bf2bc84c1f3037197a72c070b328bc5d4168595d979cbb5d3b4bd44d8cc58857c9556e39a8599e01dcfd35f036b44198aac4ad41c0ea48a22d8b3aa80d213633616e9bc0f2c632c76ea9d2b1fef626467a5117d58e6026bb8f131b757c278da63235dc43305baaf13d3c6f9dece09e30b94dc1fc2fc8e3e0cefed887915781b581a8324d88a22104d558a3eb3aa20f19f17693e1cd79503ed4428b5c676d4ffb1d3e5aba048d73767e5b69c130e9cdbe3159a7aea4ea6dc593caf9dddf6eba4a5112a320955cbc82019db0ce548794f8697c4076f935d3636bb5f6b878e4ad276a5378e5c648134797c7b6ad45e33eadada2ff007b0528b0b16953b9c541739b5f8d9d52b5e278ed34c393acceb1d2b42432c73c797c7327afc4a4876a68b5edadf787fc7a7a768ec6225692ad995a283ae320252289f6bc7b670f984137c313ab3ff7fec54b0f56787e5b8edbc49a353448e3d29117df93fb31b71e9cf47a9f88653a81e456ac3ce741b4f4e7d3797e89e7f994f929436a1f840fb658ac9bc4f6724d2c5902e679aa9eaf1dfef5395a0b480f8bd7b7a53dbe4c32e8eb5ad2b365881e6e12d4b8a736962ba1a974ad027f87ef19f1286c28af7864c4759fa71ccf5bbcb0e46f15d99561db8c5f49836e36ec4a6ffbbf67116dadd7675c931226db4c2a545f75aedaecd213273724cabbf154a4db9d86109ad33395c647676867f98664d26d312f567a33e6e42c633c7e19bfdec4daf515937c2dbbf61371453bbb48fb786c383faffa253f2169580d8ccda2f60cae2bcceeb6fdf5b507d29ec699a4e483ecad1f8e2fdae9fb651cccfd996d483b5252335354305f6f78a89405c14f73e2c5b7777989d47cc9431ba16d262764d2a6993cc9a6f99cda49bfdec75cf4761b44dec61e4a4896b49bb98edadc7af737708b920abf120f14ea141f6e5a595b1f4768e2399e1c0da9545d36ee9fa7e38c63c542ca0c3d4e058fa8bd152276c2541766d7b28d47b0f1e17fb795c5f06bb0f8cfddcfe63953d95358daff00278abed435f49875ecf94e6ead484357f80c358f354f647f738d88260d3b26eda572246dc4bd8cc981d4706d450696b4d28ed3c4a1816b8b4b2715204d7a68ba6a4750e0aa44abd6398a8742deb4c1d055e11b9d394ab85f8c02587e40abf312ac60f17367dadadaf2332e9d08e662aec30e6819872dfe7ec68ddd7851c7a4c4ecb9ba6672786b28a1e3d9930a76efc57504de2adfc050b4f56cf6e1d9be1049f137cad264ddac86c2c8e8bbe3a83dc931fd23ca2c974d7a7450784b69dd12664df09a0925418d615e95c1d88d90c8ceba4f3b8ec5c32f5ee3c1af75e94aaee5ad5e23f91ab61a27f3724efb50d1b1617f40bfab54ec545c96d7f57b18fb9d3bd7f16522ce5e676c81f293bc21b431368b42a676ec11f25057411f1eecb9277f665720f7ac7f0384ba56636fbc6db628dd7174df089714ec993276e4d7e0d3f7e8dc5b12ad41a38f398f12ab9987c53ebb34446a3a0e82b847dca42120998970174f13271b0c724a51304e4616724bd713ae98c54f9ebf8be89c763d18c75c32d9da75472f997c89228f9058ac50133b8bd5cc1da8ed06fbbba8a5d2f51f073a2772411727af53682ae98878fec66f20f521fe0ab593a92d6986c451baa90b48a7c6b70b159e378e0f2a2c5bb0cb1bc6fc769a1364ceaf47cc661e26cdb50c3f3d16e2cc3fe39e95a3a79a91a4b1c5451ec84599bd840c4b11d256f30f8fe80a9585f0b46a0e627a9542dcc3666b9776cefb5b543256719347d7d97269f3d72e212e488f487992fa99492f319a178d7d9e097d546703b398bb27edb7401b410ede9639cd4189766929346369b8fbee6421a236272b337f0784c935636552c7050db631bb0312accd1491bc724791a2ceaad7d491d0138ef63b839c1b6c856e2f047b401c56072af4e4abd5a2d0e77a88ed8c9ca53c6f4e5dc9bd3fd3b3012e90a900e62856a43cd3cc85fe1e4658cfd403a3566fd449cdaef555fb8af5eda966724ecb8ae3da382499e0c71448ad41033e41c9eb9b908ba76dae02436eb3d692bcbe097834832c08eba285042863d2807eac6388b3da161bb736a53e6fedbb763a315dba77a6fe170b9569a302d2827d22b3c82493ebaf61d9148d24723f03ad6dd98f538598389656ba093c72472726555a475f24b1875e3bb0f55e1e18ee75d5216c87574f694f24b39f89c9344ccde35e164154dd5813ac335c39138ed3b218c8d35395d478b98d34352b23be4ec44e4eff0029bef4fe636f8ef34632059aaf0ac658e61c392920470ae1aed0a8a728d15e91d14845eec9e5c6934f39d997f8612717c4e65adb09e934ce9df6a3274337d3216de23504da52fd6b2306e3b70f19427f1a1b5f152519615af66dbb08b99627a0649c6b74de3a80daf1c23d45d4d540423daf1ed45519d340310cb948c14d6649fda4a83fd04c87b3a76626707a36a16e4c61f1282f1af128e3d211440b5d9fb492842393cf736fe259dc5f159869d850fdc5971461a4c84f49a459093fb57cb7228a3d450b4d0bc5912db1b3f692761452917688f83c79bf45603f562f30ddfd4ccb586c866efe4de2075146eea1aaad64e3aca6b125a266d7b7ec9fe5b1a4b19d3a5607fa05761ca609eb022653c3ea21c4cfceb11271da78d30ae299912d7ce93ab97e2a4190cacb7dff008cc6e6a4a45572b56cb09a134edb626d3b3a7361590b7f13b737a95fcb60231064c854d5e40379a507a7e4b44740c95981e296210679a667919ddd032841440c037324f32e2def343f6e8cc77f51cb853d315453d3621bd07a6b9da0fec5deeff099fb12d277601c8f51844734f2583fe3eb64ed54683ab660287acab701ea2a33306629984d97aeadde12457878e2b5246dde3f953ff918b18e2ee044f213461349e69663d3321513287e15bb6f3bfb6288e7928744ec2c745d770cae366c65805fa5602791681140a581662469b29dac37d31c8d207625cbe45d58b11d68ef752c211dec94f903fe6713ff00c7b771271445c9d6463e32bdc9658d9485c8d90a894f37d3eee81c1b141e911d45d63896b1870fbf46e71b039d8e4194175767a3c4d2fbf776db4f7ace36e37545943d58dcbfe531bc45d486e32e6ee4af24f24cff00cde2beac7fbaf8728173d0264280b4b7da9509f212c7d13270c8f4cd9a21dba36b8ffc73d3a3aebaa8460c10fdd74ef56dfc555b3fa85909a39ec496a5f675043f3f80e14f950f718f36b18bb7523fba76d3b265cbb43114f361b011e2e9bd352d45d518cfe9b945fa61990b7874edb5fa9d9f8f88b69d634fe3dd998bc957f01e9f27f0a74deca9ff00b4d7ddc3378e1a16e41f84c87e7b742e3bd4e742b7c15752d75fa920216963f2363156e8feadb3459afd54b36a2924298fb513e161fdd683c9010f12fc03046e3713a6431f26d7688b84ab3157d4d24edc5d90b6900f33e9eb638cca36b4a506e3d63976cc66fde25c0d9f90fb75b6c845e2b5f805493c567b328dfe256f9ed426f2c2edb6983c734cc9beea07d4cceba77af7d046fd758568fabff50e5c98fec12a07e5acefddfecddb3b1f19ff00006771780fcf076074526dfb4133c06397aaf1ca7e4949b6cdf7ed0db63053d8189b7ccff61d6325e1297c38bfb197508fe05d3d2b4b41db4fd9bef0539acb1038129c78cfda56d1f6dfcf98d3bed0b6bd9af6ba02e06cfe7899f5dc937cace8ee0fc07a66df09e66fabb6962ec157af9610ba0af8ea5ed61be03fc53ad2105a5a5a5a5a45f0b4b4b48bb50b5e34c43221f9644c85d66bff005ff01c6cfe9ef99727ef8e3dc4acc5e29b223f43762a8670c3f23a5c1715a5af69326ee6b6a8c2766ce33a523aa078789c72f8af4088d10e9653fc7f02a537a8a9de94de2956487ebbadb85937df5f0c1e3b0c2b4b4b4b8ad7666da08d144b8ebb13fc71dbafd38c434ccd511d559fa0d2e3064215ea496489f5f8174f58e517b2aded35db0d31596fed7d9f4a07f241783c77b827f85b4cdd8bb46a36f89155a92df9eaf46c42177a361902ed49684c47b5fa5e23274ff859140ba9e41a387fbaaf578b66a6e47f81622d7a6b8a28de53b5859eac5de61fec17dc3e5a94bc0b3317f685988246ecceb9277ec05a432e94b22e8fc1b56c6fa352545d7d8d61ab5ebf98fa2f350606c09318c920c41d7dd49fd5ac54afb56e4f0c17a4e72fe078eb3eaaad5061986c18b5d87c737690bff1a66d482fda79de4a94e6dd632edb5b54e84f90903a365e390c0d9c78ed37d4f8cacde8bd3a92bafd460d626031ac3ea6395aa750dfa11647a8b257da19ce526d8acc5cf822727fc0fa6a76e71fd062fb6b31b1878c5e49dda2197e20b208546eb4a12f14bbef56b1dcb18ac1478eaaf4d58a2c639ba1fd3722cdc9743e6432b85521080754661b2d7ed3b7976abc9138d91613a11686e596af1deb0e67f8256b075278a509e3a92ed8db60e3f320ba9bfc4fe51c7a76519ed5bfeddaeffa7f59ac7500d6f82aca5aebace93499b1a2cca85a9b0b660fd47b3e3cbf545ccbb13a96b01a9aaf06ac02724d1b0ca538d4832175d7dff06e99bac2e25c5fd5bb8691eb50c0d2c76ab3c49d6bb5d7d9573e43dba0ee352ea4d2d2ba71d583256defde53288b4fd89b69ddd94903a79783dbc8edc8dcdff0612702c4dc7bd476bcaca4179998258822825b0bd36a46a719358a5e25918b8c719f028a092c26a91409ecbae9afd47f0407d798a68f3fd533e6dfb4adb1fb267e4da5a56240886f65b829ed14df85748f12ab3c442410b0ad271765c886311110066528f10ce46c35954bc7182fba82142da6f618f1785d0bf90ea74cd9b29b014a8b752d46a39cfc2ba5dfc708719466a8f1a1fbb331338f07d693277775d40fff008e9be157b3c15701918078adadf6d27760668e6b6ab619f950863acde6465c975bc0307517e158191fd2d5b1b509b1b4b45897078de664ecb5db2e5e590a3d2fb273676199c24feaf2090e6a25fd661516424b44183c9ca38cc4d2aee528945e1faa3f843f3dbafe330ea1fc2b004ef1452717ab610cff001624da39c99c66675cc59d859d5eac5099b2765a4c2eea3a33ccabf4fc922a982a30aa9622ac366c3cac53bc458c95e677abf12b78e48c932fd438bc79efc2ba77eab035ddd431383348ec8cb6893ba775b66464c48a9c2efe8a04d5e1140fc109484dc645e530786cede23621b41b2c37c1beb8dff828cd01afd40b052e7bf0ac09f0cac5590d5455f4a4894df09cdd727f755afcd4543e0293ab94f8b485e292bddd27979bd13e07eab6d607c89e3e09a4d2eb6363ea1fc2a290a1930cc56e9bc1c54eda721da38369a93129b1ccc881c0bd98e974abccdc7d530abd719dac97291b6a090956251caea08f9c7660d0bfc3f536bfaefe17fa6b91f5b8fb65a7b0fb789b920aece9ab833db8435763fab82e2b4b48798bc16e415eadc9a4d9af4c9ab21afa51b69464a94ade29cd9c64ff003ea532933bf85f45e53fa4f50dc2faa46e4a11d381b32b122b16113791de05e976869a0a6ce9e832f49c5dabaf0b2e0c98596bb0baaf678095ae4a59c628ec98c963f0ce94ccbe631bc57f8a23533393490edd878a16da8419470b218019e5005337cfb1fb7d9f9ae6b2d686ae1ff0dc0664b077a29c2c444e9f69d48c8fe1c1d467c5e29d93caca495116d6d33261401b470a20d390a74c4bab725ea2cfe1dd0d971765a462a404516d4702f0271e2b6b7de2f9402ca360653b8a98be7922f959eca7f4c82490a693f0ead664a93e1733066aa224c1c97a567415348a0d35814fdb4b484b8bc761914cca59368fe57d96673418c82f5b2bd6bf10c366a7c2d8c56561cb552fb87dc3eceda52c8fa98f7fb1a52ca104791eb18e3566cc9727fc4b1d919f176b0fd6b14e0c98dd93caea437745edda2904066eaac744577ad5c8e5c85a9c3f16ad92b749e1ebcb8317fcfea78e2eb5c74aff00f2dc6139f5951647d67480a5eb89dded7575d9cace6af5b444e65ffed8ff00ffc4003d110001030204030604040404070000000001000203041105122131101341061420225051324061b1233071a1334291f0151624345262728081c1e1ffda0008010301013f01f5e240dd3a6017783ecb9ce5cf284c3aa041dbf3c9037466886ee0839aed8fccec9d2f46a0c2ed4a7b40e21aac9aeb26baff00992cec84799495ae7fc3a27484f54fd538b987337754d8c4f0e927982a6af82aff008675f6ebf2ce706ee9cf2fe19ca1aa2c56e17e0d726bb37e55557867922dd3dee71b94ccce1e545ae0754ed06aa9e364c2c54f46637a7b397a858662666fc19f7e87dfe51efc889277e16e0df0109b1dd38654c7e53f904868b95575ce90e58f409a0754eb1365491343157583bcab217ee9a0c2fb853cc6409f7ea83b5d161958e999cb94f9be49eeca11b9d780574d8fdd1d3c0533652ebc2275c5bc75b5265772dbb04e6d95d0dd32b0b5b9423779b9e0e1c1f173765c8e53bccb98e87cccdd5254b6aa1120fecfc8c86e51e2d1645eaf7f0dc857e0d394f8b10a8e445a6e546e321b052d3c8d172a360ea8b3314d65b89e0d7f29d7553cb959991d45961137226319d9df2278857e03c247823376f871792f2867b2c35adcd72aa4b72d964b2a7a7045caa988336e0d81c45d3865d13911982b906c9c2c55faaa3a8ef3087f5f90eab22b5f4562d56ba22de160ba70447187dbc389479a72999a1d90a973ceab3282701aa793985462ee4db06aa8233294d828e5f7528ea131de61752d2874799ab0a98c53728f5f909058dd31fee89b146ce09853878586c9ce478c1bf8714668d90279b85184ddd05757b2ef0eb5913752eba042072e5bc0d51690a2aa2c6e529b296c824081bea3f3dedcc38dd0d15efe3278c42c1005c6c1458357cdab623ff9d3ee99d9dac3f1587f7f44dec9d465bba468feaaa7b23513c45b148d72acc0313a13f8d09fbfd96ad3aaa681d31ba92131f832a1105a354925f6595b6d53e31d1362cc6c80b69f21236c7f24b4aba2500a8b01acadd436cdf72a93b39490ff00b8bbbf61fb290330f80ba8e1b9f60a6abc6ea0d83720586d15546d32554a5d7e89c79b1e5b26e1c2239f36509b5b4d7e5b6504feab10c330fc45b967841faf5feaaa7051417301bb3f75552b5da0e207073c353e42e4d013b85045cc96fd07c8bdb9820b22d50f034ea8eca3a692a1d9626dcac3fb272cfe6a97651f4dd51e0b4545fc366bee5594d27756991eeb354fda5a36e8c6977ecb0dc49d5cd27965a3dcaacc40b7f0e32856cd948075526175b54733e5cca8b09a6a1b4d2eae51b9b2ebd154d364d59b2c7f09eecfef707c2771ec86a805b2be6d02ee65c2e53e20c57574d6b9e6cd54b00a78f2f5f92959fcc131fd0a75815a10989e2cb75b1583f679f58c135568de81565f0b688a8a0bfd931b8f55ff00c83fa7ff00552b6be38f94e7171f729b054b0e6bdcaa8c3fbe0b556c9b4386d2eac6027faaa8aa7c9a0d022dbae5a60c86e139eecdaa9dee89cdcba28a5cec0557411bb342762ab699f4552e81dd3ec84964e7dd326c86e9f5ae76c9cf2ee11c6e95d958a9691b4fa9d5df292476d5bc05c2bd917dc20b0ca2ef73f9b60a0aa6e401da26398fd5a6e9f335ba26cfaecb16acabd194247d4a761f573bb35449fbdd51534548db052381fd10713b713aaac9a18e95b2c8561f8dd349680dc1faaaf61b87aed7511e4c75adfd0a0f2b3942ee4c1ee9c47454f48f9cdfa2861640dcacf967461cb94e08b0ab1401581537269f39ddca56e7610a9ae0a0f6b5c03ceea7823eaaa4b5a796c1c77e1b276274cd765ba63c3ce66ecb1595cf9f21d9bc221cc81bccf60b16a06d661f2530f6d10664d1c9fbad428a29a6f802a6c3037cd36bf44001a0f9ca11fe9e3ffa47db8582ab66788aa5abfe590a2ecc7314384d550c1a48e514cc98668cdd62b2164161d7861249611f555585bab9d9a23e6541d9e90481f55b0e9c718a08a3ac782dfaa387537fc3fb94ca4819b35016dbe7b0d7f328e33f4fb68afadb84cec91b9e7a2a6ab131ca7429a784afe5c6e7fb2738bce676eb0a796d4651d555d3f798b22186d49765b2a7a76d3c618140ec9283c4aed245695927bfa0e012e6a731fb1fbab6a992de42d29ed0f6969ea9ec7d24d94eed4d2988b43da5a7aa968a689f96d7586d1987f164dfc1b2130e5730a6b83c5c271b15da1873d267f6f41c0e731cc59efc26bc7502dd507b5c6c0ac5a8a39b2c8775b2893cd82ba60b0f0151b8be9dccf6540fbddaaa9d923cc156bbbcd049efe83472f26763d3764f682a49a4a2ae73c6f753913d3676febc213aa73332115b756564ed9593f40a9e611bb31d9371ca6a798e4692107c75f4dcc84dc14d6bb952b0fa150cfde2999270c670d74c79f08b9eaa8637b685ac937b2b26795e15acad745a80b94e8c06aa9ac8697479d5475b154fc0abdc5b01038766b3f25fed758b3b914ce73bafa1767aa3307539fd47fed62788cb433b58068a195b3b048cd8af759ace21145e1cc050364f94345dc5475d4f23b2b5daa74848b29a432c85ee5401c6a58d66e50c3217d398a5dcaff2c4c1fac832aa1a58a9630c8c681769ab448e10b7d0a82abb9d4b26e837fd17686939f0b6a63d6df65d9c9dae89d13fa153e80953b2cecc146ee8544ed32f0c62625e22e9c282964a8a7648f3b858860733273c8d41584609242ee6c9bfd93e27353b56aafaf65041941d54f33a790bdde87805789a3ee526e36fd3dbfbe8a1a4a5a73e46d9171276d154d337e31a0429f3fc250cd0c96720d73f61a2c530e7cc44b0ea7aaa1c0aaaaa41cc6e56f5253182368637609fe57dd66f652683313655f8d4507962d4aa9ab96a9d779f4485ee8de1ed3a8586e2acaaf24da3fee9ceb3ac9cd0f6dca10c6d398055a7f1953565bf0e554f0dfccb3376babaaa9a285b9a57594fda3631b9606dcfd554d7d4d59bcae4edfd15bba0553e2f34360ff305498bd2cc329758fd5492306b752de4797159509e4885b3582ff14e56a0dd4d8e55cba35d65248f90e679ba69e0ff0088fa28dfc0d95ecf84aef539fe646690eee45c8395f80d1029df11f461a8e04a1c48ba0d564139351dfd1a33d15916ab5b85d375f0ede8fb269b8f0655b2bacc5037e0f3d3d218ecbc1c802871caac8bfdbd2838b50902ccd5982ce17302e622e27fec43ffc400391100010302040403050801040300000000010002030411051221311013224132505106142040d12330334261718191a1157280b1c1e1f0ffda0008010201013f01f3e869e5a976589b7549ecc54d47e23837fca6fb214c3c729ff0a4f65e85ba073bfb1f447d93a722e2423fa553ecc4ecb981e1dfe0fd14d04b4eec92b6c7efc90374658c6ee41c0edf32c63a5706305c9587fb3ad60e6571fe3eaaab13828dbcb845bf6586574b2baee1a22f73b64d1adca9aac30d9365e66cab6844a3a85d57503a94e61e1fbc9256c43a93ea9cef0e89cfba72712d399aa0c4e68b47f5050564351e03afa7cb5150cd5f272e11f4587e1d0e1cce91777aa7e791d65fe990976672a89194ccb3028310be8e4da86386e9ec648991868d16555944d91a4762abe89d4725bb1dbeeaa2b037a63dd39c49b94dcce1a221c0a768140c6ca2c54b4a58e4e6e4d42a0c40c9f652efebf2985e14fc45d73a306e7e8a9e9e2a5672e2161c1d2b1a8485cefd155c99cdb8465fd936578eea9a4ced5598e329a4c81525536ae3cc16298736b212d1bf644169b1f8c9005caa8ab2f3666c9a11d4d95346d0d55760ed165cdba6831bae14d21784fbf740aa0a932b7249bfc9619446ba70c3e1eea1e5c2d10c6341c250e3b2e5068ccf5598c323e889412ba717726b02b01c2090b6ed588b1e273758139d132ce59c15ed051f267e7b3677fdfc7553991d91bb22db2ba0995240b047a8dcf0770747ccd972b967559dd17531534e2a230f1f2383c6628330fcca08edd4e59c14f7860b955b399c646aa7c2b3393e99b4e2df0036374ca582a7a9c13e95ad1d0afd96214a2ae99d19fe3f7445b43f0d6cdca8f4ee984bce8a485e05d31a3ba2db941b6e27835dcb3753e491b74750b0d97932643b3be46189b1b1acf456d1465d9ac54f258d9ca386376a9b66e81543b349f0d34f95d64d3982e58ba2c58dd37bbd63bd1dafc3893ef206aa10dba9ed956550422d72a78f2f010b88ba22c8a3a857b1b222caea9a6e7c41ff0020db985920f40998b81272dea5a98e26734a33c758cbb10a910bad754f52254ffc43c5adbac567745d2d587d53f3d8aa5a8cc2c5660bb2f6963be497f8f86b9979936f16c84ee71d566514a0354afce983a90b00a6f1290e89922907709875d5494e0b333561d272e5e59eff0021815409a9794efcab12c3339e644a0a5927a6c8f54cc9a927c9d96270b9afe63561d339c8756bc5af016274c67ea6aa0a2746733d4370fd130e6d131a0357b58472a303d7e1af6ecf09c6e1461350e17b2e73ad644a935d1729cb238044151d4168ca50932bc3c21aebf7f8555fba5482e3d274283504f8987a88550c6c9a151c2d8bc2986dc0aba6ea106176ca9e980d4a6b407279b3345ed0d489aa4463f2ff00e56c8d444dee8d5c7d97bfb3b052d532461639aacaf650446437524593e0ca84616813df7595bdd3a31d9363b9b2dbe4305acf7aa6ca776e9f45b276c88bbac9e32bb834f070cba954f55149272d182c06450c391b72a790df455ded152d0332976677a0553884b3c864f542f2bad2393594ccfd54d230e8c6af09bae6e6d2cb96fdc8593d55316b058aa8901d07103839d64e7dd342770a48f3c97f4f91c36b4d0ce1ff0097ba97ae30f66c86231b4f2dc98d8c0e629df1c87a166ca8390d557c0f14f995397098109b89b29e10e99d655dedb4510cb4accc7d4ecab71baeaf3f68fd3d069c1a33e81368e43b9534222eea38afa95cb6dd09e3668059493be5e91b22084c7df74f6907304100b657be817bb122e53a3caafc034b8d8282110b2ddfe4b00c505bdca73fedfa7d162f8638fda46a879b35398de87369aa32bb6588b646012316172b2a4653ba686c32752e5c7531e5ecb18ada6c3e731526ae1b9f45cd7d63b3cef47dd63fd53f944dc2ccc2992f2fc08cb33f729ad01665991d559345c6a88b14dea6ea8ddaeb20fb22fba6cb90a7d5128b89e0c63a4395aa9e9843af7f94c231a1503ddaacf5763ebffbff00bfdf76c6d66c14f1c32c9d41490472c79145869a6973314e40d5cb10c664a2a7223d09d027b09374411ba0d256550363de55cf8dbe00a47ba43aa03e18dae2fb052d33c75288f6551ea1071598add307aa2428299d37eca389b10b37e5a8b1ca9a36e43d4dfd5331da3947582d3fdfff007f4a9f11a57e8240b9d09d43c7f6aa24a6683cc78fed63552d9ea4b587a5a81b14f56d344d714c17d4fc5c97a22ca00036fc0e8e3647ab74d6db74edd6ca38e497c0141401bd52ea80b6df39278cf18cd9c9ecf456b716b1ced91696eea0177709f74c9b943552d58b599c628e39580b82f7183d1369a16ecd5b7cf4c2d21e2d17364f8f2f168b9b202da29c74a8df90dd73989efce6e9c2e3e0a377491e4354db3afc0b74ba06c6e810f6a28ad8dd364690a6933683e1cbad96dc291d67dbc86a5b76df83756ab150485ba70721c0fc2747dd4a3ba60b9518c928f219066691c0141a248c04de97db8395ec8bd6657415d3754e6dc2f767bdba956313ece5f981f2295b91e470a79837a5ca5239970ae8ea38df804d89d26c84259ba60bbf8565b3050753ec3c8aadb6b3d430895a4a734b4d8f022e102ad63c036fb2313da2e4209a328b29080d24a33bb3e60bdf5b6db552bcbcdcaa38ac331f22959cc616aa47e57642ab1a736609a9a74b27b7ba70efc295ba66e123db1b880a2aa696f52a8a90e19420e057750c46575d35b945bc8eae2ca79813a47bf7e0c7f659adba2330d165b6ea0903742a5aa630686e513737286a380f4515397eae4c6066de49887e028ea03ba4a01036598a8fc28b7d13dfd958f00a7ad8e3db55356ba46900aa3767a68ddfa0f25ae17854d1f70a0ab923e976a10998e4dd7643416e0ec8357296aa067eaa4af75ed1b6c993195a1a555c39023a2c38de8e2fdbc96a85e17232665a26b2e9ad2dd8a0f78ee8bddeaa2a6e6ea54b439429204d3cb7053fdb37452c56365878cb4910fd0792eea78cc12b98531a1e5414cccaaa2311ecafc21a9e5296b83859194294872a376a41556066b854df80cfd87936314fa09c7f2b9a46ca1ae7b549506551bb33aca3a7616aac6f2ce8b31574d17562c7688b4cae0d40585bc9a463656963b62aae98d2ca632815182ed908decd6cbdf1e3445e653d4991b49b28e8e22d553072cf4a37eeb0ba624f39dfc79462345ef71f4f882735d1b8b5dbaa291ac3d4a49e073148466d15d0714caa7b519cbd5261cf91d9e61609a034651e5353430d58eb1afaa9704a867e19bff85ee558ddd850a3a93f90a661d52ffca9983cc7c44051e0d18fc475d43490c1e06ffc10ffc4003f1000010203040607060406030101000000010002031121101231510420223041611323324252607140508191b1f0143362a105247282c1e14353d17090ffda0008010100063f02ff00ec92e89f3fe954847e345d8fdc29f47f0bc112611a29986471aaa823d7cb784bd5554c31a0e72d7939a1c39a177608585f1fa7dbe8c284a19ae744d943bd3c9c1173b478a00a92585544b8d7de9789ba3eabab629c94e5bbae39aafb549a1031093c82d8601aa61c660764ee2df45d43dd0bd6b2c7e7c0704d6468575e4175d0e0e32ce9ef0bad409179f9a92145b520881bcafb449a0b8e410744abbc3c10a6e43a42f0a4d07e864c123187dabdf338fdd17431c00ec448ce633f76ccd1a382935a1b6042aa57d1afb8cc8dc60e2800d17a4017018ee6606a7451e1b62b3272e9747bf1f469578b99ebcb9fbaef4518f77571553ee36c4d228cff00af8a9012032d49ea8b0908ea44d220868807b83bbee89344cabd39bbd8a404d4e4b685b3181f61b90da5eee4a1b9c0ba28919cf8ea0010a2c11d5133afd3c107a0388f07b99ac1c5506d115de61ae28b04ea295841441a11bfbb0db3e7c02201267c380d56a6d851d4a2c759d0a209b1c8b2a611ab1e78fb92eb7152e271dc5029c9555770d0536c253ad1107a1df5c86dbce418daf1279eb029b558a35d496a0d588d0d636391b311cdc13e1bc49ec3748e7ee3bceed3b865b8025441ce6a3390443772d299557af0922d6944da5a7028b4e23780013278057dfdb898b72dc62b1dc84160ab69fe22c20b241b11b412e7cfefe1ee168226de3b917949b20886ba6a6ea9dd0aa95faa333aa220f8ef3a4ba0b19c5c38fb23415346d7c28826c78bae1c94482fed30cbdc25db9a192da79526e39d9352dfb8291a1ddb1bb533521c703c6cc161ad5dd8574a28dacd28025ed3709184befebee16f313dcd549b41ec97b3dd438633aa0820648d11d4eca3452d66a08db43aae63c4dae12214480ec5871cfdc0d12972d5c352bbcd913532ddc4f8b7753c86765536a8d51b00cd368b046d0d1895392c1609bea9b444847710f486b7f2e8e74f87b8209fd02ca2a8b6a2da6ec043654eea9cb5dcdcf7513d2c0562b146c61e69b5b0d6dbc7d10a2344534734d52475b0b1d0de26d709109f06276db97b7c39114a192084d12db02ecdb31455dd0f54289c3927d370ff005dc9c88dc4af497691acd4ec68e20ac51450435c584816418e063b2e33f97f9f6f88c96d4e73cfeffcdb22a7648a2a4a5208c957735cd0927927827069aee1febb96c413a70071dce3a80f02a57911791b029a3ac01b63325370179b49d47b7c379a006b6e3ad8eec38200bd4ba445c4ee1fea7741dc703bdc554eee62d2d70041a1054487e1716d7dbeee0e87b3f0dcca7ec8f3c409eedd07161ad06075a9bcc6cc563b888e680017120012fdbdbe67b0ea39022a0f1f6c10fc58db286c73ce4d134661b0e5e328f49165fd2109bdcf77c82ac2fdca6ce0368813a342a7e8087f2f0a9fa420e84d74278c1ed7198d69c91a7b2c620c8861a8f4f7086f187b38fb1e1b9d8639e277448511e92335b95d135561886739bcab9061de393420e89284d2bac885c51e1cca774756d996b8ba4195851f6410bbcf3970f70b1d7a4c9ed7a7b0f243657614b568b0a299a95b2aa2c947675b3ed2d9bce5d4419732bac7d3258c94899f3b7ab82f7fa053fc3b87aaeb61965a1fa3452c2d4347d28745a40c327232f6535ea9a7607b89cc88fbd11b9e56d372751b308001132aaa5b40b69506a5560a8bb3b2ab545d76415d01488a2106038018b89e01073d9f888be288b65ad6019511bd19ae3936aa4d1761d844e45570cd4c508421463378c0e7ec9d1b2f08913070e1ee31121991faa6c46998395b416cd48aa2ecd93b426208cf75386db90bc6ec10fc43dd18aeaf47604ebc193c93881761ab8cc2de97468ae84fcdaa474d7aebb4988ffee539cd52aa73b2eb997829c8ddb2bda1b8c161b99c4757c0314e8aeed3b2f7218515c7a377649346db236554b50d110752486d221a68a725d54237732a71e306f20aae738ad832765666ab64380ed15af0c129b5757a3359ea519c5e8db93519ba67352141abb0d2e538d103464a4d9b951a00449b4b5c26d2a58b78141ca638eb0437379e6bdd6e68bdd41c1b3a0f737451e275a302eef7fbd7a6a4d116ccba8aaa1bb4913820d64a50e2060ca4baa0f888884d10c22e79bc79aa95458d9b309c7d029c486f1fdaa43645b46cd761545c1995b47a677252860436f2532666d3a92709a9e2d5d19c46a61ab53ac58cda8d97018628c4886f3ce27dce083223884d851691fd3b5bcc6c691ad8d81ad1327804d89a6c4e89bff5b715b1a334bbc4fa947b2c013e14170d2221a53016f655e790c6f35282dbc7c456dbbe1bbba704d3dd437979eeba1747a29207189eea041911c426c38ce9469e27bdbac6c68152a6d98404467cada54ac6c993209916056230cc12b6b4380e39cca943e8607f4b668fe27498914653a6a5d85d644cf80537ba7b8210891a6d69c1aa5d10462429968c45a471e0a47b4da1dd92f70bf2a338952fcb85e007ebeedbb10ba2c1c2ecf04d2c8ad04d2eb8c8cf5e5601c1506a4d910adafdd600346255225df822c2f2e5b7323923d18bace13d4bcea008b21ecc3faee83089c366d39616104514685e175b2eec4faee49719018928b3460224a85cec3e1fbabf11e5eee7ef022146201ceabac810dedc9bb28749062b5dc43644227a4b9fd6394d5e1a443f8992a46867fb94ef897aacd3a27396a85228e8f1361d3a1cd173a80273f352cf56e8a431fbeb358c6973dd40020ed29fb5e062eacbd8ef59ae8a28f477036699e2e8c7d753497370be6dbc316d5070e3ad7e2bc31b9945ba34e23c8ed60029c576cf81bd9f7d42f8fd75c3b34d86f792d161d4b83e3aeed39edda71bacf4b62bfbf076c1b20c67fe4bf6227a26bd8439aea822c7436ba7a544126b72e7a9244b5e4b3c0e336a33870b96284f4690e327ff00a46701c227013a7cd194101dc0ce8bf36e0c9945d64473f8ed19fbf217c7ebaf3cac3afd1c065f3c792eb34801d935b345edeba18c6588b74097fd76e9cf761d19b58c85103e18ee44aabb0d90e09f1013462457988f38b9daad7f909a3c248d72dcd08917477b219c1c4535d909957bdc1a13213057bceccd982706894389b6db3f04e775fa39c336da3f85c175e776a291c395ae6eb9e5e428ada5d0e9f3d785ea8c38ac6c584ea39a57553e81f564f87253d5d1defc1b370f96a6863bd75d63349d16218515981080d334126278a13b1f8230b4081f8507fe4799bbe09cf7b8b9ee3324f1b7d75de11197904b67473709ebb1d91b1de266d0b25680b458a7b0d749de982a616138051624333830fab67a6e1a503ac538675f20c2764e1ab3b403da6a927b723253b5b63745d35ae8905b46c56f69aaf7e289fd221ba69da1e840e8fa39ed38f69dff009ba9711ae0f90410644714c8b295e1396a4adbc15fe90097778a7bfc467ab2ef5999533babbc0a96b34f90ae7186658fc7549870cbe59293848e46c70d7ed6f0141e3c90f807bf56fafdfd355b728ba6bb76334565deb01ced050f6091c14c6afcfc8501ff00aa584f565958e09a6d27d85b0a18bce720628e92271c94ba31f257c7e59fd949a27633c8709f3bc4b6a79f1d4e46c69d40a2339fb046d31c267b0db74804776769bde1f21c4824f64cc57efeceadd7fcd00dc0236b4a61f18ddf4505b79c5031897bb9608f424c37f09e09d0a2b64e0a4153b42219dba4c475366ed979c9d2e34f21b66fb90dd47656068c4ae93b6de5a8e36dd3814d883ba5039ee9919cdeb636d1f4b61e900541ba5068f8afc3c5373478bdec8a0e69983c422e7b835a3894347d1eba2c3ef788abc512a59791213dd8915f54082889cc1e051bbd936bbd751f0dc27440654d5b90597b33c02da8c01e415f22fc3f136c00a812c2e0fa5b0e1f17c45202aa4ea2bba369ae0cf09aafe63497446e5c14a53b25c1aa66a7c89120388aed342054d578293705218a60cd4ec958f66a43830c4def3209b0983d4e7616b9b307828b07ba2a3d2c84dbd3d2200b8f16173c86b4624a3d1fe443a37ff519597620973526ba615e5fa8a2d9faf9159159da6e69b121baf31d81574a2a8aa9ba9253f8ea36627721976a197804ec11b458861bfeab6f4584e7e6090ae3dc2141f032d98aa93e815d18213c72539ed9f23bb45762e379bfe5514acaa2ec4298ab751a7929656e8ce7761fd59394ed7c6886eb1a264a8d1cf7cd3705c1735437ca9b8ccf91c1064460426c4719c41b2e90b688c8d85aee1661319a6bb9a9ad814cd758fe91d905260b83926e8ffc498e89768d8ccc7e2af35f1221f0862b92e87470690c1c7d771b46a8b45397159372f25446feb52fdf50dd59b8e3682077ace88bb63777218311f9354e3bc68ecc855c85c877dfe27d56950439cfa875e74a64913e1ebe4b26b22ee2a454c545925246d863f55b27f654da6635a64c975101f1078e526aebe27f6314a1b036dd22eb8baf86b8ccce54f5fbf4f25fa388b24a6da1522a7a81bc1b6b69eaa7066cf8a01ec556382ecb95dd1f467c477241d18b3456658b95e883a7899c4aabad000e48ea3cb9ce21d0da5b7b80e5f19f92e2b692067ab2e164a6aae47bcd3c757661b8aeb223618f9a9bc18c7f52bb098d863f48dc34df73afc16ba4e3d9a914f9792e2b7f4e1b9c5779764fcd7e505b2c68f86a0dc163990c746c01ae69a918d6b9cfc970364baf1bb413df60b04662cc75e3c8ce4d683b2070fdfef2f25b2230c9ed37815062b800e7344e584f972d4c161648ee0ea8d4d32e96117bfe312187d7c9913467340768c40986c8169c3e38a3bb98d5c358ad2cb8106f4aad970f2668f11d1190a0bfab885e642e9e72ce48ea62b1b70582c3752b22458864c602e71e4a2b9a5ee697120c4ed1f5e7e4d9457dfd220c9aea1c3819ceb391f66d3223dbd236e5dbb9ce9fe7c9c6386078730c333e1cd322c337a1c468734e63758eed9a3437de870bb52f17dfd4f93e2683167d293d235ee7622405dfdbee5ec9b37ba678d93c07dfde29cf799b9c664f93d91a0bcc388c330e0ba585b2f147c338b4fb151c0c6346b653af3f98f9a7c77e2ef289890aad7483d9989cff00d7c532342f08bc3c2729fdfefbf2f88f6c360c5ce320a5a1b1b1bf5be63f64e8d19d7a23b1329794dba468eebaf1c38386454283a6cd91e774c5ee1e672dd973886b45493c139bd317913ec34fc933f0d09cc635e092e226f1c47245913498d118716b9e48f2bb4c0d222439700ea6787c4fcd4a2c2644781473693a77bfd4937f978d7e931490ceab6ba585fd6cff00cfbaafce70c6a587eeaa4de91c66409890f5f4fb92126c57b4b419b4607228f47a34368952f126aa70ee4096176b4e73a7ec8f49a4c4208ba5ad37411e8117389738d493c7ff00db2fffc4002d10010002020103030304030101010100000100112131411051617181912060a13050b1f040c1d1e1f17090ffda0008010100013f21ff00f64cac0652d3547fb73eb2c312b8ddf9969077e07e65426e9a47e2b7b8ac103829a2adaf722f4ef615e3edca4a19a76858a7405f4bccbd0b98a7304285c2e3a9666fd6670f272fc7f9c8005ae009be7c6ab9a8f0b96ab1fca2c07ac6b5d5e738eddafda0c1ea080efa8dd33a282b0967e3f74d89051d9bbf88bd08bcedf980e5ccb4635a550229d2ad8b05d0bb58972ce50857f94cb3775d1283a61d5ea46fb0ebdffeb13685001536cc1c42201ef2e347c4bc0ae32ae6969f202e956abba0339483684d1873e1edfb801dce6dd10416fb68f48c1dd2d89ccbb6012aaefc45b5316e59cc4207a06662889532abc4cb42351c71fe39d69d05b3d74155c3528ca068ed3889e285cc14108b530699611456245720d597ec7c10512f36ce1c14bdb4e3b998137710b901f0ef3fb6aed41687308eccc1b96c044a7c8fac7a91c658f95cb369df4351aa97084a8152e4c53b9cd530a4661dff008ae2382b173e3fbcc039c00e3cb071880db00e3ab64c50298cae0c758c74d8318acf05d35567672e4cca328b24c02dc0f57e5e7f6a75d2e96aaf58c054a8e9a4e190ab47d65497c1a9e6957305e7ae9408afa8c36c45d1926bfc34402176bb7aeab86121e206012981516c1322232984a7a19e69848c5c243f12c6f3158139c969dc2e1b3868ed7fcea8fda2e5fb4442c94ef8319f5fa2fa175c2e9593125d4111d0a6d9835d75d928878623544333c32b6eff006ff8235638137b777a3c358bef3174d8c4ad5862f6a9e954670971084a6970dacc11a3de5cf789763bc66e692160ee499126a02f42adbc8b79f6edfb36d216fb430000b8adbf42c1874112dd2d8a53a1d1542a6ea711d34c49032b896ef84af2835a8f4615cd6a2aad92a42d69861f207f5c3312d3fc87d9800ccbb8ceb9e79570768418eaae6d4762dc63d418b7e65371894888a84adbd226f2c04a64a1982f1318417ad8d9870e430e3bce13cae9ff004d7e79fd90d9daf83cca13399f9ff9f41b6003ad30d9992012df294f1301886f105b488287d0f4cd0dc6aa1b2e024ab464b947357d60a01f93f58bb10ba05fefaca605dd669bfc4aa2743a573c333a8a0f674b2fb31de7a5830935732994e88ac2c5895513a621a85c346eaf60ebde5ddb6d5d0693f637e541b19feb1d0a3ad1186d0b8b28613df335a42595bed3279979059dc7d379df4c7137c54b1bdc432e19e4365e6a769094c153d98cfd476cea02d58f6cd42857899e7bff006ea26a32a6a5c49a3c2303f945598b6cf5babcf4dd3310bca3d598f9318f745608c598244e26909c4fc0672638fd887900e5588ea8225afd2423751afe61a44a989c3da5b85388e10a2ee98b79fa6a62c2e5441e06ae2f26f172e9acd26d2941e3febfbe3f506ef3b89e064cf9cd7c43945505e22c6a51d1013cd196e5dfd0188073295160a87926a295b538e23e3fbcc22999d09b1568a482cd3dd5d3e4be1dfec2c03bd46da00964f54af79604e2455a2259e01d0f59b51ca06e149758fd37b4c3198a66c364bb3de5607b0fe9e51405c2c0a1e2ee52a881b469ed389429d2a26b0635689f5599702e67a6435d2b32e1a138e605fca7cf4bfd00574ca6d73eff00d63f61f2a0dae29186a3aebad20f72cf339152d2b3da3c86f3721d52c1fd268b12f431e913a4fb547f3fa5cf6d925d06ff00acaa76864ed1e5d4917605ceea618292abb1d93ed15298e3e8b767a379914b504c25a9954188014cabeb97bcfbd563863bb743c1b1f729fd81866103943d573c553162343a51ba2666b0c11a527307ac199a56935a2fd7b97d12ec48d4388a16230ea3c5e4bfd2c7397b3f1cff001f89921f6907885456a4211b8ed53baf54ec49e21baa621b0c06aefd3b448436937de667b633d52a70e33e81030931264f110389604332c223e65aaeb1d184556106dac5673e717ace3fcf16c16ab457040d1360f47aa8680b3781eb2b88392025c2748a194feb5cc5dcb8b6c6a130cea25b0a6998a6715652a3e70133c688883b31fa3562e198152823a8a42e4eff00c4405b993098d021317307226bbc3b14b2e81de5b422456eb7033627989afc252c6351b3686308cc84d63d0aa94a665bb238428b96a86bd5625302f05a6d63c8fc7f9e36ca780fc1fdefb9be9869728a22e128ba864972c00f6e233c3536579ed0c0384760ccd422077fac4cc33030c29822d02ad3182b3c740be12e7aa59982e664a8e77dfe8a12f46bcff6ff00af4acd3d007b99632d651080ac3898238f78c0f62e3b2e7a7fee412b95f499c480a3191c10f2673115426b52d74b2afa64da800c6a70452ce1a3da5ade300bc7a3fcfa0218a362bf82a1d5c6a6666c8c20f31a9bd4b41770d44be25a1909550f89660cf479fd5eaa82228b7062559b282f2d79e8d84d98c69334782629f96e6ff46d61ca853b4642b963765730cb9359be3b6d6f98f5283fe885871aef090b5f98a4ea52be65706652c75cca86ae3bcad834dc48352ef64144dca23442ed947975effe7bace5076d3d12e23d639f966f130333632ea664d32e09bcb4e205c69899b9a86d3e9230dcba149ccc7857762f3f062024be798f4f291499a953467f4ddff48cb7569763f01aad74cac16134a6fa77f557410701953743eb05b3158416cdf63c6c8ee485cba4487b4a91292514ff00711161e06a0b13b4572ed8a0386b85fe5ff3c8980441cd30fe3f12a36398c3a45562d937a85e07b3ea4fb17a1259e696bb63051a67312ff48220bb23e3f4df023e63605fa7f719979d154318fac01431f5ab88aa77f5ed02d453b8c49e53d197b2aa72630e995f8982512e05ca2a38182f166bd2ff00cf60ec467077f6ff00b1a580b03848102109425046ce90812fe5e7ab1fa01154d8a8c70457b9b74da2286ae59706bf3fc757a465d855ed0376aaee7c5c1a8aac64cd7fdb9521f7549edffb111be9bcff00d25c1d612d5d5efbeff8ed2c80b5e038acf78a1caaca2e2bde2606bfc98b3f1d38e3ade2b10f240b30963f1f52c01044ac8b6cc57bd198b001885aca862398a34cb91e73b1291b7ec20e50d6326b87c7fe4a8421d2b17d0084ca5e2cb43a31254e4ac12c651edd20522744bccbdd4add74876cd567314b9c3fe66b99eec357f9a94282a2cfb51454b5c557bc5ccec8a8ee12f4d47dd207ce898d51d6d87b459286c423d0c399733136859a8431c74c287abfa13dcbc5f995a97710440a82024abab76089a562b4ce1d6c3e7f61b30635cd3a643756ca81052aa2da68425a1387404bb7e83a83c0bb562591e3da29743d25db2921496c30d63050b66bebdcc53e423691859770b89176e1b98c57c421215cab7e10d97ea314d4f11da6e2c7c802d4bf148d20778c369c9315387d6070365fc12ef46bbe8e442452e2675472c67ac4d38863e8604bfa1d28eb38ab8c67579abcfec4a71b6616d7f3ff00a74860ed2e2464a8583d14cc23b82a779ac750b6889e74e181193dad4bca017d15312ac765578e906a36cf1a986153729186c5454603965f81e89842796369b31027842ba8bfc481ee3e6f825541b8009e750d6626abb81db02e01170d9c46e66b5df09ba8b12500452c225952aba7e9a79a5fcc463ea8f4c44d517aae5f40e86e96e1079cf7fe37dbf63a283b1d0ecc175cbb579d873e2572b6c9908324311dcaec6505a82742d9c9254e70f445f44588eb799903310a1a483483988eab7328038b8080afa77e4b16ba93af647a0664d1161e41332a8e3885c1784ea70c1e08aade835a6ac94f77d633f2584aff002995f0b4b16a7a4bcc4640a778b61270b0524693998df2a20c4e36598b52ee5e9a88a881fe90a69321dc14840952a540e99b8c6a95f9aed0dd04b44d7e57f642a4a0c859e381bdc751d99a97a370d53995082584cb05c3a53dd9a3912843412235094112cb71c33131a2aa5325733647bc0f7d71510cb0e63ebeb2c596f05a2610d197626f402571006a7e3e6333b337329961c35300adb4dacb5e8e3e13d32aa563d120879eb298fa3a854f9f4fe2525f0f6085233a48e6d767be451b5cfa4a1d42e2d6a276cc499654e8d8426375702d91979cfd4b0f71ee3ad7fec6bdb7791f1f1fb30a20f5894e33cff59ccb72d998003da57623a665cda9918345c77e05d5640041e65c38cc0818c9001d4d11722b88aee0c0a29e358b043d2a14abe7989453950edbec4ab0a8b60e4567e6e163b2be54b888d92db2b9b4bd04d1a8ed90ed62f90f8d278e55bcb52ef2c14980e90ed2efa22008fd32f3da5c2767d3a18752a6766d01bd41cc33170188fd4536df573b8e43a71300938038ae3f6746ceb1291898708986377e1c45e52957115c2442917c928252ab953d272fcc140fb25d86622238c9d32815d1cca787cc11d31603a80b563e56cd77ef7887eadc3fcd1ad5c960083121a67eb32cdb2aaa29793e6505ce551117dbc916ca9d983a5f514dcbd4e523b3a6445036b89615bb87c4b46c7a4b17a7d13b2835288d1958ea7201173e057f032c3821c5e1b012ce33e3f6a76ceb129196d768051d9ad76f89a417d19725ab98b1bab4d02665127638945e778b6e2e3909731306c70ec740f71b313a8f6cb943f05314003cdafccb111ce9f0313b4e985baf785a47f45e65d73e0e0f695be95a758145657cafacff00ef29c8113c74e7276479843dfc8986e5332660095c7328d219bb88bbb95e8637379515a8f9eefdb4e501932d725f60d6a211207a654efda0c27981d302a8165991048d5ced032cc6a3cf4a241644d90cd5d4a56de12c08078cdef6576de5983bcd54b3ee12b66c597cbea2643395855bef733e09552fe9788ee31102a7f0408306a58111491d8e63a054566857d1a984e81c182e6f0a21ad1404626d82df1c1c9ff119aa72b5e0ec7ee1488cb01a946ef8a3d88d5a861557eadc4f8ba57ba9fc4b93af143fd2cf53c966821d17be1cca6fb208b5176f283c0bc04433567fb534e8626021f82280b9b6276ea1b6a56b1d2e57317dff000eae88416e0399e3083f97d481939258cad6e4c1eac6471a5a2722592d3e22dc116b47d2082024df89be6d5d5abb9a441302e5c18e15da586e2e27e5df34777c4d6252b6739c994c62abccc680aab81e6bbef3fbd7f6bca1c7573112c7a50fc66b80a3fefa2c1c6baab246fad0d728bcd0dbf3fc431d4c5a954ebe0db3e3a1fc11d2e7da0716b2b13a152a21b1ca8aa55b5e7a932d32be4d057c1c7b43174d680a6f9ce799547b72b50f48bada30951e7873c4c90dc8d05f6f4f33005c41862b7bfccb927792e541cf80f83f7cba71a182b940a3eabee59c351bae421d0e54b8d9bdbd2f6f6ae07758fb50b821f5b23ec642341e9d6d67097dddfe652b53c531300b75970749d4c041aaa1e9da5b063369f98d3eed16bf4330de37f61163b84f5bff007d16a0dfd1852e953baeb15ef1295118628e70e86a501eead1002b5bab3de98b50d182af351dbb9f3d1212d2272ae13d35f1d036820d68e63b3d7ccb4e9776ff00532ff4a8e3ec27ab0033b267f83f3f5f5cd27f0a8f091164f24ee5e92eee108a0b1d3b0eef7453b098753c3015ce7d2ce8c27b2f6767b9e2174c64f5ee6be606b2d353fe07e659590f6aeb5a7184c1afa582c9626a333b54fd8358822d52ebb1cbbfcc3a378ccdc68e7a78e060d90ab97ffb32a5cf42b4f31b314bef864fe65c1c9644897068402d5e22f9f7c8dbeedcbfa6fa7815943f27d0b52ee34dde19dafb044354c8a6b179cf44b20a954e27775b71c0c06591c3386efcbd6612754b9757bf469a9f601d939256edaffe0260cb6ec7db1a7d37f4b3a635543acaa11cd1a7ec172c8b06c653c89d9c75a278bf5dbeee7788530657e1531455b5f565b9311e1e834dc26da18e8a69ec92e9917f47597ae39bd92c2ba31299d92a3567e7ec20f88d46d4e0f8da7b4be3a2d116f0e95b42461e10e9ebd5f5b7f39977d1590d4c15688b2dca97d6a5a53f4dc1d8c2da2b32e4bbe98a4748982aeb9fb081db477629bc79398aba1d405cb6072631a358e07fde9e3f75f46622bf4ba0a6099cafd1ce988cba5eb5777608ac462cf4b894b00ec18cbdbec2624ba08b60e1c1cd332dd2a5665bf3512ca753b03764b3b0669d0cc717517b309cb8813eb1961c448916610bbd7404baa664e9ed2f8afc45c2fbab306d5f731d5ea623cfd87a0e582bb3f2bfa28ade07a7aeca96be3a754c6bd54f07aaf4ea58cba5af4b92de2668d4f4aa0da7132e7894431b1e3bc30d4c3a9a7e21e2a69597b57739b3269fb0f72193e0ee8f0fd0201f0ea3379c9de5d2ae87bb814ced0d0faebfe42843193d20e961b6043a5867f0004e747c551888db2e1ae7e7f9854d12af4a710a2126a3c19a1e5639510ff0507094b07b7d87e67b36c357efcca9b0f2a0c41caf1eaec964d4b9cc583921bbd7f3cab79fcf007a03049cf4d8be2cb1286e5b31102c78e04c0d4c1a8090b857114e6dca562502ee3bf0f0e7096302225ab412cbd9c83def4976bc43d1e289fd0f2fd883706ab71630bf274e66381530270aca1d12e59e7a449568fcc276344fa4efd4af8bd5bfb6783d4626fdbb691952b7c5ebd03842c2d7e3d76a470d4f04a62e86bc4c87f258d2efa21c3ad2d25684f7d7c2106044355443b79e9dd88decdbf621ab3cc395e6b19c573c7acc01aa653f74ba98aa486d9145dd55cbe871153395ed086f251b75a8a194d12cd795de63d41f06a57328fc27bad4454457906d671a7a15d1b55011995f17befd408f5c7459390731c53d8212426d1dfb7d8ae197594b1ee43604b099f326a557c40b5e98179f996cd28268b5349bedc17f7d40d9675d5d0b1ce0ff0070f84c1a9e18c1c060acb396fbad0ec91a0346b0be917fa318fabccc34189c0d31f50819a0c96e3742b887ae4d2763bc552adaf2fd8d87cb586dac1f60fcc4b153149994ab95188be31494bf88bb08dc7c26a335bc2645be85a8056e5b4702fbd40110c0b6f22774043c1c743a980e1e97006372c04bf594b01ed0ed5c215a0be704bb8f27d8e819d68a461287384c9ff94fbc28746aa2a0e353c45d0bae6e18abbaa536abcc5cfd0a004f64abf94d8de5d4cdfc490e522d435497654ec3fdcc198b143f9956e4961e0f57b24bda38b2dd16ca3b399ccdf9bfe4c1fd9502e2af25ce68d7698070c05dd83e2119254b15866f9ca5ea9b3cdca2e2cdc00c138f13702d44d530dd6c8a254b19812202662bb877bd59ff00239f7cce652a566109e81b5c7d96f5074a94f931eded306dcdf91c22f68aae34d36e65d6ee094b64a7bbb7e3a2db712963dfda0f277882653a37d15c43bb013ce143dddfb4696eef80f983fd1e4124c7e6602615f48c6cd786aaf060bf657f238f61ff0072a16c02b231f7d1214ccbea6e3c91156731330f6815ef2e6255a03615a1cc3de8bca03163798d3e2331a70afa41ee4d50b8e1d17000797f6101979a344b8d33d454950097bd2a8aac9c517195c72fd95a28a339b4cff07e630e66233d050672e46e0a97183b41943d9895b58fa234302cd72774c4587b00ca56f9058f880fb01444799b2621816fccce6a2762609913b8ab01a0ec36aeebdfecb0da19bed7bf8e7fb98c4c32611e9c976c186ee0db312c070ed1735f28172fac3167bb987b7788ede814c42336ae8d0c13187bc393c41426ae6283880b0bb76981b022ae069e4afb2ea5451178b37e2b6bdae3a6a2d6a170801a85b54b9514e7ea7dcdb88fcd71c531c208947f128040592a52154b95077185cb93390d12b576799973c687d974b0ba5748d91151de333e56d258948a370f8c34250d746f249980af48cb71f49d078e9bbad743ada008977302c8b86319a677331532e70c4db90a5f2ed77e6f5afb32a9040ac2e9bb17c76db70fc6e88107e49ff5103855d710db07bc5917d0aed2ac52085ee5f5c0b0b3a831675d2e725447c6353f2e1a858f4400d5bc0679de2ebecccf68faf92cac171aca16c6efc74469899619aa47d65d03c12ce2bcc991db47810a5102e276d11da574d46d338b98fee85d02dd78885de7b25c2ff2fb35eef17734a64ad61719bc72cd11bb89b046cb9f58d830219b26dd4d52006a8866074a9529edd0b2e5810bf333433d858c691abca9bafb3aa0522ba34d0b2e906acbc965d982e02a5859b974349dac1fa0415a705e9ad4ca2317b4aba829a9644b49620779562250de699e1a3e3ecf1b45908a2baf3805781d401181b8953904278989888e997ef185b84aed1e5a45350a3538706c102c048082cef9dd6f03c5d525c73bbe5cbf67f630113fbda16d256bff00687879f5b07a742146599cac03dba298741bc50e662726e70d965330dee7713002ec56392f0699854abd70017acd1d8f43ed1657261c11f40d0da9a144672a18a3ef11695f14e85ece855137082eaf5f5b544020e36cb861c500e3b0b335b3238aabc782615a8a30783ed3d0e4abd40727f772e9d5081d8c9fc2b9c1a08f4911d136fa2fa09f8a9d00dab28e176029c1d37c3ac6e0778c1f0b4e5dc789b6b818f65fb5f191f4ac0503a25a538cbbcf2892d58c337947c3da5ac8bf570c2d9acd60bf129d4eeafc0b793dabd9e682442f03c3468f51f9a712e86c5696a93bb5f02e1ecb3aa429b4bb25358c8a67c4d0da874b6f158ae3def894d45370ab719168ce5daad942f7c204a0771ff8a9dabbbfff006cbfffda000c03010002000300000010f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cffc0ae93edbcf3cf3cf3cf3cf3cf3cf37e3df3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cee10d0fd2b6b23bf3cf3cf3cf3cf3cf34030438e79f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3b66af9e1d8d847d9f3cf3cf3cf3cf3c8153d2af8280ff00cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3d611c95047440e1e2f6f3cf3cf3ce464b0683f41b8765cf3cf3cf3cf3cf3cf3cf3cf3cf3dbb68e945009cf48456696f3cf3cf386ec92789777447cb2057cf3cf3cf3cf3cf3cf3cf3cf165b3fd0852c15eac9688cbd3cf3cf3b76c40bf3ff00bdc4238d37cf3cf3cf3cf3cf3cf3cf3cf0791a4a1ead9fedbd20316e7bcf3cf369c010fb7a19f71ea0d4dff3cf3cf3cf3cf3cf3cf3cf03f437334887ff00ada206f8a47cf3cf356e516ccedcaf8362fa1b0f3cf3cf3cf3cf3cf3cf3cf25c61f38cb6fdfc930d49d8d3cf3cf1bf829ba33fca4eb434a924dbcf3cf3cf3cf3cf3cf3cf28f50ad82577ee400fa52d373fdfbcba203a8eff00fed22bd98fa0a7bcf3cf3cf3cf3cf3cf3cf3c761dbab6bc7ee356fd06e56c176ba83d02eaff18eb10d7c23bff3cf3cf3cf3cf3cf3cf3cf3cbde2b8fbe3e0b3300f0ffa8e42fb1ce62e142d5dbb2dfdb127df3cf3cf3cf3cf3cf3cf3cf3cf3ed25581d3b14f73414b801d7cfb45f9dbcd2698a76dd7a77cf3cf3cf3cf3cf3cf3cf3cf3cf2e8ce99cafaaec0daa187b454ef9ee09cf8f64ca3d837fef3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf1df9fb7f55d1c87b17cafcef7c2dcd74be441a9b5f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3c5de36a8422976b38f0667900c557ce7bcf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf88e8b1e8a9b250121de9c415b4f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3c632567f85716b00bfbbe81cb0b1f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3c717a7b2ae83407debaae5aaa729f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf212fbc0f6e7840823b3b9adff008f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3dbdff004f0ed08149435ca605ccf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf2ddf671de301701811e2fe555df3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3bc63482c07f8d57e681438b77f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3ca07cc0542510c9dd2d36df3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3ce80fd6b8d82b67192257ef3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf4ed7a5af2a2fb67e883ef3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf794ea5ed07d17dec1cb5f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf90cab769713d68b57735f3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf095d43215041934ec09cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3d6f3f8eeddbd0aea47cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf26dc3092db8bd67fcf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3f10f43fd957bcf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cf3cffc4002b1101000201020503040301010100000000010011213141105161719181a1b14050d1f020c1e130f180ffda0008010301013f10fbf0b6a68e5c76441f509d123b45406d7fdf2e822b42f526993d9fa9505b1df963164328801c2ccc693650f175ff00a5c9e5d0e73058bdfcc66db30a3306ba0d1226fa96b79dfc5d8e98a6ecaaee98f0dfd17e985b8633a428250510af3391164148a759710610bff95ba5f36c7e7e3bc52f6b30c25560ccdb5a2be5311e9344c31613f31a3d7973efafd198ade3b6b809940415c10944a98a6e2aa8d64d7f9b87a096a29dcbb7bfe23330c621b6a68e803829693cc289ae904ec0d1e675ea794ceb6fd164f7962dc104b38223980688b2f80bcc448162554cc753f96919aff73fe6de653b65f4262178d00eaa6f4c1a92bd4da81170f432465cb750db71fbb7d0e07947b129817354cac83978eb1c520dd7856bfc929e44edbf10a0005c6884331e06c8eb51c364621aca4dcb93e89a79d3c7d0a557821506e4511b61a3f812e2254bc4195dd3f8a6c03ddfd2320649b385442e1e0e2ab4c1b84b50bab899225841865c7d0f73e2f5aebf40ea22eac835162998af8234e1a4d2164c3a954a66f16bfc4eae61f112db95c71ba40c334482370408752c250d41b22434c29361a7f334f259d5afa0efa94620ed23b30929844d2135897344c2704d11c45ccb59fe2807a58bf1fdcd1a5ce758ae9341081ab2329acb1ae4bcd4680462259ea3223e201341ff00be93acb8c1691aa2b544fe0cbae1ad90d66779c3076bb1ac00007f4d0ca3f3d5f827bc4fbb8efb1fef48c3647168d9a561cdf503d6a28a61b853cda384299ca086f10b83611b635660e020f687b7151cf88001b7d066f6781aceb06ce0f033085c39a58cbb11b1fca2bc1ab0aabbebee2fdf6ef072f2105eabab5eb17a3a057bb98dc018d875b778956c25303ba9cd22868b5015f788d53c943b0a7de28f173d1df99d6640e0661cba8644238b62342329ebbaf7dbdfe3e8705bcc1a6592c8e550219957c4f184b4bace91293a732f2d0f78788a3a8fbc45543260dd6a65d9ccc3cb9f69449344b1e86081ea776133f185d9e78d652b17aad7a3550cb8392f67a06fe61d7179202737c7fc8b419bb8773a3ecf78883881835c105c4198608c032b5e5046e657aff9feeff4597c90a19926ac8870c67646c625b744096c86a9cde47bc2e869a861deb2bde2342fa248cc80ce0f42f35ef3dc61a7994aa55bcae3dc87801beaf7b0807a610364397132837e2202ac8c4e95b7789a889160d9e9d1dbf137dc61e6b23e236b8a6ef8788a8c93c0615afee7a41358d5d8e87e757a69f49d0d15758830c12b982674410a5e77af23d6553b85748052ec6e214cb01034256cb2f216742f1eb97b4cb85f34bf1ef1f22aeabbff004476eea11a347120a95234c1cde81fbd6377560694bcac5af5863e9a429dd4e8e9e1bf31e663441921b9518d41e4573fe39fc4a41ddddeff004cb5e8c741985da51a91ba108cf7fd36fcc5035813b4ace9817cf95f588aaaaf57e2e0e11595dfb5c1b844351c1416e93281ea18fdec41e96b46047c001df2fef4828d910a6d6cef45fbc14355ea327bcbc9526194c097948c83a73dbce9131adc9a1df9fc77808141f5953edfd2e01361994fdcc9e9191bd4617a6df88afa8e62845e80f2caf82e51c8fdd7943cfae9ed57c149a18789410034744efb311a06ba377df6af9811aa806e969eb9dab7b8b6ff0047ac5ecfd73f370050a3eb992d81fa76e38c85816bb1158f23affb2c20b8a8801745f047e96b2b0768047d0b21b5a9d47acbc2a73b2bf3ed3382995e6cef9579952e2c4afcd09e3ff7ec36d7f965f23159c7e72c4d1282798c70a7efa243c26f08e6685e11ece23c0c6c858fe3d62ce0580e5cefaff05459b4085c5402f6329061102d63e70fd86c3e0dd753fc5836591eda43f98f0ca6a5e48ae10c29b9b5c0a011d8cd1b8350e15c344066b97a450bb663bea95284e83e3ec28235483d9c3eccb86e3a2975163c15f51dbd49ab2101f3c33088710b28aca4c70858b9aa658daddda5cabc594781d7d6a72981cc4d939ca1358af7afb115ce529ee61f73804da00d5e49cfac30aacc3a9ad7b42325b30ab300a085cc4402b02321b196028db36758acea83c287e4577acff510d64ffe7d899769e0703b5d3dd61ba596f5ceced12cb0b21cdcbfa9927382cc6d033b92d46f50376191bea2fb5f089accac2e2d2aba567da229873d1da9e8c6afac1775db4f78e73e67758bde0d7d3fdaaecfd8ae4d4f261ef8c9d427712d66d6e74998bd0ecede650528a8d0c5a83296dc06ee05bd57f1fdc146c95ee01eae3fb8e87555b97b72ed2cad6df9679c0e96c204711be839e97fdbb13702f63ec6e06c56da3b9752fd7b32ad24b7eb2e194085de4b9f10b9deb1f94ccf778e0ff7d26396287c273eb0214dc0a6ba0e57db9c2f68003a1823652c58997504b77fd7dbe7a4718dcbf75f5fb2504b209b4aea761dbb3af4872ebe0a9a656c42b87223513068f2e9da055b640b012ce84a7baf37fad59dc58c0f1abed2c2539183c10533afd9a61b25d1a39ea1dff33b5d587be904a04e9113d2b1718e71baba3c4aa008e47fe10c683a50fb46eb5d5b9643ecc1d0953316a6a19d9489297e66ae7963de596c21c9326780efecc2a18b51ee3b95c52908c208b135becdbae016124a22ee28a9519a92f57d9c5564cb70658ca328d115510654cf0db7da2c6748225902e900c18952a2185210542de7ed3a4456b8966f3ab11de3b117b13507ff00843fffc4002b1101000201020405050101010100000000010011213141105161718191a1b1d1204050c1f0e13080f1ffda0008010201013f10fcf5f3be869ddd0f188616ce6bae9463be7a6b1cc93a03dc76e9f107b77f87dbfec5b836e2cf91b6de37b41460347238c1af36a91da8b9fe9d1ee7fdf5554c001e24d4c3f737d44006eb065cb34ed8dc564e4639a92a141a000f22367119b58886b65b24ecd17941fef38832dbc4efe3a7cffd2f8b3ca7253d623b5b65d33032526e441f10d7cfdf5e99bb26bb861feed7f6db00655c0eed3aec52be0ca816e332f6cb58d87305a690d5b604a152bd9302872d94e8a2532805853e32c5ce65faee7f72ff00958a5f36c7cfb47c96b31065259ba89352749cc6c09b91117a39ba3d7dfbebf677dac56e5d5d6cbc977a0de74824e3cb9baaf37ff9a450d65a45c9883e408bca5bca0240e595cae079d21072b93f0e8f9ed1c1d2611d47eb449412fd57a980e58c0104b5c0a31c063454148a5a21d4b3a3ccf9f7d79fd90b4872cd8f1dd706aef543156a2a0e18f9565c1184ef812a5980288c301d48845cc1e3431c395c5cfe46ff00333defeb75a1f5654b65b4260dbc1f5a4e906f306b2bd4de9316094999a9dba9c9dcfb1a694ab7b183e7c586eccc15432c8c59a732557029d6134e0e4210644288aa85286b3542abe81a7c766224293e9c1eac3e65222d482cc68d0f8c591d6a28ec9467594aa5cfc4269e7a797d8f2ba0f23c3da2ca0cbd8728e624c359d1113e850cb0aa38839a03784911c1b1f1d7d6ff00b07d09b007bc75d8dd23462a00cce3233a6546e1242b0e25cb2586cd65c1ae8f73e75f1fb06b1769cf6251a82b20cb2d99a2666e598ef897652b4415b84101758e2e1333339f06a7efe9767a11b5c52946c92b8cbd8848b8616384a14a30c260353440d054d2f79f3a77afb0a185baf0722fa9d6b9dc6dc2313c9a4b386d0f6e4dd32441e6e389673278024082a2d6649021ea9f23fdfa5c0dd17dbf734a96398b351541992ce10ce589c106da340c1313c1b5408c40068ffdce80f24d9f069ed7370c8ca8504bbc8822188f2896aa6b15114b71b92620462ecc34b0ac51d0d34f7a3ed5edb4505b3189f0cfb41ee7fbac6ca57ca2622fde286165f0f138f596601b8d398380410b866628b9a0500fb002dbd76dde457718a6a9938a90883c3658e710c2d887ed1c83589bcc15718a0bdd3cdda069052bbb97afc467a0736096b0b862b781a88b1a91a948769563485326700b85c04c6705cb11b70aeae32f8f5fb142adb00dceda29a9058ad022688e47c66e365b4e22155c42a581a91d711619aaadc2f443563cf091e4d5f48e571741e92dbb65b0ede933807ac402abc881871a8a62171af30c624d668354da24430634209c19492a98625c2c76b086f65eff00e7d930d0373e2a9fe6a72229bf09f2211e57660918e01454d1146b9433c756c2e4734f220d5bae6fb6c45d479ff91d380e444b5544b57ae60503ca67dcb05b104c54a6003109b5434236008513546133103a26b3c0c85ac0ed9e7f8f9fb3146c8401b13068c2be47b2197aa007292d7311f3e2180db12af26737c3de35bddf9cc00a9908d4bb835b3a102d7a352c5b255de256bc48cce5c9a4e902950d1bc622f598a039c08d21121aae7f8e72affcbdfed88545a16b3b3cba367297ced8a7999f46bbeb3d7e9af7a944507a3e62a0f17a2ebb6af86b2c05804d177654328914a469111442b970d386b062ea20a759596af07df59aa6e80284ae04b7446a9539ede72812dcb6ff00600a147de3f35f7e16e92826f98500478654c628d41b5db8100f48741c44bd577e20d574f28ab7ef7e62361e39f7b800a0c7df557afbe65638508de21b1b224ef28f998001a406eedc0491771154b93892ee45fc0d4f39ed2f12822200da58cd1208a0a03696aba83c9fd0671158e22a98164ef23f0265cbc28f7b440b497e749ac105b2a2b7e8210b9a515054b3a4ff00023d123ac4348dcd2a16e76e0317031c88a9689b9722b46a8d6245031a4a92294bf0889176368a7a371a4cd8ab16a1666d1e63d671cf81c814e1773aa1ab63f057837c3fa8d47311eb1394a5a94618d8225c6542d9a70414c311b4d220801a24bb070bd72c6fc1573c1d3bcbec37ef0437099a12eb22184cc734a8237ab8e054da3096949b11f7e00622d231ef0007e0f23e1d7bf3fede0595c0035cc4c3cb1da409a9a99e5bc15c644fd203f711b519a0955accda170ed020d43f097b539b2663a7de585c4588a94b0e32acc5784b32928de5cced11436f225752f9625b0daf9d45fe16e5e49f1fb8c70082b51a7ac1ae084234cd401de0e96ae9f3a44508e6e5f8f48a1db33b0aa5d3a7d0afee7afe154e725f2cfea692216e55b994a2688fce2f57e6f0205950cd23b188794650403fd8bdff00b963f0a80a749b453e9a9e950c5b1c7247e00cd650a594d31cdc32c850eb2172dfe83f0cc87a63cd87d6bc8e049d2c12d6382845b2120e59bc532dc2c21459b431ae5a80036fc3093614ccb0d68f32649821713bc03a4bb28754b5d9c1cad151b07ab9fe20eee8b6be63fae4f760974308f06d8019886c5f6816c60f571ba72b0050734eaf73639de7a6f058d014763f13e148309aefcb3a3888d99f37938f59596874cfb4c67a49ef16c57ba12adf5c7d31eb328bd807cfea0544699d5c757ff087ffc4002d1001000202010303020603010101000000010011213141516171108191a1c1205060b1d1f03040e1f17090ffda0008010100013f10ff00ec8291400da0dd295a69f8657e4af434abe1d1e735a689ce0b15cac28adb379ad3cd08a0150d0415974a6dd3786eb1757a006550704a30c9619e8d36ec8650163346eaebd1ad8f1c85855be889e47f4d8b6b1c5297da05e5b6687e332e3d946178dd5f329750695e446ab372d0986bbc120cd0e46aae9e63262201195ecdaef37c9c0118cb9a0adcef6305f264cffbc899c016aba0224d50d958bc85bd1df4a7a3040810d420dd8adf3bd9825b5f09213658614a5aa285bb3e9f86916a5a000e6196d221204cf0a11e447f34097b5a72a083a32c6f363551bec365c1cadac18d4360c5a4abbd7de1b501437a658a355bb86324ec53ab256a18cd562be22182295eb32add1a80ecbae8e7559dea8c76e2e52cae8991ff006b4c0abd42bb5feb863994b88072adb7d2c480555008d5006de682f6de6e165d2fa46c5ddf30500717a97a9fba1072b83b5a76aece1a08963847502e476c71c303b9118715b935620096a2bacafcbea7c255b406d41ae9e52138b915a61c1d556f7bd6a12f6aa2a9b0e1abc7fec37755e42cc11ac60ac36c6dad0d6e5c405cc9ab4714be200cb99772e812ccd62862fe95e26f20760160f4f111a32dba9febd8c02c931780ed1c99a8050bc919b4dddf4c43021001a7f4891574ed2f4e9e60c300957d20841d4b203476c130148f1312c722162b48360574e7b04a5e0ed0c4a959002c82b02178cda5a0c82d403a83f2dbe764209c3578291d8de4c6494b620aa106addbcee13ed13ed23c4ee713048ff0b547f7b4aeac9e55c4425b778c0403e5dee662ee5985468f694388fde651a962cb84810e0d8915d5b70a5d4d293a7faadbe45e285a0614a2f2553ac12d094d04f22abbe618a0c1d20f07c44f16f306a20ca9b820970179aa9aae5ac22f2c1d710134ea5a9bc4b35bb46d2b7baa8405e121a5d2da112b180800192987f2b3e396748f5a237db8e73a3ce371d18c4128b78699f020620f234bc06e25b3e88ac2be52e9f7c04249de604dacc612d443d1c09999155914aec87688a44a4d8ffa6972185b842e385c02f46a0fde0e00140070054b36938b28ae1ab4dccb9af78a0a4a8874e18180c379dc0bca41199764553032a6ff00ae38833948257f586d32c34a371ec00e1ee058ba2025620b3f282cdfc3745d5bd0c99712963828cc0a51545b7270725b131e96956ea25828956aa602b1ce920b46a7250b05c23f031421a8a8b55f43ea0d60c1e62a283587f881d16e78b9404cc3b4ca080b0ad983cbbfd9ff0046993757a8b0b5d05a5ad07315882aa1d381440500bd5750ceae7500dc011700063cc25514ca7cc7e50eaa94352a560c6639ce6059e7d61aa96222f0cb80ec14d2070893aab8828a32ae62f040a25ad74d13282e72f30b00b781d0913c10035cadf92ab5549e86d765d02d76850d13423297acaf4dfe0d04a2cc21c912bccba972cb9c422e72c62065129c41d6a1582bcc3387b92d5bbccd6584ada01d565b0ed4aa657ac46aa2c4e42882b5b20f783bd2d303b843aace912c226755701ff382f42c728b7c4527569a1712bc02981906b5b616802b84ed85f425547082acbcb778c41305ae0b6e6930099e095924d42026a177028ad3df11489dae5aef55b622177bbe61a0f625a06c7ac22a093952c97e88852a03d0d08a15541144086380632c531636d71401f926cd315d3ca783fbb9c1ad82dd0106868dd5f56527aeda5fb100d46bcc7872f217172e6ac7103b2c72c559034f2412cfa600631d0353c6063d693a32961700757c4bedadba948afa409ee555695cd40385384a7a476dadc05c5c0a0ae13abd7b0747fccdab834ceb4342d16a0b2d0b609294e81068ad5f03ace504a494dc0b0c119e68bee73089acc2387c4460b966f70aadb2f313aecbd27d12e186b18494b0a6a50fbcb8302f104dc698a44ab9e603333d39ecc1f5d52926b36092e86d3a718dbf5aac0a3489635f91d4d9f5c45c5df39262ab3a9766a098efd11c5a8fca5f2519398301616063a40cca30d590a092a50cf3d3de1294652b5aa37131701610acde2fd56a9963228ba6076a7ec53eff0011ad54bb067b79c9f32d2ad94ec38859d4b88305762d5c84016744be4730cd06a6d63c89edfe43ad070834006d5e22e5d2d900b48badb9553835714fb6b96298443e86a12cb251da0d1d2395a672da648b7de3d8adf524b7b444a36461b412a4a66b38c213efd6438990851947689b0473894d533008315090140cac3202154cb5171fc88a0843f7ca7e39edb05a567a4501b97df81c198f6998dd456bd8dc3e3ead60feea5ed050b3516b42ecd9ef169371b5a0d67b439a81dcdd27dff02dc750d661f3114af4ff00b50219c0baf1adea3c4e56d93acbb6e562f0955c16e6247a66fa2c7b5aff009178b62c80129d51454c14b816871cb77e3311504777f88a644f312972f304cac5f4fbcaec3ea8d295759659cfe0ad9170f3105c65e269549d270125ca798b2deb9944362faabff6305aaf14ef11d2487cb51675feed56044b14b1bef0472840a5c54142828588f3f9093c2992b559fef89556482ad9d44039a542ed1ef1b85a2094b32cc9e90eb52f4b8244eede1a0f6d71de346e24fb4605cacb68305e63b465ef16d566fd57d352842e093799752f6d08de035b8ee9467be00e1c5e2fbb100c6c693dbfc772081da69001083395cb2a0e9e023fdf2c6388ed509ca4adb4a8282621db9a8388e61990382a22003549a8b70dfe0c1b83ace09bf595a0b13701e04561d2079d0f785ceb02dcd408c2670dc0f791686c23b42d7de5ea2380752745301c668de9f9052aac05aa5e7a637afdf6e1230e64f799839bda4a26a6e3ea588e8e6de651162675f80acc0135f1dd8ac2b6c4429469ae232ca8317f1a5972dacccd711bb514a5c6b6632dc044413c446044b514062aeab46aef0f15fe2a10012a7292223828052a0ee3a3b05b7cf3145a635c30985a1c730a0051d2130c52c51ac447f7408a96b225f8fef58f9e35659a8669416420d16c9f505402d7820f74d4d38e669ef29a56d4c662618e157c46a58ce09445d4204a774ec9721bac5cb5d5b5e599ac3d0ca9131448588962e4ccb1c69a05a14c5ab28bc5d393f20b10b32a14555e2f5b8a1655694f022aec22cb7b39224b480a812a67f720c09d499a55d55b2865020654b506bde58af2fe05f56d29fa312923de78806e4348ec611663b19ee7a567d2803cc6e556816956589fdd74bff120d0b7055076d1be2526d6a20731bbac1c4396a5585d7796f0078f681b6b1c5c1642df797294b80dbb3b55d5bb88a45260eadbfdbeb098468545ca8d3c4ae9917a03d6d452e7d886b4c9465ed72fc2b3a222e415c563996d6ba6cbc730b3ec8b4432761a0a8fa316cafa3fbda5856af238859f0944d33888c6057688e5e5575894c5cb7202e05c8478ad9cacfe401140910b5b0183c12a20b812ef5d4a1bc6e9a1c3fdfde2eb3e97841511740a97179e91f048f58c8ace91261ae92a65266729645bf55a205b46e55b92f8a85fc5cab997cc2858e2bac0bc86e0bfa12a6d02715d1dd55e3de1205cc459588aaa57619d21ed395372c230b9aba786b9ac3013a451dcff000a1ed97cc03295d6dbbe987b5a3ac5eb1ab0728912056f074f31141e8739888130d60c5cc1aa5aef8961e93977062f1c16e2139617cc0a288375d3d04334046b39bf8fa4b52517c200d703c43d073e212eb1e174e7db705f8b36537e7fbc4772588207371f6dde7714b191801ca4a55046a5ccc6c3db349348b55fde84cae671640b292c5c90004d6b4801e8a1cd39c8367fbe1a9aca616d10a1cdb8bcdddac342c5dc146d625e93161b8806534ac1d21b5c0d99fa44159b11000f78953046944381170166b297dee03532d731c3ea55b6f746444a79bfc0b72acab08c3831d2293882de3ccd4595e22ba3b2cb0c7684060d13bab51073447a47de16fa3b452570c451bc90f365840b6155632aa50671972e76fcff0086de45b2a8d8450e00c9c1757605d1314ebb45dc09862f2e69946531cb3355a9484e77d67c4ca66b2d38e2f1d3bc3552e189c9e974db3158cab7d2e8166d5d2cf3da14366cf66ee58e4d3cc1b7ce63147911c5bfd660a146ae3a480e1b350259712e0d97b38840ac6986323676897149b3ccbdf647f1c438ec153fbe235528bc8f58b962bc102ed050f00b55cb9ff79e20a05d861a31c85ab0614b36388d9b9ef00aed9ccd701a41fceeb0cde08108b5775729216348ff007ccb5860c9157a16ef0afeb18601d2587118e155eabd1961eb0cc60cc1c8b75a806868e36d9bfda1e62556e7247786004b5e37d32d4c8c77cb72f80965ca9394c26ae05425eef40e0840c468b0b2e72ff8689c78cef8a3871c78a6909b7f12a8459a39836d5ca008d7796342e5db530f4e1283d88ad997a11eb0d4e5cba9fb7fe4bfd0387684c158a2d89990b5db9b962edb66374b08b04d622361f32a04b23011e95a866bb48841a46c6235154d38738ef09ed19ea5c288c9d6398d80eee0c0ee81b99cf7a7fde3063e58c534d94b605a691a485d1f173b4d3b9dc44376782b3d59bda577964b364155afde8c3c13bcb9b4d177894f46cd45710d3919c131955316bd6adbde2031040bbff28b50015c0f1fdf12f9586db07ce7bfd0966066ddab5777aafde6f1c1ae60eea5d5465a48291a5c390335d6aa3b4c675366dfe27382eb506b222ecc0335c4fd982b3a85d3309435421abf40971f7424800c247685ff0071da1e86bc294040a11de9b70742022b822dbb8cb30881814f46337ce59856e219f647b45588c329b2ab30b0b9e158be5e1922943844c54e56f845b20038e03a2eff00dfbcd9235819b96c25b9b62c25ee296291252a411d29c47696aaa28b43d9545c9dd6af72d64439eb0b152c9ad4bd7ac5bf4544cd2841b950cc5af3a765e3550dd131b7a147d3d2a1431d2c554c08c3b30ef5bb799a909861166451d963fc79d8b9b09ab361070d50e168c4f0c6dc9190dbed2ea5cb9a5dc642f05c70622eaaa38041b1fc742d131c76861c250b0aef0b1b2f2c5cd3b06e2bfd812551ca15b6a13b978b6d030b2a0a45200832c0006494100020e02ad5bbff007d46ba1cd2cd436e5c3841bb878582946444d8c1f4841150e91d1a8b427e0550ba94c648695f5d660cdce1e89546e166a5175e52100d5116d666671cc2ba3092f4172e1564b6ea0f914fbbd6c6a08c582e838b4cf7855d438d628d070136d0889637355a454146554b0a2a8b01b2e8564cba41bc18298c30275864b5db04f312d2b312a464e16ec6c4a360046115a05b600a14b86cba7609a703845b64050a5c365d3b0420427641e0682588ab1620abb3bc2c18305885b5b477eac71b2a5d26a0dec2f35158601b1f7fc37441186adc42c6c97e087620b4b5cc54543f163a30700c9cc1dc48cc4a86e4993b5a8eea040482269377dbf21262901b5050550da56b2aa301020822a8604cd665b21a835322bd228a7998a371783bc7a0b3d212c64427635a98643a348ec52e1f6352be09a61f1305fb2302774439a865890a740397b40eec590038b25392ae2f75347eaee55de9e3addbaacd7859152aa95861a46edbb3108f2aca429ae5555e55973c5d4afbe0fac6436676fe0947d0ca9ac79c6b89675142455c5f683161d0cc28cec601b945c60ba8679260b6877980567292a5200368f8bc47b0976f696b95b80c297a3cfe00b40db3b2471c9f319a987b4128d3880d32605bde5d160229045004b1970487623b9b2a6b88b1221475acd39014b5ad323f90988916acc4ec021bcf108b9a8c2e5d532d106b4ec97c225c0acc63e7d2a70b4de223df5a7d16218e70c532b7bcce9af2c3fbfc44d510ef4a8334063138d15cf596d48693d822b68d022ded9083c813808359439097658e570bdaf24e397167eed476afd083f9ae616cb692df862fc26fa2600a607f6daa70c41b2f06e28db3387750f96a16662f81336af4b2475dabd589b2b035700f3774399575d595e65efb43424a6bbc75936b6de3d6a59b05ae3c410b44bfc5bc47704c875702d2ee879301f14f4f4260dc20bec160618226e1181480da9a74d2ebf2207545d001aca11b5f2370149464cc71576711c08eb92a3dccbaef2c02fa256cc1da28f20a8b5289d388b563b31e8a416b8a8b620a6b9577fdef014d94b0dc3594f7318861b4706c38978b23c3879ac444afe88414af56002828e84ce0c45020f74a122ef1706cea476d8cb0e20517036512890c51cfb7f58dc1b9b605b09ec8fa8ebbb80e5e08bc0b3841f848feb71a43da5281307f8588b16e11e35fe258a8e7920dddd06159835ff504c912a44e6235b42c90e7bce735d972d73066097986e96c6254552d604bd0882f50a16a85ac4f1312a512f1724b38832c45b297d10a975440082961194628cdb236fc8b44f790cd9723fc2520c231974641a0584025a2eaea5b330b20dd5ac76b697cca440e21a02ef1538185d916215a166e59c74089614ce4d454020d23029978a7110d482bc4040b886341cf98354550f6fbf3356313c246163793d3e9297d2e893a50518823c783d56bd05e6eb293ed889f7793f986b58bb9fda6608da153d5651c02893ed514015aefc134163904296b05ce487df16a2a747ac34e98540fb32d67bb1be8205f4dda663a0fd4e221a174c08b406fb730db4522a7cf98ed5585fa5f58819560e180ae2747a9d628185dc2db4d74991b8cf74cd0bbde25145621167a45d1b0b2d559b22ac7a8f69588d44e610bf4d3e994272a1aa5127072d18abba1273a710d062c06357468a003f23b33e8a89496c2321a42f1698d0cad48449856618a14bc732a8583a7994f435056a86c413b47c75ba8607655051151042c710e07552c704cc1f67961d79982b08934ff007f98eed04344b8c00d4170f189697d5d8cc0be509f2f31369c8adaf39942156bdd7fe7c798a569a4b2fb426be5974d5c410b34bc4b5aa9642fe5b38bd39fe9c0d913221f6889414696bcc01b3aaf910f029df2f99b6f305d2f68aadbde2ceaa5a9dd463e5c4dad5d0e4f2fda5c2dd4d2f762354ed6d1f01471548841a7da2f4e4e6a00ec23fa9de7084c7c0f72688ad1ebca227120a8c5fb206dc60ce4982a370f3950464bcebb45240d0bda2f15055a99f89421874fde5dee8b7728d7e1369b5d69d814345d0a28b2f64765138ea0a0e940a816e68d7e4c1920f09e816702d56d29cad1c788b982a2716ecdca860cec99d38620b0d5372b8a8be23315748b2838c9d3bcaeba86a10aa4c0cce34b45e3ac1d48f4635888f08c29bf34f98e0bf39453a15f8b3920f96a0482bccaaabc6b7df339540732b84af22a399bd8ca105d637b84fb9da879c5e7ec90e87e407cd473b17ab1f5cdb5cc7e11caf7b21b81e5088acf2060e5a22ef69abfb7d595fbb417f2fe0891336a597873178cc1ee48b4b1a07afa31c3ab35dc9997adcfb18f858bbf31d89459efd434a35c45aba1da6ea87ed144caee555d83ad4642a2f37a88146f60ccbe97eb57141b4b494c0738b144e19d49e0ca0300341c7e4e1da4e026c44d23ccd95a515090a280563474dd0c42733d90476d75839657796e2cbd2ddb994c0ea2b2c3a42dc660e4386602565996c462fd587116f9539879f452b5830b5306ea58cd9de05c0f86121f3e4b401959aac28298ab716ce297598f1af48fef017256d04eec5e041466af43e0b970465bf131933d618f24672e2042ed6caaa58a91f06dfa4ec21e27d8f47d5854abdf495305a5e3d0de40364a54218798bd8f8822e158f9837c530055ef17fce259b36f12e438954bd216c7bcc25d92b1832e3be96ec94a0ca88a2da1968daa85ca1cb06d1155d5fca4e841c00d889a479815503b695a50118a357a2ad092482f501ab871be0622aab139ca63d65cc051758632a4e5d4ba81963329cf937d25cf9a6b4f923eeb8a55ef503128f4655d23114bf6089371e011576c7c72ddb71c81200234d7308101492af54196dc22c09e5a7d23b2eba88f0554f68b4ba17cc001d31294df2a0edd86d69dd36ec7ccc97ee81f406081573cb16a2dfa9d8ea0307925a27487b863145d7a3c4c114adb7f55cd9ba6727a9dbd16e04b9594ef1d50512e71a7e20b4d2768e98c719263539811440c88548d4720861865ccfaf6fdaa28151458a19928c03d5b1528bd825945145dafe595eee04da2d0b480b99710d0dc4bc18b5ab42ec2e0595cb698a150a398583537188e1c8174434ae354cc850cb501f15f240478067d05241a6cb2254bc4bf5f717fc46c7fb8f7e601555c0efa07598bebf43e4b8bc8abd6b2fac16f37ad1f231f316382f2af76e2d95f797896f0830c2ce809c1d3460bbf43b7cccd700341447f0b0ceb287b443b6f5883f5186400074856fb61eb6906c664611fc5d9f449b29c90ef5cc439b3a714fe62db96e09e112961945788cc2c135138c19ae23d7f1408b557001cb2dabf65ef5559555d17614336aa6dea5ad1ab168282f07e618500d0c150694305603415a3121db14a852af15c99c65c15df2b1aa4dc53a6d335685f1b6d5bb282eeab0740bb62e2d5478dacd63dccf88027103373f32cd509a0d0b2c2f39131d23e454b030b9ae98802f6381500ca19c970e6a9e48ecc0b8ad2943300238ca0a5298b2e98340160ceb81e8ea061b21058a5c1d0e0f894a9d6edfd7de6d0e497317ec15ab41093a9f23abec7a2d45bf532c91ed5c137d2f8c3d14b5f18f30b4a39438b194b183ee23ee389884497285de4bfb40b6047140c0a85675631bb06b7cebd781958de37f48421284991bc458a196000d2183f0962b4d0b5343740d0b5ac12cc965f78052e45b607c272ca11104a35bcb22b9abaa0fce45fa5c6bd2c4f1d2267b7d2b863279263406cdf4b735de250b95e3834f045a8f2422140b434a1df43d17f0e464b13503e9763c409fc702df6ca9325838466b2853f11e476889d02d577cd7aa07e61b72de88b11f458b064565038c6bbc7208b536ac5a8b704cb04621209e062eae5869bcaef34a40e5f56350c8bd2a956651bc52a57c825c651016b8b2fa912d6f15266815d03d19ce2f38ad9a00d4574ba6735c460e51482cd565c972a9a4a42b348f64590da734efa0707e78db81d0850260378cbb5cb96623d02fd42a014652fdb99a99693588fd08b314ca4b7d908cc9b32afa062f0061cd5ac07d5e2e007bdd794227b10532a9faa39d9dc62d45b95bd7ff22fd46300a9823407d88503666d3599bbc436c99f451a2e8ac797359d47a6a0a5bca5a8f899ff007823ede08b37e8e89416f0a38079f9af9fd0461c9bb2b6edb0a71d29559bb080330859e815e9612b603962b2ba4bb1d05f786ab2336847d66895a30654eb9f4cbe496a983e520f461b93dafd8382111124225226e502cc0516c16780bee7a02d12e11a0e44d9efd5e8050b8c188a9132c9ee1c62258d7a5e0ed67a2fe079948a22735321ee9fa089ab820d058bb0aa9a2f93580b9b54c14815e810db0201a7a9923fa5e48f641daba8ac795cbd5c88f59403b9e23a953285efe806299138d3ecb7ed0412044a9fb25801400c0eabf71fafa5904984e43d21856186254046e5a7f722e88e7baf429f597aa39043455b5576beb633430155c3f856580599b458ca1fbf56ac6bf40900949d88468c1c3142af14e9373d112d1e088c609e89d673c5e6002223913995aa05b9c187b972a88e4788a871af1167bccbbb676d6239a1adc02abc09f6897c008588e981b17193196001b57820e4215284b49dd5e123177eb71f4282d56c1d78d6bafe0336ce482ad504ccb94b317855bfa8beff00a04ceae46da0164012c6d0a72d419acdc7b2ee5410c06b68112ca9950c1bb4e1846d341e465c23876d844c28d618be72302ba80c14bbc4a29c395250c715014d875c06f10021bd2925ef6d63792cfdf35cf3aa4e4157afe05afc2c821e418ea618e65ab393afa1b515769a1329842ae2dc98f039ff009fa04d031d40362269215778545264c8597a6a92930902a04d38b8d679efe815090d02afc0e9104097d5ce1cb38e92deb3b12c6beb05fe4c7989338721e8841a46c610725addcb1cddc14153032f12ab5f4b97f8162dfa40870d65c4ba852a05ef4c849858d32836e58b936a707eff003dbf410b4238148a4d85075be78194e1f4474dc6a72b82ac6d0b8cb770047c4a9d2e68f781025d2b18fef0204d398b2f508708ea57a3f32c489e56e641b65afa59e276221c46fd75236b40666baa2b28c71307a64a053c99212719aa2f065f7abafd0543be0520d414a1cad8d0ce20127240a86d4106aad8f8c2e8db059828013971a67fec0a94260cbe6040a9a1ed6f796dec8ea229514c1716cf86125388767a9c5098ae308710535e8ca6c111e2000a1eb0c2f0dfa7b1caf18086c5cb83960fd05bb9d01c7646c505e6b0ea547026e695058426dfb286c168a49467da595499a2e641eb021ec558e6d648826ec91d6037134a10ed8094128e92e16e89921a898be8892f75a95350f48ff7a7a043ba3216ce84282df407e619059cd97463d79a5bb4c0168ef514afe83b87a8104d1470d31d3102a05ca940aa40882363c9280942af370fad564c4480cfab251c069fda58e50c01d58fa242788108441ac413e91298b54ac3946b62640470d4b2ef01da88af7817531770d6d3a0d30a3bdd7c403f6c1163000651d5958f1ff6282a57231a036e23cc5ccaab27e83c9118af758e002d4c5f0e42fd02a0a6e26680aa2fe65b58dccd994cd9301840079f0248649444ad883e86308604b2004017378617b581b614836988b729af295e08b8b97413d8e63a89c89777371df2d3d0701e8ca33442f1b628b162b20b63ef9feec14c46081949f7609aaf72e678aae8db068dbb1413752405a194f7acf17fa0f9352ff50f4553b05c82c50c1fecc2f44aa24e63e640b8105340c05884e8110ac408624a5d10c1b17274ff00a089188df72e32d4ba900800d4eba58ce7f1d626084177312244653e2c67de534fe20da6b963592b27d65d928784219bf088c105d9d30f970201d448aaac30075580a8eb4ba70e69588a184d0c5fa228778a28d1553742fb557d7f420fc0031682300a257098352b1e9c3153cf1048db5d7385d9e20545a51699964e9fc23a4e412563ad09541330a015de5a391fb42712f578d9f465d732d6158a63acaa5c0ebc12d0097783caa43dfaf5aceac6c359ef2c1861a8688f8b80a54e9da10a034fd9281db005946d5f67eb03da2ab661db7bbb6e13fbd075c67306ae281f48c7fec769376423ec9a9403654397017e6a2394da73fa108100a714a23a048d8c812c3bb805978a847360b8bae195c72e33965179aace2275278c056e0f898674ee08d9876969498788c768551dc7f88feb4fc63755dbd8dc14b64f90d423f862f431b6078942907e73e1750a0ddb573357cfb056fba43e9e8ca0a482dab02015b3062fc9c76877d573e629dacbba5806a2b76f332ef668c3004aba1de5e4d96979b69d269f3fa1409558008887445314e708e6710085a7ee236239111c90299d673059d2e19a8d75a881b5e18ab686538854391c444739ba7848005a3a5e6291afda53fb30892c4b1f566a777b060be73aff009083ed847f0c3a66962f38d34d7bd4a37c0413d28ddf39106904689b7b57cbb880c379fdc5700bacb0af30057bb258779023f942bde65a714dcb642e0ed7f895d88cd9f13e87de98e5956a5abd7f4364f6d4b4e62f194638b3a203a8ca605c4164662320a731e9152b98462c6c4d9138318e8f680ab1a487eecbf5a7fecccd78fdb88b0366a533f1e8cd235408040080e419c64eee02fe65a902b1a703e03d33399ffa0936c74d887060e1394460a6e900d9c996e5423e2ae7c5a7edfb62346ae56b3747433afd0e13fcd026c44c88f312dc8a1bb0d6ad6d58b555a329af328c5da70660c691db2f4ab2235946c712b059d2814aee8998d971c1e658881b3a5977f48a164d0ea4a9bccb7083ccb850e78ec1ca2d349d332b24800c4a3969d0f923951b843d1681f31237380516c516d3ad1eb99370340d99f4c02710eb62429161caf69b00cd3a055f42239e357125aad62dda72bcfed83cfe8ac97e5eb3b5814aac765be0a519af854055dd596007c45b61cdc5ce6735018728ea2885182ad060296432042d771843a1634c59e2fa4c65bbcdf58f436c454908014fa5d44b98c969880ac712d6f1a8fa568977deb07bc1578986879d7082597aed9ce4a21db73981ad06800028afd176cdbe8201c669c2ca5bd6487061d2ec983d7c86a1a2f6466222749c266bc4218e07f11b92f9831a1c3c42e61f4e8bf98350d600aaa6059ca83bfe4472ff0096ebf88270110e6e2dd6267ba09ed1f9fed6a185929402b7c0f76e207ab48f28ecc0507350be5db04979af9952cd2ef247b641b0d25a58082c0297e8b807b03292c790a195828ed6aa40e5c665645433132fa2625a08d5c125b37322179088214653221d2afdd2dbfb406e3d18205331b55374298d7d62f8c8094dbde36020ae171a59f002dfb4af7a029fcca8ee08cbbd18f784cb08b8ba5687de654af7a04766b730632843d8313006de08c2464e253ab9399bc4a97323a74b66963dd15fa2f4316a41a8b176154359e4d60a7aa506e0f301168958b87916c6433f0c1c19cb8c6576d302a04c173f32e7ae219af332b326a78400306a8cc5c56734f9331c257f038c4548e74b7e8c4c0be942ff001b9920d971896139be66d08da5588e552a0332183ae6e209276f585d4facf972cfe83f45100a8cd7512e8d0e4e725618198c3d61452d7585d0d76883239ccd1103aa84201f24c2af740d3b148c8fd22a2c734009476d3c3fb4be279bd1120dc2cae1be18ce6ab9c712fd579eb50c1205d830ac73e61a14b4965ea8ca510aaa91b78a9dbf1e6559ba8c45ef116b0e83fa64442f0ad8ff0045a8c402094ade8a814838588a057e25e1af88abb774980d2a144234f1069289370d8b7f873797dc15ff00b1372c6707d6674c0e798d53b5d891da281de076848695705846e026acddce2c23822d461a8d6941b19419a85d43de01af5c1318bc6c3fa2b1d6285312911a430950fc8186b40d2bb16a8002c6345858a86e16b97dc93ad4c8d06ed0fef32ff52802bde887296d29ad0fdcf45c7a3a8cd9175a94d928318f885bb1c585cce20bef8bb80f38738c66016064423b304c660b066e01dd973041ec978a852dee341aa7ace52007a2d0c0a1de4b44d3f45ae63d9d84b72652cbaa2802346001a95af5e22a0e734cc8cf152cad0c34bb1a2cc26269aa19afeb38c611d4592d85afc7c4ba02ef38e618f794baefe2240b9cd27d25d9bae906e48adb46d98df64104f7479a2f748ee0acc15d65e9488e91dd3d5b867c214dbdcb0505f1400a3f458ad1bf105d82d4268581722dcece46f9ebcf98954eb70c58a6e60a1dd96f4a75491576decdfda66b67de1a620bc127897bdcba9903be9550584be4986d3c406502763ec4779405638831c7e2351a2aa0148966c8a4c3cff788c905869e267890ab52505683805c6213f9eaca818508a36dfe8d64b8b477139c160a951abb0f9950a33da355141f30167bd4716d31d11f50c4da24a2018d2da9fda99853dad95870618150e96408da78c3352c6f1a9a4e08bb0710d469eb016768e5416ef8000a16016acd7e8e37072ed600bd6e802c44b4a304049404b11a4139251a0f05cbca2ae2eb5f5864c2dea5b08d7c4bc1bf7950d6392528a791d46962bc5cb2eaccb96d7b2c242e0852ec90ea6af7e22db17f58caec878e0c2ae202d69fb30aa8938ba0cec3010b40b761fa3a822b56140b278166a016ae20a5cb16a5a27ed15259784ed2b285933548fcf129a53fbc6bcaaf336b76c658978c6b843164acf48257bb3009027351c36bce3304a609b80d0241381f64a2821a9579aae81794a319575fa3c3f115cad387088a284451114887e29ab0d0eb09440038040688456b0c2c85b0d545f79a143bdccf50e3304c35d8620b99b5e9d425c82d6fac3420355cc0acf745496dee0b1771b1c468071538c4add81400485c61db450e900502a02dd0507e90cb0b962282ed2134a305b2c3a27a06f40b5619b5626314e9300dd1181639802d0f11d673554cb358b589e8a8bdbd514ab423dd28157955416805a87948da068a50b2e7208376450a7b727a03100501838fd27ad025562650b68c611044021535a3d564d16b4348bb22473825667116867de6cda965ae7d6e34223ac040d2055a180015583863aab605112ed0ee5165d0f4a88996bd8d5c403cd14983c2ea25a06907c87e97c650cfbb6268c4a6d32b24120ca9ad52968dabadd9269b6b0aee49a156b0039a8b9d46a101de5a12b9ba0a1467a8da857658e0b8b00e92b5338ae7230b9a52cb5229b0c91ea4410660b53b2e28c505356e5ca602296058ce6266e1a927a10a70037064b005d80b16151530e023e0692ab6a3955555ff00f6cbffd9 \ No newline at end of file diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index 4bf211467d..601309c29e 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -17,14 +17,12 @@ if __name__ == '__main__': input1 = PyPDF2.PdfFileReader(open(pdf, "rb")) - page0 = input1.getPage(2) + page0 = input1.getPage(30) if '/XObject' in page0['/Resources']: xObject = page0['/Resources']['/XObject'].getObject() - print(xObject) for obj in xObject: - print(xObject[obj]) if xObject[obj]['/Subtype'] == '/Image': size = (xObject[obj]['/Width'], xObject[obj]['/Height']) data = xObject[obj].getData() @@ -45,6 +43,10 @@ img = open(obj[1:] + ".jp2", "wb") img.write(data) img.close() + elif xObject[obj]['/Filter'] == '/CCITTFaxDecode': + img = open(obj[1:] + ".tiff", "wb") + img.write(data) + img.close() else: img = Image.frombytes(mode, size, data) img.save(obj[1:] + ".png") diff --git a/Tests/tests.py b/Tests/tests.py index 83b5951f8f..3c310d94cd 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -1,6 +1,7 @@ import os import sys import unittest +import binascii from PyPDF2 import PdfFileReader, PdfFileWriter @@ -37,6 +38,28 @@ def test_PdfReaderFileLoad(self): msg='PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' % (pdftext, ipdf_p1_text)) + def test_PdfReaderJpegImage(self): + ''' + Test loading and parsing of a file. Extract the image of the file and compare to expected + textual output. Expected outcome: file loads, image matches expected. + ''' + + with open(os.path.join(RESOURCE_ROOT, 'jpeg.pdf'), 'rb') as inputfile: + # Load PDF file from file + ipdf = PdfFileReader(inputfile) + + # Retrieve the text of the image + with open(os.path.join(RESOURCE_ROOT, 'jpeg.txt'), 'r') as pdftext_file: + imagetext = pdftext_file.read() + + ipdf_p0 = ipdf.getPage(0) + xObject = ipdf_p0['/Resources']['/XObject'].getObject() + data = xObject['/Im4'].getData() + + # Compare the text of the PDF to a known source + self.assertEqual(binascii.hexlify(data), imagetext, + msg='PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' + % (imagetext, binascii.hexlify(data))) class AddJsTestCase(unittest.TestCase): From b0ace625c149e5bb6376400efe892d78d15d96b2 Mon Sep 17 00:00:00 2001 From: Sylvain Pelissier Date: Thu, 21 Jan 2016 13:48:11 +0100 Subject: [PATCH 011/145] Correct test for python3 --- Tests/tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/tests.py b/Tests/tests.py index 3c310d94cd..0e59af11c7 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -57,9 +57,9 @@ def test_PdfReaderJpegImage(self): data = xObject['/Im4'].getData() # Compare the text of the PDF to a known source - self.assertEqual(binascii.hexlify(data), imagetext, + self.assertEqual(binascii.hexlify(data).decode(), imagetext, msg='PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' - % (imagetext, binascii.hexlify(data))) + % (imagetext, binascii.hexlify(data).decode())) class AddJsTestCase(unittest.TestCase): From 5735cb742a45a503e8eb7e409067f7c3d4cb9158 Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Wed, 18 May 2016 11:47:24 -0500 Subject: [PATCH 012/145] Version 1.26.0 update --- CHANGELOG | 29 ++++++++++++++++++++++++++++- PyPDF2/_version.py | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fb89b6dc66..fc245b4b1c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,31 @@ -Patch 1.25.1, 2015-07-20 +Version 1.26.0, 2016-05-18 +-------------------------- + + - NOTE: Active maintenance on PyPDF2 is resuming after a hiatus + + - Fixed a bug where image resources where incorrectly + overwritten when merging pages + + - Added dictionary for JavaScript actions to the root (louib) + + - Added unit tests for the JS functionality (louib) + + - Add more Python 3 compatibility when reading inline images (im2703 + and (VyacheslavHashov) + + - Return NullObject instead of raising error when failing to resolve + object (ctate) + + - Don't output warning for non-zeroed xref table when strict=False + (BenRussert) + + - Remove extraneous zeroes from output formatting (speedplane) + + - Fix bug where reading an inline image would cut off prematurely + in certain cases (speedplane) + + +Patch 1.25.1, 2015-07-20 - Fix bug when parsing inline images. Occurred when merging certain pages with inline images diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index 760870ccf1..5fc7041e25 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = '1.25.1' +__version__ = '1.26.0' From b030b7fbc7aad562ad31a500bd11dc980cf92d85 Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Thu, 19 May 2016 12:08:50 -0500 Subject: [PATCH 013/145] Read Indirect Objects with a sign, fixes #248 --- PyPDF2/generic.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index c4332297d3..c5f55f260e 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -48,7 +48,7 @@ ObjectPrefix = b_('/<[tf(n%') NumberSigns = b_('+-') -IndirectPattern = re.compile(b_(r"(\d+)\s+(\d+)\s+R[^a-zA-Z]")) +IndirectPattern = re.compile(b_(r"[+-]?(\d+)\s+(\d+)\s+R[^a-zA-Z]")) def readObject(stream, pdf): @@ -87,9 +87,6 @@ def readObject(stream, pdf): return readObject(stream, pdf) else: # number object OR indirect reference - if tok in NumberSigns: - # number - return NumberObject.readFromStream(stream) peek = stream.read(20) stream.seek(-len(peek), 1) # reset to start if IndirectPattern.match(peek) != None: From 26e50775ed5fbc36982719b22040454bc1d96cac Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Thu, 19 May 2016 17:16:16 -0500 Subject: [PATCH 014/145] Appropriate error message for closed file, warn when returning null object, resolves #263 --- PyPDF2/pdf.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 9979414ff0..13dbc38eea 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -571,6 +571,8 @@ def _sweepIndirectReferences(self, externMap, data): self._sweepIndirectReferences(externMap, realdata) return data else: + if data.pdf.stream.closed: + raise ValueError("I/O operation on closed file: {}".format(data.pdf.stream.name)) newobj = externMap.get(data.pdf, {}).get(data.generation, {}).get(data.idnum, None) if newobj == None: try: @@ -588,6 +590,9 @@ def _sweepIndirectReferences(self, externMap, data): return newobj_ido except ValueError: # Unable to resolve the Object, returning NullObject instead. + warnings.warn("Unable to resolve [{}: {}], returning NullObject instead".format( + data.__class__.__name__, data + )) return NullObject() return newobj else: From 5bbd5aff8cfe245a61b8a4ace2d06d78eac1fa9c Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Mon, 23 May 2016 14:41:03 -0500 Subject: [PATCH 015/145] Python 3 type fixes in LZWDecode --- PyPDF2/filters.py | 2 +- PyPDF2/pdf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 3717fd4c58..86aa1ddcad 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -202,7 +202,7 @@ def nextCode(self): while fillbits>0 : if self.bytepos >= len(self.data): return -1 - nextbits=ord(self.data[self.bytepos]) + nextbits=ord_(self.data[self.bytepos]) bitsfromhere=8-self.bitpos if bitsfromhere>fillbits: bitsfromhere=fillbits diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 13dbc38eea..80fb4631ca 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2672,7 +2672,7 @@ def __init__(self, stream, pdf): if isinstance(stream, ArrayObject): data = b_("") for s in stream: - data += s.getObject().getData() + data += b_(s.getObject().getData()) stream = BytesIO(b_(data)) else: stream = BytesIO(b_(stream.getData())) From ce5f7ec80de0a5dd9593b97756e9c2fd4937c4e3 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Mon, 13 Jun 2016 16:35:50 -0500 Subject: [PATCH 016/145] Added URI linking Uses same structure as addLink addURI --- PyPDF2/pdf.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 80fb4631ca..c1d869e865 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -895,6 +895,73 @@ def removeText(self, ignoreByteStringObject=False): pageRef.__setitem__(NameObject('/Contents'), content) + + def addURI(self, pagenum, uri, rect, border=None): + """ + + Add an URI from a rectangular area to the specified page. + This uses the basic structure of AddLink + + :param int pagenum: index of the page on which to place the link. + :param int uri: string -- uri of resource to link to. + :param rect: :class:`RectangleObject` or array of four + integers specifying the clickable rectangular area + ``[xLL, yLL, xUR, yUR]``, or string in the form ``"[ xLL yLL xUR yUR ]"``. + :param border: if provided, an array describing border-drawing + properties. See the PDF spec for details. No border will be + drawn if this argument is omitted. + + REMOVED FIT/ZOOM ARG + -John Mulligan + + """ + + + + + pageLink = self.getObject(self._pages)['/Kids'][pagenum] + pageRef = self.getObject(pageLink) + + if border is not None: + borderArr = [NameObject(n) for n in border[:3]] + if len(border) == 4: + dashPattern = ArrayObject([NameObject(n) for n in border[3]]) + borderArr.append(dashPattern) + else: + borderArr = [NumberObject(2)] * 3 + + if isString(rect): + rect = NameObject(rect) + elif isinstance(rect, RectangleObject): + pass + else: + rect = RectangleObject(rect) + + lnk2 = DictionaryObject() + + lnk2.update({ + NameObject('/S'): NameObject('/URI'), + NameObject('/URI'): TextStringObject(uri) + }); + lnk = DictionaryObject() + lnk.update({ + NameObject('/Type'): NameObject('/Annot'), + NameObject('/Subtype'): NameObject('/Link'), + NameObject('/P'): pageLink, + NameObject('/Rect'): rect, + NameObject('/H'): NameObject('/I'), + NameObject('/Border'): ArrayObject(borderArr), + NameObject('/A'): lnk2 + }) + lnkRef = self._addObject(lnk) + + if "/Annots" in pageRef: + pageRef['/Annots'].append(lnkRef) + else: + pageRef[NameObject('/Annots')] = ArrayObject([lnkRef]) + + _valid_layouts = ['/NoLayout', '/SinglePage', '/OneColumn', '/TwoColumnLeft', '/TwoColumnRight', '/TwoPageLeft', '/TwoPageRight'] + def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): """ Add an internal link from a rectangular area to the specified page. From 036789a4664e3f572292bc7dceec10f08b7dbf62 Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Thu, 30 Jun 2016 15:26:13 -0500 Subject: [PATCH 017/145] Write binary data comment --- PyPDF2/pdf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 80fb4631ca..de04d734ef 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -485,6 +485,7 @@ def write(self, stream): # Begin writing: object_positions = [] stream.write(self._header + b_("\n")) + stream.write(b_("%\xE2\xE3\xCF\xD3\n")) for i in range(len(self._objects)): idnum = (i + 1) obj = self._objects[i] From 60dff8d785dcd4bea20be35b0f6a249ba4d44216 Mon Sep 17 00:00:00 2001 From: Manuel Zapata Date: Fri, 12 Aug 2016 11:36:36 +0100 Subject: [PATCH 018/145] Add support for PNG filters average and paeth --- PyPDF2/filters.py | 15 ++++++++++++++- PyPDF2/utils.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index ea8361c040..f6b2158b92 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -34,7 +34,9 @@ __author__ = "Mathieu Fenniak" __author_email__ = "biziqe@mathieu.fenniak.net" -from .utils import PdfReadError, ord_, chr_ +import math + +from .utils import PdfReadError, ord_, chr_, paethPredictor from sys import version_info if version_info < ( 3, 0 ): from cStringIO import StringIO @@ -136,6 +138,17 @@ def decode(data, decodeParms): elif filterByte == 2: for i in range(1, rowlength): rowdata[i] = (rowdata[i] + prev_rowdata[i]) % 256 + elif filterByte == 3: + for i in range(2, rowlength): + floor = math.floor(rowdata[i-1] + prev_rowdata[i])/2 + rowdata[i] = (rowdata[i] + int(floor)) % 256 + elif filterByte == 4: + for i in range(2, rowlength): + left = rowdata[i - 1] + up = prev_rowdata[i] + up_left = prev_rowdata[i - 1] + paeth = paethPredictor(left, up, up_left) + rowdata[i] = (rowdata[i] + paeth) % 256 else: # unsupported PNG filter raise PdfReadError("Unsupported PNG filter %r" % filterByte) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 6772c0c1eb..e7419e55b3 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -283,3 +283,17 @@ def hexStr(num): WHITESPACES = [b_(x) for x in [' ', '\n', '\r', '\t', '\x00']] + + +def paethPredictor(left, up, up_left): + p = left + up - up_left + dist_left = abs(p - left) + dist_up = abs(p - up) + dist_up_left = abs(p - up_left) + + if dist_left <= dist_up and dist_left <= dist_up_left: + return left + elif dist_up <= dist_up_left: + return up + else: + return up_left From 60abb83056b34a35dcec51a68bdbb2e58e6a57d4 Mon Sep 17 00:00:00 2001 From: Juan Pablo Gaviria Date: Fri, 12 Aug 2016 08:35:18 -0500 Subject: [PATCH 019/145] Fix filter type 3 and 4 byte range --- PyPDF2/filters.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index f6b2158b92..bbf9556534 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -139,14 +139,15 @@ def decode(data, decodeParms): for i in range(1, rowlength): rowdata[i] = (rowdata[i] + prev_rowdata[i]) % 256 elif filterByte == 3: - for i in range(2, rowlength): - floor = math.floor(rowdata[i-1] + prev_rowdata[i])/2 + for i in range(1, rowlength): + left = rowdata[i-1] if i > 1 else 0 + floor = math.floor(left + prev_rowdata[i])/2 rowdata[i] = (rowdata[i] + int(floor)) % 256 elif filterByte == 4: - for i in range(2, rowlength): - left = rowdata[i - 1] + for i in range(1, rowlength): + left = rowdata[i - 1] if i > 1 else 0 up = prev_rowdata[i] - up_left = prev_rowdata[i - 1] + up_left = prev_rowdata[i - 1] if i > 1 else 0 paeth = paethPredictor(left, up, up_left) rowdata[i] = (rowdata[i] + paeth) % 256 else: From ad90b69592d30ce8e7f787d1f1f7fceeb77ec9ed Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Wed, 17 Aug 2016 13:28:21 -0500 Subject: [PATCH 020/145] Fixed TabError in Py3 --- PyPDF2/pdf.py | 121 +++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 65 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index b47247fd89..d1751a7865 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -896,73 +896,64 @@ def removeText(self, ignoreByteStringObject=False): pageRef.__setitem__(NameObject('/Contents'), content) - def addURI(self, pagenum, uri, rect, border=None): - """ - - Add an URI from a rectangular area to the specified page. - This uses the basic structure of AddLink - - :param int pagenum: index of the page on which to place the link. - :param int uri: string -- uri of resource to link to. - :param rect: :class:`RectangleObject` or array of four - integers specifying the clickable rectangular area - ``[xLL, yLL, xUR, yUR]``, or string in the form ``"[ xLL yLL xUR yUR ]"``. - :param border: if provided, an array describing border-drawing - properties. See the PDF spec for details. No border will be - drawn if this argument is omitted. - - REMOVED FIT/ZOOM ARG - -John Mulligan - - """ - - - - - pageLink = self.getObject(self._pages)['/Kids'][pagenum] - pageRef = self.getObject(pageLink) - - if border is not None: - borderArr = [NameObject(n) for n in border[:3]] - if len(border) == 4: - dashPattern = ArrayObject([NameObject(n) for n in border[3]]) - borderArr.append(dashPattern) - else: - borderArr = [NumberObject(2)] * 3 - - if isString(rect): - rect = NameObject(rect) - elif isinstance(rect, RectangleObject): - pass - else: - rect = RectangleObject(rect) - - lnk2 = DictionaryObject() - - lnk2.update({ - NameObject('/S'): NameObject('/URI'), - NameObject('/URI'): TextStringObject(uri) - }); - lnk = DictionaryObject() - lnk.update({ - NameObject('/Type'): NameObject('/Annot'), - NameObject('/Subtype'): NameObject('/Link'), - NameObject('/P'): pageLink, - NameObject('/Rect'): rect, - NameObject('/H'): NameObject('/I'), - NameObject('/Border'): ArrayObject(borderArr), - NameObject('/A'): lnk2 - }) - lnkRef = self._addObject(lnk) - - if "/Annots" in pageRef: - pageRef['/Annots'].append(lnkRef) - else: - pageRef[NameObject('/Annots')] = ArrayObject([lnkRef]) + """ + Add an URI from a rectangular area to the specified page. + This uses the basic structure of AddLink + + :param int pagenum: index of the page on which to place the URI action. + :param int uri: string -- uri of resource to link to. + :param rect: :class:`RectangleObject` or array of four + integers specifying the clickable rectangular area + ``[xLL, yLL, xUR, yUR]``, or string in the form ``"[ xLL yLL xUR yUR ]"``. + :param border: if provided, an array describing border-drawing + properties. See the PDF spec for details. No border will be + drawn if this argument is omitted. + + REMOVED FIT/ZOOM ARG + -John Mulligan + """ + + pageLink = self.getObject(self._pages)['/Kids'][pagenum] + pageRef = self.getObject(pageLink) + + if border is not None: + borderArr = [NameObject(n) for n in border[:3]] + if len(border) == 4: + dashPattern = ArrayObject([NameObject(n) for n in border[3]]) + borderArr.append(dashPattern) + else: + borderArr = [NumberObject(2)] * 3 + + if isString(rect): + rect = NameObject(rect) + elif isinstance(rect, RectangleObject): + pass + else: + rect = RectangleObject(rect) + + lnk2 = DictionaryObject() + lnk2.update({ + NameObject('/S'): NameObject('/URI'), + NameObject('/URI'): TextStringObject(uri) + }); + lnk = DictionaryObject() + lnk.update({ + NameObject('/Type'): NameObject('/Annot'), + NameObject('/Subtype'): NameObject('/Link'), + NameObject('/P'): pageLink, + NameObject('/Rect'): rect, + NameObject('/H'): NameObject('/I'), + NameObject('/Border'): ArrayObject(borderArr), + NameObject('/A'): lnk2 + }) + lnkRef = self._addObject(lnk) + + if "/Annots" in pageRef: + pageRef['/Annots'].append(lnkRef) + else: + pageRef[NameObject('/Annots')] = ArrayObject([lnkRef]) - _valid_layouts = ['/NoLayout', '/SinglePage', '/OneColumn', '/TwoColumnLeft', '/TwoColumnRight', '/TwoPageLeft', '/TwoPageRight'] - def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): """ Add an internal link from a rectangular area to the specified page. From d7f5eafddb46106850c036d118d33f0416ef3441 Mon Sep 17 00:00:00 2001 From: oscardssmith Date: Mon, 22 Aug 2016 15:23:34 -0400 Subject: [PATCH 021/145] speed up escape sequences Changes readStringFromStream to use a dict of escapes rather than a long if/else chain. (should lead to speed up, and looks cleaner) --- PyPDF2/generic.py | 99 ++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 10e1a355d7..2f93d3c28b 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -340,55 +340,56 @@ def readStringFromStream(stream): break elif tok == b_("\\"): tok = stream.read(1) - if tok == b_("n"): - tok = b_("\n") - elif tok == b_("r"): - tok = b_("\r") - elif tok == b_("t"): - tok = b_("\t") - elif tok == b_("b"): - tok = b_("\b") - elif tok == b_("f"): - tok = b_("\f") - elif tok == b_("c"): - tok = b_("\c") - elif tok == b_("("): - tok = b_("(") - elif tok == b_(")"): - tok = b_(")") - elif tok == b_("/"): - tok = b_("/") - elif tok == b_("\\"): - tok = b_("\\") - elif tok in (b_(" "), b_("/"), b_("%"), b_("<"), b_(">"), b_("["), - b_("]"), b_("#"), b_("_"), b_("&"), b_('$')): - # odd/unnessecary escape sequences we have encountered - tok = b_(tok) - elif tok.isdigit(): - # "The number ddd may consist of one, two, or three - # octal digits; high-order overflow shall be ignored. - # Three octal digits shall be used, with leading zeros - # as needed, if the next character of the string is also - # a digit." (PDF reference 7.3.4.2, p 16) - for i in range(2): - ntok = stream.read(1) - if ntok.isdigit(): - tok += ntok - else: - break - tok = b_(chr(int(tok, base=8))) - elif tok in b_("\n\r"): - # This case is hit when a backslash followed by a line - # break occurs. If it's a multi-char EOL, consume the - # second character: - tok = stream.read(1) - if not tok in b_("\n\r"): - stream.seek(-1, 1) - # Then don't add anything to the actual string, since this - # line break was escaped: - tok = b_('') - else: - raise utils.PdfReadError(r"Unexpected escaped string: %s" % tok) + ESCAPE_DICT = {b_("n") : b_("\n"), + b_("r") : b_("\r"), + b_("t") : b_("\t"), + b_("b") : b_("\b"), + b_("f") : b_("\f"), + b_("c") : b_("\c"), + b_("(") : b_("("), + b_(")") : b_(")"), + b_("/") : b_("/"), + b_("\\") : b_("\\"), + b_(" ") : b_(" "), + b_("/") : b_("/"), + b_("%") : b_("%"), + b_("<") : b_("<"), + b_(">") : b_(">"), + b_("[") : b_("["), + b_("]") : b_("]"), + b_("#") : b_("#"), + b_("_") : b_("_"), + b_("&") : b_("&"), + b_('$') : b_('$'), + } + try: + tok = escape_dict[tok] + except KeyError: + if tok.isdigit(): + # "The number ddd may consist of one, two, or three + # octal digits; high-order overflow shall be ignored. + # Three octal digits shall be used, with leading zeros + # as needed, if the next character of the string is also + # a digit." (PDF reference 7.3.4.2, p 16) + for i in range(2): + ntok = stream.read(1) + if ntok.isdigit(): + tok += ntok + else: + break + tok = b_(chr(int(tok, base=8))) + elif tok in b_("\n\r"): + # This case is hit when a backslash followed by a line + # break occurs. If it's a multi-char EOL, consume the + # second character: + tok = stream.read(1) + if not tok in b_("\n\r"): + stream.seek(-1, 1) + # Then don't add anything to the actual string, since this + # line break was escaped: + tok = b_('') + else: + raise utils.PdfReadError(r"Unexpected escaped string: %s" % tok) txt += tok return createStringObject(txt) From e9d0b86cc541413dc8516dbd5675b14c1453d0c1 Mon Sep 17 00:00:00 2001 From: Jordan Date: Tue, 27 Sep 2016 12:55:53 -0400 Subject: [PATCH 022/145] README.md: fix sample code directory name --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23a1eef766..a59bb5cd78 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ http://mstamy2.github.io/PyPDF2/ ##Examples -Please see `sample code` folder +Please see the `Sample_Code` folder. ##Documentation @@ -31,4 +31,4 @@ Tests can be run from the command line by: ```bash python -m unittest Tests.tests -``` \ No newline at end of file +``` From 8ba44f2099f8971cd8885c8bc3786ca2455157f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=81uszczyk?= Date: Fri, 21 Oct 2016 21:35:39 +0200 Subject: [PATCH 023/145] Fix PdfFileMerger for file objects on Python 3. The previous check was always evaluated to False on Python 3, so I replaced it with a duck-typing one compatible with both Python versions. --- PyPDF2/merger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index 27702add39..c3373e4459 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -113,7 +113,7 @@ def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=T if isString(fileobj): fileobj = file(fileobj, 'rb') my_file = True - elif isinstance(fileobj, file): + elif hasattr(fileobj, "seek") and hasattr(fileobj, "read"): fileobj.seek(0) filecontent = fileobj.read() fileobj = StreamIO(filecontent) From 77629e6266709b65cce24d6346b8be0bfa29cf90 Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Tue, 1 Nov 2016 12:23:59 -0500 Subject: [PATCH 024/145] Correct name error --- PyPDF2/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 2f93d3c28b..959957ddee 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -363,7 +363,7 @@ def readStringFromStream(stream): b_('$') : b_('$'), } try: - tok = escape_dict[tok] + tok = ESCAPE_DICT[tok] except KeyError: if tok.isdigit(): # "The number ddd may consist of one, two, or three From 83ff6fea00de5ab0b82704c4e8aa4258c9e504d6 Mon Sep 17 00:00:00 2001 From: Moshe Kaplan Date: Wed, 16 Nov 2016 09:04:17 -0500 Subject: [PATCH 025/145] Additional error output for failed encryption --- PyPDF2/pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index d1751a7865..58f4ca6ee8 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2057,7 +2057,7 @@ def _decrypt(self, password): if encrypt['/Filter'] != '/Standard': raise NotImplementedError("only Standard PDF encryption handler is available") if not (encrypt['/V'] in (1, 2)): - raise NotImplementedError("only algorithm code 1 and 2 are supported") + raise NotImplementedError("only algorithm code 1 and 2 are supported. This PDF uses code %s" % encrypt['/V']) user_password, key = self._authenticateUserPassword(password) if user_password: self._decryption_key = key From cc2621b4a70aa940f220f46a11c2a2e6d1251229 Mon Sep 17 00:00:00 2001 From: speedplane Date: Tue, 7 Mar 2017 03:01:45 -0500 Subject: [PATCH 026/145] Fix this off-by-one error. ASCII 85 can represent 2^32-1. --- PyPDF2/filters.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 3717fd4c58..3bdca32e0e 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -296,7 +296,8 @@ def decode(data, decodeParms=None): group[2] * (85**2) + \ group[3] * 85 + \ group[4] - assert b < (2**32 - 1) + # Can represent values between 0 and 2^32 - 1 + assert b <= (2**32 - 1) c4 = chr((b >> 0) % 256) c3 = chr((b >> 8) % 256) c2 = chr((b >> 16) % 256) From 62c1016961bac18f25da8885a03de5feb54f561b Mon Sep 17 00:00:00 2001 From: Subhrajyoti Sen Date: Sat, 25 Mar 2017 11:25:06 +0530 Subject: [PATCH 027/145] Update README to new markdown specs --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a59bb5cd78..233201b272 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#PyPDF2 +# PyPDF2 PyPDF2 is a pure-python PDF library capable of splitting, merging together, cropping, and transforming @@ -10,22 +10,22 @@ as merge entire files together. Homepage http://mstamy2.github.io/PyPDF2/ -##Examples +## Examples Please see the `Sample_Code` folder. -##Documentation +## Documentation Documentation is available at https://pythonhosted.org/PyPDF2/ -##FAQ +## FAQ Please see http://mstamy2.github.io/PyPDF2/FAQ.html -##Tests +## Tests PyPDF2 includes a test suite built on the unittest framework. All tests are located in the "Tests" folder. Tests can be run from the command line by: From c3231c7ded644f9afe891a9a1e58aa09b60bbf97 Mon Sep 17 00:00:00 2001 From: Kyle Gengler Date: Tue, 28 Mar 2017 06:58:36 -0500 Subject: [PATCH 028/145] update _rotate function to account for /Rotate being set to an IndirectObject instead of an int --- PyPDF2/pdf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 58f4ca6ee8..c4a25d6234 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2226,7 +2226,8 @@ def rotateCounterClockwise(self, angle): return self def _rotate(self, angle): - currentAngle = self.get("/Rotate", 0) + rotateObj = self.get("/Rotate", 0) + currentAngle = rotateObj if isinstance(rotateObj, int) else rotateObj.getObject() self[NameObject("/Rotate")] = NumberObject(currentAngle + angle) def _mergeResources(res1, res2, resource): From 7844852204c08694c2a172fa6f65615d2c06e7c5 Mon Sep 17 00:00:00 2001 From: Caio Moreira Gomes Date: Sun, 7 May 2017 17:24:57 -0300 Subject: [PATCH 029/145] Addition of line break for PDF line separators, i've been useing it and my files where only one line. --- PyPDF2/pdf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 58f4ca6ee8..cda9f3f3ad 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2665,6 +2665,7 @@ def extractText(self): _text = operands[0] if isinstance(_text, TextStringObject): text += _text + text += "\n" elif operator == b_("T*"): text += "\n" elif operator == b_("'"): From fc87287f136ff04502c27cf64bd9d00d7eee5c9c Mon Sep 17 00:00:00 2001 From: lmwgv Date: Mon, 12 Feb 2018 11:06:45 +0100 Subject: [PATCH 030/145] Improve performance of RC4_encrypt in utils.py Avoid string concatenation until after the loop. --- PyPDF2/utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 6b536a0374..2120c70215 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -172,14 +172,14 @@ def RC4_encrypt(key, plaintext): j = (j + S[i] + ord_(key[i % len(key)])) % 256 S[i], S[j] = S[j], S[i] i, j = 0, 0 - retval = b_("") + retval = [] for x in range(len(plaintext)): i = (i + 1) % 256 j = (j + S[i]) % 256 S[i], S[j] = S[j], S[i] t = S[(S[i] + S[j]) % 256] - retval += b_(chr(ord_(plaintext[x]) ^ t)) - return retval + retval.append(b_(chr(ord_(plaintext[x]) ^ t))) + return b_("").join(retval) def matrixMultiply(a, b): From 772ef3f9cb7baabb6b5c37d93b71bdfa3e25267f Mon Sep 17 00:00:00 2001 From: Matthew Stamy Date: Mon, 12 Mar 2018 14:31:39 -0500 Subject: [PATCH 031/145] Merging from @sylvainpelissier --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da121d8b3e..7301307855 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#PyPDF2 [![Build Status](https://travis-ci.org/sylvainpelissier/PyPDF2.svg)](https://travis-ci.org/sylvainpelissier/PyPDF2) +#PyPDF2 PyPDF2 is a pure-python PDF library capable of splitting, merging together, cropping, and transforming From 22ebc8dc866bcbf1e37cf7058949100cd0997be7 Mon Sep 17 00:00:00 2001 From: Joshua Massover Date: Tue, 15 May 2018 14:34:03 -0400 Subject: [PATCH 032/145] Relax assertions when strict is False --- PyPDF2/pdf.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 9fff2a835a..c5cae9e673 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1667,11 +1667,12 @@ def getObject(self, indirectReference): raise utils.PdfReadError("Expected object ID (%d %d) does not match actual (%d %d); xref table not zero-indexed." \ % (indirectReference.idnum, indirectReference.generation, idnum, generation)) else: pass # xref table is corrected in non-strict mode - elif idnum != indirectReference.idnum: + elif idnum != indirectReference.idnum and self.strict: # some other problem raise utils.PdfReadError("Expected object ID (%d %d) does not match actual (%d %d)." \ % (indirectReference.idnum, indirectReference.generation, idnum, generation)) - assert generation == indirectReference.generation + if self.strict: + assert generation == indirectReference.generation retval = readObject(self.stream, self) # override encryption is used for the /Encrypt dictionary From 6ab2a2d5599e59c118ed985d5101a46f4f5c530c Mon Sep 17 00:00:00 2001 From: Andrew Sears Date: Wed, 3 Nov 2021 07:15:14 -0400 Subject: [PATCH 033/145] Fix broken link in setup script --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 9e16ec8ab4..d9118ce5af 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ author_email="biziqe@mathieu.fenniak.net", maintainer="Phaseit, Inc.", maintainer_email="PyPDF2@phaseit.net", - url="http://mstamy2.github.com/PyPDF2", + url="https://mstamy2.github.io/PyPDF2", classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", From cd435fd60c1fcd57aac4a227d8e608f5f8af05ff Mon Sep 17 00:00:00 2001 From: Ophelia Date: Tue, 5 Apr 2022 14:19:18 -0700 Subject: [PATCH 034/145] DEV: Add Python 3.8 to tox.ini (#565) --- tox.ini | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 02e3dfa66a..7039acbf9d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - py26, py27, py33, py34, py35 + py26, py27, py33, py34, py35, py38 [testenv] commands = python -m unittest Tests.tests @@ -19,3 +19,6 @@ basepython = python3.4 [testenv:py35] basepython = python3.5 + +[testenv:py38] +basepython = python3.8 From 77c5d26344249f2ce7cc464214a479d2e1a702e2 Mon Sep 17 00:00:00 2001 From: Jeff Fessler Date: Tue, 5 Apr 2022 17:23:47 -0400 Subject: [PATCH 035/145] DOC: Fix removeText docstring (#550) --- PyPDF2/pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index c5cae9e673..1e1bcc7e92 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -844,7 +844,7 @@ def removeImages(self, ignoreByteStringObject=False): def removeText(self, ignoreByteStringObject=False): """ - Removes images from this output. + Removes text from this output. :param bool ignoreByteStringObject: optional parameter to ignore ByteString Objects. From ac3d52809c01cccde94eb7fce3ab725432a39053 Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Wed, 6 Apr 2022 07:27:32 +1000 Subject: [PATCH 036/145] DOC: Fix typo: signifigance -> significance (#538) Closes #537 --- PyPDF2/xmp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/xmp.py b/PyPDF2/xmp.py index 7ba62f0dd9..79b1170447 100644 --- a/PyPDF2/xmp.py +++ b/PyPDF2/xmp.py @@ -217,7 +217,7 @@ def get(self): dc_date = property(_getter_seq(DC_NAMESPACE, "date", _converter_date)) """ - A sorted array of dates (datetime.datetime instances) of signifigance to + A sorted array of dates (datetime.datetime instances) of significance to the resource. The dates and times are in UTC. """ From 2443f909263568516e16f5ffb4b6786c53b96908 Mon Sep 17 00:00:00 2001 From: medic17 <36856762+medic17@users.noreply.github.com> Date: Wed, 6 Apr 2022 00:32:21 +0300 Subject: [PATCH 037/145] MAINT: Convert print statement to function (#504) --- Sample_Code/basic_features.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sample_Code/basic_features.py b/Sample_Code/basic_features.py index 5e874970da..60c6a77d0a 100644 --- a/Sample_Code/basic_features.py +++ b/Sample_Code/basic_features.py @@ -4,7 +4,7 @@ input1 = PdfFileReader(open("document1.pdf", "rb")) # print how many pages input1 has: -print "document1.pdf has %d pages." % input1.getNumPages() +print ("document1.pdf has %d pages." % input1.getNumPages()) # add page 1 from input1 to output document, unchanged output.addPage(input1.getPage(0)) From 27c62e5afc5e2efe5754f213a56aa2110f103f2b Mon Sep 17 00:00:00 2001 From: David Metcalfe Date: Tue, 5 Apr 2022 14:49:01 -0700 Subject: [PATCH 038/145] DOC: Add pip install instructions (#324) --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 233201b272..f5ab7da58a 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,11 @@ Please see the `Sample_Code` folder. Documentation is available at https://pythonhosted.org/PyPDF2/ +##Installation + +To install via pip: + +`pip install PyPDF2` ## FAQ Please see From 2dc129369eef7248515ab7c34ba68013044ab320 Mon Sep 17 00:00:00 2001 From: "Peter M. Landwehr" Date: Tue, 5 Apr 2022 14:51:51 -0700 Subject: [PATCH 039/145] DEV: Add LICENSE to MANIFEST.in (#288) When the license is explicitly included in `MANIFEST.in` it gets bundled with the source build. --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index f7aec421fe..5899fa4cb8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,2 @@ include CHANGELOG +include LICENSE From f5ab1a35d1dcfb50b37b6f9b5e055793aeec44d5 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 07:04:59 +0200 Subject: [PATCH 040/145] DEV: Add Github Action for testing (#660) Also add .pre-commit-config.yaml --- .coveragerc | 23 ++++++++++++++++ .github/workflows/unit-tests.yaml | 36 +++++++++++++++++++++++++ .gitignore | 2 +- .pre-commit-config.yaml | 39 +++++++++++++++++++++++++++ PyPDF2/generic.py | 8 +++--- PyPDF2/merger.py | 2 +- PyPDF2/pdf.py | 28 ++++++++++---------- requirements/ci.in | 4 +++ requirements/ci.txt | 44 +++++++++++++++++++++++++++++++ 9 files changed, 166 insertions(+), 20 deletions(-) create mode 100644 .coveragerc create mode 100644 .github/workflows/unit-tests.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 requirements/ci.in create mode 100644 requirements/ci.txt diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000000..26b1345954 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,23 @@ +[run] +source = PyPDF2 +branch = True + +[report] +# Regexes for lines to exclude from consideration +exclude_lines = + # Have to re-enable the standard pragma + pragma: no cover + @overload + + # Don't complain about missing debug-only code: + def __repr__ + def __str__ + if self\.debug + + # Don't complain if tests don't hit defensive assertion code: + raise AssertionError + raise NotImplementedError + + # Don't complain if non-runnable code isn't run: + if 0: + if __name__ == .__main__.: \ No newline at end of file diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml new file mode 100644 index 0000000000..e5b20850fc --- /dev/null +++ b/.github/workflows/unit-tests.yaml @@ -0,0 +1,36 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Unit Tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.7", "3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements/ci.txt + pip install . + - name: Test with flake8 + run: | + flake8 . --ignore E,F,I,SIM,C,PT,N,ASS,A,P,R,W + - name: Test with pytest + run: | + pytest Tests/tests.py --cov --cov-report term-missing -vv diff --git a/.gitignore b/.gitignore index 70b74978f9..ab7a489030 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ .tox build .idea/* - +.coverage diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..f76cfebf90 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,39 @@ +# pre-commit run --all-files +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.1.0 + hooks: + - id: check-ast + - id: check-byte-order-marker + - id: check-case-conflict + - id: check-docstring-first + - id: check-yaml + - id: debug-statements + - id: end-of-file-fixer + - id: trailing-whitespace + - id: mixed-line-ending + - id: check-added-large-files + args: ['--maxkb=1000'] +- repo: https://gitlab.com/pycqa/flake8 + rev: 3.9.2 + hooks: + - id: flake8 + args: ["--ignore", "E,W,F"] +# - repo: https://github.com/pre-commit/mirrors-mypy +# rev: v0.942 +# hooks: +# - id: mypy +# - repo: https://github.com/psf/black +# rev: 22.3.0 +# hooks: +# - id: black +# - repo: https://github.com/asottile/pyupgrade +# rev: v2.31.1 +# hooks: +# - id: pyupgrade +# args: [--py36-plus] +- repo: https://github.com/asottile/blacken-docs + rev: v1.12.1 + hooks: + - id: blacken-docs + additional_dependencies: [black==22.1.0] diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 959957ddee..b1f7a11141 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -228,7 +228,7 @@ class FloatObject(decimal.Decimal, PdfObject): def __new__(cls, value="0", context=None): try: return decimal.Decimal.__new__(cls, utils.str_(value), context) - except: + except Exception: return decimal.Decimal.__new__(cls, str(value)) def __repr__(self): @@ -355,7 +355,7 @@ def readStringFromStream(stream): b_("%") : b_("%"), b_("<") : b_("<"), b_(">") : b_(">"), - b_("[") : b_("["), + b_("[") : b_("["), b_("]") : b_("]"), b_("#") : b_("#"), b_("_") : b_("_"), @@ -371,7 +371,7 @@ def readStringFromStream(stream): # Three octal digits shall be used, with leading zeros # as needed, if the next character of the string is also # a digit." (PDF reference 7.3.4.2, p 16) - for i in range(2): + for _ in range(2): ntok = stream.read(1) if ntok.isdigit(): tok += ntok @@ -479,7 +479,7 @@ def readFromStream(stream, pdf): name = stream.read(1) if name != NameObject.surfix: raise utils.PdfReadError("name read error") - name += utils.readUntilRegex(stream, NameObject.delimiterPattern, + name += utils.readUntilRegex(stream, NameObject.delimiterPattern, ignore_eof=True) if debug: print(name) try: diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index c3373e4459..138d55cdc2 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -238,7 +238,7 @@ def close(self): usage. """ self.pages = [] - for fo, pdfr, mine in self.inputs: + for fo, _pdfr, mine in self.inputs: if mine: fo.close() diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 1e1bcc7e92..d278a874e5 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -250,17 +250,17 @@ def addAttachment(self, fname, fdata): :param str fname: The filename to display. :param str fdata: The data in the file. - + Reference: https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf Section 7.11.3 """ - + # We need 3 entries: # * The file's data # * The /Filespec entry # * The file's name, which goes in the Catalog - + # The entry for the file """ Sample: @@ -272,7 +272,7 @@ def addAttachment(self, fname, fdata): stream Hello world! endstream - endobj + endobj """ file_entry = DecodedStreamObject() file_entry.setData(fdata) @@ -291,14 +291,14 @@ def addAttachment(self, fname, fdata): """ efEntry = DictionaryObject() efEntry.update({ NameObject("/F"):file_entry }) - + filespec = DictionaryObject() filespec.update({ NameObject("/Type"): NameObject("/Filespec"), NameObject("/F"): createStringObject(fname), # Perhaps also try TextStringObject NameObject("/EF"): efEntry }) - + # Then create the entry for the root, as it needs a reference to the Filespec """ Sample: 1 0 obj @@ -309,13 +309,13 @@ def addAttachment(self, fname, fdata): /Names << /EmbeddedFiles << /Names [(hello.txt) 7 0 R] >> >> >> endobj - + """ embeddedFilesNamesDictionary = DictionaryObject() embeddedFilesNamesDictionary.update({ NameObject("/Names"): ArrayObject([createStringObject(fname), filespec]) }) - + embeddedFilesDictionary = DictionaryObject() embeddedFilesDictionary.update({ NameObject("/EmbeddedFiles"): embeddedFilesNamesDictionary @@ -329,7 +329,7 @@ def appendPagesFromReader(self, reader, after_page_append=None): """ Copy pages from reader to writer. Includes an optional callback parameter which is invoked after pages are appended to the writer. - + :param reader: a PdfFileReader object from which to copy page annotations to this writer object. The writer's annots will then be updated @@ -373,7 +373,7 @@ def updatePageFormFieldValues(self, page, fields): def cloneReaderDocumentRoot(self, reader): ''' Copy the reader document root to the writer. - + :param reader: PdfFileReader from the document root should be copied. :callback after_page_append ''' @@ -1210,7 +1210,7 @@ def getNumPages(self): self._override_encryption = True self.decrypt('') return self.trailer["/Root"]["/Pages"]["/Count"] - except: + except Exception: raise utils.PdfReadError("File has not been decrypted") finally: self._override_encryption = False @@ -2250,7 +2250,7 @@ def _contentStreamRename(stream, rename, pdf): if not rename: return stream stream = ContentStream(stream, pdf) - for operands, operator in stream.operations: + for operands, _operator in stream.operations: for i in range(len(operands)): op = operands[i] if isinstance(op, NameObject): @@ -2957,7 +2957,7 @@ def _alg32(password, rev, keylen, owner_entry, p_entry, id1_entry, metadata_encr # encryption key as defined by the value of the encryption dictionary's # /Length entry. if rev >= 3: - for i in range(50): + for _ in range(50): md5_hash = md5(md5_hash[:keylen]).digest() # 9. Set the encryption key to the first n bytes of the output from the # final MD5 hash, where n is always 5 for revision 2 but, for revision 3 or @@ -3007,7 +3007,7 @@ def _alg33_1(password, rev, keylen): # from the previous MD5 hash and pass it as input into a new MD5 hash. md5_hash = m.digest() if rev >= 3: - for i in range(50): + for _ in range(50): md5_hash = md5(md5_hash).digest() # 4. Create an RC4 encryption key using the first n bytes of the output # from the final MD5 hash, where n is always 5 for revision 2 but, for diff --git a/requirements/ci.in b/requirements/ci.in new file mode 100644 index 0000000000..2fb67237bf --- /dev/null +++ b/requirements/ci.in @@ -0,0 +1,4 @@ +pytest +flake8 +flake8-bugbear +pytest-cov \ No newline at end of file diff --git a/requirements/ci.txt b/requirements/ci.txt new file mode 100644 index 0000000000..fa03f3956a --- /dev/null +++ b/requirements/ci.txt @@ -0,0 +1,44 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile ci.in +# +attrs==21.4.0 + # via + # flake8-bugbear + # pytest +coverage[toml]==6.3.2 + # via pytest-cov +flake8==4.0.1 + # via + # -r ci.in + # flake8-bugbear +flake8-bugbear==22.3.23 + # via -r ci.in +iniconfig==1.1.1 + # via pytest +mccabe==0.6.1 + # via flake8 +packaging==21.3 + # via pytest +pluggy==1.0.0 + # via pytest +py==1.11.0 + # via pytest +pycodestyle==2.8.0 + # via flake8 +pyflakes==2.4.0 + # via flake8 +pyparsing==3.0.7 + # via packaging +pytest==7.1.1 + # via + # -r ci.in + # pytest-cov +pytest-cov==3.0.0 + # via -r ci.in +tomli==2.0.1 + # via + # coverage + # pytest From b17db7994abb3611c2aa660bc45d3607dbaf9560 Mon Sep 17 00:00:00 2001 From: Korbinian Preisler Date: Wed, 6 Apr 2022 07:37:13 +0200 Subject: [PATCH 041/145] BUG: Fix formatWarning for filename without slash (#612) --- PyPDF2/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 2120c70215..fe9c1e455e 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -66,7 +66,7 @@ def isBytes(b): #custom implementation of warnings.formatwarning def formatWarning(message, category, filename, lineno, line=None): - file = filename.replace("/", "\\").rsplit("\\", 1)[1] # find the file name + file = filename.replace("/", "\\").rsplit("\\", 1)[-1] # find the file name return "%s: %s [%s:%s]\n" % (category.__name__, message, file, lineno) From 02cc54be1990c77e960e01d7c5f6a9242f3dbf9b Mon Sep 17 00:00:00 2001 From: Gowtham Karthikeyan <30730201+inboxsgk@users.noreply.github.com> Date: Wed, 6 Apr 2022 11:16:15 +0530 Subject: [PATCH 042/145] BUG: Add whitespace between words for extractText() (#569) Previously the function .extractText() reads the text in the PDF and returns without any spaces. In this fix the pdf.py file has been modified to add " " (space) in between two words Here is an example below:- Original Sentence : "The quick brown fox jumps over the lazy dog" Previous Output : "Thequickbrownfoxjumpsoverthelazydog" After the fix : "The quick brown fox jumps over the lazy dog" --- PyPDF2/pdf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index d278a874e5..ec2cf1f0b4 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2683,6 +2683,7 @@ def extractText(self): elif operator == b_("TJ"): for i in operands[0]: if isinstance(i, TextStringObject): + text += " " text += i text += "\n" return text From 1cde559c74d76cb682fe6da4022c42beaa40a2fb Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 07:52:03 +0200 Subject: [PATCH 043/145] TST: Add test for decrypting files (#661) Also: Adjust ground truth "crazyones" example text --- .github/workflows/unit-tests.yaml | 2 +- Resources/crazyones.txt | 2 +- Resources/libreoffice-writer-password.pdf | Bin 0 -> 12783 bytes Tests/test_workflows.py | 71 ++++++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 Resources/libreoffice-writer-password.pdf create mode 100644 Tests/test_workflows.py diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index e5b20850fc..6fc4b93b13 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -33,4 +33,4 @@ jobs: flake8 . --ignore E,F,I,SIM,C,PT,N,ASS,A,P,R,W - name: Test with pytest run: | - pytest Tests/tests.py --cov --cov-report term-missing -vv + pytest Tests/tests.py Tests --cov --cov-report term-missing -vv diff --git a/Resources/crazyones.txt b/Resources/crazyones.txt index 1e6078965e..468a57e90d 100644 --- a/Resources/crazyones.txt +++ b/Resources/crazyones.txt @@ -1 +1 @@ -TheCrazyOnesOctober14,1998Herestothecrazyones.Themis˝ts.Therebels.Thetroublemakers.Theroundpegsinthesquareholes.Theoneswhoseethingsdi˙erently.Theyrenotfondofrules.Andtheyhavenorespectforthestatusquo.Youcanquotethem,disagreewiththem,glorifyorvilifythem.Abouttheonlythingyoucantdoisignorethem.Becausetheychangethings.Theyinvent.Theyimagine.Theyheal.Theyexplore.Theycreate.Theyinspire.Theypushthehumanraceforward.Maybetheyhavetobecrazy.Howelsecanyoustareatanemptycanvasandseeaworkofart?Orsitinsilenceandhearasongthatsneverbeenwritten?Orgazeataredplanetandseealaboratoryonwheels?Wemaketoolsforthesekindsofpeople.Whilesomeseethemasthecrazyones,weseegenius.Becausethepeoplewhoarecrazyenoughtothinktheycanchangetheworld,aretheoneswhodo. \ No newline at end of file + The Cr azy Ones Octob er 14, 1998 Heres to the crazy ones. The mis˝ts. The reb els. The troublemak ers. The round p egs in the square holes. The ones who see things di˙eren tly . Theyre not fond of rules. And they ha v e no resp ect for the status quo. Y ou can quote them, disagree with them, glorify or vilify them. Ab out the only thing y ou cant do is ignore them. Because they c hange things. They in v en t. They imagine. They heal. They explore. They create. They inspire. They push the h uman race forw ard. Ma yb e they ha v e to b e crazy . Ho w else can y ou stare at an empt y can v as and see a w ork of art? Or sit in silence and hear a song thats nev er b een written? Or gaze at a red planet and see a lab oratory on wheels? W e mak e to ols for these kinds of p eople. While some see them as the crazy ones, w e see genius. Because the p eople who are crazy enough to think they can c hange the w orld, are the ones who do. \ No newline at end of file diff --git a/Resources/libreoffice-writer-password.pdf b/Resources/libreoffice-writer-password.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de3e0c1609eea268c2d5967d713cae893b51b4eb GIT binary patch literal 12783 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 PpigiH(9=sPO9TE7C+zim literal 0 HcmV?d00001 diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py new file mode 100644 index 0000000000..460f0e0498 --- /dev/null +++ b/Tests/test_workflows.py @@ -0,0 +1,71 @@ +import os +import binascii +import sys + +from PyPDF2 import PdfFileReader, PdfFileWriter + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + +sys.path.append(PROJECT_ROOT) + +def test_PdfReaderFileLoad(): + """ + Test loading and parsing of a file. Extract text of the file and compare to expected + textual output. Expected outcome: file loads, text matches expected. + """ + + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: + # Load PDF file from file + ipdf = PdfFileReader(inputfile) + ipdf_p1 = ipdf.getPage(0) + + # Retrieve the text of the PDF + with open(os.path.join(RESOURCE_ROOT, "crazyones.txt"), "rb") as pdftext_file: + pdftext = pdftext_file.read() + + ipdf_p1_text = ipdf_p1.extractText().replace("\n", "").encode("utf-8") + + # Compare the text of the PDF to a known source + assert ipdf_p1_text == pdftext, ( + "PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" + % (pdftext, ipdf_p1_text) + ) + + +def test_PdfReaderJpegImage(): + """ + Test loading and parsing of a file. Extract the image of the file and compare to expected + textual output. Expected outcome: file loads, image matches expected. + """ + + with open(os.path.join(RESOURCE_ROOT, "jpeg.pdf"), "rb") as inputfile: + # Load PDF file from file + ipdf = PdfFileReader(inputfile) + + # Retrieve the text of the image + with open(os.path.join(RESOURCE_ROOT, "jpeg.txt"), "r") as pdftext_file: + imagetext = pdftext_file.read() + + ipdf_p0 = ipdf.getPage(0) + xObject = ipdf_p0["/Resources"]["/XObject"].getObject() + data = xObject["/Im4"].getData() + + # Compare the text of the PDF to a known source + assert binascii.hexlify(data).decode() == imagetext, ( + "PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" + % (imagetext, binascii.hexlify(data).decode()) + ) + + +def test_decrypt(): + with open(os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), "rb") as inputfile: + ipdf = PdfFileReader(inputfile) + assert ipdf.isEncrypted == True + ipdf.decrypt('openpassword') + assert ipdf.getNumPages() == 1 + assert ipdf.isEncrypted == True + + # Is extractText() broken for encrypted files? + # assert ipdf.getPage(0).extractText().replace('\n', '') == "\n˘\n\u02c7\u02c6˙\n\n\n˘\u02c7\u02c6˙\n\n" From dacc6b75eb02b2eb2eea7b54e45ca23f5d08b378 Mon Sep 17 00:00:00 2001 From: Niklas Baumstark Date: Wed, 6 Apr 2022 06:55:32 +0100 Subject: [PATCH 044/145] BUG: "invalid escape sequence" SyntaxError (#522) This happens when the library is used with `-Werror`, since `\c` is not a valid Python escape sequence. --- PyPDF2/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index b1f7a11141..19b9a46319 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -345,7 +345,7 @@ def readStringFromStream(stream): b_("t") : b_("\t"), b_("b") : b_("\b"), b_("f") : b_("\f"), - b_("c") : b_("\c"), + b_("c") : b_(r"\c"), b_("(") : b_("("), b_(")") : b_(")"), b_("/") : b_("/"), From c3e6d4abddc87ddf2406142bc6775190fc2a2408 Mon Sep 17 00:00:00 2001 From: Colin Atkinson Date: Wed, 6 Apr 2022 01:59:58 -0400 Subject: [PATCH 045/145] BUG: Avoid error when printing warning in pythonw (#486) The default value of sys.stderr will be None in this case, so care should be taken to avoid causing an AttributeError when trying to show an otherwise nonfatal warning. --- PyPDF2/pdf.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index ec2cf1f0b4..75a7a073a6 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1130,7 +1130,11 @@ def _showwarning(message, category, filename, lineno, file=warndest, line=None): if file is None: file = sys.stderr try: - file.write(formatWarning(message, category, filename, lineno, line)) + # It is possible for sys.stderr to be defined as None, most commonly in the case that the script + # is being run vida pythonw.exe on Windows. In this case, just swallow the warning. + # See also https://docs.python.org/3/library/sys.html#sys.__stderr__ + if file is not None: + file.write(formatWarning(message, category, filename, lineno, line)) except IOError: pass warnings.showwarning = _showwarning From abed04816b05249f30b63f28b919b1107351c9f8 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 08:24:21 +0200 Subject: [PATCH 046/145] DOC: Make project URLs more prominent --- README.md | 29 +++++++++++++++++------------ setup.py | 5 +++++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f5ab7da58a..4274c5757b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +[![PyPI version](https://badge.fury.io/py/PyPDF2.svg)](https://badge.fury.io/py/PyPDF2) +[![Python Support](https://img.shields.io/pypi/pyversions/PyPDF2.svg)](https://pypi.org/project/PyPDF2/) +[![](https://img.shields.io/badge/-documentation-green)](https://pythonhosted.org/PyPDF2/) +![GitHub last commit](https://img.shields.io/github/last-commit/mstamy2/PyPDF2) + # PyPDF2 PyPDF2 is a pure-python PDF library capable of @@ -7,27 +12,27 @@ data, viewing options, and passwords to PDF files. It can retrieve text and metadata from PDFs as well as merge entire files together. -Homepage -http://mstamy2.github.io/PyPDF2/ +[Homepage](http://mstamy2.github.io/PyPDF2/) -## Examples -Please see the `Sample_Code` folder. -## Documentation +## Installation -Documentation is available at -https://pythonhosted.org/PyPDF2/ +To install via pip: -##Installation +``` +pip install PyPDF2 +``` -To install via pip: +## Examples -`pip install PyPDF2` +Please see the `Sample_Code` folder. ## FAQ -Please see -http://mstamy2.github.io/PyPDF2/FAQ.html + +A lot of questions are asked [on StackOverflow](https://stackoverflow.com/questions/tagged/pypdf2). + +Please see [FAQ](http://mstamy2.github.io/PyPDF2/FAQ.html) ## Tests diff --git a/setup.py b/setup.py index d9118ce5af..3986024148 100644 --- a/setup.py +++ b/setup.py @@ -39,6 +39,11 @@ maintainer="Phaseit, Inc.", maintainer_email="PyPDF2@phaseit.net", url="https://mstamy2.github.io/PyPDF2", + project_urls={ + "Source": "https://github.com/mstamy2/PyPDF2", + "Bug Reports": "https://github.com/mstamy2/PyPDF2/issues", + "Changelog": "https://raw.githubusercontent.com/mstamy2/PyPDF2/master/CHANGELOG", + }, classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", From eea0b72f39b5b96492faa190ff2bb3c8fa33599f Mon Sep 17 00:00:00 2001 From: Mark Goody Date: Wed, 6 Apr 2022 11:55:40 +0100 Subject: [PATCH 047/145] DOC: Fix Destination.page parameter (#426) The constructor expects the page argument to be a reference to a page, rather than the integer index of the page in the document. --- PyPDF2/generic.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 19b9a46319..4b081750d3 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -1029,7 +1029,8 @@ class Destination(TreeObject): See section 8.2.1 of the PDF 1.6 reference. :param str title: Title of this destination. - :param int page: Page number of this destination. + :param IndirectObject page: Reference to the page of this destination. Should + be an instance of :class:`IndirectObject`. :param str typ: How the destination is displayed. :param args: Additional arguments may be necessary depending on the type. :raises PdfReadError: If destination type is invalid. From 70692164eab7de79bcf0c2829f5c000e6d07715b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 13:39:52 +0200 Subject: [PATCH 048/145] TST: Basic test for PdfFileMerger (#663) Also test Metadata --- .gitignore | 1 + Tests/test_merger.py | 20 +++++++++++++++++++ Tests/test_workflows.py | 43 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 Tests/test_merger.py diff --git a/.gitignore b/.gitignore index ab7a489030..0a1c2f1ad5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ build .idea/* .coverage +dont_commit_merged.pdf diff --git a/Tests/test_merger.py b/Tests/test_merger.py new file mode 100644 index 0000000000..dd1bea4a7f --- /dev/null +++ b/Tests/test_merger.py @@ -0,0 +1,20 @@ +import os +import binascii +import sys + +import PyPDF2 + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + +sys.path.append(PROJECT_ROOT) + + +def test_merge(): + file_merger = PyPDF2.PdfFileMerger() + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + for path in [pdf_path, pdf_path, pdf_path]: + file_merger.append(PyPDF2.PdfFileReader(path, "rb")) + + file_merger.write("dont_commit_merged.pdf") diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index 460f0e0498..c22f358526 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -1,6 +1,7 @@ import os import binascii import sys +import pytest from PyPDF2 import PdfFileReader, PdfFileWriter @@ -10,6 +11,7 @@ sys.path.append(PROJECT_ROOT) + def test_PdfReaderFileLoad(): """ Test loading and parsing of a file. Extract text of the file and compare to expected @@ -59,13 +61,48 @@ def test_PdfReaderJpegImage(): ) +def test_read_metadata(): + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: + ipdf = PdfFileReader(inputfile) + metadict = ipdf.getDocumentInfo() + assert metadict.title is None + assert dict(metadict) == { + "/CreationDate": "D:20150604133406-06'00'", + "/Creator": " XeTeX output 2015.06.04:1334", + "/Producer": "xdvipdfmx (20140317)", + } + + def test_decrypt(): - with open(os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), "rb") as inputfile: + with open( + os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), "rb" + ) as inputfile: ipdf = PdfFileReader(inputfile) assert ipdf.isEncrypted == True - ipdf.decrypt('openpassword') + ipdf.decrypt("openpassword") assert ipdf.getNumPages() == 1 assert ipdf.isEncrypted == True - + metadict = ipdf.getDocumentInfo() + assert dict(metadict) == { + "/CreationDate": "D:20220403203552+02'00'", + "/Creator": "Writer", + "/Producer": "LibreOffice 6.4", + } # Is extractText() broken for encrypted files? # assert ipdf.getPage(0).extractText().replace('\n', '') == "\n˘\n\u02c7\u02c6˙\n\n\n˘\u02c7\u02c6˙\n\n" + + +@pytest.mark.parametrize("degree", [0, 90, 180, 270, 360, -90]) +def test_rotate(degree): + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: + ipdf = PdfFileReader(inputfile) + page = ipdf.getPage(0) + page.rotateCounterClockwise(degree) + + +def test_rotate_45(): + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: + ipdf = PdfFileReader(inputfile) + page = ipdf.getPage(0) + with pytest.raises(AssertionError): + page.rotateCounterClockwise(45) From f4647b5b91703ca7787bff2188ba7537d2469a89 Mon Sep 17 00:00:00 2001 From: Michael Lelyakin Date: Wed, 6 Apr 2022 15:58:35 +0400 Subject: [PATCH 049/145] MAINT: Use iterator directly instead of using an index (#292) --- PyPDF2/pdf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 75a7a073a6..fec3eeeb9b 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -3064,8 +3064,8 @@ def _alg35(password, rev, keylen, owner_entry, p_entry, id1_entry, metadata_encr # counter (from 1 to 19). for i in range(1, 20): new_key = b_('') - for l in range(len(key)): - new_key += b_(chr(ord_(key[l]) ^ i)) + for k in key: + new_key += b_(chr(ord_(k) ^ i)) val = utils.RC4_encrypt(new_key, val) # 6. Append 16 bytes of arbitrary padding to the output from the final # invocation of the RC4 function and store the 32-byte result as the value From 570138bdcbf7158cf01501424395bbb3aceb2503 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 15:25:04 +0200 Subject: [PATCH 050/145] BUG: Fix Sample_Code/basic_features.py --- Sample_Code/basic_features.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sample_Code/basic_features.py b/Sample_Code/basic_features.py index 60c6a77d0a..08159d4d1f 100644 --- a/Sample_Code/basic_features.py +++ b/Sample_Code/basic_features.py @@ -41,5 +41,5 @@ output.encrypt(password) # finally, write "output" to document-output.pdf -outputStream = file("PyPDF2-output.pdf", "wb") -output.write(outputStream) +with open("PyPDF2-output.pdf", "wb") as outputStream: + output.write(outputStream) From 77238155d5387dddc4f545d2c61ed05487f8dc6c Mon Sep 17 00:00:00 2001 From: Roller Angel Date: Wed, 6 Apr 2022 11:33:22 -0400 Subject: [PATCH 051/145] DOC: Update basic_features.py (#394) fixed a typo and added in a new feature for adding a title to the PDF metadata Co-authored-by: __ROLLER__ Co-authored-by: Martin Thoma --- Sample_Code/basic_features.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Sample_Code/basic_features.py b/Sample_Code/basic_features.py index 08159d4d1f..35d9802472 100644 --- a/Sample_Code/basic_features.py +++ b/Sample_Code/basic_features.py @@ -4,12 +4,15 @@ input1 = PdfFileReader(open("document1.pdf", "rb")) # print how many pages input1 has: -print ("document1.pdf has %d pages." % input1.getNumPages()) +print("document1.pdf has %d pages." % input1.getNumPages()) -# add page 1 from input1 to output document, unchanged +# print how many pages input1 has in python3: +# print("This chart has {} pages.".format(input1.getNumPages())) + +# add page 1 from input1 to output document, unchanged: output.addPage(input1.getPage(0)) -# add page 2 from input1, but rotated clockwise 90 degrees +# add page 2 from input1, but rotated clockwise 90 degrees: output.addPage(input1.getPage(1).rotateClockwise(90)) # add page 3 from input1, rotated the other way: @@ -33,13 +36,16 @@ # add some Javascript to launch the print window on opening this PDF. # the password dialog may prevent the print dialog from being shown, -# comment the the encription lines, if that's the case, to try this out +# comment the the encription lines, if that's the case, to try this out: output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") -# encrypt your new PDF and add a password +# encrypt your new PDF and add a password: password = "secret" output.encrypt(password) +# add a title to your new PDF's metadata: +output.addMetadata({'/Title': 'PDF Metadata Title'}) + # finally, write "output" to document-output.pdf with open("PyPDF2-output.pdf", "wb") as outputStream: output.write(outputStream) From d01cac396594b0c9fa2a67c6ea76e3d9ae0ecc2f Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 19:31:23 +0200 Subject: [PATCH 052/145] TST: Test annotation extraction --- .gitignore | 3 ++ Resources/commented.pdf | Bin 0 -> 13389 bytes Tests/test_basic_features.py | 53 +++++++++++++++++++++++++++++++++++ Tests/test_reader.py | 28 ++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 Resources/commented.pdf create mode 100644 Tests/test_basic_features.py create mode 100644 Tests/test_reader.py diff --git a/.gitignore b/.gitignore index 0a1c2f1ad5..923ba58803 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ build .idea/* .coverage + +# Files generated by some of the scripts dont_commit_merged.pdf +PyPDF2-output.pdf diff --git a/Resources/commented.pdf b/Resources/commented.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4d9fcdd4a8beeb700d1c543fbf20a676e39ad2b6 GIT binary patch literal 13389 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 IKalbN0E+6^$^ZZW literal 0 HcmV?d00001 diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py new file mode 100644 index 0000000000..7870eff617 --- /dev/null +++ b/Tests/test_basic_features.py @@ -0,0 +1,53 @@ +from PyPDF2 import PdfFileWriter, PdfFileReader +import os + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + + +def test_basic_features(): + output = PdfFileWriter() + document1 = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + input1 = PdfFileReader(open(document1, "rb")) + + # print how many pages input1 has: + print("document1.pdf has %d pages." % input1.getNumPages()) + + # add page 1 from input1 to output document, unchanged + output.addPage(input1.getPage(0)) + + # add page 2 from input1, but rotated clockwise 90 degrees + output.addPage(input1.getPage(0).rotateClockwise(90)) + + # add page 3 from input1, rotated the other way: + output.addPage(input1.getPage(0).rotateCounterClockwise(90)) + # alt: output.addPage(input1.getPage(0).rotateClockwise(270)) + + # add page 4 from input1, but first add a watermark from another PDF: + page4 = input1.getPage(0) + watermark_pdf = document1 + watermark = PdfFileReader(open(watermark_pdf, "rb")) + page4.mergePage(watermark.getPage(0)) + output.addPage(page4) + + # add page 5 from input1, but crop it to half size: + page5 = input1.getPage(0) + page5.mediaBox.upperRight = ( + page5.mediaBox.getUpperRight_x() / 2, + page5.mediaBox.getUpperRight_y() / 2, + ) + output.addPage(page5) + + # add some Javascript to launch the print window on opening this PDF. + # the password dialog may prevent the print dialog from being shown, + # comment the the encription lines, if that's the case, to try this out + output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + + # encrypt your new PDF and add a password + password = "secret" + output.encrypt(password) + + # finally, write "output" to document-output.pdf + with open("PyPDF2-output.pdf", "wb") as outputStream: + output.write(outputStream) diff --git a/Tests/test_reader.py b/Tests/test_reader.py new file mode 100644 index 0000000000..fddc8fdc62 --- /dev/null +++ b/Tests/test_reader.py @@ -0,0 +1,28 @@ +import os +import pytest +import PyPDF2 + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + + +@pytest.mark.parametrize( + "src", + [ + (os.path.join(RESOURCE_ROOT, "crazyones.pdf")), + (os.path.join(RESOURCE_ROOT, "commented.pdf")), + ], +) +def test_get_annotations(src): + reader = PyPDF2.PdfFileReader(open(src, "rb")) + + for i in range(reader.getNumPages()): + page = reader.getPage(i) + print("/Annots" in page) + if "/Annots" in page: + for annot in page["/Annots"]: + subtype = annot.getObject()["/Subtype"] + if subtype == "/Text": + print(annot.getObject()["/Contents"]) + print("") From 45421d69109d44b1c0ff1c772eecea982c2ab300 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 19:43:53 +0200 Subject: [PATCH 053/145] TST: Extract an attachment --- Resources/attachment.pdf | Bin 0 -> 112246 bytes Tests/test_reader.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 Resources/attachment.pdf diff --git a/Resources/attachment.pdf b/Resources/attachment.pdf new file mode 100644 index 0000000000000000000000000000000000000000..34b4802efa3363a676ad2f43e6b52ad37243317c GIT binary patch literal 112246 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 literal 0 HcmV?d00001 diff --git a/Tests/test_reader.py b/Tests/test_reader.py index fddc8fdc62..1671f2ebf3 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -26,3 +26,25 @@ def test_get_annotations(src): if subtype == "/Text": print(annot.getObject()["/Contents"]) print("") + + +@pytest.mark.parametrize( + "src", + [ + (os.path.join(RESOURCE_ROOT, "attachment.pdf")), + (os.path.join(RESOURCE_ROOT, "crazyones.pdf")), + ], +) +def test_get_attachments(src): + reader = PyPDF2.PdfFileReader(open(src, "rb")) + + attachments = {} + for i in range(reader.getNumPages()): + page = reader.getPage(i) + if "/Annots" in page: + for annotation in page["/Annots"]: + annotobj = annotation.getObject() + if annotobj["/Subtype"] == "/FileAttachment": + fileobj = annotobj["/FS"] + attachments[fileobj["/F"]] = fileobj["/EF"]["/F"].getData() + return attachments From 807bb0b521ece12bd33147088288f96cf1d5aa17 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 19:57:49 +0200 Subject: [PATCH 054/145] TST: Add test for XMP module --- Resources/commented-xmp.pdf | Bin 0 -> 17871 bytes Tests/test_xmp.py | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 Resources/commented-xmp.pdf create mode 100644 Tests/test_xmp.py diff --git a/Resources/commented-xmp.pdf b/Resources/commented-xmp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4d6f04c50aaf2d4fc50fc90f9df482900bc98d0c GIT binary patch literal 17871 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 Date: Wed, 6 Apr 2022 20:19:21 +0200 Subject: [PATCH 055/145] TST: Get outlines --- Resources/pdflatex-outline.pdf | Bin 0 -> 48722 bytes Tests/test_reader.py | 12 ++++++++++++ Tests/test_utils.py | 9 +++++++++ Tests/test_xmp.py | 2 ++ 4 files changed, 23 insertions(+) create mode 100644 Resources/pdflatex-outline.pdf create mode 100644 Tests/test_utils.py diff --git a/Resources/pdflatex-outline.pdf b/Resources/pdflatex-outline.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a27ca26451fdbdafad3b4fad4d85ba5eb6abea0a GIT binary patch literal 48722 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 Date: Wed, 6 Apr 2022 20:24:56 +0200 Subject: [PATCH 056/145] MAINT: Remove unused imports --- PyPDF2/filters.py | 16 ++++++++-------- PyPDF2/generic.py | 2 -- PyPDF2/pdf.py | 2 +- PyPDF2/utils.py | 2 ++ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 57446f4b02..eced567d91 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -36,7 +36,7 @@ import math -from .utils import PdfReadError, ord_, chr_, paethPredictor +from .utils import PdfReadError, ord_, paethPredictor from sys import version_info if version_info < ( 3, 0 ): from cStringIO import StringIO @@ -349,20 +349,20 @@ class DCTDecode(object): def decode(data, decodeParms=None): return data decode = staticmethod(decode) - + class JPXDecode(object): def decode(data, decodeParms=None): return data decode = staticmethod(decode) - -class CCITTFaxDecode(object): + +class CCITTFaxDecode(object): def decode(data, decodeParms=None, height=0): if decodeParms: if decodeParms.get("/K", 1) == -1: CCITTgroup = 4 else: CCITTgroup = 3 - + width = decodeParms["/Columns"] imgSize = len(data) tiff_header_struct = '<' + '2s' + 'h' + 'l' + 'h' + 'hhll' * 8 + 'h' @@ -381,11 +381,11 @@ def decode(data, decodeParms=None, height=0): 279, 4, 1, imgSize, # StripByteCounts, LONG, 1, size of image 0 # last IFD ) - + return tiffHeader + data - + decode = staticmethod(decode) - + def decodeStreamData(stream): from .generic import NameObject filters = stream.get("/Filter", ()) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 4b081750d3..56c561d3db 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -43,8 +43,6 @@ from . import utils import decimal import codecs -import sys -#import debugging ObjectPrefix = b_('/<[tf(n%') NumberSigns = b_('+-') diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index fec3eeeb9b..fb0eccdda8 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -64,7 +64,7 @@ import codecs from .generic import * from .utils import readNonWhitespace, readUntilWhitespace, ConvertFunctionsToVirtualList -from .utils import isString, b_, u_, ord_, chr_, str_, formatWarning +from .utils import isString, b_, u_, ord_, str_, formatWarning if version_info < ( 2, 4 ): from sets import ImmutableSet as frozenset diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index fe9c1e455e..f7ab11ddd9 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -61,6 +61,8 @@ def isInt(n): def isBytes(b): """Test if arg is a bytes instance. Compatible with Python 2 and 3.""" + import warnings + warnings.warn("PyPDF2.utils.isBytes will be deprecated", DeprecationWarning) return isinstance(b, bytes_type) From 96b4c604a802e5e4686cd101c361ecce4a935fc7 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 20:53:01 +0200 Subject: [PATCH 057/145] TST: Outlines and various ways to add PDFs --- Tests/test_merger.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Tests/test_merger.py b/Tests/test_merger.py index dd1bea4a7f..fa0daa47a8 100644 --- a/Tests/test_merger.py +++ b/Tests/test_merger.py @@ -12,9 +12,31 @@ def test_merge(): - file_merger = PyPDF2.PdfFileMerger() pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") - for path in [pdf_path, pdf_path, pdf_path]: - file_merger.append(PyPDF2.PdfFileReader(path, "rb")) + outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") + + file_merger = PyPDF2.PdfFileMerger() + + # string path: + file_merger.append(pdf_path) + file_merger.append(outline) + file_merger.append(pdf_path, pages=PyPDF2.pagerange.PageRange(slice(0, 0))) + + + # PdfFileReader object: + file_merger.append(PyPDF2.PdfFileReader(pdf_path, "rb")) + + # Is merging encrypted files broken? + # encrypted = os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf") + # reader = PyPDF2.PdfFileReader(pdf_path, "rb") + # reader.decrypt("openpassword") + # file_merger.append(reader) + + # File handle + fh = open(pdf_path, "rb") + file_merger.append(fh) + + file_merger.addBookmark("A bookmark", 0) file_merger.write("dont_commit_merged.pdf") + file_merger.close() From 752834727c82298486a6e28f07da93f8fa614ffd Mon Sep 17 00:00:00 2001 From: Venelin Stoykov Date: Wed, 6 Apr 2022 21:57:28 +0300 Subject: [PATCH 058/145] Test against Python 3.6, PyPy and PyPy3 (stop testing against Python 3.3) (#458) * Simplify tox config * Drop Python 3.3 and add Python 3.6 and PyPy --- .travis.yml | 22 ++++++++++------------ tox.ini | 20 +------------------- 2 files changed, 11 insertions(+), 31 deletions(-) diff --git a/.travis.yml b/.travis.yml index b7a7531dd9..7ce5f437ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,19 @@ -language: python -python: "2.7" sudo: false -env: - - TOX_ENV=py27 - - TOX_ENV=py33 - - TOX_ENV=py34 - - TOX_ENV=py35 +language: python +python: + - "2.7" + - "3.4" + - "3.5" + - "3.6" + - "pypy" + - "pypy3" install: - - pip install tox --use-mirrors + - pip install tox-travis script: - - tox -e $TOX_ENV + - tox matrix: - # Python 3.5 not yet available on travis, watch this to see when it is. fast_finish: true - allow_failures: - - env: TOX_ENV=py35 diff --git a/tox.ini b/tox.ini index 7039acbf9d..055d13eb32 100644 --- a/tox.ini +++ b/tox.ini @@ -1,24 +1,6 @@ [tox] envlist = - py26, py27, py33, py34, py35, py38 + py{27,34,35,36,py,py3} [testenv] commands = python -m unittest Tests.tests - -[testenv:py26] -basepython = python2.6 - -[testenv:py27] -basepython = python2.7 - -[testenv:py33] -basepython = python3.3 - -[testenv:py34] -basepython = python3.4 - -[testenv:py35] -basepython = python3.5 - -[testenv:py38] -basepython = python3.8 From 90d5539e0f2cc1521493a63097b7b6b65971cd1f Mon Sep 17 00:00:00 2001 From: Mohamed Ali ZORGATI <46978677+mohamedali-zorgati1997@users.noreply.github.com> Date: Wed, 6 Apr 2022 20:08:44 +0100 Subject: [PATCH 059/145] ENH: Add alpha channel support for png files (#614) --- Scripts/pdf-image-extractor.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index 601309c29e..c1ac032381 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -34,6 +34,9 @@ if '/Filter' in xObject[obj]: if xObject[obj]['/Filter'] == '/FlateDecode': img = Image.frombytes(mode, size, data) + if "/SMask" in xObject[obj]: # add alpha channel + alpha = Image.frombytes("L", size, xObject[obj]["/SMask"].getData()) + img.putalpha(alpha) img.save(obj[1:] + ".png") elif xObject[obj]['/Filter'] == '/DCTDecode': img = open(obj[1:] + ".jpg", "wb") From 6056a7cf712ed6043edc8c25924e4823d5f9a0e1 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 21:10:37 +0200 Subject: [PATCH 060/145] TST: Image extraction --- Resources/git.pdf | Bin 0 -> 36335 bytes Tests/test_reader.py | 67 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 Resources/git.pdf diff --git a/Resources/git.pdf b/Resources/git.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d1133ace33c988a47ac24ec926ccaad4ea6221a GIT binary patch literal 36335 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 L-%q38jsCv?mMA9x literal 0 HcmV?d00001 diff --git a/Tests/test_reader.py b/Tests/test_reader.py index 39c368906d..c7255d8704 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -49,6 +49,7 @@ def test_get_attachments(src): attachments[fileobj["/F"]] = fileobj["/EF"]["/F"].getData() return attachments + @pytest.mark.parametrize( "src,outline_elements", [ @@ -60,3 +61,69 @@ def test_get_outlines(src, outline_elements): reader = PyPDF2.PdfFileReader(open(src, "rb")) outlines = reader.getOutlines() assert len(outlines) == outline_elements + + +@pytest.mark.parametrize( + "src,nb_images", + [ + (os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf"), 0), + (os.path.join(RESOURCE_ROOT, "crazyones.pdf"), 0), + (os.path.join(RESOURCE_ROOT, "git.pdf"), 1), + ], +) +def test_get_images(src, nb_images): + from PIL import Image + + input1 = PyPDF2.PdfFileReader(open(src, "rb")) + page0 = input1.getPage(0) + + images_extracted = [] + + if "/XObject" in page0["/Resources"]: + xObject = page0["/Resources"]["/XObject"].getObject() + + for obj in xObject: + if xObject[obj]["/Subtype"] == "/Image": + size = (xObject[obj]["/Width"], xObject[obj]["/Height"]) + data = xObject[obj].getData() + if xObject[obj]["/ColorSpace"] == "/DeviceRGB": + mode = "RGB" + else: + mode = "P" + + filename = None + if "/Filter" in xObject[obj]: + if xObject[obj]["/Filter"] == "/FlateDecode": + img = Image.frombytes(mode, size, data) + if "/SMask" in xObject[obj]: # add alpha channel + alpha = Image.frombytes( + "L", size, xObject[obj]["/SMask"].getData() + ) + img.putalpha(alpha) + filename = obj[1:] + ".png" + img.save(filename) + elif xObject[obj]["/Filter"] == "/DCTDecode": + filename = obj[1:] + ".jpg" + img = open(filename, "wb") + img.write(data) + img.close() + elif xObject[obj]["/Filter"] == "/JPXDecode": + filename = obj[1:] + ".jp2" + img = open(filename, "wb") + img.write(data) + img.close() + elif xObject[obj]["/Filter"] == "/CCITTFaxDecode": + filename = obj[1:] + ".tiff" + img = open(filename, "wb") + img.write(data) + img.close() + else: + img = Image.frombytes(mode, size, data) + filename = obj[1:] + ".png" + img.save(filename) + if filename is not None: + images_extracted.append(filename) + else: + print("No image found.") + + assert len(images_extracted) == nb_images From 1e46d84eba551c9954ce9a884a739a166195f569 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Apr 2022 21:22:59 +0200 Subject: [PATCH 061/145] TST: Install pillow for CI --- requirements/ci.in | 3 ++- requirements/ci.txt | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/requirements/ci.in b/requirements/ci.in index 2fb67237bf..eb92c4503d 100644 --- a/requirements/ci.in +++ b/requirements/ci.in @@ -1,4 +1,5 @@ pytest flake8 flake8-bugbear -pytest-cov \ No newline at end of file +pytest-cov +pillow diff --git a/requirements/ci.txt b/requirements/ci.txt index fa03f3956a..8815e84154 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -22,6 +22,8 @@ mccabe==0.6.1 # via flake8 packaging==21.3 # via pytest +pillow==9.1.0 + # via -r ci.in pluggy==1.0.0 # via pytest py==1.11.0 From 3eadff034c10cbb7b69b921e13c9e42b0ebb9f14 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 18:14:40 +0200 Subject: [PATCH 062/145] BUG: Stream operations can be List or Dict (#665) Appeared when merging PDFs that have content-stream-inline images This patch was provided by Georg Graf : https://github.com/mstamy2/PyPDF2/issues/196#issuecomment-172829990 Thank you! Closes #196 --- PyPDF2/pdf.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index fb0eccdda8..f932d7f154 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2255,10 +2255,18 @@ def _contentStreamRename(stream, rename, pdf): return stream stream = ContentStream(stream, pdf) for operands, _operator in stream.operations: - for i in range(len(operands)): - op = operands[i] - if isinstance(op, NameObject): - operands[i] = rename.get(op,op) + if isinstance(operands, list): + for i in range(len(operands)): + op = operands[i] + if isinstance(op, NameObject): + operands[i] = rename.get(op,op) + elif isinstance(operands, dict): + for i in operands: + op = operands[i] + if isinstance(op, NameObject): + operands[i] = rename.get(op,op) + else: + raise KeyError ("type of operands is %s" % type (operands)) return stream _contentStreamRename = staticmethod(_contentStreamRename) From 2377c51dc8cc86bc643dda1f4289675fa4468f59 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 18:24:05 +0200 Subject: [PATCH 063/145] DOC: MCVE --- README.md | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4274c5757b..f1167b5918 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,41 @@ A lot of questions are asked [on StackOverflow](https://stackoverflow.com/questi Please see [FAQ](http://mstamy2.github.io/PyPDF2/FAQ.html) +## Contributions -## Tests -PyPDF2 includes a test suite built on the unittest framework. All tests are located in the "Tests" folder. -Tests can be run from the command line by: +Maintaining PyPDF2 is a collaborative effort. You can support PyPDF2 by writing +documentation, helping to narrow down issues, and adding code. + + +### Issues + +A good bug ticket includes a MCVE - a minimal complete verifiable example. +For PyPDF2, this means that you must upload a PDF that causes the bug to occur +as well as the code you're executing with all of the output. Use +`print(PyPDF2.__version__)` to tell us which version you're using. + +### Code + +All code contributions are welcome, but smaller ones have a better chance to +get included in a timely manner. Adding unit tests for new features or test +cases for bugs you've fixed help us to ensure that the Pull Request (PR) is fine. + +PyPDF2 includes a test suite which can be executed with `pytest`: ```bash -python -m unittest Tests.tests +$ pytest . +============================= test session starts ============================== +platform linux -- Python 3.10.2, pytest-7.0.1, pluggy-1.0.0 +rootdir: /home/moose/Github/PyPDF2 +plugins: mccabe-2.0, icdiff-0.5, cov-3.0.0, timeout-2.1.0 +collected 29 items + +Tests/test_basic_features.py . [ 3%] +Tests/test_merger.py . [ 6%] +Tests/test_reader.py ......... [ 37%] +Tests/test_utils.py ..... [ 55%] +Tests/test_workflows.py ........... [ 93%] +Tests/test_xmp.py .. [100%] + +============================== 29 passed in 0.29s ============================== ``` From 436276c2a49cd8e8aa0ee7c371a1228c93e2addc Mon Sep 17 00:00:00 2001 From: Tzu-ping Chung Date: Fri, 8 Apr 2022 00:49:16 +0800 Subject: [PATCH 064/145] Use setuptools instead of distutils (#599) This allows the project to make use of modern Python packaging features such as wheels, isolated builds, and more. The change is also going to be necessary soon; distutils will soon be deprecated in 3.10, and removed from the standard library in 3.12. Closes #465 Closes #313 Might fix #581 , #456 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3986024148..9c72f72751 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -from distutils.core import setup +from setuptools import setup import re long_description = """ From ba5765934527f3d2bfffb7a3e2ceb7956bb43420 Mon Sep 17 00:00:00 2001 From: exiledkingcc Date: Fri, 8 Apr 2022 01:10:17 +0800 Subject: [PATCH 065/145] =?UTF-8?q?MAINT:=20file=20=E2=86=92=20open=20in?= =?UTF-8?q?=202-up.py=20(#366)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Scripts/2-up.py | 2 +- Tests/tests.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Scripts/2-up.py b/Scripts/2-up.py index 41e2b2a424..c38071d328 100644 --- a/Scripts/2-up.py +++ b/Scripts/2-up.py @@ -19,7 +19,7 @@ def main(): sys.stdout.flush() print("writing " + sys.argv[2]) - outputStream = file(sys.argv[2], "wb") + outputStream = open(sys.argv[2], "wb") output.write(outputStream) print("done.") diff --git a/Tests/tests.py b/Tests/tests.py index 0e59af11c7..b5e4370267 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -14,6 +14,14 @@ sys.path.append(PROJECT_ROOT) +if sys.version_info[0] < 3: + def u_(s): + return s.decode("utf-8") +else: + def u_(s): + return s + + class PdfReaderTestCases(unittest.TestCase): def test_PdfReaderFileLoad(self): From 12c70472ba665e09ea5844f683a852a1c98079f3 Mon Sep 17 00:00:00 2001 From: Justin Frahm Date: Thu, 7 Apr 2022 11:22:58 -0600 Subject: [PATCH 066/145] ENH: Add options to customize extractText() (#334) These changes allow for an optional text separator for TJ and Tj operators. These source alterations were originally suggested in StackOverflow at: http://stackoverflow.com/questions/11017379/pypdf-ignores-newlines-in-pdf-file by DSM I'm just passing along the good suggestion in hopes that the change may become standard in some future version. --- PyPDF2/pdf.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index f932d7f154..47e9df978d 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2656,7 +2656,7 @@ def compressContentStreams(self): content = ContentStream(content, self.pdf) self[NameObject("/Contents")] = content.flateEncode() - def extractText(self): + def extractText(self, Tj_sep="", TJ_sep=" "): """ Locate all text drawing commands, in the order they are provided in the content stream, and extract the text. This works well for some PDF @@ -2678,6 +2678,7 @@ def extractText(self): if operator == b_("Tj"): _text = operands[0] if isinstance(_text, TextStringObject): + text += Tj_sep text += _text text += "\n" elif operator == b_("T*"): @@ -2695,7 +2696,7 @@ def extractText(self): elif operator == b_("TJ"): for i in operands[0]: if isinstance(i, TextStringObject): - text += " " + text += TJ_sep text += i text += "\n" return text From bab31d854db027bafecf4aaee2968c4ebb2f0c70 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 19:30:23 +0200 Subject: [PATCH 067/145] MAINT: Remove trailing spaces --- .coveragerc | 2 +- .gitignore | 1 + .pre-commit-config.yaml | 2 +- .travis.yml | 2 +- CHANGELOG | 31 +++++++++++++++---------------- PDF_Samples/README.txt | 4 ++-- Sample_Code/README.txt | 7 ++----- Sample_Code/makesimple.sh | 2 +- Scripts/pdf-image-extractor.py | 2 +- Tests/tests.py | 12 ++++++------ 10 files changed, 31 insertions(+), 34 deletions(-) diff --git a/.coveragerc b/.coveragerc index 26b1345954..0964d80653 100644 --- a/.coveragerc +++ b/.coveragerc @@ -20,4 +20,4 @@ exclude_lines = # Don't complain if non-runnable code isn't run: if 0: - if __name__ == .__main__.: \ No newline at end of file + if __name__ == .__main__.: diff --git a/.gitignore b/.gitignore index 923ba58803..ba0ac4ae9f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ build # Files generated by some of the scripts dont_commit_merged.pdf PyPDF2-output.pdf +Image9.png diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f76cfebf90..ddd651483d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ # pre-commit run --all-files repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 + rev: v4.2.0 hooks: - id: check-ast - id: check-byte-order-marker diff --git a/.travis.yml b/.travis.yml index 7ce5f437ce..7b92ec0eb7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ sudo: false language: python -python: +python: - "2.7" - "3.4" - "3.5" diff --git a/CHANGELOG b/CHANGELOG index fc245b4b1c..5111c926c7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -Version 1.26.0, 2016-05-18 +Version 1.26.0, 2016-05-18 -------------------------- - NOTE: Active maintenance on PyPDF2 is resuming after a hiatus @@ -168,7 +168,7 @@ Version 1.23, 2014-08-11 - Annotations (links, comment windows, etc.) are now preserved when pages are merged together - - Used the Destination class in addLink() and addBookmark() so that + - Used the Destination class in addLink() and addBookmark() so that the page fit option could be properly customized @@ -188,7 +188,7 @@ Version 1.22, 2014-05-29 - Fixed bug where an exception was thrown upon reading a NULL string (by speedplane) - - Allow string literals (non-unicode strings in Python 2) to be passed + - Allow string literals (non-unicode strings in Python 2) to be passed to PdfFileReader - Allow ConvertFunctionsToVirtualList to be indexed with slices and @@ -199,7 +199,7 @@ Version 1.22, 2014-05-29 - General code clean-up and improvements (with Steve Witham and Henry Keiter) - - Fixed bug that caused crash when comments are present at end of + - Fixed bug that caused crash when comments are present at end of dictionary @@ -318,7 +318,7 @@ OTHER: UPCOMING: - More bugfixes (We have received many problematic PDFs via email, we will work with them) - + - Documentation - It's time for PyPDF2 to get its own documentation since it has grown much since the original pyPdf @@ -328,11 +328,11 @@ UPCOMING: Version 1.18, 2013-08-19 ------------------------ - - Fixed a bug where older verions of objects were incorrectly added to the + - Fixed a bug where older verions of objects were incorrectly added to the cache, resulting in outdated or missing pages, images, and other objects (from speedplane) - - Fixed a bug in parsing the xref table where new xref values were + - Fixed a bug in parsing the xref table where new xref values were overwritten; also cleaned up code (from speedplane) - New method mergeRotatedAroundPointPage which merges a page while rotating @@ -355,8 +355,8 @@ Other Changes: Version 1.17, 2013-07-25 ------------------------ - - Removed one (from pdf.py) of the two Destination classes. Both - classes had the same name, but were slightly different in content, + - Removed one (from pdf.py) of the two Destination classes. Both + classes had the same name, but were slightly different in content, causing some errors. (from Janne Vanhala) - Corrected and Expanded README file to demonstrate PdfFileMerger @@ -373,9 +373,9 @@ Versions -1.16, -2013-06-30 - Note: This ChangeLog has not been kept up-to-date for a while. Hopefully we can keep better track of it from now on. Some of the changes listed here come from previous versions 1.14 and 1.15; they - were only vaguely defined. With the new _version.py file we should + were only vaguely defined. With the new _version.py file we should have more structured and better documented versioning from now on. - + - Defined PyPDF2.__version__ - Fixed encrypt() method (from Martijn The) @@ -388,14 +388,14 @@ Versions -1.16, -2013-06-30 - Fixed an bug caused by DecimalError Exception (from Adam Morris) - - Many other bug fixes and features by: - + - Many other bug fixes and features by: + jeansch Anton Vlasenko Joseph Walton Jan Oliver Oelerich Fabian Henze - And any others I missed. + And any others I missed. Thanks for contributing! @@ -535,7 +535,7 @@ Version 1.6, 2006-06-06 stream filters more easily, including compressed streams. - Add a graphics state push/pop around page merges. Improves quality of - page merges when one page's content stream leaves the graphics + page merges when one page's content stream leaves the graphics in an abnormal state. - Add PageObject.compressContentStreams function, which filters all content @@ -628,4 +628,3 @@ Version 1.0, 2006-01-17 - Does not support some PDF 1.5 features, such as object streams, cross-reference streams. - diff --git a/PDF_Samples/README.txt b/PDF_Samples/README.txt index 78f03d7fbb..b83c84de9d 100644 --- a/PDF_Samples/README.txt +++ b/PDF_Samples/README.txt @@ -19,8 +19,8 @@ we won't add PDFs without expressed permission. (This folder is available through GitHub only) -Feel free to add any type of PDF file or sample code, +Feel free to add any type of PDF file or sample code, either by 1) sending it via email to PyPDF2@phaseit.net - 2) including it in a pull request on GitHub \ No newline at end of file + 2) including it in a pull request on GitHub diff --git a/Sample_Code/README.txt b/Sample_Code/README.txt index ea0430c8a7..2d798461b5 100644 --- a/Sample_Code/README.txt +++ b/Sample_Code/README.txt @@ -7,8 +7,5 @@ for users to know how to use all aspects of PyPDF2. -Feel free to add any type of PDF file or sample code, -either by - - 1) sending it via email to PyPDF2@phaseit.net - 2) including it in a pull request on GitHub \ No newline at end of file +Feel free to add any type of PDF file or sample code, +either by including it in a pull request on GitHub diff --git a/Sample_Code/makesimple.sh b/Sample_Code/makesimple.sh index c0407a1271..29980e59ca 100755 --- a/Sample_Code/makesimple.sh +++ b/Sample_Code/makesimple.sh @@ -16,4 +16,4 @@ for np in 5 11 17; do done | enscript --no-header -o - |ps2pdf - $f echo $f n=$(expr $n + 1) - done \ No newline at end of file + done diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index c1ac032381..0299c06883 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -30,7 +30,7 @@ mode = "RGB" else: mode = "P" - + if '/Filter' in xObject[obj]: if xObject[obj]['/Filter'] == '/FlateDecode': img = Image.frombytes(mode, size, data) diff --git a/Tests/tests.py b/Tests/tests.py index b5e4370267..a6c15b4173 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -55,18 +55,18 @@ def test_PdfReaderJpegImage(self): with open(os.path.join(RESOURCE_ROOT, 'jpeg.pdf'), 'rb') as inputfile: # Load PDF file from file ipdf = PdfFileReader(inputfile) - + # Retrieve the text of the image with open(os.path.join(RESOURCE_ROOT, 'jpeg.txt'), 'r') as pdftext_file: imagetext = pdftext_file.read() - - ipdf_p0 = ipdf.getPage(0) + + ipdf_p0 = ipdf.getPage(0) xObject = ipdf_p0['/Resources']['/XObject'].getObject() data = xObject['/Im4'].getData() - + # Compare the text of the PDF to a known source - self.assertEqual(binascii.hexlify(data).decode(), imagetext, - msg='PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' + self.assertEqual(binascii.hexlify(data).decode(), imagetext, + msg='PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' % (imagetext, binascii.hexlify(data).decode())) class AddJsTestCase(unittest.TestCase): From 27d0263d6fd009a81d9b1bd1d394eed1dfab9edb Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 19:32:31 +0200 Subject: [PATCH 068/145] DEV: Add dev requirements --- requirements/ci.txt | 12 ++++++------ requirements/dev.in | 3 +++ requirements/dev.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 requirements/dev.in create mode 100644 requirements/dev.txt diff --git a/requirements/ci.txt b/requirements/ci.txt index 8815e84154..91b627211b 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile ci.in +# pip-compile requirements/ci.in # attrs==21.4.0 # via @@ -12,10 +12,10 @@ coverage[toml]==6.3.2 # via pytest-cov flake8==4.0.1 # via - # -r ci.in + # -r requirements/ci.in # flake8-bugbear flake8-bugbear==22.3.23 - # via -r ci.in + # via -r requirements/ci.in iniconfig==1.1.1 # via pytest mccabe==0.6.1 @@ -23,7 +23,7 @@ mccabe==0.6.1 packaging==21.3 # via pytest pillow==9.1.0 - # via -r ci.in + # via -r requirements/ci.in pluggy==1.0.0 # via pytest py==1.11.0 @@ -36,10 +36,10 @@ pyparsing==3.0.7 # via packaging pytest==7.1.1 # via - # -r ci.in + # -r requirements/ci.in # pytest-cov pytest-cov==3.0.0 - # via -r ci.in + # via -r requirements/ci.in tomli==2.0.1 # via # coverage diff --git a/requirements/dev.in b/requirements/dev.in new file mode 100644 index 0000000000..236c45d1ef --- /dev/null +++ b/requirements/dev.in @@ -0,0 +1,3 @@ +pip-tools +pre-commit +wheel diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000000..ee8dc480c6 --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,44 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile requirements/dev.in +# +cfgv==3.3.1 + # via pre-commit +click==8.1.2 + # via pip-tools +distlib==0.3.4 + # via virtualenv +filelock==3.6.0 + # via virtualenv +identify==2.4.12 + # via pre-commit +nodeenv==1.6.0 + # via pre-commit +pep517==0.12.0 + # via pip-tools +pip-tools==6.6.0 + # via -r requirements/dev.in +platformdirs==2.5.1 + # via virtualenv +pre-commit==2.18.1 + # via -r requirements/dev.in +pyyaml==6.0 + # via pre-commit +six==1.16.0 + # via virtualenv +toml==0.10.2 + # via pre-commit +tomli==2.0.1 + # via pep517 +virtualenv==20.14.0 + # via pre-commit +wheel==0.37.1 + # via + # -r requirements/dev.in + # pip-tools + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools From 3ef80843445003f00f2afb95552e3399749fc340 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 19:34:47 +0200 Subject: [PATCH 069/145] DEV: Ignore .egg-info and dist --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ba0ac4ae9f..90c1ea28f2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ build .idea/* .coverage +*.egg-info/ +dist/* # Files generated by some of the scripts dont_commit_merged.pdf From 0fba59bd2574213eac03924578a1797ecc2a286f Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 19:35:11 +0200 Subject: [PATCH 070/145] DEV: Add Makefile for easy package uploads --- Makefile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..a0aeb720e0 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +maint: + pre-commit autoupdate + pip-compile -U requirements/ci.in + pip-compile -U requirements/dev.in + +upload: + make clean + python setup.py sdist bdist_wheel && twine upload -s dist/* + +clean: + python setup.py clean --all + pyclean . + +test: + pytest Tests/tests.py Tests --cov --cov-report term-missing -vv --cov-report html From ceb2bb2ff7e1e9b69796eb8847f1bae2b7c8cb62 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 19:52:41 +0200 Subject: [PATCH 071/145] REL: 1.27.0 Features: - Add alpha channel support for png files in Script (#614) Bug fixes (BUG): - Fix formatWarning for filename without slash (#612) - Add whitespace between words for extractText() (#569, #334) - "invalid escape sequence" SyntaxError (#522) - Avoid error when printing warning in pythonw (#486) - Stream operations can be List or Dict (#665) Documentation (DOC): - Added Scripts/pdf-image-extractor.py - Documentation improvements (#550, #538, #324, #426, #394) Tests and Test setup (TST): - Add Github Action which automatically run unit tests via pytest and static code analysis with Flake8 (#660) - Add several unit tests (#661, #663) - Add .coveragerc to create coverage reports Developer Experience Improvements (DEV): - Pre commit: Developers can now `pre-commit install` to avoid tiny issues like trailing whitespaces Miscallenious: - Add the LICENSE file to the distributed packages (#288) - Use setuptools instead of distutils (#599) - Improvements for the PyPI page (#644) - Python 3 changes (#504, #366) You can see the full changelog at: https://github.com/mstamy2/PyPDF2/compare/1.26.0...1.27.0 --- CHANGELOG | 41 +++++++++++++++++++++++++++++++++++++++++ PyPDF2/_version.py | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 5111c926c7..ceca1a1c81 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,44 @@ +Version 1.27.0, 2022-04-07 +-------------------------- + +Features: + + - Add alpha channel support for png files in Script (#614) + +Bug fixes (BUG): + + - Fix formatWarning for filename without slash (#612) + - Add whitespace between words for extractText() (#569, #334) + - "invalid escape sequence" SyntaxError (#522) + - Avoid error when printing warning in pythonw (#486) + - Stream operations can be List or Dict (#665) + +Documentation (DOC): + + - Added Scripts/pdf-image-extractor.py + - Documentation improvements (#550, #538, #324, #426, #394) + +Tests and Test setup (TST): + + - Add Github Action which automatically run unit tests via pytest and + static code analysis with Flake8 (#660) + - Add several unit tests (#661, #663) + - Add .coveragerc to create coverage reports + +Developer Experience Improvements (DEV): + + - Pre commit: Developers can now `pre-commit install` to avoid tiny issues + like trailing whitespaces + +Miscallenious: + + - Add the LICENSE file to the distributed packages (#288) + - Use setuptools instead of distutils (#599) + - Improvements for the PyPI page (#644) + - Python 3 changes (#504, #366) + +You can see the full changelog at: https://github.com/mstamy2/PyPDF2/compare/1.26.0...1.27.0 + Version 1.26.0, 2016-05-18 -------------------------- diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index 5fc7041e25..e2ba8ba3b8 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = '1.26.0' +__version__ = '1.27.0' From c25814a86ebc65a840cdfca512da17d9d115de07 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 20:07:22 +0200 Subject: [PATCH 072/145] DOC: Use README on PyPI Also move package metadata to setup.cfg --- setup.cfg | 28 ++++++++++++++++++++++++++++ setup.py | 45 ++------------------------------------------- 2 files changed, 30 insertions(+), 43 deletions(-) create mode 100644 setup.cfg diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000000..af6c5b2008 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,28 @@ +[metadata] +name = PyPDF2 + +author = Mathieu Fenniak +author_email = biziqe@mathieu.fenniak.net +maintainer = Martin Thoma +maintainer_email = info@martin-thoma.de + +description = PDF toolkit +long_description = file: README.md + +url = https://mstamy2.github.io/PyPDF2 +project_urls = + Source = https://github.com/mstamy2/PyPDF2 + Bug Reports = https://github.com/mstamy2/PyPDF2/issues + Changelog = https://raw.githubusercontent.com/mstamy2/PyPDF2/master/CHANGELOG +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + License :: OSI Approved :: BSD License + Programming Language :: Python :: 2 + Programming Language :: Python :: 3 + Operating System :: OS Independent + Topic :: Software Development :: Libraries :: Python Modules + +[options] +packages = PyPDF2 +python_requires = >=2.7 diff --git a/setup.py b/setup.py index 9c72f72751..52e2d5b72a 100644 --- a/setup.py +++ b/setup.py @@ -3,24 +3,8 @@ from setuptools import setup import re -long_description = """ -A Pure-Python library built as a PDF toolkit. It is capable of: -- extracting document information (title, author, ...) -- splitting documents page by page -- merging documents page by page -- cropping pages -- merging multiple pages into a single page -- encrypting and decrypting PDF files -- and more! - -By being Pure-Python, it should run on any Python platform without any -dependencies on external libraries. It can also work entirely on StringIO -objects rather than file streams, allowing for PDF manipulation in memory. -It is therefore a useful tool for websites that manage or manipulate PDFs. -""" - -VERSIONFILE="PyPDF2/_version.py" +VERSIONFILE = "PyPDF2/_version.py" verstrline = open(VERSIONFILE, "rt").read() VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" mo = re.search(VSRE, verstrline, re.M) @@ -29,29 +13,4 @@ else: raise RuntimeError("Unable to find version string in %s." % (VERSIONFILE)) -setup( - name="PyPDF2", - version=verstr, - description="PDF toolkit", - long_description=long_description, - author="Mathieu Fenniak", - author_email="biziqe@mathieu.fenniak.net", - maintainer="Phaseit, Inc.", - maintainer_email="PyPDF2@phaseit.net", - url="https://mstamy2.github.io/PyPDF2", - project_urls={ - "Source": "https://github.com/mstamy2/PyPDF2", - "Bug Reports": "https://github.com/mstamy2/PyPDF2/issues", - "Changelog": "https://raw.githubusercontent.com/mstamy2/PyPDF2/master/CHANGELOG", - }, - classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 3", - "Operating System :: OS Independent", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - packages=["PyPDF2"], - ) +setup(version=verstr) From d00803c2fef1cf0cfba4d5f6bfef9e7a8f500d94 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 7 Apr 2022 21:41:11 +0200 Subject: [PATCH 073/145] TST: Test Python 3.6 (#667) --- .github/workflows/unit-tests.yaml | 2 +- requirements/ci.txt | 19 +++++++++++++----- requirements/dev.txt | 33 +++++++++++++++++++++++-------- setup.cfg | 5 +++++ 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 6fc4b93b13..fa3046cab1 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 diff --git a/requirements/ci.txt b/requirements/ci.txt index 91b627211b..d25907cfd8 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile with python 3.6 # To update, run: # # pip-compile requirements/ci.in @@ -8,7 +8,7 @@ attrs==21.4.0 # via # flake8-bugbear # pytest -coverage[toml]==6.3.2 +coverage[toml]==6.2 # via pytest-cov flake8==4.0.1 # via @@ -16,13 +16,18 @@ flake8==4.0.1 # flake8-bugbear flake8-bugbear==22.3.23 # via -r requirements/ci.in +importlib-metadata==4.2.0 + # via + # flake8 + # pluggy + # pytest iniconfig==1.1.1 # via pytest mccabe==0.6.1 # via flake8 packaging==21.3 # via pytest -pillow==9.1.0 +pillow==8.4.0 # via -r requirements/ci.in pluggy==1.0.0 # via pytest @@ -34,13 +39,17 @@ pyflakes==2.4.0 # via flake8 pyparsing==3.0.7 # via packaging -pytest==7.1.1 +pytest==7.0.1 # via # -r requirements/ci.in # pytest-cov pytest-cov==3.0.0 # via -r requirements/ci.in -tomli==2.0.1 +tomli==1.2.3 # via # coverage # pytest +typing-extensions==4.1.1 + # via importlib-metadata +zipp==3.6.0 + # via importlib-metadata diff --git a/requirements/dev.txt b/requirements/dev.txt index ee8dc480c6..cf3848dc5e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,28 +1,38 @@ # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile with python 3.6 # To update, run: # # pip-compile requirements/dev.in # cfgv==3.3.1 # via pre-commit -click==8.1.2 +click==8.0.4 # via pip-tools distlib==0.3.4 # via virtualenv -filelock==3.6.0 +filelock==3.4.1 # via virtualenv -identify==2.4.12 +identify==2.4.4 # via pre-commit +importlib-metadata==4.8.3 + # via + # click + # pep517 + # pre-commit + # virtualenv +importlib-resources==5.2.3 + # via + # pre-commit + # virtualenv nodeenv==1.6.0 # via pre-commit pep517==0.12.0 # via pip-tools -pip-tools==6.6.0 +pip-tools==6.4.0 # via -r requirements/dev.in -platformdirs==2.5.1 +platformdirs==2.4.0 # via virtualenv -pre-commit==2.18.1 +pre-commit==2.17.0 # via -r requirements/dev.in pyyaml==6.0 # via pre-commit @@ -30,14 +40,21 @@ six==1.16.0 # via virtualenv toml==0.10.2 # via pre-commit -tomli==2.0.1 +tomli==1.2.3 # via pep517 +typing-extensions==4.1.1 + # via importlib-metadata virtualenv==20.14.0 # via pre-commit wheel==0.37.1 # via # -r requirements/dev.in # pip-tools +zipp==3.6.0 + # via + # importlib-metadata + # importlib-resources + # pep517 # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/setup.cfg b/setup.cfg index af6c5b2008..6319fc7b74 100644 --- a/setup.cfg +++ b/setup.cfg @@ -20,6 +20,11 @@ classifiers = License :: OSI Approved :: BSD License Programming Language :: Python :: 2 Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 Operating System :: OS Independent Topic :: Software Development :: Libraries :: Python Modules From d2c40db02456e8be5787b9e6e1859805c795edcb Mon Sep 17 00:00:00 2001 From: Matthew Peveler Date: Thu, 7 Apr 2022 16:12:52 -0400 Subject: [PATCH 074/145] TST: Test Python 2.7 (#669) Signed-off-by: Matthew Peveler --- .github/workflows/unit-tests.yaml | 19 +++++++++++++++++-- Tests/test_workflows.py | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index fa3046cab1..dfaceb8cdf 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 @@ -23,14 +23,29 @@ jobs: uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies + + - name: Upgrade pip run: | python -m pip install --upgrade pip + + - name: Install requirements (python 3) + if: matrix.python-version != '2.7' + run: | pip install -r requirements/ci.txt + - name: Install requirements (python 2) + if: matrix.python-version == '2.7' + run: | + pip install pillow pytest pytest-cov + + - name: Install module + run: | pip install . + - name: Test with flake8 run: | flake8 . --ignore E,F,I,SIM,C,PT,N,ASS,A,P,R,W + if: matrix.python-version != '2.7' + - name: Test with pytest run: | pytest Tests/tests.py Tests --cov --cov-report term-missing -vv diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index c22f358526..bd2e5f0b96 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + import os import binascii import sys From 24c4795e84fcbfc18bffc560a6ad23307f5db46c Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 07:58:33 +0200 Subject: [PATCH 075/145] =?UTF-8?q?MAINT:=20mstamy2=20=E2=86=92=20py-pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 2 +- PyPDF2/pagerange.py | 2 +- README.md | 6 ++---- Scripts/pdfcat | 2 +- setup.cfg | 8 ++++---- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ceca1a1c81..0fa67e5e73 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -37,7 +37,7 @@ Miscallenious: - Improvements for the PyPI page (#644) - Python 3 changes (#504, #366) -You can see the full changelog at: https://github.com/mstamy2/PyPDF2/compare/1.26.0...1.27.0 +You can see the full changelog at: https://github.com/py-pdf/PyPDF2/compare/1.26.0...1.27.0 Version 1.26.0, 2016-05-18 -------------------------- diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index ce96ec5f3f..61a73c13fd 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -4,7 +4,7 @@ Copyright (c) 2014, Steve Witham . All rights reserved. This software is available under a BSD license; -see https://github.com/mstamy2/PyPDF2/blob/master/LICENSE +see https://github.com/py-pdf/PyPDF2/blob/master/LICENSE """ import re diff --git a/README.md b/README.md index f1167b5918..b17af3fa46 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![PyPI version](https://badge.fury.io/py/PyPDF2.svg)](https://badge.fury.io/py/PyPDF2) [![Python Support](https://img.shields.io/pypi/pyversions/PyPDF2.svg)](https://pypi.org/project/PyPDF2/) [![](https://img.shields.io/badge/-documentation-green)](https://pythonhosted.org/PyPDF2/) -![GitHub last commit](https://img.shields.io/github/last-commit/mstamy2/PyPDF2) +![GitHub last commit](https://img.shields.io/github/last-commit/py-pdf/PyPDF2) # PyPDF2 @@ -12,7 +12,7 @@ data, viewing options, and passwords to PDF files. It can retrieve text and metadata from PDFs as well as merge entire files together. -[Homepage](http://mstamy2.github.io/PyPDF2/) +[Homepage](http://py-pdf.github.io/PyPDF2/) @@ -32,8 +32,6 @@ Please see the `Sample_Code` folder. A lot of questions are asked [on StackOverflow](https://stackoverflow.com/questions/tagged/pypdf2). -Please see [FAQ](http://mstamy2.github.io/PyPDF2/FAQ.html) - ## Contributions Maintaining PyPDF2 is a collaborative effort. You can support PyPDF2 by writing diff --git a/Scripts/pdfcat b/Scripts/pdfcat index dfb67f8792..b98607a4f5 100644 --- a/Scripts/pdfcat +++ b/Scripts/pdfcat @@ -20,7 +20,7 @@ EXAMPLES """ # Copyright (c) 2014, Steve Witham . # All rights reserved. This software is available under a BSD license; -# see https://github.com/mstamy2/PyPDF2/LICENSE +# see https://github.com/py-pdf/PyPDF2/LICENSE from __future__ import print_function import argparse diff --git a/setup.cfg b/setup.cfg index 6319fc7b74..ddcd7a33e4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -9,11 +9,11 @@ maintainer_email = info@martin-thoma.de description = PDF toolkit long_description = file: README.md -url = https://mstamy2.github.io/PyPDF2 +url = https://py-pdf.github.io/PyPDF2 project_urls = - Source = https://github.com/mstamy2/PyPDF2 - Bug Reports = https://github.com/mstamy2/PyPDF2/issues - Changelog = https://raw.githubusercontent.com/mstamy2/PyPDF2/master/CHANGELOG + Source = https://github.com/py-pdf/PyPDF2 + Bug Reports = https://github.com/py-pdf/PyPDF2/issues + Changelog = https://raw.githubusercontent.com/py-pdf/PyPDF2/master/CHANGELOG classifiers = Development Status :: 5 - Production/Stable Intended Audience :: Developers From becb16c8417d95ecffdb64ebd3827ce63964563a Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 08:01:49 +0200 Subject: [PATCH 076/145] REL: 1.27.1 --- PyPDF2/_version.py | 2 +- setup.cfg | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index e2ba8ba3b8..a873751ac4 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = '1.27.0' +__version__ = '1.27.1' diff --git a/setup.cfg b/setup.cfg index ddcd7a33e4..8c037e762f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,7 @@ maintainer_email = info@martin-thoma.de description = PDF toolkit long_description = file: README.md +long_description_content_type = text/markdown url = https://py-pdf.github.io/PyPDF2 project_urls = From ff3c0b136f9f10dbb3d482074789902906ac9ec4 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 08:59:07 +0200 Subject: [PATCH 077/145] DOC: Add Sphinx documentation (#666) --- .gitignore | 6 +++ .python-version | 1 + Makefile | 1 + PyPDF2/generic.py | 28 +++++++---- PyPDF2/pdf.py | 2 +- docs/Makefile | 20 ++++++++ docs/conf.py | 75 ++++++++++++++++++++++++++++ docs/index.rst | 44 ++++++++++++++++ docs/make.bat | 35 +++++++++++++ docs/modules/Destination.rst | 7 +++ docs/modules/DocumentInformation.rst | 7 +++ docs/modules/Field.rst | 7 +++ docs/modules/PageObject.rst | 7 +++ docs/modules/PdfFileMerger.rst | 7 +++ docs/modules/PdfFileReader.rst | 7 +++ docs/modules/PdfFileWriter.rst | 7 +++ docs/modules/README.md | 8 +++ docs/modules/RectangleObject.rst | 7 +++ docs/modules/XmpInformation.rst | 7 +++ docs/user/README.md | 4 ++ docs/user/installation.rst | 17 +++++++ requirements/docs.in | 2 + requirements/docs.txt | 58 +++++++++++++++++++++ 23 files changed, 354 insertions(+), 10 deletions(-) create mode 100644 .python-version create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/modules/Destination.rst create mode 100644 docs/modules/DocumentInformation.rst create mode 100644 docs/modules/Field.rst create mode 100644 docs/modules/PageObject.rst create mode 100644 docs/modules/PdfFileMerger.rst create mode 100644 docs/modules/PdfFileReader.rst create mode 100644 docs/modules/PdfFileWriter.rst create mode 100644 docs/modules/README.md create mode 100644 docs/modules/RectangleObject.rst create mode 100644 docs/modules/XmpInformation.rst create mode 100644 docs/user/README.md create mode 100644 docs/user/installation.rst create mode 100644 requirements/docs.in create mode 100644 requirements/docs.txt diff --git a/.gitignore b/.gitignore index 90c1ea28f2..1068256362 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,12 @@ build *.egg-info/ dist/* +# Editors / IDEs +.vscode/ + +# Docs +docs/_build/ + # Files generated by some of the scripts dont_commit_merged.pdf PyPDF2-output.pdf diff --git a/.python-version b/.python-version new file mode 100644 index 0000000000..cd337510be --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.6.15 diff --git a/Makefile b/Makefile index a0aeb720e0..29d5461508 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ maint: pre-commit autoupdate pip-compile -U requirements/ci.in pip-compile -U requirements/dev.in + pip-compile -U requirements/docs.in upload: make clean diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 56c561d3db..8801358b56 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -1033,15 +1033,25 @@ class Destination(TreeObject): :param args: Additional arguments may be necessary depending on the type. :raises PdfReadError: If destination type is invalid. - Valid ``typ`` arguments (see PDF spec for details): - /Fit No additional arguments - /XYZ [left] [top] [zoomFactor] - /FitH [top] - /FitV [left] - /FitR [left] [bottom] [right] [top] - /FitB No additional arguments - /FitBH [top] - /FitBV [left] + .. list-table:: Valid ``typ`` arguments (see PDF spec for details) + :widths: 50 50 + + * - /Fit + - No additional arguments + * - /XYZ + - [left] [top] [zoomFactor] + * - /FitH + - [top] + * - /FitV + - [left] + * - /FitR + - [left] [bottom] [right] [top] + * - /FitB + - No additional arguments + * - /FitBH + - [top] + * - /FitBV + - [left] """ def __init__(self, title, page, typ, *args): DictionaryObject.__init__(self) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 47e9df978d..8b3067e9f2 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2863,7 +2863,7 @@ class DocumentInformation(DictionaryObject): """ A class representing the basic document metadata provided in a PDF File. This class is accessible through - :meth:`getDocumentInfo()` + :meth:`.getDocumentInfo()` All text properties of the document metadata have *two* properties, eg. author and author_raw. The non-raw property will diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000..d4bb2cbb9e --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000000..010643b26b --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,75 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +import os +import sys +sys.path.insert(0, os.path.abspath(".")) +sys.path.insert(0, os.path.abspath("../")) + +# -- Project information ----------------------------------------------------- + +project = 'PyPDF2' +copyright = '2022, Mathieu Fenniak' +author = 'Mathieu Fenniak' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.coverage", + "sphinx.ext.mathjax", + "sphinx.ext.viewcode", + "sphinx.ext.napoleon", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "canonical_url": "", + "analytics_id": "", + "logo_only": False, + "display_version": True, + "prev_next_buttons_location": "bottom", + "style_external_links": False, + # Toc options + "collapse_navigation": True, + "sticky_navigation": True, + "navigation_depth": 4, + "includehidden": True, + "titles_only": False, +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000000..b353b89194 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,44 @@ +.. PyPDF2 documentation master file, created by + sphinx-quickstart on Thu Apr 7 20:13:19 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to PyPDF2 +================= + + +User Guide +------------ + +.. toctree:: + :maxdepth: 2 + + user/installation + +API Reference +------------- + +.. toctree:: + :maxdepth: 2 + + modules/PdfFileReader + modules/PdfFileMerger + modules/PageObject + modules/PdfFileWriter + modules/DocumentInformation + modules/XmpInformation + modules/Destination + modules/RectangleObject + modules/Field + + + + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000000..32bb24529f --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/modules/Destination.rst b/docs/modules/Destination.rst new file mode 100644 index 0000000000..30a631f33a --- /dev/null +++ b/docs/modules/Destination.rst @@ -0,0 +1,7 @@ +The Destination Class +--------------------- + +.. autoclass:: PyPDF2.pdf.Destination + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/DocumentInformation.rst b/docs/modules/DocumentInformation.rst new file mode 100644 index 0000000000..4002f632b9 --- /dev/null +++ b/docs/modules/DocumentInformation.rst @@ -0,0 +1,7 @@ +The DocumentInformation Class +----------------------------- + +.. autoclass:: PyPDF2.pdf.DocumentInformation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/Field.rst b/docs/modules/Field.rst new file mode 100644 index 0000000000..d34fc79d1c --- /dev/null +++ b/docs/modules/Field.rst @@ -0,0 +1,7 @@ +The Field Class +--------------- + +.. autoclass:: PyPDF2.pdf.Field + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/PageObject.rst b/docs/modules/PageObject.rst new file mode 100644 index 0000000000..80b7247445 --- /dev/null +++ b/docs/modules/PageObject.rst @@ -0,0 +1,7 @@ +The PageObject Class +-------------------- + +.. autoclass:: PyPDF2.pdf.PageObject + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/PdfFileMerger.rst b/docs/modules/PdfFileMerger.rst new file mode 100644 index 0000000000..cf936b1b27 --- /dev/null +++ b/docs/modules/PdfFileMerger.rst @@ -0,0 +1,7 @@ +The PdfFileMerger Class +----------------------- + +.. autoclass:: PyPDF2.merger.PdfFileMerger + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/PdfFileReader.rst b/docs/modules/PdfFileReader.rst new file mode 100644 index 0000000000..11ae94dc3a --- /dev/null +++ b/docs/modules/PdfFileReader.rst @@ -0,0 +1,7 @@ +The PdfFileReader Class +----------------------- + +.. autoclass:: PyPDF2.pdf.PdfFileReader + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/PdfFileWriter.rst b/docs/modules/PdfFileWriter.rst new file mode 100644 index 0000000000..5da6c9a2a3 --- /dev/null +++ b/docs/modules/PdfFileWriter.rst @@ -0,0 +1,7 @@ +The PdfFileWriter Class +----------------------- + +.. autoclass:: PyPDF2.pdf.PdfFileWriter + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/README.md b/docs/modules/README.md new file mode 100644 index 0000000000..5c9bf1a92c --- /dev/null +++ b/docs/modules/README.md @@ -0,0 +1,8 @@ +# Module documentation + +This folder contains rst files with semi-automatically generated documentation +of PyPDF2 modules. + +If you want to change something in the module documentation, it might be most +suitable in a docstring in the code. Those are used to generate the module +documentation. diff --git a/docs/modules/RectangleObject.rst b/docs/modules/RectangleObject.rst new file mode 100644 index 0000000000..a0ae1f30b0 --- /dev/null +++ b/docs/modules/RectangleObject.rst @@ -0,0 +1,7 @@ +The RectangleObject Class +------------------------- + +.. autoclass:: PyPDF2.generic.RectangleObject + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/modules/XmpInformation.rst b/docs/modules/XmpInformation.rst new file mode 100644 index 0000000000..49a6641cbb --- /dev/null +++ b/docs/modules/XmpInformation.rst @@ -0,0 +1,7 @@ +The XmpInformation Class +------------------------- + +.. autoclass:: PyPDF2.xmp.XmpInformation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/user/README.md b/docs/user/README.md new file mode 100644 index 0000000000..e7238abb3c --- /dev/null +++ b/docs/user/README.md @@ -0,0 +1,4 @@ +# User Guides + +This folder should contain rst files that will be part of the User Guides. +User guides can be usage examples and tutorials. diff --git a/docs/user/installation.rst b/docs/user/installation.rst new file mode 100644 index 0000000000..8d9f50bc60 --- /dev/null +++ b/docs/user/installation.rst @@ -0,0 +1,17 @@ +.. _installation: + +============ +Installation +============ + +Python + pip +============ + +PyPDF2 requires Python 2.7+ to run. + +Typically Python comes with ``pip``, a package installer. Using it you can +install PyPDF2: + +.. code-block:: bash + + pip install PyPDF2 diff --git a/requirements/docs.in b/requirements/docs.in new file mode 100644 index 0000000000..82133027c9 --- /dev/null +++ b/requirements/docs.in @@ -0,0 +1,2 @@ +sphinx +sphinx_rtd_theme diff --git a/requirements/docs.txt b/requirements/docs.txt new file mode 100644 index 0000000000..df1d5a0788 --- /dev/null +++ b/requirements/docs.txt @@ -0,0 +1,58 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile requirements/docs.in +# +alabaster==0.7.12 + # via sphinx +babel==2.9.1 + # via sphinx +certifi==2021.10.8 + # via requests +charset-normalizer==2.0.12 + # via requests +docutils==0.17.1 + # via + # sphinx + # sphinx-rtd-theme +idna==3.3 + # via requests +imagesize==1.3.0 + # via sphinx +jinja2==3.1.1 + # via sphinx +markupsafe==2.1.1 + # via jinja2 +packaging==21.3 + # via sphinx +pygments==2.11.2 + # via sphinx +pyparsing==3.0.7 + # via packaging +pytz==2022.1 + # via babel +requests==2.27.1 + # via sphinx +snowballstemmer==2.2.0 + # via sphinx +sphinx==4.5.0 + # via + # -r requirements/docs.in + # sphinx-rtd-theme +sphinx-rtd-theme==1.0.0 + # via -r requirements/docs.in +sphinxcontrib-applehelp==1.0.2 + # via sphinx +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==2.0.0 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.5 + # via sphinx +urllib3==1.26.9 + # via requests From 8c2dfe49c50c1af22d44aa52d057d61d3fdf62a1 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 09:07:11 +0200 Subject: [PATCH 078/145] DOC: Update documentation URL --- CHANGELOG | 6 ++++++ README.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 0fa67e5e73..75c6030404 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -39,6 +39,12 @@ Miscallenious: You can see the full changelog at: https://github.com/py-pdf/PyPDF2/compare/1.26.0...1.27.0 +Intermediate release 1.27.1, 2022-04-08 + +- Fixed project links on PyPI page after migration from mstamy2 + to MartinThoma to the py-pdf organization on GitHub +- Documentation is now at https://pypdf2.readthedocs.io/en/latest/ + Version 1.26.0, 2016-05-18 -------------------------- diff --git a/README.md b/README.md index b17af3fa46..3735714cec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![PyPI version](https://badge.fury.io/py/PyPDF2.svg)](https://badge.fury.io/py/PyPDF2) [![Python Support](https://img.shields.io/pypi/pyversions/PyPDF2.svg)](https://pypi.org/project/PyPDF2/) -[![](https://img.shields.io/badge/-documentation-green)](https://pythonhosted.org/PyPDF2/) +[![](https://img.shields.io/badge/-documentation-green)](https://pypdf2.readthedocs.io/en/latest/) ![GitHub last commit](https://img.shields.io/github/last-commit/py-pdf/PyPDF2) # PyPDF2 From 64cf05a9237b474b79b42399eb5d15cba1378f6b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 21:05:57 +0200 Subject: [PATCH 079/145] TST: Test PageRange (#674) Name Stmts Miss Branch BrPart Cover Missing ----------------------------------------------------------------- PyPDF2/__init__.py 5 0 0 0 100% PyPDF2/_version.py 1 0 0 0 100% PyPDF2/filters.py 302 238 140 9 21% 42, 54-108, 116-119, 123-162, 167, 173-189, 199-207, 210-211, 214-231, 238-265, 269, 274-345, 355, 360-385, 393->396, 398->424, 403, 405, 407, 410-418 PyPDF2/generic.py 705 210 325 52 67% 81-89, 113, 123-126, 136, 152, 203, 212, 215, 220, 229-230, 244, 258-259, 262, 299, 310, 318, 320, 332, 334, 337->391, 377, 379-390, 410, 430->exit, 438-443, 451-452, 479, 485-492, 503, 505, 509-513, 532->535, 542->exit, 557, 562, 564-566, 569, 582-587, 597, 602, 623-632, 649, 652, 655-663, 691-756, 759-772, 804-818, 826, 849, 877, 880, 889, 892, 895, 898, 901, 904, 907, 910, 913, 916, 919, 925, 928, 958-965, 967->exit, 972->exit, 977->exit, 982->exit, 987->exit, 992->exit, 999->exit, 1005->exit, 1011->exit, 1016->exit, 1067, 1071-1076, 1098->exit, 1105->exit, 1112->exit, 1119->exit, 1126->exit, 1133->exit, 1140->exit, 1147->exit, 1157-1170, 1178-1179 PyPDF2/merger.py 288 84 157 34 65% 36-37, 121->133, 128, 135, 142-143, 147, 150->154, 155, 213->219, 232->exit, 242->241, 256, 273, 289, 299->298, 316-320, 323->314, 337->344, 338->344, 344->334, 349->352, 355-356, 360->417, 361->417, 371, 374-378, 383, 387, 389, 393-410, 417->353, 436, 439->442, 444-445, 460, 463-474, 487-490, 497-504, 515-516, 521-524, 527-529, 532-548, 551-553 PyPDF2/pagerange.py 51 0 24 0 100% PyPDF2/pdf.py 1581 610 746 108 56% 52, 57, 70, 73, 119, 149, 186-188, 205-212, 277-324, 365-369, 380, 395-396, 412->414, 419-421, 429, 436->438, 453, 457->460, 537-540, 561, 576, 592-597, 636-643, 658-669, 677->684, 688->691, 711-755, 766-778, 784-788, 797-843, 852-897, 917-955, 983-1025, 1037-1040, 1057-1061, 1078-1081, 1097-1101, 1126->1141, 1130-1139, 1147, 1168, 1174->exit, 1193->exit, 1217-1218, 1226->exit, 1269-1297, 1300-1312, 1315-1318, 1321-1342, 1348-1349, 1368, 1371->1374, 1387->1389, 1390->1384, 1395->exit, 1407->1425, 1415-1419, 1421->1423, 1431->1435, 1436-1439, 1449-1461, 1472-1474, 1486-1488, 1502->1510, 1504-1507, 1510->1518, 1512, 1517, 1537-1540, 1555-1558, 1577->1580, 1586->1588, 1589->exit, 1625, 1628-1633, 1636-1646, 1649-1650, 1670-1673, 1676, 1678->1680, 1686, 1697-1700, 1709, 1734, 1741->1743, 1748-1750, 1760, 1765, 1773-1778, 1782, 1796, 1803-1805, 1825-1826, 1835, 1884, 1895-1896, 1936-1937, 1952-1970, 1973-1986, 1989, 2006, 2010, 2016-2017, 2023, 2073, 2079, 2090-2091, 2103, 2104->2110, 2128-2131, 2133, 2140->2142, 2146, 2192-2208, 2248-2249, 2255, 2263-2269, 2286-2291, 2304, 2332-2335, 2353->2357, 2358->2367, 2360, 2368-2387, 2405, 2420, 2435-2436, 2453, 2471-2484, 2500-2509, 2528-2536, 2554-2567, 2583-2588, 2598-2620, 2629, 2639-2643, 2653-2657, 2672->2677, 2679-2683, 2685, 2687-2690, 2692-2695, 2772-2774, 2784-2785, 2792-2835, 2841-2847, 2857, 2883, 2890->exit, 2893->exit, 2897->exit, 2900->exit, 2904->exit, 2907->exit, 2913->exit, 2916->exit, 2922->exit, 2928, 2965, 2973->2980, 3000->3008, 3023->3030, 3039-3046 PyPDF2/utils.py 177 25 76 7 85% 64-66, 71-72, 156-158, 228-229, 248, 255, 272, 279, 286, 294, 301-311 PyPDF2/xmp.py 183 104 78 6 34% 67, 71->70, 74, 76, 79-87, 90-94, 97, 100-117, 122-136, 141-158, 163-179, 186, 189-193, 195, 334-349 ----------------------------------------------------------------- TOTAL 3293 1271 1546 216 57% --- .gitignore | 1 + PyPDF2/pagerange.py | 9 ++-- PyPDF2/utils.py | 6 +-- Resources/pdflatex-forms.pdf | Bin 0 -> 27712 bytes Tests/test_merger.py | 3 +- Tests/test_pagerange.py | 48 +++++++++++++++++ Tests/test_reader.py | 22 ++++++-- Tests/test_utils.py | 66 +++++++++++++++++++++++ Tests/test_workflows.py | 14 +---- Tests/test_xmp.py | 3 +- Tests/tests.py | 100 +++++++++++++++++++++++------------ requirements/dev.in | 1 + requirements/dev.txt | 26 +++++++-- requirements/docs.txt | 12 +++-- 14 files changed, 247 insertions(+), 64 deletions(-) create mode 100644 Resources/pdflatex-forms.pdf create mode 100644 Tests/test_pagerange.py diff --git a/.gitignore b/.gitignore index 1068256362..7ef40d9f55 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ docs/_build/ dont_commit_merged.pdf PyPDF2-output.pdf Image9.png +PyPDF2_pdfLocation.txt diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 61a73c13fd..9adce226a6 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -80,9 +80,7 @@ def __init__(self, arg): self._slice = slice(*[int(g) if g else None for g in m.group(4, 6, 8)]) - # Just formatting this when there is __doc__ for __init__ - if __init__.__doc__: - __init__.__doc__ = __init__.__doc__.format(page_range_help=PAGE_RANGE_HELP) + __init__.__doc__ = __init__.__doc__.format(page_range_help=PAGE_RANGE_HELP) @staticmethod def valid(input): @@ -119,6 +117,11 @@ def indices(self, n): """ return self._slice.indices(n) + def __eq__(self, other): + if not isinstance(other, PageRange): + return False + return self._slice == other._slice + PAGE_RANGE_ALL = PageRange(":") # The range of all pages. diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index f7ab11ddd9..6edc24018c 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -66,8 +66,8 @@ def isBytes(b): return isinstance(b, bytes_type) -#custom implementation of warnings.formatwarning def formatWarning(message, category, filename, lineno, line=None): + """custom implementation of warnings.formatwarning""" file = filename.replace("/", "\\").rsplit("\\", 1)[-1] # find the file name return "%s: %s [%s:%s]\n" % (category.__name__, message, file, lineno) @@ -196,9 +196,9 @@ def markLocation(stream): # Mainly for debugging RADIUS = 5000 stream.seek(-RADIUS, 1) - outputDoc = open('PyPDF2_pdfLocation.txt', 'w') + outputDoc = open('PyPDF2_pdfLocation.txt', 'wb') outputDoc.write(stream.read(RADIUS)) - outputDoc.write('HERE') + outputDoc.write(b'HERE') outputDoc.write(stream.read(RADIUS)) outputDoc.close() stream.seek(-RADIUS, 1) diff --git a/Resources/pdflatex-forms.pdf b/Resources/pdflatex-forms.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a2d0dcab927fbeb6a040dc3f10604ed454302d48 GIT binary patch literal 27712 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 literal 0 HcmV?d00001 diff --git a/Tests/test_merger.py b/Tests/test_merger.py index fa0daa47a8..ca2a40fc39 100644 --- a/Tests/test_merger.py +++ b/Tests/test_merger.py @@ -14,6 +14,7 @@ def test_merge(): pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") + pdf_forms = os.path.join(RESOURCE_ROOT, "pdflatex-forms.pdf") file_merger = PyPDF2.PdfFileMerger() @@ -21,7 +22,7 @@ def test_merge(): file_merger.append(pdf_path) file_merger.append(outline) file_merger.append(pdf_path, pages=PyPDF2.pagerange.PageRange(slice(0, 0))) - + file_merger.append(pdf_forms) # PdfFileReader object: file_merger.append(PyPDF2.PdfFileReader(pdf_path, "rb")) diff --git a/Tests/test_pagerange.py b/Tests/test_pagerange.py new file mode 100644 index 0000000000..b213de5a00 --- /dev/null +++ b/Tests/test_pagerange.py @@ -0,0 +1,48 @@ +import pytest + +from PyPDF2.pagerange import PageRange, ParseError, parse_filename_page_ranges + + +def test_idempotency(): + pr = PageRange(slice(0, 5)) + pr2 = PageRange(pr) + assert pr == pr2 + + +@pytest.mark.parametrize( + "range_str,expected", + [ + ("42", slice(42, 43)), + ("1:2", slice(1, 2)), + ], +) +def test_str_init(range_str, expected): + pr = PageRange(range_str) + assert pr._slice == expected + assert PageRange.valid + + +def test_str_init_error(): + init_str = "1-2" + assert PageRange.valid(init_str) is False + with pytest.raises(ParseError): + PageRange(init_str) + + +@pytest.mark.parametrize( + "params,expected", + [ + (["foo.pdf", "1:5"], [("foo.pdf", PageRange("1:5"))]), + ( + ["foo.pdf", "1:5", "bar.pdf"], + [("foo.pdf", PageRange("1:5")), ("bar.pdf", PageRange(":"))], + ), + ], +) +def test_parse_filename_page_ranges(params, expected): + assert parse_filename_page_ranges(params) == expected + + +def test_parse_filename_page_ranges_err(): + with pytest.raises(ValueError): + parse_filename_page_ranges(["1:5", "foo.pdf"]) diff --git a/Tests/test_reader.py b/Tests/test_reader.py index c7255d8704..f0dc0f3e1c 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -7,6 +7,18 @@ RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") +def test_read_metadata(): + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: + ipdf = PyPDF2.PdfFileReader(inputfile) + metadict = ipdf.getDocumentInfo() + assert metadict.title is None + assert dict(metadict) == { + "/CreationDate": "D:20150604133406-06'00'", + "/Creator": " XeTeX output 2015.06.04:1334", + "/Producer": "xdvipdfmx (20140317)", + } + + @pytest.mark.parametrize( "src", [ @@ -17,8 +29,7 @@ def test_get_annotations(src): reader = PyPDF2.PdfFileReader(open(src, "rb")) - for i in range(reader.getNumPages()): - page = reader.getPage(i) + for page in reader.pages: print("/Annots" in page) if "/Annots" in page: for annot in page["/Annots"]: @@ -75,7 +86,12 @@ def test_get_images(src, nb_images): from PIL import Image input1 = PyPDF2.PdfFileReader(open(src, "rb")) - page0 = input1.getPage(0) + + with pytest.raises(TypeError): + page0 = input1.pages["0"] + + page0 = input1.pages[-1] + page0 = input1.pages[0] images_extracted = [] diff --git a/Tests/test_utils.py b/Tests/test_utils.py index 66fa5b488a..a305dff7e7 100644 --- a/Tests/test_utils.py +++ b/Tests/test_utils.py @@ -1,5 +1,6 @@ import pytest import PyPDF2.utils +import io @pytest.mark.parametrize( @@ -7,3 +8,68 @@ ) def test_isInt(value, expected): assert PyPDF2.utils.isInt(value) == expected + + +@pytest.mark.parametrize( + "stream,expected", + [ + (io.BytesIO(b"foo"), False), + (io.BytesIO(b""), False), + (io.BytesIO(b" "), True), + (io.BytesIO(b" "), True), + (io.BytesIO(b" \n"), True), + (io.BytesIO(b" \n"), True), + ], +) +def test_skipOverWhitespace(stream, expected): + assert PyPDF2.utils.skipOverWhitespace(stream) == expected + + +def test_readUntilWhitespace(): + assert PyPDF2.utils.readUntilWhitespace(io.BytesIO(b"foo"), maxchars=1) == b"f" + + +@pytest.mark.parametrize( + "stream,remainder", + [ + (io.BytesIO(b"% foobar\n"), b""), + (io.BytesIO(b""), b""), + (io.BytesIO(b" "), b" "), + (io.BytesIO(b"% foo%\nbar"), b"bar"), + ], +) +def test_skipOverComment(stream, remainder): + PyPDF2.utils.skipOverComment(stream) + assert stream.read() == remainder + + +def test_readUntilRegex_premature_ending_raise(): + import re + + stream = io.BytesIO(b"") + with pytest.raises(PyPDF2.utils.PdfStreamError): + PyPDF2.utils.readUntilRegex(stream, re.compile(b".")) + + +def test_readUntilRegex_premature_ending_name(): + import re + + stream = io.BytesIO(b"") + assert PyPDF2.utils.readUntilRegex(stream, re.compile(b"."), ignore_eof=True) == b"" + + +@pytest.mark.parametrize( + "a,b,expected", + [ + ([[3]], [[7]], [[21]]), + ([[3, 7]], [[5], [13]], [[3 * 5.0 + 7 * 13]]), + ([[3], [7]], [[5, 13]], [[3 * 5, 3 * 13], [7 * 5, 7 * 13]]), + ], +) +def test_matrixMultiply(a, b, expected): + assert PyPDF2.utils.matrixMultiply(a, b) == expected + + +def test_markLocation(): + stream = io.BytesIO(b"abde" * 6000) + PyPDF2.utils.markLocation(stream) diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index bd2e5f0b96..9c8f174081 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -5,7 +5,7 @@ import sys import pytest -from PyPDF2 import PdfFileReader, PdfFileWriter +from PyPDF2 import PdfFileReader TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -63,18 +63,6 @@ def test_PdfReaderJpegImage(): ) -def test_read_metadata(): - with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: - ipdf = PdfFileReader(inputfile) - metadict = ipdf.getDocumentInfo() - assert metadict.title is None - assert dict(metadict) == { - "/CreationDate": "D:20150604133406-06'00'", - "/Creator": " XeTeX output 2015.06.04:1334", - "/Producer": "xdvipdfmx (20140317)", - } - - def test_decrypt(): with open( os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), "rb" diff --git a/Tests/test_xmp.py b/Tests/test_xmp.py index 185cfd8ff7..8fc7bf3a8b 100644 --- a/Tests/test_xmp.py +++ b/Tests/test_xmp.py @@ -6,6 +6,7 @@ PROJECT_ROOT = os.path.dirname(TESTS_ROOT) RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + @pytest.mark.parametrize( "src,has_xmp", [ @@ -19,4 +20,4 @@ def test_read_xmp(src, has_xmp): xmp = ipdf.getXmpMetadata() assert (xmp is None) == (not has_xmp) if has_xmp: - print(xmp.xmp_createDate ) + print(xmp.xmp_createDate) diff --git a/Tests/tests.py b/Tests/tests.py index a6c15b4173..036fe0af3a 100644 --- a/Tests/tests.py +++ b/Tests/tests.py @@ -9,93 +9,127 @@ # Configure path environment TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) -RESOURCE_ROOT = os.path.join(PROJECT_ROOT, 'Resources') +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") sys.path.append(PROJECT_ROOT) if sys.version_info[0] < 3: + def u_(s): return s.decode("utf-8") + else: + def u_(s): return s class PdfReaderTestCases(unittest.TestCase): - def test_PdfReaderFileLoad(self): - ''' + """ Test loading and parsing of a file. Extract text of the file and compare to expected textual output. Expected outcome: file loads, text matches expected. - ''' + """ - with open(os.path.join(RESOURCE_ROOT, 'crazyones.pdf'), 'rb') as inputfile: + with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: # Load PDF file from file ipdf = PdfFileReader(inputfile) ipdf_p1 = ipdf.getPage(0) # Retrieve the text of the PDF - with open(os.path.join(RESOURCE_ROOT, 'crazyones.txt'), 'rb') as pdftext_file: + with open( + os.path.join(RESOURCE_ROOT, "crazyones.txt"), "rb" + ) as pdftext_file: pdftext = pdftext_file.read() - ipdf_p1_text = ipdf_p1.extractText().replace('\n', '').encode('utf-8') + ipdf_p1_text = ipdf_p1.extractText().replace("\n", "").encode("utf-8") # Compare the text of the PDF to a known source - self.assertEqual(ipdf_p1_text, pdftext, - msg='PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' - % (pdftext, ipdf_p1_text)) + self.assertEqual( + ipdf_p1_text, + pdftext, + msg="PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" + % (pdftext, ipdf_p1_text), + ) def test_PdfReaderJpegImage(self): - ''' + """ Test loading and parsing of a file. Extract the image of the file and compare to expected textual output. Expected outcome: file loads, image matches expected. - ''' + """ - with open(os.path.join(RESOURCE_ROOT, 'jpeg.pdf'), 'rb') as inputfile: + with open(os.path.join(RESOURCE_ROOT, "jpeg.pdf"), "rb") as inputfile: # Load PDF file from file ipdf = PdfFileReader(inputfile) # Retrieve the text of the image - with open(os.path.join(RESOURCE_ROOT, 'jpeg.txt'), 'r') as pdftext_file: + with open(os.path.join(RESOURCE_ROOT, "jpeg.txt"), "r") as pdftext_file: imagetext = pdftext_file.read() ipdf_p0 = ipdf.getPage(0) - xObject = ipdf_p0['/Resources']['/XObject'].getObject() - data = xObject['/Im4'].getData() + xObject = ipdf_p0["/Resources"]["/XObject"].getObject() + data = xObject["/Im4"].getData() # Compare the text of the PDF to a known source - self.assertEqual(binascii.hexlify(data).decode(), imagetext, - msg='PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n' - % (imagetext, binascii.hexlify(data).decode())) + self.assertEqual( + binascii.hexlify(data).decode(), + imagetext, + msg="PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" + % (imagetext, binascii.hexlify(data).decode()), + ) -class AddJsTestCase(unittest.TestCase): +class AddJsTestCase(unittest.TestCase): def setUp(self): - ipdf = PdfFileReader(os.path.join(RESOURCE_ROOT, 'crazyones.pdf')) + ipdf = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) self.pdf_file_writer = PdfFileWriter() self.pdf_file_writer.appendPagesFromReader(ipdf) def test_add(self): - self.pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") - - self.assertIn('/Names', self.pdf_file_writer._root_object, "addJS should add a name catalog in the root object.") - self.assertIn('/JavaScript', self.pdf_file_writer._root_object['/Names'], "addJS should add a JavaScript name tree under the name catalog.") - self.assertIn('/OpenAction', self.pdf_file_writer._root_object, "addJS should add an OpenAction to the catalog.") + self.pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) + + self.assertIn( + "/Names", + self.pdf_file_writer._root_object, + "addJS should add a name catalog in the root object.", + ) + self.assertIn( + "/JavaScript", + self.pdf_file_writer._root_object["/Names"], + "addJS should add a JavaScript name tree under the name catalog.", + ) + self.assertIn( + "/OpenAction", + self.pdf_file_writer._root_object, + "addJS should add an OpenAction to the catalog.", + ) def test_overwrite(self): - self.pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + self.pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) first_js = self.get_javascript_name() - self.pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + self.pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) second_js = self.get_javascript_name() - self.assertNotEqual(first_js, second_js, "addJS should overwrite the previous script in the catalog.") + self.assertNotEqual( + first_js, + second_js, + "addJS should overwrite the previous script in the catalog.", + ) def get_javascript_name(self): - self.assertIn('/Names', self.pdf_file_writer._root_object) - self.assertIn('/JavaScript', self.pdf_file_writer._root_object['/Names']) - self.assertIn('/Names', self.pdf_file_writer._root_object['/Names']['/JavaScript']) - return self.pdf_file_writer._root_object['/Names']['/JavaScript']['/Names'][0] + self.assertIn("/Names", self.pdf_file_writer._root_object) + self.assertIn("/JavaScript", self.pdf_file_writer._root_object["/Names"]) + self.assertIn( + "/Names", self.pdf_file_writer._root_object["/Names"]["/JavaScript"] + ) + return self.pdf_file_writer._root_object["/Names"]["/JavaScript"]["/Names"][0] diff --git a/requirements/dev.in b/requirements/dev.in index 236c45d1ef..f01898feab 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,3 +1,4 @@ +black pip-tools pre-commit wheel diff --git a/requirements/dev.txt b/requirements/dev.txt index cf3848dc5e..71a5ee617a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,10 +4,16 @@ # # pip-compile requirements/dev.in # +black==22.3.0 + # via -r requirements/dev.in cfgv==3.3.1 # via pre-commit click==8.0.4 - # via pip-tools + # via + # black + # pip-tools +dataclasses==0.8 + # via black distlib==0.3.4 # via virtualenv filelock==3.4.1 @@ -24,14 +30,20 @@ importlib-resources==5.2.3 # via # pre-commit # virtualenv +mypy-extensions==0.4.3 + # via black nodeenv==1.6.0 # via pre-commit +pathspec==0.9.0 + # via black pep517==0.12.0 # via pip-tools pip-tools==6.4.0 # via -r requirements/dev.in platformdirs==2.4.0 - # via virtualenv + # via + # black + # virtualenv pre-commit==2.17.0 # via -r requirements/dev.in pyyaml==6.0 @@ -41,9 +53,15 @@ six==1.16.0 toml==0.10.2 # via pre-commit tomli==1.2.3 - # via pep517 + # via + # black + # pep517 +typed-ast==1.5.2 + # via black typing-extensions==4.1.1 - # via importlib-metadata + # via + # black + # importlib-metadata virtualenv==20.14.0 # via pre-commit wheel==0.37.1 diff --git a/requirements/docs.txt b/requirements/docs.txt index df1d5a0788..3faf383f45 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile with python 3.6 # To update, run: # # pip-compile requirements/docs.in @@ -20,9 +20,11 @@ idna==3.3 # via requests imagesize==1.3.0 # via sphinx -jinja2==3.1.1 +importlib-metadata==4.8.3 # via sphinx -markupsafe==2.1.1 +jinja2==3.0.3 + # via sphinx +markupsafe==2.0.1 # via jinja2 packaging==21.3 # via sphinx @@ -54,5 +56,9 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx +typing-extensions==4.1.1 + # via importlib-metadata urllib3==1.26.9 # via requests +zipp==3.6.0 + # via importlib-metadata From 9c33d39f74cc95403107c02786d4d6c637fd1b52 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 21:26:54 +0200 Subject: [PATCH 080/145] TST: Page class (#675) --- .gitignore | 1 + Tests/test_basic_features.py | 2 +- Tests/test_page.py | 28 ++++++++++++++++++++++++++++ Tests/test_writer.py | 27 +++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 Tests/test_page.py create mode 100644 Tests/test_writer.py diff --git a/.gitignore b/.gitignore index 7ef40d9f55..7dd6f93f76 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ docs/_build/ # Files generated by some of the scripts dont_commit_merged.pdf +dont_commit_writer.pdf PyPDF2-output.pdf Image9.png PyPDF2_pdfLocation.txt diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py index 7870eff617..aa9d865ed6 100644 --- a/Tests/test_basic_features.py +++ b/Tests/test_basic_features.py @@ -48,6 +48,6 @@ def test_basic_features(): password = "secret" output.encrypt(password) - # finally, write "output" to document-output.pdf + # finally, write "output" to PyPDF2-output.pdf with open("PyPDF2-output.pdf", "wb") as outputStream: output.write(outputStream) diff --git a/Tests/test_page.py b/Tests/test_page.py new file mode 100644 index 0000000000..19ae52fc3e --- /dev/null +++ b/Tests/test_page.py @@ -0,0 +1,28 @@ +import os + +from PyPDF2 import PdfFileReader + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + + +def test_page_operations(): + """ + This test just checks if the operation throws an exception. + + This should be done way more thoroughly: It should be checked if the + output is as expected. + """ + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + reader = PdfFileReader(open(pdf_path, "rb")) + page = reader.pages[0] + page.mergeRotatedScaledPage(page, 90, 1, 1) + page.mergeScaledTranslatedPage(page, 1, 1, 1) + page.mergeRotatedScaledTranslatedPage(page, 90, 1, 1, 1, 1) + page.addTransformation([1, 0, 0, 0, 0, 0]) + page.scale(2, 2) + page.scaleBy(0.5) + page.scaleTo(100, 100) + page.compressContentStreams() + page.extractText() diff --git a/Tests/test_writer.py b/Tests/test_writer.py new file mode 100644 index 0000000000..6d56ebe491 --- /dev/null +++ b/Tests/test_writer.py @@ -0,0 +1,27 @@ +import os +import pytest + +from PyPDF2 import PdfFileReader, PdfFileWriter +from PyPDF2.utils import PageSizeNotDefinedError + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + + +def test_insert(): + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") + + reader = PdfFileReader(open(pdf_path, "rb")) + + output = PdfFileWriter() + page = reader.pages[0] + with pytest.raises(PageSizeNotDefinedError): + output.addBlankPage() + output.insertPage(page, 1) + output.addBlankPage() + output.insertBlankPage(width=100, height=100) + # finally, write "output" to PyPDF2-output.pdf + with open("dont_commit_writer.pdf", "wb") as output_stream: + output.write(output_stream) From 617c44a8a60b24bd266ce62783aebad2c839b821 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 8 Apr 2022 22:20:01 +0200 Subject: [PATCH 081/145] TST: PdfFileWriter (#676) --- Tests/test_basic_features.py | 12 +++++++++++- Tests/test_writer.py | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py index aa9d865ed6..75e72c3249 100644 --- a/Tests/test_basic_features.py +++ b/Tests/test_basic_features.py @@ -1,6 +1,11 @@ -from PyPDF2 import PdfFileWriter, PdfFileReader import os +import pytest + +from PyPDF2 import PdfFileWriter, PdfFileReader +from PyPDF2.utils import PdfReadError +from PyPDF2.pdf import convertToInt + TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") @@ -51,3 +56,8 @@ def test_basic_features(): # finally, write "output" to PyPDF2-output.pdf with open("PyPDF2-output.pdf", "wb") as outputStream: output.write(outputStream) + + +def test_convertToInt(): + with pytest.raises(PdfReadError): + convertToInt(256, 16) diff --git a/Tests/test_writer.py b/Tests/test_writer.py index 6d56ebe491..4458064eb8 100644 --- a/Tests/test_writer.py +++ b/Tests/test_writer.py @@ -3,25 +3,57 @@ from PyPDF2 import PdfFileReader, PdfFileWriter from PyPDF2.utils import PageSizeNotDefinedError +from PyPDF2.generic import IndirectObject, RectangleObject TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") -def test_insert(): +def test_writer_operations(): + """ + This test just checks if the operation throws an exception. + + This should be done way more thoroughly: It should be checked if the + output is as expected. + """ pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") - outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") + pdf_outline_path = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") reader = PdfFileReader(open(pdf_path, "rb")) + reader_outline = PdfFileReader(open(pdf_outline_path, "rb")) output = PdfFileWriter() page = reader.pages[0] with pytest.raises(PageSizeNotDefinedError): output.addBlankPage() output.insertPage(page, 1) + output.removeText() + output.insertPage(reader_outline.pages[0], 0) + output.addBookmarkDestination(page) + output.addBookmark("A bookmark", 0) + # output.addNamedDestination("A named destination", 1) + output.removeLinks() + # assert output.getNamedDestRoot() == ['A named destination', IndirectObject(9, 0, output)] output.addBlankPage() + output.addURI(2, "https://example.com", RectangleObject([0, 0, 100, 100])) + output.addLink(2, 1, RectangleObject([0, 0, 100, 100])) + assert output.getPageLayout() is None + output.setPageLayout("SinglePage") + assert output.getPageLayout() == "SinglePage" + assert output.getPageMode() is None + output.setPageMode("UseNone") + assert output.getPageMode() == "UseNone" output.insertBlankPage(width=100, height=100) + output.insertBlankPage() # without parameters + + # This gives "KeyError: '/Contents'" - is that a bug? + # output.removeImages() + + output.addMetadata({"author": "Martin Thoma"}) + + output.addAttachment("foobar.gif", b"foobarcontent") + # finally, write "output" to PyPDF2-output.pdf with open("dont_commit_writer.pdf", "wb") as output_stream: output.write(output_stream) From 3ddd85210ca8c06daf10f20300bd239339f59548 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 08:45:31 +0200 Subject: [PATCH 082/145] TST: PdfFileWriter.removeImages (#677) --- Resources/side-by-side-subfig.pdf | Bin 0 -> 831160 bytes Tests/test_writer.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 Resources/side-by-side-subfig.pdf diff --git a/Resources/side-by-side-subfig.pdf b/Resources/side-by-side-subfig.pdf new file mode 100644 index 0000000000000000000000000000000000000000..56ba399e494dae3cce7c7a29ebe88f8eed8b4521 GIT binary patch literal 831160 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

  • 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

    D-`3(X*JD*4Wr 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

    K2lsvbk@lCtv`csxK(WX;Ho$pHq8+J~d!}d&fap z4OLCBrG4I*K|Ej;S?ZyIu*^?lcASrFYkm59oBkP-sH&<`o_VFFn8Xm18{$OnPro=i z7xcN?2+mjCE94eiO#VMwpr{mdwDx;q$z-#_@8!um5$8W*R2B-EJ;LC3I$T|-I-9Jz z`>5>FPidv0`hqTXG<)TkrbuY~!|77YF@+hzkWaR(hfH+sRNu4}-tw0vqJpXbl=C`n zXiyhyC_m0u+w(r!8j3ls*FK%ISSf2Q6ZJJhqODWl#Z3!@6Ua_*cCjHq87fVVjY__<*vg*xNwDk1U$fZW<9D#yYzZvJS(i5b-VWzdubcUMc zdGRssGqA6^+odZ_2n

    $iU_ADZUxOA{+yCJ%B# zhSI~^a6Rz6{=-y4zM7<@u)4<7@kT!iDK}zzHM`rs5oZ>c0an%5RaN|5J!Fvxz*j1TU6rSol=?7+t&$zaEO-_VaSi>s*RmZ3j*hj^pXg|BvK&p~mqx1K$sj%g#E;!>{@ zt={8t+&5wm^uc^Xnb2i&(?-ivDyp3_MgUb-+yidC>~Iy)G?IHU(@+Jfj0q)5dytDY zp38m0^ut-H#L=xaQ8%^j0TvyxVznk_x+%|yHj<}er0>x67`dc^Cw2@Ns)anms@|T1 z0__0+7@!q8=ZZ9)hxvoUV{a@~6-7iWA&Hu1k*pLwgL~hm*tVv6S*s#NyRNMb6jx(! zATY~_vko81vdJl#UIvoPkvf9+w&1s6{@7OzNrLF}D_Cji#Z}T+n#i%}yQ#hRw)W~T zhSZhQ)y#e_C@SIY6yZtl(Y*Y}ra8t{nWPmdB2QBBIN1tpPho#-Z0RDXtb`o4j#%8O zcZj%kkdB0U?YQfOjmJYKnhnkDH(N$L0_a6N)jMGY`wA_Y589?xWKD%L* zoHw64Mq;OO3ApCY6kMCy$DqRsYFfTz)cJ;6B|N+=D>goD4+9V}LqD-Jn`ttEvAPYRHAY>!3znAyI&OLfR-Sp;242wxR zzJ&y^QVNq})C+@!JR;v4nrSr9&6S2LYHe2l`H|4y&l1lUC^ocszOpG~W?rI}mYL>? zrfA}pHqjzGoneP-Vi4Bl5rG;{Aw?Zbb|9YGhir6Q){i9Psx(@~N(}BI1XGsq$>yzl zTz;bo zgGQY?^aEgfVWV)-V|0p|KEuRfKi3nFBdA#xHi?x%wTkNgn5D&*sUcj|FBn&iiz5qa zxn=uy$Dh2k@{N=-_tU@M8aiBtABQ2}6EtL&F$Y)n^8G%zRaKM5kvj!(DQl>1gm?A6 z7Ao{JwX%pRykV>Y5Jr$L57W23@MIMaDGfT9qf=tSO8~`K zsoSN%{;i^p6H_ai-D3(boBx`6vt4RJM z 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

    P<%1F+lcwkYAA8>ZnbvQ(#a zTA8jTsAeol@>~88 z$7HxVSIXOCJoL6}gj}EQG@7EPI&$HeX@Ays@3k>ctjY@l(o?0HIo92w1K=4zD8p(enj#Du>xZU7b2iZUZ+hxrb|! z*4FbFS(`-popF;e%N}@SJ5)-_2_vDq9+vbtCWO>QOlPebWkHhb152txSGgLxf_s1g z?S(BA*{)*KqQuD$$<2s}kd3UUHaq$4j=Os~D!18XCQnT~nx%Sy@OfxpflrB{u2ImfBHC z>IYt!ZAY4-%xEfVV@YOYNDxKOXjiFYxZmo0v4hSt>EWa`d5D!wQi*BfnXFtB^XMNc zp2XaoYj_7Me7S409Ku~WwDE=%C+3L_tnwer*J0Ojib^!DMAWVEiK=5sl!tVVY{xOM zjRb(jYxEXU06TBLzBAdDZCTE0dZmuCW?-q8(V&J4_0sM0Kba=OYn&5LnNd>HRA!aY zO7%!uIEj=ZD;~gay}F&q=m&ge@(Q@K49U+mR!N*jYD%&sdWXoPsQ?1UxgmRXNTxfa zZ6c^_%RiwtS}Fty$)cmC8X$;)XKQ&2+gDT2VsvrQ({Vmm9BL%^U}|MyxKOtws6E-N zpq`}p3|zUsL&JFmYh};zHHIM^jS$tzLQa&`)VVEly~{UjQAT6Q^7gOH=@MM}xyLSv zTTp_)1=ntxY)KoEefADJuqUcWc{LSoYD6=GN6#KOp(VL!Z}YcSJDU%4hVf9-R91>Q z3NtFwfQ=w+D64OmnbfiBbotu&3n9!Zt7d_-d4x#pO2f)Ayv0S%l?UV-T%M;E)Mq)J zOt3{k6%-kJ_!Ly5D@t$VrsR4JjyvMNQ8&rycq0(Zvr4Hc=xS1zD2=qwH5`1f_Ueek zbGWfL!P9nW^Xu0;nyOg@jNJ>_F@2 zgQ@F`9e!T0S4T|*tuHpw8AJnlb!7=gV!qFh31bO4abSLluT3Zc_JV zJz0=eOo}!)yEu2=XBr&alQEO{&B~W(rIPJ#ZOX03{6&_mxoYJwKMgIT=JRqMoI{-iPdQVw{L$_jBRZ^dAlz)2x$B#nrB$*MQu6Az zMF3cTwjMHy(qgpat)rhwFons2s5ew0(#5>*xx(q|Ws#&*PX)IDZU?WX8P?@=W#jm2 zg?XC#6;yzIFWBH?mu6JF$+b5qs28~Li|#h-Y-x*+W;v<#Q@L{B$bI+uTUPuJHkQT~1^!s9ip(-Rtg<>dAiLTaT>D=3<8q*S_ zyqY>1sU)31W8t@nfOZ4Q*8}N}^ZPcfogJ7bq%&A^n!mZNaD4sTsG3U4z#z{wuwczw2E^*^8C+TS_A`+x> z$YNI)Rc*EJzW)GhN!SEuV8~j^E^c@4?b9AZ9CN`+^A=zf02JM9Jc%7WaVaRH4$?&G zRg%iKy^Z|FHpRX+&o)g(g4axju9^`cGAkA#HolR)_px2a*4Xvx$fre4Z!DV=zu}v8 zH{SvCAgozkYFQ(7H0tpX03i6cK4-V4B4de>X^lfHg^1J!?$+vd7>lm_f1lKwN$a(>OYTW+K-hp1xhM6mmyRAxT2%+C4=&leh!d zZuo^;G)F7UwACIebm0l&N=vvL<`G)>Sd-`Ftd7`Bp zP(Vs4AoHC8Cd7DrkG>RC)2n9>sG>}$Pc}i|XFaSs-xj2l@G?{KlVUu2zy|$D->2({ z!dqt`>2oEgzcND0tcH~cARf0C$FG@%re=nsDdS})Nw%xpTI2f+12qbo2>Dc#$*ArP zk6rKD!_x{Tr>0tnWQG`{RFRK3F#xIU?mKUXa%qIsO`kN;Dj1VttQ2rPh0lBw@g<{- zH;9XysWu%tAABKNH8k(63XP(fjG9lJ(JC<{x*h6dFGX&XO2ExQ8F8xM4`9g49px^D;nrcv27R_p;yrLtor;a^#G4E*y@ao@5J+{I; z&nL_wM-doUUr~*k+~7ALgKO=zy)S?=s@(DGB$|^s$@q^i1DNq>FjPc(0wO#5b^URm ztjuJOEDq%qp8^RGwVK-l+*tjwd@Z$dm5C2k7`mIU=yR;YFruu?(j3N*;N*qMM;%Hu zae&q#nXlmj$8reke0>H&w1x;X8cMXUj%H-1o(2(0;NI}mCBasYNh-_KToH#EwItc) zd=S)5hJ?gpbkG!Pzgv#}oh^+81uk_k|HER$>Y44bBD>6CPaAv&ka>Z4+xGdf4o6+O`b7mEHR6X{wzCEa<{mD`!&9d3nl`d@pi6de~fYp7+O}55{uZaxxQqkp-q!p=RIWnw_ ztLO5S4d~XuGFEX!DKfiL-cnLEt*Tkfoyf5HPkVL7OungNk3P|bdg;S?D!!J*IfZRG z%OTNJwe`yllA4jrD!uM5G=QCKK)w27qW;ckCjH$8ZJDTC!U&9MPK?E1zj;T>TgY!~ z;B2e+W^F=7T^w;%(glX1B)ZK3{sVpb-p9Dco_NI`UGS+fMnE;n#I}>|({I-d^4x73 zy*H?rsL91fqET5pRmUu+n2{y#RVcqT{KuWU0oK^e=JdICQo>5fOtmWrG}(MDX(e_y zF8)B9676dNwhXAARf%b-xwR^#Y2ucm`sSU5%MT?*wa-C&cE&O&spCq_&80HM3+gpf zHltN4ZE&OhSaJg2ZI0N*%H6Zv#|?H>TWUim4dpRY)Miz|e|Xh3%uuKS+9kH+0c-Z{ z=YlwLXtON9tOhrtf=?9f;awwZ6Vm3y*mfSc&gXJgWqB~9=LmBw#1yC@Y|+L}wxDTDO-j||R0C4cyqwpKje!JexgGnB{IJ}4M0WU_tlpZdG|s8yfnqSgjP&IE zu#!nH>ckC?YlGVvt|5s6(q#};BYapB)J#)b=(*P+@?Es8`r8cngNRnEh+@lV>6~+% zG~=3W8UcL+wd}i|iVoY`8BEVqS))qKlGIEY!6X4QO_5|2$Jv-ds%+E5+s&bP{mh+*?p=(Q5P&Q+=?XX*qAP?67 zQLHfKk*=#TFFeG*PgbT4hf9+d_@rvGdU-#0ii)`9hACT^UC3Dq^u5`&18Z+?`vJBEmO7l;q3JT|Vxr5V zI;Wk7GC|v7M~LrWJn*Y7f(rV1DyNB_f{+mea*Z7Mw!r=MgS$m zq)fV*3bMc(T(<<9cD1^h4Fk{V>8P3{J}+)MaDVC zWyBR6N5mBI)RbyvlI;~TfYR@B3vbuC!(7Uqejv=GlqeLp7f~h0@~`yV{V#$tJ`|&& z%;S36)Q%)1RZ6Nzi*430H)a6tdJlYG8jMxG$YfG(qtQH`DCfbIkj8T<*-W? z0C5d1F?*7r*cZ0Nj^2YBejuinzM(S4s!DnaSi}KTfvJM{*+)R2++6u>*9|B-T))ID zCY+xiAKXWpaU#x8QPEu#m5m85HvSap^*8(DYm@NiZzOQZn#QqJw0hQ>A*MPQTjtxL zmBz)5$ig}YqT%Uds*Z^#%mRg_r>IcjN!UB5Um_IS%;RyA{`;wlY{xXLo>?U#z>N!j zpxWP*c&+DbCP^sAppwfs5(;Z*)^g5#zm7Ovz`?N!mJ6}0(XK}@AZO?^Tr z21etvi9JHqocCb6K1EC|J>@b21x>B%G z3E^n1%$!nA!4!_5wXNx4+?-WCH5~?EArEm22$n5#NWB9v8vuIT?n&q{_bbQ^D*Rq$BDA-(X{O~^_4jOZ*5gWX z0@CGqOp(E-#Wb&BruMyuQhN{A8hTzQsfrn9j+PoEi8Mp4wYWCixxSS@$}evCbkf|2 z$}(!Bq27H_nx0zFq06Zt8t0vW<`6nYy@5903iwkhnOe6t%?nGIR?DwczcQ%#R1Yrp z@&g&}4y>)Ip1(HDs?Aw8N_bx70~5C03GZR`IDb!`W(K+xNNL1Z<;fxfNB~`xN!^(D zBVabZ4<&nI@M&?0_Y}!ln8s+qRH9#&l@{_*mfg806wANa*q^ z6VCX0hO}^~`5tl&-PrCTU#>b-#!1IO6#P0fYIvz~%6SoHj7c1F>QJ$CS!O-2y@ylU z!xz5~WLzqOjwn+z&7E#hqGPGM5`YocyPu{Cmp;ui`Z|fSGW<7?E0?Lx^AH5H$ zvbAMcjbk2*eTUN-xoB&sDvdB|8lcOdpN)54Gq4~5j*psfj!{`u23s`OlT_T9VWN&XB7R%N z8xmUgv;P3!6+uq_0Q@m4BoWFGmmB$(`;2cFB@j!MMy%1h$IGcPk@$e_Mg08mRYwk` zbsV!YLJW#yL4D&L*_*i=40rPgKEp9I^2TTcH2a7A4NMA?bKA`M3~92e3ToDtH;9>1 zQ{gBJF7_plPS~yv7O1Stqn>EYRPliENG0WjP^Rx=zfJtj#wn+xOv&MX9LuW`sxpI+ z#?i?ghz!BHvFq!($2O(Y3Qj$t{TBl~m4c%x%pwyLrdnW^K!dLR$;0|?49pNq9CBt< z#hU67*4~#U*b1PS18T5OX%@E zLR`5qZ|=u}o~CFl^zW}wBI=elAdfNUgq3v}n#jT$$skowLQ4>}yv2u6=ZRCjY*jL> z2~ufcH+dsgA)KEP+iUJN^2UW$nx+BFR$0pFAoL>rhi_4hUYkpb=$;iQ>GUSZVw0L3 zOoCUDh0AIK`M1HSB5^a88o7H|-q!cHI3_3{5;RdnvB7WE!jjC8P7NQQYW8KJ9Bh^ zpIik6KO&_`c)?#2IBi?`*!As;a^^Ku=w|6M*Jv{vdKBkUIFUpjofq*9K(uBCVxjtdRkv$jW?7diY1KDH(2# z0*;U>a?&yr<^dY));nn@eZ}^~b1L{~(m7I+NaaTZQ&TgAH`o@pQ|H?aVyTKMc;p3S zSk8hQ!Y-!!gSguVW|{6+MIavz=8>am9!St#SFc0X_r^T)P4H6MF?zhsH5k2|?ejH) zx^Z1t>nvyiZ-){P8Si4fNEZNYwg{@sGP-!8n={MPGp1P#inMg{BOo2xH@IQuE-*H2 zQ%#>|61^gtT2%;!NOZF*fIwq?uiviNbHka8^i;F_7Gpg`GsYA{EkA}!{KsAPJ$4@0 z#gcJ~>9_uQGs(hDC)th8xOREChKDf7cxsxfC9yHhLs0sp^X3*{(YU`&fwz2VV&V+1 zhdvuGt;*`nTO!Dm=%tx~ItkS5Zb0i|dSU)pX=$^$g*7!jS}QDkxg=!Rfv7QI;c#uS z?eC1ve_2g07BHhQy!7(viE5})W`Y*#M4^{FFQq}(ev8Jf1 zr1)t~2&Cq!HH2VDpx)MPJFmBJaIT`VOroXar+*Bn7m$b+JAgN~_HMiFv9ZFMiiMvv zs#;Z&DrHkoG%>J@$zWKvur|}Nu-~pLdivLnkY%Y&no-3a>M7@{253-tSgUn#dlvHg z;tvlPt^9vK_QZrO(nG!-sEabopsl3KC!v+BWJp;+apX{6uWQ=?=9OlPJCx=Hv|QzI$n9h^0Wl1+fP80b{Bl1lEtMQeCUo0I2rY<(n= z3mECqByOTK3-z~rYFO4voN1%6<@Wa;#QYPMNtbaQb4xQa!3Ytd-rj)@-!li5^0P_ocqQ_yr{cW}}xwdH%^77huZd%G` zsbT?RqRz&{sV$@^^ccmSeKnelv6QtK3fxpe8(^eMWJd)be*@vP6XzlV@T9g?0Z zTg@qbqmNgKiS@SLcgH@WSsOW_ijbJ~$Qez(MC*TDfWqO5cFxTvsT-{BzB=5=vMi_~ z%^XU#HF1(fBrA3(y>9ls&zU{O!b;*y=7|!>u|x3CL!(l_1-o?AsI15NoOL4t<+QWV zyHZmV9Qmt+c?j_Y1$-d?05cT?`rFSJ^CFju8fqy7@zHCif)u)}^S_0S{{Vq*NpAMr z1!>Yc^=zGOePvI?<>qyx%UOd~N&#jntVluMuIKoVUm;`XQRWd(PnYG!pN6QKGd+oE z>g8>siHP}~+i;^`0XS79T`e|KTOd5=<~qwEA1Ph7_Sg?|gj_wCRIX}e1>>d5l1j#m z{Ji#E3Qw82w*E&A2wk_}N#x?vUQJIB=PgT?u2n)(Y|Yr28ZF|bC#t3XXYH%)wkYC0 zXAkh*E=Nse%%_i^m`q<+Ci|p7ov&g^BfDWPQq;LU969!GzZ0&Y@}P0Nth=B3Z)^LU zFv=(^IM!;;BF_WClyis$2tdu(N?)i0>3*jLE-L&l?gu_jmuy+Wc^PV`>!h%RNCHUh zve=8c`j7zXPfTd29V+vj*Ewo<){-}KPAboUMyxE_ILE)zkMU<1)Mh3&m{+QWPaSc{x@Q0<<@hAkNm!TttZ+PNBZZFWt z=KjMO7;^)g=aEn?IH$`5tx+q%9=Dcbe-pVNn_Peg>x~x^=M=dE-D7#G5fxykU|rq2 zG^b%}@1Ozeh)KS_%OtP%G}F{BOBF3qqlR3xLjyy=#B;-$QfH_)tGXyfhy-1Rt3E{?CUO?MDhJXN(hl{E!q zVM{>sQw>rOZFL|6V%rZuP7~xGv`p@qsvXh@tf5jGb<(T)><3F>iq_@zqNg;?VXk^O zrZJ>3O?$eF5E$%tAY2bU@s-TDlPC!lJrxl#qBBJrF}ALQS+_xZ`rzYE`WjS~cpK+D zZJgCCbv4;tBv7f=vxZ3Zp1`V|{@4n=DA!x~#>vN2u>l&VBrFofQc>G3LFXJNn1YU*7>wH$Y?IKrt zB|%d~mox>EqOzhxXyb-0RzJji{V>Cc^O>j1#;R#yr&0r5Z@)_cu)kf0mgfs)%w|l% z>2gA0hCQW}N;O-}ob~?zO8xK;71iJ1sg-m{2By~Ki2i0icJ0%ByvnGn8qE$_n^jg* z+aQ8EDCr|Qs-+r=6SeKrS7F}_DmaQ7EQUbe<^O|Efd9|(-e=6Sw)K#%$0{6m!GRrU1wmUTPVr84S+FYu&bk4}f! z?SQ4M%rknKDdNfDqk%vzJgT8tdnjc)?b`_|s;V<-VX3Wm_+@dXRyITJVb=)1X*_WG zC0b>)F{dh=4R-v*i{c!fM@XW?vDLr+9R`X#n}i0sNGZicw`Oz}>Us;Ev7vu};_R-X zg18f@Zj29!8?gt^AD=0BnX{Qvt*;}sm1FKb2dAz!oD0NL)7FKR&}o-)PfPR{#Uk8g zQd$ytl%sKfFR-)1RT)yrN|u&BVCA%paz*Y`{{X%RgD1?XDqCD3(^C+w(E;`Ej+ay+ z%z{e<$;?>>tp@w~6O49gn@^T!ZAU9}q^XcBI*)`P-HG-e*kW06@MB@kDeK9X%`)jK z>0TOG)#{nVWEI>C+^8SJwif4HQ3Vpw8KU?~)Fvh6MQ&GSYxD<5usuc1v9+qtD4w*5 zRb+-VV=U-?TOONwVJ3aT6ueQEM#1H!jmJFGkOL~7jpuW=*hp2>x+^I(t)l7TNhNb>V5=M!Ewf_Jux?dblUI@&n>M4E} zrIk#Cm7NHRGkdDsT)S9Y?QA}lOv^M_sdH+m^4hVpIgIGizn1s6sU6NMC`E2A#E$$? z+_DN<+_FfMC(VsT0xs~>KQcmn9Q6Hhrq?!OM$y&8h;OpB&Bv(gjv2yr+0Iby8&a)p z1Z#6t)2eD0>Z{h?w)V$C;Qlt7G^|Q$N^z(k#(NS6m|eHUG0*)nW`9xX+|z4f{wAra zra?_gD&(aOMuHm5{(Awo!_NlL&MK*CrkPn;hcScL*z|43t~V9w``()9bWVVcA+Bxe zdI5|*N>rAY@(-&34ECQoSJCIjMS1J@+<{Oeg6R43t+5^;bi!s%uNaq6TR4x;vZmrv0hI{K^s)l2!g>s`H^bX5Oeu~ zC&ED=H>mQ(JuJOUqPfPa?cM(XuyMyMBIfinrl*3TO1iviidBSW%t^O?qqymdqozfK zEKdh0D%`x9Y)4`SFCq$xNTHggB#{?I!`Pqid??N0T1cdF(!BowWs*)5k1pAq+BLhZiLu_W97E^5T{D?LzU5U2LFL~C(&w4I zPFzfq=%#=xN?9+YUr{!{h;+Z89#~wEl$Rc&RY6xdb~nzr#uF?RFi@4Qk&#}Uok=?H zussQ0g5vf*mciM56)*E6(MiVnhHNGM&kR|7MxmTD#2JvSv@$bnE-!IxHY{<+3h16r zO=#3nQ06KpmXf9_>ZfAQ%q5amqC1Wz%k;k_jtr zpmg)Z>RI5Ynx<%8k^C7KYhX^1vEUzjt+n5=O=_9EdgWnwf znu3nAjdF~ZhOAfR?NYjBWN2CS8@9DSD{X6nMXh6vP{ka2UOassjtoBI;We}Lk*-C` z=xSl4Zgo^kJT%j|W?7^IcK%i03F_zuNAVerQmTk!Te~+#-L3wj$EW&np`SQXd3l-60kQtoBHj<`PiR>X4Fdvd`3&?8=w1ZtOr8vB#Gx za^!uc82fNgOGpi+mP!p=$zz3KP!PEiO6|EH$_35awlefIeEhPzHLJ2hhfN)qNK{j6 zf#&RNJDh8?Y{x8mc`9ono=RgUDPVyt^_qH9#BcKVcj>*abA)xgLbX|~MroZ!@MKvb zR)&I=?j@@`BC{WvfxU-77WNk2nB$@4Is+7AE1r2|sDhBwqjM@JYpf)T1yT8=@6&C) zag)jDmp9I(%+d)V$?2BS^9eFOrU1JiHq?Ij2BNDm;=Ut^D$~O97K)tt;#aP zBzbjA{{Z7_3T|OS0SLX8!%B~?5M{b*_>D8%!4oaYX_!%aRO&t2v)BlpMyXQl0~Q=mq>kNbBJP z?l2y2+ zn+$^~uFRe(Yvris8_X%g7b*b1GFzU&f)i_OTGs%vuc@h-CZ)*Z6F{CBWD8)}{HcNgov=KgqTPf&9Pik@7=Ej$5b zkj)v2mIMc)#w<U@$A21|Y0V8V*+sg_$ zbyT$S-r5wHCoERhB#o7 zdDT~t)e+Nzi?C44K(~7jPb^*gK+h{OysDoqrl_T(r{o2iDoNDyTdj#6CigZTLmiJz zF>)`-=5IwlTa!VR#PG>9U~^|lIf)P#>3aYNpxoT!86>i+2ts^J5=sh04uHb@U4Z)I zJx`kEH8F@MjjEDY(-^rLNc9~@o$$_+HLIqkiK=IK^*Lh=zySq-I!Let-re@a);UJ( zi_00+238!yG0ftO(imWf>0@(a>Hh$ov8&xF3NKncqNZ9tS=J$ z)b!1!D6i%P%#ybIorioa*JF3ll+Ww)dfKUJ=p_`%PZ(;6_4p}b?pcq2LAky>$Z002 z%U+sUYN5(wAjL=+8j8nr)z_}4-)_s-40!7^qv5!qrJ9ll%x86aY^F52KtC*!f^O~H zYVUJvW2b)4sD2Y5in(b%8ZyRN^D5>;JcRWq0Pv~l?TS@HqEeU2>}kPSJw{KKg`~-H z`ar`}vq)@LZ{q65w$=j+vr4s=dD5ep^tuj~fDniNpl|mWzdYg^9LoA@OmuOd6txc4 zBhf(nVGU+&7H^YHJtX2Rwl@^;B(VX`e?7OixyF2s)gqYS)8!>indtLsLz>XhQ^M66 zBm{<*)*jvQ%DDQq>Uf_tkaEZ_z^_|ldz{6WQq!5>%hr0NI*TNuP;Q+Gy}hx>v)N{b zzNU3>x{11sSJOc`T07NEsO)3HvdvFJQ7JkXU4_l8F{I&a?lWCSfAZE+!aHAC9mw*= z4=BuE;b%uTExqlFGWwoO{LW`C+uv7+`V4B8E0b);4D}eKevQev#6>ueNESC%5)#{? z9j%01U!9ERz6j{$<*tLSQM+5q+@H2N*YC8NHPxgjk4YfzPnFIWu4zz|!KtdFE<8M^ z`JevS&n!)|L^8!}>O2)%Rude+2pNiL1QwmI(|(KGoF7@3R>7Vv9WV$LatIS-;CsT>!nAQH`7+fBvll-Yz!JgOwF>EKh=+>GUdm{RBXpJ zIM~BKVOj8X6m!!hWMQM_R4%BGorpg<>3m5gmTDz6lzDSBU^7sQXiIIe{KwD%?~JB! zwXjC1R4ov(I(9@ohh50-apf&VH8ioqs4*hJn#{+!usuESylow%&WDm^IZZHON`e~c zJY$@K-~GOq^TzKlfuu;aDvu6^(7J3f#wn}Ps;-*SwW7Y6F3Mc_2I@z(vAO>Mh^t|a zol``r;9SMM$?T+`yAy9L7`_i=a^iFSCq+s);0RYR<)9WQ5E6Ya+X3g8^O9)R2dD*+k2SZj9oqg_(6gqhjFa?| zt86ZVB%WfFS0YMHW`C!hG=9e z$iuj`t~|lp8Mz{_p{SCEttOULbtXY~635)^ZVj=0ZgmP~F|1V#R#kaOL91o;>Mn3r zal|x~*;I4aElYw`EddJZ&D>wDyu0EGa*e1Y*ga3COC820dao#|hH0jcFD$H~kra!t zxw?UVyWj7H=Cv~FlKFxyD09nXkR6G+(_#I6uGo zgZ(j$%ecyqGlpriWq4($D;%uRf)$3^SxuVz5Km$-eLh^SFWgCg$>zt@y5lWB>|Y4@ zx_U_}Dpi%_5?U_}ijo5Az3;yMcsn}H9!d%0f-+@@jUl!->@VMK@T!WTswhiPDo*GL ze%An!4wKY$8)G4waU)3W1iMaDke$H-{c)xaJZe3c#T-zI;Z`45^p!b$QfD&B@ajrI z4w9*U?9MD&-3OKN>ocYN~{XTy(+8pe?AIn*)C<6Kqo*e3h>qJk^pcVAwnEslM!d zfW6Kd)8tuZVObtsSHv__6p^VdQp{NE$67;?rcPG4bJmkq)xkS*c>#jlPjU0;b7t;nMF<(Jw`I@ zm$iV9Y~H?DZ%a~{dL(&_B9utt2xUUnQFC_C2U}QqZ;Wp&lH$yG+x;>zndLHMa44we zRKq*S7E*5HDIOLcTb=ux;+Z(6noOoTDCi_rWho?~z#%Pbuc)xWTvMCU(&p9lbue?K zL@`9Az=SVuoBI3X28>~y49a#n)fMh5@!;u{xh!>AO|tr`c6i=8 zfh{_+v~umfhS|32RQ(Ps&&bN7k_uTSrpyfMrWwI#SE= zgYS(yRSd5tO0)u5`5NA6fCS&=w%)sA67?SAZs^(kCh~fVehkG$W98o!mQzS+^Etpt zYF!4D3`uJPdzDfLkR)FV^Zdq|rCtT7G19>pX=GmNIx#l@C{=BTTlt(1RYY?72%4$o zpEax(SmcuBR^_xP>H`u>9;U~p5k*XD#auHZNeogfwLHeqrHbA-kB|UrK35mORDG;h zlIk^%rVed9ljZ2i_?5M8+NtT-*;OG60NO2RY%1Aah| z3wyf(w~)3gZs_V%L{P&-l@h?}YAYjjh@ssgj9K5@jss-k&?oYFVPDNERsKx625+s(nj+ez-q3XUy}~I$Xf?)f3n* zkZz$?!?4gJ7V{_16pgKul|2cvW_ncOR*rCzOGwfo2Tvpd!Gd`m7hhs z1WLv_Xl0sVacLQq?eCdbLrs@dW>97`XqPUI8jQi=W4gu6DH<{UCnr~;xWuR= zT;Ganb2O0*RLX)m8FnnqW|MuqPRvJ;3Oiv%G!VhTl1EV|DoWaeGWXRAMCBBJFEJyy z{{U=!*|KE$Rz_)J4^dl56GoTti4$7JNbhGltWlc^^o-HHDnNKi6 zC2qA+0$rTLZXV&<$*Cl@M2)7LbhM>_)(4uXY-{GKdT3?Kl$MZHtXF36 z!3~N42X|s5bAEuW_vxSFX>#n9DWg#Jk4DOtQN2JVKMNpkuY zO_n^Bnaov}XXi%^nXTdg-si9YFWVnU66O_IL!yZ%sG&^?2I#6Zmi-#vd@81sGR(4S z*(M09B|}Lh#GA;*#mOhI79U(2k~>gTQiC#0EQ3otQd~y~u+yv9F|hL(tfJB(38wV4 z{{Z%DXlWy<%oXQ;LF7;aQ>)y<_s z0e0MXCfz)(fOxZvG79>hW5*PmcoCr}rrm?6y}DyT$1lOq#S%-JgFJo+ks)V91F&1^ z>ECmFavFrDuFRtpu?|yR6JVom_UrCWDT^ALu_s7AryKqt zq!hHUOC&66>t*JxG#kp`{%2!wqo4y|2W#V>@T$+0(!ubQ(MM3syy}9%pHL*|Q*OJB zhkoN5DmwaHvptTYvE#1f-JH#-iyL+H-qv03jPhS2OdrJDaJEk|k!o{FSz?f-lAE7o zj2@a}A2S~^cI(%CCHRJULoYzGbG-Qz6z6le5T2Q{;oMb8WDSxAucod0v4v zRZicE;1PDWLVDN^!rif%$nu%7av{A9Lr<||+*7--*Y;sEOLbSvG0A~Cb zSzB2*8gYcmR%wX~J6Y-;`;SEjZ_s0)an~2eNgL2*$TJ$$PsL!wQ&OJFsydPN#aV3} zxx&NAql+!e=#xw}Guia{x*;~d^B(7KJR{F@nmQTjA%Zw+mji+H8!Yh+13eKMq152busy{~*=GZ&MV#JW!qKRSyWW9-va zT}Y`~cYz4IIc-Ib1d^#?h{gzYZ{l6XH(|xWD%s}e&&|8hRTC91R2v?b$I(5dAd)?? z74Q(s7&lSd1U6q?RBy=&o#iIW_r`};vmWY@Tvenw1)EPoz~AkG-~uYDe}#547TMg` zd*CLrv5jO`<&T+qA8a3zP&~*gi6A3)?}ceaSn+OBNgM7Km2#D+b^Lh=C}dVUliv2& zVYL-~IGO4Z+_J_|P4>5PzP_gla@vzmP63I84nG}{x6=UQKpem2?T@5-QqL_iD#s#? zdP%Z^e7kz%&XjpJ+3Lo8Qb^hG=5tF?RLvzk(?)_=;FznL}z z>5Nucn6z~A%Jq8crLYr7tU?C-#GQqQKryAEb>+cF9dw4Ag7pR{RY6|nM!$SXJmk$^?j($?xg^uW{^UT=}qNtiW#5t17XVF5Nj!+o&o387w3vugRewIx1R z1kV5rbx4u?*X$Ke-eg~4)bEd`tNq)OifA94?ixWM0Z~UlLJM{E#zL00CXD74G|^Nv zj7!M%2U{?(H+Z<|!rK;KrBW)#t(u?KV_}SFw6?tqF z*>wy~wDKmdY;U%!_4;G8Lyn`_ht%hO(@VBL%xbebI@MuIJv@MkArQnzLO)MK?Tq&j zR%SJPMWQse**r5$$k!r62AMNLC4VN#5!QDJ8~+T*EWa2$0K)%YWK zEge5OT(M?W*0&*!<6>}G>vWT~)&q)J+6Aiz+^-B?9GwlWT8rw%z)VEORWL zh-Z1-bn&#gXADOoH1f;0!Yh?68WJvF<_ZU0u}@CjJMc#r#?<#+1aQ|3Q7%<9xrKc> znyCqmb!kATK`W^BB)BcjkYJqV%`!Ja%EER?q!%Ou1_taNF?OwjPD(sSetL+>wU4JQ;eI*R{sD${1#at z_V#6S&NR$u))dV+Dvq9MZV$zwkdDkk*c)Em@cV=*@=hhoRZO!svj(lomjG%c0B(22Md~NYYg$Sh(@Re!)L2-8 zH@&*63{Fzyx~KRg++C=uL(KDq9$Kj7V@DImw0wjhlCtKc)$jjVtRj6%n*_>kMW&BT=j|)z^NW*vNj+xPoljN*ZbD;MYy5 z)>?U4gNEA0PeXCr7sG;6lIOHj9yZ-Gux6Yul+sXFOO#YpMirPmW+N*CdXTogh5A_F zULK-?iWsTqMrTDPSr=0@?m*I3+nu|1!Tcq}dF3TkFmWr*nIzUoqzih42cv3Hb{_lt z<3muCRk@<9wT!XU2S5zmmvgIdtZZ+#`-5ytH>rdgxBmbJ8DpGdZ=o_~d7U9zJhFnW zk`XDp*A8G~ZBiT=am-=q@9KLK7#@@bUZCb z8ZgXYr!7)Y}=%@~LxE2uA{*s%GeH z94Oy!;Z*@gOYU$N$)94C6OJUyvQtUS2C}jXi4{$w2E?CDjmNOSPChEGItY=Yq%Myo zg^SwUwe%L>-1=e>Qi=0<>Z%!pOQud+HHCoHzmYx>Z!8ZSb5Bttth|Yc*6n-p%NuGP zj>P_!#bUgQ+o6VQRJHO`QBa3(imHiX(r$TZZLZ(U=D>e080LDQ)nYV6n7`M|!-(h4{M2jSQ_(y9-2Tkdi7JaW>0 z&@$Rs>J~bOs#>}A8|f~(#-rpz4ZGN3lxbJsS1s6OB$S!nLrF$x#1%BurUMx3Cd5YS z4*nZmkMj%T8=OZ^2NFiPa-~FhTBedtsKbZdRP-vW-Fh1njW&3XmsZiiNiX=Cr}#$^ zi?=F33*WH5wA&f1mamY{LoK72r0H@lWMn1L?dA%Vw|nB4)m)JrtvZVy)gRsKmPwn- zq_jganGVt@BH+K1Nao;mwYm%>6<_fO6jQIm$n>|oRKh^2qpLY)761*)5$)%Qaa}z5 zhH+ZaNb*q~6Df88GMK=P$?h$E&#ojPDN$JQ)I1qvF0}1Yr*mQAAReS_0P{YWq+*i4 zB;_ed*MfXsn^xDW(q;5iG#NcP(55g-n{RT>xw+q`t`+53eMJo;=2c;b#InZ&x%tka z;seXb;>tR)n&%XewF65*8)&7YEu~KTyoagVa(m&=8CE@HZ7Z0<8zm%Ari4Ws1L{uL z={FjO*s+S6c|L++_?o(^u}v6w;Hq_qKG9tbjFJ<#TN?}=lg9yhwZ%=Ev}d1DEkPy| zE$^yOHg^6LCct$bU{px2N$@=5$&TFO4YkO|?WwwM+KK*~VSy7aQARTNlAeg2Fuy3; zau124POL9`8*kK{XOsFh#eM93o69@8=Nv`^q>Ir}0i}oocPqA)>20?swXhu?XH!#` zR8`MHl$0>IRi}zew6dMm8M}?HM@tV}CE^ZtS4PpS&sCe(g_dWK>u6BhM0ekQ=G%1g z!F(f6TJ)-|2R)*U#T0L}agEwZT;APCyBh!i7@riN*-lTALiOQl>e?^gQ&Y)5#Ir0m zP0;{8B?oJ<1P?&RrW90VD76rY8VV!|4yhQikT3A*8-jcEJMWGE01#AEngy(?u1b8m z1XyBbdkF%7Z(uw?{{RRZ?Tk^PtKu11A)Hds%lNZYRY~G12F(5aka}Xc_})fE#PbXIewG238H z0+)tT8h&`FiV#%1X)CI{fNU7wp#6O?>nCidE6HT6G{Uy6l&?MFHa)b&w;Nw#=EU~f z4e_mPN|!IA+^(jcwo^FEE2E*MU?9~nRhCaTBz&uT=@u93a&YEKI;#4}>7ECtM2Kmp zOBXl%(s$P0U4{YSNozAHDr;nbQpHTG98n+)Be~cGwS#xx-`5eAzFG=O$SD!cT}*{b zJMOxTi!%-Sd602AD|AshjfKqxHd{|5QM%16Aco~AWr%k`dTJ-@gX_4dGF~2~l&u+? zLHI1LJIESS^G{IyUfq|uu(mTY!&LOp<&@4OEhf5|*TR+`EJz1HIMVL%$bIQp1)k8=I0Cxb|;d^X1 z{+PjVwppG*T=|73CJ7i66>~$Z#5?Fy`Mpm}Y_lyhNVPevH z-*bgIpB>jGO&nqhdN}5n@TN+2l5n1yt^x9}z{Pt@$k{5DjVR+@9Hvapx~fSkstuY+ zomu51?4xambJ$_05*V{FPnXSBlcY!_o!!eg1bnEUpeNrMY_gvxu35N)HIeDE$RABA zRfnE>*?`^J+Yk?7VeByPB92_eXPYF2qpFY=YPoloL;P0gs=d8%CaY`_mGolx-ml^+ z9+=T3DnlBCiq~Wvg@^v}i>Be)sS)d^9I9x|?nTQUzz;lbb1a6UeC;SG5r?TsjZ2P z9K5Xx8G=%u2l}4&V~+l7BkMx{04a~o%tl+mnMPai@>I$zUC_8yBXi_$hEYjDPcJHt zBoT$N7Pg<|!IdzH>H}1LOH0fwwJfqzm~D$IlaUbKISe z7)A@?g|#tH8?&>*RqpmcOWO9a7+)k(vpi82ItS)mAw3${)ltr`Go)u+`nH-=a2xnk z4&L}nomDzAir8Ke8|l{>+D7kT-`@=hJE3N^Vyc7i`FM1xcnJr_$ZX_)5BuOMEY0g< ziaMFKA-McWh_|z{lM}Cm5I-@v`(GC6 zTSRTSX_`JCy+^~W5s6bzhDkgji0*)$$Mb!#-c+cOkH?lTHOUc>K^+$0czuC8cfd4r zMIyyCYefRV8I4RQcJ(IP{{T!FYMi2Joq`zlDG$y)FO2WAQhF)Q+N&wc*h@^8=JtB7ech@L73BV1u*GrMy)*y%m7s>~y5e2!Tu5gF~Nf=0GO-rIh- z<(d5>OPH-qE5HMdP7#8Td+mzhij|r3PEqTjrga@2RRE5YF{qtbU1AD!sqQzzT2-yj zE8?V}r<$^{wnb5>vA=IYi?bM}mN+G;U2zkqQnl@l!TSox>1ijEF^wf^f}0&+1s>-X zl++`AvOFF}{*j#Fo(z1dq$X_eirR%>Zy+fMw)Q;>ewz`DZ1vU6%ZXWyTDReH#`hgG zfzV^9aTO(14E1@5q-pZXr+<_NhE`2SmKanjy_QB&HNU3zcdw?}X({4KegdAIgfK%)##4J(DQ$~wy9?gq3~FUH6;M#D zbtoG0Qly%Y#~DH5k(S2flAr*3Z;a6N(8(@vRQ~|EoykS%3!gQk%yO73XtS)gxn#JK zIg{aKX$ZddH&+Mdw%Z&cs;0|wy4f=<-W5-YZevbB_-4}`^oI2pD!s|U8P^I+K2bCo zE>}-YJtT%mc~WW)bzRV3ajNI8!yMQ4g-4vx<;-g`s>&>u7mUcVmt>N6)uig(d?V?; zHb>LBJ!;;{t}@WtulA>#wqH2QGBlc&IL)V$JD6d;u2p=mZT9Je@#V2`0#xVuW_^}r z8lOc?1#IU^uv`8e#q`?#6S(P#@NWWVS+tcIwJjA*RXB)2rkZ5kq);?Sg@bbJcQ*3! z#`cP?uAZtKlZo;X3?>AM8Y;R-^pO&a$gD215plis0oTtKd{g)%ME)_ToZ=o7%&RHP zl-j;3Kpj)$E#xjcdiKJKT&|vZ`AHkaQ53wnqL*il!QAQ_9{AjGXBF0P-w;(%ifHR{ zr$C0DadHbS%A>8BKpi`PZN3!IWi=VBBBvzF=8mexmX1Y&i6^4M7TTwi0cKKO=PZC7Z`skaY4KlEY;73X<2X*EV-+=q%~ zCQ0gLStbXtMK&94dsqy0oX<0#GvS=JzIr*KO472@$teY-R@rvHL1IUKnCDrpRQ0)) zE_o#w+s$KGFqA;+vFr=BDv$2_8%CM1&aCCf4Y08?A_!WgBbq<9sRTfqZa z*y*zBDyj$bHlu#waCUSWeCl?QwZ{^204=hD9Fjb{8~WiLQ|gW7-&uHYEA8b4aCygkdL8HFF5k81y8L;h2R3$#36lqIGP_@j&tb=>n@885?bfkQ-w= zSNrGO}nf(d19*@yzlzklh2s_R@(qf^bILm76LPLhF*i5^$Af%NvpIDHAv>^_$> z6)wwP^f#jfre=~_mC<@eZ%#lqrg{GPAL}}IKVmf&MH{AEODZ^yF%?z^D zOtOv&xn+)8qb9v?;?Stqk*(0(u0GgH24OT%W;vXS(p6SU@w}3D76!n2-AAAn^TR0R zO1NPZt7vRz8z`oNh?XA zrw`G{kx^#Zw8e?0sm$I>lElYwN%AC!)DJQ|@s^4w%xZ-~ej6n)kqVEOLW0BYP5sHm zoI#jP7C{zYOHf@ND^<81%&#DbA0c%o*Kf;%xM9_JBZy%i{J6PrDN*wz&*DG+3^7hL zxe;>ZB?s62m+<7#)o|n0RBUJ(3P~Bw!9y}UcOCXw7T(zQstU~7Xx?Nr`Ft|ChLo@j z8N5v-hxn}5XFV@r<%EWp7zhqTlpm(t+0$O?uUBz-J%Zxm#irCGmA+;qdD7DE4Q<46k{{V=2ViHJm zy4p8q3lu04INS1patR)RN8Z@BwkY8ET&|l-v5?C&iY$uf!l#~`K-bzVHuAh$!z*k7O|f#T_iWtBQb@heuv`Hob= zo<^*#WODxi;;Y#&G_7Jv#=YC1u(F`)dtw;|b}C?~%jxNs8Y(2!@azFuSadTn-a~Q@ zo|ioi462T+Fr%r=GkI!Yr59tVIc~|-R0Fbu)F2%Ll+>>APVE#?nF{h>dX7#}lr zH@BV`<}%JFnhdsjcPBl=Go-& zR9EH%nrLQgn**^Reoei)3^Eneuam4%)Vr9$n!c+@9uRD?$G3!k+SpfKW21rOjvA`D zrcWMYm@b1T9ivXFo6S1T9Z^lm!nyl8gQGLB>r3c#^>fY+>cx; zl)XkpP_0)ilHFl0#?eLMEumMZhi&}W_r{)+HOg`k1BoIu*<^8!Y68+LkOPgepz+s*7CP1LakeblDw!eH2ko zRL7J9gJ?_ba(wo_{@6@vkz9`56RV@oDKex?!mep~x)M4>p6nFv5l7{?+@8Z8Hg}&_ zRJ{gH%au~bG?Pm)5k#xj?fKiyi9VQh#A}yPQd7cn28q@%(iJ7Asw^(RzvN#(wlni) zGRc)yfAFP>R|k|(s_oDnz$!me=ZYs}WUI*EgOZ*aN}1wX%+Hwr0EsMegd26c5()be zjoRkXBS9Q16+J5H(`VN1f%)j4osMuzHjV!Pcfu0-!o1DmllhUlA8oKF z5K&E;&_y0=Dp9JotsK_^#Pt@~oM5PPI-05Z?PW2pjY;84A0Rp(*AajjC1~p3OK!?_ zu_xc#%LuVJ`RJ#*q>YYdXyK9w<9Cucg@?s4vGO(@z3>Dz1uFx{G$~W1t*FXRaC(d+ zf|=%#5-FIWAQLA*-SGCJo+{Le86d0**(m?VyEowvf~QYAi>3JWs}+UEsja~6>aV!XknAYtx*2YG&KlYyB}+S(UtX z0(zjatcA3Th71RvVT^6rwJJB+T0_VxV2P>NT1Sups2=A1eZj{W{jqQu;ku!mWs1#~ zRT~lBC-U|<>DhDE#td_OQpvTiAkwS+!~L&~S*4}U@;T^h>4MWrytYe%4f-|k_-5fN zBcB?QKPhB&jU22b(WoPGPWJ@+i+9I?ndDrj zZAt!rJ}>;)^I7sZ?y0i{mhj&T=5-T9GDpj(V0GnBPgyIqVvVXdCk2%Y-tg?jB_0Iiv0C);K9x!es@ zY2?jjrkVz5-WH@Mnns(QeGgrT-w>?$DKkmnLiH0y73!$z;xiskOSbk)?bmZ`R|8uu zT-!Ez!xvd%rH+u93XP7oHVdlW_5%dfS1lzi1r}RR1XT3`R*~c(2MnqvqU1aim#l)OHjP$YN9S!eUYqZ0 zUgOsnQBc)z^p=W-K1_h+@WO`M>Q~t zs)cG+crJ|{Ek=vRce5$Def^J-z?3p)wbXAOaZ^PN7}T#El;Uwxg7-#H))(5uf;Z`d z<*B2B7Mi}NE25-Gj4?}7IwM9!>~wWv4^L}hu2hf2(XC8lRRr6AX%!W1w(0?8xL?bs2qVbpGuqmTX)>77nACGs zRLc~x%E(VYP`VPYb@1D6w;N-k(&UuTZy;F>hQL@4r_f=NMuBvoviVxTs@v2q|dR(+eD@{Bq(N41hw$w;FFxYL>?0?!iLN(MZHR8ZxPM8ISA0ce ziI-MM8dKS-3~CkJhXf`5W$Axi@zV6Ni%+v|C^sm|KWffBo-I1NJvxP1Cwqoa}|6H>-xuv;BWgbR;j^u`w^gZ}`l2q$6y zW>I@s*jav_9BP8m^^$#2O-_MKq1@|z%QFig-r$cg2kI~lRY7Wa;Z?HBC;&HfU6c`s z#2RR79nV*}w^4um{V_#Eg=!hx+mz%j{r1L~$H9_v@)Jo=(6E#SX#yDI@?G~op~W&AgdX;0K*zfqo`(Wt#j3NmmL}LFkVSp8 zX@>VB%-N0o@d{; zZ|#iya#dv6(l#*1&?`x8G=y$#; zDE8NqFqcXAW9T86W!bKMERm?FSz@J;&Xom^Er>pgs^3p6Cy}Y(u8`&HG|NFm5|Fb0 z0GT|b0VR(@OA~KwEUId%`nYoX=@}xS1~{Q7!5IuppHgl~{@7T@w15=k0mbaA3VMNV2cBSFzZoz2erj_0lS!wKqQ%d%7% zN-sL4f-fm`lEm9Wl00$~u^Sq>{{R!52WhGtKBP%4xn?HEK-=H# zgBd$ibfTSNLrebfjLy*fRHC>(2~r=Zr0zu@8{Lhw2H))*)6>TA*KtKaScZpINL{xjm=XdY+@9oHpg82xb{7`(FP@eW zO-+}_u0tH@Ekxy{Da%-`sJq_xVtWrRq<}hM zmVZ0H71B~iD7;W>8oETK3t#M&SMyu!Fjj9o z5M}VoC`Tz6f}S|;72ESUH{YfL;i`C|Y3lO|u2o!$%%r0~A}`G0M{;bU`(Mu!i+ovG zCCW5wIEDbGf*~xeRU;~2wT8us_Qr8)rmK>za`3RMh$8$mq_X)BPcw$aaYXW^ zEdtTPXg|VHw>o=~Q6h~|ukw!HTwj@FvPDnKEd}jzs&K<6%BRZdg3Da7s}uM`$8TF5 zhrR>PtHi)6w=|J$eA33>Kn5AfxqLwwD8u9rl%uIJM>s}1fC0HUaY$x`m0U*dc4DKa zxjitihZV$<$>RKB-EgsJiN9xW8M0(Bf;Y zm2RGmenC^ssj7JzGcwo$gla_{kDsu@J~Vh`NsJH?Sx~|^V8>Uk-3HyT1s-M=UR-N+ zQUT?t{d~`^E2^rNuQpjlgizm3rQN>Y*8(u9ShJF9kg|#trm$$jtZGMFUw!ZX_}cLL zJTb+pvX%;P;>MtO)C1Hh7Pb0cd}nIdqmEiLHP!V<1-jp_mKo)h8qzkXf?9@_R^_Re zR451LAPbvsxxvW!D?1ud(X@(K<9X+Ld8et7g{CMQSUrGkhTVn(qNXjFnV_qh9&kFL zoQ-Sfoq+VU@J?4Co)k(tNa~YT+qA6C&<&oP#Qk_eyz!XY)@L+DA{>4?Ou zW2!+ERKY}MT7|l!CE3UNN$rN&Y%?=xNt9H+#4~_z>*jHsg1IQ7iKT_<9@-ut;_83t z>+gdGek7DqXpU(~3;|)Q(AW>}hDnOqXYEX~@Pu_dmH4%tAqK;%8+ebFJpGpC^?7bp zBvo|s(pJkhmt_m#L2XViu^6ZJi8S?8IYw8MhWPnvQmL+Vs&dY)$=iHaNyNE^U7FO> zX7xh487d5hHaAu;+iP6h+QZ8SEY>xn$MwFU!aP@#dil;uBd(;Urxi5fK1{VWMR`&v z>Z~@u&~Murswyfvx_ZN#RZgn(?MUfG3YdIbAqMx`R<4BYzf3iQGRcKR$}+BC*`S&L z%^yMGH~9}=w)Vub?9PudN*Ac%)L7vT%UMpvVpa`p3;+b15qtXErZUfUHr1oTcY6n> zt)R>4R-8|kP{YnK7^0Qi##ZFT9;4R#n*eohz9RK$Nh&=gvsFV*z&S!ALQ3mG!sV_A zI~}&i*`Ei{)w@(?d8|~G3=8svWJE2!nWQ(ht>1ml7v*0MK?76P<+Sy)A+f5KRe)76 zEL5Sr+vd0=fJKHQmJ)?aw*3D9pI^0wV!bD^oND!uEo8NFyimsSfjKfWGdA*H_`ZPb zEsTC)m`6*P=&R*J3QDym2_n0xAoAq!*j$16dY`T~`D`5Q*iN6lB&A|O%MC7vNh7f= zwmOZj4xRQm6EWdt&gw)hLIvrsJakzP4sH!fKj-pZk*jsbykBZ#^3c9?zVq`O& z#-CA&ixoORlHEFC!g`|C*n8vV*o{qpE%E6EjoVhoYaCTHkj5B04wurn785l~m1mj6 zO9fRoI*FYlnd&E!1$e(Rs)ZLlEG#Z?(LZOoJ4n-JMoApGk%W5&zSbt!J$!~XkEm%& z7A!t_%l;l+1e;xkq36>3;#j>NI7X$v+{qjeK-qp(m*vQdmr+9i0>J3I52@c4 zEV9cPTDB26Bw1{3zgysvTbH{QVYSBB^}^FxPV-3(I;_&E(#*XSk<(GwpKNNRw2Q_+ zM+*J0W$zAt^)vW>Di@F~{{YJaeZ0Wwjv*{UlA<|oG%QUnuKU`<^~dYJE#a2W8cK?q zeL^}Xri~Qowx$H%%V0jo&mWXCDnmUqppmJStbG&>ho^?u^EmQzW8pU6O!ctOoE3J2 zId_VNSc03pfZp9m4ZZ=*lpaVz7|3?9>*{{L(+nuB9X#6Zd_=}N+>NlRqBcj1r~qkG z=Vm+o$-~3-HcEe@f$8OMjh*7y*zP^;{qROyBUzRzhh?TZWO6&$kJOF6xbrHbY3f=y zl-zho>tVkC0HzA4petP!IuR_TtWj=k1@C{i^u=3OL?WG8rkyRXn(kiA%_<{{S@+oBsgFr~d$!8BkV7 zO&)h89Hn6pidt~}9g7W8eE?(s08-&?JSik~wSFL3OKwNZ&7=YEf9r~;w%G|QNg_F2 zNz5a4FQTF}NtuZ2q=ja``Ut)M0ECw=uHCc{h9Xw~4&{s~yT2P>}J-pkiewRL0#tVn4A(J?sYOx}~AK~K> z+jhR=PjXK|g0o!08u#SUCy9#%MsRe1cGSR-0PY4bWP@@&EK*7!l^NxHd6=yDh*vaQ ztW2sIsnp+Sz}Wx>+gRY-zPLw~OD!!s%Tp<`835&iqj!*<*o)jKvM*iEEy(y)BFpNl zYG#3H;~Jh_?m^f9y>&6L0B(H+&IqlbZ}7Bm#Kp+cwCXi7i(CSF7Vd3uJKF)tbccd{ zvo#!*71ZTsnnO;K6Fic$1#aOzNh0RmfCCLOh-xa{Xwo?*Nu4B;AP9PZK1Cr7^z|V{ zyvf@h%~FY8v>9|XqBsLIv+5EgAPYNy-VkkY8L!^maa>ZVpl73=SfP;wantk3dC5OK z@31#EApy5`umEC>wuDI_t|;Oh+B&H6_@t$py~imQkwE3K+eBeauiJ0A-xMV9aBf~G zRpXn8su+nG7&xab^8z{+=m%RH;Z$(0TvmLwrmW6fG(q465;8@K#(J9$tUBLqx4_wT zFd3yhP*NoIC>cWs{4RMG2K~a5bK7h(imLwrKmPy(l%3hE;i?aa;o7R&h-B1fc_fjJ z%BZJQht9;12SQFWSu?uORA;3xG>*_w!p*24vAH9)wmzp94A#1+RPg3qD>VTMlE`*x zf(Bwei(QYMhn5VQr!UK>p{AK8FvCe_XxDa`l0Yc5 z1G)EO(+KISrmLF1zO9{^peq*k@n6G#VT#2!zoR_lm&feU3ei!NSmHE0U<_9$tx&8qsVpJ4Dvamr>C!lt*JmD zvjMk|1o(~;QK-@$GUX)L-Wn*xk-SubOv&z6T91)EKo zd>55w2?Vp6$1QX`xY6yutADl@%Q;#Sb*8#v9RcP2X^=m5R2uN$1G<&{Df$1~<* zlwuUBiPVJHvGXUcK8m>{XDM*bEL@GfFO0#esZb22;fKwB*k_kb2!zc!0yI9iKA34? z;)I5NPKQpFF-XlVxm#KM#x8-7T%!#v!E}`-l_@UWXqbj;MdVlnN%X?bvj`# z!01_bi3t|lsM`HI;Eo!m&NIxjH4^0W%Rf6@b<#pnG#!fCz@3K0cD@R&%jb#UmYR^v zCy8b+q@t~xVWqcQYx8CY@>(bW8n;g8H zxh~HeGM+}|Bz;LWO*9B=T+&)Mrmon!xW9r=HER$Lp4ezA^6bW%mG7FpB#9-eR4Ph` zSBb=A*}{?uu)fE8;{F?WC2GoHT?JNfhUOJ($qMM%NVyNEz4!C!gEBrI<<~8ARAxEU zmL{3BMKcgZom%$a%WN2W894ik&yV_I;;v~)6meEs)%j%5vdNh4X^G!Z6mBu>akK?Gtj z%6BTjY zfK|FIPbgb6DCnoqV92A57RZP!It2@Fwmn=vpWBt$M7Z>M4w#?_9o%)*A-TlE3kD}w zmY#4BuHf;km=iddUjdwZNKtj!#=t2Zh&7jWJYZ!&R(&3N{L zouz{&h}YF!zYyJF1bX#L%=57fxwS!%Ug(P+h~pi0Uq5@Cc{MSq zsic(&k)Tz0>~0h;ph5otZ%k(8dy^RbGY)x2B*g@)Q6EK-SR0eJlA~}&-9WS2>_1!qm{mbVQk60T9Fm~sSyUG5V0)9X!a4Z!DuLc8WkJbcr^9mWY&0e9 zsjhVU2(p?|TvMFuiz+I*iXkOo5i{>m1h?Up>Ja8*O){!}hPi&6UtoJpz$TkmM_?{Zz3y&&$iTHz$sAF!YdXflQ{P+PZ%Yep zk7;7nR~lHEC1GoJ>OlIR?TP0GH$sY~QJ9q-N$qlbn-A9vyA|IMj&N})jOm*8j>mf_ zvVrUV*kK&cO;t@*1GGjdrjRh|4&5=AXMHO(F>UJI6s(k93+^SR{%&?gPtW0P?Z@a8&RJGU@cOSX9Jy9;B)O zKm4!uI1aXBC3I6W6C7|y9;F+UTU+a~KWs70#A%Xd6mXVlJ~K%2&@~(1*H!KBfZNeX zrM4oN39Bg?l|YU-uj*_VgMn*gXtO9PnM*MVB!K>I_-QSTBri!DBiI>PjrA5gTi94& zT9E@)Zgp~;r%i|hYyQ7cipA{DIP3BqmP^a6f}SS@PTq%ShZVm&R;_s2Hj=dOb>r)X=<8%5(;7>?iy0e2~*4Th-x3M?D8O(HxRV_6&rjD6_nxKto2qR?#fD5tuc?%2$S;fI=9MK77 zs29~!EOrJ)JwPOq+ii1ky{(DSK@MG(Q`GSxnyRW-X(;mO-&tlLUEBkV2_A7L_t? zNxMT168`|{)YW;_U{H!Cu`7Mb*Z{ty+wX)K<$G1|{$8=Ond1#TOLQ99tgH4IVZ=3) zo*K#M(w(7K4Kk-zkl*~q^c@s>6NM2)9CUJqcN(BW6}lG=8t2l%v1ldwnV%znp>;z( zAec1ikwp@ri$lBjF3JgCrNH`OQH4fWuz})P85+ZVt+D&yg=tM#u2$yG?y?z4)LG5R z2h?Bmz})E}F26LTi6Hd9QctcKehJIHg1Tv?mYZuJFMISSbNw)~pHy-46xf^f>1-QQ zGqh4iuvsM3STA2sVda4*O#ylpVQg6$WEV|cG-`r52wROy(0TO1B!ZO>rLQOAGn2U< zSW68C3pm$9W0!`=3&^p`sv~CTzL=P$YO0vxjc&|r zTg%$`oA@S9Y7_x&?~N8ul}}dcY1se+#7Nj;GM^oqVGdw9g&XDZ2oO6k7rw+F_Qqzl zADBaQ_s2-B$)k=*3iG689x2NcbL69@5J{8AQ6i*jNenNl=l=kBOj%OfDVqeRq-4?( z@tX^uOYMd^eHeJvqz$J1@u;oIV45NlM9>OMDIouh&%IiT+3Hl04!#ktoSL0+Sh!Xf6)Sf9Q*)ne%uCvq?K#SzBR zl>lw#I-F`=o*kH9s-4lQYS)a*9o_<$)y_u1}-6x1(kIJ>c4`?yD}VbsxIom1LOP#Uc&gua?;D z^m$fUS(R2ol=SezJU#@`dy-gcKal!&!hRL3rpl-nB!l7VD4_;I5=}DcZ_T$;>Fwu@ zj#Ess#E>;4udho6kfCWnzgt)kb~}$ec$u8NMn(1XN_eL^Ux7iOT*>4q1thRMJhRPK zI?xS~kC5{9^ue%jO)~`3SyN6>Sw$p|69IdG&GRrGxZP3RFBw3NgLP4Be{2}9u+l}n zvFmzoL5?chu-z&#@^DmjPZLy4V;Hg?N;4@P!x33kFlGOD*~x@xC~t9+0is5`#$!P@ea1_QX~Qm&dSgeerIR4bev30*rZP zBFv!w0H^{Fz8;V^cr+Wbw}-jak4?1d+QWO_Y(ma1;ih;OtOkeVavm2btrVVD#9>qe?NW4<-R%h z5b-8yo<}q06(CZn<%(*53`$PwSOa$GcQ?XZmYL?UZyhu+skj2c+fxNUV{3b3K1|9g z*xe3utp5Nt;)$V;GO8jaKZgWhh@&H=$L9Ap#aSBC*3s3O8b~VPc#O=#>J~`~TpzLa z!0A^{Ne?|3G=u=jKsLYl85?6^a7UQ&ex8_0nXp%=T@p^yK#|IkHJkwV)I7+w{{Z)l zdAUs`5v8hTw?2{>X=z<#R*pt7?QQmBe@=%P8qOj}5~7x#U}@~g29x|Na>uQ%O^z3} zWRH4O5dSCx&EP$z#Y?r~)%MORfclEXgv3>Rz+8vC0wot(N{IAOfmxNxx7%ac)zeWI0Z8BpKCxR&64;FE5HH*&v0x7Sw)nYz4L* zck7M(($nTB)m71~5lI@RmocD${#0(J*S3N!Yh2+JZ(vNjhG}W(D5IgHblEjZ;xGfA zr0#xG_psXj# z5Ve>SB9D8P+x_v$9)4uyr2$q2dx7KtAY=8M)Kq!hJykUE$`HrM69pW&K|PKBYuppR zP%-)Q_OZbK0Puv6a`kd+-a?wX?7)@w14#AX8S-P@_$wLej3KC1c%&on)F>czHf``V zM5dvo5+4|43t`zo1N6nUfmu|>rB+Mn@~|iU@GhoPA@Y6i=fC~2$u7i`eGDXP=9Dc= zY&;SI2ISj*xT3P9Dl-YSFNGrIuacD?-rue(c??yDK`o*%=zH40{{U=LF)CVph%I&l zrH}sbQlLrMU04fF>Q>FE+t_R^kD5dkG|o+e(_Z7H?BDvqAlXVvJSs{Sw@`ck07LY^ zE;Nt`46(55)Tub4*$JxH-U)?Mw8Kuel07h}uvozW4@>X%IAaY;uxLCi877xb`;dhP z=ttWL11%g=G)BxwTb{^*_xh5f=tc~noK2oEAg-v2$Ol{LH?}7@`7e(pQekt5;6;j2 z_-g#7TilHdEJ63x^unNyDqoxUZ7Jphr=tRI{`fLU(X)1^F({@cNuyEo0b=6kxC6E# z#i~pZmb=I9myAFym&!803JfIm$^32GJE?z)Kg!w4}t=xLxl#-Cw8~3>LdebGANk(+pgKvSIH-^YKjlQa$Ue6=IFul`(?#-R zZdRCTML`{E)MwefB=sIs ztGgU1y0n01Q_Lfcc0%Z^Pmr)b({C}0>vP((0@3AhQ_xUI2nh;qR@;_ya?E$!llAF_ zapn8}0Kk!#AKU&-3>CE5bd{9ZY)KB35XjW+uak4~a|pY;cVS>VVKA$T& zkde!d!0orqw?I1XPizS_G_=(4K5r+(z^Tm?;M-l#msWG!pKjI#&P_c5=0zNH$^)>| zeLAh75dQ!X1L!V$;apN<@@y9|o?3=VinHS7mNynyBe5bi9eR*Ho~H}unIxqIS|ybd zD6TJMOJC|u&MVIyi>y4>EXL9`@2H)~9*Q>izCL3cR8t31V}>F^jjTGG`u4?Qw1`Sp z+91-3dYHCd1+`ml`&|7n40SGvP_MM}OkY*H3mjivKDwZ!D(JSgQD7X6$FKkl4J4|q zEw5{M3l4|AD;4%<$t~%FyA_K_+p^!+6iC3LEsnz5;wANvSl-?HW6LoB6W11_Gj>A2 zn~!`K1V!w_Yj?#_#C98t;P}Hrsz9;5$im6}9Tnw_5uSDb020jdTT&1FQkIeGB%{A4JmTtVDtbALE?RPQG-@xT`kt5e!aTb#Xx14txnM_!&l(;f zk1)+Mbf=_NF)Q7eE$)247;6qw$fHqFt$dk|iyuETjd4{TCP{8wjLmB)X?bc8qV6xy z;|);^l@$_B>&y|Gb=w^PDM?g&Gx1URGo4BM7_5&f64q8VK4BuqDn!ZxAR_FneEWK1tZ+Z<@`o&1 zhso>eV}fxT=#D^G6&r%x_ur;Eg)UJ;M!F$_7{S|c2|s(_=-@9$vX9VWQS^Bv z?<}o-2&GQU_FuypY!weMq>rB4JGeI|t^If2_--uUB)>J}bnsl{ySg67z2q{B5!g?04>a+Y72QDtM`+s>~-;rcrj4m?%$8{{W|4PFZ4yNM}81ALOT?W3a|w zJ)%o!c*>0NNC9#FurjclEjO zjlA!KwRDmSWr>u;!bL`~2L2tu^xO2qOvZvbhl{{MI!5ZuY;V@&k1H_xVODLP(#uas zd1WQ0ssV_U%jzg!`x&LxUk z$YVMws;R_Ul|{!b^#=8}_8oV?HTlg=bGyt#*eT_x8dZg?fAgjBMI9sN6}lrl*&51K z2pqd#bJF;`N=xKDC!@xxS3&TF%waDX*K}J86X|}o^Ehq8c`8X1H4-b-&e9LV4pu&0 z#`>3jr_&lZI8!f^TTL@9wCRClSPSYqizwdK>c_pX*W+?Fk{GH|rTKbeSl&%hF&o&Z zJCp0@iO(+;@k6{<`q(^tJx5QO398!=7CtZ}8vsVc4eT(YZ0j+WDI`eUY}*JB+QfNw#G{Sn+=K9r zkdd`R8&ghU=9i3;$jWxR5&XBkiM5Ef6K9-KAcf+~V^x+*1ZalowX`X}%js-OGlH_M zzydhqc37pU2rdaE+ekZoaaLPLMM*tLQYDjF3p~-3Z6J}isq10sk559$zW`YVR70e% zQv%nu-GebQCfhQB(1X(baj@X7HLuEZ3VIy)Ema1sNhHxJk~cpo)oYE%Pa<)08qt?V zxpTo!6+;`j3nNB_uB45(^W59h3G+H}IrvEAkDC7gIv`S5br06ScNX>Yz~#FFRngq( zCKWX@OSPDC|V3+CMRV(>QSO{{Ry~0>bgr{1|wzZxJ2>zyfRu9rx;c;~5Gb zX+!zWvHJf2wm(FE(s+7o^1RPeJZV_e(ZL#&0@0Zcu^Qal!E>nZ>2r=X##}WnOIeqq zNgVl=ddVYG)7^zK>ar%QZglQQ>5S>Cq2#~RjNLm2mhWW+bd9{f@Z#4+Y8s-a!ykw* zm?Q!HMk^!Xh)RzO-t42QSd(wiV71XCGbvyLQh+WkxHtRYzpzJoJVn(igK))TLPv1J zWAA(hiTKRLE=|J$>Ao9As3t>UtCAfqdX#H{{{Ws?3DM%rS~j)Rls@(s{cs~7&OHOw z4N=vAZx^Sfg5U4=7>z8lHe}T4joh zp#-dnb+GQC1?~4Zep;e_+q(y6jktg~VzERD9V2}z4gTWzzBz=G{8WH6ve?^J!~Xy_ z7y@|SI)clyGmBha_aFE%7-x25QUKE?y*`%d{V~m0Ia78Q1!01wT7_7z%PhKnP(xjM z5z_cFY~Eo6bpHT=kxE3`QZcCQ-1Q@Efjf1=G*yz2DDb7rIqRiK{{XeU@j0s5s+M`x zU5X1Y%Ai<_ZRKni1p5_bap-MNR_>gcURH(9zFHkA?n&u}FwxV?L^+|B5XG(-9sS1S zeK3nCs|{E;5i%Phq64ek9kHWoRFUg>4GWdWF~c&lIO(PjY5DBTjhlcD5J1d5MrTRE-2{)>#!v z1KqEMbt0y=wNT3~TG09MfF1u0MfE z=)~+iu1{cQ)7))bHC8j+ggj08Ua$+YuBfF0qsO zkEkAgm{VId=aJ==<&rcJw5@VXod6!dewbzQVoKt-*%uebKVJHjF(NagN(*!g;!9nYD>YUB?g4SrI1n4Y)ohpS|ixW$7r z1f7HUtfiX$OC7)86|{xok&U$<>CAv_u zUB#6ZRiY<>BqZ6TkdtACx#d(}4b70N5W51qez?ZaW#15Ft&*jAS3ia~x27!>L}cHA zmTglU*?h4?v6eO#w_j`HH<(i*S45E(L!?|AY<`$%m9e8t(w2FRl>&=_gz?mu%qFUs z24vimzSil0)pR3vc5m260OfUX&zt7-zZ)QwEO%?F9_m!}JqTcN`VOSZu&=|$(VN@F z7;U_*eX)T3hfy>f5lK*WD$RFj%9Z~6`{Se;VnKNwRA0HZv8N0^HbXP1SJ6;6RwgqW zc2zfTzf4SAoq+=X05$jfV#akpC{{lBra9u7UqML`4wA`p;_~T>qD7V;cww$J9Nj=DHaNs^ScY-C zAzH3L-AKrvCs!_Z@fGdgGJv4MXuL-8D)|DM6)IYYxEM*4Ujw(@|2y^RZ^-*t0E|ve+@VVnwly z%_pLi*%+zXt0-f#d@y;yEu@kkeZJVLk1>jZbsC^}>RvKQItW&4bnXGzoF>lmu?m>z zY9of1mhlM;M$9!_k+);EGr6PIR-9P6|)8`M%x!*ew$-6O?sNC#a%?Psf~ic3FcnF+g9UAvFqBy4k&Uu z`6*tSlA?+sHJ#R1A%^xE*|r^bwivB8XG0ZB(pE z(%Bj=9sw$}|$2g#7{4WQ8G)YH+|2aY*9lVVOLmcX(%O>M$8^kq@sodT)EhH>xYzP_CGZq zhEI@Dj~w+;hfUe#tc_IeZ{Psi-uNo3C(0;u2;`!xrjiDx4p_dbg`4_d`)k*8{2JDWaXMZ zMtOxzE{hCG1S|!u&;~cdjH8AtmYu3|`iU~UyIO{koO2w108xA2Y-g!B>pQ2* zxqLsv`5s;+-KSYvS&x;=9=myAWZA5>u9cbQV^=Y`8X=O(#Pt^5-r(Vv#Zoim^(lUo z0|ingB}zr2GLOtrq$^0K{$HjP!yJ_rZj|*5g@&1Qq5Ly_)D7-z+mpUJzZ!nWv+R~B z+aZN>NE%*hgkY5b4vG|=ECKR2^f={ocFSvLr_Q39f><_aDjxAX?aGFA;w9r#Y0unrJqr5s8VJUgqq} zup4O`+z_J?o|#grLj%&oEXPxXK_OMQMgyR@>ABwc&*rqV<*h8pv8kBpnkYI*oo+mc z7r{VwZ}@9Gpr)&tvjYSrhak&y9I`Roh{(B6E&u?F?oK)eV^Nt@)6+#mEit3<=f8&Ke%r6T2i`^R$8~BnzA%eQ6)sq>Za#Y0HbSk0ABq` zvBH_Dp{&hj%_*5@tftE(sS`>9q%oG+DWD*|tS zn)g2bSHSdCbGCI1xvEpuM;L8%)6L2(EIc<}y*qD&X*WkHIP`NqFX3g%GDdZ!wOw^s z`B|S$mij>=>`m`&w>Gxe#>WJ)MJzMM!gXfUI_N4aMgExm8=3Q9e8uxZDP1KKLqx#x z%*+AZ3Gmqou@~E8*Bt7rgrcgbuV@)jq^B+$PTa;Nn61yAgulO@18ypUnr_Z_2BoK@ zDyLA8t?hHU=svf^niZ2WxNEP@3GywmKWrByEl-zdG1$aFAdU5~>H1#ZZ$#!$7^4R(R0F(hgbBEmnRtmvqc$`P3B~nx!$t-sMn5AOoN?*dV zGlufmiyyHVVV9>bl7?I9Xw+QaQkFJRJP(urT z4TBf48jt%8{{XHBs6!T#$U}=Qy?^zF8hMp9YP&?Gf`B%)&->tdpvnT04xbX=%cj_} zW?4s84MTBMz$-DizMi(mzLlD4NQCueU`~;R79IMV?~HzcvzLsWCvZnwV_`@ldP;fW zc_et4b3(>IE!VGYt%&-K(=>Wc+62s{rVy-fM6w_^CrMGOr=IwxjAjBRXatZ_n=3qP z$_?mV-951D_k7Vi{$nA5$<=uRmXN@!aqrsXRz5=b@g{5@~|{@A9X zL|_syd1_D1)Sp}vm`*AxCY5dYrtcz)3wA~RQMbLYHkAM-;YEudCG!6O&pcTpB%gqL z8x}jW995v$TGt!z=Yqi2b-k2)#C>+f47UT!+}qO(i8Mu2wYKet6fFFg0Gle@@A*gm z@V1$5%YL4{u=g!N%9F#XwCT6;U;fxhu%)29xFQ!>+%B-McIpS7JBRFZH^{$t(`5eu z6BAdbI!%?S+hRy%ZMv9;d`G0I}xG#t1dUl$+831;$jnr5X z(ZRpXd;RUcGUoLW!5?yc8GTY*DV?6OOp?DfjZ&psH>LraSs$4CUg{Od7Lf=nExoUP zxZyvv+>auMHI}c3^H|<5nG~ri#Z8Du7Y;9d{{Y(?daC&HsnIH@r>Cij!$%~yw2IAT z2TJX7FWd$j;Z}8$(D4OA$wfm~m&PIwGAuww(v!JW8v*9P_>TCM^J_F@M+DY4vl}jD z6-7EcrouS&^!+~gQq}ZtB2CQKExcqg0{FX%vWmQ-pvO8|36;5Qr)zn7V-MnjQ?U#V z;~Q|K)uYwPlIZC|rb?PMT8T(oT~M2wdSWtW@X}IpS%MpEgbR!LoOAJCHn7@_$FEF! zWtOf$8H*E&xTa6sYokr^4(fCvo&crBPS*GFCj(wfb<>6#+{;0Su-(FYuK>T zF@)e=AcXME6j0MtUMQ4XL9qaJz0L|8VNPJRd@BOA#*p05>U;Fx+ZKjcD5YX#gq+#2 z1sNTwIx}60sfZ8P97wUV?3w|Qr!5K5g7jf^0l$y;+V})f>@%4 zM@?xA(}iNao3(-H39u&*?!}AkvtCH*JSWVY10{OAVd;vxk$r2>+qbS1RaCu70dr-! z3%$VUzV|-(&u08dN0gpaY-=+Y8dix&Iy{T8`F9=nJw0%lGSbn?A7+y3-k9%~+Q;4O^^S(t^WhrAMl18g* zMHo^p0`|4~oz63Kv4|e6=T>%$s|~b+)Z5b;ear3G=?7+sQCC!zHB-FxQ(R3e0$7V| z0qJi+u-^jY^vz8|C#dR0LzwpTjM_-CIC6x1FwS*K7|aLzw3I zb4!yTdKD5{G#zY9>TSF>19Q{M5>k}3KOZGDoJ$=fnS^yQJdU7p*P^#wnEG`3j3CUj zDvZv$wz67jBWp%HAc)}v8*1ye;Q8TwBn?)1ts_iKz#4VF>!h39_Sk;7*-J?cWl)uA zvf3IJ2_U43a?D(KOEUW39MX!m7^dEgloV3cu^Rjh8tB>gHn|A4up?pbhqOE~9c#hN zQtqsO3TZ?tqT7~sJ8$XV8ft8v^0^|Kj2lc@!z@NXY&=_?g|`0y!HLE*DwdV%Vp$!5 zM>53Vi(1wIfzxi7jPf_pM--86XT!6-IEIQ$nq4AEN>f&Iv>>r&W;PoV2bsoNYDsCS zo+qe|p`%-V83h@8_=)X}O-kl0_A$|@hQ)OV)pYC)hkm^}`QVdBQXz^|%QAx=iwBtk z1|V)p3u}4|Qy=N*oRVU>G8%py;kp{xX=AI*D<)Lt)Qwd1ia~4GY{y^)`kX4M%oj3> z_43avGJ?r3`C)okD6)a{#)){Bh3KeO9KgjjVK*^SBeX#FxgC1rpVrr9)iPDB7FO|z z7&1n~SwXho_rH-lUlg83og{hQrc0%g3(8(VL+ux%TP zS{dS-En11)NQw0Tw8HzjVe=jPi*1GLB~31KB1b@=u9Yfcxjvx!`e3}nHxjX=YJ1Bq zm7_zciR?h^anjz1scT}&c#>9qQzUA)@k(q@ncLR|($gA>cc!FtnlRT#`9Nda>xP*( z3KkMn)T9wdsNbC%5&-IM7z+!J?Se)_Qwz#6#Abk~D>pDgjtITh#Gk$vSvT3zxorK5 zRR*MBfR#47-q=ILyf2n#)UicdMNd|Ub)+?GuR$Nc{a4!d!&oy^j71)2Xs2K`GNI9b zEB5}FV(~{&5M*G;cMOK(?~hHw^v&u{C+9vo{hHNf)gQbvs#=V~nOjuUuV$JwAC&;G zc*VL8AHF%1^`->5RY7*F zP|9VFH(hc!d#F7-`wx6Bt*H~iG;uo#@wYS4=CE+~(0EKhd;je~h z%q#eF#w`s}p5soycG6AotzkjU_^2K?h!!ZjnHi0&q}w@x5Ag{~JwDnRoK~&_^v#=%ww}}H0<^dh;jyW6Z zEV_zHxuaUyD``mqBnZ*GE*9+^fyar3zGd!hiNj5oyNN&gk^yyQGHGpg+?Cwze>`(> zoAYWV(_2*^E)pX&>GG03Q?b;ixhD9~Wc*i{Qkd4iFGr>gq*TLxTCe8$$zgrGfVI2e z>cuqK{dix9W~q_W!>&=|@mPG_cmDv+*haOn8Rrtp6rw0qkxG}f$Rq_NdiTZozJCs9 zUTUf9IXvL3W98|1)Lm7XMZCUmUf9oOxveUsjZHH1N@?Z9g3=3Fi#K!A^}@ZgsFr6O zGQ`|~l85oK?gFy|vD5O-yeZi6$$A1*WQ9M7#;g94H?|}tF8d(T#3&v^(;qX4 z%QeG|J{#}3z|AN4h={$3y}i2s08iHrt(@9RL9~Tssu0Y|gq70dbY(51A0T=kp~TrH zS!%T-B!RglNZoI+A46;h6RT8SQ?S{=>^tF{)hQ}VR_qN#jEf>~bt*n@uG@Kofgq}A z6(dm%zyO=O3+zSjz5bG0@B}TkCHw?X8eE@ZujU$ z89Ek8Iw%m@OR6CquhZ7pb(5Iok3^iH{{Sg+j1^b8Hrw>V%5_F!Bu24jEu`4>=svf@ zEVe;UHzzJh%NG2yDis85ZaSPUO{yOfsaRy63XJO;q>gqEEPw%TD|Hy6qDcmatB^?= z3nJR!4@>_5vB6W*SD<+su2_q40cg3f-Yzn~vXRU~cj^2amE#I^Y+z`lBFj6#y7TA&4d0(yq z2&AlPLn&=;{m*-QVAXAop$TH`rA^D5Z*IVQ;_>=2$$6r- zVIY!AUhTKOB4aALiw%v4#i}g|wwnfRBhuY*@v&Q*ZVL_la7nb8T`1C7PTki2c-?S@ zPab1N^UXL|)yfzU>5;BBYms0(T;JOmsMh577VVCS`zg*S=<~?vbCFLTT~iw%l2}9X z<=a6m`9U`qJ7ONCO~>KcEZmki#OZMGen|}{E2{>uZ6&+;j_%&>{f;9x`2Ij;b`<{cgHp`LG<&o4GvZN6pE@prQ4gkMhy7sm* zb=*+xJHe7uLq}A={5ypV`mMF@2wksY2F-2pTGb}5I+z^9K_bctQZ*0>7WE^xHesAq zLQ0Yf$Iqh?`(fsP!%@im;_WE3j+O?)eg3%OEk3IW#-KVLhaE@u;hw=hWi2jW6T=J3 z&XVp^qW2Tyhp-%t^-o08bx{o`pC?MTe=UbN+LWO&GQ*;-zhH0@8F2ICh+JdUD#zLqMQ?7~^+fnz+mE)B1MVSyLK{iKxwHRXrY1 zelc@LPJEz?w=zlNuq7o!xzx7@%eE5d{{XaQo`PBouP=z!#?2yE%X7+N-D6)d{6^b$ zIOj#C%xW5vuD{#d3KKMbBVJwADPf zRx+e^USZbc293~pZ=~&r&no>WXs@v8YJ^o`DkNnFspGmSAZbN5Ap0C-b6nOrCzw@8 z@VNtR1m4#dJ?wVaj8&P|lgO5h+v63$jR?CN0->1pH`{ykz%_KFhLPSms^%q_N4iIT z$GP6;ZH4_Y(Oy~CPLb_QRTWuIUs$6}DX47~0m&^Qf#6Z-7~J|}SCZsBM_-hRe7`gJ zY?#DWcm%o`l%4JeUAM6#%M|5wdBjL81IbUP2z2i#XtWfXqI+&jaRkU(YEmsK~*$*2-XDDSG;f`BdGd!CqQK4DQv zt|4rW35x){rB`q^J00!Ndt>LzIjX6t zit8j4y4y)3qe$Ct(_nD(g1B-j2!?N*QY3d>bm-2(&~Nzx+?(|3FjZA#nS`|v&m=>U zAXT}s3VV@Y2kVDBnEd=<_mN_w!>*BX%Z=C z4>PKjJj*t#^&4PoGmFh5rC5DsiZvOOd(TrZ3E= ztdB!cQ@oM}I<){u1oR7hXR}IdwsR@X1Y%OVE7Uo-8(zz`@t!ia^+%bKYnSQKQc%-0 zI#^N{ac0&4kdwI^;D%aEuOxMwq zQY0;BVa&D3QUUF5rv}vuM5VMs09Qz7jcm3X{c)YFNmh}Pu9d1-C^3nnW8zzq%4|nY zxB6mq`F%r?P_>nBPST)7bFjGVceuBwY%XkWslUjt<+Jo_fh;!AqT_u+;Qc${G&Ctk zIW!Z=M(i$34W)19SLHu!IT4qR@vwCuSl?_9Q4%p4nRJnF7eI0KSt6yf&~>7kOyf2~ zAgZUQt%W~4M8_cmV#Iu>e=HwOoaMD`rdcGVcNQ?!A%ve|c0S;o03%5CGD)P84~4Ei z*qri5H9Np#j-yaNg&-DdZ(t|1*BpA1c<5>4ilzvo`J^sRlMYvCuzkRk`;H=CaY{MrwW<%_&^fQ%M_5 z01iShP)P_>kbF9RYwwP19;S~glQddzV49%OrAnw^q(^-!Z+6l(a) zO0yHF?Q z%4C==TvA0mSCdiz#ZP56KHV{tqGb*mt}-fBfk_md65IH|=xw#frSYf9X!9)MNxll2 zNTPv?yPF8(VlHjw$INuLCz5f;9#eFHwnAZ59R)m%F{Y1L4I4yNo;&Ofy7fP%!x+k{ zrwrP)2?^Z)0B=lhGmakp-H=OPRh*ic)}!H;Dp=Z8NrvTFn2wiQk+9S{ow1nV?ihY1 zu979pD5z~Z#?Mo6bYgDH*@(Bx*Kl#s%MLuRLQc_`l0tVP;NR1He6Mgy_>HZ75EhyVV`ADBuh+M2u_$DcT8jwe z<~5Qy<6Dz+vVb=`o}Ref(|*hNh3M;P<7}Q>#sPV9*fR*;sZUa-F}}NPYxUa+DJb?; zQ=<;8rg%vf3d3FewW($ zx4t}rnT}&4B8f{WVo;vvZk>F;^@7%gPMR3dM?uZ9)k;f{3dK%bHTxT!8=5>#sZ}Zv zMl^FOZY(dguEY;O1^|iYhBFgPu}Ga+Nj<#4>$%5}(=3vzmF76yv5k%Q>RI*!+Y)iz zvr?9+0VI;NmP!0q*dkl%NEgS^(n!)PRW!3o0c1xyRD0g!k8B?^)2-fFni!Z6bdU+( z@{kAu{y^fEkci7u028|<^*^~MZ~WT~r2G?^XZcZMkT z2)b9y-0n!lGTeYWovq|Q@L+)+hOi*ZYk&t&QgA!1l)deH>Hh$HIwd4|PFR&7_O}|gHJ;ukbIvs6p zn&@fs434sB>e4zc$4}SW5|r<=s+kPF1~SMTXbd01xA2>hV}EQM_k$pGKo~(#rpDkh zupo<%D`LCI-1hu8jZoT43jjd9t-0Ly$CUHQ6)~p)8}Tn9bStFXmM5pz5|o=^<4W12 zs;_`$COImppwSA(k0Tp^lIj4DD>3uLGTgSVwuLHlXNHoNG7>d#ekM&@ks6U=w&=%T zLFq14bnAenrjkZvo%xQcW$~M~%nivq`rFq5*G|n)oUj;yd#JtG{{U0d9H8gh3TizX zI*jmC<-nk7U;zPRRg5VetfJ=oZcZ}oSyfS76i+;kQ~-g=)p24p_c+*OoF7|POta?F znkrYZ<)Z49@3pl4UfbhUm*qKq6)c~+Xap_L&pc)3ZO!~lHXC-voLFn4n{2}5d>L6$ zPaL_QGcEvZCxjB$^bK+K7}I1F*=9)3G)k2jSUOyvB)oxulj-xbM}gyk|+xv}Y{!+$;Rj#yHcB(?RckS3SF@+8cx6%kF<{*pp#g(}< z?NKTTKg>Fn5D)we?u*B)M5mg0=k-$hi2ii=GJ zOm&8t%UkAnZanRKSdoIIrOU-LFD^7qAwtG`4%$b)1<7)#ve+f3M{25hMV)0fEIf+> z4k7!pnw|B$Gs!cMrJAqESX=3~9paWqXzyxMN|Bw)_@g<>rel`X)IzeG$c)6G^trhD zZ;p|}-?UR#O3_x$PPGvg)fHx;(`M4~>L&fQFVu`He5-bLVv%HqK`DknM@x6u^d0Yua;_xe42O&&s?4(p7)%J7Nl14X6S&DMA<>h_>M0rr75+91%qHIjl2h zXp04QxFD;L#_ty_=xsqrRyx!XZOZRpZ;cNW6ykGLpHasJ4O*!b(5*0vQzF>2O>Z&) z4cMNfZH!%IT)Ey+TTp9YIqh0=C61|{Cxenup$yBQ4+|6H8gRZ%Z-aM}<0mf?r7H`@$&dx!r3 zX(mWpAzJBUuP*vlsbqq1qy~3aCN@Aw1d-PlXPHF#G_l9VoIO>O%`=k@W0RG7b6_v3 zom)v4-ss48=z3uLk>sM}t^WYHiPvJf*e8OTX(Us~Qn9MZVWo(_<=mc|V|T+flEc9{ zE>o6E9W{Mo%`?=x-DzMB#!1+E4U~5z3}#0S*5++Z`eX0;$A2CT)mYuDmVZ%UoSCR#P1RAz*v;)VRgNT#$u;0dRb+HSR^%TGs4lv z3tXpl_v>?EVh%QXY>rstIrhoP^61$9%DCC6=Z}Xos>U=@8&T9v;xILhqq#dH9{mCL z!r$AzQ%6U{8Gdn2t<20;K~jR@T2!^9{{X2-xbqm%e#-b(x)C0I5z6H(N-Po7-as1u zAoeO)6>Wj!^jby6tR243jjfD@{k2Rn0Tq z`7y>xP%XQE3V<$H*bC!xmvGnaS_tZ@YN%)^T~9AKXxXKy0CWYuCT66i|v6rCepT&iFO`)oWM`uz1vnPb>Ct_G{*L(Hb3s}o6#!|;q zzS=-gJM0I)L58%gfAIQS#zL@Nx&zSm+i$Ka(n!1;Zp}49{{Y0%*H2u}9%>P}HA@Dz z%*u_`fFOx{q_>DzHO}WM*?mPFP^8RZdTEtWon1&Ot~D?J0E+|l!4*^UDB37YizJR) z!o+;O5$J*s`7DiMfSlbY{|w zY&I6_gBO)JX;qd$FLf@&?0WRreY)Ws(=_rbf=HBmXYy#KTqFpa-|E2N&diYsX_aVvK$?aXhn3d2j;PFYD$L2VJhmZSH^a*Tjn`IsKluVm~05f`}TF3QPDwP1ypYFy|gTCp^eW%_BQlAjydcTDzj=f z3WOc@xyGX^uBppcmrYbw2^(6grln(V%q(~6F&weAMes={XJ+8+lP0QV(OZ&JO(cb{ zR*cpMqUt?QneK7eXn0@XsgWb7qa+J6#R`l2+aHjrc%B*O(J`owT_iYnM^^s;PlPc2 zanX1WjPoiGuu41-F=RT`MwfzYw(?03TBgkk!Sa$}BN!JV?UiU$7x3b}|C5*@iP za{&W#3B7>xzWDrs`)Wp~<4VdlmYz;Q(gX>mQ@y=TKV0yq7D=Bh*;Zps@HwOlaR_pe z)F|rFh5(CoE9JPj$K*fThDlSA{?apQddEk3m{hAFxGLh~uY72XW63y~rEr6bFr7zU zxUo}Viqvi}QX7>3SPuBBW^{V7l1=dYhjIt5kUXgCOdDs?O0gYQ{&vF5vI*+yQWyrO zd+dC>-yIf~ji_i~iXwF=ET!9Fxwsx; zUfjd^h_KsyQ8F5B2w8NaESiGc>h$~lG4)kCG_>zBa)f{e2IL*C8*FDyoQ{txM$A&_~D>k+HEbzmHC>t!}?zglQbzb}-4I6(G+sZ8Cyw zt8LM&K9(owFv$Ro;EhOhQy?c|dJnb}(^oAW3~@*q)g=W-Q+*^3p63PSb5v$i7^tab zmCI})Qp8+ae!}*@(+aV+#BRqiAbA}`W!T2@t(2b-PP=L4^$!^!T-Y|prT*A8@+{6uohm8ToLbDzED!2%RD3m1B5q|unF#*? zm$Lr5;!hq~Ul&X-tuY+>;18lubd885Nc}JuHmTHz=aC8iD_^f|v8#)Q1D71>Hy7{# z53wX-`1nqU0d;v?^l4vEzta_1<`u5ll8U0Bs|KE0QY7$ z{RR^(S09rWQ&cFMD$XZXk~(Hf3khDxsyq0ODG^Ie1dBC&EhtNB9PL&eP0HVFVYAu( zKRb@2h-F&ll0Xb8F_{owrP%4VD&iTkdiu9&rpzE{0>v7{6{AHRlo4U?>yIvU=|Vl2 zrJB}}uc_ir9j9wcpFqwRPMUgo=0E=c2pCaU#JMd*dSP7Zr9rqcW#TjL3pO!RQbBU` z{{SA)pY-Z)djV`$Q$;X^N>5i1?2jh?_c*LzpqCZ>!5q?$M*D%YT1t%eep9qE$P@_N zUzkZct@N=N=+)Hn0MS4$zva1l>6e@)V%kAJFQ2wDv2bLWw-nGj*Gg3vF7}Q3sFU=C0^uOB~%&Ug- zJo_UOl+9>sS+#*9^Px5dEs>_1F_;^2OQh8q(5I)6&QTQXN58s$Z>- zmJC~Bwe)g)!-Df_45%(&YP6{Y-i}RIRX-~$c!0N1dYo6mu-4_PQ<&7z)=<=1Fp@P2 zIZ<*+1du?we6}Fldt;+g$vKv#!z48qAzfDLLGDMs_-n&8m3gHFGM;-BkjGJX-%#pO z{{WQXGBqgieoj$WY~h?)6-8$e)>ZOq>z*UbmaIi9Pb?iwji$_m8(djHv9Ped5$4&C z6e*+2^NJ~|lBY{hoWTsGm#T;-Ctil~58ofFYV*&A%+Xqz&?wQbPM2Rm>$vvmz9^x~ z%~nt{`Z+5hB$s;@R`=1$_&4@#Jd|dtt~xxk zG?WM`4P>t%rHm3xQ6N8wA#Iu4WfxI%avx+IA;eX*@hll=js#&5oX(uGr)G2)@h;cw zdSflbvgh0y@x@D+rEWzfP*`Eo^FbkYVpdY*l+tVk&g9?E9bz;AbnWp~8I40n z@l_5E%L=16Ed_^&n}M+39YcqBZy@3fqDnmLDWhuHnOWyiG zn^Ndq#u-GME1y5^%FMDZ81!S+e}$i%%>j$_)hI>5IOVT0^|YV7QMVUsz}mYyz-?pB~+lts-IIaP!Ed4lBVE`iygeNuF3LBo+PK1B$F_s znl&p^OIU~{S7LNIjM$$KdtXkQUvY)=@UIihC|4q*tEw+~L=)8`>5kq7eGC*6p{;ux zuR*pq={CAI@U5+!*0oxTl?05YTWgeqy7$xQaYa2t7mr4pqOtV9WAwf{CUN^V%svt+ zbD1*ilC|UlSf{DyO&}w}Rw#oJuwr!)zj173nvaD3A?P5^b28#V9C?(K(WNh5tr#Wr z{{S|tj<)TKLQ#_ZlWnFcN`nMwsUsIbXL#GC{{SkV>V5EJZa;S;RVjEQsk=yR^!M@`P z>*SEg(k0_^LjXGhxBmdX9X>>*6#j#XSnR}ESc@N0Mj3wTc$OUx6hYMAOIZ^A zRI%#bcJ{_<3HeilHKYe}gmw3}HCaVisu71#9*+oaix}SK+mcT}1|^X=^l8B3JwC}x zPZ*bZwL*(zSb-Xc@PK*^u1V|dg*mlFn26D1BwoM*K>ps?(brRIhDJ-JC|$`rljXN- zo9)-R^2b(0k-IjtB9e5FI{KU@C&`u0xT*n=NcJZC4X=m@WU$`juGqY}TaW;_>(t`7 z$(_Q6EKfxX`eRaT^O{GfuVPBOS+-#^Oq0bFVP2lC;?#yq*-(SC zUgyr%z`QdL4`y;Cd_hZ7G`m@&stB8%$?wy!$56|%jvC8|IaXEz>I|Y<$qM=#3^Hm_ zrgDRXxp+EWMUhm}QPRr<(@3!kBGp0|L_=<<*VGgnl?0G3ZLzj7pZ=n9dJOj~r)ZX( z@c=4NY$TO0r+&6jPgC^5jO#Xro(V==kP4ylv)sg{_S19yPffbxpYa7XT~tqAvd$_& zFC(;svXR)odu{1#ESg$FJMEmuG@z-=E9RoDiJ_^5v^p@{97Z?ri;dR*0DjnSnY&jS zsj5ddxY^A^NX3{9h_TzJ{jg69@V!oNG3Jp4K9Wngu{IqCsp*P2r5llzMYp3-!8s|X z;kk2ah)cZY@mO3WYHY=a^AbLT8kzq94mKjW+4z-C<4La0G8i>>_ z-BRi<2s;yFa7RPe3#OWCm<$F(Xvts+)OwAzbtHNDW0X=ybXM%t)5pn~Bb}7!XjCEq z6e+jR+oxKUAuk&8PsT-=_dlZs%Wsh*}d zsS@%Z5n|v4u)m3p!(r!#;@FM-6mv{wJwcLV;%F3cIhDp#_ccN0lX@Jm-5#!tt=3Gc{mubDE+s^zhUZZ>A`# z%wdK(2k&~SRU=~gtWTtRT#|nH;CWmSt)hinQwxOx;9%*fn5q_zGT;9Ij;qtw*hiQ? z>v6P>oZLZF&d}vNVOL#Hg6xZzK~Vny{p_GvdS3!naR(Sv>T#IP5DOHOD~4Gc*;XNM zxyLu;!C z(KrW=s3tU`q6w+8L-UQJBp?IE1*y==C^?5l`q9@8ZL!VOFjAGHxKZWQS-o4mB|^;u0Nxi2 zKTJc3a=5arreRA^@W~;ylPf-^%6(1&>6=ov+39+ynV*{IK&nrsNFlI-ykbFnm>yDAYoHd-*<*idZa6q*x z3rALjA@U;IhWcYKwB-IPWivG>c4QW6h#U8XBK%b>uF=!iy*ny7U5P;ZgM0Y88yg%% z$n_FwX{_j)_1L*4;BRi7diKXyr{Fx?9Vc0qs+;Q)x&>* z6@GNoSv+x5O2}l6%<0ubZUH`aARe9Zji;`xQqfN!5XzyW62waB*I>Z*1%{F9?Trja zhfNw$X4%w9IVGy8A`L5~V0b|*u=C$=MkAc(vE}tt^rn_Nyt^>UDICcx<|b(GCYJF6 zx`%6yxK0jHr_qIBlH9a9%O}ftk{Ih^GeuZ*iL6Obdumd9jrPD;HA20^4xXpi*Qrhc6zNkp{{$GO!R`B#MKJP$Vu2TNFfB-Ka>-4M_$KcY;zeS zWSOF2W>co#zF6wHZ60@+XA+7GwT53Q6zL?=A|o~Jc=?1YSlnEF@PmkWJ3q;VPGOx; zm?{8bk;iE*ZJI_aa66H6x%R_)d1J@$O@78^)$vSQmdLrDT5@XkXRe5U^vSi~Lkp8m zf0h3LFOz?$b%aM`uY2nE9JeL#|J(3ZxBNW5-H!BdGE+OOhm zB=)_(+aFcRtkao1I**xfiBTB3NG3o^^aP9Tw`>6?1aU08{_A0| zwyBV9^*Cs?_AHaFBRwO-Be4R;*gGPEN6b{lrQ8rj+S~i!w&1M(7DFyxS#Q3XQ2jPI zFE7b66p~46A~ba4Zew_bynr2jvDq5p>79lznr#{x`PDF`EQUD?x|Y;Q5?f*a07%^S zAABXvGS!;DLbPaZ6x?pa_qUgj^1+$re&QvDBv>G@ykSMi9Rqf`>PJD-&iSfJ_mZYJ zB$f@<`;vR(J~%bAc6`xqh;;cuRFuV`gm(tG2#*X@cQDipGiCRCG{RY2QN>J9xy z9{f}dO*09V++6^@f$6AwVOwTVG?h_F8c3?=skP5y4`b_#M%kWfC>80XNs>7MB2SUO zT_?)+#Z8yEZ7X$q*l)G`u;QAgj%nhhlKLk6KNrlKY~JA5;)*%+2}MvtD!ug!f<^2s zKU?}?kvF{*<Ebj zzAGa()_#h>`GcqEaJz@<+MhkC%j%7!63G}HwE{yg>2ZZ>>}2YZ&=*9Jr^H+*28?M=IrdVMoAIFa3a3SZE#PX8|CQp$euk>CAK>Of9`tYKg99MxvfO7DbXZCC);8} z0tx*_CDWi}Z6QWc3{9R;&nUcXbrGkbzB(C>iX5%tl1Pb1ZE&jUu?f%v*6XYF$2+1D zB}{)SJ@rNuU$)lv{@CbwRUT_R^_5FW6tsXu{{RumFUf5^7qPpLJ#XuYWrU>cOm2#* z8b~CTnkinPyF{`rq4Z!;0%&=5I zw6V&Po?3(BeGGt$wTD6&czgO_3V6~=i4?#TM+}<37?MC60k>P9(BgKIqR*>knT2Vn zrPEHLmN-cf#vDGKT|i)<+Q3*I-7p+7$1OUo)h_*1TiX$os76qMPyibJ`eN*pDyhuo zogfjcF_G~T$l@rV8+^`o2Hm>h)CtO48D*Jk&yv>H&pO3PmZ>c40WLuoRW}wlU_Q7( z#au}~WjvJh(91zUEU8Yl416GTVS65@t4PwZ%S8i9pNgIx$R#g7@4oLw;v?+}rPU^?04Q;U&76TeuUJtK!(ysvtRVWJds{b_T}_pq8d)XeQ?5_WJnmu z>u#EjtUkEt6j=^e1Ys#?C}fp)_=fH$Onu9dS8k zS4a}V=;d@2ljahXpit~LCJ4jWdiEG|7X@dPF_siHk|;MU+7U`agp8zM{WN3hs@#Dk0+%m%V-~TV zc_k=spjEW%71{bl15@5pHSWv z+S?_EpL5$DO<$7>veCN&y9nLX1OEV1Ukcj4DoIcbu1OD5&8c7s{{W`gEj9-0st%t$ zqN6AGR$ECLfxFF4By;7v6JdpOab9yH$l_IwHaF2p5=EqXSZ#}H^9odvkYtpo#P#OL zcK-mVoCNUG%OanJRTk;-3_ z07*QZhAa?9>Kz&dbLIj1V7$Oq85HKRg=4r|T-(ay5m$mV*#a%Cs=$$m&AX%~$_*7n z%nXbT_SMr8l9ozRTId*gYTxT@TA7VBHf?Pw1F$1}2UnXUiHpIiv@XHlU2pB(Fi zYiC^HBUt7dnF|5p8(n?IIy1giok>laWL0q0$!<+e6S%qZ1a=_wI8FOa%X#odCXzaG zB9un%zng4x@7c(wqT^h)puIZ?rVd#jW*sbV_r{IeO!_9HN%=Z$MGJD;C^E6C_i0R{ zVbJY^^6Z+c;g*Utc3450DG~fiNVT`y>5W#XM=XS*glK^B z++##BCefNxX=n#4s1fUeq*PPO7LY^Ohuh}#z?t+>=ZGOGsyNt7c%MUy9>*JMDiK>p z{vwo#iM`*p8?H+Xutys}nh=Hnjfouz#owlr{fIwMlQ|}F!qr);!xbb|QioDX$ZQnb zX1Lhf%MK#_l*L={Nn1XcV-}t?UEgk?_QzF9K!fGM2_BJ(e=Uh@oAopBAj$YQhq73p zT(>Esibz4zDTp)N^(Btv;DeXc7({c*l`^Tl)p=sq^7I&T!B=zo;~B+#Wm}Rt_)Z?F zu1#8bqI5+ceg2rGsIS2|@|)JpV%Zd+j#N?ky5KphB&JqHB33(sy?&z^EQ>JW&LNIx zsc3ST*xnHWhbq0b6MLU*518=&bxAtZ4C-pCs}RWTU_t4(VSGvCZZ{NGIFfZHfOw}U z;he&B_p;e<3i7FzR zEm7@zF!kSJHyHE1R^J|*^F^nRoGBddA%baXD#bib@>&U&c&t@l#=01eg_WCajn~r} zDwNLndWOD<_LE3ED$zhh0_|xv}m#W2RSU6jj+pU0n>&&`Pc;ni*k3 ztQ+al$KPxH#uE-De2<6WIby-_ktx>N<}T)+8($7Mw4J zNbD~NAQiB`U4`+YqRsNmt07Re@k0kH!W05T15i~^B)KdB1fGJ|1AF5kl5js5S2XXJ zR6$Ql=%wprs|u5~$k3$;*I{yd0(|jgf3q$pT*W2*)0WPWFd$UaYlcEL)XJ<0_WR-Llosntp$I^D^DbbYKl7QHjq5b%4Z6!hr= zFfUUJB8{)9O{~f-b8Hire$H3oR--b5hbd~8Yh`&lu8r^i05O?K^(l>l5XJm+@w^eq>c#GSz|>-1K17mGfz27ooYv24W{_764qnW zhvEnd#F9*Hs5@vRcfVczv1HsSLp(~dQ;i_}tk(Yk)-)4S<|*K!hMqmQc~r>P`iu_Q zK65>U*}jl}EO3AipKJz~&~Nf{jw1b!Wf_8rXjSQ?yBUAPHj*vZq2CFq{{UeWfe9JQ zq=eZ_Q5FN=RliJjicE$`n)20E)qnlR&@X>Y{{UPuIYYBtg&tzszpfcY_z~BWic$W; zvh+<8=lO#%-If>;8}4pK3a0&raJ&-UdaUB1iQio4pV4vH#z>1Hkfqp*Ui;hE6B%TR z#iFHVW6_F^o_E2fE8=qMKiLlk(gM$w&oKTe>m1k)yDh)AGn`?-c|~MpIBPDCFRO%} zTdt;AK^v=Xo#F=9 zVnN((ueJCOF7jKdPHt5O4<((H7#&)~=Cx zf?AiJn5p@N?i<+u0DLjxDsxp^B1@>t6NZ(`U&X6&{XY0RHxg3EMA0#65XN1YRbNw6 zB(*cOO-UizLZz55a(ufTys@XtCnA|3i}5C!HSyf-Z_WDeiDq@EosB;uRHi$+N_PQc z)Go*r5ATV=5rRenMN-k9Vh${(rg^Gfo&=tvR$>x3!FFM#dIA3co8YsWiFsSyPvZDng; zV0sJVJ4G!VGDjj-Ig&OK1u>gy_4C1bY@9tE4q&;Qb@D_bMqh(ym4u zj;}2T{{V!tn|!3$e_VMak<=L)HHw`rb%|L0h4(n+2>l)JNt#JG<2#iV5vbsd00OK< zzfy5g<1Fzc47D%@-)>dL{dT@H3hjM?`(k>@UG2YMaCk4FeaSx~`8bz3sU!;LfHzSG zhxIo&u6pX1ky=NZNrC?WHb-VY+uUGi>ayjCtT}B#lW!dLnt(m_Ra`QsrJiWkY80t- z=mNsbN4XneT_Raz{=mK}aW~=VbL1i{2iRgwJy1icEhn+%8=s-U($iEz0?qLXZ*r`3 z57CY%1uVR#3Q>JrpX-k0q8DW}jaSPep>)JYO*(OWSJZV&JYatduo(1HX?wLzD>2xo zh@Y+PiKI-eV9{U9Ai(8k5n$RGqigz?H~ymopB=X*-CJJxV6a5w3W=N_G(vy2K6rvP zqLGdIFk4#-$QCG;Ln9P7l!0rDpVZ|-PnG(E&Uy^Hl_s%K7}3IVt&}2DS{iuU^M{#Zf7ljruZoZFmDArsJ)Ha_^`ng zss@lP^ulsz?Vx#HDWuV*VFRRbHlc|+!m$#;*==h9*B1&{fv^EV>P`Ouwkb3ai;|3e zM1*2auFj-;38%XM0EdWM_=z9Wd{;k=60wn|d#YFg?oILH(Ud?V%`*jtKz|mYU7}UC_a~+c$aozp>j zKT#}jnA!x(+Bgo@U^M-)p3XQED$byaDQT9UlHt(PAWMC^2r*>E?c+n1Vi|0WLUQH zHwPLjYTB@Z^kOna?9(aIe6|?ADPxH&u*oAy40;)f>5CRt*QD5k<%B0NssI(Igr4`9 z@A_bb%vn^PPm8z@as4qzk}t^*W@D>>LB9T1$IKb5RjuiSX_-jPb4_jfhwb*q(q^A_8)3PIfRUsl107$04_6G)=JroQbN^QBPQUK4ZaPUqIpQVC>}uKfYa&I z9G)-c7r=9iRL6`Z9iz;ts`AG8MT_Do(lEkNWxI6KZrEK}oro*+=2VgMS(+G% zUj2LGwBT%&B@$6m{5<0NW(-O8H|>m*#W`JhEaZ}-n{fhw~~N=O(AFq^IT5k)|aPve*r*2HS16Jsc2>$<9tO6&eUcDIFa=aKRV|ii#8> zj*6gc0QSeDE(N?w`nrFaVfMy_l`nA!RUO#rIFcwb1++nq;X{Ic*T#+rpSaM19J(Y1 z+O2K$+#Ft+Ty1mWJ9lMl>-*lq|8ZHdyF1-h8z zOE6oA+TQ&!YEje;L-%dsI5 zT;TCQ6i}>EcN>06;&}wMI@0-tqrX5A=rD{rLl|1c*37U z<<)W|6^N=t;vj+ScUB{B`{2CFY^y7ReAb~Rj&}w>!j+KJ6VYw*o}F#5z6#8m(2~Z} zGaPeK`=Xx3byZHP&}e;_gZ^WWE1sjTOmW(lT*jhlpp%&E%tvVB-^JY#5;8n@a5uw^E4&JvrU&|P8mqvwY zD+sHliYm35Skxg;9j*gzE$?lH7Sv21GK>=K8--O-u{LeD{XV!OG_01YF*8XNaD>)~ zNEZYH)3GG|&Ii#?Ln|7jl`5SCi%T?WY=nbmH?VE*Yi(>gRxF)#Dxfsts-kq9vplBo zAR(dyVd6U*^xMl4WpffacPO_+Vr+insrAH!Q8iUd)27U}OLXXM^}+d^8mXdS%!c7e z9%pQHrMeX=LYj4wH+4pxWp&b3TS*}G1mC7Kc}-D@c1a>t3W0ip&PDChVY$8+LdzI= zri)xrk=sco))#H|7-f_$TPsHO)y5d?%vK9KmA7ly0e!c`a!Dm@t}J}rCTRZv;uywM z)RG1P*fg-yyF#zqOpc(t`VN@N{^|If!<^(LKGumt0s!bYxyFtNcwhIG2g5~EBuyD< zW2#1U4Q;H*>UXj9-@ULUJ3~E3_)!9NVWUwRdY#()jfNu@)Ojx7*tsyq4c^NQIf9>+ z2<3tpT%fTx8;k>0m%|j2J#>pKi~@$1MeuqHV2t&qjuI-xH1ONPlgPnS=oj?9GBQUA zW_XMMlVXse0DbT<#`k7)qPCFXpv#o3lf6GIw&@EyG27o1$vrv=)`4n-OrW}jU4URk z$pn#mZH0k;ze{7%r&jkMb{Nv5`5T|$B3b#1rZ=BK{H{m;0PD6qQg^d-7CYh*i=Lfu zLLmr98(`43*;0%3B>Up{#>5S+=ZK&L*o;~h%1*#^z@Sm&dau^l($GQv5;D_}4&iP^ zzSuz&cW*zYA5+vnE;yPffD7{ojoaMeWGvQ;q^3ZAW%^*45ftieM0r?Tea-`tX=NZJ zNG<#WPCZ0@KaCZL*m$peEjrmGwjCm&I)Xb7=4JlJ9x4TJ+CqzWH^6I7w+HZ)`kYvS zV>fq&t>$bntu@iq605DonL$6ot^WX)#m^q4*u)z4K0U?;GbsYWN&Z|$Ld0wek?IBq z7IhXi)c8y9zl8q)d_c?MK;liWYm5H?OhsBynogAs)Uh|keAkGR&1C~?jm|rZpahnU zn(VTGEqla9J!zo^>m0|(wa4jv03Io1CP$f=b!U73089|Eqm40zU^}+=!noR_zhcIf zoZLqC9X9ET+G#qhckxI1hgjR&1s|j%rKmfZSnq$7V2Gotg^i;^r@i;V zn)bejKc+r1ctN#++k9(|B_5Aux0?E45Zq`;!r-R04GTG?~4Rx*6@#}E9I1RI)Pw%TLnFV)dy5V z1x1!n3R|fd%JByc`B%b=$el@W?rB&Sdn)b1P9`s1V~Q}D6VE?t`D@W&Kts}R#9 zdTrB7gM^%ILc=7brLxH+Zn`7WWw^$rLm1H+ZDj+c@dzc!=(F5WDS1;wvDU(s1Eu7Q zZ}b~}nDHqol~K}`D8dj|N(Ca`qYxrQELOnc*lCTqwj9Dc8($W&c+q>$A$7ctN!r6} zeQ>WetE@?B;ijaXPHPp`tcOS*VU2xLZYVj*f>B9pFy*FT`dWX!4KguHOgGG5xF ziH`pOQGq9GZ0PCf08%S8(yq3$m4W#Tv7kRyP!1Rw^62V0kyInpl;xF4`Hf(2zWZVy z5F{YSMH1>48sjCtwi{q<+JiHEuAwp-s3>zu2ZEwh)~V~HfqYH39mFo5>d|#xcNA=} zt4C8=qnNbjZ4AI|a1UI0L7X*QSE$Qlg;})OuEcwdI}8uQ*6Aj!XUaLp`Z@EzkdMPwm@1~)3Zfuh7W zm^h8OD`g`1sz;LwAAy=`i2fO&N4<^qYnxlW&Bhl{<}+8kLafUfr&PTwKZcpzij`G2 zu=!8)#%nXpWX~&D(}a?ql0_p>3MLwWJ6n5$xBKHo#I)4P^|cYzM^v*?y_pZ@h~L6` z8*DA@8{*tcbQ)P|QmhB#$ZWD-v#a&M^e*xRp$#2@@P#OLg1sWrL`LO;R?sdLnw z$78+haCT?J30pl?Q^cIfxl?M8h2`B&ttYrQ-EgIhnO#*SWN8df3tpW}nxwt;2?`t8 ze1muGY%~)`N$3not=!E?NbSF;EVo_b1oLA1h-w`^PXU6xL0qz*^&==rOm)fSeFq16(xBi!RrmQ}R$G?f1U6CzY7w@oTH+kZS} z79wrh*kMZ>Pc#w6Qa9LZC-pcJifBovHM4d5-lm=+<}*=F>0*NC!~h?y@tw~bFRs@; zG%ZJ%EZnxFNWh536XpbTYwSiILr(PYFFG!1Wn~3MqAo9cc^hF}Y;IBKYI&)lES7nb zNtExn2g=>Aj5t(O+e>7yuaJ=`CUV@gxJA@%!(r$8;ByNJO6jp3Zf$HhrzLA6ac50H zHTp7>Vh#narD}Pe;fe=kQpV?F)crBFGfP?oMYV~r!C-?O`l;I=Q^*m4(jMK2z6p_% zO_7&T{G+ZrumMD?b8<0rFNBaW^4NB^E|Sc>2(bEKc>xG~J?wn2))xgM)YJC_M{D6! zU}_iJ3}XKPC>to>a!s++PIpD*mTOv5Z#f9Tl=N*RZc!B2Z>`AvcffFf4x&_^*94E# z2Morx8aAg(EHbgXEN)o(TKJtZOYMP(5SG+qu4TOTFQ=me&|uY|kSKWC7A$P58M$NV0RFh} z(AAkrB{Yu8Ymu zCy0^fds}QjxVlJhW@&OiKq_`D$KMmvr^tKb)qq?ZpS~uMuCAopvBt!0C@RO~(Qi9q zI%hWu6W<2uTLL#eow4W_Q*__97#0Ul@ll&jAz%koHaH;5{HO1an@}doF&%AtTHeD2 zATq%#71>3x=C|}1kBfcC$GSCq%x#W1_UuKq+W7NOQEhnhma2E(5j!6UA8c{N`GWrd zIrhhJ*f5VkDRh2FK%@!R%Tq51{haIi9*0?sf$0y^u{{Y^3jWaPujtN#xBYT23`VEdSdWl^4{gi^Fj%CD?R3%+RkWC(; zWsPreidf#?%hwwoGR!8V;hd)`NntfGMH*C1AIL_VS#NR<{v-6pH#w{cI>_9#b`FG) z3Z3qz*6Fuxuzh_+Eml~OM*5x^o+*xk0=AuY_3AhC#a*a{`6t1Y^nqiptj!{zf+r#T zCFIl;5Xik4-s4HQJus@PH#J;OQ%@2IVR%H%P5?26VP}y*`Ac6`k#H|=*o7qZ6vnDH ziWj9w`K6vP>~}+DJwdHEtIO}Yjo7HqK;u@ODtjZX<#g(j9L!f95AuiW68T%6}@lD2gG>*-ah47&Ug|ED(SdjY_wa?cOsEPv2)YOr|+%C6pKIEJN zYO1DCJS>ayho~eA_1m^7nyP4s4-g)x*TLgHg7QBGmRY!VERJ$2vj@)XrYO=KFcMFQ z9gf4#38blL(^F{>-)(GHe_>;V(`%B_Q@PcDm#!fc^zyKds#sx@w>emE?_-8oic2$o z11a+`DnIz})VLPqkt6+VrvCtZ5e0o0DUC*7B*dEqj#C=@Ft#+DIr~A(xMwQ(46+=X zb8$OEcl)aiUgsHn>ou&-GYM;RS=yqiLJLX|C^i-wC;(w)6%(bEMSNb$CaXZi!x39_ zRW`TQ*d3>rR?0v=y9{~EPzlml4=hVrc+cRQc0PDTqE9TD2_*0xF{4U)Fq404U_%X4 zo4i`@=WBkL_C{#fhJws~Q*OAv6DFIG#Q9#l<}UkxDw@()l38DpF9 z4sc#c61K7F?}~gHuhe>C@kj`>I}_`QC!=jQMhL+D#v9v`7o1sErM|%XW5UC*wmpg% zS&BU4SnM%$luA5N$XMH<>5k&+*xZpoZ~Y8d3EQYXc$9RkE?D2v`(T(UlmcWx;ElKG zgl&DDe}QdHO2?VeLgGUMBQn094={FP+heva%&23nr{%C99^%&+BD?UD!n+RF*x_$H z>2l$fPUB8AM!3-(w`jt>ESW}oH9b{;{rOkn2TAj_VzDJ?^ z;k%>fnIzDFf*BO)C2fDc_{n7K8YwAQ2!cy~1(^Ah zVT*)T8xOVtBLR~k&eDxRUrf@YDzM4LWbZq`VujGa#CL+ zTU$n^lr+<3Ie01}G|eEKNvA<9pn}J3BEt9c!Lrw_4qKJwaX?d?+NWq6n;fj8=LL?; z#O_7DQML!8r$}ebVgeMb_;SUJzlum;%&IrI026iVff|)-YclyM;(I}DL=ZhmJ72fy zg_B%T87p?p?pejz#STs>vTBL4xK?*ZDiPU@?{akCzf1*~@jnpEt1e@lW<{Zmt^};1 zfgVHY_rU4|bdrgPNQAE~*z_0t#|j;x&Lo{A&GP)VnAkJb$sjThK&p1w3??`(hi=7` zts~cbM4K}?Ymby|)9HdBCVEWP_q3x;$?DexeRjZT%DQ2P@qju(j2{=5TsO)xtjjUf zkWxO7N*f`tZiH+)j9gR=mKEf*Ov6DI0Bw8s-xB0V^=j}(ERE+H7T@WOmS4eA)6AnW zk`Wq4Brz<7LG5iq);n~=G^L9zrAese%_+Hzp&+NK(#3}NC<_t@+V{YmWffyaDq3vF zQsmXADSwQktBRS}>6M`}aBW1G5b{0^h$acrbK~t%%w$>eSLHW)4*$8a0Z3^HjS;)aF01SD;HeXy+B`}D&+ienaG7+r(-PuBs*Kx}N%JH&an^E+eB zNvFgY(3J-kNHoaHB0b0Oj+mxH5&~6Si5mhhh^0)47Ne4)#t4HOZb%9bu{&QCQDu3R zOyb<5~$is&(*l8xCz zplw!U)vNUzez?9VTriQ5R@?3`{cy4(%%v+Eq2LN>MkC73N`LzIgh5rC-N#T|-1am7d^H>p%rU7JfBgkVY0`?8R z^uaW;sb)<;2UBur9iZDHTsse1fgdHmeqA9ru}hKG5JG-md6Z90YFnX&JZdrq~v0WN>sP z&zSbBm=Y;v9v7$5Ji`JpaG6fbEKi;r+o%KB^EKgfao{s zaiCgIN|_{Ow#MBsrjty3K`Bt>+ME|8?7QqR?NG4kt8Sin&hj+)qOx5!UllxPHX4ta z#&*5{bB~Bwq+J6`$Exann0+lfOB&v3VI%km#%dZii!iC2*3BwO)g)2WcfKX+TckIq z({97j(#1l8JKSPQMv$Vz(-oug*suWPKpVdbLF?&>O{I`Y8!2Io%V@ul*j6`$Y8E~5 z3CcnV)&hB8IcpfGk50q$Ujo(0r$WdBq3T8*$yFg1H+IQpGO3J_A~KO~y)do`*5P#k z;M(K+;k+`_lu;B)K-ei3zt;(*re&IQBIso#fr{d7AW0%sxwr0mY2{XeY0mLR?WIZb zCm7i3Rr7drL>fg}=#f`&q65D5)WunxJi~Ty`VBQH=!Iy$viPTFC?|dRo*^-7l#)Oof55!PB$5r3Y zagByc#SrKDbQRPt?Heta3ylrj5$A)4D!vR!@A69 z@8OA*2hA zWUhKDj_rS?x5pE$&Lhnwrq8*2xI9$~04B&5-TdrvlFn--0#LUjCn@H<(yY7d2+EN z6J2&BBMrxFPD!O|ns>~nDII+@fXS-*S!`78wvq>2cUCuSwz_dq8YSb2v;-~*CdYf& zcJ{<_wJ#IYDJYbsLI;sWOYAhIxM(+TUb?3Nz9rsMfMDB zzqTC5Q$_IdLWltog5)CxaIbRqK8K+G*kv71){M^-*PSuZp&AGh%sLZ)l~48hj9>o% z49^}%CS=*~3@mH~;5mqChlfy56-}J<)7J*mTF0jY#~D zf}@_FOkhf8sOIw?`>+~Dk!`KNz8x(H-5$bj;`g!bj+?I7;ilOT1XvLiz)XB?90VB|pZ%kJb`3m2}Hj+42iK+QY ztPp@1uE6}aBHNR5_rg9KNa-_(S}d(zWSdGm%7aNaP<1zv-=;Ja@ri2csu^TxH?)zB zG1|v_wXb{iz%jVWr>+tM1YZFx2fB{9_872Ma^?O@_6XsnF>6fHCUCO zQ32Z8k3n(ej(WM#TI$hH_AdWx-e88>}Me&Fo0!UWmfO_Il=)Kqz zU@QUa@8yg02(;En7qQ$P*ri3TbdRiM5EB$j7`IKN=kx6j2`HS zTlkwEFm@K^D%{-Z7sWwjVlNw^`;1u8N-ST&@3ss20X|CT)g?4FvCQU3rB8!;EN zuY`WM(&u~|#5opLl4cov@WNaUVl+;Q4|Z$nzooI53h}Ls&3pB?{jeLbxbV{}WRX-B zMHlkL%9Nv)Cy9x@+RjDCklSoq6;&{rHEwLF`NT)X`q*N*2B}NK8$_hsD;t|*y6i@) zc6}u@Y#7A@suFaKCG0x_d*ZgFjdwEg&+xFe4WgjTvlnEcrl2XL{dx3)I&`Zw@iMsr@!tsgHCSqh^s0}z%21Uz|Ni|%|{daP3 z>X}4VvD5&y&s;QJy^AE5TQAfI01JBK?IiDOcgKJ$4UNIvV#Os?8;op^Mn(+;5y4$N z-5y{AG3{>HbqETA-N#Xcbrn3+epD|i^eys%_3w%nvaPAsIGR0UW&-!dd2ocADaKP< z9OmqP4p9u;skEIf*2mi!<>n-4uHl#{)O^pLKAmK1G14R>#4mhCo;G;N54hNYzB1*L z$o7p`ps~lWh$CkN>I|o_IK8QCS3|a&T;CN^E2|QqF!DG#(rEw-vh~8Ksyb3>g0vwo zsFoe9F-yR%85~?5*kDnKvmTvsNp@1=MO$>Rz-Z+r4=f2NRYeiXIupJD%$8-SRni?; zZr9rfRI><-sJe=ch3$MrV|ih?TmEg%-q@xYzFb6_)tJ2Iin2XyQN zo{DOExKv40SKkr8;~s8A;@8?VMX&cX9Dl`BM>M9OD#8_k-fc=$fJnB) zUfp*aV}WsYUeRX~OBpg#qKHdhQ${XraoAYwaKkR+8oc4#FQ{Y_Ta!&IF$@!~i}{Y< zY$M6D8FK2Hilk;R)J@BDkuEL`wOh-sHNiISL^3qvNG~r3Dv~O=5!vHX8Ar<^i`)IM zKMzqWW|_402x2P{bK$sBcmDXVFL7H_l%q77;FeJ_OIW79gagyp8n()+D4&XI+gre> zs~V#CfU=f5^%loCsJ7RVaf-V_`X@+oI^~){H^$M+008tL?Am^~SZgYVS;KQnD#(=5 z#DF!e;tZ$L?}F*H#EIhOs>aP5=-xyiZovL+`r#!cYhA)~$4AUlO(0>Y?pa#;NWYQn zI*dtMDrs{88cDIzvOJOiV?(7cU<)r>@3p&OW^pAfnPjOkog?NWqEkk!rozVeBHykF zr%J_$O`AmU&n@|EVdd*V@|$!%;}EB%mZ9W`J97kzM~EmYdhghb6q?f-)o42?r2XMp zmqU?L)W;;jB8h6{j1wj7I#>X9!F*FDZI{!{LscCdY+M;RW+pL^2p|wkZaZGsPhT`m zG>I3DNwX8vZ!cT`vB%ap)qMv{Q3?+lKARmrM3HhnxVAWM#1L3pVhP(9M;Y-22KdnA zlI1yleLVGxK4(nG!b*4)!z5&jSe6z)LVlQGDR~ja9){KzeeNu6Y<3CJ4k(Rl!jm#A=m4g&Oxzx^7A9d*iPD%PQ#;hm@rbsp&yu zC5(pey@vaKoiSfexg9!D(8@R`%xW~$Y-Y&O9-g+v zw9B~)ppnzl5ttjDR>mnw$?Ryxwg~!|i}W5t9wchouEkh%8hZZ#wk>7bV{Ci{t#WW| zPuz+iAnXPtu#yP?+aE2pbnA;WmRDe;pthrqv$TAO0kIuBdEm(7<*ZIEXWUryz^Spp z5gjNS*L*CBL^C&xO&oI*cOu&l>xAakAlmqKKZ`F`)B*LvQ?nDlUGO8&GA)u@4=pfvAVacCpLYFLgm-%hAyzh@R5WxbLK0|y){Vcop^~a-9up?vWcgFzv z#h8wp^gXdCWq4dVJ1HJV5k1deKYVwUwPM4B1*cRC0 z85o38ShMOU#nC|elZe*5e9}H9D_^FtaTz2=wo@WTV+^M6y~yftB9uLugVuSYNgmy#R!h8!U``$QxkXt1gj^)g)v5DyIJc(+epeskrGd?AI}?u0%P7 zT}5a?WfRQK6W9}ME~fY;a%QDz6Vh!b`eJo)ei=xTQ6iE$i(q7gp$jVweQX9Nerz1w z*j${Fpu-ab+!8kS#VM#usgy7SYm;NE zky=Qc9hx@MN3j^YGMv;hNj#HJC|xM?$Yd++exFQJrs}_lwml9it2Z&n8Z(vZM|=k- zba%Nvto>6X#LcOcA1$}Xt0ZG){RRg~0P4SdTC$)X6OT_vrA4MxBIp>OY(r55{vEOM z${TG%7K;(rd~>t3UrXYFcHY?fKvp>j7dAaR!4)*+hDb zU=gH+xgJ;@O_{{DRXrGE*w{-LEvs*sDe}OxyBP>%Z3pGs8M8WN@vG7F`V@kjvG0Dk zsuIAG1(@~0GQ-Rfl|yhgCm%x#2`oXkdtwciRY$Svi9-TdUwdGwCPz@hMh)Z*#s$*R zy^0r6>#)RRpW)$o>I88_yWH(ziMG&c_7;(yQDo~RQP}?g6N?u5pQbgO8IaNBd3z>VMJ+T3#iC~}1<=TvW4mMG^mLYsV6+a zDFhT9{={R=jJ{M}YgCVN`oxB^n7SZH)uD11#o{-){V}4i;$xY|$v_gE+&HzJ_O||F zz+oL9<5pA1tu&`inn=h(Y&Ny~`W#M4=UT`qp;)FBLvl@>8+&dIw;lfgrUZ_P4oSvn zDd}m3IKEgdXUL7N8!1A;oXs|E7tM%a>kN-vTb$5&Tb5~X{y zM2Y?!2ELU$?Y~RlVa<$Jz5IN=h5B!78$z*s9UmwbR)tiPxgB;G071(OSW`@8^mg zMKOyT3zPkEK4V(on+||<#7@a$dyC`XSY1~BC9$`0junJL@+3w({uv>N$7B7CX0)+o z)5FSPQ6A4=G`JTa-|KDh##gHYalSXa0YmW=^RqfBac~)KI@o@=t{F8uLbY+Dwmx%9 zEYZLXJF{xks~~n!*KjY4{{Rs1wo98(Rmn#|M;&zVoi%S6*}7`BC6HtWj!zM1l2v#7 zFi{r!FH3uzPmQx`ZWZBqi%7*Pfqywo}<5Gj{&j0yLZHb-?$dmKh?D>j!=C%7CFN2n9z` zr&X~G+;h7H4{93J00nrWS*! z-FNiI0mZJ#xeNt{Af%JI>5on9Z-@ZHVYTtX>|;YZkHd6Uzd}ai43m}s7h!X~!q^X} zCjjMi#z4}w^slBJB?CyQr*hqGupeI7U0FGH1vet)qtsDG_a%Y-20eD&SYj0f~(N#H?Z=)0*Q=F zbdAq^NLlxg`vvQU;*iM&jLxlYwDZXjBHfApn6Yc7gL;SO$=RHnueJeul_6sQd6Rs2 zkr`U&P*67`Z|jb6OzJ;iHB1TfOBnOH7=u<)Df~%d7wO^~?03P?W%Qi2 z4HN|c+rSO6yV_>AkpK#+CMMG*{DTZdE2&yQkjl>YwSwV;Wz;;;DT0_d?i2%yTti}| zfd2qU!1n(DA?NgoLn1U|%yu}F^#M}j-xVo^7jej!E;7#~W7gSt;g@sL8SzK$9)^~)_fHHU&U2UBlL^%v zer4QjJ-Xr1nh{g&~6>OjZ z~KVEqO7AS zBq>qW;|U~Gi~}e#sAJ+$xE`2x@g#wPkgdgyu!d!pouo$DTc@rzVwJ!~wiB4sG(if# zFcr8YcEab3f}|S`;9!=jnp$M>wuL_owXNz!kw-~`}$#}-5j^FnrcZ@%PdP#A#%1NGIW90ptoFEPX((p zAm!1D0>VLdQEu3Lc*BXQ1k|aX)uaK)P?}?~>;;ERFU+e0=9Lu{GRsjkk*l*eiKMvh zdf^aV0mVAfWw2>MuS8^!H#>H~OB9Y8S(#MdpnOj2YxB+d{ zVoelf(ptGAiaw0eeqsk~JVl{xZ6;j;FsIC9o*6Q3w)hf8i&mJ!y4$O+ zn;)S#oomF?xP%g+jij+wZ(Cx8Q*ByFw{eD}oR5jQEC>V09C`)pG3E9q$9=Kwh!!|% zCfOvgJx)3&198NBHI^qlbQb4 z^ZJ!5LrFzJ{M*XI@3t_xo?~B~SA14&TQyZpt*&PIMfxZk52gi;K_Ia^`eV|hZV9)U z$4exo+ZL#~h(*$%-_HXux$?dvtlz2I5-dpXgrK=u9Ud;1#JN}L+sxu|0>lgZ;&L{V zWxc;#5IU8P;Z1wa${(*HzWEw2z3Dq|hzUU#HUn=%iFyKFM;* z+UXq8)9P6FXJ=IadEA^gs>>M4Y2Ik%b+KblGD-!RDn}&<@1^08Q~4S*o)7$mOJ|G?Nb!NUknE zy|KQ}@_IRPu3!?$C}KRENW;rf+TToOE3+Eh!Nir*nOJl>5p91(0|V|yt~_Nc*3EI)-xO~9A<3Uuo|yJM zMBR?7b~yDx0>anDuvAF}`4TEQ+ft7g-v9v=RXns2xRro60Cd69W>T;TDVEmRPQZHs zwi0S}Z5%FA>2#ZpzrsFz~r{Xg8C0Cy+L9;x2; z>5iZ%qSur(pPI+g_Qa6OrqH9?xxOklJye2vUj@Zvr9Cct;5{6{%yKo^+Uh!%B-r9h zPSOBwZ`c9X7XrFe4bAV5guttA0k@tO--DYg_+uTfW5q(rvYUWAN;wEVyvhLJCb_gd%A|(P`{QdN!eR_l|H!c!$<5>8lTDr*!Unl z3BRr(6R{RHCjNMp+g^~k+Kqc6(PvN z%F;YFCqqGTLm?y65q#BU0pF8Yy8f5}Hnjdt=sTH1?2@9u!k0dQ+B;mNl{P*zNVj zuvBN{9dxu}-~RNHe@t~_j++HZ?Ir%? zN=W*Xjb4?FenqwyHdjE?%QD9*JfhA~$RBRl7mxn{F4E-(5UJ_ zBwyPc!}h6_M_I!;tPcw_LH;J3sj<{LjCh{8@XZ;nx@N2j;?p=aAH;}~u4WALwdSZ} zcH3a2Vcjy!X>~&==QD!a=~BJ@1~b%-W1?7P{9uOmzQEr8_;mGRDhpAs!9=zq=qQJ4Z4l#_j5To`?v z-ib*f&gGI7fkRnQSg;>cz9G<(FMHxE)YuWLdwF7OxFp;GiW6?gHq1b^t-d@vfN>(M z7~5hz`;0*J+WJljHhS82+#Gxk`y733t+ph(MYRLzz6hnE!zzL-M|Q2C51u_Kqt>=kdK_=S|Tw0+;$qppG%otc=g0>_QM*e+p9k4wY)4Lf( ztQX4P-x8{Jl5*iWn#1yC#MmXv!KwGiF(bE<>dICG*G_B&(Z>AYI45~o`>wwrAp>oqMyFHFRl9>RsXYYfw zSa`QRv1D+mP~8af!Z$+Rg((;^Xlsx=-uU)N3Aj*g*xwFff+c1)Ae?-_$N5x`Y%jU6 zSeYp#@ao%cxUuM2fzfb#VWY>;uTNZgg{uf zOru)9_F-#cD-ex=YuKHvFMJMXSf7ySid}o|EsGQ@NF&kV?b{j_M3NxM^LZ7vAyo`7 zObRE7PT+t)zB$MokJ7p%u(Mm&%LHmK7zFM=FxwRbBdZbQaWzwYCf|H|6-L*xPV5M= z+t(99#2kF-U`PP_;)!M|z9JXU?R;=MFJf$bU#=HU=(V$!RV1pL9{A4jZyn_vGLfZp z=bZllENG?A*mNGar!B0^tLAFjf{PUBytsh*SFyjI7Baa~9l@yEH45fOylAng7TER0 zjvqk;-u;Q&0zoqsQ6MVHIxw-s=AF%n@Pc>W79!BUI?HKuN>`+udzf(lH20B-k5ZnryWroJf*L9FG!)C4KFPWT&F|{{V5+dQnKfhqyR_ zJK0X-5m<<}qqZax+m79_6$CwyC|KN`@oa9RKAYX0qD4B%3xrUN=R_xd>M_15cNYq|QHaMlFjQ~+_2Xl{P zj529)afQ`$7!tb+D`WZ;~$ZKZqmh@{?V(Z%L~rKmmQTX%F4E|^T#P}(*%`7{e?|5 zMa)SmnTF;t!uInc%hwpbGoGI@qRk?wk;Js1q`G#oxAfm1mr|dIvS?}ZR7}Q(uq~QE z%o%|04gUa4buJy^?sK7(w6JCnh^m>vBsmt;PB41Be5kG|7+MDIcjrIw{NK%$y$8!!w(I~#Y~zAQP5E>kl6L_nnCRAPn5KK}sQ z6mO%NUP)zHc#asOlV@8(B`!oAyZPR z47=!#FrkgQUe~wR24^*`lyF3OA_Q6L>I}18yg>lCu)k)BD*sy9l_X) z5g8o0H4BnE`Qn1)3wI6D*q1SYH)gf>7uevFx@6oE%i&@`w@g&bRYIHI_s5RJ6)H%+ z{ddQVA4wz|p69Lzj@fKz@{l7^P3$r8)eAIkfH*cc?TSsUexu7CuY`Z**x^HIDynHq zH91t&Epm!}*BfFY!~)ujlX6ddQoDhP7A0&+>1=Rp_CgQJH|%i`r0rwABsSX;Q*cM< zG1ow=JX?Z1ut8w(+@0@Zifk?{dirA2a3XZ&+}`@H)9Ha>OTkbe9;0kX6RWAjJUWT# zZi63dW9`@;*kL*@C$`u+BV@mDa11(a;_HSH>10y2+jD#@ia;d_U&crczl2|VVU|`S zR!wXQUu%mC;T=I6>1&Hz4=ggHJC0|_7;buB5`7vW*{sdMUKpCd36ABohBo@+n(Dpp zd-uLN6LTyB9$582W3l~lTi*Vb z$ErXZ0rkZw&RRx`f>e>U!M*VnW4D)ZffpPx;RDfg0r#eosp!NwO zwf>gAI-}j4N3A->#aS<7(Bej>Ca?;?oDN`j7Ff-_aUn+Jg6OfI;s)QQI-oIc#D(Z> zZ%kCvv0!$!_S+NqLKt2|Kj}Bb9+`^UQ9JY`VLl+y`knks>D*({BD)0&K^|ih8xEau z866`RBn*27#8X?CMNMeHFEa}&FH&)x%vUtltf36@Y$IpcN1ns39Z2RXcdB^DFkaqv zz2O{ALYB1B+yH{1ob}ujuru~PeG?7z73}Iu406TeL zl)j)3VTl9RR@f>ED?&>nmtgFu;0I7tbhzn+iTLQiooX14ov_O`tVk1 znm-7TcOF=zu_#E($09^_0gm|3x<$-Am~70*7pbLfsM2c?0s-#F0Ozpt^13ShZS~Gt^k=?70F$T zTwCprhz9q+OXAZ!k%ZC}OlNigYWm`(EEt=T;PvT_5sWensq@Ur3JB+l31rwyDe#Xg z<9@o(Qj~yf zz*z0rj6FGJI3eSipXqE-RSK+58CLe}ao1qsLWEEltfKb8d46FOOa$?l3T`{w{`d^B zeXrshTLRB}-=M&&IX1dBm0U}gPnP@~^m4N}KZ;vmdtbgWZ%k0JLW~DxH`~u1iA}7; zk%*O4Yuuk~6sQt>yCF0#s;tOX;1F$!0NjIn;P~noIMT-5H{TZg95Sevn8cfwBe$8s zx+lZvThjiR^bN(ZVWbAl9o!RZ1GvRzI9fkN@wr1-iAoak zm4(PsPitWu71%hT`e!UJ$PF3vlc(v5+ci>dRyLCRu_Tj(LJ4&b1-*tRH9Lm2y7^md z4{j%MNN8)KlYJ-&?6)``Ovz(yE3Z$Oz!5;~Y!%B7EL+L&+}{59JWy#CO_>t6g^l~_ z2W&+%8Ns`9^!aHWaR|{=M;DYUD zwYqo4TRY4?9nn4==b83M(2xo9Cmw{~6m5iUh31))R4AvVgplUIu-gtOVrZZN^xWHE zI%1rbj#%kc>eW_4Hc)zcVU4?V^~Xg%*k;#AsolKrEoDn0j~9rW0gEdtV}Uh03;B8B zOG~a!Y|OU&t8bSDikd{UyT~3$;=TME930B%Ec?~fyGELQrx zu?lr$V#Y=!_9GsfGwvy{NVh6q>tn4W? ziJ{WQ;1g^_lC5BN#fc^Q?t5WEOIN0HrY_S7%d%Ok>1C2H^A&X} zj{cbUhO!y+TE-3^w(n(hu%MhHv#Wd>D#Czgd zCl9q@#jTU#r#-fkla*9DmLNtRjZ7jfA*8^qTeQ}w0*CRC2Gdmld`kWQr zjOi*MBOI~f>Etos1z0xwV*4eo#YMk}o$>3y>{O!1q@9Ym{c!1s(Fb4%Bmz%eSh8qF zo5l!Wdmh*^A?Csakq&B&E-ho|eQ{F_PyhkuDf^5qoa3UTCqr%F^1kB)cnvWR3TqO;P^<6IE2?9g9rI?{kP{j#)p0OZpbYJZV!# zgEZlc*C35%s(Nh&fV^_65sE2mnwFzpoo(D(t`or0xaD)-mQBr#?}vG9KB;vVzLVdn z!lfjtZp)^d_~>s>maBaMZP?z@~XR|pGDbEw+q&lFYGF=DYf z5wZYRrv30L&T>evPxBM!>yLak^EbpP)0%XXU@&|Xkc;ye3>L^XmtmCIhFcb2BvR$C zB})q=qEMkvovpqV^SpO^ljnv_PXnnTwj1s-RB%&E6FN!@56j;QhUDZ1CR6Q;jNn*; z1}&17HBfqjFYAFyLg0w5Tg#?8(3F{P#H$+@zABWhye+;fYI3R=^-{pD00WX zKA-U8P(|E}lWb5)1I5zT+Z{(U_1}$`#kLSj@rO2s85N_3GD^4?3_QItOqumejw7av zQ44ZN{@AXbT*{)TNm-#HU4o|f`t=yx)tc0(*NKgnaerJbtjx%B6hO4S?a*SCs&$B~ zD_@{udSWq^a6v*?^)|!yCDB0)?pj;3+vqWUH8GjVZ~R*kZ9>5J!lBQ%EJ5k#iRo8BB_CWtRP`es zH-z6;hrT!^Wl9$D9lBWc$FcZ`EOzUURS@+%-u-dpi)Xpo{l@t2j_k8a-rAbojwFB+ zVnxS%QnIp}G5sIwo%ijwI?g;) z9b0@_wgYQoredbex4tAKAYodthDL&uOWK{HstRjo3#5)n ztI$cT+Se*SsK-Oevq+(-Zhb7(6suK#EW9V`j;ANR(LIin&Iz}G=})>luN<#n=U&lIyjMB+l$FB@(}uhe^Eo{Bl=P?wOP zJ1(ME=rPbKvN?e?l+^OmREvWofE{G|^!wu@FsaL$SmlVM@wJ#8h&a#cBI7G9iQ1+w z8FbP142Sr4#KaDvZydksQGe@(P|ZzJfPjKvZp&g1-@YL6tYXl+#&#eUET{X7JY@Wf zD6atU4;P8Z{#lT3i>Hny(po0BauXIMOB9i1K_T_+>M`RmL2^2aohH}AY+54A4cC<; zGI|0C9-!mhoixT+viPlS$FcIq!a=7{z5JW~@Iyxu!m`0uqIKU$`Iq}+j-h%;fV&Hg z?o{GU^XVi2H~a1|Ln2m2@&yYj_3RrGdTA-h*B#=SY}fSv0Bjp3;^-B(m0S{70;C>? z6*OcXgbUl#7u6>sAN_Xh+89T z1mAVv1WF?uY)5-wwL*XrEC-)_Mn^_;<-%hl$*vA1B&_Tiq;>$_!&BCn<-79sBQwi8@qAZAc%;t?-gXpvKg7bDa)mC5J+P+XUuDIjMYV z3$WR*U=9#Q^1;xDPa-XYS20#wX&ZJY2~^7ROob5^wZ+EA(-EqWB&v76O@~|$Eb*ff z5!H$E+ZGvlfN6aob=AGkrWiyCQ6jsGg1xuEbAjR)7WczSfvruLU#9q3D1FtGd#)NR zoZ<@|iQ5(*A~wZBCNHFS#fB+Wt)!9WFz$&fEv2WLW+Euruyrsf0?Bk_xzmB;nxZ($ zMUc_r_)>*Ag|@L5!CFE%rpoA%i6Lw~ZG&TtwdrAVYk&qRjx}j5NX9*u{KI|w`wUq1 z^2Guyk?CW)@AD5kW1h%P4QwJ9%!lSw7u>P_*fMH>h$4pi0NseT-`g4aGZ|g3WFYqd zTM%lor0OomwxfYfbSD-tsGXfW1R?|Ck-A^g&jGBFqU$7))C+Fk>@YO58JF=Ht~y`0 z(-0w!kbs|FxaAPhY}2%+=H-sW`41tFl!RM>bBcGq_c-+GJ`Fvv)PvFEHmAAog6XFa zy~we*QaWHjj7bC$Z#-S_rJ~kkj9Z{5d~--PO{$p4d_=AO_^sy*z}oooC{>h#;cfNA zRwicBgH}60XX`#xW=jA79r|KZ2vq?X7{E{b!mIYd5y5f`8?fvR#yt*;_CZjF@Y$EK zI5sr|T?qBs*z!19J;)k-v1tRZOX6~$(MZGWn!hc4Bi!OEA-N!81d=RG@$eR1zSx}< zJuX>=h`uI{#`=K2r+ib&@rD}?w#3AX*xZi0V9~{l=T6vwZ9oEkhaT%4@g11h^v56` zXy2e7*zuOc+>$)8^@hWINd@i>*d9hJ+0DYRwj%*}*|k}eo9)*YmSN#5zqUO@Ni|$q zz46RHxfGP|rX!^J?TZpey@C_pV~=D)v0WRdW8WV{p|>_3et25^oJwL?F2o;PK)Bxf zVrRlE8*EiHih!Hy^8*Hen6HSbMSTlHtZ6+*Tw(Hzu1aWUfk`rJCNppd_CMPl8R=Qm zQZ#BCu?G0&vS#whpH6$E9Gg!-JWZR^B{YwhJW{l$MMQgsjE;vKn=*{7j(PIQt8!SA z{c*BvzxOOPKNU37%*&Fno zqf>%<5HQ8#F(RpA$DzIk_-0uc!yzX7ZdCp7OmQAr*5#Rn_d2Y5-x?z;Ce>*Ba{C3- zYj5X^PU~WCwf7xxG*QT;*p9pJgJWe$ijb^?ScASCP(UoYR?erQleqfh*dz%0TFk60 zMfVsXp(@JYN2jll0B_bjtCTaTJdb2UCyBL45by6sOGD20wh0c@dilBjX zv~tK*w33${a79ZuD^r4`wfb%J#g!?lmYrg=G7k_PMjFIx$iG9iHOieTZLr7OyC5i} zgXgvmri?5SlOR`OE#`3(3Oi}>gZZvIYbuF#sh7|B3yRelNt$i%Oe|_;xkfNJ{ zG@mhn$ZiE{{M9-ML;NEGOpF+kPS|4_Q3!9&kW_Y1gpYgU?pSf-7Pn74a&&WruEoLM zMS&;Zwh4vhBHLf43;0F+rvBLYLmKxzan4DBL9Zac2<;$tmQm&hOckrgQ|70RFh06xn1>kc~n$KI42$vP#62TXeOs3(PO2l#6-bnrDdW9^3Z8 zpxSya6sY$KE`ESx?}Uvuk(3U$w)im=0u(L58(89^M3V005z%`7xCw>D6s}&bZl=n6 zHVLK5QYwyWN#gSDi_x^pqV@-S+k7_46$#h1{{V*A>t}I7ejuZy6p^!Oj-eI+ z`jRnBu`oB>pX-PqVB`Qm0}P@~q+Fp39Yw((TjCB{G6?DCYL-dx)x`FFH>QqAI)5Xs609y%j8ek) z^1s^|%$tj8t0Y)!QR(M#<#i|155!l`f!`vF%}xMv;4ysB{?kwx+(=YC@jI z8pIzE9S%KG6|NT&QbKR~Vpjo6TEhajpphcvvaa})V6o~4t|1$19sqQlTCt|1V{COD zbV&k-zN`A2eak$>Dp0BFF;v>Z3nj(v;W+jX+76{*ZiL$$kQ**?o+K-KcNm9-!4Zul z4)};h=6seyHz4)IWu0S~Bx&{X!Dtt|esBHuE%Y*SHRPXW7@4cq~X zAdw}EN)@!8mlnc)2D;ch)huc`P>T`Ok3o$802Jj*px4GPEMs;-Vnz(F%<7=cV}Y`n z-X|aDp;8C9!tOeG*M{e6d0v|0%*$dxJ$=3LJd*gk@H|(^FR?Wkpvx(aVGSGTqe1yX85HqOlanSpn@RFW& zsG?ek360oUf)k{J`d=PyCG5&gEiiCR@4-GLlA<_cR0WKTNqE>3^~Dq}B#l<0Mh>HE zkMD>{L@DX-9Ioc~(tG0gDb>O<1=VZag^Hhia;h{y48^R=tXM9@gMRq%!^ueGQ_YC| zH}pPuv6J!KfE0AUV~AK33aatRefz6_vBj~mW=lk6n1D^i?`zuw#0tn2fw|jI+v|%F zg2+Q1H}8m@kN&vBaWjM!d@zMWK!4O{&=#U z8S82QrKEXe85z_Ov%x^*i66ob@T1T=y*4E7DH zq1#pmsA6U;yPNblC`koGP1-pWTnm;1t{{NNKAn3LaC`e=*wsX4O;%>L@kCAjC&o!` zg55AYhO{x{p@6V(x8KA+Of8hQwb@AZ9dLZoN@?uIEgbZ!BqZi0eFQ-v~f-gLkB#$H81jtolyI34^0s{l_E;qqu{%6Yp!rG-B0KN?%YVX$^ z&WUR64^7GIj}WMGTy@9JNZ9nYA_zAA_ydKFo}PFB zpFm*0`Z*&aEnvnkxFf0Z$CW6vuo1`#q10{D2#PZ6{H!|-@Xso9%>Zl&zf3FyfDu${ zdk}kJu2O(A7bLLTZuln{z9@+x&#F~A8!@+;!MPI~3mY5ZUUef+oYcs}ePnxJ{H>ZT z7Qb9lT@c6mnW^IxGUXKVjVDgW&lsp<48(1FUmEQ4dZ)=_i%;NQ`iEQNEFlL;OM`CM zSiKPS5&79xfd1nj7_N33`r>jXh9q>pD;u%D*7!DN@&}>BhqnDODwV&BA59=uAPw;l zT2rX(E!z$frCplsYCxVsmIbtNhLJx z+>P;c!rDpS6hC{7k9=@X*C@6?FMA9Nm}PXilzM981(e-h+o{1$4XzE3=x_r}($xqc zaqGS-Hj>%t!tX|TxL-1ZHs(-G489|y>(Po01F@hN5VYHF9*Y-Hjq^qzV z1Aoo7_@gkOrmsyEQHSz9#vr{qif$OKeE}aYJ)? zjIM)9^dSELTx2rJjxVi(rK)D4r!TrHAteX*!893OaZbG1^H-{qx|r2(=rGZYyA{&% zY5;ZlfdkhQKpAcNUwkQ%xBvq0*fo`m;u*W#CCNe6(b=YE)W;O)x zz9$+)EK5jR*B?zf1k!`w4Z(w&JQ7VC0N}8-U14tda6+7V6kO=vP zRxuwnz82;)MNODACXPi#9uue%eRkMl%39#7%56%HZa3UwQBtmpLP;`C2yiaNdlBV| z-B=QBx3&(A;bvjYE=bs)JPA_79a@dSwb!mI7VI)gtQH0TGxF zF=0B{ZLz(H^B6i>Zcgc`dj?W1fY@t7mL^C_GU{YI9>*Tf8Y_k%hqdj7Q040In@^_a z%x#LQsQGr$JaZ5?&~8RL&f{Qe0!cQV#r{*<7249Ik?e149{!j)DBQsF6<`lrt*?Q3 zZOu}|gj2Y-I`#&s1~RbsS_ws#_XnxKoR^J;qHXDhq{;0wNgT>mRbJNLV|-IH z*};k5WAfU^3u%RoyjH%~!#LLMdvx+0aJ5A(u&Qw+ff#_Kd5hti%@$n~&rvW41;`_I zK0^v4hEhh2R_(p9PGL;%qnmXr=e@8r!tS(Y<#(v6l3Nk2iMN&xpr{bcsLTb9nF>OebT+@el6APW~l)5ud3&!b_ku-x~7`H=yn5`TL%8<3J6{{Y%FS%qg2nyMveDF9ax zrYg_$IEkobHVb?C9A{viq^XhobrF$u8;w7HxcPHhnAq~6)<1>G2l`tcg37xvxPDDO zvdM6|Pk%gohe&52k?Jv=96?j0mZ5QOpcOX#aW~>f;?O3rSLtJa)2<8453xANe9Lke z9T)P%S(#i1R$=@=?e)fSxPzY{WN;%>&;xQkv2*bhYIH5`dzB*I_*Iu5*m%g$lvxz3 zF4pOaWJVB_jD)b*94?N%9xi9ZFh9Z*ueSK6T-*QxtkZa`Lh0M}!Fgc2XK|3;lUv1h zxFchHLZp;$2aQPWg!Hx9fva;RI;AJ&k)*Q|?QO73l2rgi5u^HtxAhnfaceI!1L}EJ|apDv=(5F((}N zHmioBw8xj#=C0SfLjfg!?T;%nQ_D-irAtc8n`9HwKxV2h9E>*CdkigSX zwl_R!GN%v3wKCKs$WKuP0Cw-xOmWjjNItJBXD=V0A+$Furo*o_9JXMkv9-}d$sQU zdjW%J$yO-r#eH|jjLWDLrnUb7h~voOnPe_iZRAGSH)kb5q+4V=cIk`Onx<%jDl;#h z2cwfjgHnPoY%$Ws^v9`p=r95f^z))Fuu6h16^7&67t2ipR40vKX5Cgn;XhwI5fu+G zvz6El$lCY@vb9W!5CPFhzNI8v1GW;{%&sJDQo@ShYVZ?cJjN)BHE86GQ5leGwvEX2 zIC8H~TNr@2M^oTkUzf`joQ2X<($Rvx9bv#Eb_UyEU3PO<(4rcEmeM3Z-3c3ge6Ss4 zl1C=BL=Wb+Ap7H8HbGR;Fj+L;sI|x63Mb+4H6w>+9c*^Taz{8f(5@`>2+B(e+;r1{ z<<0}JJfcYGNx?a;P4JMzDqEK(#Q7X9hL$d6mF{rsi`gkDtrL?rkgy9Hf!ln29bHqF zV5`&15{{4YE_w`TsVL}zAuLo?3-2uMf4e>WWqS1glW$bPU(nmvV6%JO4x}{kieAHp=@Cg-J6#zZS z=zXw3u%^*729S-kjfNxcwpW5e1*C@dj-7}HV#jAfU zk-v5rBf7h6+u@!>t#`5eej0Ak7}Ax9UTM_FYvhy_c;5C za!DxbSV%)^7Yusi88w82F2~Or6eILt%bIsqY7ZLb3i?eQ3J&b3SpNWALVh^RG+UEM zK<;9&`(GI_+LT<9Z*I7)nU1TSx?u26!5?;a*zYvrY{xUFFw0WWz~3}f;6@wJk-zJN zDj_Xn5l}ycu_EF)?!b_GVuLU(;R5|FiX@WJHr$=EFt55T6(21PbQeb-E1~Kb{KAEFH!iX#5PmqkEB^VP0AjO zExtNx)gxqe*&LRw^&(ZtG>W3yhS(;qqn$PB+ERe@VQb(PmTfjVSHD|gMd?(boyNYP z>)Qj|e0Yb7yDF-c%Knd371TjkM^P59QZJ8ErZ-Sh zc+HQU@ydJCImY`$Da};8!BYyUZj3E_Ca;#Jm71ODQmPVeKwCKf0IPA091$v5*i?1z1Uv( zvI?45zyh2{{{Th|imnUYd-`Ix_Qd1(7D)wcpNKnlCvUbSl<6cR;-ig7>899hYG4Qa z#5e454sg|UXm{)|G;pD)VGK82C$lKq>x<*bf{k(16~90f5rb!u%AFbmdtVeRwS)d- zWO-;d$7yyQg3Fdl+O)qi`w)DweKu59Fba=ji$wJ+(8dp#1Y-4(q(RMlALTa3Ccc5P z)uUL@3;jBbS5a7$@Q}nsZ&govRTg3on2Ydej-wLP7r$hx3G`9A*{{U=a zS*`S4uJF;&rlLY+y4Lt5LeZt zb6yIWAHRica4pG=Nd!|-xIP4RAI-K1k~E6TsxW$+HSPAoIjg28#PTryW;nKqFS(q*y}8j${X_4!E%uWRw`9VxP`%s5FMkrFXYouzV3zvC?j!d13qtGZ88v zEy_>V09IC0D_pQ<8(S8B!vWQ!5dMX&j_TpV2aBvkMTWvY!Y(QR^mm}Mx6;URqqO>vu#48@;X}%OmS1HiSEvLD`bn8qP0rSx-7cc20*ON4fX_I2P-U0j?Li!-`fjhOv186cwktewY*=~3}eaKVxg*9_PMdX z14(vrzXK7OL1@|l&8M&%pQayVQq9PgdbJS1F51}G0f4CKvfPf3;%W(Ug6vOQV*|x} zNmrYz#*^}>LAt~U0FPfhR~$T%%aKQ3NBnKX6gAaD;U*3cX}_7q0&5_^D;k2mq6AxPX>TTXprpqHkeW zQbNv*K=K&)BqLCcB0R1;;-Hc`f@C1$*rnw;E4YTP9OOGZuJbQ_|~Uihtqi0=t$y#f}-g2*+r``(xo5QY~$;t}$K%%3or0 zlTssUj!Kn2e8Z1ZDqqV{IS2TNIAtm@NAY&s6w^B@pa7F^JSu{0E=?e0plWd3xnv{P z1jEf#y7^+sCAqfa*8)pek-mj{k=N4;DDip%{wgr{#j&JcH^42sU>PcET3bkc}Wm%#kayLy4=;}1LBc7i!4jm>w(`iNHuS;{t<;On{#Rd6fB{wtIHT+JfCKV z82tg}c@5-hnwhU7okfV;oGGuNT6I$ts=)c}hjsOnIPrz$-)kG-D##*|5b?Pe>Kk*5 zLATf)3Cw8IDwhBe(*5vFDM;pYm2L>?4XkjgLgsL)bqn=uF$A>Cx>n#=k&QG)?D9aa zbgI8yjvi$Yyhs75V7A)lafNh*>k0r3e!Xz+mU!ZQGB_gLx?s1UrLd3+$ggK4*j-12 z`{326ifPejRxSVoZSn0eR*aM&`VNNzR81^w!BW;6_;2<&ns&#c>dNTEr&_zy|o5 zCptBIkS~Fwp=hSk&VY`j;?^YsfCk60#T63`P^QuU08xBXUkevNMuF1(FhxAB2s#-1 zZ;013ywU1XoACDBF8g;kst7CVA(iDvW^(8mQu6X=jwl_ZdH<3%F6jat-;_H z+L|ZJRrScMyMRT80Bb;%q8UOpL~b1PvBUhDw4`ekPSP7$V?HZk6)PEO0g@=>w|^`$ z${=-_W{N2QU(Fv-G0hx<>S2^u#m!S0Z#bh|&!qu2c^phFN$+*iB>@jGricIzuB78NS({MB zR_B;x1a&0hGflk}i%252P>A9(hzDdA!ofDE;$m2kPizNMoUFXgOgkSvu|!j}gewvh zi+~O}LYB^R-i-=WGqJHYvG0a7)p0`ub0t(hXZvF%Q6#9FNU^6*O)b7+qSs)K70=Zt$s0^e25 z`(sWuNb~(fu0=hqaqVn+hr}E{D?maQqa*pX9^O%jB+SrsT(>PH70CR$%%Z$m)3_=d%8-4M$;C>q6dctJS zGg@S~{I{Gg5y>K}9HjQlEVS-q(pWXUaVDkZjqSfp@!w;i{hehr{uyZBZlH!I?s3X^ z;yi*%$t1}t5Fz}E*WVL)zDhJRz^Sy%e4ZAt-_T+J7T7OLNzkb9u*5>Wx3Cz$>}IO$ ziuLgeSmW1yL!iDrAf2)Drk&0RPyg8pWo~41baG{3Z3<;>WN%_>3NbVwFd%PYY6?6& z3NK7$ZfA68F(5HHH#7<_Ol59obZ9alF*P?cH3~0GWo~D5Xfq%%3NK7$ZfA68ATc&M zH8CI{ARr(LFGgu>bY*fNFGg%(bY(2#qhhO)ip`2uv7J0DKLSLZ z&5d0@ZDPi*pK^JV zgQ>N-tJnW3LB(g~>gveD$mrqW!C-9f!rB4p5br11LJ01OFW? z_wN8Yz<*`~U}j+cZ@K?u|5eBu_^)JRQ&R_fM`NIuHP8}ZVQps)P?V5kaP@Sh0~iC% z{t7gSOXJTUFm;p?G{r&ez|5ILO4nRAvzr+7^zl`eA+7g=LwEt%OU!RDGgD1d;o{b4W&%(|G zVE#*FoSzSV|GSKmvGsqB@sC_-poIf~``@Si9Mk`t*!@2Op!&~pPy_yVEd_^9)tUpS z{ua3&6FZaX=MVG$XQ}@y<^P|;|Elu;Ci4G#APF}+yMMW<{^kGwaU0uP+j;#b;8V12 zuAd7a@9?<>!2cVnY5wn}l{YuDcC-J#UTIh3&qWXhTH5`0jMgp^)}H2OO4hEXR{vJZ zzwPROZJC`l&|JyE#rm(;3V{CeYW|P!bG1xuKVKa#pOXBS%lvb5{&!1pps9n|Un|DK z&H*rXb~g5c{k-H)#18Ob{@g_~bI*T?7{JH?ba4Gl0esT)16VjX!~S)n9P9u_;lE7( zMjQY}k^dr2CIF+v-{{jP_c!7KFe>~Paj^mzRsTk807kXH(PszsztLx&*58O5z^MIS z#LWp{H2xcXMwK{^zi4{sBLk+5Q859^dXC@ROVU z-|%yJ8UIoF^KHTC@OSUe*w2s2Kir=ucl_J^+1K%Ns~rA8{PPRN==5L6`dPrq&EZqw z{}S@wQJ)l@{{cVwxcmct*8OMjCm*+ez)wEz|A3z@JpM7-PXb>5g8xgorf$y8pD*u! zy<0wI{Xh6$UkY<`Pjge)*-VmF*kdDV1VLT7|y$SwV@;%KoYI>h#=T5h0#4jn- z)mcHC&iBG8BfZFLJK|J#LMudXJ}0dWU&7jwl-pl?UkwvfruW)mm!>cWCyP#m>jwy6 z@affr_I=-+d^G}X!COIp$&lwcxp5&X6`(zO^hb!FR}V z*Kx3JO>=2X=^%En8DuB|zg zMLQ2v{os#a4uubsU*9h;i*T%1#f`GQQRQcf_eA7x#8E2q)|ofX1(!2kZdGD3i2d*) zl1toXU%DD1D`u0H?Au$c8i~{k^0Im2E@U{@s8nx{XD?JH-aU;@I5WOO{Cj$b%*U=$uavF71;EQ5oepl7 zKta5?6OeJU$xjs>`EC)}vZ3xF+^~XQn>jaVzIi%41|dTFrIVEjU0~u=3Q+WeGHXMw zm=^tGAt}dZ+dEt6nJBJ>zsg0gZUg;}FSLSRuUi|GY*S1yT>ThkYX6lZC3nVCGG7@u zRDqWfiL+~6O}>zvL%cW*E5`zYRjZqmfpWW3{FRzG+9Fgd2-@@zB?=m3hi{$|eYh?z z^-2XziB&wGIE0?37KIXJ>wQWXQ3k1+0dl#&PE=+BM8>rogrd)f6Dppg7M3(nW2$ee z`(%DWY924?CW`ULD5Auor3Z-wdvct|m1;PdZ}mr@gEHU5!NhksxM?H*CcbP!W~Lv$ z(CHt1?ML<(4b4wWSsNo(mm7H@o0Ufa(2b2XHJO4VI7WguoT(?6aE4=fkh&>dH(Z`d zd~D3~1ULMylaEp$D@X{u9Oh93-A7> zgyedgP8R`sZEgE(ifr!0x|xO#(rpDb7xmSz7=!z!QMgQ-1QplvGEefk+Dt#k;@o{W zHnEcz^d9>FV9vQtBN-&DIQ$Rb$=PZ%+OiC5ve?HX)ID@qlB2Rd#^ItmB9b|su!IC& zt5k@QvXtNYSQMFNHNIDINGp+%*}WV+|7@X8!rId9#y*)dA0LT&9KwahksVv4U?I0m zHmUXwdypB!NvCsj@R$F|(vR)E;g*=57dFR1lhIC7f-umFP%-_%{cECZQ?S2KHW|~D z8vFO;!ymm%%Ust=3c(*cv6KC`FF+`@6OYcM{SLA`GX*`-mdv7w6~+67Nugp*7Ehu> zE+=9+vze+LJckqiU1kl&=wT6lq1xN$Gh(L19_@Sw?Tdb0P_CIU(+KP9)C9e zu;@FK_iX~I4BrH$t$ri99p;PJpG!bt@ia0cLNBG7LH`)`;&=$^UfBQ;NFbDjV9Np7 zRj)lLe$b!H)>P+6dOwzNA7k?mQzq_GjlFe9zgj6gH!S$m*kaXUXRw z)DWgt6_I1y=PSoNXGbd+%@Ho#e8{%rt@8QZ4M#=Vwxk6Klz>VkfsO)60}0{sQCV_G zMCs{Q!=l+2v7XNa~i`&|=d^Bq5-6Txd&{_uk%pdzo4Usra5q!S`4eEG^HPzu&YaF`#i@=T23l&t%7R=(#c8QoF@bXTjY=*;5If&^1 z&qs(7Y(w1%Esby#tf8A*<-BSHHKmU`_u#xISo2Z3M923P++gRgR!Pq-Np6@|@gdPh zw01tY&=2Oy4-4^zLKavYthiE}O2+Qf-Z<*x7=|^uMsMT@uv_mG2 z0pECi*2~9W0xOkSF%LB~c$e}!#=~b35m2iX85DE2tm!(qxGEM1gHQXug<9tF>+x?1 zkw|Pk%St?|<(s^uC3I;7#@bQYSyuIAub9kK#;g;!9G1_g&i~f?^Y&!Srp%00Gv*Jd z;NEu9C~heoD+VOG7}%Z_xR}Le0uj9vdZ52l79JGwEa1!Kc;o2DqFk0c!$lSsln1*j zh;>EDOLB6PNy}NkQzQv5S>pWx+HrV+hRMLhNhmg6^U1>OohXeLDaHy5V~@IjOZvJo zV^=_N(D(Otk4C<}PU!N_2=hOu6raf30*!R-}=?G~ z8z4z1CiLH};HBks)GPAv#6i{GmV`A}XBV#;Upq{~K*i5BTx(60Y<&20c@#iJC=74c zj5dAFY_!JZ#&F|Cd%m+w@_Zw}dr9}zd!%8S9M++|dNa=xe3&WCB?x6<7zb68S;BMj zeD3i3CcyIDJ|U*jQ^V`7aRp^Mn?#?~+aLRTsiXUK4?;GD8XOJ%Humprde4#9+bEjxleUsT)4wPDUEh22@y`6S2Uk^6q1Wihh1jx zhLW3!grF>f;j;_~G}l8ZSlB#Jf7p4$?UT*1XkMVzd8~&Ho+@&id=&1HD3;`+jgD*f z(MX``uQQeyd6h>i*TRI4BN*!^z7A{O4WONAJDK}+)Gpz}7e_rTX@@C2-@;BvfU1iZoZh@gU(U(~ zch4h9MN`%_3V`Y;3r!$NFK@Y$7w&$fW_9b9QFHcFbiL+TO#rjuYjKXWDd$#=dz;ky zt|+yfzs_x@GXf2PDc~}4`IvCfRH;I+bq9IBr!rtG8x;tAWF;CmS1%20Gfg&nfye%s zXGU_>h5FE|#zpG+psfQwui>cf+ZS@1Yi;`lY)QAwX=Go~ob81_&RtT_dk1f>fjXPu zH0ka9KORP1?k*iN(M^PW61*1Rpov9AiK2Y4OraSxzv?udUJ&jxVFBT`OdLZkU6j(y z$mpl_?yD!}GAZQv9DhNewjkM|!TYxQXEtyhJ~NE;r#8`AObmH@mAMBK{V}W)@va&T z%l&rCBIrKX0SyIqeA98a7}lo+YFtRng)?7d51YCghHdGwO#B5F`jK-_0!CZNOI6?h zDl``?z4FPLe;iJsW#pMyCV#~WirSTl82 zCMy!Qamiuc-_)~4RGrWQE0BC>_eMOA6L@e7rh`}_&bN5E8B#^G2iWK!i80{Su*kw6EHQ&r5eX09amo|(erBW-mbXsSt+1z5({eBJfAN1Xp zL7}Syrip*2YNwnYgFF$>fl5QqY44TI=HkebADR}6SGSxJzGU)?ERRX+;{~WfF+TuE zZ)V$2tPsa^mA}bZm21=Q1^KHwzk3<81LT#oC4bCM@e*=F#Ng{g{Fuhl2EmL96=Dxa zT;H6g!i9azN)Uj{?h9@n5tFhBD?r|H!EnY1@?1-W-Dl_(SeaU=uFjvd{a&?V*Uw9l zT20D#u#!=8Z5~f;F}*9{ooUoO)GS!ABW(&Iq$)*`%J%`;k$4Va?hXXuLJQ262*TIf z(WotF9k?;B6ejla>e%7Anx#e0F(oeayo5{*GMSWrUx@g_XyM1YnVNa>yJTpGMDj-} zO638ig}lr3mpLLWP4zdw*Zaoi7VZAV7z4O~xkYlD@gZWVu8Sx|sSoIp@mM0mr=}?0 z!?3!E>#qshGA-`;h;@PbYoxGb%U{ZoRw+fT1OwUA`9f5&-w4{ze%JI|2_;oxXTxL| z|7-}LM^6|2Y8v_N$j(6%v_YQgIu6Piq`8!I)o5`FsO@93YQ*Ym2j)&tWzs@qreT!Ed%LDhwx?cW>^L z0Yml-sFdTXJH2ACmaS+l_BsD1p>u!U2M&UUP1s8fjNK>VLbl4!X%axW(cbhi)`C1WnlO=eIZKJ7A_Qrd( zYsb)bzWvnUnYcLUpDY^4V*YjAX!mv5yc=%_)X42o2n^R3;^!$5#==_oVME5C!3qc7 zIb)93^ox=4Wj<=jFhZnm^+Y7H(M;Evcurxj2W}7KsWBlQe7^U-^|hRF2o|cJ&1lWR zh|o)64`Q{Qpw18Po2Zmg)F^?L1Fkb7M|!zw zis8Z+@C#WZ0f13M8F{Z!YQg#XuMwAW!8Z5b?Slq-uMsqf7z=O8qkqa2Oe{iaS39~k zLUJ5PU}Ba_)nPikr*ABeEys;_W8>W#B=V-y`TEebp1syv%70FQJ=1i64O`xSunB6h z==a96l}Tlc7i2D8XBhNMImwwj)McfqpWXPwKNKe>PH_sHQV$m0q)P$gbHLilDup>o zj(o(vsqitfxW35`4BbAt?3Dz(*m6s2-6mQT{>YjJ-~O0JF3}P{EloupW;p&s z+&$GtLL;-P%8A&$qD@#0jeiJvVY7-rKryo{d?*7?Td^PhtF;{(bp@6GE>$6akBq~; zP8C;88zq8t6}w9A`v==Z>G^?RCdee^{pmyB(^m;BGYv_(1v=UTOc#uwlJ7-Z28=B~ zoErKdM(#naq6d(EK0WCW{`3wJ`{61C&-!4Fnvt1%D8D2mU_;HPX=Su4-w`hGu~;zj z;s3{c>r6vTX5ROETbmY=-*l;{bL24ApxUtT@FAQ9_8VAQVPdk9A1`Di$!v%0{VeH3 zf?8fPqQt|q-U060gTY)9H~}s=9B(>Ix9_nEKuoVc2tmqij^jgl;B6|6GFzE-*o4=U zv?Z2^^@d1wjHlej1m$d%yv0=};R~a{Xujgdc@}}Q#ztT-j;DT2D^!O7_4Y+>PosW- zUG@_=yF(YU?m_;P1TQk30!0}mn)Q!Jy;=q39_eeTx$)a6qHaMoo-?5(i3_X)g%7wd zs#-nkOtpMJsoSl#G#8)(JJ~E+CB&Mo;#L`!>eaxg4OAhg=?O!D9)53haN#-%E#eqc zqM*0c4{+LWF)EPejo!U;_m`|4GkUO1ORi_{@7jOZjpDE*{0%cbdt!pY)pLBKD76wB zhr&W6g^<)2kU6B`^oY_!4%Y4kUU^0|3}3)T1m;V)X{4F_FlQU}NPLzspf6a}SG)(W zM%;EKvMj*ImWx8~ls3yosm0^NxsZZh)r+&9J*cZLEzu%>V>r$6Y?;}R7PnTfVT4jdT7V`vH zl+W9Dl=cdJxFD1RoWa+KdV-i;4Ut^k{u3!heJ|X!+{dVoL zVV)k$6h3f%kHo0zp00Yw8Iy7ErIRJ{1%On(;tcdYr{|&0^I(rKs^L;c`jJ;C{^hwP&pQshKhH3znrRDJ9Mx ztZKqD?On|g`Z|dbRB`!)Mg5Fnk%;YFGE@-#D;9D-<<|Xe|9x;PgFl2jM`NcoUkisw zSB8AdN*q0=LkK{upRJFH9H6~NI&M*Tb8r1+D%4&|v#R@9A zrI8Pc4n=R8iX7z(W`ln!afOHv7QY_~8{k%99mv8}t%)}ClDn>rErhl+Lhh^5wrKVs z=(eEc0}xK&Z6~BeNKIy$V2S)CpWwuKW6KGL(;*bT&q#D&bl>ipIXpgD4Tvpyfr>Uu zu_^<%_h82YcIn0tt#mO(DG*?q2692HbA8|6Z_JMxT=>}~aYg%oy70Ern!yk-hYjCp z7eH#G@-mjpKuX~o%$YV1+gl|Ef(2gis)M^D4&v)bR{rVCJDB*X*nRXAVfw0Ja|m4p z7_D;EhU1?>)Sz7LXC5QGHE*yVu~4sypGmVwaH{RNl7`{pU*2Z%9_Jz$P^aArDaz4n`skh za@)f`i>1+fGQ*=>24Bn0)0kB>RPZJizgY5+!HfL`fo!wu8h57$TX3|UQNjF<5>HG2 zu2Y2YXc`W+KQZz*m%`%$&-}vSar?{`Dag89RQ;$1p3nEVyzqmZB@A}qeTC2=W_C0l z{E$J-q^hTw0`1h3;~pLT#UMBmqOE4!*RB~{#PUMdN?n#hB)W-jqSZ;>-6m`C-&{V1fzG4QZ>`RqvH{C5RLh!Q)+p#jX5t`USsT4m0@M&%-)tC4r(- zWqRkA3R|>tm9<(z6%x-@`i@oTIo^NP3Psh-DPZPXn=#gnBD)W(ozG@I3cT zbXWrva^O*iP=%+k$ViW^LQBTx?TN|Vt)*uzRAx1iXX45e)PjxcVWV0unrgLp1}$Dh zV-RT7ROEa4q}--7P67G~shgY(O>^19OOFxJ(r;;q52@{lZuw^yIp-N(aP3>rd=AdZ zBb3J6B#i4)2Bp~&DCOs+c{$AwA8s**=;2bdRso0nnCK^cyK?ZQv1uGXhX>9JUYSRN zqOX4j@b!l6a)MLX&=GdFFXpAZEO9C0nh#jEaKhn*4NV(_Z%8(;FZn{nCv19GH7szX9v4 zg02fa!cnu+ul4q#Ct+0FmNK=CA@Rm&NQi?(FO=)*MS6es(C=zx4We9NLEnW#I7z6K zMRve~{yT>a3$aT1f^{$8QiFY#sXdpw3W`|F=a3-C5Y2gryST=XKt5!sNy?j)(aqHV z3mnEZ*t?Lq$1)ebjRSZ#UcZ0pNToMw;~X0aal$CV#(Zil%VM?7FVmqGNH#AI%u!#9 za;@J?>HON5b8q_+m$^FQ{uwwFbc}?ZwnWW2y0m3oe#RUFwq?M8>kg5ZyYMu?L%G7k z9O&KZ+s-O8Q@HOE4!EI8k9ko7KwSc!`PZAqHK`U<$L^pVJN2WB93qSZc4;@1cI1{F zWr6_zHEcpoc$ivx$d?9vQpJri25jQU$bj^mwQQkYu%A~Lg2rft2}X^vWN?3ugeL== z2CXGJuh%a{YNKXyk5i+5Mfrb>dt;$(c+WTSLdPS_%)MN(z=s$LHv6qI^V^8^4fftw z8))->4R`!qEI-}vUe%a(Y8PZeADM#naaSgJp1w=;CLxapDxkj{6w8i@tl5n~YK+Po z%ETgB5I9eR<4Qjw)L#bEUqik= zXf(bOG@r-Gr$?GRB5m14xWHc{Q%o}P*QoYh#fT4E*61vjmUglK3@?^RexF6Jl}m-D zbmwF-RWGfhVCVV)tMsmLVTf+8IYs5S-5F=_Di#9ScP=+u7F?=lK|C+P=w+L$34R;? z>*uDBNadL-$nVPhMZNnAe`9R{RsIV<=NlO_cfrj@&4LjW#_}UEIIWWE`0{FaV$l*+ zcg2gj#?m?a`);Tvoxo1GZx=5XnWyyW_e`P7J22z6%_Zo?N!_*4Wgr2HKVBhf89*pn z;yw4?>s`D}Sav-H1aW`AZF7d^Ld2quO5TO?z;X`iMee#5P1eTm}z?5~xxw z%s^gc06z#8L=6W^dt31=84LJx!}LH1-S_`=5BR?H#(j)vm_a)?B;q_H@8jB|kh$eO-hIQEp|zQ)rAOg&ud274yQMnCrK_f@RVO zWSm+mdNW^b6k~O6@xBc_Cs`JM7R@H6>!lNumxu*j>Hf07Qfb`T#IfF7D-QpJo+Ysk zxEj&^R^2aiy087sB#RQ8bJT?>l4a_6?U=5wP_WYKl~S^sxPylokD!zfx}9B8v~+x_ zIeQ7J@QoxbMhphSnHvisDF0NK%(}@|*l2}~7QKsDaa7WlL2PQqi=m6?XcPAkfWgz+qg zdV0{qZlR}TYRm-bwu1lq!DC(-5>Il3{_Rp&Hunk}+jkR?l4n*bPGq%l(yTjgfvkX< z59fjx-+z?>lin({SdWNSixM|o5H%m$=gnK6Tc?bu9qEMWsT`0(B-J<6SXEIf9R=&By?5|sJRAb^$V|T5cS%uxSl0GH=Y*@l# z50P=#f@=WeiF_4+x~Hk^>PikIJEfyi75kg3advjvj6ee7X?+-80A|gXJm5p)ux%Q` zd*eHg9no(mbgXuaol|pY!Ma709ox2T+qP}nwrx8*wr$&XvSZskdAYahR-K3Yu>L{U z>h9U|8v~+fuDdng#boEIBT;?eJYh4NC4?6G0)!`k|5!LSw!7VTcOgW!@jH4W_}R=v+ZzH7i+;-uu!mZb%O(_2^FPVN*3{#Lu+S5>F6D-X$>nyEQ&slDdOKgU)$$Sz=fPfV@o-cf+g20Tf~Y$^$egn z(=ZWbIL>SEJ03`xqrHpXG4LSBZMSjb$wsqP73MAO45fKhU~M_Fm&Cv|vohF*`@$Al z{&<*jbm#^l))|yd?mdg~diyws;E`q@bv&XY=~Xsq{E;5ibDd-MI*S!9#iSH}P$>kM zQmtxG20<{^VRQQ?FMIW*zJRq*{X63wi(9s4Xvt`J5yB%W3|TY^_#aiWdTNk7sy{|u z`51xJd?Y!a_~a=eQi^I>^nn?p7FH3|FyMO zh>P&Pi(<`NN670;q}?upA}XdWQ571MPEA<-8%446O(NH+<)E0|WZB1!Ru2G~z~1=J zJDBN)5JZSlhiZ;IO?UxHdXh62#Dzb_#}E#LwwulVio2^9LB*0NBva`YR?r(a1=aKc zcVi_z=fldTz^Dc;jM6M5*IA%$!Cn?l;gxILWfV_59d7V+d~?W`En6on|52ZjP@&9z1x7;Trp4kpui?Ej|F7j8| z+nxN#UrU7anXyl`+v;-{vsk*AhJ4jb1n5Mi00_@~7biqXq?ZXlRqI8tH0NZPT5fB! znNj*rWKcT7YHAKK&w-y6^WD#fbwf+21OIe2Xtf<4h;f!b;%BbP zQhp3CS&PhoBXJC}|I|-fNzF-q=$~Cw%(S{~D)M$OrsvTTq>8zik~!Kh135k5l%$1# zuX9THg4X$fyK@#SozZ>oOt_^Eos=LZchpj?rPsT;A|Bvt-)41fI%l0;!F%d0R^=-v z=0LE^r)SFrY_Zb<2`)RIbIb`hQ0_dsSzsjaj{*c$LzVoL0EGsAVkwl3@2 z3g~;u*W96E#zu$izd)fe&lg6QhXr|##0Gq`I!&Z8(D_;_cf^Gyrfzc$tWuzXa61}5 zY}xuofL*hghZp z`NaHsHzRKD%sN%pwt*=i%vA+?LZ|bl`yiFw{l}=Vj{`)d_Pmg%7Y-w(jlNx^I)$t5 ziBcgFEu10uh)fB@?hQOX2V`Fr!Xo62rH_c}l}P^T@|LdC4B-+mD_0$h#n0d2p0Dj! zfcdj|9)MBqnJgy3jCGhr9;Tb(F7=tIi%R8sH<%2FxmMFvLP|Hx3ih2&CZH|8E_;$* zaQw#@5c8j_8y|eCZfOTGJZ;+tLjxNtPLsf>(dKIQ4(qV-?xWbto0wAt>uG0@49WEJlOOwpK*t1{T%IHZb>h!Wcpn_Vnm)urS~j$Qbs$rJaLy?*Kl74 zlPs>?*lXD)C=`h3fb-MHfBa(AjHiA-1laZQ^W)Jv{v=Ub48o#dW1b%d&dl$C2B%iU zcpykQNN*M66vcr)XVVc|^cD!mOH&p2J< zgs$nl{o2EEU6!I}%{*H&7kpf4UrQ^;wPoiYv2F@~{sm$dQL=aurzkULuW$_|Z1;V> zq@*Je!^GrmjjaxyM($u@XE8y388BK)40Q$%&l0%CYy8Ibx2OlDoqcd8{Ppv22pS~c z_()_n*PhqQXIwzT@g&4qM1ECs$kQ2=;T=qMkVw=NIC0Gpw_5ZA1za_>fTnf4@1nDn zeEN#Jg}*h>>jg4gO(jf9(w&aCCSY3q^Dm-^$MvA>=y0+ZXs|u7OAO7R{ro>OA_Uj5 zR<3t~(RV|Hplo zu2!@aCJyKPhSV9e4Rjbt8OXZ31`K+C24buU9Vkb&Z>k;f zqNclQRBL%@aJtis*B;U9;H%bu-$e_cLtfG1vB-#+Pwf84UdX=o!p^A=K@ zn*BsK6=-wRNy{OCF**2Y$I+P0H5`sPbTOIxTT~t%8un@t?bT^ER-+zy6RfJPK zsq-+b6yAT+(VlCuio{C3;@siO5T-DZ&Ol2A%5C)L&u$do{A5JGEBgs*Z$Hj7=-Jd? zJ@*6`8_JS3RL-#$m^k%|UvZs%p)~s1de&Ma?95FFm5n6;UcVw$O++75r|C7+P%n1MGAB5Lr+-Tse>(R@xw_jP@#=@J{x7&g_Sw5OfCn z`%cxqcr}K3`f^h_C#xSlnxPsnStOC;GYkIxtif`QD*efvU85$lYzRCCywJivb(Z8I zAFP*XXUT1AtAjd&$vZk6+Rmot``0l+ap&rqjXw0$(0nJ0EBb0nbq46~kL;a2*4_`fAWy@DL$C0e!<8oY^ zbct%qyl_fwV}jr+`KfK*FlP`SiMGsp{;L~`^EQ%Kbse>!Lp7~=H<|?(v2917^B&xA zi%{8jac4y{hspNuqIntO?W~IYeYOB~pXbP9qo89Qsa`n^(S)$H@Mt8E^1B;nwW}4d zGW^8Uwc8oBy1nAEUz(tu_6OZaueiSWiv>W%;9rQ^v3vh6y?UcN4{R2y`b6 z3Tw`3zpcHKb31`+_SulNHKII^vJTnu+_4(Nr1M$8z&B~DT`_1w2!W8>_@YFB7K}w> zDK4FD-06?SuJR&I9rK}7Lz>7-!9`>CEbd&L6k;7!Q_I3ZU0&G{2lUXkTr>~rE;9Sg z$hF$u@t<_a0iOpZ^$)lBue#3@^ZkwH!%>2lfxWZV_U>M5Hm6h#kG ztb@9Q*=x2ktWl039PA@`@OIe^M;s)B^B_EJ%#kAQ6{O07sHR!hBg~e~x3Rz({fhUr z1mWEyFfnA*V9f^>yC2{T`hXCu1Mw4os1KbrFBfPS6tYnT?GwBa(GhBTVG$o2x&&Ot zxXAc~jzbIJnh{-b2;nD@t{5Dgw5eiht>$D!FEHR3tigzAx|jsUK?_}E$ix?y3mOru zZ)I7nBrBx8bgD&feZonaZx9hF%l9FxYx$`#v9{LzMIARSX}sw|ah=DV>drsCK@vYD zf9;;A3X+hd%~&{y?16pdqok*aD2oH&jf}LwuD$XDn` zQ*o7hrN_wbpWuBJxnzPia_&9sxE?r|BPTB=p0K^u!z@x1$XjWL#|&9eMHx%PyrHgb zcDr4nxm8*^x>FrR?@-ZNe%81Tp?)+2B^(>8+~F=afH@#6VES+5e{<> ztx|H%%U-*)S$hi$M>>&XMH;>9Cn6apL6oz9Z@VQAkr}T%lK6BfTqxUNwD$H+p$k^2 z&C89T^YsF3QNI&1rTB6bmUFAsE!FFy=@=_!oxNT7{cP6@3>o85XM@URWeZx;pAuM=~b}zPo{dY7-9!bq@->+0}G^a?sjN6!-fW+!t+f^E6?9I{f$20doALnv?q3r7%wr}cw(I8jO2uYN+VYlQgz zwR0iPQJ^@v@oXCUT6aTkw>9uofUDRw^t7k~ps>LBw|I^Y_AdRx^PQUD`;#Il4*b|T zZ7c!wcuSnE7nk!Kw1fiKeqHPACza4sW@#@Adeus3x4uik8l<`z14RKLj#D%_`oW{T z%MUEu$LURQWm~mz8;Z+>7x{Urayv%3l0zg_Z-Z=yVHcb?5lpi60xq4FQh?mBL z->K*XxPUzwZZasaJ#wNmLq}B?&h2~7--%HuH+zuW%fpxu&XGY^7EivFO$hc$McE^a zX60`M4&3y@cSlP&%W`6DtvaUTYRL7s<&%YK0j4vGbTzw(6%!r0qg(LYmP~ZLq}C&q zdUN9~@%J8`7pcE+FsyLz!0g63Q0^kgryu(5?uO=kWbgNK?Il8!F@3z~Ew5X6$OaLysQYBFhyfuWMip-MwKxlLW>!)sx zpo#dbJ|W&~=m&}$A}@W$GH(Q)FIK@9GOHlLT_e;g9vnrL7WJc6L=^Oy`&c@_Fx_T` z)EzKR;C>)c z9Y62I93j}_XL%ZcuUs-*W~LP`pcQc298gz+?_ubK+p~c?FHr?!u}#(wtI>3i*Eogz zO~GsJ@nM^#RX~Op^^a|0MNcOVaLb*^fJ`r?QnXwcK>wV$ZB-E}x9hEX^daVjjya<^dJyV-;hn?nGNM zIJGI5#!3*NtJ*X}B*{>dlA?stLIndz7mu>UC15)#)N~-06_d7X6W;8jFOAU2T?;wf zPa76yI7rz$=u@*@J>Edj~v6v^q1reX0lATTR7KY@tbhRiRu<>B z3$j*#u<@}@SiOXemV;6d279OQvG^F_e>D5_cbM5)-X6?DnK(bzdri6OS$#vwBt`CZ zIHGU7%0JM`Jq>|6J1A3o)X9Dr*(MahW;uW`U6Zj&;a@kY)=yu(dM~uR4isK>)k7ej ziEgI2x@H~OinkJybxld5ZnuoliHn`aa8U>TcLgsWmvJNILvhz6PGsSeM39+S#`DG^ zU9!zCP|!XWy~-wT%lT!qND&>Q6MGg3mt0AF$k>P57UF#yztavd@R*)mD)1Tg#rOs( z=lp>_rg)=wt$Wf)Eatqea`Xb`3A#ljO8xi)u>e5xgJF@p){;h9cF`&jd`zJpIL=%i z0rl<0GUkbH{Gtdj*{UTVnF}KtGmNhF{JKnBO59(oP`g_{C(_v)l?-a?RI;ep90UT3 zBWU#?^g*K8s=1=>F8fVr!?Y!lV)Um(iX|iNhW-TVdyw88q#}fQkiMKOg12w0%*qw5 z%C?7rH^j3S!#w}cx;V3QHW}qN5iq;Ng>?KW(-AebI-W*qtv+7-Yln=L@r;#=YG6)z zGRO*wgu!|+tW=omQ_y)+F#RwG5Bgr;6nu2lmt4qU3^sGXgH8Qka22fo4OhX+_`gt! zUt9$}Jp;r4Fe?5Ju7ZJ{jp_f1tB7d=kO{&0#k4ANfVzgq z=eJMew}+FphoSA?CYkI1myprUHt-TArE>9U|?!y zfCL~;S^faDw#KgU`^j6FGYi0T?d2&dW7_05LV;i6-_ms#G0h?0QztQoaA#2j-~im$ zxB|G!0&v9vaMc1}VfhEe#QgAu>YD-jCzoT5{mCEt6A#7(pd)WV+#j1egHL5O=9Kz_ z4d{IQ2;l1Lt6Rdi1-SprZx-KP4#Yo>YzWijH)C#V2{s3i732>;`vWOJW(*U+4q4aG z(b?IUzR_9dpHnS-ngMW)AI`#$bNa{G6-X1nw-rjBwHfSt9vzAjhJO+B@V-Q-087V^C!f$Q;IPHda1CDY(1?Fz2U5)oUpr(q8R6z?#O|59~|Y%MCw% z7+MRX_k3eeQ37@hZni3m6!2TuV7& z)$P`X2}H$cKjzO?Nx?stfVZZ{hhX$h_KkpR>+Bu?U9(`jKd}Xtknfd{Eq>ld*wp<1 z-+WO%xeI=ft{)fAXWyE?+lb$&A}AjdDtP`!*xt=r+xk=<-{sFN^UvVXPuzBI;in$> zckk0!+s69W-{Ozz?;mrSD*@MBzq7ozb4ZWl9>iAj5ge{O%&3jFZ)r#$61rJ5(N{!4yXew8|?)0dz>`le<^A9&jjsu`QS ze3-Pe-k(As-nyATvJ_YPur06MI@nv>07_uCIRMjm?1SyS$=#!-9NcIr329`1bs!SGShmIOq@IzWLyO_+H~mp}`*kG7D*^ z0;fTOY%Bw{YAc5%wlZ2rgG!BefonK_5alp0M|3xmOM)V4 z68YTmSXT+cd}NfZ+8^54V%752Yz1N*V&f*g0)@_<|BymBSJ{Ba7(W_700EZWu+f6f=gp%DaW=GlF(sEU{}@7_~=qnb@>BwPku|ND2Ky4x*&y-6YS6 zM-V4nQjlry$2^%KkmHRE>58f8^%~FY3seH<3a~M|72Bey8|$r(i2(g};_vpYh?RV7 z`xsnG6?!TdjJ>W>5htsAn>wj&6vffr$gJ`Jn7WW7meDm3t_vqS{^Xoy zx37cTUzZkwjNauPB7h@obx6R*oubn@sf{9Qea+2>m7IPmw!dgG z7Rl#7qQ9>2;W7NX^d#ofL8qZ)>KJo!C(4sJMFu4Lqi0WRkj!Tg@g^Ex$g@N3OBJA8 zh&>*Kk0cP>yzc5U+GJx?r_-FhaNNa(Zx8|AaBSt@C?1k$xYvf%YZGk}9qR3!8%EVq z8|K~R{}N?b_cn9%G0EVl)?3U0ykgHwg5ORIR_OLw1%`miBD9?#_itOVjK;^*C}rtN z;Rm0y^w9WlRJ{6-Ra=pm;^kjf#U${GH>*PDV-cH1 z2EKMjO9MbpVuBQf^NQhh(u)^i#J#^Jj#CKbX>PL7kcS)1t6zDyq_ork_|CuWQs1gg z-k&1E5@)qcx_4S1^oUqt1iC*42Ts4WB**5^@^-MK@Kja!R^#unFvv z(UcIZareH?oF>Gz5>gk61sBnbmOUd8HEVL9bINdwg<)H9(4Z))6Nj=*qRQZ%_{}JC5*7%fTzaQ=*0HwZy>RwuMS}tKT4t zrWcaIM!+B$lS0K)ogT4B$JxGlL6=HnrZ*JLb=*G8zQR;U-^7`RfNglnLB=!S z4n6M5grlmhJ>;6m+Ek;1u%@_vpjdG5Zv0cIiW{m*M>_gOqLu8Zz(<5EgkjmRK5YFk zg{ZZmpD3uKRBA%(TnLb9ZHK*cWEP9(*BB^n#~1tG?xPTtwE zf!JKc?UJXSuruaeJWFp1x?O%6al_PUW7KJrCE|B(FC5aB{N}+=@hz2QFA++Ov+S6G z_26ooF+B|UWBO9bxLD*bfkRm6Vwy>gLah9pvcM#aSK~1L+AFg;uY0~%Bh$~H`^3|~ z!7M1f^DrZX#L5^sJ>^^Ak;eo&&;6-Yer@ga86`vv+v=c$GUtq>G-v*rgfnLrET4Ie z)Ud`{IF0=v<#~#6g02cI$W%HDNeZ}FJj+YhLL+RG>uMulTlLNLX|>k(7K4qbho-(B z<0U?M{&OLzR%m_VS~OE4E3r(5{Fti$MWM8f{pJFn7%X8Iad_e!_sr4+Y2D;{xZzI* zj|O&TZ5UuvUZ9BHf~5xc$MGoIJp%b>F?{dls})5D1eDdcL&>Uweh5U(&5a0`bAYJ( z;)h2~seO1=f;{~YFmQYq zL2S`_)RYP=KiN?B5lKkaj1#g)#GTS8Mr#mGyA3?3%(|9?fPcN@;ik|(5Tei4`9ov# zB!AV*TRP)+p^Lmh!QsjHVGq7GK`dA2<|;^2+1;fg?|Tv%Wo{TXQz1g&P$q07yAn@7 z&a2QHnof?xN)hQOTNj+&z;O!nQnM$RDB81F3KyIK{%z(I0lcWEce><|V(u&s8Dt2Z z1VWC8lgzLiG_CxE&XnVaKU)Dong0GU8AzHPwoM3}JgBOIWxio8a>~d=wXeeYbZQii zgI-IW%U`CC&6Kk%rdxPP*=$XZ4_R9e$&{M07Q8{v&F%LrvqyNDl|IRz1_VQP%-;ib zxIYGGK=+XUAa|p04#)eE1lLsrvXlgpDm9ItjUNM%PTEUksE0_TYDJ!9u2}{%W3CC+7#PvHf^i35aUDfTQ)Qknkhcb#W#c}cG+!4F`9h6MG$gqA}qx^emUIU=h&z1i? z8=2a--df5R5m8Fw!!H1b^qxglF|}7xMY(5+IaLl=s%O7_1YV4tE}`KEo_kE^x+{LN z9HY%K$e^}vn>5m_J?MzAlkQ^~jt#&&;bh&6!=+?g_TX4ir~6aBU3B4lEH{s4+is0F zbxuYnj(uC%EXReLQJ}ZS{4$x~&_lZVT&3bbVpv7?U8B%NwK(63ZzKs-{7wg7B|DN1j78IeTU#Q#f zRx*6*TR?P&PA9K{u9)xy>gLTYxL444+5Pr|mNOtQrG>xTW)PJV$9~LfhHun~&m9$aZx2EHn?P_o20dr}Fti*gH~>_-4=Oyer00 z(A_(LJgyE@1l3vXaYQR0nsGg8Su-*)x1v*$Ezt=^lk}!p&9T0&eEZw&8uVNhZ!+~P zoAUcZre{zSJ>4VYf6Yf(TigeK3`;`O#*hzk_->F=>inIDDD==pJf4!odzBik<13|x zvwyH;`>($b;O-y>HO{#v;5ozK2+P!yi_=eq%7!S_<@99ihm;EX=y;|;<%$_-$rcw> zP7jUJvS_XFgU0NV0zayMZ_()jXkm5NE|{MOFrgOC1!dNVZ!?qYty`;yb@ zObiMp@Pnjm)qWV+Tni}QcS+*Z8{7<;U4+KaGzn5m62?@K`{r3}Uol1R?4B|FWd|2- z&S*1s&6P*+q36{cVnLBq^=nDdL8#%5wF-l#oF##DU`vGBQ(Kzy1jPT4b~U}qM7ZUG z;WF5~U5R?dUE=A+C6jr4aXhx!rzSSKo4atr%~=fiyn^s6=7q?e3IzjcwvYO_mOCAb znlZ7;Q{462>$2HaDPtm@wh#Vp_0%0{d7bVzIarb#)++~eoDrODJyi@=)-Z%({IgejN3oiWq8<@{yANpH6qlI@Ng)DSbTp*oTBEduL;eHIwo#v!F!rqx<_c0FU zU1c@}Nfj;U(g4dpR-jyo<#{b@!-vbymHq}}hqcsBi?*)3iQR>WgUmE7?*M*sF@rp! zHZj=DwCqy0Kf03#Ox<#pH!YqCg-1}JJQ@FpHMF;6(WDKJ@s%Az`?jBT4NBscw8M47 zHq%@BOM_3ey*5hz26tV*h&M{$RB6MPEm4jh8)GO+=juH0({rx5^WU$iHUI77Bj{vAMo&y_s068bw=#jVJL@96hbGF*mV=CR`#0$ zMfW>UPPkv;*3agw1G{;mm51f?ok|yzIwn;yp^HWvI>yyZxA`~5X6X8hS$R3uxV znwHBNU=KmOdb%iaf{%t=_cPSyVB{M=xtZ_xebpg4h0ETb7r%H@Et7^{e)Z4RZ}JN* zee3|{SW)u6`U=u;)N+WbfuQcq-Tuiu2ESSY@hzt<6)a&E-+H-;mmv`?3X(bVzk*Pk z6huWMwwLIpzsOQDVuTg3PSSStTI0YE^%3l$mTn!4mkG(aL(Y*NTp0HIelsQEzyumu zh$QCwPaSDy!q$xBoc>5zBv+}>>7MYGK@e0O-7a7IJFDD z+1A^1Adn!w4NyycH(jkz7jb{0(pmXQ&Zjtc4!zZR z4Xzd6)0y}AkNl$o{BPfCOg`;cCHriu70a)Mkn;DB8CPHhQ#H%gI3p+)w8tFPP5XvI zcq5n*{8{p~;EIBHCxjc1L?*{_L2eM)S6x#@x-GUu0=(G4jQweHaXzC7&2x%KxmO-` zkgFNQ2Am)Ldg-Vmd;iR!i~`E4)OM;IuyVmH-?vM!O|=GxT6{P=xxgbj953U-S&|FP z{+b>0QDb(HxQfdj;6^%r;igRV799^{vzGV1l>`DXdE(9K52zk^B`-3+DUZ%3(@1ja z*yfJLQTK%%!*1tn=B++dG~?Z5$}{voBIOgU2bj>0h7;ZhTaSr8eCZ1jTYp!dk}R|b zY!V%+7fk)+u3zRtNO{Qi{OevH0-)O%e5U`yaFO&|)5aEYV07d8L+(WPX z9`)%beeXN9Vv?TphBl$V9XuUt#Bzl@Xpaio%xlHg8pk-fXnRH>kh?^x>dLlU0%_Wn zOHx}YMY>$%o!9SE?H8~Zn>QBAVu{^M$zaT8hFnjiD9G1dGDK8SMs>dA= z`C)=jPF?^qi7+bUJiH`S2g7_&o|NAz7$zGA+e#!%9O-7|(Z=Kz|L${hlKGF!XfM96 zAZICxu2!LB94OUBLKnj8CrPu+Ak^w5>B5E1Fw1{P06wuu8@NRI4hUb1Pvxk)zdCkC z@|#YlIyEa?#`-HF^h!~@8;L&$C#lm1DGyZdkQrJ3P!OPVFd>XP<@ZZiH?F-H3T5&) z6a>5wD?@fE9A+$nwR!=av)*B}VDFz1ZZ;JOh_Xz2)h>0D2Gi(?UXm^9X|0FTk@ehx zGbPD4!&hukGiOGdWES+jr(Uo&+VI7Z$|2}Y<0~snS116n&B2gWF%R5SN}1jYS=JuM+RFrdZle;g7b0ihGCyb8>j_)F-C@D z$r^m2`bh>Oa4?4_R1Q0dRss8gFfcuL4oyV_;Cd)sh@D2!8BdYE&=n>T@{Z)ijVK|b zGJSZ5R#;JSJapCN`&uA5sT}J963={V;yOu-4H^#IUyy+oF(E7mpL+N4aa-M}>0|?a zw6Fk7_FL_P$@4f}@uUpKe4*|{N}_BX2$CmwwRT2Q1v&n(l+Z+nc^I3XC%Jw*qy3<* z+miKA#`Xu^rDdOZ81ebdyv-Kr9fQ;Zn->uvNO1c!z z+I?(at^=w17^{|Ot(S9*A(S*ILAod5U1Vp}_PQP zz`6djA1+3C2u|`Gkso&B!OkGJ2XhakyQWXm5S7Mesem_TJyY@LkP5 zR8P1zl$D+466dQBg70i}ri8p^F%|HPODP2A`p+wLXEcrvvOfh&SpOj7%LQtSp zV8_^Mp+FCrmLa|*(BWOr~dUa8){EbV1FjV#WljOo2p&SaWV z>U5=R=V*Fty}3shC7NPKP-nGbUBL4;Kc0K)4Qpp;)v$p={4M2BNj)7#li4tdz&5u- zO}Ck=C8DAw!nEgtXdSk*<3DzOn917;iaua!J4|aWaIyDkV{EhK!4jgzm*1Aqz=p9` z=D;H*WqS5siYxH4NOHDL8OUl8ce{36lTzWP&q&Mu>S{rxH)A9bG;>k03DG^(*)Bo@ zWGPDbrC7TXQgw?;`FLSsu0QPTPD-SarsYCPn9DOkAD<|0z?e;0v)e%?q*_~d&x~d-z&%?ez%DfA>kl?jhj(E!rV4{L{$ z#-;-Gbl;d2c$IbEEPAs!JdeZ%TC^)E0ikI7_n2#kru{F9o#KZkZ+x6_xv_bJ^pRX^%AQIpri3IeUy^MM(# zrFLJm?KPmwauti7o`UbAIg(C?#WQ0$b6l6-;Dh;=N**ckzRn14%zmELLtmPYo-*t^ zG2py(E=kQMj~~V6GL8|3rfm>J1t_qB+AI>9G8CFa2pu)Ys70|JwashZk8q=s0m8gD z5ZK1MM-GV&i&Sh#i{recJaD35jCoG@1l~4TmXr-RRVj(GVXQ9y8+*FAi{E{B1XRWh z;g(H#PV(6-UrCQK|Gd85g>*z`VsI1#4pMFh_(){ATP!a4)80~W+BByH`ud*8Q3Ux% zce`wO{ey!n(*6)Uh((ZmlB&|Sgfzf9MJk4NzaGF)°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 Date: Sat, 9 Apr 2022 11:04:36 +0200 Subject: [PATCH 083/145] DOC: PyPDF2 history, comparisons, and formatting fixes (#673) --- PyPDF2/merger.py | 51 +++++++++++++++-------- PyPDF2/pagerange.py | 13 +++--- PyPDF2/pdf.py | 84 +++++++++++++++++++++++++------------- docs/index.rst | 11 ++++- docs/modules/PageRange.rst | 7 ++++ docs/user/comparisons.rst | 39 ++++++++++++++++++ docs/user/faq.rst | 32 +++++++++++++++ docs/user/history.rst | 34 +++++++++++++++ 8 files changed, 219 insertions(+), 52 deletions(-) create mode 100644 docs/modules/PageRange.rst create mode 100644 docs/user/comparisons.rst create mode 100644 docs/user/faq.rst create mode 100644 docs/user/history.rst diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index 138d55cdc2..e362732e8e 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -91,7 +91,7 @@ def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=T :param str bookmark: Optionally, you may specify a bookmark to be applied at the beginning of the included file by supplying the text of the bookmark. - :param pages: can be a :ref:`Page Range ` or a ``(start, stop[, step])`` tuple + :param pages: can be a :class:`PageRange` or a ``(start, stop[, step])`` tuple to merge only the specified range of pages from the source document into the output document. @@ -192,7 +192,7 @@ def append(self, fileobj, bookmark=None, pages=None, import_bookmarks=True): :param str bookmark: Optionally, you may specify a bookmark to be applied at the beginning of the included file by supplying the text of the bookmark. - :param pages: can be a :ref:`Page Range ` or a ``(start, stop[, step])`` tuple + :param pages: can be a :class:`PageRange` or a ``(start, stop[, step])`` tuple to merge only the specified range of pages from the source document into the output document. @@ -261,14 +261,23 @@ def setPageLayout(self, layout): :param str layout: The page layout to be used - Valid layouts are: - /NoLayout Layout explicitly not specified - /SinglePage Show one page at a time - /OneColumn Show one column at a time - /TwoColumnLeft Show pages in two columns, odd-numbered pages on the left - /TwoColumnRight Show pages in two columns, odd-numbered pages on the right - /TwoPageLeft Show two pages at a time, odd-numbered pages on the left - /TwoPageRight Show two pages at a time, odd-numbered pages on the right + .. list-table:: Valid ``layout`` arguments + :widths: 50 200 + + * - /NoLayout + - Layout explicitly not specified + * - /SinglePage + - Show one page at a time + * - /OneColumn + - Show one column at a time + * - /TwoColumnLeft + - Show pages in two columns, odd-numbered pages on the left + * - /TwoColumnRight + - Show pages in two columns, odd-numbered pages on the right + * - /TwoPageLeft + - Show two pages at a time, odd-numbered pages on the left + * - /TwoPageRight + - Show two pages at a time, odd-numbered pages on the right """ self.output.setPageLayout(layout) @@ -278,13 +287,21 @@ def setPageMode(self, mode): :param str mode: The page mode to use. - Valid modes are: - /UseNone Do not show outlines or thumbnails panels - /UseOutlines Show outlines (aka bookmarks) panel - /UseThumbs Show page thumbnails panel - /FullScreen Fullscreen view - /UseOC Show Optional Content Group (OCG) panel - /UseAttachments Show attachments panel + .. list-table:: Valid ``mode`` arguments + :widths: 50 200 + + * - /UseNone + - Do not show outlines or thumbnails panels + * - /UseOutlines + - Show outlines (aka bookmarks) panel + * - /UseThumbs + - Show page thumbnails panel + * - /FullScreen + - Fullscreen view + * - /UseOC + - Show Optional Content Group (OCG) panel + * - /UseAttachments + - Show attachments panel """ self.output.setPageMode(mode) diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 9adce226a6..15ac787bfb 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -37,14 +37,17 @@ class PageRange(object): """ A slice-like representation of a range of page indices, i.e. page numbers, only starting at zero. + The syntax is like what you would put between brackets [ ]. The slice is one of the few Python types that can't be subclassed, but this class converts to and from slices, and allows similar use. - o PageRange(str) parses a string representing a page range. - o PageRange(slice) directly "imports" a slice. - o to_slice() gives the equivalent slice. - o str() and repr() allow printing. - o indices(n) is like slice.indices(n). + + - PageRange(str) parses a string representing a page range. + - PageRange(slice) directly "imports" a slice. + - to_slice() gives the equivalent slice. + - str() and repr() allow printing. + - indices(n) is like slice.indices(n). + """ def __init__(self, arg): diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 8b3067e9f2..7862a57ce2 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -332,12 +332,11 @@ def appendPagesFromReader(self, reader, after_page_append=None): :param reader: a PdfFileReader object from which to copy page annotations to this writer object. The writer's annots - will then be updated + will then be updated :callback after_page_append (function): Callback function that is invoked after each page is appended to the writer. Callback signature: - - :param writer_pageref (PDF page reference): Reference to the page - appended to the writer. + :param writer_pageref (PDF page reference): Reference to the page + appended to the writer. """ # Get page count from writer and reader reader_num_pages = reader.getNumPages() @@ -375,7 +374,7 @@ def cloneReaderDocumentRoot(self, reader): Copy the reader document root to the writer. :param reader: PdfFileReader from the document root should be copied. - :callback after_page_append + :callback after_page_append: ''' self._root_object = reader.trailer['/Root'] @@ -969,15 +968,25 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): :param str fit: Page fit or 'zoom' option (see below). Additional arguments may need to be supplied. Passing ``None`` will be read as a null value for that coordinate. - Valid zoom arguments (see Table 8.2 of the PDF 1.7 reference for details): - /Fit No additional arguments - /XYZ [left] [top] [zoomFactor] - /FitH [top] - /FitV [left] - /FitR [left] [bottom] [right] [top] - /FitB No additional arguments - /FitBH [top] - /FitBV [left] + .. list-table:: Valid ``zoom`` arguments (see Table 8.2 of the PDF 1.7 reference for details) + :widths: 50 200 + + * - /Fit + - No additional arguments + * - /XYZ + - [left] [top] [zoomFactor] + * - /FitH + - [top] + * - /FitV + - [left] + * - /FitR + - [left] [bottom] [right] [top] + * - /FitB + - No additional arguments + * - /FitBH + - [top] + * - /FitBV + - [left] """ pageLink = self.getObject(self._pages)['/Kids'][pagenum] @@ -1045,14 +1054,23 @@ def setPageLayout(self, layout): :param str layout: The page layout to be used - Valid layouts are: - /NoLayout Layout explicitly not specified - /SinglePage Show one page at a time - /OneColumn Show one column at a time - /TwoColumnLeft Show pages in two columns, odd-numbered pages on the left - /TwoColumnRight Show pages in two columns, odd-numbered pages on the right - /TwoPageLeft Show two pages at a time, odd-numbered pages on the left - /TwoPageRight Show two pages at a time, odd-numbered pages on the right + .. list-table:: Valid ``layout`` arguments + :widths: 50 200 + + * - /NoLayout + - Layout explicitly not specified + * - /SinglePage + - Show one page at a time + * - /OneColumn + - Show one column at a time + * - /TwoColumnLeft + - Show pages in two columns, odd-numbered pages on the left + * - /TwoColumnRight + - Show pages in two columns, odd-numbered pages on the right + * - /TwoPageLeft + - Show two pages at a time, odd-numbered pages on the left + * - /TwoPageRight + - Show two pages at a time, odd-numbered pages on the right """ if not isinstance(layout, NameObject): if layout not in self._valid_layouts: @@ -1086,13 +1104,21 @@ def setPageMode(self, mode): :param str mode: The page mode to use. - Valid modes are: - /UseNone Do not show outlines or thumbnails panels - /UseOutlines Show outlines (aka bookmarks) panel - /UseThumbs Show page thumbnails panel - /FullScreen Fullscreen view - /UseOC Show Optional Content Group (OCG) panel - /UseAttachments Show attachments panel + .. list-table:: Valid ``mode`` arguments + :widths: 50 200 + + * - /UseNone + - Do not show outlines or thumbnails panels + * - /UseOutlines + - Show outlines (aka bookmarks) panel + * - /UseThumbs + - Show page thumbnails panel + * - /FullScreen + - Fullscreen view + * - /UseOC + - Show Optional Content Group (OCG) panel + * - /UseAttachments + - Show attachments panel """ if not isinstance(mode, NameObject): if mode not in self._valid_modes: diff --git a/docs/index.rst b/docs/index.rst index b353b89194..bd13844f37 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -11,10 +11,11 @@ User Guide ------------ .. toctree:: - :maxdepth: 2 + :maxdepth: 1 user/installation + API Reference ------------- @@ -30,9 +31,17 @@ API Reference modules/Destination modules/RectangleObject modules/Field + modules/PageRange +Meta +---- +.. toctree:: + :maxdepth: 1 + user/history + user/comparisons + user/faq diff --git a/docs/modules/PageRange.rst b/docs/modules/PageRange.rst new file mode 100644 index 0000000000..c9481900d8 --- /dev/null +++ b/docs/modules/PageRange.rst @@ -0,0 +1,7 @@ +The PageRange Class +------------------- + +.. autoclass:: PyPDF2.pagerange.PageRange + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/user/comparisons.rst b/docs/user/comparisons.rst new file mode 100644 index 0000000000..da676ac5e9 --- /dev/null +++ b/docs/user/comparisons.rst @@ -0,0 +1,39 @@ +PyPDF2 vs X +=========== + +PyPDF2 is a free and open source pure-python PDF library. + +PyMuPDF and PikePDF +------------------- +`PyMuPDF `__ is a Python binding to +`MuPDF `__ and +`PikePDF `__ is the Python binding to +`QPDF `_. + +While both are excellent libraries for various use-cases, using them is not +always possible even when they support the use-case. Both of them are powered +by C libraries which makes installation harder and might cause security concerns. +For MuPDF you might also need to buy a commercial license. + +A core feature of PyPDF2 is that it's pure Python. That means there is no +C dependency. It has been used for over 10 years and for this reason a lot of +support via StackOverflow and examples on the internet. + +pyPDF +----- +PyPDF2 was forked from pyPDF. pyPDF has been unmaintained for a long time. + +PyPDF3 and PyPDF4 +----------------- +Developing and maintaining open source software is extremely time-intensive +and in the case of PyPDF2 not paid at all. Having a continuous support is hard. + +PyPDF2 was initially released in 2012 on PyPI and received releases until 2016. +From 2016 to 2022 there was no update - but people were still using it. + +As PyPDF2 is open source, there were attempts to fork it and continue the +development. PyPDF3 was first released in 2018 and still receives updates. +PyPDF4 has only one release from 2018. + +I, Martin Thoma, the current maintainer of PyPDF2, hope that we can bring the +community back to one path of development. Let's see. diff --git a/docs/user/faq.rst b/docs/user/faq.rst new file mode 100644 index 0000000000..7d39ad2896 --- /dev/null +++ b/docs/user/faq.rst @@ -0,0 +1,32 @@ +Frequently-Asked Questions +========================== + +How is PyPDF2 related to pyPdf? +------------------------------- + +PyPDF2 is a fork from the no-longer-maintained +pyPdf approved by the latter's founder. + + +Which Python versions are supported? +------------------------------------ +As `Matthew `__ writes, +"... the intention is for PyPDF2 to work with Python 2 as well as Python 3." +(`source `_) + +In January 2014, the main branch works with 2.6-2.7 and 3.1-3.3 [and maybe 2.5?]. +Notice that 1.19--the latest in PyPI as of this writing--(mostly) did not work with 3.x. + +I often merge [concatenate] various PDF instances, and my application 'craters' with certain files produced by {AutoCAD, my departmental scanner, ...}, even though the original files display OK. What do I do now? +Crucial ideas we want you to know: + +* All of us contend with `this sort of thing `__. + Vendors often produce PDF with questionable syntax, or at least syntax that + isn't what PyPDF2 expects. +* We're committed to resolving all these problems, so that your applications + (and ours) can handle any PDF instances that come their way. Write whenever + you have a problem a `GitHub issue `__. +* In the meantime, while you're waiting on us, you have at least a couple of + choices: you can debug PyPDF2 yourself; or use Acrobat or Preview or a similar + consumer-grade PDF tool to 'mollify' [explain] your PDF instances so you get + the results you are after. \ No newline at end of file diff --git a/docs/user/history.rst b/docs/user/history.rst new file mode 100644 index 0000000000..45a54390d7 --- /dev/null +++ b/docs/user/history.rst @@ -0,0 +1,34 @@ +History of PyPDF2 +================= + +In 2005, `Mathieu Fenniak `__ launched pyPdf "as a +PDF toolkit ..." focused on + +* document manipulation: by-page splitting, concatenation, and merging; +* document introspection; +* page cropping; and +* document encryption and decryption. + +At the end of 2011, after consultation with Mathieu and others, Phaseit +sponsored PyPDF2 as a fork of pyPdf on GitHub. The initial impetus was to +handle a wider range of input PDF instances; Phaseit's commercial work often +encounters PDF instances "in the wild" that it needs to manage +(mostly concatenate and paginate), but that deviate so much from PDF standards +that pyPdf can't read them. PyPDF2 reads a considerably wider range of +real-world PDF instances. + +Neither pyPdf nor PyPDF2 aims to be universal, that is, to provide all possible +PDF-related functionality. Note that the similar-appearing +`pyfpdf `__ of Mariano Reingart is most +comparable to `ReportLab `__, +in that both ReportLab and pyfpdf +emphasize document generation. Interestingly enough, pyfpdf builds in a basic +HTML→PDF converter while PyPDF2 has no knowledge of HTML. + +So what is PyPDF2 truly about? Think about popular `pdftk `__ for a +moment. PyPDF2 does what pdftk does, and it does so within your current Python +process, and it handles a wider range of variant PDF formats [explain]. PyPDF2 +has its own FAQ to answer other questions that have arisen. + +The Reddit `/r/python crowd chatted `__ +obliquely and briefly about PyPDF2 in March 2012. \ No newline at end of file From 6b013a9db18e70e93db5adbd96528e03525e2b65 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 12:14:42 +0200 Subject: [PATCH 084/145] BUG/DOC: Add scripts back (#692) Also add pdfcat documentation: https://pythonhosted.org/PyPDF2/Easy%20Concatenation%20Script.html --- MANIFEST.in | 1 + docs/conf.py | 1 + docs/index.rst | 1 + docs/modules/README.md | 8 ----- docs/user/README.md | 4 --- docs/user/pdfcat.md | 69 ++++++++++++++++++++++++++++++++++++++++++ requirements/docs.in | 1 + requirements/docs.txt | 24 +++++++++++++-- setup.cfg | 2 +- 9 files changed, 96 insertions(+), 15 deletions(-) delete mode 100644 docs/modules/README.md delete mode 100644 docs/user/README.md create mode 100644 docs/user/pdfcat.md diff --git a/MANIFEST.in b/MANIFEST.in index 5899fa4cb8..823951bf42 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include CHANGELOG include LICENSE +recursive-include Resources * diff --git a/docs/conf.py b/docs/conf.py index 010643b26b..9cbb6a9faf 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -33,6 +33,7 @@ "sphinx.ext.mathjax", "sphinx.ext.viewcode", "sphinx.ext.napoleon", + "myst_parser", ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/index.rst b/docs/index.rst index bd13844f37..a69b572132 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -14,6 +14,7 @@ User Guide :maxdepth: 1 user/installation + user/pdfcat API Reference diff --git a/docs/modules/README.md b/docs/modules/README.md deleted file mode 100644 index 5c9bf1a92c..0000000000 --- a/docs/modules/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Module documentation - -This folder contains rst files with semi-automatically generated documentation -of PyPDF2 modules. - -If you want to change something in the module documentation, it might be most -suitable in a docstring in the code. Those are used to generate the module -documentation. diff --git a/docs/user/README.md b/docs/user/README.md deleted file mode 100644 index e7238abb3c..0000000000 --- a/docs/user/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# User Guides - -This folder should contain rst files that will be part of the User Guides. -User guides can be usage examples and tutorials. diff --git a/docs/user/pdfcat.md b/docs/user/pdfcat.md new file mode 100644 index 0000000000..66997b2f84 --- /dev/null +++ b/docs/user/pdfcat.md @@ -0,0 +1,69 @@ +# pdfcat + +**PyPDF2** contains a growing variety of sample programs meant to demonstrate its +features. It also contains useful scripts such as `pdfcat`, located within the +`Scripts` folder. This script makes it easy to concatenate PDF files by using +Python slicing syntax. Because we are slicing PDF pages, we refer to the slices +as *page ranges*. + +```{admonition} Deprecation Discussion +We are thinking about moving pdfcat to a separate package. +``` + +**Page range** expression examples: + +| : | all pages | -1 | last page | +| --- | -------------------------- | ----- | ----------------------- | +| 22 | just the 23rd page | :-1 | all but the last page | +| 0:3 | the first three pages | -2 | second-to-last page | +| :3 | the first three pages | -2: | last two pages | +| 5: | from the sixth page onward | -3:-1 | third & second to last | + +The third stride or step number is also recognized: + +| ::2 | 0 2 4 ... to the end | +| ------ | -------------------------- | +| 1:10:2 | 1 3 5 7 9 | +| ::-1 | all pages in reverse order | +| 3:0:-1 | 3 2 1 but not 0 | +| 2::-1 | 2 1 0 | + + +Usage for pdfcat is as follows: + +```console +$ pdfcat [-h] [-o output.pdf] [-v] input.pdf [page_range...] ... +``` + +You can add as many input files as you like. You may also specify as many page +ranges as needed for each file. + +**Optional arguments:** + + +| -h | --help | Show the help message and exit +| -- |---------- | ------------------------------ +| -o | --output | Follow this argument with the output PDF file. Will be created if it doesn’t exist. +| -v | --verbose | Show page ranges as they are being read + +## Examples + +```console +$ pdfcat -o output.pdf head.pdf content.pdf :6 7: tail.pdf -1 +``` + +Concatenates all of head.pdf, all but page seven of content.pdf, and the last page of tail.pdf, producing output.pdf. + +```console +$ pdfcat chapter*.pdf >book.pdf +``` + +You can specify the output file by redirection. + +```console +$ pdfcat chapter?.pdf chapter10.pdf >book.pdf +``` + +In case you don’t want chapter 10 before chapter 2. + +Thanks to **Steve Witham** for this script! diff --git a/requirements/docs.in b/requirements/docs.in index 82133027c9..3dd64d0cfd 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,2 +1,3 @@ sphinx sphinx_rtd_theme +myst_parser diff --git a/requirements/docs.txt b/requirements/docs.txt index 3faf383f45..749759f9b5 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -6,6 +6,8 @@ # alabaster==0.7.12 # via sphinx +attrs==21.4.0 + # via markdown-it-py babel==2.9.1 # via sphinx certifi==2021.10.8 @@ -14,6 +16,7 @@ charset-normalizer==2.0.12 # via requests docutils==0.17.1 # via + # myst-parser # sphinx # sphinx-rtd-theme idna==3.3 @@ -23,9 +26,21 @@ imagesize==1.3.0 importlib-metadata==4.8.3 # via sphinx jinja2==3.0.3 - # via sphinx + # via + # myst-parser + # sphinx +markdown-it-py==2.0.1 + # via + # mdit-py-plugins + # myst-parser markupsafe==2.0.1 # via jinja2 +mdit-py-plugins==0.3.0 + # via myst-parser +mdurl==0.1.0 + # via markdown-it-py +myst-parser==0.16.1 + # via -r requirements/docs.in packaging==21.3 # via sphinx pygments==2.11.2 @@ -34,6 +49,8 @@ pyparsing==3.0.7 # via packaging pytz==2022.1 # via babel +pyyaml==6.0 + # via myst-parser requests==2.27.1 # via sphinx snowballstemmer==2.2.0 @@ -41,6 +58,7 @@ snowballstemmer==2.2.0 sphinx==4.5.0 # via # -r requirements/docs.in + # myst-parser # sphinx-rtd-theme sphinx-rtd-theme==1.0.0 # via -r requirements/docs.in @@ -57,7 +75,9 @@ sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 # via sphinx typing-extensions==4.1.1 - # via importlib-metadata + # via + # importlib-metadata + # markdown-it-py urllib3==1.26.9 # via requests zipp==3.6.0 diff --git a/setup.cfg b/setup.cfg index 8c037e762f..b785967cc9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -30,5 +30,5 @@ classifiers = Topic :: Software Development :: Libraries :: Python Modules [options] -packages = PyPDF2 +packages = PyPDF2, Scripts, Tests, Sample_Code python_requires = >=2.7 From 7a6d2984e87db27ab94e241f60f0866db88fe09a Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 12:27:46 +0200 Subject: [PATCH 085/145] Minor: Link to discussion in the docs --- MANIFEST.in | 1 + docs/user/pdfcat.md | 1 + 2 files changed, 2 insertions(+) diff --git a/MANIFEST.in b/MANIFEST.in index 823951bf42..ae514141a0 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,4 @@ include CHANGELOG include LICENSE +include Scripts/pdfcat recursive-include Resources * diff --git a/docs/user/pdfcat.md b/docs/user/pdfcat.md index 66997b2f84..68fcd805b6 100644 --- a/docs/user/pdfcat.md +++ b/docs/user/pdfcat.md @@ -8,6 +8,7 @@ as *page ranges*. ```{admonition} Deprecation Discussion We are thinking about moving pdfcat to a separate package. +Please [participate in the discussion](https://github.com/py-pdf/PyPDF2/discussions/718). ``` **Page range** expression examples: From eb6c1ed4203758adb1e07291f99ac7456e302709 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 13:15:49 +0200 Subject: [PATCH 086/145] DOC: Consistent description of PyPDF2 --- PyPDF2/filters.py | 4 +- PyPDF2/pdf.py | 1 - README.md | 80 +++++++++++++++++++++++++-------------- docs/conf.py | 2 +- docs/index.rst | 6 +++ docs/user/comparisons.rst | 8 +++- setup.cfg | 2 +- 7 files changed, 66 insertions(+), 37 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index eced567d91..9b3388f8ae 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -28,9 +28,7 @@ # POSSIBILITY OF SUCH DAMAGE. -""" -Implementation of stream filters for PDF. -""" +"""Implementation of stream filters for PDF.""" __author__ = "Mathieu Fenniak" __author_email__ = "biziqe@mathieu.fenniak.net" diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 7862a57ce2..14cdc1230b 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -33,7 +33,6 @@ """ A pure-Python PDF library with an increasing number of capabilities. -See README for links to FAQ, documentation, homepage, etc. """ __author__ = "Mathieu Fenniak" diff --git a/README.md b/README.md index 3735714cec..238a2de217 100644 --- a/README.md +++ b/README.md @@ -5,38 +5,57 @@ # PyPDF2 -PyPDF2 is a pure-python PDF library capable of -splitting, merging together, cropping, and transforming -the pages of PDF files. It can also add custom -data, viewing options, and passwords to PDF files. -It can retrieve text and metadata from PDFs as well -as merge entire files together. - -[Homepage](http://py-pdf.github.io/PyPDF2/) - +PyPDF2 is a free and open-source pure-python PDF library capable of splitting, +merging, cropping, and transforming the pages of PDF files. It can also add +custom data, viewing options, and passwords to PDF files. +PyPDF2 can retrieve text and metadata from PDFs as well. ## Installation -To install via pip: +You can install PyPDF2 via pip: ``` pip install PyPDF2 ``` -## Examples +## Usage -Please see the `Sample_Code` folder. +```python +from PyPDF2 import PdfFileReader + +with open("Resources/crazyones.pdf", "rb") as fp: + reader = PdfFileReader(fp) + number_of_pages = reader.getNumPages() + page = reader.pages[0] + text = page.extractText() +``` -## FAQ +PyPDF2 can do a lot more, e.g. splitting, merging, reading and creating +annotations, decrypting and encrypting, and more. -A lot of questions are asked [on StackOverflow](https://stackoverflow.com/questions/tagged/pypdf2). +Please see [the documentation](https://pypdf2.readthedocs.io/en/latest/), +[`Sample_Code`](https://github.com/py-pdf/PyPDF2/tree/master/Sample_Code) +and [`Scripts`](https://github.com/py-pdf/PyPDF2/tree/master/Scripts) for +more usage examples! + +A lot of questions are asked and answered +[on StackOverflow](https://stackoverflow.com/questions/tagged/pypdf2). ## Contributions Maintaining PyPDF2 is a collaborative effort. You can support PyPDF2 by writing documentation, helping to narrow down issues, and adding code. +### Q&A + +The experience PyPDF2 users have covers the whole range from beginners who +want to make their live easier to experts who developed software before PDF +existed. You can contribute to the PyPDF2 community by answering questions +on [StackOverflow](https://stackoverflow.com/questions/tagged/pypdf2), +helping in [discussions](https://github.com/py-pdf/PyPDF2/discussions), +and asking users who report issues for [MCVE](https://stackoverflow.com/help/minimal-reproducible-example)'s (Code + example PDF!). + ### Issues @@ -54,19 +73,22 @@ cases for bugs you've fixed help us to ensure that the Pull Request (PR) is fine PyPDF2 includes a test suite which can be executed with `pytest`: ```bash -$ pytest . -============================= test session starts ============================== -platform linux -- Python 3.10.2, pytest-7.0.1, pluggy-1.0.0 -rootdir: /home/moose/Github/PyPDF2 -plugins: mccabe-2.0, icdiff-0.5, cov-3.0.0, timeout-2.1.0 -collected 29 items - -Tests/test_basic_features.py . [ 3%] -Tests/test_merger.py . [ 6%] -Tests/test_reader.py ......... [ 37%] -Tests/test_utils.py ..... [ 55%] -Tests/test_workflows.py ........... [ 93%] -Tests/test_xmp.py .. [100%] - -============================== 29 passed in 0.29s ============================== +$ pytest +========================= test session starts ========================= +platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0 +rootdir: /home/moose/Github/Martin/PyPDF2 +plugins: cov-3.0.0 +collected 57 items + +Tests/test_basic_features.py .. [ 3%] +Tests/test_merger.py . [ 5%] +Tests/test_page.py . [ 7%] +Tests/test_pagerange.py ....... [ 19%] +Tests/test_reader.py .......... [ 36%] +Tests/test_utils.py ...................... [ 75%] +Tests/test_workflows.py .......... [ 92%] +Tests/test_writer.py .. [ 96%] +Tests/test_xmp.py .. [100%] + +========================= 57 passed in 1.06s ========================== ``` diff --git a/docs/conf.py b/docs/conf.py index 9cbb6a9faf..f4cf4c4829 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,7 +17,7 @@ # -- Project information ----------------------------------------------------- project = 'PyPDF2' -copyright = '2022, Mathieu Fenniak' +copyright = '2006 - 2008, Mathieu Fenniak' author = 'Mathieu Fenniak' diff --git a/docs/index.rst b/docs/index.rst index a69b572132..0f4b7d01be 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,6 +6,12 @@ Welcome to PyPDF2 ================= +PyPDF2 is a `free `_ and open +source pure-python PDF library capable of splitting, +merging, cropping, and transforming the pages of PDF files. It can also add +custom data, viewing options, and passwords to PDF files. +PyPDF2 can retrieve text and metadata from PDFs as well. + User Guide ------------ diff --git a/docs/user/comparisons.rst b/docs/user/comparisons.rst index da676ac5e9..596f2e88e4 100644 --- a/docs/user/comparisons.rst +++ b/docs/user/comparisons.rst @@ -1,7 +1,11 @@ PyPDF2 vs X =========== -PyPDF2 is a free and open source pure-python PDF library. +PyPDF2 is a `free `_ and open +source pure-python PDF library capable of splitting, +merging, cropping, and transforming the pages of PDF files. It can also add +custom data, viewing options, and passwords to PDF files. +PyPDF2 can retrieve text and metadata from PDFs as well. PyMuPDF and PikePDF ------------------- @@ -31,7 +35,7 @@ and in the case of PyPDF2 not paid at all. Having a continuous support is hard. PyPDF2 was initially released in 2012 on PyPI and received releases until 2016. From 2016 to 2022 there was no update - but people were still using it. -As PyPDF2 is open source, there were attempts to fork it and continue the +As PyPDF2 is free software, there were attempts to fork it and continue the development. PyPDF3 was first released in 2018 and still receives updates. PyPDF4 has only one release from 2018. diff --git a/setup.cfg b/setup.cfg index b785967cc9..97acc6e8b1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -10,7 +10,7 @@ description = PDF toolkit long_description = file: README.md long_description_content_type = text/markdown -url = https://py-pdf.github.io/PyPDF2 +url = https://pypdf2.readthedocs.io/en/latest/ project_urls = Source = https://github.com/py-pdf/PyPDF2 Bug Reports = https://github.com/py-pdf/PyPDF2/issues From a385f5dde54f8d8496951e53659f655a10bcd5dc Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 13:26:05 +0200 Subject: [PATCH 087/145] DOC: Link in Docs to GitHub --- docs/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index 0f4b7d01be..df86f9e6ab 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,6 +12,8 @@ merging, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files. PyPDF2 can retrieve text and metadata from PDFs as well. +You can contribute to `PyPDF2 on Github `_. + User Guide ------------ From 8b659d80dade7db363b850f27c727df8858ffa4e Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 13:35:30 +0200 Subject: [PATCH 088/145] DEV: make clean --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 29d5461508..84c93a264c 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ upload: clean: python setup.py clean --all pyclean . + rm -rf Tests/__pycache__ PyPDF2/__pycache__ Image9.png htmlcov docs/_build dist dont_commit_merged.pdf dont_commit_writer.pdf PyPDF2.egg-info PyPDF2_pdfLocation.txt test: pytest Tests/tests.py Tests --cov --cov-report term-missing -vv --cov-report html From f3828b975d1c710360784a3294348358f8187ec5 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 13:36:35 +0200 Subject: [PATCH 089/145] REL: 1.27.2 Add Scripts (including `pdfcat`), Resources, Tests, and Sample_Code back to PyPDF2. It was removed by accident in 1.27.0, but might get removed with 2.0.0 See https://github.com/py-pdf/PyPDF2/discussions/718 for discussion --- CHANGELOG | 8 +++++++- PyPDF2/_version.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 75c6030404..87decebe4a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -39,12 +39,18 @@ Miscallenious: You can see the full changelog at: https://github.com/py-pdf/PyPDF2/compare/1.26.0...1.27.0 -Intermediate release 1.27.1, 2022-04-08 +Patch release 1.27.1, 2022-04-08 - Fixed project links on PyPI page after migration from mstamy2 to MartinThoma to the py-pdf organization on GitHub - Documentation is now at https://pypdf2.readthedocs.io/en/latest/ +Patch release 1.27.2, 2022-04-09 + +- Add Scripts (including `pdfcat`), Resources, Tests, and Sample_Code back to + PyPDF2. It was removed by accident in 1.27.0, but might get removed with 2.0.0 + See https://github.com/py-pdf/PyPDF2/discussions/718 for discussion + Version 1.26.0, 2016-05-18 -------------------------- diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index a873751ac4..b5476c1479 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = '1.27.1' +__version__ = '1.27.2' From 237d9cb79b05c2754c56c33658b341b12c275f02 Mon Sep 17 00:00:00 2001 From: vashek Date: Sat, 9 Apr 2022 14:13:55 +0200 Subject: [PATCH 090/145] ROBUST: Ignore a /Prev entry with the value 0 in the trailer in non-strict mode (#618) An extra /Prev key in the trailer with the value 0 means the PDF is broken according to the specification. However, we can make PyPDF2 robust against this type of broken PDF. Closes #530 --- PyPDF2/pdf.py | 9 +++++++++ Tests/test_reader.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 14cdc1230b..be66f03371 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1971,6 +1971,15 @@ def used_before(num, generation): else: break else: + # some PDFs have /Prev=0 in the trailer, instead of no /Prev + if startxref == 0: + if self.strict: + raise utils.PdfReadError("/Prev=0 in the trailer (try" + " opening with strict=False)") + else: + warnings.warn("/Prev=0 in the trailer - assuming there" + " is no previous xref table") + break # bad xref character at startxref. Let's see if we can find # the xref table nearby, as we've observed this error with an # off-by-one before. diff --git a/Tests/test_reader.py b/Tests/test_reader.py index f0dc0f3e1c..3edd23f484 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -1,3 +1,4 @@ +import io import os import pytest import PyPDF2 @@ -143,3 +144,47 @@ def test_get_images(src, nb_images): print("No image found.") assert len(images_extracted) == nb_images + + +@pytest.mark.parametrize( + "strict,with_prev_0,should_fail", + [ + (True, True, True), + (True, False, False), + (False, True, False), + (False, False, False), + ], +) +def test_get_images(strict, with_prev_0, should_fail): + pdf_data = b"%%PDF-1.7\n" \ + b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" \ + b"2 0 obj << >> endobj\n" \ + b"3 0 obj << >> endobj\n" \ + b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" \ + b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" \ + b" /Resources << /Font << >> >>" \ + b" /Rotate 0 /Type /Page >> endobj\n" \ + b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" \ + b"xref 1 5\n" \ + b"%010d 00000 n\n" \ + b"%010d 00000 n\n" \ + b"%010d 00000 n\n" \ + b"%010d 00000 n\n" \ + b"%010d 00000 n\n" \ + b"trailer << %s/Root 5 0 R /Size 6 >>\n" \ + b"startxref %d\n" \ + b"%%%%EOF" + pdf_data = pdf_data % (pdf_data.find(b"1 0 obj"), + pdf_data.find(b"2 0 obj"), + pdf_data.find(b"3 0 obj"), + pdf_data.find(b"4 0 obj"), + pdf_data.find(b"5 0 obj"), + b"/Prev 0 " if with_prev_0 else b"", + pdf_data.find(b"xref"), + ) + pdf_stream = io.BytesIO(pdf_data) + if should_fail: + with pytest.raises(PyPDF2.pdf.utils.PdfReadError): + PyPDF2.PdfFileReader(pdf_stream, strict=strict) + else: + PyPDF2.PdfFileReader(pdf_stream, strict=strict) From 6a0b89f1f10d66d9464c409cc0711da0fe4dd998 Mon Sep 17 00:00:00 2001 From: vashek Date: Sat, 9 Apr 2022 15:10:40 +0200 Subject: [PATCH 091/145] DEV: Make tox use pytest and add more Python versions (#721) --- tox.ini | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 055d13eb32..bf2ceb3a8a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,10 @@ [tox] envlist = - py{27,34,35,36,py,py3} + py{27,34,35,36,37,38,39,310,py,py3} [testenv] -commands = python -m unittest Tests.tests +deps = + pillow + pytest + pytest-cov +commands = pytest Tests/tests.py Tests --cov --cov-report term-missing -vv From 6eafb94525d1118782ac3626c453ad9b63a88d61 Mon Sep 17 00:00:00 2001 From: vashek Date: Sat, 9 Apr 2022 15:15:53 +0200 Subject: [PATCH 092/145] TST: Close file handle in test_writer (#722) In test_writer.py, make sure tmp file is closed before removing it --- Tests/test_writer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Tests/test_writer.py b/Tests/test_writer.py index 4f61886636..8c39258ff3 100644 --- a/Tests/test_writer.py +++ b/Tests/test_writer.py @@ -74,8 +74,9 @@ def test_remove_images(): with open(tmp_filename, "wb") as output_stream: output.write(output_stream) - reader = PdfFileReader(open(tmp_filename, "rb")) - assert "Lorem ipsum dolor sit amet" in reader.getPage(0).extractText() + with open(tmp_filename, "rb") as input_stream: + reader = PdfFileReader(input_stream) + assert "Lorem ipsum dolor sit amet" in reader.getPage(0).extractText() # Cleanup os.remove(tmp_filename) From 4fa35c9f5dd826e546ba6b0bbb46994100c18836 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 15:17:45 +0200 Subject: [PATCH 093/145] DOC: Add user guides (#720) --- docs/index.rst | 21 +++++++++++-- docs/user/add-watermark.md | 24 +++++++++++++++ docs/user/cropping-and-transforming.md | 38 +++++++++++++++++++++++ docs/user/extract-text.md | 42 ++++++++++++++++++++++++++ docs/user/installation.rst | 29 ++++++++++++++++-- docs/user/merging-pdfs.md | 15 +++++++++ 6 files changed, 164 insertions(+), 5 deletions(-) create mode 100644 docs/user/add-watermark.md create mode 100644 docs/user/cropping-and-transforming.md create mode 100644 docs/user/extract-text.md create mode 100644 docs/user/merging-pdfs.md diff --git a/docs/index.rst b/docs/index.rst index df86f9e6ab..83ab408e10 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,9 +19,22 @@ User Guide ------------ .. toctree:: + :caption: User Guide :maxdepth: 1 user/installation + user/extract-text + user/merging-pdfs + user/cropping-and-transforming + user/add-watermark + +Scripts +------- + +.. toctree:: + :caption: Scripts + :maxdepth: 1 + user/pdfcat @@ -29,7 +42,8 @@ API Reference ------------- .. toctree:: - :maxdepth: 2 + :caption: API Reference + :maxdepth: 1 modules/PdfFileReader modules/PdfFileMerger @@ -42,10 +56,11 @@ API Reference modules/Field modules/PageRange -Meta ----- +About PyPDF2 +------------ .. toctree:: + :caption: About PyPDF2 :maxdepth: 1 user/history diff --git a/docs/user/add-watermark.md b/docs/user/add-watermark.md new file mode 100644 index 0000000000..fdf71f4068 --- /dev/null +++ b/docs/user/add-watermark.md @@ -0,0 +1,24 @@ +# Adding a Watermark to a PDF + +```python +from PyPDF2 import PdfFileWriter, PdfFileReader + + +# Read the watermark +watermark = PdfFileReader(open("watermark.pdf", "rb")) + +# Read the page without watermark +reader = PdfFileReader(open("example.pdf", "rb")) +page = reader.pages[0] + +# Add the watermark to the page +page.mergePage(watermark.pages[0]) + +# Add the page to the writer +writer = PdfFileWriter() +writer.addPage(page) + +# finally, write the new document with a watermark +with open("PyPDF2-output.pdf", "wb") as fp: + output.write(fp) +``` diff --git a/docs/user/cropping-and-transforming.md b/docs/user/cropping-and-transforming.md new file mode 100644 index 0000000000..25f72bd575 --- /dev/null +++ b/docs/user/cropping-and-transforming.md @@ -0,0 +1,38 @@ +# Cropping and Transforming PDFs + +```python +from PyPDF2 import PdfFileWriter, PdfFileReader + +reader = PdfFileReader(open("example.pdf", "rb")) +writer = PdfFileWriter() + +# add page 1 from reader to output document, unchanged: +writer.addPage(reader.pages[0]) + +# add page 2 from reader, but rotated clockwise 90 degrees: +writer.addPage(reader.pages[1].rotateClockwise(90)) + +# add page 3 from reader, but crop it to half size: +page3 = reader.pages[2] +page3.mediaBox.upperRight = ( + page3.mediaBox.getUpperRight_x() / 2, + page3.mediaBox.getUpperRight_y() / 2, +) +writer.addPage(page3) + +# add some Javascript to launch the print window on opening this PDF. +# the password dialog may prevent the print dialog from being shown, +# comment the the encription lines, if that's the case, to try this out: +writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + +# encrypt your new PDF and add a password: +password = "secret" +writer.encrypt(password) + +# add a title to your new PDF's metadata: +writer.addMetadata({"/Title": "PDF Metadata Title"}) + +# finally, write to document-output.pdf +with open("PyPDF2-output.pdf", "wb") as fp: + output.write(fp) +``` diff --git a/docs/user/extract-text.md b/docs/user/extract-text.md new file mode 100644 index 0000000000..b7d6b303e4 --- /dev/null +++ b/docs/user/extract-text.md @@ -0,0 +1,42 @@ +# Extract Text from a PDF + +You can extract text from a PDF like this: + +```python +from PyPDF2 import PdfFileReader + +with open("example.pdf", "rb") as fp: + reader = PdfFileReader(fp) + pageObj = reader.pages[0] + print(pageObj.extractText()) +``` + +## Why Text Extraction is hard + +Extracting text from a PDF can be pretty tricky. In several cases there is no +clear answer what the expected result should look like: + +1. **Paragraphs**: Should the text of a paragraph have line breaks at the same places + where the original PDF had them or should it rather be one block of text? +2. **Page numbers**: Should they be included in the extract? +3. **Outlines**: Should outlines be extracted at all? +4. **Formatting**: If text is **bold** or *italic*, should it be included in the + output? +5. **Captions**: Should image and table captions be included? + +Then there are issues where most people would agree on the correct output, but +the way PDF stores information just makes it hard to achieve that: + +1. **Tables**: Typically, tables are just absolutely positioned text. In the worst + case, ever single letter could be absolutely positioned. That makes it hard + to tell where columns / rows are. +2. **Images**: Sometimes PDFs do not contain the text as it's displayed, but + instead an image. You notice that when you cannot copy the text. Then there + are PDF files that contain an image and a text layer in the background. + That typically happens when a document was scanned. Although the scanning + software (OCR) is pretty good today, it still fails once in a while. PyPDF2 + is no OCR software; it will not be able to detect those failures. PyPDF2 + will also never be able to extract text from images. + +And finally there are issues that PyPDF2 will deal with. If you find such a +text extraction bug, please share the PDF with us so we can work on it! diff --git a/docs/user/installation.rst b/docs/user/installation.rst index 8d9f50bc60..7f0ff3a6ee 100644 --- a/docs/user/installation.rst +++ b/docs/user/installation.rst @@ -4,8 +4,10 @@ Installation ============ -Python + pip -============ +There are several ways to install PyPDF2. The most common option is to use pip. + +pip +=== PyPDF2 requires Python 2.7+ to run. @@ -15,3 +17,26 @@ install PyPDF2: .. code-block:: bash pip install PyPDF2 + +If you are not a super-user (a system adminstrator / root), you can also just +install PyPDF2 for your current user: + +.. code-block:: bash + + pip install --user PyPDF2 + + +Anaconda +======== + +Anaconda users can `install PyPDF2 via conda-forge `_ + + +Development Version +=================== + +In case you want to use the current version under development: + +.. code-block:: bash + + pip install git+https://github.com/py-pdf/PyPDF2.git diff --git a/docs/user/merging-pdfs.md b/docs/user/merging-pdfs.md new file mode 100644 index 0000000000..73d214339b --- /dev/null +++ b/docs/user/merging-pdfs.md @@ -0,0 +1,15 @@ +# Merging PDF files + +```python +from PyPDF2 import PdfFileMerger + +merger = PdfFileMerger() + +for pdf in ["file1.pdf", "file2.pdf", "file3.pdf", "file4.pdf"]: + merger.append(pdf) + +merger.write("merged-pdf.pdf") +merger.close() +``` + +For more details, see an excellent answer on [StackOverflow](https://stackoverflow.com/questions/3444645/merge-pdf-files) by Paul Rooney. From 05eb9f0b63a5b4d2fefa335b57cc5a7744746ce2 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 15:30:56 +0200 Subject: [PATCH 094/145] DOC: Fix header duplication (#723) Also: reStructured Text to Markdown conversion --- docs/index.rst | 11 --------- docs/user/comparisons.md | 49 ++++++++++++++++++++++++++++++++++++++ docs/user/comparisons.rst | 43 --------------------------------- docs/user/faq.md | 36 ++++++++++++++++++++++++++++ docs/user/faq.rst | 32 ------------------------- docs/user/history.md | 40 +++++++++++++++++++++++++++++++ docs/user/history.rst | 34 -------------------------- docs/user/installation.md | 35 +++++++++++++++++++++++++++ docs/user/installation.rst | 42 -------------------------------- 9 files changed, 160 insertions(+), 162 deletions(-) create mode 100644 docs/user/comparisons.md delete mode 100644 docs/user/comparisons.rst create mode 100644 docs/user/faq.md delete mode 100644 docs/user/faq.rst create mode 100644 docs/user/history.md delete mode 100644 docs/user/history.rst create mode 100644 docs/user/installation.md delete mode 100644 docs/user/installation.rst diff --git a/docs/index.rst b/docs/index.rst index 83ab408e10..869493e2d9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -14,10 +14,6 @@ PyPDF2 can retrieve text and metadata from PDFs as well. You can contribute to `PyPDF2 on Github `_. - -User Guide ------------- - .. toctree:: :caption: User Guide :maxdepth: 1 @@ -28,8 +24,6 @@ User Guide user/cropping-and-transforming user/add-watermark -Scripts -------- .. toctree:: :caption: Scripts @@ -38,9 +32,6 @@ Scripts user/pdfcat -API Reference -------------- - .. toctree:: :caption: API Reference :maxdepth: 1 @@ -56,8 +47,6 @@ API Reference modules/Field modules/PageRange -About PyPDF2 ------------- .. toctree:: :caption: About PyPDF2 diff --git a/docs/user/comparisons.md b/docs/user/comparisons.md new file mode 100644 index 0000000000..21a498c831 --- /dev/null +++ b/docs/user/comparisons.md @@ -0,0 +1,49 @@ +# PyPDF2 vs X + +PyPDF2 is a [free] and open source pure-python PDF library capable of +splitting, merging, cropping, and transforming the pages of PDF files. +It can also add custom data, viewing options, and passwords to PDF +files. PyPDF2 can retrieve text and metadata from PDFs as well. + +## PyMuPDF and PikePDF + +[PyMuPDF] is a Python binding to [MuPDF] and [PikePDF] is the Python +binding to [QPDF]. + +While both are excellent libraries for various use-cases, using them is +not always possible even when they support the use-case. Both of them +are powered by C libraries which makes installation harder and might +cause security concerns. For MuPDF you might also need to buy a +commercial license. + +A core feature of PyPDF2 is that it's pure Python. That means there is +no C dependency. It has been used for over 10 years and for this reason +a lot of support via StackOverflow and examples on the internet. + +## pyPDF + +PyPDF2 was forked from pyPDF. pyPDF has been unmaintained for a long +time. + +## PyPDF3 and PyPDF4 + +Developing and maintaining open source software is extremely +time-intensive and in the case of PyPDF2 not paid at all. Having a +continuous support is hard. + +PyPDF2 was initially released in 2012 on PyPI and received releases +until 2016. From 2016 to 2022 there was no update - but people were +still using it. + +As PyPDF2 is free software, there were attempts to fork it and continue +the development. PyPDF3 was first released in 2018 and still receives +updates. PyPDF4 has only one release from 2018. + +I, Martin Thoma, the current maintainer of PyPDF2, hope that we can +bring the community back to one path of development. Let's see. + + [free]: https://en.wikipedia.org/wiki/Free_software + [PyMuPDF]: https://pypi.org/project/PyMuPDF/ + [MuPDF]: https://mupdf.com/ + [PikePDF]: https://pypi.org/project/pikepdf/ + [QPDF]: https://github.com/qpdf/qpdf diff --git a/docs/user/comparisons.rst b/docs/user/comparisons.rst deleted file mode 100644 index 596f2e88e4..0000000000 --- a/docs/user/comparisons.rst +++ /dev/null @@ -1,43 +0,0 @@ -PyPDF2 vs X -=========== - -PyPDF2 is a `free `_ and open -source pure-python PDF library capable of splitting, -merging, cropping, and transforming the pages of PDF files. It can also add -custom data, viewing options, and passwords to PDF files. -PyPDF2 can retrieve text and metadata from PDFs as well. - -PyMuPDF and PikePDF -------------------- -`PyMuPDF `__ is a Python binding to -`MuPDF `__ and -`PikePDF `__ is the Python binding to -`QPDF `_. - -While both are excellent libraries for various use-cases, using them is not -always possible even when they support the use-case. Both of them are powered -by C libraries which makes installation harder and might cause security concerns. -For MuPDF you might also need to buy a commercial license. - -A core feature of PyPDF2 is that it's pure Python. That means there is no -C dependency. It has been used for over 10 years and for this reason a lot of -support via StackOverflow and examples on the internet. - -pyPDF ------ -PyPDF2 was forked from pyPDF. pyPDF has been unmaintained for a long time. - -PyPDF3 and PyPDF4 ------------------ -Developing and maintaining open source software is extremely time-intensive -and in the case of PyPDF2 not paid at all. Having a continuous support is hard. - -PyPDF2 was initially released in 2012 on PyPI and received releases until 2016. -From 2016 to 2022 there was no update - but people were still using it. - -As PyPDF2 is free software, there were attempts to fork it and continue the -development. PyPDF3 was first released in 2018 and still receives updates. -PyPDF4 has only one release from 2018. - -I, Martin Thoma, the current maintainer of PyPDF2, hope that we can bring the -community back to one path of development. Let's see. diff --git a/docs/user/faq.md b/docs/user/faq.md new file mode 100644 index 0000000000..b88a85a295 --- /dev/null +++ b/docs/user/faq.md @@ -0,0 +1,36 @@ +# Frequently-Asked Questions + +## How is PyPDF2 related to pyPdf? + +PyPDF2 is a fork from the no-longer-maintained pyPdf approved by the +latter's founder. + +## Which Python versions are supported? + +As [Matthew] writes, "... the intention is for PyPDF2 to work with +Python 2 as well as Python 3." ([source]) + +In January 2014, the main branch works with 2.6-2.7 and 3.1-3.3 \[and +maybe 2.5?\]. Notice that 1.19--the latest in PyPI as of this +writing--(mostly) did not work with 3.x. + +I often merge \[concatenate\] various PDF instances, and my application +'craters' with certain files produced by {AutoCAD, my departmental +scanner, ...}, even though the original files display OK. What do I do +now? Crucial ideas we want you to know: + +- All of us contend with [this sort of thing]. Vendors often produce + PDF with questionable syntax, or at least syntax that isn't what + PyPDF2 expects. +- We're committed to resolving all these problems, so that your + applications (and ours) can handle any PDF instances that come their + way. Write whenever you have a problem a [GitHub issue]. +- In the meantime, while you're waiting on us, you have at least a + couple of choices: you can debug PyPDF2 yourself; or use Acrobat or + Preview or a similar consumer-grade PDF tool to 'mollify' + \[explain\] your PDF instances so you get the results you are after. + + [Matthew]: https://github.com/mstamy2 + [source]: https://github.com/py-pdf/PyPDF2/commit/24b270d876518d15773224b5d0d6c2206db29f64#commitcomment-5038317 + [this sort of thing]: https://github.com/py-pdf/PyPDF2/issues/24 + [GitHub issue]: https://github.com/py-pdf/PyPDF2/issues diff --git a/docs/user/faq.rst b/docs/user/faq.rst deleted file mode 100644 index 7d39ad2896..0000000000 --- a/docs/user/faq.rst +++ /dev/null @@ -1,32 +0,0 @@ -Frequently-Asked Questions -========================== - -How is PyPDF2 related to pyPdf? -------------------------------- - -PyPDF2 is a fork from the no-longer-maintained -pyPdf approved by the latter's founder. - - -Which Python versions are supported? ------------------------------------- -As `Matthew `__ writes, -"... the intention is for PyPDF2 to work with Python 2 as well as Python 3." -(`source `_) - -In January 2014, the main branch works with 2.6-2.7 and 3.1-3.3 [and maybe 2.5?]. -Notice that 1.19--the latest in PyPI as of this writing--(mostly) did not work with 3.x. - -I often merge [concatenate] various PDF instances, and my application 'craters' with certain files produced by {AutoCAD, my departmental scanner, ...}, even though the original files display OK. What do I do now? -Crucial ideas we want you to know: - -* All of us contend with `this sort of thing `__. - Vendors often produce PDF with questionable syntax, or at least syntax that - isn't what PyPDF2 expects. -* We're committed to resolving all these problems, so that your applications - (and ours) can handle any PDF instances that come their way. Write whenever - you have a problem a `GitHub issue `__. -* In the meantime, while you're waiting on us, you have at least a couple of - choices: you can debug PyPDF2 yourself; or use Acrobat or Preview or a similar - consumer-grade PDF tool to 'mollify' [explain] your PDF instances so you get - the results you are after. \ No newline at end of file diff --git a/docs/user/history.md b/docs/user/history.md new file mode 100644 index 0000000000..9b0a9c267a --- /dev/null +++ b/docs/user/history.md @@ -0,0 +1,40 @@ +# History of PyPDF2 + +In 2005, [Mathieu Fenniak] launched pyPdf "as a PDF toolkit..." +focused on + +- document manipulation: by-page splitting, concatenation, and + merging; +- document introspection; +- page cropping; and +- document encryption and decryption. + +At the end of 2011, after consultation with Mathieu and others, Phaseit +sponsored PyPDF2 as a fork of pyPdf on GitHub. The initial impetus was +to handle a wider range of input PDF instances; Phaseit\'s commercial +work often encounters PDF instances \"in the wild\" that it needs to +manage (mostly concatenate and paginate), but that deviate so much from +PDF standards that pyPdf can\'t read them. PyPDF2 reads a considerably +wider range of real-world PDF instances. + +Neither pyPdf nor PyPDF2 aims to be universal, that is, to provide all +possible PDF-related functionality. Note that the similar-appearing +[pyfpdf] of Mariano Reingart is most comparable to [ReportLab], in that +both ReportLab and pyfpdf emphasize document generation. Interestingly +enough, pyfpdf builds in a basic HTML→PDF converter while PyPDF2 has no +knowledge of HTML. + +So what is PyPDF2 truly about? Think about popular [pdftk] for a moment. +PyPDF2 does what pdftk does, and it does so within your current Python +process, and it handles a wider range of variant PDF formats +\[explain\]. PyPDF2 has its own FAQ to answer other questions that have +arisen. + +The Reddit [/r/python crowd chatted] obliquely and briefly about PyPDF2 +in March 2012. + + [Mathieu Fenniak]: https://mathieu.fenniak.net/ + [pyfpdf]: https://github.com/reingart/pyfpdf + [ReportLab]: https://www.reportlab.com/software/opensource/rl-toolkit/ + [pdftk]: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ + [/r/python crowd chatted]: https://www.reddit.com/r/Python/comments/qsvfm/pypdf2_updates_pypdf_pypdf2_is_an_opensource/ diff --git a/docs/user/history.rst b/docs/user/history.rst deleted file mode 100644 index 45a54390d7..0000000000 --- a/docs/user/history.rst +++ /dev/null @@ -1,34 +0,0 @@ -History of PyPDF2 -================= - -In 2005, `Mathieu Fenniak `__ launched pyPdf "as a -PDF toolkit ..." focused on - -* document manipulation: by-page splitting, concatenation, and merging; -* document introspection; -* page cropping; and -* document encryption and decryption. - -At the end of 2011, after consultation with Mathieu and others, Phaseit -sponsored PyPDF2 as a fork of pyPdf on GitHub. The initial impetus was to -handle a wider range of input PDF instances; Phaseit's commercial work often -encounters PDF instances "in the wild" that it needs to manage -(mostly concatenate and paginate), but that deviate so much from PDF standards -that pyPdf can't read them. PyPDF2 reads a considerably wider range of -real-world PDF instances. - -Neither pyPdf nor PyPDF2 aims to be universal, that is, to provide all possible -PDF-related functionality. Note that the similar-appearing -`pyfpdf `__ of Mariano Reingart is most -comparable to `ReportLab `__, -in that both ReportLab and pyfpdf -emphasize document generation. Interestingly enough, pyfpdf builds in a basic -HTML→PDF converter while PyPDF2 has no knowledge of HTML. - -So what is PyPDF2 truly about? Think about popular `pdftk `__ for a -moment. PyPDF2 does what pdftk does, and it does so within your current Python -process, and it handles a wider range of variant PDF formats [explain]. PyPDF2 -has its own FAQ to answer other questions that have arisen. - -The Reddit `/r/python crowd chatted `__ -obliquely and briefly about PyPDF2 in March 2012. \ No newline at end of file diff --git a/docs/user/installation.md b/docs/user/installation.md new file mode 100644 index 0000000000..62f92c5b3f --- /dev/null +++ b/docs/user/installation.md @@ -0,0 +1,35 @@ +# Installation + +There are several ways to install PyPDF2. The most common option is to use pip. + +## pip + +PyPDF2 requires Python 2.7+ to run, but [Python 2 is dead](https://pythonclock.org/). +Please use a recent version of Python 3 instead. + +Typically Python comes with `pip`, a package installer. Using it you can +install PyPDF2: + +```bash +pip install PyPDF2 +``` + +If you are not a super-user (a system adminstrator / root), you can also just +install PyPDF2 for your current user: + +```bash +pip install --user PyPDF2 +``` + +## Anaconda + +Anaconda users can [install PyPDF2 via conda-forge](https://anaconda.org/conda-forge/pypdf2). + + +## Development Version + +In case you want to use the current version under development: + +```bash +pip install git+https://github.com/py-pdf/PyPDF2.git +``` diff --git a/docs/user/installation.rst b/docs/user/installation.rst deleted file mode 100644 index 7f0ff3a6ee..0000000000 --- a/docs/user/installation.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. _installation: - -============ -Installation -============ - -There are several ways to install PyPDF2. The most common option is to use pip. - -pip -=== - -PyPDF2 requires Python 2.7+ to run. - -Typically Python comes with ``pip``, a package installer. Using it you can -install PyPDF2: - -.. code-block:: bash - - pip install PyPDF2 - -If you are not a super-user (a system adminstrator / root), you can also just -install PyPDF2 for your current user: - -.. code-block:: bash - - pip install --user PyPDF2 - - -Anaconda -======== - -Anaconda users can `install PyPDF2 via conda-forge `_ - - -Development Version -=================== - -In case you want to use the current version under development: - -.. code-block:: bash - - pip install git+https://github.com/py-pdf/PyPDF2.git From fd5051d68c417e3c7875c471b353343c3114dee4 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 16:11:28 +0200 Subject: [PATCH 095/145] DOC: Add pdfrw + pdfminer to comparisons --- docs/user/comparisons.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/user/comparisons.md b/docs/user/comparisons.md index 21a498c831..2f13d0adb4 100644 --- a/docs/user/comparisons.md +++ b/docs/user/comparisons.md @@ -47,3 +47,15 @@ bring the community back to one path of development. Let's see. [MuPDF]: https://mupdf.com/ [PikePDF]: https://pypi.org/project/pikepdf/ [QPDF]: https://github.com/qpdf/qpdf + + +## pdfrw and pdfminer + +I don't have experience with either of those libraries. Please add a +comparison if you know PyPDF2 and [`pdfrw`](https://pypi.org/project/pdfrw/) or +[`pdfminer.six`](https://pypi.org/project/pdfminer.six/)! + +Please be aware that there is also +[`pdfminer`](https://pypi.org/project/pdfminer/) which is not maintained. +Then there is [`pdfrw2`](https://pypi.org/project/pdfrw2/) which doesn't have +a large community behind it. From 3e88206b06373f090948a88aa4a25652103c86f4 Mon Sep 17 00:00:00 2001 From: JavaScriptDude Date: Sat, 9 Apr 2022 15:42:19 -0400 Subject: [PATCH 096/145] BUG: Close File Descriptors in Scripts (#575) Found issue where not closing file descriptors in Windows caused access issues whilst trying to rename generated PDF in the same program flow. Linux did not have an issue. On windows, its required to explicitly close the 'output' file. --- Sample_Code/basic_merging.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sample_Code/basic_merging.py b/Sample_Code/basic_merging.py index 86562effc4..e867d5417d 100644 --- a/Sample_Code/basic_merging.py +++ b/Sample_Code/basic_merging.py @@ -18,3 +18,8 @@ # Write to an output PDF document output = open("document-output.pdf", "wb") merger.write(output) + +# Close File Descriptors +merger.close() +output.close() + From 67439ed6558634c9d182a4fdc9cf22abaf7a7ae4 Mon Sep 17 00:00:00 2001 From: Alexander Myltsev Date: Sat, 9 Apr 2022 22:53:08 +0300 Subject: [PATCH 097/145] DOC: Add Scripts/booklet.py (#469) --- Scripts/booklet.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Scripts/booklet.py diff --git a/Scripts/booklet.py b/Scripts/booklet.py new file mode 100644 index 0000000000..5ec39a8766 --- /dev/null +++ b/Scripts/booklet.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +""" + Layout the pages from a PDF file to print a booklet or brochure. + + The resulting media size is twice the size of the first page + of the source document. If you print the resulting PDF in duplex + (short edge), you get a center fold brochure that you can staple + together and read as a booklet. +""" + +from __future__ import division, print_function +import PyPDF2 +import argparse + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('input', type=argparse.FileType('rb')) + parser.add_argument('output') + args = parser.parse_args() + + reader = PyPDF2.PdfFileReader(args.input) + numPages = reader.getNumPages() + print('Pages in file:', numPages) + + pagesPerSheet = 4 + virtualPages = (numPages + pagesPerSheet - 1) // pagesPerSheet * pagesPerSheet + + firstPage = reader.getPage(0) + mb = firstPage.mediaBox + pageWidth = 2 * mb.getWidth() + pageHeight = mb.getHeight() + print('Medium size:', '{}x{}'.format(pageWidth, pageHeight)) + + writer = PyPDF2.PdfFileWriter() + + def scale(page): + return min(mb.getWidth() / page.mediaBox.getWidth(), mb.getHeight() / page.mediaBox.getHeight()) + + def mergePage(dst, src, xOffset): + pageScale = scale(src) + print('scaling by', pageScale) + dx = (mb.getWidth() - pageScale * src.mediaBox.getWidth()) / 2 + dy = (mb.getHeight() - pageScale * src.mediaBox.getHeight()) / 2 + dst.mergeScaledTranslatedPage(src, scale(src), xOffset + dx, dy) + + def mergePageByNumber(dstPage, pageNumber, xOffset): + if pageNumber >= numPages: + return + print('merging page', pageNumber, 'with offset', xOffset) + page = reader.getPage(pageNumber) + mergePage(dstPage, page, xOffset) + + for i in range(virtualPages // 2): + page = writer.addBlankPage(width=pageWidth, height=pageHeight) + offsets = [0, pageWidth // 2] + if i % 2 == 0: + offsets.reverse() + mergePageByNumber(page, i, offsets[0]) + mergePageByNumber(page, virtualPages - i - 1, offsets[1]) + + writer.write(open(args.output, 'wb')) + + +if __name__ == '__main__': + main() From b76ffcda07ae1c447bf3319e182b41ebf6d2057c Mon Sep 17 00:00:00 2001 From: gitzjm <33447098+gitzjm@users.noreply.github.com> Date: Sun, 10 Apr 2022 04:00:22 +0800 Subject: [PATCH 098/145] =?UTF-8?q?=E4=B8=AD=E6=96=87=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E7=BC=96=E7=A0=81=E9=94=99=E8=AF=AF?= =?UTF-8?q?=20=20Error=20in=20Chinese=20character=20encoding=20(#463)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update generic.py 修复BUG:Name Object 遇到GBK编码时会抛出PyPDF2.utils.PdfReadError: Illegal character in Name Object异常 * Update utils.py 修复BUG:遇到中文时latin-1无法编码抛出UnicodeEncodeError: 'latin-1' codec can't encode characters in position 8-9: ordinal not in range(256)异常 Chinese character can not use 'latin-1' encode --- PyPDF2/generic.py | 6 +++++- PyPDF2/utils.py | 15 +++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 8801358b56..5340353c43 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -481,7 +481,11 @@ def readFromStream(stream, pdf): ignore_eof=True) if debug: print(name) try: - return NameObject(name.decode('utf-8')) + try: + ret=name.decode('utf-8') + except (UnicodeEncodeError, UnicodeDecodeError) as e: + ret=name.decode('gbk') + return NameObject(ret) except (UnicodeEncodeError, UnicodeDecodeError) as e: # Name objects should represent irregular characters # with a '#' followed by the symbol's hex number diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 6edc24018c..e104c394ed 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -237,10 +237,17 @@ def b_(s): if type(s) == bytes: return s else: - r = s.encode('latin-1') - if len(s) < 2: - bc[s] = r - return r + try: + r = s.encode('latin-1') + if len(s) < 2: + bc[s] = r + return r + except Exception as e: + print(s) + r = s.encode('utf-8') + if len(s) < 2: + bc[s] = r + return r def u_(s): From 9e001508ad986d8575c710bddfa501ff579f1115 Mon Sep 17 00:00:00 2001 From: Vladir Parrado Cruz Date: Sat, 9 Apr 2022 16:44:43 -0400 Subject: [PATCH 099/145] ROBUST: Guard 'obj.writeToStream' with 'if obj is not None' + only throw Exception in non-strict mode (#198) - If obj is None we can't write anything to the stream - Using self.strict to raise the exception, it could be useful to keep the use of this for some kind of PDFs. --- PyPDF2/pdf.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index be66f03371..7b7f08bf3a 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -467,7 +467,7 @@ def write(self, stream): # copying in a new copy of the page object. for objIndex in range(len(self._objects)): obj = self._objects[objIndex] - if isinstance(obj, PageObject) and obj.indirectRef != None: + if isinstance(obj, PageObject) and obj.indirectRef is not None: data = obj.indirectRef if data.pdf not in externalReferenceMap: externalReferenceMap[data.pdf] = {} @@ -485,20 +485,22 @@ def write(self, stream): stream.write(self._header + b_("\n")) stream.write(b_("%\xE2\xE3\xCF\xD3\n")) for i in range(len(self._objects)): - idnum = (i + 1) obj = self._objects[i] - object_positions.append(stream.tell()) - stream.write(b_(str(idnum) + " 0 obj\n")) - key = None - if hasattr(self, "_encrypt") and idnum != self._encrypt.idnum: - pack1 = struct.pack(" Date: Sat, 9 Apr 2022 23:04:16 +0200 Subject: [PATCH 100/145] =?UTF-8?q?DOC:=20README.txt=20=E2=9E=94=20README.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PDF_Samples/{README.txt => README.md} | 13 ++----------- Sample_Code/{README.txt => README.md} | 5 +---- docs/user/comparisons.md | 5 +++++ 3 files changed, 8 insertions(+), 15 deletions(-) rename PDF_Samples/{README.txt => README.md} (64%) rename Sample_Code/{README.txt => README.md} (83%) diff --git a/PDF_Samples/README.txt b/PDF_Samples/README.md similarity index 64% rename from PDF_Samples/README.txt rename to PDF_Samples/README.md index b83c84de9d..2e2f1a3c93 100644 --- a/PDF_Samples/README.txt +++ b/PDF_Samples/README.md @@ -1,5 +1,4 @@ -PDF Sample Folder ------------------ +# PDF Sample Folder PDF files are generated by a large variety of sources for many different purposes. One of the goals of PyPDF2 @@ -12,15 +11,7 @@ may be complicated or unconventional files, or they may just be good for testing. The purpose is to insure that when changes to PyPDF2 are made, we keep them in mind. -If you have confidential PDFs that don't work with -PyPDF2, feel free to still e-mail them for debugging - -we won't add PDFs without expressed permission. - (This folder is available through GitHub only) - Feel free to add any type of PDF file or sample code, -either by - - 1) sending it via email to PyPDF2@phaseit.net - 2) including it in a pull request on GitHub +either by including it in a pull request on GitHub diff --git a/Sample_Code/README.txt b/Sample_Code/README.md similarity index 83% rename from Sample_Code/README.txt rename to Sample_Code/README.md index 2d798461b5..3beb430249 100644 --- a/Sample_Code/README.txt +++ b/Sample_Code/README.md @@ -1,11 +1,8 @@ -PyPDF2 Sample Code Folder -------------------------- +# PyPDF2 Sample Code Folder This will contain demonstrations of the many features PyPDF2 is capable of. Example code should make it easy for users to know how to use all aspects of PyPDF2. - - Feel free to add any type of PDF file or sample code, either by including it in a pull request on GitHub diff --git a/docs/user/comparisons.md b/docs/user/comparisons.md index 2f13d0adb4..a75a7be5dc 100644 --- a/docs/user/comparisons.md +++ b/docs/user/comparisons.md @@ -59,3 +59,8 @@ Please be aware that there is also [`pdfminer`](https://pypi.org/project/pdfminer/) which is not maintained. Then there is [`pdfrw2`](https://pypi.org/project/pdfrw2/) which doesn't have a large community behind it. + +And there are more: + + +* [`pyfpdf`](https://github.com/reingart/pyfpdf) From 845f48c75d4a49f7044755336c536c0be53464e2 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 23:05:08 +0200 Subject: [PATCH 101/145] BUG: Code duplication in 2-up.py --- Scripts/2-up.py | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/Scripts/2-up.py b/Scripts/2-up.py index c38071d328..66946d4aa6 100644 --- a/Scripts/2-up.py +++ b/Scripts/2-up.py @@ -3,33 +3,6 @@ import math -def main(): - if (len(sys.argv) != 3): - print("usage: python 2-up.py input_file output_file") - sys.exit(1) - print ("2-up input " + sys.argv[1]) - input1 = PdfFileReader(open(sys.argv[1], "rb")) - output = PdfFileWriter() - for iter in range (0, input1.getNumPages()-1, 2): - lhs = input1.getPage(iter) - rhs = input1.getPage(iter+1) - lhs.mergeTranslatedPage(rhs, lhs.mediaBox.getUpperRight_x(),0, True) - output.addPage(lhs) - print (str(iter) + " "), - sys.stdout.flush() - - print("writing " + sys.argv[2]) - outputStream = open(sys.argv[2], "wb") - output.write(outputStream) - print("done.") - -if __name__ == "__main__": - main() -from PyPDF2 import PdfFileWriter, PdfFileReader -import sys -import math - - def main(): if (len(sys.argv) != 3): print("usage: python 2-up.py input_file output_file") From 384146d497b8343cc312e7f65b590fd67f003ab3 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 9 Apr 2022 23:23:13 +0200 Subject: [PATCH 102/145] STY: 2-up.py code style --- Scripts/2-up.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/Scripts/2-up.py b/Scripts/2-up.py index 66946d4aa6..c3212b428e 100644 --- a/Scripts/2-up.py +++ b/Scripts/2-up.py @@ -1,27 +1,36 @@ -from PyPDF2 import PdfFileWriter, PdfFileReader +""" +Create a booklet-style PDF from a single input. + +Pairs of two pages will be put on one page (left and right) + +usage: python 2-up.py input_file output_file +""" + import sys -import math + +from PyPDF2 import PdfFileReader, PdfFileWriter def main(): - if (len(sys.argv) != 3): + if len(sys.argv) != 3: print("usage: python 2-up.py input_file output_file") sys.exit(1) - print ("2-up input " + sys.argv[1]) - input1 = PdfFileReader(open(sys.argv[1], "rb")) - output = PdfFileWriter() - for iter in range (0, input1.getNumPages()-1, 2): - lhs = input1.getPage(iter) - rhs = input1.getPage(iter+1) - lhs.mergeTranslatedPage(rhs, lhs.mediaBox.getUpperRight_x(),0, True) - output.addPage(lhs) - print (str(iter) + " "), + print("2-up input " + sys.argv[1]) + reader = PdfFileReader(open(sys.argv[1], "rb")) + writer = PdfFileWriter() + for iter in range(0, reader.getNumPages() - 1, 2): + lhs = reader.getPage(iter) + rhs = reader.getPage(iter + 1) + lhs.mergeTranslatedPage(rhs, lhs.mediaBox.getUpperRight_x(), 0, True) + writer.addPage(lhs) + print(str(iter) + " "), sys.stdout.flush() print("writing " + sys.argv[2]) - outputStream = open(sys.argv[2], "wb") - output.write(outputStream) + with open(sys.argv[2], "wb") as fp: + writer.write(fp) print("done.") + if __name__ == "__main__": main() From e0abcf91a3d45c26884708d2bc8394d1f4510147 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 06:37:22 +0200 Subject: [PATCH 103/145] DOC: Encryption/Decryption, Metadata (#724) --- README.md | 13 +++++-- docs/index.rst | 2 ++ docs/user/add-watermark.md | 4 +-- docs/user/cropping-and-transforming.md | 9 +---- docs/user/encryption-decryption.md | 47 ++++++++++++++++++++++++++ docs/user/extract-text.md | 7 ++-- docs/user/merging-pdfs.md | 6 ++-- docs/user/metadata.md | 47 ++++++++++++++++++++++++++ 8 files changed, 116 insertions(+), 19 deletions(-) create mode 100644 docs/user/encryption-decryption.md create mode 100644 docs/user/metadata.md diff --git a/README.md b/README.md index 238a2de217..bfc93db586 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,16 @@ # PyPDF2 PyPDF2 is a free and open-source pure-python PDF library capable of splitting, -merging, cropping, and transforming the pages of PDF files. It can also add -custom data, viewing options, and passwords to PDF files. -PyPDF2 can retrieve text and metadata from PDFs as well. +[merging](https://pypdf2.readthedocs.io/en/latest/user/merging-pdfs.html), +[cropping, and transforming](https://pypdf2.readthedocs.io/en/latest/user/cropping-and-transforming.html) +the pages of PDF files. It can also add +custom data, viewing options, and +[passwords](https://pypdf2.readthedocs.io/en/latest/user/encryption-decryption.html) +to PDF files. PyPDF2 can +[retrieve text](https://pypdf2.readthedocs.io/en/latest/user/extract-text.html) +and +[metadata](https://pypdf2.readthedocs.io/en/latest/user/metadata.html) +from PDFs as well. ## Installation diff --git a/docs/index.rst b/docs/index.rst index 869493e2d9..85e35920dd 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,7 +19,9 @@ You can contribute to `PyPDF2 on Github `_. :maxdepth: 1 user/installation + user/metadata user/extract-text + user/encryption-decryption user/merging-pdfs user/cropping-and-transforming user/add-watermark diff --git a/docs/user/add-watermark.md b/docs/user/add-watermark.md index fdf71f4068..33fd7f43f5 100644 --- a/docs/user/add-watermark.md +++ b/docs/user/add-watermark.md @@ -5,10 +5,10 @@ from PyPDF2 import PdfFileWriter, PdfFileReader # Read the watermark -watermark = PdfFileReader(open("watermark.pdf", "rb")) +watermark = PdfFileReader("watermark.pdf") # Read the page without watermark -reader = PdfFileReader(open("example.pdf", "rb")) +reader = PdfFileReader("example.pdf") page = reader.pages[0] # Add the watermark to the page diff --git a/docs/user/cropping-and-transforming.md b/docs/user/cropping-and-transforming.md index 25f72bd575..9791452e5a 100644 --- a/docs/user/cropping-and-transforming.md +++ b/docs/user/cropping-and-transforming.md @@ -3,7 +3,7 @@ ```python from PyPDF2 import PdfFileWriter, PdfFileReader -reader = PdfFileReader(open("example.pdf", "rb")) +reader = PdfFileReader("example.pdf") writer = PdfFileWriter() # add page 1 from reader to output document, unchanged: @@ -25,13 +25,6 @@ writer.addPage(page3) # comment the the encription lines, if that's the case, to try this out: writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") -# encrypt your new PDF and add a password: -password = "secret" -writer.encrypt(password) - -# add a title to your new PDF's metadata: -writer.addMetadata({"/Title": "PDF Metadata Title"}) - # finally, write to document-output.pdf with open("PyPDF2-output.pdf", "wb") as fp: output.write(fp) diff --git a/docs/user/encryption-decryption.md b/docs/user/encryption-decryption.md new file mode 100644 index 0000000000..a7aaed2fb4 --- /dev/null +++ b/docs/user/encryption-decryption.md @@ -0,0 +1,47 @@ +# Encryption and Decryption of PDFs + +## Encrypt + +Add a password to a PDF (encrypt it): + +```python +from PyPDF2 import PdfFileReader, PdfFileWriter + +reader = PdfFileReader("example.pdf") +writer = PdfFileWriter() + +# Add all pages to the writer +for i in range(reader.numPages): + page = reader.pages[i] + writer.addPage(page) + +# Add a password to the new PDF +writer.encrypt("my-secret-password") + +# Save the new PDF to a file +with open("encrypted-pdf.pdf", "wb") as f: + writer.write(f) +``` + +## Decrypt + +Remove the password from a PDF (decrypt it): + +```python +from PyPDF2 import PdfFileReader, PdfFileWriter + +reader = PdfFileReader("encrypted-pdf.pdf") +writer = PdfFileWriter() + +if reader.isEncrypted: + reader.decrypt("my-secret-password") + +# Add all pages to the writer +for i in range(reader.numPages): + page = reader.pages[i] + writer.addPage(page) + +# Save the new PDF to a file +with open("decrypted-pdf.pdf", "wb") as f: + writer.write(f) +``` diff --git a/docs/user/extract-text.md b/docs/user/extract-text.md index b7d6b303e4..bf6c5fa73f 100644 --- a/docs/user/extract-text.md +++ b/docs/user/extract-text.md @@ -5,10 +5,9 @@ You can extract text from a PDF like this: ```python from PyPDF2 import PdfFileReader -with open("example.pdf", "rb") as fp: - reader = PdfFileReader(fp) - pageObj = reader.pages[0] - print(pageObj.extractText()) +reader = PdfFileReader("example.pdf") +page = reader.pages[0] +print(page.extractText()) ``` ## Why Text Extraction is hard diff --git a/docs/user/merging-pdfs.md b/docs/user/merging-pdfs.md index 73d214339b..f4a29bd31b 100644 --- a/docs/user/merging-pdfs.md +++ b/docs/user/merging-pdfs.md @@ -5,11 +5,13 @@ from PyPDF2 import PdfFileMerger merger = PdfFileMerger() -for pdf in ["file1.pdf", "file2.pdf", "file3.pdf", "file4.pdf"]: +for pdf in ["file1.pdf", "file2.pdf", "file3.pdf"]: merger.append(pdf) merger.write("merged-pdf.pdf") merger.close() ``` -For more details, see an excellent answer on [StackOverflow](https://stackoverflow.com/questions/3444645/merge-pdf-files) by Paul Rooney. +For more details, see an excellent answer on +[StackOverflow](https://stackoverflow.com/questions/3444645/merge-pdf-files) +by Paul Rooney. diff --git a/docs/user/metadata.md b/docs/user/metadata.md new file mode 100644 index 0000000000..eb80c3ad71 --- /dev/null +++ b/docs/user/metadata.md @@ -0,0 +1,47 @@ +# Metadata + +## Reading metadata + +```python +from PyPDF2 import PdfFileReader + +reader = PdfFileReader("example.pdf") + +info = reader.getDocumentInfo() + +print(reader.numPages) + +# All of the following could be None! +print(info.author) +print(info.creator) +print(info.producer) +print(info.subject) +print(info.title) +``` + +## Writing metadata + +```python +from PyPDF2 import PdfFileReader, PdfFileWriter + +reader = PdfFileReader("example.pdf") +writer = PdfFileWriter() + +# Add all pages to the writer +for i in range(reader.numPages): + page = reader.pages[i] + writer.addPage(page) + +# Add the metadata +writer.addMetadata( + { + "/Author": "Martin", + "/Producer": "Libre Writer", + } +) + +# Save the new PDF to a file +with open("meta-pdf.pdf", "wb") as f: + writer.write(f) + +``` From 8be07689269e511f7165be2228e48c7c2e2247f7 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 06:51:11 +0200 Subject: [PATCH 104/145] DOC: Add more merging details (#725) --- docs/user/merging-pdfs.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/user/merging-pdfs.md b/docs/user/merging-pdfs.md index f4a29bd31b..8325c140f0 100644 --- a/docs/user/merging-pdfs.md +++ b/docs/user/merging-pdfs.md @@ -1,5 +1,7 @@ # Merging PDF files +## Basic Example + ```python from PyPDF2 import PdfFileMerger @@ -15,3 +17,32 @@ merger.close() For more details, see an excellent answer on [StackOverflow](https://stackoverflow.com/questions/3444645/merge-pdf-files) by Paul Rooney. + +## Showing more merging options + +```python +from PyPDF2 import PdfFileMerger + +merger = PdfFileMerger() + +input1 = open("document1.pdf", "rb") +input2 = open("document2.pdf", "rb") +input3 = open("document3.pdf", "rb") + +# add the first 3 pages of input1 document to output +merger.append(fileobj=input1, pages=(0, 3)) + +# insert the first page of input2 into the output beginning after the second page +merger.merge(position=2, fileobj=input2, pages=(0, 1)) + +# append entire input3 document to the end of the output document +merger.append(input3) + +# Write to an output PDF document +output = open("document-output.pdf", "wb") +merger.write(output) + +# Close File Descriptors +merger.close() +output.close() +``` \ No newline at end of file From 410595fd83e519b8d48c0e14632e5dc973d670da Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 07:00:46 +0200 Subject: [PATCH 105/145] DOC: Simplify usage example on README --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bfc93db586..cf24281c6a 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,10 @@ pip install PyPDF2 ```python from PyPDF2 import PdfFileReader -with open("Resources/crazyones.pdf", "rb") as fp: - reader = PdfFileReader(fp) - number_of_pages = reader.getNumPages() - page = reader.pages[0] - text = page.extractText() +reader = PdfFileReader("example.pdf") +number_of_pages = reader.numPages +page = reader.pages[0] +text = page.extractText() ``` PyPDF2 can do a lot more, e.g. splitting, merging, reading and creating From a96bc3c3bcd856b6e1b8912dae2a2ab23c0016f7 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 13:34:06 +0200 Subject: [PATCH 106/145] PKG: Make Tests not a subpackage (#728) Only distribute it in the source Closes #727 --- MANIFEST.in | 4 +++- setup.cfg | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index ae514141a0..d5bd0136c5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,6 @@ include CHANGELOG include LICENSE -include Scripts/pdfcat recursive-include Resources * +recursive-include Sample_Code * +recursive-include Scripts * +recursive-include Tests * diff --git a/setup.cfg b/setup.cfg index 97acc6e8b1..de273e7053 100644 --- a/setup.cfg +++ b/setup.cfg @@ -30,5 +30,5 @@ classifiers = Topic :: Software Development :: Libraries :: Python Modules [options] -packages = PyPDF2, Scripts, Tests, Sample_Code +packages = PyPDF2 python_requires = >=2.7 From 8f8e0ae22418107eef6408edc9e4c87771ca6871 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 14:39:46 +0200 Subject: [PATCH 107/145] BUG: Fix ASCII85Decode.decode assertion (#729) BUG: Off-by-one FIX: Set 2**32-1 inclusive Closes #312 Credits to Michael Sander (speedplane) who included it here: https://github.com/py-pdf/PyPDF2/pull/333 --- PyPDF2/filters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 9b3388f8ae..44c1b496f4 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -308,7 +308,7 @@ def decode(data, decodeParms=None): group[2] * (85**2) + \ group[3] * 85 + \ group[4] - assert b < (2**32 - 1) + assert b <= (2**32 - 1) c4 = chr((b >> 0) % 256) c3 = chr((b >> 8) % 256) c2 = chr((b >> 16) % 256) From d123c639210f02f920dec5e983d86f36aa97834f Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 17:13:38 +0200 Subject: [PATCH 108/145] MAINT: Remove Sample_Code (#726) Everything in the Sample_Code folder is now in the docs: https://pypdf2.readthedocs.io/en/latest/ --- MANIFEST.in | 1 - PDF_Samples/README.md | 2 +- README.md | 3 +-- Sample_Code/README.md | 8 ------ Sample_Code/basic_features.py | 51 ----------------------------------- Sample_Code/basic_merging.py | 25 ----------------- Sample_Code/makesimple.py | 38 -------------------------- Sample_Code/makesimple.sh | 19 ------------- 8 files changed, 2 insertions(+), 145 deletions(-) delete mode 100644 Sample_Code/README.md delete mode 100644 Sample_Code/basic_features.py delete mode 100644 Sample_Code/basic_merging.py delete mode 100755 Sample_Code/makesimple.py delete mode 100755 Sample_Code/makesimple.sh diff --git a/MANIFEST.in b/MANIFEST.in index d5bd0136c5..c41e937399 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,5 @@ include CHANGELOG include LICENSE recursive-include Resources * -recursive-include Sample_Code * recursive-include Scripts * recursive-include Tests * diff --git a/PDF_Samples/README.md b/PDF_Samples/README.md index 2e2f1a3c93..640d110334 100644 --- a/PDF_Samples/README.md +++ b/PDF_Samples/README.md @@ -13,5 +13,5 @@ when changes to PyPDF2 are made, we keep them in mind. (This folder is available through GitHub only) -Feel free to add any type of PDF file or sample code, +Feel free to add any type of PDF file either by including it in a pull request on GitHub diff --git a/README.md b/README.md index cf24281c6a..6e58f10ab7 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,7 @@ text = page.extractText() PyPDF2 can do a lot more, e.g. splitting, merging, reading and creating annotations, decrypting and encrypting, and more. -Please see [the documentation](https://pypdf2.readthedocs.io/en/latest/), -[`Sample_Code`](https://github.com/py-pdf/PyPDF2/tree/master/Sample_Code) +Please see [the documentation](https://pypdf2.readthedocs.io/en/latest/) and [`Scripts`](https://github.com/py-pdf/PyPDF2/tree/master/Scripts) for more usage examples! diff --git a/Sample_Code/README.md b/Sample_Code/README.md deleted file mode 100644 index 3beb430249..0000000000 --- a/Sample_Code/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# PyPDF2 Sample Code Folder - -This will contain demonstrations of the many features -PyPDF2 is capable of. Example code should make it easy -for users to know how to use all aspects of PyPDF2. - -Feel free to add any type of PDF file or sample code, -either by including it in a pull request on GitHub diff --git a/Sample_Code/basic_features.py b/Sample_Code/basic_features.py deleted file mode 100644 index 35d9802472..0000000000 --- a/Sample_Code/basic_features.py +++ /dev/null @@ -1,51 +0,0 @@ -from PyPDF2 import PdfFileWriter, PdfFileReader - -output = PdfFileWriter() -input1 = PdfFileReader(open("document1.pdf", "rb")) - -# print how many pages input1 has: -print("document1.pdf has %d pages." % input1.getNumPages()) - -# print how many pages input1 has in python3: -# print("This chart has {} pages.".format(input1.getNumPages())) - -# add page 1 from input1 to output document, unchanged: -output.addPage(input1.getPage(0)) - -# add page 2 from input1, but rotated clockwise 90 degrees: -output.addPage(input1.getPage(1).rotateClockwise(90)) - -# add page 3 from input1, rotated the other way: -output.addPage(input1.getPage(2).rotateCounterClockwise(90)) -# alt: output.addPage(input1.getPage(2).rotateClockwise(270)) - -# add page 4 from input1, but first add a watermark from another PDF: -page4 = input1.getPage(3) -watermark = PdfFileReader(open("watermark.pdf", "rb")) -page4.mergePage(watermark.getPage(0)) -output.addPage(page4) - - -# add page 5 from input1, but crop it to half size: -page5 = input1.getPage(4) -page5.mediaBox.upperRight = ( - page5.mediaBox.getUpperRight_x() / 2, - page5.mediaBox.getUpperRight_y() / 2 -) -output.addPage(page5) - -# add some Javascript to launch the print window on opening this PDF. -# the password dialog may prevent the print dialog from being shown, -# comment the the encription lines, if that's the case, to try this out: -output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") - -# encrypt your new PDF and add a password: -password = "secret" -output.encrypt(password) - -# add a title to your new PDF's metadata: -output.addMetadata({'/Title': 'PDF Metadata Title'}) - -# finally, write "output" to document-output.pdf -with open("PyPDF2-output.pdf", "wb") as outputStream: - output.write(outputStream) diff --git a/Sample_Code/basic_merging.py b/Sample_Code/basic_merging.py deleted file mode 100644 index e867d5417d..0000000000 --- a/Sample_Code/basic_merging.py +++ /dev/null @@ -1,25 +0,0 @@ -from PyPDF2 import PdfFileMerger - -merger = PdfFileMerger() - -input1 = open("document1.pdf", "rb") -input2 = open("document2.pdf", "rb") -input3 = open("document3.pdf", "rb") - -# add the first 3 pages of input1 document to output -merger.append(fileobj = input1, pages = (0,3)) - -# insert the first page of input2 into the output beginning after the second page -merger.merge(position = 2, fileobj = input2, pages = (0,1)) - -# append entire input3 document to the end of the output document -merger.append(input3) - -# Write to an output PDF document -output = open("document-output.pdf", "wb") -merger.write(output) - -# Close File Descriptors -merger.close() -output.close() - diff --git a/Sample_Code/makesimple.py b/Sample_Code/makesimple.py deleted file mode 100755 index a05ac7c941..0000000000 --- a/Sample_Code/makesimple.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python -"Make some simple multipage pdf files." - -from __future__ import print_function -from sys import argv - -from reportlab.pdfgen import canvas - -point = 1 -inch = 72 - -TEXT = """%s page %d of %d - -a wonderful file -created with Sample_Code/makesimple.py""" - - -def make_pdf_file(output_filename, np): - title = output_filename - c = canvas.Canvas(output_filename, pagesize=(8.5 * inch, 11 * inch)) - c.setStrokeColorRGB(0,0,0) - c.setFillColorRGB(0,0,0) - c.setFont("Helvetica", 12 * point) - for pn in range(1, np + 1): - v = 10 * inch - for subtline in (TEXT % (output_filename, pn, np)).split( '\n' ): - c.drawString( 1 * inch, v, subtline ) - v -= 12 * point - c.showPage() - c.save() - -if __name__ == "__main__": - nps = [None, 5, 11, 17] - for i, np in enumerate(nps): - if np: - filename = "simple%d.pdf" % i - make_pdf_file(filename, np) - print ("Wrote", filename) diff --git a/Sample_Code/makesimple.sh b/Sample_Code/makesimple.sh deleted file mode 100755 index 29980e59ca..0000000000 --- a/Sample_Code/makesimple.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -n=1 -for np in 5 11 17; do - p=1 - f=simple$n.pdf - while expr $p \<= $np > /dev/null; do - if [ $p != 1 ]; then - echo " \c" - fi - echo "$f page $p of $np" - echo "" - echo "an incredible, yet simple example" - echo "Created with Sample_Code/makesimple.sh" - p=$(expr $p + 1) - done | enscript --no-header -o - |ps2pdf - $f - echo $f - n=$(expr $n + 1) - done From 984841ce6d3a95245de1ac169d4d2e8dc8badcbf Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 18:33:39 +0200 Subject: [PATCH 109/145] TST: Fix test_get_images (#730) BUG: Two tests with the same name existed MAINT: Move _xobj_to_image from Scrips (image extractor) into PyPDF2. This reduces the overall code size and could be useful for others. I make it private for the moment as I'm uncertain if it should be in PyPDF2 --- PyPDF2/filters.py | 45 +++++++++++++++++++++++ Scripts/pdf-image-extractor.py | 66 ++++++++++++---------------------- Tests/test_reader.py | 58 +++++++----------------------- 3 files changed, 80 insertions(+), 89 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 44c1b496f4..958a13a9fc 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -420,3 +420,48 @@ def decodeStreamData(stream): # unsupported filter raise NotImplementedError("unsupported filter %s" % filterType) return data + + +def _xobj_to_image(x_object_obj): + """ + Users need to have the pillow package installed. + + It's unclear if PyPDF2 will keep this function here, hence it's private. + It might get removed at any point. + + :return: Tuple[file extension, bytes] + """ + import io + from PIL import Image + + size = (x_object_obj["/Width"], x_object_obj["/Height"]) + data = x_object_obj.getData() + if x_object_obj["/ColorSpace"] == "/DeviceRGB": + mode = "RGB" + else: + mode = "P" + extension = None + if "/Filter" in x_object_obj: + if x_object_obj["/Filter"] == "/FlateDecode": + extension = ".png" + img = Image.frombytes(mode, size, data) + if "/SMask" in x_object_obj: # add alpha channel + alpha = Image.frombytes("L", size, x_object_obj["/SMask"].getData()) + img.putalpha(alpha) + img_byte_arr = io.BytesIO() + img.save(img_byte_arr, format="PNG") + data = img_byte_arr.getvalue() + elif x_object_obj["/Filter"] == "/DCTDecode": + extension = ".jpg" + elif x_object_obj["/Filter"] == "/JPXDecode": + extension = ".jp2" + elif x_object_obj["/Filter"] == "/CCITTFaxDecode": + extension = ".tiff" + else: + extension = ".png" + img = Image.frombytes(mode, size, data) + img_byte_arr = io.BytesIO() + img.save(img_byte_arr, format="PNG") + data = img_byte_arr.getvalue() + + return extension, data diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index 0299c06883..916c81564f 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -1,57 +1,37 @@ -''' +""" Extract images from PDF without resampling or altering. Adapted from work by Sylvain Pelissier http://stackoverflow.com/questions/2693820/extract-images-from-pdf-without-resampling-in-python -''' +""" import sys import PyPDF2 -from PIL import Image +from PyPDF2.filters import _xobj_to_image -if (len(sys.argv) != 2): - print("\nUsage: python {} input_file\n".format(sys.argv[0])) - sys.exit(1) -pdf = sys.argv[1] +def main(pdf: str): + reader = PyPDF2.PdfFileReader(open(pdf, "rb")) + page = reader.pages[30] -if __name__ == '__main__': - input1 = PyPDF2.PdfFileReader(open(pdf, "rb")) - page0 = input1.getPage(30) - - if '/XObject' in page0['/Resources']: - xObject = page0['/Resources']['/XObject'].getObject() + if "/XObject" in page["/Resources"]: + xObject = page["/Resources"]["/XObject"].getObject() for obj in xObject: - if xObject[obj]['/Subtype'] == '/Image': - size = (xObject[obj]['/Width'], xObject[obj]['/Height']) - data = xObject[obj].getData() - if xObject[obj]['/ColorSpace'] == '/DeviceRGB': - mode = "RGB" - else: - mode = "P" - - if '/Filter' in xObject[obj]: - if xObject[obj]['/Filter'] == '/FlateDecode': - img = Image.frombytes(mode, size, data) - if "/SMask" in xObject[obj]: # add alpha channel - alpha = Image.frombytes("L", size, xObject[obj]["/SMask"].getData()) - img.putalpha(alpha) - img.save(obj[1:] + ".png") - elif xObject[obj]['/Filter'] == '/DCTDecode': - img = open(obj[1:] + ".jpg", "wb") - img.write(data) - img.close() - elif xObject[obj]['/Filter'] == '/JPXDecode': - img = open(obj[1:] + ".jp2", "wb") - img.write(data) - img.close() - elif xObject[obj]['/Filter'] == '/CCITTFaxDecode': - img = open(obj[1:] + ".tiff", "wb") - img.write(data) - img.close() - else: - img = Image.frombytes(mode, size, data) - img.save(obj[1:] + ".png") + if xObject[obj]["/Subtype"] == "/Image": + extension, byte_stream = _xobj_to_image(xObject[obj]) + if extension is not None: + filename = obj[1:] + ".png" + with open(filename, "wb") as img: + img.write(byte_stream) else: print("No image found.") + + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("\nUsage: python {} input_file\n".format(sys.argv[0])) + sys.exit(1) + + pdf = sys.argv[1] + main(pdf) diff --git a/Tests/test_reader.py b/Tests/test_reader.py index 3edd23f484..fb81dc923e 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -2,6 +2,7 @@ import os import pytest import PyPDF2 +from PyPDF2.filters import decodeStreamData, _xobj_to_image TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -84,61 +85,26 @@ def test_get_outlines(src, outline_elements): ], ) def test_get_images(src, nb_images): - from PIL import Image - - input1 = PyPDF2.PdfFileReader(open(src, "rb")) + reader = PyPDF2.PdfFileReader(open(src, "rb")) with pytest.raises(TypeError): - page0 = input1.pages["0"] + page = reader.pages["0"] - page0 = input1.pages[-1] - page0 = input1.pages[0] + page = reader.pages[-1] + page = reader.pages[0] images_extracted = [] - if "/XObject" in page0["/Resources"]: - xObject = page0["/Resources"]["/XObject"].getObject() + if "/XObject" in page["/Resources"]: + xObject = page["/Resources"]["/XObject"].getObject() for obj in xObject: if xObject[obj]["/Subtype"] == "/Image": - size = (xObject[obj]["/Width"], xObject[obj]["/Height"]) - data = xObject[obj].getData() - if xObject[obj]["/ColorSpace"] == "/DeviceRGB": - mode = "RGB" - else: - mode = "P" - - filename = None - if "/Filter" in xObject[obj]: - if xObject[obj]["/Filter"] == "/FlateDecode": - img = Image.frombytes(mode, size, data) - if "/SMask" in xObject[obj]: # add alpha channel - alpha = Image.frombytes( - "L", size, xObject[obj]["/SMask"].getData() - ) - img.putalpha(alpha) - filename = obj[1:] + ".png" - img.save(filename) - elif xObject[obj]["/Filter"] == "/DCTDecode": - filename = obj[1:] + ".jpg" - img = open(filename, "wb") - img.write(data) - img.close() - elif xObject[obj]["/Filter"] == "/JPXDecode": - filename = obj[1:] + ".jp2" - img = open(filename, "wb") - img.write(data) - img.close() - elif xObject[obj]["/Filter"] == "/CCITTFaxDecode": - filename = obj[1:] + ".tiff" - img = open(filename, "wb") - img.write(data) - img.close() - else: - img = Image.frombytes(mode, size, data) + extension, byte_stream = _xobj_to_image(xObject[obj]) + if extension is not None: filename = obj[1:] + ".png" - img.save(filename) - if filename is not None: + with open(filename, "wb") as img: + img.write(byte_stream) images_extracted.append(filename) else: print("No image found.") @@ -155,7 +121,7 @@ def test_get_images(src, nb_images): (False, False, False), ], ) -def test_get_images(strict, with_prev_0, should_fail): +def test_get_images_raw(strict, with_prev_0, should_fail): pdf_data = b"%%PDF-1.7\n" \ b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" \ b"2 0 obj << >> endobj\n" \ From 93a6063dfa93b5439b95d3a39f4e9bb4892f77f2 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 18:35:11 +0200 Subject: [PATCH 110/145] STY: Apply black --- PyPDF2/__init__.py | 1 + PyPDF2/_version.py | 2 +- Scripts/booklet.py | 21 +++++++++-------- Tests/test_reader.py | 55 +++++++++++++++++++++++--------------------- docs/conf.py | 15 ++++++------ 5 files changed, 51 insertions(+), 43 deletions(-) diff --git a/PyPDF2/__init__.py b/PyPDF2/__init__.py index f458c0ea6e..bace8bf723 100644 --- a/PyPDF2/__init__.py +++ b/PyPDF2/__init__.py @@ -2,4 +2,5 @@ from .merger import PdfFileMerger from .pagerange import PageRange, parse_filename_page_ranges from ._version import __version__ + __all__ = ["pdf", "PdfFileMerger"] diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index b5476c1479..beee42a9d2 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = '1.27.2' +__version__ = "1.27.2" diff --git a/Scripts/booklet.py b/Scripts/booklet.py index 5ec39a8766..d669c6b3d6 100644 --- a/Scripts/booklet.py +++ b/Scripts/booklet.py @@ -16,13 +16,13 @@ def main(): parser = argparse.ArgumentParser() - parser.add_argument('input', type=argparse.FileType('rb')) - parser.add_argument('output') + parser.add_argument("input", type=argparse.FileType("rb")) + parser.add_argument("output") args = parser.parse_args() reader = PyPDF2.PdfFileReader(args.input) numPages = reader.getNumPages() - print('Pages in file:', numPages) + print("Pages in file:", numPages) pagesPerSheet = 4 virtualPages = (numPages + pagesPerSheet - 1) // pagesPerSheet * pagesPerSheet @@ -31,16 +31,19 @@ def main(): mb = firstPage.mediaBox pageWidth = 2 * mb.getWidth() pageHeight = mb.getHeight() - print('Medium size:', '{}x{}'.format(pageWidth, pageHeight)) + print("Medium size:", "{}x{}".format(pageWidth, pageHeight)) writer = PyPDF2.PdfFileWriter() def scale(page): - return min(mb.getWidth() / page.mediaBox.getWidth(), mb.getHeight() / page.mediaBox.getHeight()) + return min( + mb.getWidth() / page.mediaBox.getWidth(), + mb.getHeight() / page.mediaBox.getHeight(), + ) def mergePage(dst, src, xOffset): pageScale = scale(src) - print('scaling by', pageScale) + print("scaling by", pageScale) dx = (mb.getWidth() - pageScale * src.mediaBox.getWidth()) / 2 dy = (mb.getHeight() - pageScale * src.mediaBox.getHeight()) / 2 dst.mergeScaledTranslatedPage(src, scale(src), xOffset + dx, dy) @@ -48,7 +51,7 @@ def mergePage(dst, src, xOffset): def mergePageByNumber(dstPage, pageNumber, xOffset): if pageNumber >= numPages: return - print('merging page', pageNumber, 'with offset', xOffset) + print("merging page", pageNumber, "with offset", xOffset) page = reader.getPage(pageNumber) mergePage(dstPage, page, xOffset) @@ -60,8 +63,8 @@ def mergePageByNumber(dstPage, pageNumber, xOffset): mergePageByNumber(page, i, offsets[0]) mergePageByNumber(page, virtualPages - i - 1, offsets[1]) - writer.write(open(args.output, 'wb')) + writer.write(open(args.output, "wb")) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/Tests/test_reader.py b/Tests/test_reader.py index fb81dc923e..dcc9c275a9 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -122,32 +122,35 @@ def test_get_images(src, nb_images): ], ) def test_get_images_raw(strict, with_prev_0, should_fail): - pdf_data = b"%%PDF-1.7\n" \ - b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" \ - b"2 0 obj << >> endobj\n" \ - b"3 0 obj << >> endobj\n" \ - b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" \ - b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" \ - b" /Resources << /Font << >> >>" \ - b" /Rotate 0 /Type /Page >> endobj\n" \ - b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" \ - b"xref 1 5\n" \ - b"%010d 00000 n\n" \ - b"%010d 00000 n\n" \ - b"%010d 00000 n\n" \ - b"%010d 00000 n\n" \ - b"%010d 00000 n\n" \ - b"trailer << %s/Root 5 0 R /Size 6 >>\n" \ - b"startxref %d\n" \ - b"%%%%EOF" - pdf_data = pdf_data % (pdf_data.find(b"1 0 obj"), - pdf_data.find(b"2 0 obj"), - pdf_data.find(b"3 0 obj"), - pdf_data.find(b"4 0 obj"), - pdf_data.find(b"5 0 obj"), - b"/Prev 0 " if with_prev_0 else b"", - pdf_data.find(b"xref"), - ) + pdf_data = ( + b"%%PDF-1.7\n" + b"1 0 obj << /Count 1 /Kids [4 0 R] /Type /Pages >> endobj\n" + b"2 0 obj << >> endobj\n" + b"3 0 obj << >> endobj\n" + b"4 0 obj << /Contents 3 0 R /CropBox [0.0 0.0 2550.0 3508.0]" + b" /MediaBox [0.0 0.0 2550.0 3508.0] /Parent 1 0 R" + b" /Resources << /Font << >> >>" + b" /Rotate 0 /Type /Page >> endobj\n" + b"5 0 obj << /Pages 1 0 R /Type /Catalog >> endobj\n" + b"xref 1 5\n" + b"%010d 00000 n\n" + b"%010d 00000 n\n" + b"%010d 00000 n\n" + b"%010d 00000 n\n" + b"%010d 00000 n\n" + b"trailer << %s/Root 5 0 R /Size 6 >>\n" + b"startxref %d\n" + b"%%%%EOF" + ) + pdf_data = pdf_data % ( + pdf_data.find(b"1 0 obj"), + pdf_data.find(b"2 0 obj"), + pdf_data.find(b"3 0 obj"), + pdf_data.find(b"4 0 obj"), + pdf_data.find(b"5 0 obj"), + b"/Prev 0 " if with_prev_0 else b"", + pdf_data.find(b"xref"), + ) pdf_stream = io.BytesIO(pdf_data) if should_fail: with pytest.raises(PyPDF2.pdf.utils.PdfReadError): diff --git a/docs/conf.py b/docs/conf.py index f4cf4c4829..18cc5134eb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,14 +11,15 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. import os import sys + sys.path.insert(0, os.path.abspath(".")) sys.path.insert(0, os.path.abspath("../")) # -- Project information ----------------------------------------------------- -project = 'PyPDF2' -copyright = '2006 - 2008, Mathieu Fenniak' -author = 'Mathieu Fenniak' +project = "PyPDF2" +copyright = "2006 - 2008, Mathieu Fenniak" +author = "Mathieu Fenniak" # -- General configuration --------------------------------------------------- @@ -37,12 +38,12 @@ ] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # -- Options for HTML output ------------------------------------------------- @@ -50,7 +51,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -73,4 +74,4 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] From 62a7c96497fb8aeb3008f63608893100b5722a5e Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 10 Apr 2022 18:42:46 +0200 Subject: [PATCH 111/145] REL: 1.27.3 - PKG: Make Tests not a subpackage (#728) - BUG: Fix ASCII85Decode.decode assertion (#729) - BUG: Error in Chinese character encoding (#463) - BUG: Code duplication in Scripts/2-up.py - ROBUST: Guard 'obj.writeToStream' with 'if obj is not None' - ROBUST: Ignore a /Prev entry with the value 0 in the trailer - MAINT: Remove Sample_Code (#726) - TST: Close file handle in test_writer (#722) - TST: Fix test_get_images (#730) - DEV: Make tox use pytest and add more Python versions (#721) - DOC: Many (#720, #723-725, #469) --- CHANGELOG | 14 ++++++++++++++ PyPDF2/_version.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 87decebe4a..76d58b86d6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -51,6 +51,20 @@ Patch release 1.27.2, 2022-04-09 PyPDF2. It was removed by accident in 1.27.0, but might get removed with 2.0.0 See https://github.com/py-pdf/PyPDF2/discussions/718 for discussion +Patch release 1.27.3, 2022-04-10 + +- PKG: Make Tests not a subpackage (#728) +- BUG: Fix ASCII85Decode.decode assertion (#729) +- BUG: Error in Chinese character encoding (#463) +- BUG: Code duplication in Scripts/2-up.py +- ROBUST: Guard 'obj.writeToStream' with 'if obj is not None' +- ROBUST: Ignore a /Prev entry with the value 0 in the trailer +- MAINT: Remove Sample_Code (#726) +- TST: Close file handle in test_writer (#722) +- TST: Fix test_get_images (#730) +- DEV: Make tox use pytest and add more Python versions (#721) +- DOC: Many (#720, #723-725, #469) + Version 1.26.0, 2016-05-18 -------------------------- diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index beee42a9d2..5976158e87 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = "1.27.2" +__version__ = "1.27.3" From 17f2a38864654f778e77a7e66b9cccaf92f4c251 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Mon, 11 Apr 2022 17:02:47 +0200 Subject: [PATCH 112/145] =?UTF-8?q?DOC:=20Miscallenious=20=E2=9E=94=20Misc?= =?UTF-8?q?ellaneous=20(Typo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you MasterOdin! Closes #734 --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 76d58b86d6..0caf51b0ed 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -30,7 +30,7 @@ Developer Experience Improvements (DEV): - Pre commit: Developers can now `pre-commit install` to avoid tiny issues like trailing whitespaces -Miscallenious: +Miscellaneous: - Add the LICENSE file to the distributed packages (#288) - Use setuptools instead of distutils (#599) From f881d895251a8849e1dbfd57cb40f2a17f36d191 Mon Sep 17 00:00:00 2001 From: Matthew Peveler Date: Mon, 11 Apr 2022 11:08:17 -0400 Subject: [PATCH 113/145] PKG: Add more precise license field to setup (#733) --- setup.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.cfg b/setup.cfg index de273e7053..1180d044e5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -10,6 +10,8 @@ description = PDF toolkit long_description = file: README.md long_description_content_type = text/markdown +license = BSD-3-Clause + url = https://pypdf2.readthedocs.io/en/latest/ project_urls = Source = https://github.com/py-pdf/PyPDF2 From 966eb5d588546352880492c34860beefa33ece7a Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Mon, 11 Apr 2022 21:25:13 +0200 Subject: [PATCH 114/145] TST: Add test for issue #297 It's not fixed, but at least we can test it now easily. We still get: ValueError: invalid literal for int() with base 10 --- Resources/issue-297.pdf | Bin 0 -> 958 bytes Tests/test_reader.py | 14 +++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Resources/issue-297.pdf diff --git a/Resources/issue-297.pdf b/Resources/issue-297.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ad5d2372f08e3b2620e56d226595b29cd11c4ecf GIT binary patch literal 958 zcmZuwU2mH}5PZL1u`gC^sSO+$oTOHyIyGuOTw6A8Rv#{~p+xu&!8vkU^}lBqo0O8S zgv1RyJ3D*JVD%;XD9@!35?nBk&tf_i;KV;m1m{LsRhW#<%e^gfjWu|bwI*PtGCKLE z)3QYUIkCCXFlnIcYk@lDa)KGXx@|S8b7S_}f-5=%F4`kBYLtDSr!{QHEb;w~EW2d> z_8)T7afKw+w!FYJS2J^ftxJ?pdN8^4jzzVl#2NyYA>tZqv#%1e%cJRrv#Lz8K?_@l z#z<4cgQXJPa3VvZ({ph#z2Rv9^E*wJQr8LHrE!m@nc)Zm)#<=naY6B(IzOqiwF97eEs5P3>qA zB7U8z8XGsxS1ex8=7}P7t`n2yIs<2+lC{|>-6CCEycIpgc^j!XWSiAovtC(&i0x3rY9#9Td_9as18leA>Bxp|SstNMil0a6(f#5pAV%vU~jb fHu*24UTO1;vB3Z3n$6T!Rkm?*G4{k@FkeQm)`|E( literal 0 HcmV?d00001 diff --git a/Tests/test_reader.py b/Tests/test_reader.py index dcc9c275a9..96cddeb8b6 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -1,7 +1,7 @@ import io import os import pytest -import PyPDF2 +import PyPDF2.utils from PyPDF2.filters import decodeStreamData, _xobj_to_image TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -157,3 +157,15 @@ def test_get_images_raw(strict, with_prev_0, should_fail): PyPDF2.PdfFileReader(pdf_stream, strict=strict) else: PyPDF2.PdfFileReader(pdf_stream, strict=strict) + + +@pytest.mark.xfail( + reason=( + "It's still broken - and unclear what the issue is. " + "Help would be appreciated!" + ) +) +def test_issue297(): + path = os.path.join(RESOURCE_ROOT, "issue-297.pdf") + reader = PyPDF2.PdfFileReader(path, "rb") + reader.getPage(0) From 1f63d418a3b68b2ecc936cbbf5698cf24be55113 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Tue, 12 Apr 2022 14:49:31 +0200 Subject: [PATCH 115/145] BUG: Guard formatting of __init__.__doc__ string (#738) I have no clue why it can be None, but it aparently can be None. Closes #737 --- PyPDF2/pagerange.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 15ac787bfb..379ee787c9 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -83,7 +83,8 @@ def __init__(self, arg): self._slice = slice(*[int(g) if g else None for g in m.group(4, 6, 8)]) - __init__.__doc__ = __init__.__doc__.format(page_range_help=PAGE_RANGE_HELP) + if __init__.__doc__: # see https://github.com/py-pdf/PyPDF2/issues/737 + __init__.__doc__ = __init__.__doc__.format(page_range_help=PAGE_RANGE_HELP) @staticmethod def valid(input): From 8b40f6b9d38dbf2a4aedac0c769001d828668e99 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Tue, 12 Apr 2022 14:55:33 +0200 Subject: [PATCH 116/145] =?UTF-8?q?TST:=20Fix=20CI=20triggering=20(master?= =?UTF-8?q?=20=E2=9E=94=20=20main)=20(#739)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also various links in setup.cfg See #736 --- .github/workflows/unit-tests.yaml | 4 ++-- PyPDF2/pagerange.py | 2 +- README.md | 2 +- docs/index.rst | 2 +- setup.cfg | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index dfaceb8cdf..6884f8b6ff 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -5,9 +5,9 @@ name: Unit Tests on: push: - branches: [ master ] + branches: [ main ] pull_request: - branches: [ master ] + branches: [ main ] jobs: build: diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 379ee787c9..9e77f3ab31 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -4,7 +4,7 @@ Copyright (c) 2014, Steve Witham . All rights reserved. This software is available under a BSD license; -see https://github.com/py-pdf/PyPDF2/blob/master/LICENSE +see https://github.com/py-pdf/PyPDF2/blob/main/LICENSE """ import re diff --git a/README.md b/README.md index 6e58f10ab7..a92bd466b7 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ PyPDF2 can do a lot more, e.g. splitting, merging, reading and creating annotations, decrypting and encrypting, and more. Please see [the documentation](https://pypdf2.readthedocs.io/en/latest/) -and [`Scripts`](https://github.com/py-pdf/PyPDF2/tree/master/Scripts) for +and [`Scripts`](https://github.com/py-pdf/PyPDF2/tree/main/Scripts) for more usage examples! A lot of questions are asked and answered diff --git a/docs/index.rst b/docs/index.rst index 85e35920dd..1b339516c1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,4 +1,4 @@ -.. PyPDF2 documentation master file, created by +.. PyPDF2 documentation main file, created by sphinx-quickstart on Thu Apr 7 20:13:19 2022. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. diff --git a/setup.cfg b/setup.cfg index 1180d044e5..81732fcac2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ url = https://pypdf2.readthedocs.io/en/latest/ project_urls = Source = https://github.com/py-pdf/PyPDF2 Bug Reports = https://github.com/py-pdf/PyPDF2/issues - Changelog = https://raw.githubusercontent.com/py-pdf/PyPDF2/master/CHANGELOG + Changelog = https://raw.githubusercontent.com/py-pdf/PyPDF2/main/CHANGELOG classifiers = Development Status :: 5 - Production/Stable Intended Audience :: Developers From 1f0079401495ea94ff5b838b3e41412dc44c2c1d Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Tue, 12 Apr 2022 22:35:07 +0200 Subject: [PATCH 117/145] STY: Fix various style issues (#742) --- .github/workflows/unit-tests.yaml | 2 +- PyPDF2/filters.py | 14 +++---- PyPDF2/generic.py | 13 +++---- PyPDF2/merger.py | 30 +++++++-------- PyPDF2/pagerange.py | 6 +-- PyPDF2/pdf.py | 63 +++++++++++++++---------------- PyPDF2/utils.py | 6 +-- PyPDF2/xmp.py | 4 +- 8 files changed, 68 insertions(+), 70 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 6884f8b6ff..d28659fd8f 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -43,7 +43,7 @@ jobs: - name: Test with flake8 run: | - flake8 . --ignore E,F,I,SIM,C,PT,N,ASS,A,P,R,W + flake8 . --ignore=E203,W503,E501,F405,E226,E128,E225,F403,E201,E202,E231,W504,E241,F401,E261,E302,E211,E701,E228,E111,F841,E117,E127,E251,E266,E if: matrix.python-version != '2.7' - name: Test with pytest diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 958a13a9fc..d0b98786ff 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -233,17 +233,17 @@ def decode(self): http://www.rasip.fer.hr/research/compress/algorithms/fund/lz/lzw.html and the PDFReference """ - cW = self.CLEARDICT; + cW = self.CLEARDICT baos="" while True: - pW = cW; - cW = self.nextCode(); + pW = cW + cW = self.nextCode() if cW == -1: raise PdfReadError("Missed the stop code in LZWDecode!") if cW == self.STOP: - break; + break elif cW == self.CLEARDICT: - self.resetDict(); + self.resetDict() elif pW == self.CLEARDICT: baos+=self.dict[cW] else: @@ -255,7 +255,7 @@ def decode(self): else: p=self.dict[pW]+self.dict[pW][0] baos+=p - self.dict[self.dictlen] = p; + self.dict[self.dictlen] = p self.dictlen+=1 if (self.dictlen >= (1 << self.bitspercode) - 1 and self.bitspercode < 12): @@ -281,7 +281,7 @@ def decode(data, decodeParms=None): if len(retval) == 0 and c == "<" and data[x+1] == "~": x += 2 continue - #elif c.isspace(): + # elif c.isspace(): # x += 1 # continue elif c == 'z': diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 5340353c43..75d0986211 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -91,7 +91,7 @@ def readObject(stream, pdf): # number object OR indirect reference peek = stream.read(20) stream.seek(-len(peek), 1) # reset to start - if IndirectPattern.match(peek) != None: + if IndirectPattern.match(peek) is not None: return IndirectObject.readFromStream(stream, pdf) else: return NumberObject.readFromStream(stream) @@ -181,7 +181,7 @@ def __repr__(self): def __eq__(self, other): return ( - other != None and + other is not None and isinstance(other, IndirectObject) and self.idnum == other.idnum and self.generation == other.generation and @@ -529,7 +529,7 @@ def __getitem__(self, key): # return None if no metadata was found on the document root. def getXmpMetadata(self): metadata = self.get("/Metadata", None) - if metadata == None: + if metadata is None: return None metadata = metadata.getObject() from . import xmp @@ -614,7 +614,7 @@ def readFromStream(stream, pdf): stream.seek(t, 0) data["__streamdata__"] = stream.read(length) if debug: print("here") - #if debug: print(binascii.hexlify(data["__streamdata__"])) + # if debug: print(binascii.hexlify(data["__streamdata__"])) e = readNonWhitespace(stream) ndstream = stream.read(8) if (e + ndstream) != b_("endstream"): @@ -631,7 +631,6 @@ def readFromStream(stream, pdf): # we found it by looking back one character further. data["__streamdata__"] = data["__streamdata__"][:-1] else: - if debug: print(("E", e, ndstream, debugging.toHex(end))) stream.seek(pos, 0) raise utils.PdfReadError("Unable to find 'endstream' marker after stream at byte %s." % utils.hexStr(stream.tell())) else: @@ -706,9 +705,9 @@ def removeChild(self, child): cur = curRef.getObject() lastRef = self[NameObject('/Last')] last = lastRef.getObject() - while cur != None: + while cur is not None: if cur == childObj: - if prev == None: + if prev is None: if NameObject('/Next') in cur: # Removing first tree node nextRef = cur[NameObject('/Next')] diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index e362732e8e..eae26ed189 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -135,7 +135,7 @@ def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=T pdfr._decryption_key = decryption_key # Find the range of pages to merge. - if pages == None: + if pages is None: pages = (0, pdfr.getNumPages()) elif isinstance(pages, PageRange): pages = pages.indices(pdfr.getNumPages()) @@ -219,8 +219,8 @@ def write(self, fileobj): for page in self.pages: self.output.addPage(page.pagedata) page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject()) - #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1 - #page.out_pagedata = IndirectObject(idnum, 0, self.output) + # idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1 + # page.out_pagedata = IndirectObject(idnum, 0, self.output) # Once all pages are added, create bookmarks to point at those pages self._write_dests() @@ -358,12 +358,12 @@ def _write_dests(self): pageno = i pdf = p.src break - if pageno != None: + if pageno is not None: self.output.addNamedDestinationObject(v) def _write_bookmarks(self, bookmarks=None, parent=None): - if bookmarks == None: + if bookmarks is None: bookmarks = self.bookmarks last_added = None @@ -377,10 +377,10 @@ def _write_bookmarks(self, bookmarks=None, parent=None): if '/Page' in b: for i, p in enumerate(self.pages): if p.id == b['/Page']: - #b[NameObject('/Page')] = p.out_pagedata + # b[NameObject('/Page')] = p.out_pagedata args = [NumberObject(p.id), NameObject(b['/Type'])] - #nothing more to add - #if b['/Type'] == '/Fit' or b['/Type'] == '/FitB' + # nothing more to add + # if b['/Type'] == '/Fit' or b['/Type'] == '/FitB' if b['/Type'] == '/FitH' or b['/Type'] == '/FitBH': if '/Top' in b and not isinstance(b['/Top'], NullObject): args.append(FloatObject(b['/Top'])) @@ -431,7 +431,7 @@ def _write_bookmarks(self, bookmarks=None, parent=None): pageno = i pdf = p.src break - if pageno != None: + if pageno is not None: del b['/Page'], b['/Type'] last_added = self.output.addBookmarkDict(b, parent) @@ -447,13 +447,13 @@ def _associate_dests_to_pages(self, pages): if np.getObject() == p.pagedata.getObject(): pageno = p.id - if pageno != None: + if pageno is not None: nd[NameObject('/Page')] = NumberObject(pageno) else: raise ValueError("Unresolved named destination '%s'" % (nd['/Title'],)) def _associate_bookmarks_to_pages(self, pages, bookmarks=None): - if bookmarks == None: + if bookmarks is None: bookmarks = self.bookmarks for b in bookmarks: @@ -471,13 +471,13 @@ def _associate_bookmarks_to_pages(self, pages, bookmarks=None): if bp.getObject() == p.pagedata.getObject(): pageno = p.id - if pageno != None: + if pageno is not None: b[NameObject('/Page')] = NumberObject(pageno) else: raise ValueError("Unresolved bookmark '%s'" % (b['/Title'],)) def findBookmark(self, bookmark, root=None): - if root == None: + if root is None: root = self.bookmarks for i, b in enumerate(root): @@ -499,7 +499,7 @@ def addBookmark(self, title, pagenum, parent=None): :param parent: A reference to a parent bookmark to create nested bookmarks. """ - if parent == None: + if parent is None: iloc = [len(self.bookmarks)-1] elif isinstance(parent, list): iloc = parent @@ -508,7 +508,7 @@ def addBookmark(self, title, pagenum, parent=None): dest = Bookmark(TextStringObject(title), NumberObject(pagenum), NameObject('/FitH'), NumberObject(826)) - if parent == None: + if parent is None: self.bookmarks.append(dest) else: bmparent = self.bookmarks diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 9e77f3ab31..83fd8a99be 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -101,14 +101,14 @@ def to_slice(self): def __str__(self): """ A string like "1:2:3". """ s = self._slice - if s.step == None: - if s.start != None and s.stop == s.start + 1: + if s.step is None: + if s.start is not None and s.stop == s.start + 1: return str(s.start) indices = s.start, s.stop else: indices = s.start, s.stop, s.step - return ':'.join("" if i == None else str(i) for i in indices) + return ':'.join("" if i is None else str(i) for i in indices) def __repr__(self): """ A string like "PageRange('1:2:3')". """ diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 7b7f08bf3a..fbe097fc21 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -72,7 +72,6 @@ from md5 import md5 else: from hashlib import md5 -import uuid class PdfFileWriter(object): @@ -407,7 +406,7 @@ def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True): this flag is on. """ import time, random - if owner_pwd == None: + if owner_pwd is None: owner_pwd = user_pwd if use_128bit: V = 2 @@ -575,7 +574,7 @@ def _sweepIndirectReferences(self, externMap, data): if data.pdf.stream.closed: raise ValueError("I/O operation on closed file: {}".format(data.pdf.stream.name)) newobj = externMap.get(data.pdf, {}).get(data.generation, {}).get(data.idnum, None) - if newobj == None: + if newobj is None: try: newobj = data.pdf.getObject(data) self._objects.append(None) # placeholder @@ -659,11 +658,11 @@ def addBookmarkDestination(self, dest, parent=None): outlineRef = self.getOutlineRoot() - if parent == None: + if parent is None: parent = outlineRef parent = parent.getObject() - #print parent.__class__.__name__ + # print parent.__class__.__name__ parent.addChild(destRef, self) return destRef @@ -685,7 +684,7 @@ def addBookmarkDict(self, bookmark, parent=None): outlineRef = self.getOutlineRoot() - if parent == None: + if parent is None: parent = outlineRef parent = parent.getObject() @@ -726,7 +725,7 @@ def addBookmark(self, title, pagenum, parent=None, color=None, bold=False, itali outlineRef = self.getOutlineRoot() - if parent == None: + if parent is None: parent = outlineRef bookmark = TreeObject() @@ -991,7 +990,7 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): """ pageLink = self.getObject(self._pages)['/Kids'][pagenum] - pageDest = self.getObject(self._pages)['/Kids'][pagedest] #TODO: switch for external link + pageDest = self.getObject(self._pages)['/Kids'][pagedest] # TODO: switch for external link pageRef = self.getObject(pageLink) if border is not None: @@ -1015,7 +1014,7 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): zoomArgs.append(NumberObject(a)) else: zoomArgs.append(NullObject()) - dest = Destination(NameObject("/LinkName"), pageDest, NameObject(fit), *zoomArgs) #TODO: create a better name for the link + dest = Destination(NameObject("/LinkName"), pageDest, NameObject(fit), *zoomArgs) # TODO: create a better name for the link destArray = dest.getDestArray() lnk = DictionaryObject() @@ -1159,7 +1158,7 @@ def _showwarning(message, category, filename, lineno, file=warndest, line=None): try: # It is possible for sys.stderr to be defined as None, most commonly in the case that the script # is being run vida pythonw.exe on Windows. In this case, just swallow the warning. - # See also https://docs.python.org/3/library/sys.html#sys.__stderr__ + # See also https://docs.python.org/3/library/sys.html# sys.__stderr__ if file is not None: file.write(formatWarning(message, category, filename, lineno, line)) except IOError: @@ -1246,7 +1245,7 @@ def getNumPages(self): finally: self._override_encryption = False else: - if self.flattenedPages == None: + if self.flattenedPages is None: self._flatten() return len(self.flattenedPages) @@ -1266,8 +1265,8 @@ def getPage(self, pageNumber): :rtype: :class:`PageObject` """ ## ensure that we're not trying to access an encrypted PDF - #assert not self.trailer.has_key("/Encrypt") - if self.flattenedPages == None: + # assert not self.trailer.has_key("/Encrypt") + if self.flattenedPages is None: self._flatten() return self.flattenedPages[pageNumber] @@ -1297,7 +1296,7 @@ def getFields(self, tree = None, retval = None, fileobj = None): "/T" : "Field Name", "/TU" : "Alternate Field Name", "/TM" : "Mapping Name", "/Ff" : "Field Flags", "/V" : "Value", "/DV" : "Default Value"} - if retval == None: + if retval is None: retval = {} catalog = self.trailer["/Root"] # get the AcroForm tree @@ -1305,7 +1304,7 @@ def getFields(self, tree = None, retval = None, fileobj = None): tree = catalog["/AcroForm"] else: return None - if tree == None: + if tree is None: return retval self._checkKids(tree, retval, fileobj) @@ -1386,7 +1385,7 @@ def getNamedDestinations(self, tree=None, retval=None): :class:`Destinations`. :rtype: dict """ - if retval == None: + if retval is None: retval = {} catalog = self.trailer["/Root"] @@ -1398,7 +1397,7 @@ def getNamedDestinations(self, tree=None, retval=None): if "/Dests" in names: tree = names['/Dests'] - if tree == None: + if tree is None: return retval if "/Kids" in tree: @@ -1414,7 +1413,7 @@ def getNamedDestinations(self, tree=None, retval=None): if isinstance(val, DictionaryObject) and '/D' in val: val = val['/D'] dest = self._buildDestination(key, val) - if dest != None: + if dest is not None: retval[key] = dest return retval @@ -1431,7 +1430,7 @@ def getOutlines(self, node=None, outlines=None): :return: a nested list of :class:`Destinations`. """ - if outlines == None: + if outlines is None: outlines = [] catalog = self.trailer["/Root"] @@ -1449,7 +1448,7 @@ def getOutlines(self, node=None, outlines=None): node = lines["/First"] self._namedDests = self.getNamedDestinations() - if node == None: + if node is None: return outlines # see if there are any more outlines @@ -1593,9 +1592,9 @@ def _flatten(self, pages=None, inherit=None, indirectRef=None): NameObject("/Resources"), NameObject("/MediaBox"), NameObject("/CropBox"), NameObject("/Rotate") ) - if inherit == None: + if inherit is None: inherit = dict() - if pages == None: + if pages is None: self.flattenedPages = [] catalog = self.trailer["/Root"].getObject() pages = catalog["/Pages"].getObject() @@ -1681,7 +1680,7 @@ def getObject(self, indirectReference): if debug: print(("looking at:", indirectReference.idnum, indirectReference.generation)) retval = self.cacheGetIndirectObject(indirectReference.generation, indirectReference.idnum) - if retval != None: + if retval is not None: return retval if indirectReference.generation == 0 and \ indirectReference.idnum in self.xref_objStm: @@ -1757,7 +1756,7 @@ def readObjectHeader(self, stream): readNonWhitespace(stream) stream.seek(-1, 1) if (extra and self.strict): - #not a fatal error + # not a fatal error warnings.warn("Superfluous whitespace found in object header %s %s" % \ (idnum, generation), utils.PdfReadWarning) return int(idnum), int(generation) @@ -1830,8 +1829,8 @@ def read(self, stream): self.xrefIndex = num if self.strict: warnings.warn("Xref table not zero-indexed. ID numbers for objects will be corrected.", utils.PdfReadWarning) - #if table not zero indexed, could be due to error from when PDF was created - #which will lead to mismatched indices later on, only warned and corrected if self.strict=True + # if table not zero indexed, could be due to error from when PDF was created + # which will lead to mismatched indices later on, only warned and corrected if self.strict=True firsttime = False readNonWhitespace(stream) stream.seek(-1, 1) @@ -2004,7 +2003,7 @@ def used_before(num, generation): continue # no xref table found at specified location raise utils.PdfReadError("Could not find xref table at specified location") - #if not zero-indexed, verify that the table is correct; change it if necessary + # if not zero-indexed, verify that the table is correct; change it if necessary if self.xrefIndex and not self.strict: loc = stream.tell() for gen in self.xref: @@ -2018,8 +2017,8 @@ def used_before(num, generation): if pid == id - self.xrefIndex: self._zeroXref(gen) break - #if not, then either it's just plain wrong, or the non-zero-index is actually correct - stream.seek(loc, 0) #return to where it was + # if not, then either it's just plain wrong, or the non-zero-index is actually correct + stream.seek(loc, 0) # return to where it was def _zeroXref(self, generation): self.xref[generation] = dict( (k-self.xrefIndex, v) for (k, v) in list(self.xref[generation].items()) ) @@ -2058,7 +2057,7 @@ def readNextEndLine(self, stream): if stream.tell() < 2: raise utils.PdfReadError("EOL marker not found") stream.seek(-2, 1) - stream.seek(2 if crlf else 1, 1) #if using CR+LF, go back 2 bytes, else 1 + stream.seek(2 if crlf else 1, 1) # if using CR+LF, go back 2 bytes, else 1 break else: if debug: print(" x is neither") @@ -2160,10 +2159,10 @@ def getRectangle(self, name, defaults): retval = self.get(name) if isinstance(retval, RectangleObject): return retval - if retval == None: + if retval is None: for d in defaults: retval = self.get(d) - if retval != None: + if retval is not None: break if isinstance(retval, IndirectObject): retval = self.pdf.getObject(retval) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index e104c394ed..cb392a18bd 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -45,7 +45,7 @@ bytes_type = type(bytes()) # Works the same in Python 2.X and 3.X string_type = getattr(builtins, "unicode", str) -int_types = (int, long) if sys.version_info[0] < 3 else (int,) +int_types = (int, long) if sys.version_info[0] < 3 else (int,) # noqa # Make basic type tests more consistent @@ -130,7 +130,7 @@ def readUntilRegex(stream, regex, ignore_eof=False): tok = stream.read(16) if not tok: # stream has truncated prematurely - if ignore_eof == True: + if ignore_eof: return name else: raise PdfStreamError("Stream has ended unexpectedly") @@ -252,7 +252,7 @@ def b_(s): def u_(s): if sys.version_info[0] < 3: - return unicode(s, 'unicode_escape') + return unicode(s, 'unicode_escape') # noqa else: return s diff --git a/PyPDF2/xmp.py b/PyPDF2/xmp.py index 79b1170447..3670f264ac 100644 --- a/PyPDF2/xmp.py +++ b/PyPDF2/xmp.py @@ -70,7 +70,7 @@ def getElement(self, aboutUri, namespace, name): for desc in self.rdfRoot.getElementsByTagNameNS(RDF_NAMESPACE, "Description"): if desc.getAttributeNS(RDF_NAMESPACE, "about") == aboutUri: attr = desc.getAttributeNodeNS(namespace, name) - if attr != None: + if attr is not None: yield attr for element in desc.getElementsByTagNameNS(namespace, name): yield element @@ -191,7 +191,7 @@ def get(self): else: value = self._getText(element) break - if value != None: + if value is not None: value = converter(value) ns_cache = self.cache.setdefault(namespace, {}) ns_cache[name] = value From e45e66ba8b1529535ef0b12dc5397b8f6714abde Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Tue, 12 Apr 2022 22:40:52 +0200 Subject: [PATCH 118/145] REL: 1.27.4 --- CHANGELOG | 23 +++++++++++++++++++++++ PyPDF2/_version.py | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 0caf51b0ed..6631ed289f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,26 @@ +Version 1.27.4, 2022-04-12 +-------------------------- + +Bug fixes (BUG): + +- Guard formatting of __init__.__doc__ string (#738) + +Packaging (PKG): + +- Add more precise license field to setup (#733) + +Testing (TST): + +- Add test for issue #297 + +Miscellaneous: + +- DOC: Miscallenious ➔ Miscellaneous (Typo) +- TST: Fix CI triggering (master ➔ main) (#739) +- STY: Fix various style issues (#742) + +All changes: https://github.com/py-pdf/PyPDF2/compare/1.27.3...1.27.4 + Version 1.27.0, 2022-04-07 -------------------------- diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index 5976158e87..fa87a0055b 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = "1.27.3" +__version__ = "1.27.4" From 38d5ec462eb64cd686440716cae9c57dbb8e27d0 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 13 Apr 2022 19:55:58 +0200 Subject: [PATCH 119/145] STY: Fix style issues (#743) * Explicitly export PdfFileReader, PdfFileWriter * Implicit string concatenation * Don't leave open file handles * Apply hints from flake8-simplify * Only import stuff that is used --- .github/workflows/unit-tests.yaml | 2 +- PyPDF2/__init__.py | 10 ++++- PyPDF2/filters.py | 6 +-- PyPDF2/generic.py | 8 ++-- PyPDF2/merger.py | 5 +-- PyPDF2/pagerange.py | 5 +-- PyPDF2/pdf.py | 71 ++++++++++++------------------- PyPDF2/utils.py | 11 +++-- PyPDF2/xmp.py | 1 - Scripts/2-up.py | 2 +- Scripts/booklet.py | 13 +++--- Scripts/pdf-image-extractor.py | 2 +- Tests/test_basic_features.py | 4 +- Tests/test_merger.py | 5 +-- Tests/test_page.py | 2 +- Tests/test_reader.py | 10 ++--- Tests/test_writer.py | 8 ++-- requirements/ci.in | 1 + requirements/ci.txt | 7 ++- setup.py | 3 +- 20 files changed, 86 insertions(+), 90 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index d28659fd8f..e7e405a886 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -43,7 +43,7 @@ jobs: - name: Test with flake8 run: | - flake8 . --ignore=E203,W503,E501,F405,E226,E128,E225,F403,E201,E202,E231,W504,E241,F401,E261,E302,E211,E701,E228,E111,F841,E117,E127,E251,E266,E + flake8 . --ignore=E203,W503,W504,E,F403,F405 if: matrix.python-version != '2.7' - name: Test with pytest diff --git a/PyPDF2/__init__.py b/PyPDF2/__init__.py index bace8bf723..5d85cbc4f8 100644 --- a/PyPDF2/__init__.py +++ b/PyPDF2/__init__.py @@ -3,4 +3,12 @@ from .pagerange import PageRange, parse_filename_page_ranges from ._version import __version__ -__all__ = ["pdf", "PdfFileMerger"] +__all__ = [ + "__version__", + "PageRange", + "parse_filename_page_ranges", + "pdf", + "PdfFileMerger", + "PdfFileReader", + "PdfFileWriter", +] diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index d0b98786ff..1ecce31c81 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -55,7 +55,7 @@ def compress(data): # Unable to import zlib. Attempt to use the System.IO.Compression # library from the .NET framework. (IronPython only) import System - from System import IO, Collections, Array + from System import IO, Array def _string_to_bytearr(buf): retval = Array.CreateInstance(System.Byte, len(buf)) @@ -275,7 +275,7 @@ def decode(data, decodeParms=None): x = 0 hitEod = False # remove all whitespace from data - data = [y for y in data if not (y in ' \n\r\t')] + data = [y for y in data if y not in ' \n\r\t'] while not hitEod: c = data[x] if len(retval) == 0 and c == "<" and data[x+1] == "~": @@ -363,7 +363,7 @@ def decode(data, decodeParms=None, height=0): width = decodeParms["/Columns"] imgSize = len(data) - tiff_header_struct = '<' + '2s' + 'h' + 'l' + 'h' + 'hhll' * 8 + 'h' + tiff_header_struct = '<2shlh' + 'hhll' * 8 + 'h' tiffHeader = struct.pack(tiff_header_struct, b'II', # Byte order indication: Little endian 42, # Version number (always 42) diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 75d0986211..334d766096 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -381,7 +381,7 @@ def readStringFromStream(stream): # break occurs. If it's a multi-char EOL, consume the # second character: tok = stream.read(1) - if not tok in b_("\n\r"): + if tok not in b_("\n\r"): stream.seek(-1, 1) # Then don't add anything to the actual string, since this # line break was escaped: @@ -483,10 +483,10 @@ def readFromStream(stream, pdf): try: try: ret=name.decode('utf-8') - except (UnicodeEncodeError, UnicodeDecodeError) as e: + except (UnicodeEncodeError, UnicodeDecodeError): ret=name.decode('gbk') return NameObject(ret) - except (UnicodeEncodeError, UnicodeDecodeError) as e: + except (UnicodeEncodeError, UnicodeDecodeError): # Name objects should represent irregular characters # with a '#' followed by the symbol's hex number if not pdf.strict: @@ -843,7 +843,7 @@ def getData(self): decoded._data = filters.decodeStreamData(self) for key, value in list(self.items()): - if not key in ("/Length", "/Filter", "/DecodeParms"): + if key not in ("/Length", "/Filter", "/DecodeParms"): decoded[key] = value self.decodedSelf = decoded return decoded._data diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index eae26ed189..00393bbb82 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -311,7 +311,6 @@ def _trim_dests(self, pdf, dests, pages): page set. """ new_dests = [] - prev_header_added = True for k, o in list(dests.items()): for j in range(*pages): if pdf.getPage(j).getObject() == o['/Page'].getObject(): @@ -356,7 +355,7 @@ def _write_dests(self): if p.id == v['/Page']: v[NameObject('/Page')] = p.out_pagedata pageno = i - pdf = p.src + pdf = p.src # noqa: F841 break if pageno is not None: self.output.addNamedDestinationObject(v) @@ -429,7 +428,7 @@ def _write_bookmarks(self, bookmarks=None, parent=None): b[NameObject('/A')] = DictionaryObject({NameObject('/S'): NameObject('/GoTo'), NameObject('/D'): ArrayObject(args)}) pageno = i - pdf = p.src + pdf = p.src # noqa: F841 break if pageno is not None: del b['/Page'], b['/Type'] diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 83fd8a99be..73fcad77f0 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -89,8 +89,7 @@ def __init__(self, arg): @staticmethod def valid(input): """ True if input is a valid initializer for a PageRange. """ - return isinstance(input, slice) or \ - isinstance(input, PageRange) or \ + return isinstance(input, (slice, PageRange)) or \ (isString(input) and bool(re.match(PAGE_RANGE_RE, input))) @@ -144,7 +143,7 @@ def parse_filename_page_ranges(args): for arg in args + [None]: if PageRange.valid(arg): if not pdf_filename: - raise ValueError("The first argument must be a filename, " \ + raise ValueError("The first argument must be a filename, " "not a page range.") pairs.append( (pdf_filename, PageRange(arg)) ) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index fbe097fc21..0f7692bf58 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -41,7 +41,6 @@ __maintainer__ = "Phaseit, Inc." __maintainer_email = "PyPDF2@phaseit.net" -import string import math import struct import sys @@ -57,7 +56,6 @@ else: from io import BytesIO -from . import filters from . import utils import warnings import codecs @@ -543,7 +541,6 @@ def _sweepIndirectReferences(self, externMap, data): if debug: print((data, "TYPE", data.__class__.__name__)) if isinstance(data, DictionaryObject): for key, value in list(data.items()): - origvalue = value value = self._sweepIndirectReferences(externMap, value) if isinstance(value, StreamObject): # a dictionary value is a stream. streams must be indirect @@ -794,6 +791,11 @@ def removeImages(self, ignoreByteStringObject=False): to ignore ByteString Objects. """ pages = self.getObject(self._pages)['/Kids'] + jump_operators = [ + b_('cm'), b_('w'), b_('J'), b_('j'), b_('M'), b_('d'), b_('ri'), b_('i'), + b_('gs'), b_('W'), b_('b'), b_('s'), b_('S'), b_('f'), b_('F'), b_('n'), b_('m'), b_('l'), + b_('c'), b_('v'), b_('y'), b_('h'), b_('B'), b_('Do'), b_('sh') + ] for j in range(len(pages)): page = pages[j] pageRef = self.getObject(page) @@ -804,36 +806,29 @@ def removeImages(self, ignoreByteStringObject=False): _operations = [] seq_graphics = False for operands, operator in content.operations: - if operator == b_('Tj'): - text = operands[0] - if ignoreByteStringObject: - if not isinstance(text, TextStringObject): - operands[0] = TextStringObject() - elif operator == b_("'"): + if operator in [b_('Tj'), b_("'")]: text = operands[0] if ignoreByteStringObject: if not isinstance(text, TextStringObject): operands[0] = TextStringObject() elif operator == b_('"'): text = operands[2] - if ignoreByteStringObject: - if not isinstance(text, TextStringObject): - operands[2] = TextStringObject() + if ignoreByteStringObject and not isinstance(text, TextStringObject): + operands[2] = TextStringObject() elif operator == b_("TJ"): for i in range(len(operands[0])): - if ignoreByteStringObject: - if not isinstance(operands[0][i], TextStringObject): - operands[0][i] = TextStringObject() + if ( + ignoreByteStringObject + and not isinstance(operands[0][i], TextStringObject) + ): + operands[0][i] = TextStringObject() if operator == b_('q'): seq_graphics = True if operator == b_('Q'): seq_graphics = False - if seq_graphics: - if operator in [b_('cm'), b_('w'), b_('J'), b_('j'), b_('M'), b_('d'), b_('ri'), b_('i'), - b_('gs'), b_('W'), b_('b'), b_('s'), b_('S'), b_('f'), b_('F'), b_('n'), b_('m'), b_('l'), - b_('c'), b_('v'), b_('y'), b_('h'), b_('B'), b_('Do'), b_('sh')]: - continue + if seq_graphics and operator in jump_operators: + continue if operator == b_('re'): continue _operations.append((operands, operator)) @@ -856,23 +851,13 @@ def removeText(self, ignoreByteStringObject=False): if not isinstance(content, ContentStream): content = ContentStream(content, pageRef) for operands,operator in content.operations: - if operator == b_('Tj'): + if operator in [b_('Tj'), b_("'")]: text = operands[0] if not ignoreByteStringObject: if isinstance(text, TextStringObject): operands[0] = TextStringObject() else: - if isinstance(text, TextStringObject) or \ - isinstance(text, ByteStringObject): - operands[0] = TextStringObject() - elif operator == b_("'"): - text = operands[0] - if not ignoreByteStringObject: - if isinstance(text, TextStringObject): - operands[0] = TextStringObject() - else: - if isinstance(text, TextStringObject) or \ - isinstance(text, ByteStringObject): + if isinstance(text, (TextStringObject, ByteStringObject)): operands[0] = TextStringObject() elif operator == b_('"'): text = operands[2] @@ -880,8 +865,7 @@ def removeText(self, ignoreByteStringObject=False): if isinstance(text, TextStringObject): operands[2] = TextStringObject() else: - if isinstance(text, TextStringObject) or \ - isinstance(text, ByteStringObject): + if isinstance(text, (TextStringObject, ByteStringObject)): operands[2] = TextStringObject() elif operator == b_("TJ"): for i in range(len(operands[0])): @@ -889,8 +873,7 @@ def removeText(self, ignoreByteStringObject=False): if isinstance(operands[0][i], TextStringObject): operands[0][i] = TextStringObject() else: - if isinstance(operands[0][i], TextStringObject) or \ - isinstance(operands[0][i], ByteStringObject): + if isinstance(operands[0][i], (TextStringObject, ByteStringObject)): operands[0][i] = TextStringObject() pageRef.__setitem__(NameObject('/Contents'), content) @@ -1172,9 +1155,8 @@ def _showwarning(message, category, filename, lineno, file=warndest, line=None): if hasattr(stream, 'mode') and 'b' not in stream.mode: warnings.warn("PdfFileReader stream/file object is not in binary mode. It may not be read correctly.", utils.PdfReadWarning) if isString(stream): - fileobj = open(stream, 'rb') - stream = BytesIO(b_(fileobj.read())) - fileobj.close() + with open(stream, 'rb') as fileobj: + stream = BytesIO(b_(fileobj.read())) self.read(stream) self.stream = stream @@ -1729,7 +1711,7 @@ def getObject(self, indirectReference): return retval def _decryptObject(self, obj, key): - if isinstance(obj, ByteStringObject) or isinstance(obj, TextStringObject): + if isinstance(obj, (ByteStringObject, TextStringObject)): obj = createStringObject(utils.RC4_encrypt(key, obj.original_bytes)) elif isinstance(obj, StreamObject): obj._data = utils.RC4_encrypt(key, obj._data) @@ -1752,7 +1734,10 @@ def readObjectHeader(self, stream): idnum = readUntilWhitespace(stream) extra |= utils.skipOverWhitespace(stream); stream.seek(-1, 1) generation = readUntilWhitespace(stream) - obj = stream.read(3) + + # although it's not used, it might still be necessary to read + _obj = stream.read(3) # noqa: F841 + readNonWhitespace(stream) stream.seek(-1, 1) if (extra and self.strict): @@ -1938,8 +1923,8 @@ def used_before(num, generation): # The rest of the elements depend on the xref_type if xref_type == 0: # linked list of free objects - next_free_object = getEntry(1) - next_generation = getEntry(2) + next_free_object = getEntry(1) # noqa: F841 + next_generation = getEntry(2) # noqa: F841 elif xref_type == 1: # objects that are in use but are not compressed byte_offset = getEntry(1) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index cb392a18bd..3270d86f8a 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -196,11 +196,10 @@ def markLocation(stream): # Mainly for debugging RADIUS = 5000 stream.seek(-RADIUS, 1) - outputDoc = open('PyPDF2_pdfLocation.txt', 'wb') - outputDoc.write(stream.read(RADIUS)) - outputDoc.write(b'HERE') - outputDoc.write(stream.read(RADIUS)) - outputDoc.close() + with open('PyPDF2_pdfLocation.txt', 'wb') as outputDoc: + outputDoc.write(stream.read(RADIUS)) + outputDoc.write(b'HERE') + outputDoc.write(stream.read(RADIUS)) stream.seek(-RADIUS, 1) @@ -242,7 +241,7 @@ def b_(s): if len(s) < 2: bc[s] = r return r - except Exception as e: + except Exception: print(s) r = s.encode('utf-8') if len(s) < 2: diff --git a/PyPDF2/xmp.py b/PyPDF2/xmp.py index 3670f264ac..9aec5e0174 100644 --- a/PyPDF2/xmp.py +++ b/PyPDF2/xmp.py @@ -2,7 +2,6 @@ import datetime import decimal from .generic import PdfObject -from xml.dom import getDOMImplementation from xml.dom.minidom import parseString from .utils import u_ diff --git a/Scripts/2-up.py b/Scripts/2-up.py index c3212b428e..2540e01147 100644 --- a/Scripts/2-up.py +++ b/Scripts/2-up.py @@ -16,7 +16,7 @@ def main(): print("usage: python 2-up.py input_file output_file") sys.exit(1) print("2-up input " + sys.argv[1]) - reader = PdfFileReader(open(sys.argv[1], "rb")) + reader = PdfFileReader(sys.argv[1]) writer = PdfFileWriter() for iter in range(0, reader.getNumPages() - 1, 2): lhs = reader.getPage(iter) diff --git a/Scripts/booklet.py b/Scripts/booklet.py index d669c6b3d6..9eeac3de73 100644 --- a/Scripts/booklet.py +++ b/Scripts/booklet.py @@ -1,12 +1,12 @@ #!/usr/bin/env python """ - Layout the pages from a PDF file to print a booklet or brochure. +Layout the pages from a PDF file to print a booklet or brochure. - The resulting media size is twice the size of the first page - of the source document. If you print the resulting PDF in duplex - (short edge), you get a center fold brochure that you can staple - together and read as a booklet. +The resulting media size is twice the size of the first page +of the source document. If you print the resulting PDF in duplex +(short edge), you get a center fold brochure that you can staple +together and read as a booklet. """ from __future__ import division, print_function @@ -63,7 +63,8 @@ def mergePageByNumber(dstPage, pageNumber, xOffset): mergePageByNumber(page, i, offsets[0]) mergePageByNumber(page, virtualPages - i - 1, offsets[1]) - writer.write(open(args.output, "wb")) + with open(args.output, "wb") as fp: + writer.write(fp) if __name__ == "__main__": diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index 916c81564f..c2e2aa00e3 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -11,7 +11,7 @@ def main(pdf: str): - reader = PyPDF2.PdfFileReader(open(pdf, "rb")) + reader = PyPDF2.PdfFileReader(pdf) page = reader.pages[30] if "/XObject" in page["/Resources"]: diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py index 75e72c3249..f3a41fe41f 100644 --- a/Tests/test_basic_features.py +++ b/Tests/test_basic_features.py @@ -14,7 +14,7 @@ def test_basic_features(): output = PdfFileWriter() document1 = os.path.join(RESOURCE_ROOT, "crazyones.pdf") - input1 = PdfFileReader(open(document1, "rb")) + input1 = PdfFileReader(document1) # print how many pages input1 has: print("document1.pdf has %d pages." % input1.getNumPages()) @@ -32,7 +32,7 @@ def test_basic_features(): # add page 4 from input1, but first add a watermark from another PDF: page4 = input1.getPage(0) watermark_pdf = document1 - watermark = PdfFileReader(open(watermark_pdf, "rb")) + watermark = PdfFileReader(watermark_pdf) page4.mergePage(watermark.getPage(0)) output.addPage(page4) diff --git a/Tests/test_merger.py b/Tests/test_merger.py index ca2a40fc39..49048a741d 100644 --- a/Tests/test_merger.py +++ b/Tests/test_merger.py @@ -1,5 +1,4 @@ import os -import binascii import sys import PyPDF2 @@ -34,8 +33,8 @@ def test_merge(): # file_merger.append(reader) # File handle - fh = open(pdf_path, "rb") - file_merger.append(fh) + with open(pdf_path, "rb") as fh: + file_merger.append(fh) file_merger.addBookmark("A bookmark", 0) diff --git a/Tests/test_page.py b/Tests/test_page.py index 19ae52fc3e..5b15f9f584 100644 --- a/Tests/test_page.py +++ b/Tests/test_page.py @@ -15,7 +15,7 @@ def test_page_operations(): output is as expected. """ pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") - reader = PdfFileReader(open(pdf_path, "rb")) + reader = PdfFileReader(pdf_path) page = reader.pages[0] page.mergeRotatedScaledPage(page, 90, 1, 1) page.mergeScaledTranslatedPage(page, 1, 1, 1) diff --git a/Tests/test_reader.py b/Tests/test_reader.py index 96cddeb8b6..6cf736d59b 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -2,7 +2,7 @@ import os import pytest import PyPDF2.utils -from PyPDF2.filters import decodeStreamData, _xobj_to_image +from PyPDF2.filters import _xobj_to_image TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -29,7 +29,7 @@ def test_read_metadata(): ], ) def test_get_annotations(src): - reader = PyPDF2.PdfFileReader(open(src, "rb")) + reader = PyPDF2.PdfFileReader(src) for page in reader.pages: print("/Annots" in page) @@ -49,7 +49,7 @@ def test_get_annotations(src): ], ) def test_get_attachments(src): - reader = PyPDF2.PdfFileReader(open(src, "rb")) + reader = PyPDF2.PdfFileReader(src) attachments = {} for i in range(reader.getNumPages()): @@ -71,7 +71,7 @@ def test_get_attachments(src): ], ) def test_get_outlines(src, outline_elements): - reader = PyPDF2.PdfFileReader(open(src, "rb")) + reader = PyPDF2.PdfFileReader(src) outlines = reader.getOutlines() assert len(outlines) == outline_elements @@ -85,7 +85,7 @@ def test_get_outlines(src, outline_elements): ], ) def test_get_images(src, nb_images): - reader = PyPDF2.PdfFileReader(open(src, "rb")) + reader = PyPDF2.PdfFileReader(src) with pytest.raises(TypeError): page = reader.pages["0"] diff --git a/Tests/test_writer.py b/Tests/test_writer.py index 8c39258ff3..bd8cd9d8cf 100644 --- a/Tests/test_writer.py +++ b/Tests/test_writer.py @@ -3,7 +3,7 @@ from PyPDF2 import PdfFileReader, PdfFileWriter from PyPDF2.utils import PageSizeNotDefinedError -from PyPDF2.generic import IndirectObject, RectangleObject +from PyPDF2.generic import RectangleObject TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -20,8 +20,8 @@ def test_writer_operations(): pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") pdf_outline_path = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") - reader = PdfFileReader(open(pdf_path, "rb")) - reader_outline = PdfFileReader(open(pdf_outline_path, "rb")) + reader = PdfFileReader(pdf_path) + reader_outline = PdfFileReader(pdf_outline_path) output = PdfFileWriter() page = reader.pages[0] @@ -62,7 +62,7 @@ def test_writer_operations(): def test_remove_images(): pdf_path = os.path.join(RESOURCE_ROOT, "side-by-side-subfig.pdf") - reader = PdfFileReader(open(pdf_path, "rb")) + reader = PdfFileReader(pdf_path) output = PdfFileWriter() page = reader.pages[0] diff --git a/requirements/ci.in b/requirements/ci.in index eb92c4503d..3545b25f28 100644 --- a/requirements/ci.in +++ b/requirements/ci.in @@ -1,5 +1,6 @@ pytest flake8 flake8-bugbear +flake8_implicit_str_concat pytest-cov pillow diff --git a/requirements/ci.txt b/requirements/ci.txt index d25907cfd8..c926afe446 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,9 +4,10 @@ # # pip-compile requirements/ci.in # -attrs==21.4.0 +attrs==20.3.0 # via # flake8-bugbear + # flake8-implicit-str-concat # pytest coverage[toml]==6.2 # via pytest-cov @@ -16,6 +17,8 @@ flake8==4.0.1 # flake8-bugbear flake8-bugbear==22.3.23 # via -r requirements/ci.in +flake8-implicit-str-concat==0.2.0 + # via -r requirements/ci.in importlib-metadata==4.2.0 # via # flake8 @@ -25,6 +28,8 @@ iniconfig==1.1.1 # via pytest mccabe==0.6.1 # via flake8 +more-itertools==8.12.0 + # via flake8-implicit-str-concat packaging==21.3 # via pytest pillow==8.4.0 diff --git a/setup.py b/setup.py index 52e2d5b72a..76a5bc3804 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,8 @@ VERSIONFILE = "PyPDF2/_version.py" -verstrline = open(VERSIONFILE, "rt").read() +with open(VERSIONFILE, "rt") as fp: + verstrline = fp.read() VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" mo = re.search(VSRE, verstrline, re.M) if mo: From 7771fadc14775f79d508f3f976f1cbe1081f790e Mon Sep 17 00:00:00 2001 From: Matthew Peveler Date: Thu, 14 Apr 2022 12:21:14 -0400 Subject: [PATCH 120/145] DEV: Remove unused Travis-CI configuration (#747) Signed-off-by: Matthew Peveler --- .travis.yml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7b92ec0eb7..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -sudo: false - -language: python -python: - - "2.7" - - "3.4" - - "3.5" - - "3.6" - - "pypy" - - "pypy3" - -install: - - pip install tox-travis - -script: - - tox - -matrix: - fast_finish: true From 0ea2301c5bb936d9915d890f03e0b19b98c40ac7 Mon Sep 17 00:00:00 2001 From: Matthew Peveler Date: Thu, 14 Apr 2022 12:23:36 -0400 Subject: [PATCH 121/145] TST: Rewrite JS tests from unittest to pytest (#746) Signed-off-by: Matthew Peveler --- .github/workflows/unit-tests.yaml | 2 +- Makefile | 2 +- Tests/test_javascript.py | 44 ++++++++++ Tests/tests.py | 135 ------------------------------ tox.ini | 2 +- 5 files changed, 47 insertions(+), 138 deletions(-) create mode 100644 Tests/test_javascript.py delete mode 100644 Tests/tests.py diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index e7e405a886..31179af763 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -48,4 +48,4 @@ jobs: - name: Test with pytest run: | - pytest Tests/tests.py Tests --cov --cov-report term-missing -vv + pytest Tests --cov --cov-report term-missing -vv diff --git a/Makefile b/Makefile index 84c93a264c..8516f1e255 100644 --- a/Makefile +++ b/Makefile @@ -14,4 +14,4 @@ clean: rm -rf Tests/__pycache__ PyPDF2/__pycache__ Image9.png htmlcov docs/_build dist dont_commit_merged.pdf dont_commit_writer.pdf PyPDF2.egg-info PyPDF2_pdfLocation.txt test: - pytest Tests/tests.py Tests --cov --cov-report term-missing -vv --cov-report html + pytest Tests --cov --cov-report term-missing -vv --cov-report html diff --git a/Tests/test_javascript.py b/Tests/test_javascript.py new file mode 100644 index 0000000000..d49f4dc263 --- /dev/null +++ b/Tests/test_javascript.py @@ -0,0 +1,44 @@ +import os +import pytest + +from PyPDF2 import PdfFileReader, PdfFileWriter + +# Configure path environment +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + +@pytest.fixture +def pdf_file_writer(): + ipdf = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) + pdf_file_writer = PdfFileWriter() + pdf_file_writer.appendPagesFromReader(ipdf) + yield pdf_file_writer + +def test_add_js(pdf_file_writer): + pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) + + assert "/Names" in pdf_file_writer._root_object, "addJS should add a name catalog in the root object." + assert "/JavaScript" in pdf_file_writer._root_object["/Names"], "addJS should add a JavaScript name tree under the name catalog." + assert "/OpenAction" in pdf_file_writer._root_object, "addJS should add an OpenAction to the catalog." + +def test_overwrite_js(pdf_file_writer): + def get_javascript_name(): + assert "/Names" in pdf_file_writer._root_object + assert "/JavaScript" in pdf_file_writer._root_object["/Names"] + assert "/Names" in pdf_file_writer._root_object["/Names"]["/JavaScript"] + return pdf_file_writer._root_object["/Names"]["/JavaScript"]["/Names"][0] + + pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) + first_js = get_javascript_name() + + pdf_file_writer.addJS( + "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" + ) + second_js = get_javascript_name() + + assert first_js != second_js, "addJS should overwrite the previous script in the catalog." diff --git a/Tests/tests.py b/Tests/tests.py deleted file mode 100644 index 036fe0af3a..0000000000 --- a/Tests/tests.py +++ /dev/null @@ -1,135 +0,0 @@ -import os -import sys -import unittest -import binascii - -from PyPDF2 import PdfFileReader, PdfFileWriter - - -# Configure path environment -TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) -PROJECT_ROOT = os.path.dirname(TESTS_ROOT) -RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") - -sys.path.append(PROJECT_ROOT) - - -if sys.version_info[0] < 3: - - def u_(s): - return s.decode("utf-8") - -else: - - def u_(s): - return s - - -class PdfReaderTestCases(unittest.TestCase): - def test_PdfReaderFileLoad(self): - """ - Test loading and parsing of a file. Extract text of the file and compare to expected - textual output. Expected outcome: file loads, text matches expected. - """ - - with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: - # Load PDF file from file - ipdf = PdfFileReader(inputfile) - ipdf_p1 = ipdf.getPage(0) - - # Retrieve the text of the PDF - with open( - os.path.join(RESOURCE_ROOT, "crazyones.txt"), "rb" - ) as pdftext_file: - pdftext = pdftext_file.read() - - ipdf_p1_text = ipdf_p1.extractText().replace("\n", "").encode("utf-8") - - # Compare the text of the PDF to a known source - self.assertEqual( - ipdf_p1_text, - pdftext, - msg="PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" - % (pdftext, ipdf_p1_text), - ) - - def test_PdfReaderJpegImage(self): - """ - Test loading and parsing of a file. Extract the image of the file and compare to expected - textual output. Expected outcome: file loads, image matches expected. - """ - - with open(os.path.join(RESOURCE_ROOT, "jpeg.pdf"), "rb") as inputfile: - # Load PDF file from file - ipdf = PdfFileReader(inputfile) - - # Retrieve the text of the image - with open(os.path.join(RESOURCE_ROOT, "jpeg.txt"), "r") as pdftext_file: - imagetext = pdftext_file.read() - - ipdf_p0 = ipdf.getPage(0) - xObject = ipdf_p0["/Resources"]["/XObject"].getObject() - data = xObject["/Im4"].getData() - - # Compare the text of the PDF to a known source - self.assertEqual( - binascii.hexlify(data).decode(), - imagetext, - msg="PDF extracted image differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" - % (imagetext, binascii.hexlify(data).decode()), - ) - - -class AddJsTestCase(unittest.TestCase): - def setUp(self): - ipdf = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) - self.pdf_file_writer = PdfFileWriter() - self.pdf_file_writer.appendPagesFromReader(ipdf) - - def test_add(self): - - self.pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) - - self.assertIn( - "/Names", - self.pdf_file_writer._root_object, - "addJS should add a name catalog in the root object.", - ) - self.assertIn( - "/JavaScript", - self.pdf_file_writer._root_object["/Names"], - "addJS should add a JavaScript name tree under the name catalog.", - ) - self.assertIn( - "/OpenAction", - self.pdf_file_writer._root_object, - "addJS should add an OpenAction to the catalog.", - ) - - def test_overwrite(self): - - self.pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) - first_js = self.get_javascript_name() - - self.pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) - second_js = self.get_javascript_name() - - self.assertNotEqual( - first_js, - second_js, - "addJS should overwrite the previous script in the catalog.", - ) - - def get_javascript_name(self): - self.assertIn("/Names", self.pdf_file_writer._root_object) - self.assertIn("/JavaScript", self.pdf_file_writer._root_object["/Names"]) - self.assertIn( - "/Names", self.pdf_file_writer._root_object["/Names"]["/JavaScript"] - ) - return self.pdf_file_writer._root_object["/Names"]["/JavaScript"]["/Names"][0] diff --git a/tox.ini b/tox.ini index bf2ceb3a8a..517e48ebaa 100644 --- a/tox.ini +++ b/tox.ini @@ -7,4 +7,4 @@ deps = pillow pytest pytest-cov -commands = pytest Tests/tests.py Tests --cov --cov-report term-missing -vv +commands = pytest Tests --cov --cov-report term-missing -vv From 0500c8d7bcf9fd351ca827f12323d538ba7c7f2b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Thu, 14 Apr 2022 20:20:36 +0200 Subject: [PATCH 122/145] DOC: Adjust short description --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 81732fcac2..6b42699b63 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,7 +6,7 @@ author_email = biziqe@mathieu.fenniak.net maintainer = Martin Thoma maintainer_email = info@martin-thoma.de -description = PDF toolkit +description = A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files long_description = file: README.md long_description_content_type = text/markdown From 01a1242403895f7b6f32760440c2435066485bf2 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 07:53:34 +0200 Subject: [PATCH 123/145] DEV: Show code coverage (#754) --- .github/workflows/unit-tests.yaml | 31 +++++++++++++++++++++++++------ .gitignore | 5 ++++- README.md | 1 + 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 31179af763..e18da4ae43 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -10,17 +10,15 @@ on: branches: [ main ] jobs: - build: - + tests: runs-on: ubuntu-latest strategy: matrix: python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} @@ -48,4 +46,25 @@ jobs: - name: Test with pytest run: | - pytest Tests --cov --cov-report term-missing -vv + pytest Tests --cov --cov-report term-missing --cov-report xml -vv + + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v2 + with: + files: ./coverage.xml + package: + name: Build & verify package + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + with: + python-version: ${{env.PYTHON_LATEST}} + + - run: python -m pip install build twine check-wheel-contents + - run: python -m build --sdist --wheel . + - run: ls -l dist + - run: check-wheel-contents dist/*.whl + - name: Check long_description + run: python -m twine check dist/* \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7dd6f93f76..6de9eba5fd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,10 +4,13 @@ .tox build .idea/* -.coverage *.egg-info/ dist/* +# Code coverage artifacts +.coverage +coverage.xml + # Editors / IDEs .vscode/ diff --git a/README.md b/README.md index a92bd466b7..5c790a4971 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Python Support](https://img.shields.io/pypi/pyversions/PyPDF2.svg)](https://pypi.org/project/PyPDF2/) [![](https://img.shields.io/badge/-documentation-green)](https://pypdf2.readthedocs.io/en/latest/) ![GitHub last commit](https://img.shields.io/github/last-commit/py-pdf/PyPDF2) +[![codecov](https://codecov.io/gh/py-pdf/PyPDF2/branch/master/graph/badge.svg?token=id42cGNZ5Z)](https://codecov.io/gh/py-pdf/PyPDF2) # PyPDF2 From fe45d2eba523df34564ab5f16a4370792d95fb5d Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 08:47:32 +0200 Subject: [PATCH 124/145] Combine coverage (#755) * Replace pytest-cov by coverage * Fix coverage badge --- .../{unit-tests.yaml => github-ci.yaml} | 64 ++++++++++----- .gitignore | 2 +- README.md | 2 +- requirements/ci.in | 6 +- requirements/ci.txt | 12 +-- requirements/dev.in | 2 + requirements/dev.txt | 81 ++++++++++++++++++- 7 files changed, 136 insertions(+), 33 deletions(-) rename .github/workflows/{unit-tests.yaml => github-ci.yaml} (51%) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/github-ci.yaml similarity index 51% rename from .github/workflows/unit-tests.yaml rename to .github/workflows/github-ci.yaml index e18da4ae43..4f2bffd2ed 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/github-ci.yaml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: Unit Tests +name: CI on: push: @@ -11,47 +11,47 @@ on: jobs: tests: + name: pytest on ${{ matrix.python-version }} runs-on: ubuntu-latest strategy: matrix: python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 + - name: Checkout Code + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - - name: Upgrade pip run: | python -m pip install --upgrade pip - - - name: Install requirements (python 3) + - name: Install requirements (Python 3) if: matrix.python-version != '2.7' run: | pip install -r requirements/ci.txt - - name: Install requirements (python 2) + - name: Install requirements (Python 2) if: matrix.python-version == '2.7' run: | - pip install pillow pytest pytest-cov - - - name: Install module + pip install pillow pytest coverage + - name: Install PyPDF2 run: | pip install . - - name: Test with flake8 run: | flake8 . --ignore=E203,W503,W504,E,F403,F405 if: matrix.python-version != '2.7' - - name: Test with pytest run: | - pytest Tests --cov --cov-report term-missing --cov-report xml -vv - - - name: Upload Coverage to Codecov - uses: codecov/codecov-action@v2 + python -m coverage run --parallel-mode -m pytest Tests -vv + - name: Upload coverage data + uses: actions/upload-artifact@v3 with: - files: ./coverage.xml + name: coverage-data + path: .coverage.* + if-no-files-found: ignore + package: name: Build & verify package runs-on: ubuntu-latest @@ -67,4 +67,32 @@ jobs: - run: ls -l dist - run: check-wheel-contents dist/*.whl - name: Check long_description - run: python -m twine check dist/* \ No newline at end of file + run: python -m twine check dist/* + + coverage: + name: Combine & check coverage. + runs-on: ubuntu-latest + needs: tests + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + with: + # Use latest Python, so it understands all syntax. + python-version: ${{env.PYTHON_LATEST}} + + - run: python -m pip install --upgrade coverage[toml] + + - uses: actions/download-artifact@v3 + with: + name: coverage-data + + - name: Combine coverage & create xml report + run: | + python -m coverage combine + python -m coverage xml + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6de9eba5fd..c47edb777b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ build dist/* # Code coverage artifacts -.coverage +.coverage* coverage.xml # Editors / IDEs diff --git a/README.md b/README.md index 5c790a4971..884e9a4cf4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Python Support](https://img.shields.io/pypi/pyversions/PyPDF2.svg)](https://pypi.org/project/PyPDF2/) [![](https://img.shields.io/badge/-documentation-green)](https://pypdf2.readthedocs.io/en/latest/) ![GitHub last commit](https://img.shields.io/github/last-commit/py-pdf/PyPDF2) -[![codecov](https://codecov.io/gh/py-pdf/PyPDF2/branch/master/graph/badge.svg?token=id42cGNZ5Z)](https://codecov.io/gh/py-pdf/PyPDF2) +[![codecov](https://codecov.io/gh/py-pdf/PyPDF2/branch/main/graph/badge.svg?token=id42cGNZ5Z)](https://codecov.io/gh/py-pdf/PyPDF2) # PyPDF2 diff --git a/requirements/ci.in b/requirements/ci.in index 3545b25f28..a7592ecf58 100644 --- a/requirements/ci.in +++ b/requirements/ci.in @@ -1,6 +1,6 @@ -pytest +coverage flake8 -flake8-bugbear flake8_implicit_str_concat -pytest-cov +flake8-bugbear pillow +pytest \ No newline at end of file diff --git a/requirements/ci.txt b/requirements/ci.txt index c926afe446..fcca42ffec 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -9,8 +9,8 @@ attrs==20.3.0 # flake8-bugbear # flake8-implicit-str-concat # pytest -coverage[toml]==6.2 - # via pytest-cov +coverage==6.2 + # via -r requirements/ci.in flake8==4.0.1 # via # -r requirements/ci.in @@ -45,15 +45,9 @@ pyflakes==2.4.0 pyparsing==3.0.7 # via packaging pytest==7.0.1 - # via - # -r requirements/ci.in - # pytest-cov -pytest-cov==3.0.0 # via -r requirements/ci.in tomli==1.2.3 - # via - # coverage - # pytest + # via pytest typing-extensions==4.1.1 # via importlib-metadata zipp==3.6.0 diff --git a/requirements/dev.in b/requirements/dev.in index f01898feab..6a2b12f2b7 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,4 +1,6 @@ black pip-tools pre-commit +pytest-cov +twine wheel diff --git a/requirements/dev.txt b/requirements/dev.txt index 71a5ee617a..ff79c1b38d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,66 +4,145 @@ # # pip-compile requirements/dev.in # +attrs==21.4.0 + # via pytest black==22.3.0 # via -r requirements/dev.in +bleach==4.1.0 + # via readme-renderer +certifi==2021.10.8 + # via requests +cffi==1.15.0 + # via cryptography cfgv==3.3.1 # via pre-commit +charset-normalizer==2.0.12 + # via requests click==8.0.4 # via # black # pip-tools +colorama==0.4.4 + # via twine +coverage[toml]==6.2 + # via pytest-cov +cryptography==36.0.2 + # via secretstorage dataclasses==0.8 # via black distlib==0.3.4 # via virtualenv +docutils==0.18.1 + # via readme-renderer filelock==3.4.1 # via virtualenv identify==2.4.4 # via pre-commit +idna==3.3 + # via requests importlib-metadata==4.8.3 # via # click + # keyring # pep517 + # pluggy # pre-commit + # pytest + # twine # virtualenv importlib-resources==5.2.3 # via # pre-commit + # tqdm # virtualenv +iniconfig==1.1.1 + # via pytest +jeepney==0.7.1 + # via + # keyring + # secretstorage +keyring==23.4.1 + # via twine mypy-extensions==0.4.3 # via black nodeenv==1.6.0 # via pre-commit +packaging==21.3 + # via + # bleach + # pytest pathspec==0.9.0 # via black pep517==0.12.0 # via pip-tools pip-tools==6.4.0 # via -r requirements/dev.in +pkginfo==1.8.2 + # via twine platformdirs==2.4.0 # via # black # virtualenv +pluggy==1.0.0 + # via pytest pre-commit==2.17.0 # via -r requirements/dev.in +py==1.11.0 + # via pytest +pycparser==2.21 + # via cffi +pygments==2.11.2 + # via readme-renderer +pyparsing==3.0.8 + # via packaging +pytest==7.0.1 + # via pytest-cov +pytest-cov==3.0.0 + # via -r requirements/dev.in pyyaml==6.0 # via pre-commit +readme-renderer==34.0 + # via twine +requests==2.27.1 + # via + # requests-toolbelt + # twine +requests-toolbelt==0.9.1 + # via twine +rfc3986==1.5.0 + # via twine +secretstorage==3.3.1 + # via keyring six==1.16.0 - # via virtualenv + # via + # bleach + # virtualenv toml==0.10.2 # via pre-commit tomli==1.2.3 # via # black + # coverage # pep517 + # pytest +tqdm==4.64.0 + # via twine +twine==3.8.0 + # via -r requirements/dev.in typed-ast==1.5.2 # via black typing-extensions==4.1.1 # via # black # importlib-metadata +urllib3==1.26.9 + # via + # requests + # twine virtualenv==20.14.0 # via pre-commit +webencodings==0.5.1 + # via bleach wheel==0.37.1 # via # -r requirements/dev.in From 9d53ee80856b4fdd275a5dd639ad4b1b969d6910 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 10:53:32 +0200 Subject: [PATCH 125/145] BUG: Fix merging encrypted files (#757) --- PyPDF2/merger.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index 00393bbb82..854d8cdb81 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -119,13 +119,13 @@ def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=T fileobj = StreamIO(filecontent) my_file = True elif isinstance(fileobj, PdfFileReader): + if hasattr(fileobj, '_decryption_key'): + decryption_key = fileobj._decryption_key orig_tell = fileobj.stream.tell() fileobj.stream.seek(0) filecontent = StreamIO(fileobj.stream.read()) fileobj.stream.seek(orig_tell) # reset the stream to its original location fileobj = filecontent - if hasattr(fileobj, '_decryption_key'): - decryption_key = fileobj._decryption_key my_file = True # Create a new PdfFileReader instance using the stream From 012709f7a145d1fd85c3f6ca2a8e4c792d14e94b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 12:29:18 +0200 Subject: [PATCH 126/145] TST: Increase Test coverage (#756) Adding unit Tests: * xmp * ConvertFunctionsToVirtualList * PyPDF2.utils.hexStr * Page operations with encoded file * merging encrypted * images DOC: Comments to docstrings STY: Remove vim comments BUG: CCITTFaxDecode decodeParms can be an ArrayObject. I don't know how a good solution would look like. Now it doesn't throw an error, but the result might be wrong. BUG: struct was not imported for Python 2.X --- PyPDF2/filters.py | 12 +++- PyPDF2/generic.py | 49 ++++++------- PyPDF2/merger.py | 2 - PyPDF2/pdf.py | 9 +-- PyPDF2/utils.py | 7 +- Resources/imagemagick-ASCII85Decode.pdf | Bin 0 -> 2848 bytes Resources/imagemagick-CCITTFaxDecode.pdf | Bin 0 -> 1880 bytes Resources/imagemagick-images.pdf | Bin 0 -> 16012 bytes Resources/imagemagick-lzw.pdf | Bin 0 -> 2678 bytes Resources/metadata.pdf | Bin 0 -> 13294 bytes Tests/test_basic_features.py | 34 ++++----- Tests/test_javascript.py | 36 ++++++---- Tests/test_merger.py | 21 +++--- Tests/test_page.py | 51 ++++++++++++- Tests/test_pagerange.py | 12 ++++ Tests/test_reader.py | 87 ++++++++++++++++------- Tests/test_utils.py | 26 ++++++- Tests/test_workflows.py | 3 +- Tests/test_writer.py | 31 +++++++- Tests/test_xmp.py | 35 +++++++-- 20 files changed, 296 insertions(+), 119 deletions(-) create mode 100644 Resources/imagemagick-ASCII85Decode.pdf create mode 100644 Resources/imagemagick-CCITTFaxDecode.pdf create mode 100644 Resources/imagemagick-images.pdf create mode 100644 Resources/imagemagick-lzw.pdf create mode 100644 Resources/metadata.pdf diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 1ecce31c81..8b72f0932a 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -1,5 +1,3 @@ -# vim: sw=4:expandtab:foldmethod=marker -# # Copyright (c) 2006, Mathieu Fenniak # All rights reserved. # @@ -40,7 +38,7 @@ from cStringIO import StringIO else: from io import StringIO - import struct +import struct try: import zlib @@ -356,6 +354,10 @@ def decode(data, decodeParms=None): class CCITTFaxDecode(object): def decode(data, decodeParms=None, height=0): if decodeParms: + from PyPDF2.generic import ArrayObject + if isinstance(decodeParms, ArrayObject): + if len(decodeParms) == 1: + decodeParms = decodeParms[0] if decodeParms.get("/K", 1) == -1: CCITTgroup = 4 else: @@ -451,6 +453,10 @@ def _xobj_to_image(x_object_obj): img_byte_arr = io.BytesIO() img.save(img_byte_arr, format="PNG") data = img_byte_arr.getvalue() + elif x_object_obj["/Filter"] in (["/LZWDecode"], ['/ASCII85Decode'], ['/CCITTFaxDecode']): + from PyPDF2.utils import b_ + extension = ".png" + data = b_(data) elif x_object_obj["/Filter"] == "/DCTDecode": extension = ".jpg" elif x_object_obj["/Filter"] == "/JPXDecode": diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 334d766096..2ae9a74717 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -44,6 +44,8 @@ import decimal import codecs +from PyPDF2.utils import ERR_STREAM_TRUNCATED_PREMATURELY + ObjectPrefix = b_('/<[tf(n%') NumberSigns = b_('+-') IndirectPattern = re.compile(b_(r"[+-]?(\d+)\s+(\d+)\s+R[^a-zA-Z]")) @@ -199,8 +201,7 @@ def readFromStream(stream, pdf): while True: tok = stream.read(1) if not tok: - # stream has truncated prematurely - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) if tok.isspace(): break idnum += tok @@ -208,8 +209,7 @@ def readFromStream(stream, pdf): while True: tok = stream.read(1) if not tok: - # stream has truncated prematurely - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) if tok.isspace(): if not generation: continue @@ -273,10 +273,11 @@ def readFromStream(stream): readFromStream = staticmethod(readFromStream) -## -# Given a string (either a "str" or "unicode"), create a ByteStringObject or a -# TextStringObject to represent the string. def createStringObject(string): + """ + Given a string (either a "str" or "unicode"), create a ByteStringObject or a + TextStringObject to represent the string. + """ if isinstance(string, utils.string_type): return TextStringObject(string) elif isinstance(string, utils.bytes_type): @@ -306,8 +307,7 @@ def readHexStringFromStream(stream): while True: tok = readNonWhitespace(stream) if not tok: - # stream has truncated prematurely - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) if tok == b_(">"): break x += tok @@ -328,8 +328,7 @@ def readStringFromStream(stream): while True: tok = stream.read(1) if not tok: - # stream has truncated prematurely - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) if tok == b_("("): parens += 1 elif tok == b_(")"): @@ -392,16 +391,17 @@ def readStringFromStream(stream): return createStringObject(txt) -## -# Represents a string object where the text encoding could not be determined. -# This occurs quite often, as the PDF spec doesn't provide an alternate way to -# represent strings -- for example, the encryption data stored in files (like -# /O) is clearly not text, but is still stored in a "String" object. class ByteStringObject(utils.bytes_type, PdfObject): + """ + Represents a string object where the text encoding could not be determined. + This occurs quite often, as the PDF spec doesn't provide an alternate way to + represent strings -- for example, the encryption data stored in files (like + /O) is clearly not text, but is still stored in a "String" object. + """ ## # For compatibility with TextStringObject.original_bytes. This method - # returns self. + # self. original_bytes = property(lambda self: self) def writeToStream(self, stream, encryption_key): @@ -413,12 +413,14 @@ def writeToStream(self, stream, encryption_key): stream.write(b_(">")) -## -# Represents a string object that has been decoded into a real unicode string. -# If read from a PDF document, this string appeared to match the -# PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding to -# occur. class TextStringObject(utils.string_type, PdfObject): + """ + Represents a string object that has been decoded into a real unicode string. + If read from a PDF document, this string appeared to match the + PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding to + occur. + """ + autodetect_pdfdocencoding = False autodetect_utf16 = False @@ -569,8 +571,7 @@ def readFromStream(stream, pdf): skipOverComment(stream) continue if not tok: - # stream has truncated prematurely - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) if debug: print(("Tok:", tok)) if tok == b_(">"): diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index 854d8cdb81..d5fd22414d 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -1,5 +1,3 @@ -# vim: sw=4:expandtab:foldmethod=marker -# # Copyright (c) 2006, Mathieu Fenniak # All rights reserved. # diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 0f7692bf58..9bfa1bd0d4 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # -# vim: sw=4:expandtab:foldmethod=marker -# # Copyright (c) 2006, Mathieu Fenniak # Copyright (c) 2007, Ashish Kulkarni # @@ -1637,7 +1635,7 @@ def _getObjectFromStream(self, indirectReference): streamData.seek(0, 0) lines = streamData.readlines() for i in range(0, len(lines)): - print((lines[i])) + print(lines[i]) streamData.seek(pos, 0) try: obj = readObject(streamData, self) @@ -2588,11 +2586,6 @@ def mergeRotatedScaledTranslatedPage(self, page2, rotation, scale, tx, ty, expan ctm[1][0], ctm[1][1], ctm[2][0], ctm[2][1]], expand) - ## - # Applys a transformation matrix the page. - # - # @param ctm A 6 elements tuple containing the operands of the - # transformation matrix def addTransformation(self, ctm): """ Applies a transformation matrix to the page. diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 3270d86f8a..87b3a8b248 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -39,7 +39,7 @@ except ImportError: # Py3 import builtins - +ERR_STREAM_TRUNCATED_PREMATURELY = "Stream has ended unexpectedly" xrange_fn = getattr(builtins, "xrange", range) _basestring = getattr(builtins, "basestring", str) @@ -122,7 +122,7 @@ def skipOverComment(stream): def readUntilRegex(stream, regex, ignore_eof=False): """ Reads until the regular expression pattern matched (ignore the match) - Raise PdfStreamError on premature end-of-file. + :raises PdfStreamError: on premature end-of-file :param bool ignore_eof: If true, ignore end-of-line and return immediately """ name = b_('') @@ -133,7 +133,7 @@ def readUntilRegex(stream, regex, ignore_eof=False): if ignore_eof: return name else: - raise PdfStreamError("Stream has ended unexpectedly") + raise PdfStreamError(ERR_STREAM_TRUNCATED_PREMATURELY) m = regex.search(tok) if m is not None: name += tok[:m.start()] @@ -242,7 +242,6 @@ def b_(s): bc[s] = r return r except Exception: - print(s) r = s.encode('utf-8') if len(s) < 2: bc[s] = r diff --git a/Resources/imagemagick-ASCII85Decode.pdf b/Resources/imagemagick-ASCII85Decode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..46aabc0fc4aa9125f7bea9a67d748712d4663ba1 GIT binary patch literal 2848 zcmc&$TUX*p5YBV|if$AI6?4D9Aj4g8Mq$JmXLZ~$Bprwf(Gd1HKI~85-KvlP1J2W) zJ&VUqS9Mi&)%T^llI=Cy1^LjVM5YoA2KS^~CSuPX@+nn7b3w$*A5WZ$4Lh* zJGkdg1am5O#uByS@Q{w!3j?RmBWf%(XWaGedhkMTB+#jcmKG0~OBg)8y%0paf|?sD0z*{1i|`%kvRsf-l@ zWOYB9_ITI`#!tZnd9;X_U{s7PmKeRR{1{`~?DaJa%lLp_qWI-=VZsLI3NsvR^EUevqGd~C@4WRt|bOu>@*s6d&*rZ*lVtCqUeNS~GJ-FbzK#Bvu~-&kHf_StsRI%kE`;%9bn_Vo%1lLzeJyK~J7R-w!Y z7y`<_2=;CsEPsAoX8Xs_Eq0)^8yHby2c!Ew+pj#-FjxuLA>J9}vmgNRZ|5%5J5cU@ zz)F0S?MCKzZt1Xi{(U0B-x9+MBsObOk)-@&wV zoGQ0ZA^PrzJ6L%bwf6U%XRs`*K$t-W07t%$z;zTDzFosmm4VesCN?|%csuDJw;tihaz^;MXcmTw!zU?bLW1~+cL_;BE1GBs&&23Om|e|s;<^V@!T z2v?2_p!9!TOmSN4H&faqe!A@Cv{9_yVQ;ntIqeIpmgxi5NK{(8>bhww0dqkp&M5M)!8oI9P)T0X> zUgh|slci3Fg4c910<)%5C3r8^b;ZqinzZSwX+X)EuVw%xYdX^aLf3Whp|Y;CzW>URBe65_0*Y1O zN5VxAzz4*9-f7aCvf>$-t*|ufFmQ-oLO_i&bBAKRZ7>;QVbXze!*BW@m jf$2#aA83|mY8CqLL)^~WupLJ6tEDJPkz}*2ZkzlA|5?lD literal 0 HcmV?d00001 diff --git a/Resources/imagemagick-CCITTFaxDecode.pdf b/Resources/imagemagick-CCITTFaxDecode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5cbe2043b0cb89540d2c2d746dc5eecdbcc1520 GIT binary patch literal 1880 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 H6K4Jo4)34X literal 0 HcmV?d00001 diff --git a/Resources/imagemagick-lzw.pdf b/Resources/imagemagick-lzw.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b57e07f25e1c99df822100e7d44e04e6c1ac8fe9 GIT binary patch literal 2678 zcmcImOK%%h6rLUE3RDRRmgru`PV6SmydQRx)bG@39lLSbl%$~657Fl24uz1aRUzff7?-R#lyXi@l)cjEcYz6_5Gr5c>vVih$`P&YXAw zK673Wm}!Y)UMA2Hu{mmm5t~sWA|Bd(pcc?1V#Vu)JOJ9nC#NSR?)Ytv+?{xBXi+wZ z_=tO*F31@X16Tb9~+kv|+`+`uvlh z3KxID7*aSF>Jyp7Y2#eB0^ty=oH=ULVAXYPpdL)5@{4q_6s?_k0M7= z&)uAp>^bb#<0#k47f$s6#RiIc?)cQnqS%haf@(c@2)m87NGxCM-6T;oQOp;J(rpEE zId^R6{RQ#nd=NwN1Qu4#TTj(%*d*5{V&l?95l?5NToQL5rfzYMF)W>LhEE>hu8hkr zOCGJgWGQvuWAT!8$kGRyXKbtX;shF#TWsrhN@jZSLQc z*_Ki%Vn&H=buXK2bMGpT$+Ex>acfY|i~z*Hk~~r`KzaW$cA}gPt>Bk;+uCpf~DkQREvt?<1dr0~Mx zcIf$o5{{r`DXU0|B5ATN%bFr(z@g^1KWKxSu|0BNtS7r+csoTkPG-)+f(*XRX zSj_gQySuvvcZVPH&-v$_cW?cB zUcIjFQA?(bIlFtUs;=2&3L;{3jP$GkvWc1A1pq6M0cdYz1>oTUfMiVV%v~&i9BjaU z8~~7*rHzZJ6A&b3W9VWkVrpz}VhZ5n130@lnHt&xJeHgRn^W%0)hY}u6Tet0SyW&p zA(#-aqtQlWN3KU?qtS$v&~jM2m_JD?4YS11vM5Ed7z?+cA<)TQk02tVyNpI7UL!=) z0f!I-opj2HbikAhP=^7gb|(LD@Tc`oj*;=duw(=>vaoUdlQR>LlYy1_pFL(E!#|rq zMg|6EmcQZr&%wmhK&d3!V$vf_(XBGDNVxwwkQjCtW+ql)r^10m5)vd5QW9Y`E+jE7 z?0DC{?RQac`bX)k*1XR8&8PVDZHGlHHJW5)8FYe9V;?DLC~(6*3TUZDB|vm^c8>OS zc7{la7aAi&1-)YAP91(;Svkod5_&TPoCtDjJr+!ih8(Og3&=lA z=pK-VIxxBhfc;Pep6v!K+{Y~oFbJsomBb7C`%0e(OY}HP0h7qh4Fm$QWhHQ@{Yopt zLWS=bCa{8;0B;Oh;Srn*Scig`36RTbr#2SOhd5YRYUjdf1RTyF;0Ec(JO=$p`Luz-(8>!AXb%~!wpCr~Yrp|$vMp9k?^;}d2e!7|~Wn|a)6 z*u61}xYL?>@7*Jg+q-$(H8G6nPL6jV0|izU{r4%1&!DTl?3$6E^b=fzIlKj*U!mD< zKU$})i)wf`R2~T(>+%XjGWnh@7JBhHBs1*H>_UU_MebMk3W`Xkxo6P0wifG<9aW<5YOhDILH=OL(Y*ZTrv~v{l|NqmW5?_B&ll~{ho5dw$OAA2VXrV~V3ppl zpWl+&lfu%LuK;g`3(k&jUH)tE9|v$vLb%vZY{>9V6;RilUNpbXM7cVPxCGiM^JhfN z+K-jZZeySx(kZK|9YikY?<{{F`xbRn9gX?vDiPVwTeen0QD2!Q?dbHc=1AoKgQ3yvDYp0)b&amsv$Bvo%aPN~@y0e%3LKj0yCog5^ z(nxvileTLZ>-1CHgn0P`7tiEHWs#Y11vRG~b&mcujReeZs2qf1nUqOiQxqX?w;SMJ zqSYF=>9iKOsy6WQGuMK;lKb#)j2z1}w#DcxZZ}D!K)aj*H zn4Cl#V_*g|4XzU<3We#{90j3W=v9w+x1l$PgNcRThy0LO{pwJT?%;q02XyH~`htJC z_n6rOqcVeET3aS(G#=3EAk+P$>we}3ZF?&>A3d;cJGpis(qv>f@x&veKD{H0N(Z7O z4S~j#U#|>kkU({jts<$noxyvUOShw#c(#;Yj2F%bcjMTAGGfj>Q#xTQw=+7Qx3myv zioaG2fA|d$b%4=Qv!>ZhOOwFVz3w{K%vpXOnT!+uR@_ba6Hz-+26q_rwi*uG>SN99$8|SoUY8U<1c;_d` z3J^|Uqm|Zd1-9YDFFpF+X;WLej>(jIB$k5=p05&Ltd4a2^DcBl4!=Jzw#cz^w8UDldkZ91% z(CB9hw(1HnN=m~4Ej22WKJV{xgN_2opIO9rnP9-Lm9P2t|r&=rSykTI;*Hy zo%mXIc8oUUT$G8jgHz%?i8)UM%NZB`EZfS686ENhK4?F*Lgg5mWPaB7HJyr2z=p`L zFSAZOz>F_3%HX-~M5aSqI5^BX@>vFr%c~5GIWB}~SH#j+qbf##C6i(IewTWZ;-d?+xX`&e1#_fh&PL^|s6vO>YGuKcR1NQ~%j&btKuQ z1`&u`Rkca+#b7{@FLC3rzg{Sj%hqWX%474k({+QFmA&c!UB{|!3|ZK;PSi9eYsi>}UZJXEhU>IXDd3(HRT=K9^3pH#u6eJ3K` z30a$;7moNonHcS6V|&qaEvpPuuNTqe6Kx@2AnyyzI+fcIubam0M6VP{wyB?`>7yH7 zyBHfF;I%$lI@vsZ&=LgcRTJNz&NOFur&f zdb?qETmnidZ{AwI2Wy)j-_6u17|YkC36Q#iaTIM9q>anqp(+&S6cNhil9Sn4WU=1) z>POgCI&u483f71x=E(5{5Ul<*6V(>%YQN>I8ryQ_TD1Wpp7aadLF~&8!|3(qu3cWT zY)5p(12f~INRKR>O+@7j^wm}5_T{hr{R%3yi-3M99suM70t!W?xndh#g4OFW&hFxy zu9Vc27HsL8syoYEaH@4Yh0wgd$}A~SA8QlmLx#09!CAZ|p@5+m7aX`jE zhLnvuIr=)}m*FhhaFb72>n|6oQVJwch}$I%Q~k*hlX6 zXcaR}N2`!xf825?`J|HiM5`M}67rHP6{a9W&C&?xc6}Xeex((fOTobCKs~!S915r98A)U#x;rnhA13Vw>ZWPyLGP-1N9>uYepgO5ROqQa-0nIk#T zL`AkcmQeVaZ8EZmHgB;4NV+#L|Gf3`X10~|V$&4d&y$&i%LuvlZv!Yf2p*(;{^NFW zM*Mf(5WP%cdCEAdSryCbO4$y-A=qh4ke7=c%iX7!J|!wo<>s*9u8KM(j;2uPdnXT1 z(IhPb!04zrR3N^5T>LVKFiV?#qhPL}2x*rH$9&bCg683gx{XynnERdXVn_`MbegxZ z9q-GaZzGjZ(fsJyf;%EX6oF*dfzQ8Fqk(pAz}pr8 zHFy(xv@hX~-23B{qHl6P@rr;qeZ{jLywcZ2Dzfxy?y9jUt)F1LfGz(5k<{yMu=lD4 zf+UTHiE7)at}ta(R_dIUjxTRgp-JfbRUNLD6`i27DlHiEUJ(W>cIh)Vo4XK4`^&ru zfJ5Xo83o1mHfBjv2Ic4Z?{T4{{>!muh=rZVZ+A2mT1FyXQI~7wcN?MG$z6^0m~fFZ zgA@i5!&)K-Cw?{Bw)h7H-SaZoUuazBEKc-r`;p*t=wxm33HJBw8mB&{qpYw;I%7r$ znpSF5WOXdKr_HycC`r?;oVjN<97x+{B?{EQ36C?8%l+qZ(BiC}GQ$0kYChdO$6SPpxGtxQkf@FrPgkg1j7%5p)GV(9QlbIS8pz z{}rl;Q@>wC;#ApGO?Wp>u#P8B8CENANY!FkRE!$LI+cjksg$lAGPP^ZlW$s!i^+W9 zK3%`MzZ4@-Jy{yzj)+Z;8IW;oZ9-3_ zG0thrAcxg-(oCe)^)1)i9~nZ?Y8!f{EK$iizV7WDZeu;a63?YCQ^kY}z9tt$-;mS@ znN1@zm8|pUENlUTv&yuZL>B&R&Dzt|v1vMLF*0UTrQr=eLH(9J;M+M*>`-QNfa8^F zM3=%@=H=+?hetH;P{mi4iZ7RC&jdF_m+8_g&ec%Z7rhm~lA}_K=pi%=_>#abR6e6x zEeWB0DVxVb|3rPs`c{A!nH?NgXSpHS6NZV6&Te2{e7JgvhBj1VBTpThmJy28IHPc# zpS0ZlX%Rik(WPj#Hk4hyQb>fp?F~fw@}#v1*#=mW`$E8~?STz~4jrx+T!Mmw0PkCdA zgc7xC0tyF9U3(aRKr|y|e0%JzqF&WfGTYHo5;(8tJp=7EGKVe-v9^?C zmTaikAz_}!8pS(or_ogYmI#VGTfhept9kET7J(n%grLYYe?a-W0%BI55j?&ET#~yf=9j;OoYD2nyG%52{z|WJA9l^ul|IKFN*%u zx8FtG6E5jjN*v;(lSyby&6_CTP^A*i1z0W+9$}Je*-hl5F3qo$2q^2}_*c7$b7poF z!}A-*fIKk7mWe$av2A)~Ddmhef>(?Y4<<$ND47d%maN9X)192Y(h=m+H?YVH^WR!2 zy3l=;d8$8gSY=f%JbDhHeU1*-PPss0J=0Lp%7_KnZL4ok&cdv4rQtl54VpX`pEXkL z`b!k*N*pt{=#^Eh>?9@=Su}9JTmb}}*)GtRk(>uKn3a0VXX0I%SrnE}CSeBP6=oR{ zL8&;X1s{XsNSH%F*c2?mMBy><8;EjxTG-~Kf~{jxpM-}`0oGXYiVoqA_fD($>xld_ z-i(N@QDw?Del|@d)b=wMy1P6L+9`Zxkzyv^uP^(`3d9Mc_o3-DHI~DGDG1V2$HFVca$JRRE zLCENKAWRZkR{Yu2g?icHz?1(V>-+OuPGxk!Qeo=5Qm#3HnQZtWF(UN|o)Xm@cu-A- z2dsUlL<8F-gy&V~#(penL?R%^Ch@N0a>+og1z`|anlhkU`HRn{jC$J=JO@{%o8miE zR4QY5c4l`VR6YNF2!&^UuR64-!>RCu73-|oiSJr(u-N{cZ~IJKc(v-Gcn%4D2R?I6 zyk;}6t2js0acK95>$fBAYrqHOOi``+>6-js^#nz1AJocqM_TatKC2*07bq{*=gpry zr8Lo^SK3bK6wrASg-oxo-GrY)^+`F$dkxSxrt2-|9$^uG)@bY>vtlo8QMevYuv@Q8 z50`-=L2ZIug&1FS!vaJzuDdel%nBBB5H=aGX4Lk1*(v5o1+}VPU{LVn?^uJ+!JVGd zI6d89Lq+uVd`z3Hgy|Qft7{#Jf{_p1;Gk7uU7gcK-8B?$*%K_{N*#r*`-@6>DoQzNfRlUfOhzB*!$-8) z^6LWKYIf>-c`FM(iI=cr{4(SJzLNwB@f`jL-|~3-eUlw+RVR)#s?nBISRJA2gm);2 z`x{%6oOXZQt^WpAQ|k)Zx5frEsqnP=0)Z*&U~TX`38AXVI}K@6&GVGGHgIWp=(eS@ z7yypE-=&Ap+#2~O6*+RG{?j={`VTl0b{>mJc{8P9*cGkkv1G0%@WXeX)lFo)tsFfD zOD~I6s#Z(rJJw@!GS~*y%@EbyYnUfX7a3w3Z?ab;EOsoKy=$^4qOO)L@i{DzX5^M& ztT!F$E&_W9+k7%V`Fk;X72f(*EbFM)KkXnHMc9k?8Hi1+#-* zKxl@pu~O7?M|*qXo~}{VXZsmK3R5k~@$vPUyMe?Mo-shwmQlA*bg92P-yY&Le@mYi zCe3?P=2X93sxQ-T;`#NL#^@Azpl5czEhkTZDh`?5X#%}e)Y*ON3251HL(C^fyiDiR zBUA#jyt8av$=LE?A!=Ej4)kaX%Jk?#Y>?qb^^8PcL-rp@=k&FoW85nNcPby0n&;(! z7ip)Kkt5i~TsHqr$1$uBK)Tm*ucbpYDBpTSfm%$~H3sFYaB|4q?zm11XmdtWVd0Rk z8w3sFglT)@_%;~#WzaCiuf8STR%f2f%a`0%(f?MLf?s-0Ik^f&Qynnjh80JG$J)8( z-y?NToJbw6%V}q2CD|U?4%f>o-nE^&^qjLuIKVP$FVF;*sCeG>Fkc=zX!D?&C2l&s zl^l^v#7=0*>zRHJ@l5N$Z`XOPGMJ5St?H?*gZJC`GW=;WGdKkzA-pZ4H`GeHW?_1y|8rqSX4WhOFLplFo4bBHjsaA(|5vxDLyF_s z!*9pyg1?BoJih$MOfNwJMt>CMoy_s!6lDIIm#`c_Hb$vF&3cT$O0F<;j7tc!nhd#}jnyeB(*}h1*(6`nfa)>!T60&eK<{ z1S{52q+aEa!ObhiAvZ_-Y={WWMv^YuS_&3Y+n`voSgS8i1!m2vFP1&=Y6NNIoT<>w z!BBOJATChKNDWG#CKWMI?*lTe#iW>3O!d9-ROP;^x<#mkqZVuy*ZSDtu<>a!A$ifw zuZf_3@$SqP47gyY&wHtB_>P7SO`NY)2+)JBzKWZdpER1LK@Vt?GL+0+^_ZaE(-7$E zkuyDna9MP?Hl-a{U`i2l_HA0PIN#P>#@z`o_W45maP?>0?=;~J6B<;nW29+VbOGpI z71}ATN4+YZHc`0D;b&Y_HC87A$_pyB;e@tfJ4<0|DYILr(Va`AU!qG8D8@4@<#abI zI5BRFO0V5e4P1U7of4wp#IKhzsg}mzDpR7_D0A)3Tox;TeWEmc)WD4?)lTHFT)K~P z?Y0?eRZ1S*!UT^5R4ap*zIf(rJmJ#%_Xt{~LF{|j7wpt68zcCcK6&htT*QAhr-)+8 z=cgUAwCy?2Zr$zap`E#Yk{LbM+U_+)Sw(^%V!EGrfO4eSlWv-|N`$E06Q#1%>l`?$ zj0IIX=5x;IPOoa}+qk>9X(zLd&`Mu>$D?3kS?f)LuXzw9>z^@f_P0oC#xZm&=Q@=h zFkRE3QAOubxOh|0T9#4DT6GfOe+n4-4HmF_#flA?X@tnzV?uQm--3grXh!x!a|$%G zHWQ9to=BTy4tqp?pw~k7%yerkaT{*!CL*~lyqQCia8b#3m>r!HAZujrXdkqJ;Q-s1C#->_jJGvu_`DWufB4mXXWBg{ z;XHg?x)!;;#a6O_fXz6i&3AdHFh)DCiJ|Dhgf9R(jmcUywNWr~ahc3W9#jAb0Z9tjc6W+=Erh zOorDctGknJ#&;J@Q}fYyV0*{o01{C_3Xvgkj0o9Qf|#i$r*r9 z?eA-2n={%fX;>ZS?+wgLJn<|yvddXNr0bENFTGvG>0BZQd6||^GB@=I_$R|d*4{IQ>?wZ^T&nwo{gc-ul7r-xM}uH7v0EuKGv59F5h zSUL@gPG740PK4JF%x}dn)f~)HtmnRkOjApkNXM>ucYCvVejEc>JiPBmh26sLE@wo|yo(~(W)Yb5AW zZ60h>L?RaVIVk?}$Na|`u8`2MH?^hK5i<#Zt>{7|JMd>Ivhf3>Z@z-Vd4h-McuL+3 zlX8}dUUh-ePf{Wcsz{F?y(IoSyT0aQUGyCyDlGoxe?Go*@)~yaLd2w}5>D2J?N;h) zv$XtXsYW3GL@wfo7)S#>98gpBGF0{CjB3|&E>LP`fUqPpSlIY@AK1%q@*!6WU>|1^ zcy9LdnRnuzZfU>C^jm!=p#PcIpd~E1jP%~&2_s~lPcWG<@;Cn337!tSL9?o2qof&Ng^5|P)4fyhPelUCcB^g6ar_o>3(DdHw~k1 z!SP(rtQkmma2U+_{Gs!19pp*vJ6Qa?R>){*ZpXX8M&js0Z43VVOZZJ8tATQ%Ea zs_vRiJZAg8o=j|DQm^I zpLG0T?Kgwr2#}CLYz7LvRL=vdxpY18g883i)C6|&Rnk7SPtq>0ciNoi&?dOdv_y#C zB}f5(D#VHDQ}&NC*%sOUL|7cGlL3Yz6MCPF^juOmPae(b>hUB{gPW9j6a~i{ZVnoE zSnRC4zUZcRrFbL=qFD zEc9x0E7~d}pC_x)_{FnHJYeB)C{Da3?2erF=FA>1f{8pMIC zOe6-e1Oj13Y=f%H?gI@tg0iK}dWJJ;2b5-WSrmr&KUjebCTp%TK(Xd-WXa`tBx1hj26T^ptO4`$#ce zrjnrF)M2dK#v3fe93Y8(UCmU1u&kmf#oi?HwEI(e|$Wjb95hWH7 zMXA^!TZtNuz3S!h)nTbSAW5<@Vup+0hs zE8;So!&qBp5M=~t5vGsbxC)`sHzG{Ulom}!pNmA=T!+12xcQ#f)G}GHw%!3oAC!3P zz_537O5}t@3?-<+VkqjMpH9oWzs|jIjF`#H6GFzINEXKuGPb=jO^K2ZqwYg#SwcdeV53&o z92vcFr{=P_UBQP_MVJ{D5~cP4B|1b4vo_(@fR4;l_{p`CRIKdGz}q%@eSil^u^Vee zZP6<|GU7|2qJ7USWh3j!*8_*d-D$g{eV6Yi#4~jJksq=Iz&6rNOR?b zrXN{CP4lX>E1Iwau_7RFXN578)L10dR?+4# z==u<)6-Qib=wNF4ax3S0wM(!l+e^42((j=dyS%NjGCA`;9Rn|5a|F<^Uu?ZPx6ft;E{bK#c}kF zBUjVRX`PdP`atf2!Y#5Bu+s}qDSs^h(XTXjn_+Rxb;#eXg|G*0DT5+yXbZv%7J`+Z z+;>YjNA8v(5S*nS?mUMo-$a_>o%}kROmVXW8Tq+h2ozaUXRr>ZxAAIIUX&=*Q`iU`DKlnRrdlNXAT58L#bQK~`KTdGZHi{=OJ6a_YG)kD;Yo5HuKbBT zzz?&8EnyZLe2gMD!^z^=kJ|}SLEZ)a8;InaE)SwkAy!IAs$IRPLZFggA0o%hh!Y^2 z=&+}lT|Il0tW{;{Bi)M0L@L13CI=Ov0@f-_2V7^8|_ zs=^m)05$>lOR*eVV~t%wogLTYJnPZ(FV7Upm)<*GTCtNhzmRp4i?ekTue%*)g`tCeJ{t?wsQGtNGX-H>f9+7@tZQmY-o4K^RD13L8>VYTNq?hb3hDYlk1 z?-xRmnk-4b$+66D5JY%z9y1c>BYOnDaw&x@o~!2`BX0e%kQEMYp%p-NGV>6>Ww`w0 zBDO&1l<}a^(i)1CekUWb75?m6+PX^SQ*mm^4u;AAE_E(XPN?AwM(8jhK43$SHifD# z#A_2%ko!Pf{mUUeCK~3LxO@?0b(2XfW=(>tAzYmAowNTF!z|aKm05?${`z|wZq4Aj zMM!=RAjoVMA$g}}-td?2HdJ-#Cb zpkPX0@2WaqgX*Mum!PXEga*$sn~)4oBfp**7Oz3tRUt7BTPI#Oq=|ZG4fYJ$C*@+r zauhiGc`oyydAVvByjcZ7!h6t%4)C!dOq{Z%r7=R1h}q?9`fnE+HyU@J^S=-J_Ai9&9{B~hG~a+|eeUx8ts^(;w$ z>NpVCpZ>hI)gegIDk}eB_^so+>Co~WIrPV5hcq+rUCnT8)bHJ!5m%nPY@e=ic5jY7 zWQ1P2ATm;RD?IC0ZEPolwp`3Ku$ZI=OlU135%l+Ad)6)8E|B&M4M7Wv*hyreum;F^)`{; zBr2p85^tgyUF6k_yXeOV>o0K@Rn(H=j_isFb``^n6*_k>2<8neN?X;ESv?}gRf+hlk4P_fM;9a>i??7n{BfD)$DJ!L z9=h@>tG1)0K0C*w=}pf1sgk$O&IqTcm*rf9GTc14%4uHdyu4NOZKZQ&26v0p`n99y z27{$_OPSWp)om1(SCchA0(}==njd(JkyiX=gM(7?) zAC;$TRWWb|AuW9R6mwofv!imN9 zGPaR)`Rd6c(^LgiRaH-$c2rLFoAyfq?)nT)RqH?(l)a@%TlBiIE1^p7I{SoBYe5$y z&?PehR*bYeOp1yb>O(4PIC27e1##e`PJ{-2(-mWP&}kRKbr@`Z-l#TbTAsu?^plQhR;xvm`{-DVdTRy_iO3k zxZ6h9-XeS*pt85#fZG=g=79fzd`pUIAgObJItDS%Y_KnA7Q4+efTsne8`MP<75p3E zA!m)>@44N$J%NvQPMpq;(%BBw&)-fc9B~9}Nf=yi-X;aw;XdZ)S&w{1?K;O-l82I$ z;1zZd;vzxhog@S2NC@XZ;ZPLx%O;{8#PsS*zn_TTQGwwn@{8qzJ9Kd`<~Z!}q~3JS z%^Qya_}a~k?2C!=u~XkRDn^XQDDkmJR_A1i>$Y(FonGZdF7p&$vdMp6-;<20@SM7| z{^4?Pm1oW;&vofJRW+U<=kw!wWnU8H^P}d^z|y|t`_!H1RLFP&z3&gE)2l?d%tDz* z9@Ae(8IAgFPx;%nUEE&2Hzm&N%P^C?b*I_gsPi>@j|7CxBx;Ru-UI#Zh|zjO8=#A; zB8C6vm0|y1UKv4G7YlnQN*!i)wm%oU4g&*&>^m5~gVQ^>yo2RC*u8@e1IwR_fkEXR zEZ)KX9c0)F0Z|43bX!{ z(K}fEweSwc@8CiO68=*%?DD?_=kPvf@(yP2@Yn6%SpTy4%h2O}g7zK$$@Oo9f0OZV zBY#!?rr@vMzX|-E`>XdCY^XpAPWC3Q#-{(CYngX9|DFGTI&yy(_*a_#di&?x-;U?I zz~89;MdB}$zumt<{@=#p{O;nfpTDhtWy+QcByH;HZtrB`{BJkx@16PAWAT^CKS@i! z8~Z!**W%y!{*~Xqcjm8`|4RD*FWuJvp;hj8xqnjm`^^5!_rKBnPYhB4{@+K;(%w$w zPq8|XQiO|%fr*KMg^`tklbMNynTCOhf`NhJkDRQ%$^Rsx;$-OHU~2NG^4-wJ*%Sa$ zP!ZLj7jw0-F*3BX`%@85sbXR24E%FCn3$=UYS04JOr4znxCS!QGyd_&$;8IWOvgme z_NUaIg@K-l`HzCB22jS*%@p{D6(beU+QHDp!r9ai==KjqHhN}yW~%q<`hQftGyN|M zgNmnvDG(%YWTot43joOh8JXV8*`1tSfb9QY5j>EMjr~8~X+u=bJLP`iab>TK9%OW?Nqfk2xAz9IB1?(Caz1(I))fRks5KV{WFu8h*r1P7mlIt&(6h z0c?-_Bv!Jd%#iVPs^I_mc>e-pqDhM&B$X;gq7t@hcY|DTm?DW&_#Dnjmbqb_1`x*G zbf)aGOKVEehLJ8YXM(D$97htGV%jvhsWZjPcScJQXZF^h-mC8ob2R zM!=kBE(>)NJ2i5;BLT-a7?L-4c#il(P*dEU#=yyJ{w=oT))%?;s{}_sVby0QaqXmeJ z{SU7RbnM!XBc!fhPmD;eJ88b14Q=Ht9n;1?uPheYCt_6f^NCB6M%b?1?{OL;)0!vS zYU*mvG4%UoxTzJ8!A;<`S)FDxOz}RuY)%J}dZgB~vHW)Qw6E)obH*yOT&x*O0~4Jq zzj}pWj9L(GbX%Sy1pC}nbXHnjG`}O(=Dsc7c=O9At9G#eo73uT!VQyv-!dFe>P)Z2 z>1AKWl;n2*fr<<8<1s+&hjUiS#Rd;bhh?2k&Mz;lY?*luZb7g z*s9&9+TP9%&DEE$_P2FSlscN~=heIZV6;FU=l^DhrA zc2;%~b|GOA1{P5fF(JV}s|5?Qkf0zVn;0MPe-`=UBwWH)CvIa6jJD(bG}X z4v=7C1ZRXNf#44xh3pv-7(wd66Brp9sDvUN>nlQm&*A)>0w3OpUHfP8!m%|118W+E f;`pywa&|Fva`ABblNUxN&OeI+8JVcO7~uZ_rNo!0 literal 0 HcmV?d00001 diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py index f3a41fe41f..63b2a0a660 100644 --- a/Tests/test_basic_features.py +++ b/Tests/test_basic_features.py @@ -2,9 +2,9 @@ import pytest -from PyPDF2 import PdfFileWriter, PdfFileReader -from PyPDF2.utils import PdfReadError +from PyPDF2 import PdfFileReader, PdfFileWriter from PyPDF2.pdf import convertToInt +from PyPDF2.utils import PdfReadError TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -12,50 +12,50 @@ def test_basic_features(): - output = PdfFileWriter() - document1 = os.path.join(RESOURCE_ROOT, "crazyones.pdf") - input1 = PdfFileReader(document1) + writer = PdfFileWriter() + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + reader = PdfFileReader(pdf_path) # print how many pages input1 has: - print("document1.pdf has %d pages." % input1.getNumPages()) + print("document1.pdf has %d pages." % reader.getNumPages()) # add page 1 from input1 to output document, unchanged - output.addPage(input1.getPage(0)) + writer.addPage(reader.getPage(0)) # add page 2 from input1, but rotated clockwise 90 degrees - output.addPage(input1.getPage(0).rotateClockwise(90)) + writer.addPage(reader.getPage(0).rotateClockwise(90)) # add page 3 from input1, rotated the other way: - output.addPage(input1.getPage(0).rotateCounterClockwise(90)) + writer.addPage(reader.getPage(0).rotateCounterClockwise(90)) # alt: output.addPage(input1.getPage(0).rotateClockwise(270)) # add page 4 from input1, but first add a watermark from another PDF: - page4 = input1.getPage(0) - watermark_pdf = document1 + page4 = reader.getPage(0) + watermark_pdf = pdf_path watermark = PdfFileReader(watermark_pdf) page4.mergePage(watermark.getPage(0)) - output.addPage(page4) + writer.addPage(page4) # add page 5 from input1, but crop it to half size: - page5 = input1.getPage(0) + page5 = reader.getPage(0) page5.mediaBox.upperRight = ( page5.mediaBox.getUpperRight_x() / 2, page5.mediaBox.getUpperRight_y() / 2, ) - output.addPage(page5) + writer.addPage(page5) # add some Javascript to launch the print window on opening this PDF. # the password dialog may prevent the print dialog from being shown, # comment the the encription lines, if that's the case, to try this out - output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") # encrypt your new PDF and add a password password = "secret" - output.encrypt(password) + writer.encrypt(password) # finally, write "output" to PyPDF2-output.pdf with open("PyPDF2-output.pdf", "wb") as outputStream: - output.write(outputStream) + writer.write(outputStream) def test_convertToInt(): diff --git a/Tests/test_javascript.py b/Tests/test_javascript.py index d49f4dc263..4048a76f00 100644 --- a/Tests/test_javascript.py +++ b/Tests/test_javascript.py @@ -1,4 +1,5 @@ import os + import pytest from PyPDF2 import PdfFileReader, PdfFileWriter @@ -8,21 +9,28 @@ PROJECT_ROOT = os.path.dirname(TESTS_ROOT) RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") + @pytest.fixture def pdf_file_writer(): - ipdf = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) + reader = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) pdf_file_writer = PdfFileWriter() - pdf_file_writer.appendPagesFromReader(ipdf) + pdf_file_writer.appendPagesFromReader(reader) yield pdf_file_writer + def test_add_js(pdf_file_writer): - pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) + pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") + + assert ( + "/Names" in pdf_file_writer._root_object + ), "addJS should add a name catalog in the root object." + assert ( + "/JavaScript" in pdf_file_writer._root_object["/Names"] + ), "addJS should add a JavaScript name tree under the name catalog." + assert ( + "/OpenAction" in pdf_file_writer._root_object + ), "addJS should add an OpenAction to the catalog." - assert "/Names" in pdf_file_writer._root_object, "addJS should add a name catalog in the root object." - assert "/JavaScript" in pdf_file_writer._root_object["/Names"], "addJS should add a JavaScript name tree under the name catalog." - assert "/OpenAction" in pdf_file_writer._root_object, "addJS should add an OpenAction to the catalog." def test_overwrite_js(pdf_file_writer): def get_javascript_name(): @@ -31,14 +39,12 @@ def get_javascript_name(): assert "/Names" in pdf_file_writer._root_object["/Names"]["/JavaScript"] return pdf_file_writer._root_object["/Names"]["/JavaScript"]["/Names"][0] - pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) + pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") first_js = get_javascript_name() - pdf_file_writer.addJS( - "this.print({bUI:true,bSilent:false,bShrinkToFit:true});" - ) + pdf_file_writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") second_js = get_javascript_name() - assert first_js != second_js, "addJS should overwrite the previous script in the catalog." + assert ( + first_js != second_js + ), "addJS should overwrite the previous script in the catalog." diff --git a/Tests/test_merger.py b/Tests/test_merger.py index 49048a741d..959560d4ad 100644 --- a/Tests/test_merger.py +++ b/Tests/test_merger.py @@ -14,6 +14,7 @@ def test_merge(): pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf") pdf_forms = os.path.join(RESOURCE_ROOT, "pdflatex-forms.pdf") + pdf_pw = os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf") file_merger = PyPDF2.PdfFileMerger() @@ -23,20 +24,24 @@ def test_merge(): file_merger.append(pdf_path, pages=PyPDF2.pagerange.PageRange(slice(0, 0))) file_merger.append(pdf_forms) - # PdfFileReader object: - file_merger.append(PyPDF2.PdfFileReader(pdf_path, "rb")) + # Merging an encrypted file + pdfr = PyPDF2.PdfFileReader(pdf_pw) + pdfr.decrypt("openpassword") + file_merger.append(pdfr) - # Is merging encrypted files broken? - # encrypted = os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf") - # reader = PyPDF2.PdfFileReader(pdf_path, "rb") - # reader.decrypt("openpassword") - # file_merger.append(reader) + # PdfFileReader object: + file_merger.append(PyPDF2.PdfFileReader(pdf_path, "rb"), bookmark=True) # File handle with open(pdf_path, "rb") as fh: file_merger.append(fh) - file_merger.addBookmark("A bookmark", 0) + bookmark = file_merger.addBookmark("A bookmark", 0) + file_merger.addBookmark("deeper", 0, parent=bookmark) + file_merger.addMetadata({"author": "Martin Thoma"}) + file_merger.addNamedDestination("title", 0) + file_merger.setPageLayout("/SinglePage") + file_merger.setPageMode("/UseThumbs") file_merger.write("dont_commit_merged.pdf") file_merger.close() diff --git a/Tests/test_page.py b/Tests/test_page.py index 5b15f9f584..91c49bab16 100644 --- a/Tests/test_page.py +++ b/Tests/test_page.py @@ -1,5 +1,7 @@ import os +import pytest + from PyPDF2 import PdfFileReader TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -7,15 +9,40 @@ RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") -def test_page_operations(): +@pytest.mark.parametrize( + "pdf_path, password", + [ + (os.path.join(RESOURCE_ROOT, "crazyones.pdf"), None), + (os.path.join(RESOURCE_ROOT, "attachment.pdf"), None), + (os.path.join(RESOURCE_ROOT, "side-by-side-subfig.pdf"), None), + ( + os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), + "openpassword", + ), + (os.path.join(RESOURCE_ROOT, "imagemagick-images.pdf"), None), + (os.path.join(RESOURCE_ROOT, "imagemagick-lzw.pdf"), None), + ], + ids=[ + "crazyones", + "attachment", + "side-by-side-subfig", + "libreoffice-writer-password", + "imagemagick-images", + "imagemagick-lzw", + ], +) +def test_page_operations(pdf_path, password): """ This test just checks if the operation throws an exception. This should be done way more thoroughly: It should be checked if the output is as expected. """ - pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") reader = PdfFileReader(pdf_path) + + if password: + reader.decrypt(password) + page = reader.pages[0] page.mergeRotatedScaledPage(page, 90, 1, 1) page.mergeScaledTranslatedPage(page, 1, 1, 1) @@ -26,3 +53,23 @@ def test_page_operations(): page.scaleTo(100, 100) page.compressContentStreams() page.extractText() + + +@pytest.mark.parametrize( + "pdf_path, password", + [ + (os.path.join(RESOURCE_ROOT, "crazyones.pdf"), None), + (os.path.join(RESOURCE_ROOT, "attachment.pdf"), None), + (os.path.join(RESOURCE_ROOT, "side-by-side-subfig.pdf"), None), + ( + os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), + "openpassword", + ), + ], +) +def test_compress_content_streams(pdf_path, password): + reader = PdfFileReader(pdf_path) + if password: + reader.decrypt(password) + for page in reader.pages: + page.compressContentStreams() diff --git a/Tests/test_pagerange.py b/Tests/test_pagerange.py index b213de5a00..05bd5fee09 100644 --- a/Tests/test_pagerange.py +++ b/Tests/test_pagerange.py @@ -3,6 +3,18 @@ from PyPDF2.pagerange import PageRange, ParseError, parse_filename_page_ranges +def test_equality(): + pr1 = PageRange(slice(0, 5)) + pr2 = PageRange(slice(0, 5)) + assert pr1 == pr2 + + +def test_equality_other_objectc(): + pr1 = PageRange(slice(0, 5)) + pr2 = "PageRange(slice(0, 5))" + assert pr1 != pr2 + + def test_idempotency(): pr = PageRange(slice(0, 5)) pr2 = PageRange(pr) diff --git a/Tests/test_reader.py b/Tests/test_reader.py index 6cf736d59b..d4cbafb129 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -1,7 +1,10 @@ import io import os + import pytest + import PyPDF2.utils +from PyPDF2 import PdfFileReader from PyPDF2.filters import _xobj_to_image TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -9,16 +12,44 @@ RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") -def test_read_metadata(): - with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: - ipdf = PyPDF2.PdfFileReader(inputfile) - metadict = ipdf.getDocumentInfo() - assert metadict.title is None - assert dict(metadict) == { - "/CreationDate": "D:20150604133406-06'00'", - "/Creator": " XeTeX output 2015.06.04:1334", - "/Producer": "xdvipdfmx (20140317)", - } +@pytest.mark.parametrize( + "pdf_path, expected", + [ + ( + os.path.join(RESOURCE_ROOT, "crazyones.pdf"), + { + "/CreationDate": "D:20150604133406-06'00'", + "/Creator": " XeTeX output 2015.06.04:1334", + "/Producer": "xdvipdfmx (20140317)", + }, + ), + ( + os.path.join(RESOURCE_ROOT, "metadata.pdf"), + { + "/CreationDate": "D:20220415093243+02'00'", + "/ModDate": "D:20220415093243+02'00'", + "/Creator": "pdflatex, or other tool", + "/Producer": "Latex with hyperref, or other system", + "/Author": "Martin Thoma", + "/Keywords": "Some Keywords, other keywords; more keywords", + "/Subject": "The Subject", + "/Title": "The Title", + "/Trapped": "/False", + "/PTEX.Fullbanner": ( + "This is pdfTeX, Version " + "3.141592653-2.6-1.40.23 (TeX Live 2021) " + "kpathsea version 6.3.3" + ), + }, + ), + ], + ids=["crazyones", "metadata"], +) +def test_read_metadata(pdf_path, expected): + with open(pdf_path, "rb") as inputfile: + reader = PdfFileReader(inputfile) + metadict = reader.getDocumentInfo() + assert dict(metadict) == expected @pytest.mark.parametrize( @@ -29,16 +60,14 @@ def test_read_metadata(): ], ) def test_get_annotations(src): - reader = PyPDF2.PdfFileReader(src) + reader = PdfFileReader(src) for page in reader.pages: - print("/Annots" in page) if "/Annots" in page: for annot in page["/Annots"]: subtype = annot.getObject()["/Subtype"] if subtype == "/Text": - print(annot.getObject()["/Contents"]) - print("") + annot.getObject()["/Contents"] @pytest.mark.parametrize( @@ -49,7 +78,7 @@ def test_get_annotations(src): ], ) def test_get_attachments(src): - reader = PyPDF2.PdfFileReader(src) + reader = PdfFileReader(src) attachments = {} for i in range(reader.getNumPages()): @@ -71,7 +100,7 @@ def test_get_attachments(src): ], ) def test_get_outlines(src, outline_elements): - reader = PyPDF2.PdfFileReader(src) + reader = PdfFileReader(src) outlines = reader.getOutlines() assert len(outlines) == outline_elements @@ -79,13 +108,17 @@ def test_get_outlines(src, outline_elements): @pytest.mark.parametrize( "src,nb_images", [ - (os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf"), 0), - (os.path.join(RESOURCE_ROOT, "crazyones.pdf"), 0), - (os.path.join(RESOURCE_ROOT, "git.pdf"), 1), + ("pdflatex-outline.pdf", 0), + ("crazyones.pdf", 0), + ("git.pdf", 1), + ("imagemagick-lzw.pdf", 1), + ("imagemagick-ASCII85Decode.pdf", 1), + ("imagemagick-CCITTFaxDecode.pdf", 1), ], ) def test_get_images(src, nb_images): - reader = PyPDF2.PdfFileReader(src) + src =os.path.join(RESOURCE_ROOT, src) + reader = PdfFileReader(src) with pytest.raises(TypeError): page = reader.pages["0"] @@ -106,11 +139,13 @@ def test_get_images(src, nb_images): with open(filename, "wb") as img: img.write(byte_stream) images_extracted.append(filename) - else: - print("No image found.") assert len(images_extracted) == nb_images + # Cleanup + for filepath in images_extracted: + os.remove(filepath) + @pytest.mark.parametrize( "strict,with_prev_0,should_fail", @@ -153,10 +188,10 @@ def test_get_images_raw(strict, with_prev_0, should_fail): ) pdf_stream = io.BytesIO(pdf_data) if should_fail: - with pytest.raises(PyPDF2.pdf.utils.PdfReadError): - PyPDF2.PdfFileReader(pdf_stream, strict=strict) + with pytest.raises(PyPDF2.utils.PdfReadError): + PdfFileReader(pdf_stream, strict=strict) else: - PyPDF2.PdfFileReader(pdf_stream, strict=strict) + PdfFileReader(pdf_stream, strict=strict) @pytest.mark.xfail( @@ -167,5 +202,5 @@ def test_get_images_raw(strict, with_prev_0, should_fail): ) def test_issue297(): path = os.path.join(RESOURCE_ROOT, "issue-297.pdf") - reader = PyPDF2.PdfFileReader(path, "rb") + reader = PdfFileReader(path, "rb") reader.getPage(0) diff --git a/Tests/test_utils.py b/Tests/test_utils.py index a305dff7e7..fb31edb9f1 100644 --- a/Tests/test_utils.py +++ b/Tests/test_utils.py @@ -1,6 +1,14 @@ +import io +import os + import pytest + import PyPDF2.utils -import io +from PyPDF2 import PdfFileReader + +TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) +PROJECT_ROOT = os.path.dirname(TESTS_ROOT) +RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources") @pytest.mark.parametrize( @@ -10,6 +18,10 @@ def test_isInt(value, expected): assert PyPDF2.utils.isInt(value) == expected +def test_isBytes(): + assert PyPDF2.utils.isBytes(b"") + + @pytest.mark.parametrize( "stream,expected", [ @@ -73,3 +85,15 @@ def test_matrixMultiply(a, b, expected): def test_markLocation(): stream = io.BytesIO(b"abde" * 6000) PyPDF2.utils.markLocation(stream) + + +def test_ConvertFunctionsToVirtualList(): + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + reader = PdfFileReader(pdf_path) + + # Test if getting as slice throws an error + assert len(reader.pages[:]) == 1 + + +def test_hexStr(): + assert PyPDF2.utils.hexStr(10) == "0xa" diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index 9c8f174081..821fa7a496 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- -import os import binascii +import os import sys + import pytest from PyPDF2 import PdfFileReader diff --git a/Tests/test_writer.py b/Tests/test_writer.py index bd8cd9d8cf..8356c94bc7 100644 --- a/Tests/test_writer.py +++ b/Tests/test_writer.py @@ -1,9 +1,10 @@ import os + import pytest from PyPDF2 import PdfFileReader, PdfFileWriter -from PyPDF2.utils import PageSizeNotDefinedError from PyPDF2.generic import RectangleObject +from PyPDF2.utils import PageSizeNotDefinedError TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -80,3 +81,31 @@ def test_remove_images(): # Cleanup os.remove(tmp_filename) + + +def test_write_metadata(): + pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") + + reader = PdfFileReader(pdf_path) + writer = PdfFileWriter() + + for page in reader.pages: + writer.addPage(page) + + metadata = reader.getDocumentInfo() + writer.addMetadata(metadata) + + writer.addMetadata({"/Title": "The Crazy Ones"}) + + # finally, write data to PyPDF2-output.pdf + tmp_filename = "dont_commit_writer_added_metadata.pdf" + with open(tmp_filename, "wb") as output_stream: + writer.write(output_stream) + + # Check if the title was set + reader = PdfFileReader(tmp_filename) + metadata = reader.getDocumentInfo() + assert metadata.get("/Title") == "The Crazy Ones" + + # Cleanup + os.remove(tmp_filename) diff --git a/Tests/test_xmp.py b/Tests/test_xmp.py index 8fc7bf3a8b..941f9d30d3 100644 --- a/Tests/test_xmp.py +++ b/Tests/test_xmp.py @@ -1,6 +1,9 @@ import os + import pytest -import PyPDF2 + +import PyPDF2.xmp +from PyPDF2 import PdfFileReader TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -15,9 +18,27 @@ ], ) def test_read_xmp(src, has_xmp): - with open(src, "rb") as inputfile: - ipdf = PyPDF2.PdfFileReader(inputfile) - xmp = ipdf.getXmpMetadata() - assert (xmp is None) == (not has_xmp) - if has_xmp: - print(xmp.xmp_createDate) + reader = PdfFileReader(src) + xmp = reader.getXmpMetadata() + assert (xmp is None) == (not has_xmp) + if has_xmp: + for el in xmp.getElement( + aboutUri="", namespace=PyPDF2.xmp.RDF_NAMESPACE, name="Artist" + ): + print("el={el}".format(el=el)) + + assert get_all_tiff(xmp) == {"tiff:Artist": ["me"]} + assert xmp.dc_contributor == [] + + +def get_all_tiff(xmp): + data = {} + tiff_ns = xmp.getNodesInNamespace( + aboutUri="", namespace="http://ns.adobe.com/tiff/1.0/" + ) + for tag in tiff_ns: + contents = [] + for content in tag.childNodes: + contents.append(content.data) + data[tag.tagName] = contents + return data From 29194cd55a189274ee0de4c625adbe1a71b99293 Mon Sep 17 00:00:00 2001 From: clach04 Date: Fri, 15 Apr 2022 04:14:41 -0700 Subject: [PATCH 127/145] ROBUST: title sometimes None (#744) Closes #511 --- PyPDF2/pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 9bfa1bd0d4..5bd4b79685 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2896,7 +2896,7 @@ def getText(self, key): return retval return None - title = property(lambda self: self.getText("/Title")) + title = property(lambda self: self.getText("/Title") or self.get("/Title").getObject() if self.get("/Title") else None) """Read-only property accessing the document's **title**. Returns a unicode string (``TextStringObject``) or ``None`` if the title is not specified.""" From 0890b06d60de67011bee4d8e30c91658858b3025 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 13:48:49 +0200 Subject: [PATCH 128/145] TST: Add test for inline images (#758) Credits to Sebastian Krause for creating the PDF: https://github.com/py-pdf/PyPDF2/pull/331#issuecomment-1093783640 Co-authored-by: Sebastian Krause --- Resources/reportlab-inline-image.pdf | Bin 0 -> 1537 bytes Tests/test_page.py | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 Resources/reportlab-inline-image.pdf diff --git a/Resources/reportlab-inline-image.pdf b/Resources/reportlab-inline-image.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e38695c590f5bc7465e125d8893727a30cd51131 GIT binary patch literal 1537 zcmb7E&34*G6yED8rq02DYxFN92vrVo}6l-nS1B{e)G*O1zo?U$%a(==kLG1qLAd2@d2KpcO)YWa}p!4KrxNhE0S@v z?up2-niNg7fSon1?X3$>7U#~oY{pF%L@grvU{ zo;l=M z9;AFAae_Pa9!)@2k=3wd-L~q;F*Vt78V;HwCBRH{T7UEiNkP{vA_dxXCdwAALacz% zXh=AOQUpZGh}=U-YY$DKK%|6}1Ek=tj2O-~A%$K-yH)~l-fP7K(;aH! z=mU+R-}8c;(hN32RqP6V#KOZIr*yFw!`h3{Uh^eosDd+^J*?=us3OH<1oMPuT~S%3 z+tgKES53{*3`5n;nyQsmwY;+v&fhsA+8!h`hS>wEp%p51J0I>y2Qvi4?K%@c57JP|x z-4cNc4!5w9-r-y0w?&7YDTih-aOJe0^bbDA(~|LKTD`&%>m7`4`yu<~pln7dZhpRS zSZ#H48+V)J_$COCKQ3?IH>$FKWt4jOGVrppoBx!&=~U*nd{n)<#Lnq}HQL^w>Ux!C zt&wZpNhv>Cz8*QjdBYob+zX?NX*_g)ZVg!d*TLCUA=CLy=%;PJde(_q`` zb}rmAGM7~3Nb1vv>Xv0#XpWwAHsCKlls)M*72d`(ovy*le5NzCmv*KD)99I&9(yRkoS__v;Q{+$@&^HYHzdQ1ZvfXcOP5New`ace E4FevvO#lD@ literal 0 HcmV?d00001 diff --git a/Tests/test_page.py b/Tests/test_page.py index 91c49bab16..bed852080b 100644 --- a/Tests/test_page.py +++ b/Tests/test_page.py @@ -21,6 +21,7 @@ ), (os.path.join(RESOURCE_ROOT, "imagemagick-images.pdf"), None), (os.path.join(RESOURCE_ROOT, "imagemagick-lzw.pdf"), None), + (os.path.join(RESOURCE_ROOT, "reportlab-inline-image.pdf"), None), ], ids=[ "crazyones", @@ -29,6 +30,7 @@ "libreoffice-writer-password", "imagemagick-images", "imagemagick-lzw", + "reportlab-inline-image" ], ) def test_page_operations(pdf_path, password): From d71fb3e6249a07682e8ebc456e26499923ff9031 Mon Sep 17 00:00:00 2001 From: Sebastian Krause Date: Fri, 15 Apr 2022 13:55:29 +0200 Subject: [PATCH 129/145] SEC/PERF: ContentStream_readInlineImage (#740) Closes #329 - potential infinite loop (SEC) Closes #330 - performance issue of ContentStream._readInlineImage (PERF) --- PyPDF2/pdf.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 5bd4b79685..6d18243843 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2817,11 +2817,25 @@ def _readInlineImage(self, stream): # left at beginning of ID tmp = stream.read(3) assert tmp[:2] == b_("ID") - data = b_("") + data = BytesIO() + # Read the inline image, while checking for EI (End Image) operator. while True: - # Read the inline image, while checking for EI (End Image) operator. - tok = stream.read(1) - if tok == b_("E"): + # Read 8 kB at a time and check if the chunk contains the E operator. + buf = stream.read(8192) + # We have reached the end of the stream, but haven't found the EI operator. + if not buf: + raise utils.PdfReadError("Unexpected end of stream") + loc = buf.find(b_("E")) + + if loc == -1: + data.write(buf) + else: + # Write out everything before the E. + data.write(buf[0:loc]) + + # Seek back in the stream to read the E next. + stream.seek(loc - len(buf), 1) + tok = stream.read(1) # Check for End Image tok2 = stream.read(1) if tok2 == b_("I"): @@ -2838,14 +2852,12 @@ def _readInlineImage(self, stream): stream.seek(-1, 1) break else: - stream.seek(-1,1) - data += info + stream.seek(-1, 1) + data.write(info) else: stream.seek(-1, 1) - data += tok - else: - data += tok - return {"settings": settings, "data": data} + data.write(tok) + return {"settings": settings, "data": data.getvalue()} def _getData(self): newdata = BytesIO() From eda50ac7df032970ee755268ba158752c51268c6 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 13:59:08 +0200 Subject: [PATCH 130/145] TST: Check for metadata --- Tests/test_reader.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Tests/test_reader.py b/Tests/test_reader.py index d4cbafb129..a58130d80b 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -48,8 +48,11 @@ def test_read_metadata(pdf_path, expected): with open(pdf_path, "rb") as inputfile: reader = PdfFileReader(inputfile) - metadict = reader.getDocumentInfo() - assert dict(metadict) == expected + docinfo = reader.getDocumentInfo() + metadict = dict(docinfo) + assert metadict == expected + if '/Title' in metadict: + assert metadict['/Title'] == docinfo.title @pytest.mark.parametrize( From 8aa440cb0b8933339df152d3d5aa3f85be3412d7 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 18:23:27 +0200 Subject: [PATCH 131/145] DEV: Add mutmut (#760) --- .gitignore | 4 ++++ Makefile | 7 +++++++ PyPDF2/filters.py | 14 +++++++------- PyPDF2/generic.py | 22 ++++++++++------------ PyPDF2/pdf.py | 10 +++++----- PyPDF2/utils.py | 9 +++++---- Tests/test_pagerange.py | 7 +++++++ mutmut-test.sh | 2 ++ 8 files changed, 47 insertions(+), 28 deletions(-) create mode 100644 mutmut-test.sh diff --git a/.gitignore b/.gitignore index c47edb777b..4a9c9ab80b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,10 @@ build *.egg-info/ dist/* +# +.mutmut-cache +mutmut-results.* + # Code coverage artifacts .coverage* coverage.xml diff --git a/Makefile b/Makefile index 8516f1e255..a6bbb5ddc8 100644 --- a/Makefile +++ b/Makefile @@ -15,3 +15,10 @@ clean: test: pytest Tests --cov --cov-report term-missing -vv --cov-report html + +mutation-test: + mutmut run + +mutmut-results: + mutmut junitxml --suspicious-policy=ignore --untested-policy=ignore > mutmut-results.xml + junit2html mutmut-results.xml mutmut-results.html diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 8b72f0932a..6a409a62e4 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -157,11 +157,11 @@ def decode(data, decodeParms): # unsupported predictor raise PdfReadError("Unsupported flatedecode predictor %r" % predictor) return data - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore def encode(data): return compress(data) - encode = staticmethod(encode) + encode = staticmethod(encode) # type: ignore class ASCIIHexDecode(object): @@ -183,7 +183,7 @@ def decode(data, decodeParms=None): x += 1 assert char == "" return retval - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore class LZWDecode(object): @@ -339,17 +339,17 @@ def decode(data, decodeParms=None): out += struct.pack(b'>L',b)[:n-1] break return bytes(out) - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore class DCTDecode(object): def decode(data, decodeParms=None): return data - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore class JPXDecode(object): def decode(data, decodeParms=None): return data - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore class CCITTFaxDecode(object): def decode(data, decodeParms=None, height=0): @@ -384,7 +384,7 @@ def decode(data, decodeParms=None, height=0): return tiffHeader + data - decode = staticmethod(decode) + decode = staticmethod(decode) # type: ignore def decodeStreamData(stream): from .generic import NameObject diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index 2ae9a74717..c0691694d8 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -1,5 +1,3 @@ -# vim: sw=4:expandtab:foldmethod=marker -# # Copyright (c) 2006, Mathieu Fenniak # All rights reserved. # @@ -114,7 +112,7 @@ def readFromStream(stream): if nulltxt != b_("null"): raise utils.PdfReadError("Could not read Null object") return NullObject() - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class BooleanObject(PdfObject): @@ -136,7 +134,7 @@ def readFromStream(stream): return BooleanObject(False) else: raise utils.PdfReadError('Could not read Boolean object') - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class ArrayObject(list, PdfObject): @@ -166,7 +164,7 @@ def readFromStream(stream, pdf): # read and append obj arr.append(readObject(stream, pdf)) return arr - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class IndirectObject(PdfObject): @@ -219,7 +217,7 @@ def readFromStream(stream, pdf): if r != b_("R"): raise utils.PdfReadError("Error reading indirect object reference at byte %s" % utils.hexStr(stream.tell())) return IndirectObject(int(idnum), int(generation), pdf) - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class FloatObject(decimal.Decimal, PdfObject): @@ -270,7 +268,7 @@ def readFromStream(stream): return FloatObject(num) else: return NumberObject(num) - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore def createStringObject(string): @@ -391,7 +389,7 @@ def readStringFromStream(stream): return createStringObject(txt) -class ByteStringObject(utils.bytes_type, PdfObject): +class ByteStringObject(utils.bytes_type, PdfObject): # type: ignore """ Represents a string object where the text encoding could not be determined. This occurs quite often, as the PDF spec doesn't provide an alternate way to @@ -413,7 +411,7 @@ def writeToStream(self, stream, encryption_key): stream.write(b_(">")) -class TextStringObject(utils.string_type, PdfObject): +class TextStringObject(utils.string_type, PdfObject): # type: ignore """ Represents a string object that has been decoded into a real unicode string. If read from a PDF document, this string appeared to match the @@ -497,7 +495,7 @@ def readFromStream(stream, pdf): else: raise utils.PdfReadError("Illegal character in Name Object") - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class DictionaryObject(dict, PdfObject): @@ -642,7 +640,7 @@ def readFromStream(stream, pdf): retval = DictionaryObject() retval.update(data) return retval - readFromStream = staticmethod(readFromStream) + readFromStream = staticmethod(readFromStream) # type: ignore class TreeObject(DictionaryObject): @@ -802,7 +800,7 @@ def initializeFromDictionary(data): del data["/Length"] retval.update(data) return retval - initializeFromDictionary = staticmethod(initializeFromDictionary) + initializeFromDictionary = staticmethod(initializeFromDictionary) # type: ignore def flateEncode(self): if "/Filter" in self: diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 6d18243843..547284f80d 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2224,7 +2224,7 @@ def createBlankPage(pdf=None, width=None, height=None): RectangleObject([0, 0, width, height])) return page - createBlankPage = staticmethod(createBlankPage) + createBlankPage = staticmethod(createBlankPage) # type: ignore def rotateClockwise(self, angle): """ @@ -2266,7 +2266,7 @@ def _mergeResources(res1, res2, resource): elif key not in newRes: newRes[key] = page2Res.raw_get(key) return newRes, renameRes - _mergeResources = staticmethod(_mergeResources) + _mergeResources = staticmethod(_mergeResources) # type: ignore def _contentStreamRename(stream, rename, pdf): if not rename: @@ -2286,7 +2286,7 @@ def _contentStreamRename(stream, rename, pdf): else: raise KeyError ("type of operands is %s" % type (operands)) return stream - _contentStreamRename = staticmethod(_contentStreamRename) + _contentStreamRename = staticmethod(_contentStreamRename) # type: ignore def _pushPopGS(contents, pdf): # adds a graphics state "push" and "pop" to the beginning and end @@ -2296,7 +2296,7 @@ def _pushPopGS(contents, pdf): stream.operations.insert(0, [[], "q"]) stream.operations.append([[], "Q"]) return stream - _pushPopGS = staticmethod(_pushPopGS) + _pushPopGS = staticmethod(_pushPopGS) # type: ignore def _addTransformationMatrix(contents, pdf, ctm): # adds transformation matrix at the beginning of the given @@ -2307,7 +2307,7 @@ def _addTransformationMatrix(contents, pdf, ctm): FloatObject(c), FloatObject(d), FloatObject(e), FloatObject(f)], " cm"]) return contents - _addTransformationMatrix = staticmethod(_addTransformationMatrix) + _addTransformationMatrix = staticmethod(_addTransformationMatrix) # type: ignore def getContents(self): """ diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 87b3a8b248..639471d4a4 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -35,9 +35,10 @@ import sys try: - import __builtin__ as builtins -except ImportError: # Py3 import builtins + from typing import Dict +except ImportError: # Py2.7 + import __builtin__ as builtins # type: ignore ERR_STREAM_TRUNCATED_PREMATURELY = "Stream has ended unexpectedly" xrange_fn = getattr(builtins, "xrange", range) @@ -45,7 +46,7 @@ bytes_type = type(bytes()) # Works the same in Python 2.X and 3.X string_type = getattr(builtins, "unicode", str) -int_types = (int, long) if sys.version_info[0] < 3 else (int,) # noqa +int_types = (int, long) if sys.version_info[0] < 3 else (int,) # type: ignore # noqa # Make basic type tests more consistent @@ -227,7 +228,7 @@ class PdfStreamError(PdfReadError): def b_(s): return s else: - B_CACHE = {} + B_CACHE = {} # type: Dict[str, bytes] def b_(s): bc = B_CACHE diff --git a/Tests/test_pagerange.py b/Tests/test_pagerange.py index 05bd5fee09..b90feef00e 100644 --- a/Tests/test_pagerange.py +++ b/Tests/test_pagerange.py @@ -58,3 +58,10 @@ def test_parse_filename_page_ranges(params, expected): def test_parse_filename_page_ranges_err(): with pytest.raises(ValueError): parse_filename_page_ranges(["1:5", "foo.pdf"]) + + +def test_page_range_help(): + from PyPDF2.pagerange import PAGE_RANGE_HELP + assert len(PAGE_RANGE_HELP) > 20 + assert "0:3" in PAGE_RANGE_HELP + assert PAGE_RANGE_HELP.endswith("\n") diff --git a/mutmut-test.sh b/mutmut-test.sh new file mode 100644 index 0000000000..94cbc86a81 --- /dev/null +++ b/mutmut-test.sh @@ -0,0 +1,2 @@ +#!/bin/bash -e +pytest -x \ No newline at end of file From 733989af6fc0f87d69d78509f3766b47ffc24e1d Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 15 Apr 2022 23:10:33 +0200 Subject: [PATCH 132/145] REL: 1.27.5 Security (SEC): - ContentStream_readInlineImage had potential infinite loop (#740) Bug fixes (BUG): - Fix merging encrypted files (#757) - CCITTFaxDecode decodeParms can be an ArrayObject (#756) Robustness improvements (ROBUST): - title sometimes None (#744) Documentation (DOC): - Adjust short description of the package Tests and Test setup (TST): - Rewrite JS tests from unittest to pytest (#746) - Increase Test coverage, mainly with filters (#756) - Add test for inline images (#758) Developer Experience Improvements (DEV): - Remove unused Travis-CI configuration (#747) - Show code coverage (#754, #755) - Add mutmut (#760) Miscellaneous: - STY: Closing file handles, explicit exports, ... (#743) All changes: https://github.com/py-pdf/PyPDF2/compare/1.27.4...1.27.5 --- CHANGELOG | 39 +++++++++++++++++++++++++++++++++++++++ PyPDF2/_version.py | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 6631ed289f..99f27268d1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,42 @@ +Version 1.27.5, 2022-04-15 +-------------------------- + +Security (SEC): + +- ContentStream_readInlineImage had potential infinite loop (#740) + +Bug fixes (BUG): + +- Fix merging encrypted files (#757) +- CCITTFaxDecode decodeParms can be an ArrayObject (#756) + +Robustness improvements (ROBUST): + +- title sometimes None (#744) + +Documentation (DOC): + +- Adjust short description of the package + +Tests and Test setup (TST): + +- Rewrite JS tests from unittest to pytest (#746) +- Increase Test coverage, mainly with filters (#756) +- Add test for inline images (#758) + +Developer Experience Improvements (DEV): + +- Remove unused Travis-CI configuration (#747) +- Show code coverage (#754, #755) +- Add mutmut (#760) + +Miscellaneous: + +- STY: Closing file handles, explicit exports, ... (#743) + +All changes: https://github.com/py-pdf/PyPDF2/compare/1.27.4...1.27.5 + + Version 1.27.4, 2022-04-12 -------------------------- diff --git a/PyPDF2/_version.py b/PyPDF2/_version.py index fa87a0055b..4205e7e6c4 100644 --- a/PyPDF2/_version.py +++ b/PyPDF2/_version.py @@ -1 +1 @@ -__version__ = "1.27.4" +__version__ = "1.27.5" From bd7500d9f93f39c826fc21c396e81aa5bad98029 Mon Sep 17 00:00:00 2001 From: Denis Osipov Date: Sat, 16 Apr 2022 10:47:36 +0500 Subject: [PATCH 133/145] BUG: IndexError for getPage() of decryped file (#359) ISSUE: Problem appears because _flatten() method sets self.flattenedPages before it tries to get pages and doesn't set it back to None in case of error. This PR just makes _flatten() to set self.flattenedPages to an empty array after it successfully got pages. FIX: Call `self.flattenedPages` after calling `catalog["/Pages"].getObject()` Closes #327 --- PyPDF2/pdf.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 547284f80d..1d0e950117 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1575,9 +1575,11 @@ def _flatten(self, pages=None, inherit=None, indirectRef=None): if inherit is None: inherit = dict() if pages is None: - self.flattenedPages = [] + # Fix issue 327: set flattenedPages attribute only for + # decrypted file catalog = self.trailer["/Root"].getObject() pages = catalog["/Pages"].getObject() + self.flattenedPages = [] t = "/Pages" if "/Type" in pages: From d58a849179138ec0d68fc4bc1b2437d1d269a308 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 07:53:33 +0200 Subject: [PATCH 134/145] TST: Regression test for #327 Credits to Denis Osipov: https://github.com/py-pdf/PyPDF2/pull/359#issuecomment-1092022338 Co-authored-by: Denis Osipov --- Resources/encrypted-file.pdf | Bin 0 -> 7714 bytes Tests/test_page.py | 2 +- Tests/test_pagerange.py | 1 + Tests/test_reader.py | 22 +++++++++++++++++++--- 4 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 Resources/encrypted-file.pdf diff --git a/Resources/encrypted-file.pdf b/Resources/encrypted-file.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c300a5fed51be204af893010d8ee5d357fdeefc1 GIT binary patch literal 7714 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 b3`3Di#+8U65Pzi|2|>dF{QOGV%7Fg?P7Y>t literal 0 HcmV?d00001 diff --git a/Tests/test_page.py b/Tests/test_page.py index bed852080b..6e4400403f 100644 --- a/Tests/test_page.py +++ b/Tests/test_page.py @@ -30,7 +30,7 @@ "libreoffice-writer-password", "imagemagick-images", "imagemagick-lzw", - "reportlab-inline-image" + "reportlab-inline-image", ], ) def test_page_operations(pdf_path, password): diff --git a/Tests/test_pagerange.py b/Tests/test_pagerange.py index b90feef00e..dd3c97954f 100644 --- a/Tests/test_pagerange.py +++ b/Tests/test_pagerange.py @@ -62,6 +62,7 @@ def test_parse_filename_page_ranges_err(): def test_page_range_help(): from PyPDF2.pagerange import PAGE_RANGE_HELP + assert len(PAGE_RANGE_HELP) > 20 assert "0:3" in PAGE_RANGE_HELP assert PAGE_RANGE_HELP.endswith("\n") diff --git a/Tests/test_reader.py b/Tests/test_reader.py index a58130d80b..be6cdc77f4 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -51,8 +51,8 @@ def test_read_metadata(pdf_path, expected): docinfo = reader.getDocumentInfo() metadict = dict(docinfo) assert metadict == expected - if '/Title' in metadict: - assert metadict['/Title'] == docinfo.title + if "/Title" in metadict: + assert metadict["/Title"] == docinfo.title @pytest.mark.parametrize( @@ -120,7 +120,7 @@ def test_get_outlines(src, outline_elements): ], ) def test_get_images(src, nb_images): - src =os.path.join(RESOURCE_ROOT, src) + src = os.path.join(RESOURCE_ROOT, src) reader = PdfFileReader(src) with pytest.raises(TypeError): @@ -207,3 +207,19 @@ def test_issue297(): path = os.path.join(RESOURCE_ROOT, "issue-297.pdf") reader = PdfFileReader(path, "rb") reader.getPage(0) + + +def test_get_page_of_encrypted_file(): + """ + Check if we can read a page of an encrypted file. + + This is a regression test for issue 327: + IndexError for getPage() of decrypted file + """ + path = os.path.join(RESOURCE_ROOT, "encrypted-file.pdf") + reader = PdfFileReader(path) + + # Password is correct:) + reader.decrypt("test") + + reader.getPage(0) From a5875c566978639a8f1687498fde3ebc2c9ee716 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 08:12:09 +0200 Subject: [PATCH 135/145] STY: Make variable naming more consistent in tests --- PyPDF2/utils.py | 8 ++-- Tests/test_basic_features.py | 10 +++-- Tests/test_javascript.py | 6 +-- Tests/test_merger.py | 6 ++- Tests/test_utils.py | 1 + Tests/test_workflows.py | 38 ++++++++--------- Tests/test_writer.py | 58 ++++++++++++++------------ docs/user/cropping-and-transforming.md | 4 +- 8 files changed, 72 insertions(+), 59 deletions(-) diff --git a/PyPDF2/utils.py b/PyPDF2/utils.py index 639471d4a4..f528bfa06b 100644 --- a/PyPDF2/utils.py +++ b/PyPDF2/utils.py @@ -197,10 +197,10 @@ def markLocation(stream): # Mainly for debugging RADIUS = 5000 stream.seek(-RADIUS, 1) - with open('PyPDF2_pdfLocation.txt', 'wb') as outputDoc: - outputDoc.write(stream.read(RADIUS)) - outputDoc.write(b'HERE') - outputDoc.write(stream.read(RADIUS)) + with open('PyPDF2_pdfLocation.txt', 'wb') as output_fh: + output_fh.write(stream.read(RADIUS)) + output_fh.write(b'HERE') + output_fh.write(stream.read(RADIUS)) stream.seek(-RADIUS, 1) diff --git a/Tests/test_basic_features.py b/Tests/test_basic_features.py index 63b2a0a660..0c9e9257f7 100644 --- a/Tests/test_basic_features.py +++ b/Tests/test_basic_features.py @@ -12,9 +12,9 @@ def test_basic_features(): - writer = PdfFileWriter() pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf") reader = PdfFileReader(pdf_path) + writer = PdfFileWriter() # print how many pages input1 has: print("document1.pdf has %d pages." % reader.getNumPages()) @@ -54,8 +54,12 @@ def test_basic_features(): writer.encrypt(password) # finally, write "output" to PyPDF2-output.pdf - with open("PyPDF2-output.pdf", "wb") as outputStream: - writer.write(outputStream) + tmp_path = "PyPDF2-output.pdf" + with open(tmp_path, "wb") as output_stream: + writer.write(output_stream) + + # cleanup + os.remove(tmp_path) def test_convertToInt(): diff --git a/Tests/test_javascript.py b/Tests/test_javascript.py index 4048a76f00..48ad9530e8 100644 --- a/Tests/test_javascript.py +++ b/Tests/test_javascript.py @@ -13,9 +13,9 @@ @pytest.fixture def pdf_file_writer(): reader = PdfFileReader(os.path.join(RESOURCE_ROOT, "crazyones.pdf")) - pdf_file_writer = PdfFileWriter() - pdf_file_writer.appendPagesFromReader(reader) - yield pdf_file_writer + writer = PdfFileWriter() + writer.appendPagesFromReader(reader) + yield writer def test_add_js(pdf_file_writer): diff --git a/Tests/test_merger.py b/Tests/test_merger.py index 959560d4ad..072fbcb145 100644 --- a/Tests/test_merger.py +++ b/Tests/test_merger.py @@ -43,5 +43,9 @@ def test_merge(): file_merger.setPageLayout("/SinglePage") file_merger.setPageMode("/UseThumbs") - file_merger.write("dont_commit_merged.pdf") + tmp_path = "dont_commit_merged.pdf" + file_merger.write(tmp_path) file_merger.close() + + # Clean up + os.remove(tmp_path) diff --git a/Tests/test_utils.py b/Tests/test_utils.py index fb31edb9f1..998172bbc2 100644 --- a/Tests/test_utils.py +++ b/Tests/test_utils.py @@ -85,6 +85,7 @@ def test_matrixMultiply(a, b, expected): def test_markLocation(): stream = io.BytesIO(b"abde" * 6000) PyPDF2.utils.markLocation(stream) + os.remove("PyPDF2_pdfLocation.txt") # cleanup def test_ConvertFunctionsToVirtualList(): diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index 821fa7a496..ad2772f857 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -23,19 +23,19 @@ def test_PdfReaderFileLoad(): with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: # Load PDF file from file - ipdf = PdfFileReader(inputfile) - ipdf_p1 = ipdf.getPage(0) + reader = PdfFileReader(inputfile) + page = reader.getPage(0) # Retrieve the text of the PDF with open(os.path.join(RESOURCE_ROOT, "crazyones.txt"), "rb") as pdftext_file: pdftext = pdftext_file.read() - ipdf_p1_text = ipdf_p1.extractText().replace("\n", "").encode("utf-8") + text = page.extractText().replace("\n", "").encode("utf-8") # Compare the text of the PDF to a known source - assert ipdf_p1_text == pdftext, ( + assert text == pdftext, ( "PDF extracted text differs from expected value.\n\nExpected:\n\n%r\n\nExtracted:\n\n%r\n\n" - % (pdftext, ipdf_p1_text) + % (pdftext, text) ) @@ -47,15 +47,15 @@ def test_PdfReaderJpegImage(): with open(os.path.join(RESOURCE_ROOT, "jpeg.pdf"), "rb") as inputfile: # Load PDF file from file - ipdf = PdfFileReader(inputfile) + reader = PdfFileReader(inputfile) # Retrieve the text of the image with open(os.path.join(RESOURCE_ROOT, "jpeg.txt"), "r") as pdftext_file: imagetext = pdftext_file.read() - ipdf_p0 = ipdf.getPage(0) - xObject = ipdf_p0["/Resources"]["/XObject"].getObject() - data = xObject["/Im4"].getData() + page = reader.getPage(0) + x_object = page["/Resources"]["/XObject"].getObject() + data = x_object["/Im4"].getData() # Compare the text of the PDF to a known source assert binascii.hexlify(data).decode() == imagetext, ( @@ -68,12 +68,12 @@ def test_decrypt(): with open( os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), "rb" ) as inputfile: - ipdf = PdfFileReader(inputfile) - assert ipdf.isEncrypted == True - ipdf.decrypt("openpassword") - assert ipdf.getNumPages() == 1 - assert ipdf.isEncrypted == True - metadict = ipdf.getDocumentInfo() + reader = PdfFileReader(inputfile) + assert reader.isEncrypted == True + reader.decrypt("openpassword") + assert reader.getNumPages() == 1 + assert reader.isEncrypted == True + metadict = reader.getDocumentInfo() assert dict(metadict) == { "/CreationDate": "D:20220403203552+02'00'", "/Creator": "Writer", @@ -86,14 +86,14 @@ def test_decrypt(): @pytest.mark.parametrize("degree", [0, 90, 180, 270, 360, -90]) def test_rotate(degree): with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: - ipdf = PdfFileReader(inputfile) - page = ipdf.getPage(0) + reader = PdfFileReader(inputfile) + page = reader.getPage(0) page.rotateCounterClockwise(degree) def test_rotate_45(): with open(os.path.join(RESOURCE_ROOT, "crazyones.pdf"), "rb") as inputfile: - ipdf = PdfFileReader(inputfile) - page = ipdf.getPage(0) + reader = PdfFileReader(inputfile) + page = reader.getPage(0) with pytest.raises(AssertionError): page.rotateCounterClockwise(45) diff --git a/Tests/test_writer.py b/Tests/test_writer.py index 8356c94bc7..c7b0588783 100644 --- a/Tests/test_writer.py +++ b/Tests/test_writer.py @@ -24,56 +24,60 @@ def test_writer_operations(): reader = PdfFileReader(pdf_path) reader_outline = PdfFileReader(pdf_outline_path) - output = PdfFileWriter() + writer = PdfFileWriter() page = reader.pages[0] with pytest.raises(PageSizeNotDefinedError): - output.addBlankPage() - output.insertPage(page, 1) - output.removeText() - output.insertPage(reader_outline.pages[0], 0) - output.addBookmarkDestination(page) - output.addBookmark("A bookmark", 0) + writer.addBlankPage() + writer.insertPage(page, 1) + writer.removeText() + writer.insertPage(reader_outline.pages[0], 0) + writer.addBookmarkDestination(page) + writer.addBookmark("A bookmark", 0) # output.addNamedDestination("A named destination", 1) - output.removeLinks() + writer.removeLinks() # assert output.getNamedDestRoot() == ['A named destination', IndirectObject(9, 0, output)] - output.addBlankPage() - output.addURI(2, "https://example.com", RectangleObject([0, 0, 100, 100])) - output.addLink(2, 1, RectangleObject([0, 0, 100, 100])) - assert output.getPageLayout() is None - output.setPageLayout("SinglePage") - assert output.getPageLayout() == "SinglePage" - assert output.getPageMode() is None - output.setPageMode("UseNone") - assert output.getPageMode() == "UseNone" - output.insertBlankPage(width=100, height=100) - output.insertBlankPage() # without parameters + writer.addBlankPage() + writer.addURI(2, "https://example.com", RectangleObject([0, 0, 100, 100])) + writer.addLink(2, 1, RectangleObject([0, 0, 100, 100])) + assert writer.getPageLayout() is None + writer.setPageLayout("SinglePage") + assert writer.getPageLayout() == "SinglePage" + assert writer.getPageMode() is None + writer.setPageMode("UseNone") + assert writer.getPageMode() == "UseNone" + writer.insertBlankPage(width=100, height=100) + writer.insertBlankPage() # without parameters # This gives "KeyError: '/Contents'" - is that a bug? # output.removeImages() - output.addMetadata({"author": "Martin Thoma"}) + writer.addMetadata({"author": "Martin Thoma"}) - output.addAttachment("foobar.gif", b"foobarcontent") + writer.addAttachment("foobar.gif", b"foobarcontent") # finally, write "output" to PyPDF2-output.pdf - with open("dont_commit_writer.pdf", "wb") as output_stream: - output.write(output_stream) + tmp_path = "dont_commit_writer.pdf" + with open(tmp_path, "wb") as output_stream: + writer.write(output_stream) + + # cleanup + os.remove(tmp_path) def test_remove_images(): pdf_path = os.path.join(RESOURCE_ROOT, "side-by-side-subfig.pdf") reader = PdfFileReader(pdf_path) - output = PdfFileWriter() + writer = PdfFileWriter() page = reader.pages[0] - output.insertPage(page, 0) - output.removeImages() + writer.insertPage(page, 0) + writer.removeImages() # finally, write "output" to PyPDF2-output.pdf tmp_filename = "dont_commit_writer_removed_image.pdf" with open(tmp_filename, "wb") as output_stream: - output.write(output_stream) + writer.write(output_stream) with open(tmp_filename, "rb") as input_stream: reader = PdfFileReader(input_stream) diff --git a/docs/user/cropping-and-transforming.md b/docs/user/cropping-and-transforming.md index 9791452e5a..e1958a4f43 100644 --- a/docs/user/cropping-and-transforming.md +++ b/docs/user/cropping-and-transforming.md @@ -25,7 +25,7 @@ writer.addPage(page3) # comment the the encription lines, if that's the case, to try this out: writer.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});") -# finally, write to document-output.pdf +# write to document-output.pdf with open("PyPDF2-output.pdf", "wb") as fp: - output.write(fp) + writer.write(fp) ``` From cf20f925e3a8d87eab5a6fc5c6ec4ed0774ed4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malthe=20J=C3=B8rgensen?= Date: Sat, 16 Apr 2022 09:06:10 +0200 Subject: [PATCH 136/145] ROB: Allow extra whitespace before "obj" in readObjectHeader (#567) The header being read has the format: obj where `` and `` are integers. Previously an arbitrary number of spaces was being allowed between `` and ``, but not between `` and `obj`. We now allow arbitrary spaces between `` and `obj`. --- PyPDF2/pdf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 1d0e950117..4c65b1e6ce 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1734,6 +1734,7 @@ def readObjectHeader(self, stream): idnum = readUntilWhitespace(stream) extra |= utils.skipOverWhitespace(stream); stream.seek(-1, 1) generation = readUntilWhitespace(stream) + extra |= utils.skipOverWhitespace(stream); stream.seek(-1, 1) # although it's not used, it might still be necessary to read _obj = stream.read(3) # noqa: F841 From 87aafd6d2b932f0597f3f03c916c52ce10bc6901 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 09:08:02 +0200 Subject: [PATCH 137/145] DOC: Working with annotations (#764) See #107 --- docs/index.rst | 17 ++++--- docs/user/adding-pdf-annotations.md | 16 +++++++ docs/user/reading-pdf-annotations.md | 67 ++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 docs/user/adding-pdf-annotations.md create mode 100644 docs/user/reading-pdf-annotations.md diff --git a/docs/index.rst b/docs/index.rst index 1b339516c1..e5cdcd2386 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,13 +25,8 @@ You can contribute to `PyPDF2 on Github `_. user/merging-pdfs user/cropping-and-transforming user/add-watermark - - -.. toctree:: - :caption: Scripts - :maxdepth: 1 - - user/pdfcat + user/reading-pdf-annotations + user/adding-pdf-annotations .. toctree:: @@ -59,6 +54,14 @@ You can contribute to `PyPDF2 on Github `_. user/faq +.. toctree:: + :caption: Scripts + :maxdepth: 1 + + user/pdfcat + + + Indices and tables ================== diff --git a/docs/user/adding-pdf-annotations.md b/docs/user/adding-pdf-annotations.md new file mode 100644 index 0000000000..215dcfdc70 --- /dev/null +++ b/docs/user/adding-pdf-annotations.md @@ -0,0 +1,16 @@ +# Adding PDF Annotations + +## Attachments + +```python +from PyPDF2 import PdfFileWriter + +writer = PdfFileWriter() +writer.addBlankPage(width=200, height=200) + +data = b"any bytes - typically read from a file" +writer.addAttachment("smile.png", data) + +with open("output.pdf", "wb") as output_stream: + writer.write(output_stream) +``` diff --git a/docs/user/reading-pdf-annotations.md b/docs/user/reading-pdf-annotations.md new file mode 100644 index 0000000000..e84abd0a18 --- /dev/null +++ b/docs/user/reading-pdf-annotations.md @@ -0,0 +1,67 @@ +# Reading PDF Annotations + +PDF 1.7 defines 25 different annotation types: + +* Text +* Link +* FreeText +* Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, Squiggly, StrikeOut +* Stamp, Caret, Ink +* Popup +* FileAttachment +* Sound, Movie +* Widget, Screen +* PrinterMark +* TrapNet +* Watermark +* 3D + +Reading the most common ones is described here. + +## Text + +```python +from PyPDF2 import PdfFileReader + +reader = PdfFileReader("example.pdf") + +for page in reader.pages: + if "/Annots" in page: + for annot in page["/Annots"]: + subtype = annot.getObject()["/Subtype"] + if subtype == "/Text": + print(annot.getObject()["/Contents"]) +``` + +## Highlights + +```python +from PyPDF2 import PdfFileReader + +reader = PdfFileReader("commented.pdf") + +for page in reader.pages: + if "/Annots" in page: + for annot in page["/Annots"]: + subtype = annot.getObject()["/Subtype"] + if subtype == "/Highlight": + coords = annot.getObject()["/QuadPoints"] + x1, y1, x2, y2, x3, y3, x4, y4 = coords +``` + +## Attachments + +```python +from PyPDF2 import PdfFileReader + +reader = PdfFileReader("example.pdf") + +attachments = {} +for page in reader.pages: + if "/Annots" in page: + for annotation in page["/Annots"]: + subtype = annot.getObject()["/Subtype"] + if subtype == "/FileAttachment": + fileobj = annotobj["/FS"] + attachments[fileobj["/F"]] = fileobj["/EF"]["/F"].getData() +``` From d5a5eea6080848a7a91b45fe7b39a2e77aae9301 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 09:25:09 +0200 Subject: [PATCH 138/145] MAINT: Use grouped constants instead of string literals (#745) This allows us to leverage the IDE. * Documentation: We can now document what the constants are good for and give background information around them * Homographs: We can distinguish literals which have the same name, but different contexts * Typos: We can hopefully avoid typos like decodeParams -> decodeParms. For users of PyPDF2, this doesn't change anything. We still use string literals. For documentation we should also keep doing that. --- .github/workflows/github-ci.yaml | 2 +- Makefile | 2 +- PyPDF2/__init__.py | 4 +- PyPDF2/constants.py | 186 +++++++++++++++++++++++++++++++ PyPDF2/filters.py | 69 +++++++----- PyPDF2/generic.py | 58 +++++----- PyPDF2/merger.py | 16 ++- PyPDF2/pagerange.py | 1 + PyPDF2/pdf.py | 147 ++++++++++++------------ PyPDF2/xmp.py | 5 +- Scripts/pdf-image-extractor.py | 8 +- Tests/test_constants.py | 15 +++ Tests/test_page.py | 24 ++-- Tests/test_reader.py | 21 ++-- Tests/test_workflows.py | 5 +- 15 files changed, 393 insertions(+), 170 deletions(-) create mode 100644 PyPDF2/constants.py create mode 100644 Tests/test_constants.py diff --git a/.github/workflows/github-ci.yaml b/.github/workflows/github-ci.yaml index 4f2bffd2ed..19ca301443 100644 --- a/.github/workflows/github-ci.yaml +++ b/.github/workflows/github-ci.yaml @@ -40,7 +40,7 @@ jobs: pip install . - name: Test with flake8 run: | - flake8 . --ignore=E203,W503,W504,E,F403,F405 + flake8 . --ignore=E203,W503,W504,E,F403,F405 --exclude build if: matrix.python-version != '2.7' - name: Test with pytest run: | diff --git a/Makefile b/Makefile index a6bbb5ddc8..1a9b5244f4 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ clean: rm -rf Tests/__pycache__ PyPDF2/__pycache__ Image9.png htmlcov docs/_build dist dont_commit_merged.pdf dont_commit_writer.pdf PyPDF2.egg-info PyPDF2_pdfLocation.txt test: - pytest Tests --cov --cov-report term-missing -vv --cov-report html + pytest Tests --cov --cov-report term-missing -vv --cov-report html --durations=3 --timeout=30 mutation-test: mutmut run diff --git a/PyPDF2/__init__.py b/PyPDF2/__init__.py index 5d85cbc4f8..07f211c2b6 100644 --- a/PyPDF2/__init__.py +++ b/PyPDF2/__init__.py @@ -1,7 +1,7 @@ -from .pdf import PdfFileReader, PdfFileWriter +from ._version import __version__ from .merger import PdfFileMerger from .pagerange import PageRange, parse_filename_page_ranges -from ._version import __version__ +from .pdf import PdfFileReader, PdfFileWriter __all__ = [ "__version__", diff --git a/PyPDF2/constants.py b/PyPDF2/constants.py new file mode 100644 index 0000000000..77fc028436 --- /dev/null +++ b/PyPDF2/constants.py @@ -0,0 +1,186 @@ +""" +See Portable Document Format Reference Manual, 1993. ISBN 0-201-62628-4. + +See https://ia802202.us.archive.org/8/items/pdfy-0vt8s-egqFwDl7L2/PDF%20Reference%201.0.pdf + +PDF Reference, third edition, Version 1.4, 2001. ISBN 0-201-75839-3. + +PDF Reference, sixth edition, Version 1.7, 2006. +""" + + +class PagesAttributes: + """Page Attributes, Table 6.2, Page 52""" + + TYPE = "/Type" # name, required; must be /Pages + KIDS = "/Kids" # array, required; List of indirect references + COUNT = "/Count" # integer, required; the number of all nodes und this node + PARENT = "/Parent" # dictionary, required; indirect reference to pages object + + +class PageAttributes: + """Page attributes, Table 6.3, Page 53""" + + TYPE = "/Type" # name, required; must be /Page + MEDIABOX = "/MediaBox" # array, required; rectangle specifying page size + PARENT = "/Parent" # dictionary, required; a pages object + RESOURCES = "/Resources" # dictionary, required if there are any + CONTENTS = "/Contents" # stream or array, optional + CROPBOX = "/CropBox" # array, optional; rectangle + ROTATE = "/Rotate" # integer, optional; page rotation in degrees + THUMB = "/Thumb" # stream, optional; indirect reference to image of the page + ANNOTS = "/Annots" # array, optional; an array of annotations + + +class Ressources: + PROCSET = "/ProcSet" # Chapter 6.8.1 + FONT = "/Font" # Chapter 6.8.2 + # encoding + # font descriptors : 6.8.4 + COLOR_SPACE = "/ColorSpace" # Chapter 6.8.5 + XOBJECT = "/XObject" # Chapter 6.8.6 + + +class StreamAttributes: + """Table 4.2""" + + LENGTH = "/Length" # integer, required + FILTER = "/Filter" # name or array of names, optional + DECODE_PARMS = "/DecodeParms" # variable, optional -- 'decodeParams is wrong + + +class FilterTypes: + """ + Table 4.3 of the 1.4 Manual + + Page 354 of the 1.7 Manual + """ + + ASCII_HEX_DECODE = "/ASCIIHexDecode" # abbreviation: AHx + ASCII_85_DECODE = "/ASCII85Decode" # abbreviation: A85 + LZW_DECODE = "/LZWDecode" # abbreviation: LZW + FLATE_DECODE = "/FlateDecode" # abbreviation: Fl, PDF 1.2 + RUN_LENGTH_DECODE = "/RunLengthDecode" # abbreviation: RL + CCITT_FAX_DECODE = "/CCITTFaxDecode" # abbreviation: CCF + DCT_DECODE = "/DCTDecode" # abbreviation: DCT + + +class FilterTypeAbbreviations: + """ + Table 4.44 of the 1.7 Manual (page 353ff) + """ + + AHx = "/AHx" + A85 = "/A85" + LZW = "/LZW" + FL = "/Fl" # FlateDecode + RL = "/RL" + CCF = "/CCF" + DCT = "/DCT" + + +class LzwFilterParameters: + """Table 4.4""" + + PREDICTOR = "/Predictor" # integer + COLUMNS = "/Columns" # integer + COLORS = "/Colors" # integer + BITS_PER_COMPONENT = "/BitsPerComponent" # integer + EARLY_CHANGE = "/EarlyChange" # integer + + +class CcittFaxDecodeParameters: + """Table 4.5""" + + K = "/K" # integer + END_OF_LINE = "/EndOfLine" # boolean + ENCODED_BYTE_ALIGN = "/EncodedByteAlign" # boolean + COLUMNS = "/Columns" # integer + ROWS = "/Rows" # integer + END_OF_BLOCK = "/EndOfBlock" # boolean + BLACK_IS_1 = "/BlackIs1" # boolean + DAMAGED_ROWS_BEFORE_ERROR = "/DamagedRowsBeforeError" # integer + + +class ImageAttributes: + """Table 6.20.""" + + TYPE = "/Type" # name, required; must be /XObject + SUBTYPE = "/Subtype" # name, required; must be /Image + NAME = "/Name" # name, required + WIDTH = "/Width" # integer, required + HEIGHT = "/Height" # integer, required + BITS_PER_COMPONENT = "/BitsPerComponent" # integer, required + COLOR_SPACE = "/ColorSpace" # name, required + DECODE = "/Decode" # array, optional + INTERPOLATE = "/Interpolate" # boolean, optional + IMAGE_MASK = "/ImageMask" # boolean, optional + + +class ColorSpaces: + DEVICE_RGB = "/DeviceRGB" + DEVICE_CMYK = "/DeviceCMYK" + DEVICE_GRAY = "/DeviceGray" + + +class TypArguments: + """Table 8.2 of the PDF 1.7 reference""" + + LEFT = "/Left" + RIGHT = "/Right" + BOTTOM = "/Bottom" + TOP = "/Top" + + +class TypFitArguments: + """Table 8.2 of the PDF 1.7 reference""" + + FIT = "/Fit" + FIT_V = "/FitV" + FIT_BV = "/FitBV" + FIT_B = "/FitB" + FIT_H = "/FitH" + FIT_BH = "/FitBH" + FIT_R = "/FitR" + + +class PageLayouts: + """Page 84, PDF 1.4 reference""" + + SINGLE_PAGE = "/SinglePage" + ONE_COLUMN = "/OneColumn" + TWO_COLUMN_LEFT = "/TwoColumnLeft" + TWO_COLUMN_RIGHT = "/TwoColumnRight" + + +class GraphicsStateParameters: + """Table 4.8 of the 1.7 reference""" + + TYPE = "/Type" # name, optional + LW = "/LW" # number, optional + # TODO: Many more! + FONT = "/Font" # array, optional + S_MASK = "/SMask" # dictionary or name, optional + + +class CatalogDictionary: + """Table 3.25 in the 1.7 reference""" + + TYPE = "/Type" # name, required; must be /Catalog + # TODO: Many more! + + +PDF_KEYS = [ + PagesAttributes, + PageAttributes, + Ressources, + ImageAttributes, + StreamAttributes, + FilterTypes, + LzwFilterParameters, + TypArguments, + TypFitArguments, + PageLayouts, + GraphicsStateParameters, + CatalogDictionary, +] diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 6a409a62e4..1006b9e619 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -31,13 +31,23 @@ __author_email__ = "biziqe@mathieu.fenniak.net" import math +from sys import version_info + +from PyPDF2.constants import CcittFaxDecodeParameters as CCITT +from PyPDF2.constants import ColorSpaces +from PyPDF2.constants import FilterTypeAbbreviations as FTA +from PyPDF2.constants import FilterTypes as FT +from PyPDF2.constants import ImageAttributes as IA +from PyPDF2.constants import LzwFilterParameters as LZW +from PyPDF2.constants import StreamAttributes as SA from .utils import PdfReadError, ord_, paethPredictor -from sys import version_info + if version_info < ( 3, 0 ): from cStringIO import StringIO else: from io import StringIO + import struct try: @@ -110,13 +120,13 @@ def decode(data, decodeParms): predictor = 1 if decodeParms: try: - predictor = decodeParms.get("/Predictor", 1) + predictor = decodeParms.get(LZW.PREDICTOR, 1) except AttributeError: pass # usually an array with a null object was read # predictor 1 == no predictor if predictor != 1: - columns = decodeParms["/Columns"] + columns = decodeParms[LZW.COLUMNS] # PNG prediction: if predictor >= 10 and predictor <= 15: output = StringIO() @@ -261,7 +271,7 @@ def decode(self): return baos @staticmethod - def decode(data,decodeParams=None): + def decode(data, decodeParms=None): return LZWDecode.decoder(data).decode() @@ -363,7 +373,7 @@ def decode(data, decodeParms=None, height=0): else: CCITTgroup = 3 - width = decodeParms["/Columns"] + width = decodeParms[CCITT.COLUMNS] imgSize = len(data) tiff_header_struct = '<2shlh' + 'hhll' * 8 + 'h' tiffHeader = struct.pack(tiff_header_struct, @@ -388,7 +398,7 @@ def decode(data, decodeParms=None, height=0): def decodeStreamData(stream): from .generic import NameObject - filters = stream.get("/Filter", ()) + filters = stream.get(SA.FILTER, ()) if len(filters) and not isinstance(filters[0], NameObject): # we have a single filter instance @@ -397,24 +407,24 @@ def decodeStreamData(stream): # If there is not data to decode we should not try to decode the data. if data: for filterType in filters: - if filterType == "/FlateDecode" or filterType == "/Fl": - data = FlateDecode.decode(data, stream.get("/DecodeParms")) - elif filterType == "/ASCIIHexDecode" or filterType == "/AHx": + if filterType == FT.FLATE_DECODE or filterType == FTA.FL: + data = FlateDecode.decode(data, stream.get(SA.DECODE_PARMS)) + elif filterType == FT.ASCII_HEX_DECODE or filterType == FTA.AHx: data = ASCIIHexDecode.decode(data) - elif filterType == "/LZWDecode" or filterType == "/LZW": - data = LZWDecode.decode(data, stream.get("/DecodeParms")) - elif filterType == "/ASCII85Decode" or filterType == "/A85": + elif filterType == FT.LZW_DECODE or filterType == FTA.LZW: + data = LZWDecode.decode(data, stream.get(SA.DECODE_PARMS)) + elif filterType == FT.ASCII_85_DECODE or filterType == FTA.A85: data = ASCII85Decode.decode(data) - elif filterType == "/DCTDecode": + elif filterType == FT.DCT_DECODE: data = DCTDecode.decode(data) elif filterType == "/JPXDecode": data = JPXDecode.decode(data) - elif filterType == "/CCITTFaxDecode": - height = stream.get("/Height", ()) - data = CCITTFaxDecode.decode(data, stream.get("/DecodeParms"), height) + elif filterType == FT.CCITT_FAX_DECODE: + height = stream.get(IA.HEIGHT, ()) + data = CCITTFaxDecode.decode(data, stream.get(SA.DECODE_PARMS), height) elif filterType == "/Crypt": - decodeParams = stream.get("/DecodeParams", {}) - if "/Name" not in decodeParams and "/Type" not in decodeParams: + decodeParms = stream.get(SA.DECODE_PARMS, {}) + if "/Name" not in decodeParms and "/Type" not in decodeParms: pass else: raise NotImplementedError("/Crypt filter with /Name or /Type not supported yet") @@ -434,34 +444,37 @@ def _xobj_to_image(x_object_obj): :return: Tuple[file extension, bytes] """ import io + from PIL import Image - size = (x_object_obj["/Width"], x_object_obj["/Height"]) + from PyPDF2.constants import GraphicsStateParameters as G + + size = (x_object_obj[IA.WIDTH], x_object_obj[IA.HEIGHT]) data = x_object_obj.getData() - if x_object_obj["/ColorSpace"] == "/DeviceRGB": + if x_object_obj[IA.COLOR_SPACE] == ColorSpaces.DEVICE_RGB: mode = "RGB" else: mode = "P" extension = None - if "/Filter" in x_object_obj: - if x_object_obj["/Filter"] == "/FlateDecode": + if SA.FILTER in x_object_obj: + if x_object_obj[SA.FILTER] == FT.FLATE_DECODE: extension = ".png" img = Image.frombytes(mode, size, data) - if "/SMask" in x_object_obj: # add alpha channel - alpha = Image.frombytes("L", size, x_object_obj["/SMask"].getData()) + if G.S_MASK in x_object_obj: # add alpha channel + alpha = Image.frombytes("L", size, x_object_obj[G.S_MASK].getData()) img.putalpha(alpha) img_byte_arr = io.BytesIO() img.save(img_byte_arr, format="PNG") data = img_byte_arr.getvalue() - elif x_object_obj["/Filter"] in (["/LZWDecode"], ['/ASCII85Decode'], ['/CCITTFaxDecode']): + elif x_object_obj[SA.FILTER] in ([FT.LZW_DECODE], [FT.ASCII_85_DECODE], [FT.CCITT_FAX_DECODE]): from PyPDF2.utils import b_ extension = ".png" data = b_(data) - elif x_object_obj["/Filter"] == "/DCTDecode": + elif x_object_obj[SA.FILTER] == FT.DCT_DECODE: extension = ".jpg" - elif x_object_obj["/Filter"] == "/JPXDecode": + elif x_object_obj[SA.FILTER] == "/JPXDecode": extension = ".jp2" - elif x_object_obj["/Filter"] == "/CCITTFaxDecode": + elif x_object_obj[SA.FILTER] == FT.CCITT_FAX_DECODE: extension = ".tiff" else: extension = ".png" diff --git a/PyPDF2/generic.py b/PyPDF2/generic.py index c0691694d8..09a38ac0d0 100644 --- a/PyPDF2/generic.py +++ b/PyPDF2/generic.py @@ -32,18 +32,19 @@ __author__ = "Mathieu Fenniak" __author_email__ = "biziqe@mathieu.fenniak.net" +import codecs +import decimal import re -from .utils import readNonWhitespace, RC4_encrypt, skipOverComment -from .utils import b_, u_, chr_, ord_ -from .utils import PdfStreamError import warnings -from . import filters -from . import utils -import decimal -import codecs +from PyPDF2.constants import FilterTypes as FT +from PyPDF2.constants import StreamAttributes as SA from PyPDF2.utils import ERR_STREAM_TRUNCATED_PREMATURELY +from . import filters, utils +from .utils import (PdfStreamError, RC4_encrypt, b_, chr_, ord_, + readNonWhitespace, skipOverComment, u_) + ObjectPrefix = b_('/<[tf(n%') NumberSigns = b_('+-') IndirectPattern = re.compile(b_(r"[+-]?(\d+)\s+(\d+)\s+R[^a-zA-Z]")) @@ -604,8 +605,8 @@ def readFromStream(stream, pdf): if stream.read(1) != b_('\n'): stream.seek(-1, 1) # this is a stream object, not a dictionary - assert "/Length" in data - length = data["/Length"] + assert SA.LENGTH in data + length = data[SA.LENGTH] if debug: print(data) if isinstance(length, IndirectObject): t = stream.tell() @@ -780,9 +781,9 @@ def __init__(self): self.decodedSelf = None def writeToStream(self, stream, encryption_key): - self[NameObject("/Length")] = NumberObject(len(self._data)) + self[NameObject(SA.LENGTH)] = NumberObject(len(self._data)) DictionaryObject.writeToStream(self, stream, encryption_key) - del self["/Length"] + del self[SA.LENGTH] stream.write(b_("\nstream\n")) data = self._data if encryption_key: @@ -791,22 +792,22 @@ def writeToStream(self, stream, encryption_key): stream.write(b_("\nendstream")) def initializeFromDictionary(data): - if "/Filter" in data: + if SA.FILTER in data: retval = EncodedStreamObject() else: retval = DecodedStreamObject() retval._data = data["__streamdata__"] del data["__streamdata__"] - del data["/Length"] + del data[SA.LENGTH] retval.update(data) return retval initializeFromDictionary = staticmethod(initializeFromDictionary) # type: ignore def flateEncode(self): - if "/Filter" in self: - f = self["/Filter"] + if SA.FILTER in self: + f = self[SA.FILTER] if isinstance(f, ArrayObject): - f.insert(0, NameObject("/FlateDecode")) + f.insert(0, NameObject(FT.FLATE_DECODE)) else: newf = ArrayObject() newf.append(NameObject("/FlateDecode")) @@ -815,7 +816,7 @@ def flateEncode(self): else: f = NameObject("/FlateDecode") retval = EncodedStreamObject() - retval[NameObject("/Filter")] = f + retval[NameObject(SA.FILTER)] = f retval._data = filters.FlateDecode.encode(self._data) return retval @@ -842,7 +843,7 @@ def getData(self): decoded._data = filters.decodeStreamData(self) for key, value in list(self.items()): - if key not in ("/Length", "/Filter", "/DecodeParms"): + if key not in (SA.LENGTH, SA.FILTER, SA.DECODE_PARMS): decoded[key] = value self.decodedSelf = decoded return decoded._data @@ -1061,18 +1062,21 @@ def __init__(self, title, page, typ, *args): self[NameObject("/Page")] = page self[NameObject("/Type")] = typ + from PyPDF2.constants import TypArguments as TA + from PyPDF2.constants import TypFitArguments as TF + # from table 8.2 of the PDF 1.7 reference. if typ == "/XYZ": - (self[NameObject("/Left")], self[NameObject("/Top")], + (self[NameObject(TA.LEFT)], self[NameObject(TA.TOP)], self[NameObject("/Zoom")]) = args - elif typ == "/FitR": - (self[NameObject("/Left")], self[NameObject("/Bottom")], - self[NameObject("/Right")], self[NameObject("/Top")]) = args - elif typ in ["/FitH", "/FitBH"]: - self[NameObject("/Top")], = args - elif typ in ["/FitV", "/FitBV"]: - self[NameObject("/Left")], = args - elif typ in ["/Fit", "/FitB"]: + elif typ == TF.FIT_R: + (self[NameObject(TA.LEFT)], self[NameObject(TA.BOTTOM)], + self[NameObject(TA.RIGHT)], self[NameObject(TA.TOP)]) = args + elif typ in [TF.FIT_H, TF.FIT_BH]: + self[NameObject(TA.TOP)], = args + elif typ in [TF.FIT_V, TF.FIT_BV]: + self[NameObject(TA.LEFT)], = args + elif typ in [TF.FIT, TF.FIT_B]: pass else: raise utils.PdfReadError("Unknown Destination Type: %r" % typ) diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index d5fd22414d..670629d242 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -25,11 +25,15 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +from sys import version_info + +from PyPDF2.constants import PagesAttributes as PA + from .generic import * -from .utils import isString, str_ -from .pdf import PdfFileReader, PdfFileWriter from .pagerange import PageRange -from sys import version_info +from .pdf import PdfFileReader, PdfFileWriter +from .utils import isString, str_ + if version_info < ( 3, 0 ): from cStringIO import StringIO StreamIO = StringIO @@ -216,8 +220,8 @@ def write(self, fileobj): # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13 for page in self.pages: self.output.addPage(page.pagedata) - page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject()) - # idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1 + page.out_pagedata = self.output.getReference(self.output._pages.getObject()[PA.KIDS][-1].getObject()) + # idnum = self.output._objects.index(self.output._pages.getObject()[PA.KIDS][-1].getObject()) + 1 # page.out_pagedata = IndirectObject(idnum, 0, self.output) # Once all pages are added, create bookmarks to point at those pages @@ -543,7 +547,7 @@ def remove(self, index): self.tree.removeChild(obj) def add(self, title, pagenum): - pageRef = self.pdf.getObject(self.pdf._pages)['/Kids'][pagenum] + pageRef = self.pdf.getObject(self.pdf._pages)[PA.KIDS][pagenum] action = DictionaryObject() action.update({ NameObject('/D') : ArrayObject([pageRef, NameObject('/FitH'), NumberObject(826)]), diff --git a/PyPDF2/pagerange.py b/PyPDF2/pagerange.py index 73fcad77f0..aa532e7048 100644 --- a/PyPDF2/pagerange.py +++ b/PyPDF2/pagerange.py @@ -8,6 +8,7 @@ """ import re + from .utils import isString _INT_RE = r"(0|-?[1-9]\d*)" # A decimal int, don't allow "-0". diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 4c65b1e6ce..6ddd99d786 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -29,21 +29,17 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -""" -A pure-Python PDF library with an increasing number of capabilities. -""" +"""A pure-Python PDF library with an increasing number of capabilities.""" __author__ = "Mathieu Fenniak" __author_email__ = "biziqe@mathieu.fenniak.net" -__maintainer__ = "Phaseit, Inc." -__maintainer_email = "PyPDF2@phaseit.net" - import math import struct import sys import uuid from sys import version_info + if version_info < ( 3, 0 ): from cStringIO import StringIO else: @@ -54,12 +50,18 @@ else: from io import BytesIO -from . import utils -import warnings import codecs +import warnings + +from PyPDF2.constants import PageAttributes as PG +from PyPDF2.constants import PagesAttributes as PA +from PyPDF2.constants import Ressources as RES +from PyPDF2.constants import StreamAttributes as SA + +from . import utils from .generic import * -from .utils import readNonWhitespace, readUntilWhitespace, ConvertFunctionsToVirtualList -from .utils import isString, b_, u_, ord_, str_, formatWarning +from .utils import (ConvertFunctionsToVirtualList, b_, formatWarning, isString, + ord_, readNonWhitespace, readUntilWhitespace, str_, u_) if version_info < ( 2, 4 ): from sets import ImmutableSet as frozenset @@ -82,9 +84,9 @@ def __init__(self): # The root of our page tree node. pages = DictionaryObject() pages.update({ - NameObject("/Type"): NameObject("/Pages"), - NameObject("/Count"): NumberObject(0), - NameObject("/Kids"): ArrayObject(), + NameObject(PA.TYPE): NameObject("/Pages"), + NameObject(PA.COUNT): NumberObject(0), + NameObject(PA.KIDS): ArrayObject(), }) self._pages = self._addObject(pages) @@ -98,7 +100,7 @@ def __init__(self): # root object root = DictionaryObject() root.update({ - NameObject("/Type"): NameObject("/Catalog"), + NameObject(PA.TYPE): NameObject("/Catalog"), NameObject("/Pages"): self._pages, }) self._root = None @@ -114,12 +116,12 @@ def getObject(self, ido): return self._objects[ido.idnum - 1] def _addPage(self, page, action): - assert page["/Type"] == "/Page" + assert page[PA.TYPE] == "/Page" page[NameObject("/Parent")] = self._pages page = self._addObject(page) pages = self.getObject(self._pages) - action(pages["/Kids"], page) - pages[NameObject("/Count")] = NumberObject(pages["/Count"] + 1) + action(pages[PA.KIDS], page) + pages[NameObject(PA.COUNT)] = NumberObject(pages[PA.COUNT] + 1) def addPage(self, page): """ @@ -153,7 +155,7 @@ def getPage(self, pageNumber): """ pages = self.getObject(self._pages) # XXX: crude hack - return pages["/Kids"][pageNumber].getObject() + return pages[PA.KIDS][pageNumber].getObject() def getNumPages(self): """ @@ -216,7 +218,7 @@ def addJS(self, javascript): """ js = DictionaryObject() js.update({ - NameObject("/Type"): NameObject("/Action"), + NameObject(PA.TYPE): NameObject("/Action"), NameObject("/S"): NameObject("/JavaScript"), NameObject("/JS"): NameObject("(%s)" % javascript) }) @@ -271,7 +273,7 @@ def addAttachment(self, fname, fdata): file_entry = DecodedStreamObject() file_entry.setData(fdata) file_entry.update({ - NameObject("/Type"): NameObject("/EmbeddedFile") + NameObject(PA.TYPE): NameObject("/EmbeddedFile") }) # The Filespec entry @@ -288,7 +290,7 @@ def addAttachment(self, fname, fdata): filespec = DictionaryObject() filespec.update({ - NameObject("/Type"): NameObject("/Filespec"), + NameObject(PA.TYPE): NameObject("/Filespec"), NameObject("/F"): createStringObject(fname), # Perhaps also try TextStringObject NameObject("/EF"): efEntry }) @@ -355,8 +357,8 @@ def updatePageFormFieldValues(self, page, fields): values (/V) ''' # Iterate through pages, update field values - for j in range(0, len(page['/Annots'])): - writer_annot = page['/Annots'][j].getObject() + for j in range(0, len(page[PG.ANNOTS])): + writer_annot = page[PG.ANNOTS][j].getObject() for field in fields: if writer_annot.get('/T') == field: writer_annot.update({ @@ -401,7 +403,8 @@ def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True): encryption. When false, 40bit encryption will be used. By default, this flag is on. """ - import time, random + import random + import time if owner_pwd is None: owner_pwd = user_pwd if use_128bit: @@ -424,10 +427,10 @@ def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True): assert rev == 3 U, key = _alg35(user_pwd, rev, keylen, O, P, ID_1, False) encrypt = DictionaryObject() - encrypt[NameObject("/Filter")] = NameObject("/Standard") + encrypt[NameObject(SA.FILTER)] = NameObject("/Standard") encrypt[NameObject("/V")] = NumberObject(V) if V == 2: - encrypt[NameObject("/Length")] = NumberObject(keylen * 8) + encrypt[NameObject(SA.LENGTH)] = NumberObject(keylen * 8) encrypt[NameObject("/R")] = NumberObject(rev) encrypt[NameObject("/O")] = ByteStringObject(O) encrypt[NameObject("/U")] = ByteStringObject(U) @@ -702,7 +705,7 @@ def addBookmark(self, title, pagenum, parent=None, color=None, bold=False, itali :param str fit: The fit of the destination page. See :meth:`addLink()` for details. """ - pageRef = self.getObject(self._pages)['/Kids'][pagenum] + pageRef = self.getObject(self._pages)[PA.KIDS][pagenum] action = DictionaryObject() zoomArgs = [] for a in args: @@ -757,7 +760,7 @@ def addNamedDestinationObject(self, dest): return destRef def addNamedDestination(self, title, pagenum): - pageRef = self.getObject(self._pages)['/Kids'][pagenum] + pageRef = self.getObject(self._pages)[PA.KIDS][pagenum] dest = DictionaryObject() dest.update({ NameObject('/D') : ArrayObject([pageRef, NameObject('/FitH'), NumberObject(826)]), @@ -775,11 +778,11 @@ def removeLinks(self): """ Removes links and annotations from this output. """ - pages = self.getObject(self._pages)['/Kids'] + pages = self.getObject(self._pages)[PA.KIDS] for page in pages: pageRef = self.getObject(page) - if "/Annots" in pageRef: - del pageRef['/Annots'] + if PG.ANNOTS in pageRef: + del pageRef[PG.ANNOTS] def removeImages(self, ignoreByteStringObject=False): """ @@ -788,7 +791,7 @@ def removeImages(self, ignoreByteStringObject=False): :param bool ignoreByteStringObject: optional parameter to ignore ByteString Objects. """ - pages = self.getObject(self._pages)['/Kids'] + pages = self.getObject(self._pages)[PA.KIDS] jump_operators = [ b_('cm'), b_('w'), b_('J'), b_('j'), b_('M'), b_('d'), b_('ri'), b_('i'), b_('gs'), b_('W'), b_('b'), b_('s'), b_('S'), b_('f'), b_('F'), b_('n'), b_('m'), b_('l'), @@ -841,7 +844,7 @@ def removeText(self, ignoreByteStringObject=False): :param bool ignoreByteStringObject: optional parameter to ignore ByteString Objects. """ - pages = self.getObject(self._pages)['/Kids'] + pages = self.getObject(self._pages)[PA.KIDS] for j in range(len(pages)): page = pages[j] pageRef = self.getObject(page) @@ -894,7 +897,7 @@ def addURI(self, pagenum, uri, rect, border=None): -John Mulligan """ - pageLink = self.getObject(self._pages)['/Kids'][pagenum] + pageLink = self.getObject(self._pages)[PA.KIDS][pagenum] pageRef = self.getObject(pageLink) if border is not None: @@ -919,7 +922,7 @@ def addURI(self, pagenum, uri, rect, border=None): }); lnk = DictionaryObject() lnk.update({ - NameObject('/Type'): NameObject('/Annot'), + NameObject('/Type'): NameObject(PG.ANNOTS), NameObject('/Subtype'): NameObject('/Link'), NameObject('/P'): pageLink, NameObject('/Rect'): rect, @@ -929,10 +932,10 @@ def addURI(self, pagenum, uri, rect, border=None): }) lnkRef = self._addObject(lnk) - if "/Annots" in pageRef: - pageRef['/Annots'].append(lnkRef) + if PG.ANNOTS in pageRef: + pageRef[PG.ANNOTS].append(lnkRef) else: - pageRef[NameObject('/Annots')] = ArrayObject([lnkRef]) + pageRef[NameObject(PG.ANNOTS)] = ArrayObject([lnkRef]) def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): """ @@ -970,8 +973,8 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): - [left] """ - pageLink = self.getObject(self._pages)['/Kids'][pagenum] - pageDest = self.getObject(self._pages)['/Kids'][pagedest] # TODO: switch for external link + pageLink = self.getObject(self._pages)[PA.KIDS][pagenum] + pageDest = self.getObject(self._pages)[PA.KIDS][pagedest] # TODO: switch for external link pageRef = self.getObject(pageLink) if border is not None: @@ -1000,7 +1003,7 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): lnk = DictionaryObject() lnk.update({ - NameObject('/Type'): NameObject('/Annot'), + NameObject('/Type'): NameObject(PG.ANNOTS), NameObject('/Subtype'): NameObject('/Link'), NameObject('/P'): pageLink, NameObject('/Rect'): rect, @@ -1009,10 +1012,10 @@ def addLink(self, pagenum, pagedest, rect, border=None, fit='/Fit', *args): }) lnkRef = self._addObject(lnk) - if "/Annots" in pageRef: - pageRef['/Annots'].append(lnkRef) + if PG.ANNOTS in pageRef: + pageRef[PG.ANNOTS].append(lnkRef) else: - pageRef[NameObject('/Annots')] = ArrayObject([lnkRef]) + pageRef[NameObject(PG.ANNOTS)] = ArrayObject([lnkRef]) _valid_layouts = ['/NoLayout', '/SinglePage', '/OneColumn', '/TwoColumnLeft', '/TwoColumnRight', '/TwoPageLeft', '/TwoPageRight'] @@ -1318,9 +1321,9 @@ def _buildField(self, field, retval, fileobj, fieldAttributes): retval[key] = Field(field) def _checkKids(self, tree, retval, fileobj): - if "/Kids" in tree: + if PA.KIDS in tree: # recurse down the tree - for kid in tree["/Kids"]: + for kid in tree[PA.KIDS]: self.getFields(kid.getObject(), retval, fileobj) def _writeField(self, fileobj, field, fieldAttributes): @@ -1380,9 +1383,9 @@ def getNamedDestinations(self, tree=None, retval=None): if tree is None: return retval - if "/Kids" in tree: + if PA.KIDS in tree: # recurse down the tree - for kid in tree["/Kids"]: + for kid in tree[PA.KIDS]: self.getNamedDestinations(kid.getObject(), retval) if "/Names" in tree: @@ -1569,8 +1572,8 @@ def getPageMode(self): def _flatten(self, pages=None, inherit=None, indirectRef=None): inheritablePageAttributes = ( - NameObject("/Resources"), NameObject("/MediaBox"), - NameObject("/CropBox"), NameObject("/Rotate") + NameObject(PG.RESOURCES), NameObject(PG.MEDIABOX), + NameObject(PG.CROPBOX), NameObject(PG.ROTATE) ) if inherit is None: inherit = dict() @@ -1582,14 +1585,14 @@ def _flatten(self, pages=None, inherit=None, indirectRef=None): self.flattenedPages = [] t = "/Pages" - if "/Type" in pages: - t = pages["/Type"] + if PA.TYPE in pages: + t = pages[PA.TYPE] if t == "/Pages": for attr in inheritablePageAttributes: if attr in pages: inherit[attr] = pages[attr] - for page in pages["/Kids"]: + for page in pages[PA.KIDS]: addt = {} if isinstance(page, IndirectObject): addt["indirectRef"] = page @@ -2093,7 +2096,7 @@ def _decrypt(self, password): if rev == 2: keylen = 5 else: - keylen = encrypt['/Length'].getObject() // 8 + keylen = encrypt[SA.LENGTH].getObject() // 8 key = _alg33_1(password, rev, keylen) real_O = encrypt["/O"].getObject() if rev == 2: @@ -2124,7 +2127,7 @@ def _authenticateUserPassword(self, password): U, key = _alg34(password, owner_entry, p_entry, id1_entry) elif rev >= 3: U, key = _alg35(password, rev, - encrypt["/Length"].getObject() // 8, owner_entry, + encrypt[SA.LENGTH].getObject() // 8, owner_entry, p_entry, id1_entry, encrypt.get("/EncryptMetadata", BooleanObject(False)).getObject()) U, real_U = U[:16], real_U[:16] @@ -2215,7 +2218,7 @@ def createBlankPage(pdf=None, width=None, height=None): # Creates a new page (cf PDF Reference 7.7.3.3) page.__setitem__(NameObject('/Type'), NameObject('/Page')) page.__setitem__(NameObject('/Parent'), NullObject()) - page.__setitem__(NameObject('/Resources'), DictionaryObject()) + page.__setitem__(NameObject(PG.RESOURCES), DictionaryObject()) if width is None or height is None: if pdf is not None and pdf.getNumPages() > 0: lastpage = pdf.getPage(pdf.getNumPages() - 1) @@ -2223,7 +2226,7 @@ def createBlankPage(pdf=None, width=None, height=None): height = lastpage.mediaBox.getHeight() else: raise utils.PageSizeNotDefinedError() - page.__setitem__(NameObject('/MediaBox'), + page.__setitem__(NameObject(PG.MEDIABOX), RectangleObject([0, 0, width, height])) return page @@ -2344,27 +2347,27 @@ def _mergePage(self, page2, page2transformation=None, ctm=None, expand=False): newResources = DictionaryObject() rename = {} - originalResources = self["/Resources"].getObject() - page2Resources = page2["/Resources"].getObject() + originalResources = self[PG.RESOURCES].getObject() + page2Resources = page2[PG.RESOURCES].getObject() newAnnots = ArrayObject() for page in (self, page2): - if "/Annots" in page: - annots = page["/Annots"] + if PG.ANNOTS in page: + annots = page[PG.ANNOTS] if isinstance(annots, ArrayObject): for ref in annots: newAnnots.append(ref) - for res in "/ExtGState", "/Font", "/XObject", "/ColorSpace", "/Pattern", "/Shading", "/Properties": + for res in "/ExtGState", RES.FONT, RES.XOBJECT, RES.COLOR_SPACE, "/Pattern", "/Shading", "/Properties": new, newrename = PageObject._mergeResources(originalResources, page2Resources, res) if new: newResources[NameObject(res)] = new rename.update(newrename) # Combine /ProcSet sets. - newResources[NameObject("/ProcSet")] = ArrayObject( - frozenset(originalResources.get("/ProcSet", ArrayObject()).getObject()).union( - frozenset(page2Resources.get("/ProcSet", ArrayObject()).getObject()) + newResources[NameObject(RES.PROCSET)] = ArrayObject( + frozenset(originalResources.get(RES.PROCSET, ArrayObject()).getObject()).union( + frozenset(page2Resources.get(RES.PROCSET, ArrayObject()).getObject()) ) ) @@ -2408,8 +2411,8 @@ def _mergePage(self, page2, page2transformation=None, ctm=None, expand=False): self.mediaBox.setUpperRight(upperright) self[NameObject('/Contents')] = ContentStream(newContentArray, self.pdf) - self[NameObject('/Resources')] = newResources - self[NameObject('/Annots')] = newAnnots + self[NameObject(PG.RESOURCES)] = newResources + self[NameObject(PG.ANNOTS)] = newAnnots def mergeTransformedPage(self, page2, ctm, expand=False): """ @@ -2717,14 +2720,14 @@ def extractText(self, Tj_sep="", TJ_sep=" "): text += "\n" return text - mediaBox = createRectangleAccessor("/MediaBox", ()) + mediaBox = createRectangleAccessor(PG.MEDIABOX, ()) """ A :class:`RectangleObject`, expressed in default user space units, defining the boundaries of the physical medium on which the page is intended to be displayed or printed. """ - cropBox = createRectangleAccessor("/CropBox", ("/MediaBox",)) + cropBox = createRectangleAccessor("/CropBox", (PG.MEDIABOX,)) """ A :class:`RectangleObject`, expressed in default user space units, defining the visible region of default user space. When the page is @@ -2733,20 +2736,20 @@ def extractText(self, Tj_sep="", TJ_sep=" "): implementation-defined manner. Default value: same as :attr:`mediaBox`. """ - bleedBox = createRectangleAccessor("/BleedBox", ("/CropBox", "/MediaBox")) + bleedBox = createRectangleAccessor("/BleedBox", ("/CropBox", PG.MEDIABOX)) """ A :class:`RectangleObject`, expressed in default user space units, defining the region to which the contents of the page should be clipped when output in a production enviroment. """ - trimBox = createRectangleAccessor("/TrimBox", ("/CropBox", "/MediaBox")) + trimBox = createRectangleAccessor("/TrimBox", ("/CropBox", PG.MEDIABOX)) """ A :class:`RectangleObject`, expressed in default user space units, defining the intended dimensions of the finished page after trimming. """ - artBox = createRectangleAccessor("/ArtBox", ("/CropBox", "/MediaBox")) + artBox = createRectangleAccessor("/ArtBox", ("/CropBox", PG.MEDIABOX)) """ A :class:`RectangleObject`, expressed in default user space units, defining the extent of the page's meaningful content as intended by the diff --git a/PyPDF2/xmp.py b/PyPDF2/xmp.py index 9aec5e0174..206317f355 100644 --- a/PyPDF2/xmp.py +++ b/PyPDF2/xmp.py @@ -1,8 +1,9 @@ -import re import datetime import decimal -from .generic import PdfObject +import re from xml.dom.minidom import parseString + +from .generic import PdfObject from .utils import u_ RDF_NAMESPACE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" diff --git a/Scripts/pdf-image-extractor.py b/Scripts/pdf-image-extractor.py index c2e2aa00e3..cc935aad4b 100644 --- a/Scripts/pdf-image-extractor.py +++ b/Scripts/pdf-image-extractor.py @@ -8,17 +8,17 @@ import sys import PyPDF2 from PyPDF2.filters import _xobj_to_image - +from PyPDF2.constants import PageAttributes as PG, ImageAttributes as IA, Ressources as RES def main(pdf: str): reader = PyPDF2.PdfFileReader(pdf) page = reader.pages[30] - if "/XObject" in page["/Resources"]: - xObject = page["/Resources"]["/XObject"].getObject() + if RES.XOBJECT in page[PG.RESOURCES]: + xObject = page[PG.RESOURCES][RES.XOBJECT].getObject() for obj in xObject: - if xObject[obj]["/Subtype"] == "/Image": + if xObject[obj][IA.SUBTYPE] == "/Image": extension, byte_stream = _xobj_to_image(xObject[obj]) if extension is not None: filename = obj[1:] + ".png" diff --git a/Tests/test_constants.py b/Tests/test_constants.py new file mode 100644 index 0000000000..fa34357c55 --- /dev/null +++ b/Tests/test_constants.py @@ -0,0 +1,15 @@ +import re + +from PyPDF2.constants import PDF_KEYS + + +def test_slash_prefix(): + pattern = re.compile(r"^\/[A-Z]+[a-zA-Z0-9]*$") + for cls in PDF_KEYS: + for attr in dir(cls): + if attr.startswith("__") and attr.endswith("__"): + continue + constant_value = getattr(cls, attr) + assert constant_value.startswith("/") + assert pattern.match(constant_value) + assert attr.replace("_", "").lower() == constant_value[1:].lower() diff --git a/Tests/test_page.py b/Tests/test_page.py index 6e4400403f..c5ea986622 100644 --- a/Tests/test_page.py +++ b/Tests/test_page.py @@ -12,25 +12,16 @@ @pytest.mark.parametrize( "pdf_path, password", [ - (os.path.join(RESOURCE_ROOT, "crazyones.pdf"), None), - (os.path.join(RESOURCE_ROOT, "attachment.pdf"), None), - (os.path.join(RESOURCE_ROOT, "side-by-side-subfig.pdf"), None), + ("crazyones.pdf", None), + ("attachment.pdf", None), + # ("side-by-side-subfig.pdf", None), ( - os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf"), + "libreoffice-writer-password.pdf", "openpassword", ), - (os.path.join(RESOURCE_ROOT, "imagemagick-images.pdf"), None), - (os.path.join(RESOURCE_ROOT, "imagemagick-lzw.pdf"), None), - (os.path.join(RESOURCE_ROOT, "reportlab-inline-image.pdf"), None), - ], - ids=[ - "crazyones", - "attachment", - "side-by-side-subfig", - "libreoffice-writer-password", - "imagemagick-images", - "imagemagick-lzw", - "reportlab-inline-image", + ("imagemagick-images.pdf", None), + ("imagemagick-lzw.pdf", None), + ("reportlab-inline-image.pdf", None), ], ) def test_page_operations(pdf_path, password): @@ -40,6 +31,7 @@ def test_page_operations(pdf_path, password): This should be done way more thoroughly: It should be checked if the output is as expected. """ + pdf_path = os.path.join(RESOURCE_ROOT, pdf_path) reader = PdfFileReader(pdf_path) if password: diff --git a/Tests/test_reader.py b/Tests/test_reader.py index be6cdc77f4..d7d88bb646 100644 --- a/Tests/test_reader.py +++ b/Tests/test_reader.py @@ -5,6 +5,9 @@ import PyPDF2.utils from PyPDF2 import PdfFileReader +from PyPDF2.constants import ImageAttributes as IA +from PyPDF2.constants import PageAttributes as PG +from PyPDF2.constants import Ressources as RES from PyPDF2.filters import _xobj_to_image TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -66,9 +69,9 @@ def test_get_annotations(src): reader = PdfFileReader(src) for page in reader.pages: - if "/Annots" in page: - for annot in page["/Annots"]: - subtype = annot.getObject()["/Subtype"] + if PG.ANNOTS in page: + for annot in page[PG.ANNOTS]: + subtype = annot.getObject()[IA.SUBTYPE] if subtype == "/Text": annot.getObject()["/Contents"] @@ -86,10 +89,10 @@ def test_get_attachments(src): attachments = {} for i in range(reader.getNumPages()): page = reader.getPage(i) - if "/Annots" in page: - for annotation in page["/Annots"]: + if PG.ANNOTS in page: + for annotation in page[PG.ANNOTS]: annotobj = annotation.getObject() - if annotobj["/Subtype"] == "/FileAttachment": + if annotobj[IA.SUBTYPE] == "/FileAttachment": fileobj = annotobj["/FS"] attachments[fileobj["/F"]] = fileobj["/EF"]["/F"].getData() return attachments @@ -131,11 +134,11 @@ def test_get_images(src, nb_images): images_extracted = [] - if "/XObject" in page["/Resources"]: - xObject = page["/Resources"]["/XObject"].getObject() + if RES.XOBJECT in page[PG.RESOURCES]: + xObject = page[PG.RESOURCES][RES.XOBJECT].getObject() for obj in xObject: - if xObject[obj]["/Subtype"] == "/Image": + if xObject[obj][IA.SUBTYPE] == "/Image": extension, byte_stream = _xobj_to_image(xObject[obj]) if extension is not None: filename = obj[1:] + ".png" diff --git a/Tests/test_workflows.py b/Tests/test_workflows.py index ad2772f857..3004306575 100644 --- a/Tests/test_workflows.py +++ b/Tests/test_workflows.py @@ -7,6 +7,7 @@ import pytest from PyPDF2 import PdfFileReader +from PyPDF2.constants import PageAttributes as PG TESTS_ROOT = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(TESTS_ROOT) @@ -54,7 +55,7 @@ def test_PdfReaderJpegImage(): imagetext = pdftext_file.read() page = reader.getPage(0) - x_object = page["/Resources"]["/XObject"].getObject() + x_object = page[PG.RESOURCES]["/XObject"].getObject() data = x_object["/Im4"].getData() # Compare the text of the PDF to a known source @@ -80,7 +81,7 @@ def test_decrypt(): "/Producer": "LibreOffice 6.4", } # Is extractText() broken for encrypted files? - # assert ipdf.getPage(0).extractText().replace('\n', '') == "\n˘\n\u02c7\u02c6˙\n\n\n˘\u02c7\u02c6˙\n\n" + # assert reader.getPage(0).extractText().replace('\n', '') == "\n˘\n\u02c7\u02c6˙\n\n\n˘\u02c7\u02c6˙\n\n" @pytest.mark.parametrize("degree", [0, 90, 180, 270, 360, -90]) From c138f213b5a3e5e0eaefa6ee2acc34e22033924a Mon Sep 17 00:00:00 2001 From: Forrest Voight Date: Sat, 16 Apr 2022 03:10:14 -0500 Subject: [PATCH 139/145] BUG: Clip by trimBox when merging pages, which would otherwise be ignored (#240) Closes #163 --- PyPDF2/pdf.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index 6ddd99d786..b0ab297a26 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -2380,6 +2380,10 @@ def _mergePage(self, page2, page2transformation=None, ctm=None, expand=False): page2Content = page2.getContents() if page2Content is not None: + page2Content = ContentStream(page2Content, self.pdf) + page2Content.operations.insert(0, [map(FloatObject, [page2.trimBox.getLowerLeft_x(), page2.trimBox.getLowerLeft_y(), page2.trimBox.getWidth(), page2.trimBox.getHeight()]), "re"]) + page2Content.operations.insert(1, [[], "W"]) + page2Content.operations.insert(2, [[], "n"]) if page2transformation is not None: page2Content = page2transformation(page2Content) page2Content = PageObject._contentStreamRename( From bf3c9c9c4ea740e7afea48fdc932eaecda277d70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Sat, 16 Apr 2022 01:40:36 -0700 Subject: [PATCH 140/145] BUG: Add overwriteWarnings parameter PdfFileMerger (#243) This helps users who run into issue #67 --- PyPDF2/merger.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/PyPDF2/merger.py b/PyPDF2/merger.py index 670629d242..1f2ab2d6b2 100644 --- a/PyPDF2/merger.py +++ b/PyPDF2/merger.py @@ -67,9 +67,12 @@ class PdfFileMerger(object): :param bool strict: Determines whether user should be warned of all problems and also causes some correctable problems to be fatal. Defaults to ``True``. + :param bool overwriteWarnings: Determines whether to override Python's + ``warnings.py`` module with a custom implementation (defaults to + ``True``). """ - def __init__(self, strict=True): + def __init__(self, strict=True, overwriteWarnings=True): self.inputs = [] self.pages = [] self.output = PdfFileWriter() @@ -77,6 +80,7 @@ def __init__(self, strict=True): self.named_dests = [] self.id_count = 0 self.strict = strict + self.overwriteWarnings = overwriteWarnings def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=True): """ @@ -132,7 +136,7 @@ def merge(self, position, fileobj, bookmark=None, pages=None, import_bookmarks=T # Create a new PdfFileReader instance using the stream # (either file or BytesIO or StringIO) created above - pdfr = PdfFileReader(fileobj, strict=self.strict) + pdfr = PdfFileReader(fileobj, strict=self.strict, overwriteWarnings=self.overwriteWarnings) if decryption_key is not None: pdfr._decryption_key = decryption_key From 4a3af962db3ca3c36404c9c9db6d9ea0e4ad0162 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 10:50:28 +0200 Subject: [PATCH 141/145] DOCS: Structure history --- docs/user/history.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/user/history.md b/docs/user/history.md index 9b0a9c267a..66392b6d10 100644 --- a/docs/user/history.md +++ b/docs/user/history.md @@ -1,5 +1,7 @@ # History of PyPDF2 +## The Origins: pyPDF + In 2005, [Mathieu Fenniak] launched pyPdf "as a PDF toolkit..." focused on @@ -9,6 +11,8 @@ focused on - page cropping; and - document encryption and decryption. +## PyPDF2 is born + At the end of 2011, after consultation with Mathieu and others, Phaseit sponsored PyPDF2 as a fork of pyPdf on GitHub. The initial impetus was to handle a wider range of input PDF instances; Phaseit\'s commercial @@ -30,9 +34,16 @@ process, and it handles a wider range of variant PDF formats \[explain\]. PyPDF2 has its own FAQ to answer other questions that have arisen. +## PyPDF2 rises + The Reddit [/r/python crowd chatted] obliquely and briefly about PyPDF2 in March 2012. +## PyPDF2: Reborn + +Martin Thoma took over maintenance of PyPDF2 in April 2022. + + [Mathieu Fenniak]: https://mathieu.fenniak.net/ [pyfpdf]: https://github.com/reingart/pyfpdf [ReportLab]: https://www.reportlab.com/software/opensource/rl-toolkit/ From 5e4fdfa8a3da06bcf069361561a6ac906a11211b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 16 Apr 2022 12:01:29 +0200 Subject: [PATCH 142/145] DEV: Add issue templates (#765) --- .github/ISSUE_TEMPLATE/bug-report.md | 35 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature-request.md | 20 +++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000000..f6da507c42 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,35 @@ +--- +name: Report a bug +about: Something broke! +title: "" +labels: Bug +assignees: MartinThoma + +--- + +Replace this: What happened? What were you trying to achieve? + +## Environment + +Which environment were you using when you encountered the problem? + +```python +$ python -m platform +# TODO: Your output goes here + +$ python -c "import PyPDF2;print(PyPDF2.__version__)" +# TODO: Your output goes here +``` + +## Code + +This is a minimal, complete example that shows the issue: + +```python +# TODO: Your code goes here +``` + +## PDF + +Share here the PDF file(s) that cause the issue. The smaller they are, the +better. Let us know if we may add them to our tests! diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000000..c167106a0f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,20 @@ +--- +name: Request a Feature +about: What do you think is missing in PyPDF2? +title: "" +labels: Feature Request +assignees: MartinThoma +--- + +## Explanation + +Explain briefly what you want to achive. + +## Code Example + +How would your feature be used? (Remove this if it is not applicable.) + +```python +from PyPDF2 import PdfFileReader, PdfFileWriter +... # your new feature in action! +``` \ No newline at end of file From ba7ee5b67e0dddc68cd0bcad9d64b52c604c68c5 Mon Sep 17 00:00:00 2001 From: jc275 Date: Sat, 16 Apr 2022 11:26:23 +0100 Subject: [PATCH 143/145] BUG: Handle cases where decodeParms is an ArrayObject (#405) Fixes bug where decodeParms.get(...) causes AttributeError: 'ArrayObject' object has no attribute 'get' Closes #404 --- PyPDF2/filters.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/PyPDF2/filters.py b/PyPDF2/filters.py index 1006b9e619..bb56234a76 100644 --- a/PyPDF2/filters.py +++ b/PyPDF2/filters.py @@ -120,10 +120,15 @@ def decode(data, decodeParms): predictor = 1 if decodeParms: try: - predictor = decodeParms.get(LZW.PREDICTOR, 1) + from PyPDF2.generic import ArrayObject + if isinstance(decodeParms, ArrayObject): + for decodeParm in decodeParms: + if '/Predictor' in decodeParm: + predictor = decodeParm['/Predictor'] + else: + predictor = decodeParms.get("/Predictor", 1) except AttributeError: - pass # usually an array with a null object was read - + pass # usually an array with a null object was read # predictor 1 == no predictor if predictor != 1: columns = decodeParms[LZW.COLUMNS] @@ -363,17 +368,24 @@ def decode(data, decodeParms=None): class CCITTFaxDecode(object): def decode(data, decodeParms=None, height=0): + k = 1 + width = 0 if decodeParms: from PyPDF2.generic import ArrayObject if isinstance(decodeParms, ArrayObject): - if len(decodeParms) == 1: - decodeParms = decodeParms[0] - if decodeParms.get("/K", 1) == -1: + for decodeParm in decodeParms: + if CCITT.COLUMNS in decodeParm: + width = decodeParm[CCITT.COLUMNS] + if CCITT.K in decodeParm: + k = decodeParm[CCITT.K] + else: + width = decodeParms[CCITT.COLUMNS] + k = decodeParms[CCITT.K] + if k == -1: CCITTgroup = 4 else: CCITTgroup = 3 - width = decodeParms[CCITT.COLUMNS] imgSize = len(data) tiff_header_struct = '<2shlh' + 'hhll' * 8 + 'h' tiffHeader = struct.pack(tiff_header_struct, From 03ea3ec6ef8cfb57724ba2b47c48cf6e2d975856 Mon Sep 17 00:00:00 2001 From: Rafael Date: Sat, 16 Apr 2022 07:34:45 -0300 Subject: [PATCH 144/145] BUG: Fix reading more than last1K for EOF (#642) Added optional parameter in readNextEndLine() to limit the offset then read() uses this parameter to limit the reading to last1K Closes #639 Closes #439 --- PyPDF2/pdf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PyPDF2/pdf.py b/PyPDF2/pdf.py index b0ab297a26..a762ac69f3 100644 --- a/PyPDF2/pdf.py +++ b/PyPDF2/pdf.py @@ -1778,7 +1778,7 @@ def read(self, stream): while line[:5] != b_("%%EOF"): if stream.tell() < last1K: raise utils.PdfReadError("EOF marker not found") - line = self.readNextEndLine(stream) + line = self.readNextEndLine(stream, last1K) if debug: print(" line:",line) # find startxref entry - the location of the xref table @@ -2020,13 +2020,13 @@ def _pairs(self, array): if (i+1) >= len(array): break - def readNextEndLine(self, stream): + def readNextEndLine(self, stream, limit_offset=0): debug = False if debug: print(">>readNextEndLine") line = b_("") while True: # Prevent infinite loops in malformed PDFs - if stream.tell() == 0: + if stream.tell() == 0 or stream.tell() == limit_offset: raise utils.PdfReadError("Could not read malformed PDF file") x = stream.read(1) if debug: print((" x:", x, "%x"%ord(x))) From 89bc09303cf08b8b461367130c230ddac9f3c534 Mon Sep 17 00:00:00 2001 From: Vitaly Bogomolov Date: Sat, 16 Apr 2022 16:16:20 +0400 Subject: [PATCH 145/145] DOC: Link to pdftoc in Sample_Code (#628) --- Sample_Code/hierarchical_toc.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Sample_Code/hierarchical_toc.md diff --git a/Sample_Code/hierarchical_toc.md b/Sample_Code/hierarchical_toc.md new file mode 100644 index 0000000000..e53ee6bc4c --- /dev/null +++ b/Sample_Code/hierarchical_toc.md @@ -0,0 +1,3 @@ +# Example of hierarchical TOC from several pdf files + +https://github.com/vb64/pdftoc

    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%0DkaOM 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õ{{X(b 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%0DynKJXuWDoa~42|I7C`lbn-=3tC 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%0D)`{E<**QF;Yc?r@(BW<9blK`~m3>KaAbZA2SyD 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 Iee{w@Bd3?IZlxZ{a(@y6DzR14g2Uly|J%^zB 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ñRTRYgLgLNZTmX)#%TmM99w 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

  • Kf9K;}kn@ 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