From f669582dcdf6fa37fc5a17cc9ad08301955cddc0 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Thu, 15 May 2014 16:23:35 +0000 Subject: [PATCH] removed extra/qt3 --- extra/qt3/PKGBUILD | 126 ----------- extra/qt3/arm_no_packed.patch | 69 ------ extra/qt3/eastern_asian_languagues.diff | 39 ---- extra/qt3/gcc-4.6.patch | 33 --- extra/qt3/qt-copy-kde-patches.tar.bz2 | Bin 29688 -> 0 bytes extra/qt3/qt-odbc.patch | 19 -- extra/qt3/qt-patches.tar.bz2 | Bin 3708 -> 0 bytes .../qt3/qt-x11-free-3.3.5-makelibshared.patch | 48 ---- extra/qt3/qt3-png15.patch | 212 ------------------ 9 files changed, 546 deletions(-) delete mode 100644 extra/qt3/PKGBUILD delete mode 100644 extra/qt3/arm_no_packed.patch delete mode 100644 extra/qt3/eastern_asian_languagues.diff delete mode 100644 extra/qt3/gcc-4.6.patch delete mode 100644 extra/qt3/qt-copy-kde-patches.tar.bz2 delete mode 100644 extra/qt3/qt-odbc.patch delete mode 100644 extra/qt3/qt-patches.tar.bz2 delete mode 100644 extra/qt3/qt-x11-free-3.3.5-makelibshared.patch delete mode 100644 extra/qt3/qt3-png15.patch diff --git a/extra/qt3/PKGBUILD b/extra/qt3/PKGBUILD deleted file mode 100644 index 960c5a802..000000000 --- a/extra/qt3/PKGBUILD +++ /dev/null @@ -1,126 +0,0 @@ -# $Id: PKGBUILD 149356 2012-02-07 05:40:02Z eric $ -# Maintainer: Eric BĂ©langer - -# ALARM: Kevin Mihelich -# - added arm.patch to fix compiling on ARM with GCC >= 4 -# Source: http://lists.trolltech.com/qt-embedded-interest/2007-03/msg00003.html -# ALARM: Michael Stevens -# - replaces arm.patch with arm_no_packed.patch -# As of GCC-4.7 there is no way to get a reference to a packed ushort. -# Therefore we need to replace the 'ushort &unicode()' with 'ushort *unicodep()' breaking the exsting API - -pkgname=qt3 -pkgver=3.3.8b -pkgrel=7 -epoch=1 -pkgdesc="A cross-platform application and UI framework" -arch=('i686' 'x86_64') -url="http://www.trolltech.com/products/qt/index.html" -license=('GPL') -depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'libxft' - 'libxrandr' 'libmng') -makedepends=('mariadb' 'postgresql' 'unixodbc' 'sqlite' 'mesa') -optdepends=('libmariadbclient: MariaDB driver' - 'postgresql-libs: PostgreSQL driver' - 'unixodbc: ODBC driver') -options=('!docs') -source=(ftp://ftp.qt-project.org/qt/source/qt-x11-free-${pkgver}.tar.gz - qt3-png15.patch qt-copy-kde-patches.tar.bz2 qt-patches.tar.bz2 - eastern_asian_languagues.diff qt-odbc.patch gcc-4.6.patch arm_no_packed.patch - qt-x11-free-3.3.5-makelibshared.patch) -sha1sums=('745def6250dc7f337dbb265e20bf38dcb41fd854' - '3d19510c46016a1a211d97bf8f82b01498b1b33c' - '33418e5b117458af23c72cdbffc0c339bc34bdc4' - '116afa0e737bdf27ea27f9b3653aeb56db9ec151' - '40c7b8f06a21f809ddeb8b5560e9da63ccac6a17' - '1346320614f6f86fbeb10b9fbad721dea29f5b61' - 'd9b83b8f6f9c8bd98d290dc1d0e9913a00b62c3f' - '43565c3b33c5d6f7adb217e4afea49adb48f6c97' - 'e89720eac87c3e925d0efae6a16f334c5159e4f6') - -# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/ -# other qt-patches come from fedora and gentoo - -prepare() { - cd qt-x11-free-${pkgver} - # apply qt patches from kde.org - for i in ../qt-copy-kde-patches/*; do - patch -p0 -i $i - done - # apply other qt patches and one security fix from debian/gentoo - for i in ../qt-patches/*; do - patch -p1 -i $i - done - # fix CJK font/chars select error (FS#11245) - patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff - # fix build problem against new unixODBC - patch -p1 -i "${srcdir}"/qt-odbc.patch - # fix build with gcc 4.6.0 - patch -p1 -i "${srcdir}"/gcc-4.6.patch - patch -p0 -i "${srcdir}"/qt3-png15.patch - # Arch Linux ARM patch - patch -p1 -i "${srcdir}"/qt-x11-free-3.3.5-makelibshared.patch - - patch -p1 -i ${srcdir}/arm_no_packed.patch - - sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++{,-32,-64}/qmake.conf - sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix - sed -i "s|read acceptance|acceptance=yes|" configure -} - -build() { - export QTDIR="${srcdir}"/qt-x11-free-${pkgver} - export PATH=${QTDIR}/bin:${PATH} - export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH} - export QMAKESPEC=$QTDIR/mkspecs/linux-g++ - - if [ "$CARCH" = "x86_64" ]; then - export ARCH="-64" - else unset ARCH - fi - - cd qt-x11-free-${pkgver} - ./configure \ - -prefix /usr \ - -bindir /usr/lib/qt3/bin \ - -headerdir /usr/include/qt3 \ - -plugindir /usr/lib/qt3/plugins \ - -datadir /usr/share/qt3 \ - -translationdir /usr/share/qt3/translations \ - -I/usr/include/mysql -I/usr/include/postgresql/server \ - -platform linux-g++$ARCH \ - -system-zlib \ - -qt-gif \ - -release \ - -shared \ - -sm \ - -nis \ - -thread \ - -stl \ - -system-lib{png,jpeg,mng} \ - -no-g++-exceptions \ - -plugin-sql-{mysql,psql,sqlite,odbc} - - make -} - -package() { - cd qt-x11-free-${pkgver} - make INSTALL_ROOT="${pkgdir}" install - sed -i -e "s|-L${srcdir}/qt-x11-free-${pkgver}/lib ||g" -e "s|${srcdir}/||g" "${pkgdir}"/usr/lib/*.prl - rm -rf "${pkgdir}"/usr/share/qt3/{phrasebooks,templates,translations} - rm -rf "${pkgdir}"/usr/share/qt3/mkspecs/{aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,linux-g++$ARCH/linux-g++$ARCH,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*} - -# install man pages - install -d -m755 "${pkgdir}"/usr/share/man - cp -r "${srcdir}"/qt-x11-free-${pkgver}/doc/man/{man1,man3} "${pkgdir}"/usr/share/man/ - for i in "${pkgdir}"/usr/share/man/man1/*; do - mv $i ${i%.*}-qt3.1 - done - -# Useful symlinks for cmake and configure scripts - install -d "${pkgdir}"/usr/bin - for b in "${pkgdir}"/usr/lib/qt3/bin/*; do - ln -s /usr/lib/qt3/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt3 - done -} diff --git a/extra/qt3/arm_no_packed.patch b/extra/qt3/arm_no_packed.patch deleted file mode 100644 index e68119c3c..000000000 --- a/extra/qt3/arm_no_packed.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- qt-x11-free-3.3.8b/src/tools/qglobal.h -+++ qt-x11-free-3.3.8b/src/tools/qglobal.h -@@ -323,6 +323,13 @@ - # if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 - # define Q_NO_PACKED_REFERENCE - # endif -+# if __GNUC__ == 4 && __GNUC_MINOR__ >= 0 -+# if __GNUC__ == 4 && __GNUC_MINOR__ >= 7 -+# define Q_NO_PACKED_ACCESS -+# else -+# define Q_NO_PACKED_POINTERS -+# endif -+# endif - # endif - # if !defined(__EXCEPTIONS) - # define Q_NO_EXCEPTIONS ---- qt-x11-free-3.3.8b/src/tools/qlocale.cpp -+++ qt-x11-free-3.3.8b/src/tools/qlocale.cpp -@@ -3293,7 +3293,11 @@ QString QLocalePrivate::doubleToString(double d, - - if (zero().unicode() != '0') { - for (uint i = 0; i < digits.length(); ++i) -+#ifdef Q_NO_PACKED_ACCESS -+ *digits.ref(i).unicodep() += zero().unicode() - '0'; -+#else - digits.ref(i).unicode() += zero().unicode() - '0'; -+#endif - } - - bool always_show_decpt = flags & Alternate; ---- qt-x11-free-3.3.8b/src/tools/qstring.cpp -+++ qt-x11-free-3.3.8b/src/tools/qstring.cpp -@@ -1933,7 +1933,11 @@ static QString replaceArgEscapes(const QString &s, const ArgEscapeData &d, int f - - if (field_width > 0) { // left padded - for (uint i = 0; i < pad_chars; ++i) -+#ifdef Q_NO_PACKED_ACCESS -+ *(rc++)->unicodep() = ' '; -+#else - (rc++)->unicode() = ' '; -+#endif - } - - if (locale_arg) { -@@ -1947,7 +1951,11 @@ static QString replaceArgEscapes(const QString &s, const ArgEscapeData &d, int f - - if (field_width < 0) { // right padded - for (uint i = 0; i < pad_chars; ++i) -+#ifdef Q_NO_PACKED_ACCESS -+ *(rc++)->unicodep() = ' '; -+#else - (rc++)->unicode() = ' '; -+#endif - } - - if (++repl_cnt == d.occurrences) { ---- qt-x11-free-3.3.8b/src/tools/qstring.h -+++ qt-x11-free-3.3.8b/src/tools/qstring.h -@@ -199,6 +199,10 @@ public: - ushort unicode() const { return ucs; } - #ifdef Q_NO_PACKED_REFERENCE - ushort &unicode() { return *(&ucs); } -+#elif defined Q_NO_PACKED_POINTERS -+ ushort &unicode() { ushort& tmp = ucs; return tmp; } -+#elif defined Q_NO_PACKED_ACCESS -+ ushort *unicodep() { return &ucs; } - #else - ushort &unicode() { return ucs; } - #endif diff --git a/extra/qt3/eastern_asian_languagues.diff b/extra/qt3/eastern_asian_languagues.diff deleted file mode 100644 index 7c25eef7d..000000000 --- a/extra/qt3/eastern_asian_languagues.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200 -+++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200 -@@ -966,20 +966,22 @@ - - #ifdef Q_WS_X11 - if (script == QFont::Han) { -- // modify script according to locale -- static QFont::Script defaultHan = QFont::UnknownScript; -- if (defaultHan == QFont::UnknownScript) { -- QCString locale = setlocale(LC_ALL, NULL); -- if (locale.contains("ko")) -- defaultHan = QFont::Han_Korean; -- else if (locale.contains("zh_TW") || locale.contains("zh_HK")) -- defaultHan = QFont::Han_TraditionalChinese; -- else if (locale.contains("zh")) -- defaultHan = QFont::Han_SimplifiedChinese; -- else -- defaultHan = QFont::Han_Japanese; -- } -- script = defaultHan; -+ // modify script according to locale -+ static QFont::Script defaultHan; -+ QCString locale = setlocale(LC_ALL, NULL); -+ -+ if (locale.contains("ko")) -+ defaultHan = QFont::Han_Korean; -+ else if (locale.contains("zh_TW") || locale.contains("zh_HK")) -+ defaultHan = QFont::Han_TraditionalChinese; -+ else if (locale.contains("zh")) -+ defaultHan = QFont::Han_SimplifiedChinese; -+ else if (locale.contains("ja")) -+ defaultHan = QFont::Han_Japanese; -+ else -+ defaultHan = QFont::Han; // don't change -+ -+ script = defaultHan; - } - #endif - diff --git a/extra/qt3/gcc-4.6.patch b/extra/qt3/gcc-4.6.patch deleted file mode 100644 index bcbffcea6..000000000 --- a/extra/qt3/gcc-4.6.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h ---- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600 -+++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600 -@@ -49,6 +49,7 @@ - #include "qvaluelist.h" - #endif // QT_H - -+#include - #ifndef QT_NO_STL - #include - #include -diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h ---- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600 -+++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600 -@@ -47,6 +47,7 @@ - #include "qdatastream.h" - #endif // QT_H - -+#include - #ifndef QT_NO_STL - #include - #include -diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h ---- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600 -+++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600 -@@ -45,6 +45,7 @@ - #include "qdatastream.h" - #endif // QT_H - -+#include - #ifndef QT_NO_STL - #include - #endif diff --git a/extra/qt3/qt-copy-kde-patches.tar.bz2 b/extra/qt3/qt-copy-kde-patches.tar.bz2 deleted file mode 100644 index 519f7173ac9cbfc6c082306b382f4c4baf7ca4b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29688 zcmV(&K;geaT4*^jL0KkKStM^jZUDHbf8PK8|7Cyw|NsC0|Nj5~|Nn+C04M+m2m=6E z07zh!ee~~)e3YvC)d#mQ+iM3`z1>!u&D&RN7>BvWUP*GodyU&f)v5=BJ zzT+<4%eP7|uni~x6chykkv>C0En#`upaut&?v?U3YyiJzM4XZQFL&o8#r@%=U`QozdIu!>ez19^ZR>`M%zX zwz=w$U2nd$0C!_{J$u^v?kgSIp7ze#ak1~c-lQJZ-*c^Qy6)P<*z1e4?cBX9ah*N# zPWPW*T8O#ac=xW_z1KVEt1h+e#P5(dJE?OX_5sJqr&@)W^~Lt|``!0_>+9otKEAAL zYwx?d3%a|vJ6+nG%zNSVdNw}!-+O!4Yg_BPPrT@T0*SQt@4MPGHqz^LYwvh+9%)(y z4ZR+{C2x*;`kzzg5}H7O5C9>dCLjb24GLzdvSea4PgC_lpkNWSnlv#Q00L7%0uUfW zNrcfcCzQ=hQ^`H49!SZFqb7zB&<2`l00E!?5(*Lm8iPqQMIWkrNj)+%)i$FP_Nk|- zk*1n7Xf!m*kQy+96F>j}B+^KM1jrLiMyI1hpQOao5l4xpki$(AMuwYFrhoUwWfo@z&=dY)5iJxvFxkk9}C002Mz(NFPy@dSm(>C z{Lm-Uav=W^28xLyLTajk-sB`$k}FER0)1S5pRemnHK&KyrLNn3-MDYc9K==xV9CEMj$X-MU_G!WD$#ae1Fp)sx{3d&3}(+w$I)O z3qsn9WQXA(YljNhZ8igWZCKtgBXCRz+=wxORs%$BDUF#WwWFCF47mc-OcB9|ElkB7 zD?q;I;ed^XnV5|4F^#eIzpMF=N3Rd*elNj~Cudqm9#5Evf~T}tFy0{Ik;bi&6cwX$ zE?mtuCbg!f(pm|EQ)ruI78f8)s^O9a%#CeV2Et20uv8r*qmn5ck`lti3}E4cQOQ-q z8Ig>@SdzJF;T<~Cs8byea#Kx))XRZcs#g_lMS%^CDFTvK7FP*XR<>F(|3m=D!X~bN zvWGbF-+_RLkHCupabyggO}3!N^10+iX|;rB(4@m2nkCR3f2> zT3HDP`h|L9OkMEDL-=f;_aaHN=x{R(=!3XH5Kvh>N@Ti1kP(7ZSXrXbRv8E!?5V6- zT2|VI)Q-r)m6BT-V8j$?J?@zva8x*!dn0;Gm08`ZsVd zC87OPb`_FnQEbgA&Q{Y-*>9fsIaZ|kA*C>x4LtZDx1)blUa*^VbXAn>>AQAsq81F_ z(Lj;m*L{?vcfjdzv!_bytVnsu+4M%}bvlWX$RRRGVObFz-W%t0*VFiFPSAypfNRsNA zJ35OxLhhIoyUU$SPt!bheQf(;aaHq2%?^~sEOj^h=!y)BiiNH?=lf*_d(|?J)c~*&86^tGOK0sQKSd{%`mF0 z(3YA?t?v@?b_481TNSO*O#ZyYp-1RYQLew;82mIjnwQr~(H9r1 z=)E*2KCC!@dyh*y&O$StGu;6Q=c`C$$HCTMEkcu(`nJwLVX`!lKBPu=K)vzYpN{ z-wUrRRfxht#mbzQ5e~dfeT&HmWtCMhJ=j;H9ndl7!kN}^U_*O%KYmq=&iKK(Nw|N? z8Z^w66Xz=B6SnZ+aoTR)@~AcI^l5o$+H(-87xXVU zRPt^}iYiThQ6Ow{07eP_(~HBa=j!^nl5EQv&n=Aiknl%c3rA$^zC1gvo94V(boSb> z2b>&LIG)0%`AG7F#g{?V@Z$U zJ)VkdO?xL{5SZuOOn)@>&mF4-7f|v`Y(t7lVV5vEV8?E%qivyFAz5vsm4b2HjZ98Y zRJCxco^A8*z3_fZ7&A70(aemGaXFp(?W z?1}1%>%35hhqur^SM&8BcSrd@r?>i#-64-OQO9CQhqetUozHp8GxN~;db_-R*S$l{ zJ|oXJ`eFUQirXSl_%)x*UH@EE*rkLtT~1u$O&OIaCU;bMo@zX&DUF?w8WRy?sR>+z z%;IUEaru06>+aP>kt<>Gfx&)2eqcK;zPAednrtwA%Dmd443xY>_7Weeknnd!AAR0_ zrQ^jYX<3JiEW_%&*Tpx**w6+9-JOyWg8J8xdB8T#=w?UvqT=xCcw=MQRjP54lb1s` zSA^-4x>KbXiFTiEC;4<<+Ep!MtlKW~ zsoZcvmvL-}Xb$AkrBdrJAAeobD8DyvO3v7bw)kny;@$OsV#gYShs_Y|O-+oA?#$@? zkW`DOD19mVUc(1{%F&1nO(Y>RCDfy{9?~DL_qzRmP>-mRq4Z-!sW_cLH`P^dQRznb z-P_RNCEsm6r1ltH3I$1u@_kF}mD;0E>2q=tt}e~iFX|Z2WCM?jwGm$a6px6i$;f`E z2_qis{Wm~AmLewfLI}c16hT9Q5Rn07iUNcPq>2(FAdFZ-ECMV6V59{W6SbdBY$X}` z$t2=|yIQy9*2T`huU4hy@A`M3VwaBCo#Qs%w^{msH#*j|!F)SCORulDs=#yM*k*3Y zfStD2UL%K((VPB<>Q$)z9y{uGw)CPrFWh6TW8H}M^Um+(HETVOF8~G@;6?%pzazF% z5S2AVRRpLY1(31&Tq36)D~H7iFA@ZYqH%VqF9abYu$C&ZVj{@Fhh35uEJcVQ2&0W6 z5wtC>vRhkPS#1?$MYfb`v1EdRqP3|JDpD{;(W_*NEHRUU7_5lIRMRX*MJp^BDpSao zcTlimI!c6LRaJ{9sTmj}SwLW*F%>OZ$!wsm7cn_z*s%!BPh{NyP=M1s5SYYYr@ssiqNRQW%irFf5ExH@LQj zR2e{70q0l=aUiP&0~tvf0IHI~0 zLu$zNM8$`A=tTkC$^ia9en5Ir&Hiu`-@};Y*-G_G2Dy-P0%y}(TTZ7K)YO>ApyG)JwxDDBl?k4T_4d?gi=)4`g_N=ymZt+Rvj9N4F;14<>b)+!DnAO zvntfO{)1L((Az4m1bw-&L}W6xZKZjYy}wp?PSIliD6cI@@ck%T`u{>vX<$>no`X(wNG7I=X>_QqA#{M{IRgzaP12FyYIAXwsRMv+oR8^qg=JD>&Gc0 zL5*or>Y8*pVT4{)*!=1#IhRt~qJ=&6RRT*>&l{`Go2*7!oPwce8!HVu{PC_$c`|-F zBs9T&H1*4>PTWV79V8bEyiEYp^*+6!E9UYVvt_+8BdGAeL3(Hi=Gw2iab2N-(+Cb9 z^sRDIz;?e4fX-|jKZaxQ1FQK0>~LmCJiX4q=st&c$=K9Pc$2x2e0I_cuD8BjJ>Xh~50IH*X@6;Q3)mf?^ebs;LsStK04q@*w>u zY17bt>?}1Y*b=D=uTzH2?#cn(2t_htj3T}rGtK4AKb2jt+u&IKwM z*GZ~aZ@HSmdmG!*!}i3aLHkE1o`-FjUcZ@v-Ene^1>VW`u9wu=pHW1mwqk^9;(J8{(QjIn0$7{mWFAB_-VxA6J5Dnj2J zpInZ3xl>OYFp%L~Lt408!@9uZf34$$@=C=4h5gmSW&UTAQKLd^IS8I_Uw=&DbCdYG zOR4`y)A+F7*7IzKcgRJh-!>XQ21KLx>eT|tXKHDf{vr5jnLm(Jb_KF*h^Bqm#%+uX z-mRZUvU8lFG}o<`KA4plX{%LOP5CcQ{lr9lowvRzqI2aIv18=%-Msqt>*a_1v)Q~U zijM&59N{4sn1!!C{M(&lMH?K^>|Ko76^ORe8)ZBjFibKVpa!{!26Ks@hfH5z3+v1ou7fq$R6(h5Um6-4%IPwOjLp2S zmb=}#sEOZ9>5`!jD1IkQA-mjt#bM#6u_RM29n(cX#Bp~eHB^(+i7bmbLJm}fouM3K zc@{8DX9F-lq{A7rYi%tO^GG(valk7m9}kDei4*DL-}L<*)-psCBlO#Bs8-`Sm6w61 zF4;|GVx1-ZPhgr-(lR~Rv2qD63^iFDQr6qe?3o4yWqRlZT zBhTymq4&sMdEC)IXX9j>?F`TDzbNCxjDCAY&zEg0#l?>vd6MvpJU6X;4=2k-zd~g9 zF5;KbfFy5@uk`rlr3&1qc-i<`LQGzHpJ&0uybcQn877!T6hE|z<0u5eLqkL`KFShIiUUSE{pHn%wOF@SRWMBZp&(3O zyRQm^F@vn``JL??-NRuSxcD1S@F59I+RGo*2#r~54)K-6CkE9 z*BZU_aSo%6S^HgHIo*BM+l?-9|fti-;)oc4HE&dmLj(cBsiJ}<|Iz2-I3$Kc9J z&D1xDh$_gs&tE%zIHA#zmO!#_+*)qgroJODGnZ~5%>r*o>>y0ZnH%uFx!fn6wdvW| zE>U7+avda+6D)!qj?oAqtJY6rzo}+IF5K!RSiOzy8140yd@X$%Y-EPA{AX9A)*sft z2!o`_B^GxB-20%;#j4{d|I?uExg*=|Rh9mh2~l5B2{DG zQS7NxK3({o@+*=>-$WkaOr=X#u;u+TD!l87UwdR@duaC6S%q1y-4=4sRz30iAu%Wz z53V&uN>TUiqR%{j|ETIawMq6v_eA3_o<*{X_+z5j(Nd88O6gvxgG!d2*2)}o-x}V6 zDmaCc$GSldSIB$DuhH!Am3yBNTWlA8SKEs${5n&3?SBXCQ8|3R-W$#Jk{OZWs=(&t zcZ0nR(ly_yE6UcV%GQM2<EaUFJ!lhMquxr9Lb1Ihj*)bWl zVJp0|^gT3u+8$p&w0Cw+xS3cE~kor$3GTI-7FVC?l`m z2$<(BTMrca{xI0TEgB%YVN$XluAP&j)k=8TnrduMvX%B#V^N$E9`6l0KW(K@!QpRz zm)(6jbp@5^YP)@kt$p}~)>cC{vu1hDo>YKkB3B=pDx!P_Di{ldn|Bkt+b}#RcOt!+ z@r+JcrI)^s7Uikbv3I0rBIz4Oi&Dg-r=B;51VV#?n-;R5elLjr%W8cu3?gf>R$Z#thx?HGCKX_M!1Jqlg7-rD$D^|lD<>ZO=n){jTTvfljF zz`c9&r=y06m6z5>4A3`H&Rp+=-AKi{$Ea5q%%nAtkfTv1tB=^-^#`q=e`XAK=jArt z@Rp2j%?g?eY@V{;R+#Fut$Ly4ccARsouJyz><=^mpotk~)5PPiU#CPHO*-LP?B85B zD$&1t_(o8%X>BEDn7r#s|H1}eZyHY9OAb2`7}*_htnJGiYWCCxO=s5MQG>PPMWqJK zzcvWlg`Hk7DpoLUhfE^O$C9s;*=zK8bvI_&Ga5HPJ1ep-mgGOi&8Fr-K+5|n9ny}g zJfk>i>Wt_p)eWy1FGX-Bj*?M^r|Md~{j`NSHmVoLP#HQEVh_m{TPG|;E@-I-cX@cJ zY@d(meYoNeXOrg2-DmQyc5XagXj<(BB;Pl5gl_D3C@51zuC45=pfvK>15ZXpq&l;7 zX8ib?;Z;i*L$rNcW0<~5v(`7l*|SOx=%ioqQ(8d{+|i5{&v$2KrF%JK#8#YTw<&85 z72Oi8YORxuOLLThXx-(B+YQtT6*Sw?0%W(qZ8Xg;-b3N#pwD8q+z(_t1zm?|uGhQD zQXsy6-iI3#>)82l@LgV9J4LqFZ5Az+)p|W7Z!MlOUhnDWyH1oHlp3SevB|uD&*2TN zy_2Xp%hsco7<-Y-Ox^B2-wL(F`?gt*y>P`gjHd-^j00NT*5LEqo+Ys)WGC1vO}x|; z>P}yV6Hu=lt)16dZF1u}po_O#rk}!><|Uad#xT#wMr^D5^3%wqX-HgKc17X|*&|*@ zrko>`8nJ9Bcx| z=ve$BW@dY9-S_Xus-POI_;jy>@{NumO?Mqx^uz? zTd=P2^J9McA-NK&4@{YKMrcAJ(_#b}xdmS(b#*MD<&Pa2=NLuU$Lh!7#HPDTwySw{ zLr$jDXl;@ki~wz@W+7^|wC6Izf4c81BpEhMghX#l{9bBVVVf&={59K1%;Q_JBDV}y zSId`%VR*wuA+K$QX>Ea}Xb47onolk;t;msEHLd?kT*!pJFNLLi-Wq)>5KY-$(Jga( zG21eS;r-L-F`8a&?h-j^4MGeIvR067s1gkM;f88QS87jPVd}(jlCVV zq&0T6_c(ZXP+N9rWn!WVD#cU9t=wv*m)Up>^u9xuyLg;M$FqHO)083I67HI%T}H~= zgPzEVh%IXP(@5)k(NkG$_UQgq7-OKAmWJ1W&TU z#crH6-PBThC--ioG>{D&0^t(MlGpRT&74QAK=NOPudzVSr9g=t@~G5WycOObME7#ncN2>G?J?V zFD<#XyNpAl)jA_+`0X7&YwNBoiL^rI>qJG`=r2~o?{=FOCUL#Xe6NFZ<$Lh2@#V|v z+Q#`_9g6FeQ{}4eN2QQAQ>Wg~j9*j5 z&Nh8~_^Z0!vj&Kjr+RpYn0YyBczoezCT|?Am3&?3RW&Q8Xf9BEl_{t#jj?)Y?kX!Y zV@O8It1UgK>@?@f-iEE8jnByRZ>l?U#x%*{GhUiiIKWj#BhC)^=#IJWgVmSU2=lub zwwYfHA#|g*;#=&T-nChVGJ#X+GCX*AJG;BW>6LH}1iAZlMG9Ja>Z#vB(Pb-4cw4Hg zORP+elWVH@K52lFmHCOibFv)En$7Gprdh9M+m8TN&P>fBG3v(5Dc3_jy@@9$Q+|%< z&A7SgD)($1<_y9XHag_+!s<)T1(~X*o9?{RZu+a(^DPTdNE$9zmiZc!5SyMUE~S8 zLAy!uVWCxpU$O)`y*dC?W}IWLm~bL8Yxp1+11M7y__MVA-JfA>{Oa4~Cw3_Q=49 zLLkB<^hHW!_z_ANp+!(ZfWdxZKk8ys5$PZX>g8$jYTbl<+<80|Hl6=_0jAHGU%IwL zB4VE2aOf9)53ct3%)yc*d-OvxNhIU9&vj?wbU5{q{Y5Qf2{81<>R6%_56FvmwK3BT zL*GsI+U`(bZ^O;W4-kF61;cJz^*3))tlU`<-<_Z&=<8?$W@bzr8J(r~Y&gz5G^)uv zobfYU;ecRpLu+>7E}?>A23p3|ur*iWl46Kyf(v_I8Y2LapJoj^)8w{^kG`Tg<7UNm zeWV6o$()L6#}kwt&56o+GdE=-d0@`oGpo0LwTF3SPLpx8QSukaCgNVqNYb5DEyUtH zD+Z0yjtph+k0`iFzcQjAypCy>(&F=GEXK8jp(jB9kPr?jU7!NSG7Pbe5#_nW}$0ABn zD83?xXC)sHNOlblNZ3x-=EVteHh5;~(pYIET(tU0*iM71oVOfCUl(_o)ncDw`f||- zrPj?7{A+CCB_q#8ie%~<@gWEavnhb1_WSC zga>)3Poi0w!QkvS&6Ai}xG&H>X;01gCkz3Ww=vxT#0zC#9~ZL8mFU(1q1iyxS+B3F z_oT)^e_Q=3rBorJn%_ZOhiv#n)~cE6kl6;H1l)JigNXN_0xZUfL2XBEs;xV zDhe)h%sQ^KXA_!Z#rM0c-H5BVrR>mmJ8IbXGWAfoO=c!eJ-MFxORGoUwt36TI@1y7 zMOb)K4XHc2tn6mWk8@Etvg(D(cd%F(u~R%YROE$8q!t37nT23}XM-_3ZFdn$!m6hv z?KFK|S}=D=_V(*XCi1m}RZ?mtJ?0Mc%6X5tzD{A)2XP4k%po4XNQU&q>52rJ3xekP zIY^`&8A!+}1=JzNUEAR@587atuxKIjxSF~$#mDSYV+R;&mhaKJ6Erl+=K|7Ei5kRa z1RzX|LEEqUAN82okIU@q4|k7HAZh*o;r>74(Kk--DA9V@az6lq2#FxXA{vEm7BB^*kQl}U1%y>PUdMOB z&7I46G-=4rvo_e@G9eW;1ECYkUU^UR6%|Pdf^VbI^`6_Y*LI(O&fg!7g$&uWt!y`^ zuDXF%1%f@2PgVZ9h5A$=Lf2bpvE^|uKybiAjrXWK2WKfkbCo0j)gP`MIFTgvrkNFQ>pE*V&}gqa_W6c zUU)-3Ir3Ji(<)qPmu&LJHBaqVQjqEBk7f8+!)roSuwMX@W;5obS2~BfS|Y`po;mxW z)7?v={Z4wrA-qH*?e)KqzF*&~ShPd0v+pSR@tD0yHz8v5`LpIQ?}YG`)-2^qmW<2V zUa+lEVa$_j#a45Y*t6#sgXA-9Yf)kAIi#;u4*JwSb17!_m$hcaP3@S@ZlujZiMDKF zGdY*eFBhD^vz2;`-D5QbPAeF-p7S=nT~n-D_?U}lD=P*RJXAx}yyCBlCarAM)!#FP zb2FI5@0<^4wqnjDoZC3K_;|K*?&5`YeASg%>Q&w(s=eH?g2%<*>ODtqIg(DoJN>TN zAm{5Jd=*}mIR-SvsJ4hi5)p$ef%&-`3O&*dz%ht^$RTXL+ffg^$`IesdI0kY(50#6 zOaU06Xu`og-EG6fm>?{gU=(BxG9H0c_e7vr7>0r-c5P&G?%B^HEV6(^1pNJ<4CChH z@egkh-h6?Z0Ox>six>fvI>3XgJxzqKxMiA+IAr!!+bb&tfcs{#YcY?sCdDV!3dPuY zk;_2{W-4hq81_PJDvq{9xtZ3>d&1`p17WuYj?I+1C9^Gkp>YisDo$0eBX-8+v_jAv z0T+{Lq}py2M20z8kSQOCl2cBQ?H4WpdNx)w`OetX(;n-DJ<+2z!e%W24OGP5G1d+y zkPTm#bOD1bPM?oHsoUFEW;D(dF>GbfFx=;BSpdEIY!cI_Y;O~@P-*rUn zt`K?bkH5CaRZwQlUNv>)-`&LBa@aSr-&ikikX@Y&wYXz+m#A>6SAcK1#s z!O}y8pt3BbN=oo>;^~`UXmftS^>d)O>51TDZ2{FOYB+|lrJd}up zO++VnceNEtkzWsYBNa{i0E`ro+;J^txseIdT|?S>obHU&4Gh_yS}VQ^bJUyiH^8x7 z-SzCfw?;Pamz3z_BtXX-fRM>BxfI;SxaxyGNta#rXIzAvCS300xGd~%lx$9?Dj6o+ zz&pdba>dcS7e$MLXKHFf&+Q){k}-gb--yVdF@53zV2FJ2{GNOY0}xO~A|eP)d}RR5 zR@<4EFelx$wz2S7(;0Ow%rZRdMbihCVT{T39*d04XA+|_Sj%yjN0$*^9&(5urtn1m zxD<&K#3=eC-^f(2*rWCwweDn{PcM2rO+QRKEo6o1hQ)d$npt7B+RxzX!k%a z5FVgN93_x)62$}pd-{7F+8lIrEPs6O^OnGHZYIkGgR5}m9u8gZ>#?`mWA%6y3e7-s$iHs`&a#0+?a2HJjG z@}7?h6h9=d&M_RbnOpCb;knZA+cw!GkT$FZQbm$0t3$$MSj0UPDus9nYmX>pda--E1RA?v_Y>P;+cAmfR3xm! zHe&G3fjc=3z9Q74XW3e&?0YfA*^TZwk-9SsXh2k$1CY!lFS)k^Ic zs5-H#4I{iTG=xFFAR-psf{r*-PB})XIeMEjekb?Cn;>W%ivef7-qp48zWdhgq#!8C zXJf`DgeFa&hM2QraXB<;8yAjtW78seLmocdJvi)S=3Ls@Ng)d%@BCC@xen>qVTw$5 zII0gREo*IM_erP#!g2d~AkEszm~N2A9Z|ywy9onJR0MODoYS7J-4rtDa`r3jlfell zI;l1Ukw;<9ZZm>m1~_Geu(eNH^x-;Fa`}0i+S&a=n)UF#uf@4u2=%c4y~ST)gzekJ z@|_(B#Df7O6~0%MzSbnl4H*^d^_=#L<8}es-knsM2dsvpT6Vec_TwyN#^l_v*%;3D zc6Uj6ZxL-+(>U4mXvQ+`gj!fk+{VS^46nOF!AlFN0?{O$r0~$s(Fc~@Se8zCU;enC zMfvx@Bi+C#%5jvhkM9kB^yr7=veiVmwg9X`!cH zXU6OCvW&Y}6B&dhjTX9??!dQP_S|4qvp;q>rn58DWwR8i zgsDP`E{C+>b68Tq&f~e9<5KyU!AU3U*RHD%RW9j1=H@hA_KfQarexx+X4j`T7-|@5 zxthUk`<}PEZ#?e;IKJE0OJ76aNh_iFn2!xtE$wc1h0cE-}}U z2G081mYL$*>~=3}B~Nh0GDy-d>2_~=8anNFa{7`i^D)jy;E^U`3nq1Hv386cyRc@{ z)yx*PiHOBc#66Hh4BH|>4+=0a+SQSqC3JH-9Vp+I8>4FL%R4)7jp`eCi_C1KRg)&2 zCaR+rM$T(&M>o#x+i1j!fg#L0Z4`&iE%>{_i$-n*uZPO07DDdOBq+IL!P04y`~&1W z9PV+fO3z*_9J=>I=DPH%TPEYU8G{fZFzk>Z4x$FwO3G~a)KH>f-D3H)L))~lS?cO= zl*Dk!iQTzWbIiq_so#4o^_Ru4l@r$it z$f~Q$tG$e?-YRC%%CGG%4A{Gl`)`f6u9sjj9bA3~vW^!k?Q)P((>1PEXHrD71;u>4 zQ`#w`tU8{2LvZ59-#FFwlw>P(8!T9t@Gd;Cgk0lmTikQ+fFm07}WHbgk3X&EuS1f55 zJBt}PRJIlOmLh1SOd8D{e^lq`@bq!FM0DF?ID}hU(w|1FefeEuNoPrKEz^C~nVh|2 z9Ir%T*djS7$=}XzV$SJ<-)juAcFFMf=TX4-1)c|`#5>w(QlOR@b~^YJ-FED*u$C$# zs(DeIR#`-toA&IMx5m;v^{hF*UN$zto!-d7h>JVo>k^+)TUMp#PwUN=H;1+}ISu6k zZ^mFn#bsrMw+G?;2h;dFkpe;qAuL>~vzTkP9~YDG$V~_kiROfZ6e9+GIaM>?r&bYW z{1{n$Jx~-8X^(F0ky*?8qV*z?p^yF&5p|AS}e%?m1v@D zRf{r)r?gmAC^YxBhJhnMoJp0steTTs$>~R9_rc00;D{hdsSVtM)m6}{ay-)$!T;d3 z?J|1*#MkSxL!y*i;MuvmVXo+D`o@ltFW*HrTyzOt(+hTUKF%ypC$OQHUtDmBfV1hU z0mV!>pl~y$X}(aE`{2dGNg+Gx@6`>$J0j~w@qqDHuKCZS-+N&@yYIBix?)i9jkfL9 zyKxYXHbo^cPZkoAY32zAoj1T(J{da>nh3pLHz}#3*3`>l{iQ@NT?lEI`y zM;$E)+OSPmRxqwFv1U*~#eZtS7KqlZS(5~6p2=^>^-Rse1ak3volzKSb7HL|-Ai>H z(;0;nH;&2t)FwTcs2je#;4+2UZ!-)=)#sUheIc=#^K#WCYIlSi3##AJx~vd~Cqglj zBqLZB&AUabo`M5niSc&926l~4qN}?s>a5zYT-A$R2W{xF4d%TEL%tdje#5U+aTE2( z@ckk04-1yonNEk&+nkt(X)y{5;rerPXP&2;{jelzFVNDz?LD+2@Zo>#M$A( ziad3OC0g4BBBsI}o&0yFv-BIE5r2K#=cd)ko5WrXmw0m9Ow}LHvm#iWB&G`oAc8SMm)*f^^Qp55GB3+7}S7pdj16 zM#9krVW=Qba!;$?onmdWqDBfLeiF`c%+{3@L4$*J%dL!#ja}!k2Ta3`oakM^5dezj~Pmg{tX5M1z2AedIu`9++dX86NHJQz%R{*GtW#7ujbbHUh=kE;gd zPKR*L&CuZ{K5#nPf#2mgH$97{BRA)4^Lx6+J`t1{ZiPHi5*oh9cOjvkhe96S-bt5# zo5D#TSB#@e9EAZ<1B1zyc5&`TiH{0pZ!NAgpg@Fp`DnQG(rSM^q~6# zmhKE6b7;^kz|EH#?oG3K?*_wnRLWO9stRQZ_ zvm~LuNHS;i4L6q-Dd8Tjlg|#8I}xOAuqhw_%#TaI*j|z$-*GS1DpbBK8u#(U=N;%j zA!V{m(o8_O=)*b$4ujVK&FD9`F?tVRnU7_Xu&sl*6n)+}UVvr!W*aLT03b36X z?k69AhPE@SN^XgHK{fJP_9P=p$Q>Y+8zdNea<`zt3n8##9r8XI?wy)wW52)yJ{l;rp{^NGy_&)nPMhbL;U&7-WHrrbz#mQR$o(v1p- z7JYV$gC?ww!+mH6EFN}2DB%5g6DC#-eIvVA+{_uTpx8Tyi4txM@=3FC=x8%#ZE|;E za|6ai?a}!GYp7%i+aldbgODYYpUxNT;GlK)#CzeGu!fPyPgFj5rg-Ed+nn3S9R%-a z=$OBd>$z*4(DA_M(CtgQzHW{lv*xgj5#MTiDp-Aq*^J!}JKia$Zu`n^Z8A$obV4mdU#Gw1p{~~ZQusTJ$ZSHZfkOCb|@Z`@O5dpV8r?`n*-c# zN)7%d#ch6D8{`MQfdq|J7c3D7i{s@E@L{+Ibb6m*H4V`uejzA6co_ks6?;*srn!U$2ZSD!_LS-Bm7qW9SNbI4)%kmVQVVfMv89b(@9&y(@EH6)P- z1O$XY(hgAj0wJsoRxRelL;WqN21W+=vk_zwnS|EcC6r?f6nyPb%LLAUBD+t0Vvrlq# zBlv;=#41PYCV>E%4N?I4>C#|%ue?Xm`a#c-&H)dyl(b{w>{fV8^Z`LLNHB7De6O&h zF+;8DV5;)DmOBG`tutLprBIgw7@khoc~1!#usm=p>U@6!c%OHluBJEp3mGv&7T!Uc zT@207qvf|n!$h|h;bhtf)SD3W2=_$#J}-dE-k|r`$r#8S#)3eSNR(J%2_y(eg8na0 z9}e&U`k%ylkbO?G+idPJBsr8YXmjxPlY`Tkbr(~mPSt7K@P-FTobU{d-^#v{XIOJO z&rlL>{9C|i4_^0L8^O+qky9Ij17bh}pW9%*qz%=w4y899dz<7rw0MR7ESVf}YD481 zzSxd2;(2au-6}hZnFic5+e)@0iRDO>=#jnOH8SZ+{#n zFerM@-8`M6-YRcTlZaeLz-z{N)8xjVW?19LuPb!UnEChZL4iE`e8!z$G4q~|t>F2* zjD(8FBgDR`;C%slFRtG=qPpR!9grR5YzCyx{(x|iLrC!UcWwb%0>nl!2$3$N@@wVK zPUqKri7-x>55g7q29?#~v?>HDOc#lc=}Mo02-0bmu9gf0%w6@!_(4(s!Y7<@o-x%p z9HPA^odLR814T{0M*^-x;Rog$9D*KTE|L6)(3TD7?a-o#!9@q|^;>@z`L;2Kxwifi zY|~UaZ}xy@6OLt;c5Qr-`fk+TFNQo-qY{YZ&0YL#hgvnh?Z=jPt|Le@c)gvuW>y$1 zGC6CCHeSUAu$HtcmxH@Ff*nfxz_$m^Z_$?k#QI|kikQbq$u zu3+5$KvzmbFx&hiVCCocCQzZ@h zM8fD>C5odjQOrjXGrfJ~%~`0xtfap<{S}KBBOKrGs43Nn;WMFAM@L7>e zHMtVDN%pYX7eFP?0fPttg#)*D3xsl8T6k3#Dri8W$iPfc=7;VuAayCgWwx#H1A;Rf zYXVImuE=UFstxF$V2|l-EhTM-%$a9nNRQ4k3&7~skH2w&RKhf2qCLv+hJYi^C>mgr zBFV`Oaw#`KAMIP;@f<@RfVDymCPUN>b1n1IwY8Zp)qoS{i1i#SO*@ z2v|)!QjNrR3Pfut1kRJ*=B~ww_T9?$I<4Kv&bp_3IuuT`L56FwaF%T*V!{YY@R~IG zYk)H34>>k`UG9>l*X<*&tI-GzQ2RDq?sU@7AQQ01QQdv=T28cGi??d!L zvU-a`V)y@vr%luBRysgqd&&C0-KjV@`M1P#EAI*f?b)a{s-j5`5M^XDA8`Xw6BwZW z?-Ikw1Lg>H?7_(ji6fTPtAM}KqxgTy*CFG{Eol6Su*X&Q{tn+f;&YvV$Q&Ylziz;D zXK?qmOA?DpBz_6Tbe`pjNKpV-j2|JHJrbfjcON6_|TyBo%rFBByNcU_;?yKp%&v_l?KftG=lW9md+Ihoa54vY=zICtPcdDL=vC`=`VAd;=jrTzSCl zdw}B*q1-2&M^*QdB&e|+nTcKiQ4O-KFBF2RL8$X6+mGc z#|T+WV<2Ai-Wl_7BV@04!@hi10{1TuR{N}aSZS{T1 zBE#wT)QQdmIh&!o3C~=S@4H7yVGS`o^AE$dmX<@ZCcztD+hf~n{Qk0KmCtu)<+cpy zfa0$NRQMt?H$Mt1mT4)O8ML}h!7<#JRZrGx4hvq2=keVJM(1a?$QU7+&`?1)&!QpP z3E!gx$jPYe1qv)Z_#PmGB7Y}YaXThqq6#{11}6^&_ufR33_JaRq)~42ZoX|SyA2mO zxKB+AW#2_)xi$FVKZE8t8ZONEx0f9kf+oog)Fh&u(jPXYYL ziw>uPd#KTk55H)lA~;i+aVCTM%=&$l*bcY>d})|pA8Zc3{_7_KR4TzMYIt)ov;>4Z zIFpTeP<0@T(yDCWX`#( zF}PuSG)*C0Y+8z@vkio<;jk@TtwA*;rrCGRK+T<$S(GY*hSozv3K&C%c>zoqUv$J( ztRa{rb_zLwj7+3)34Q3Wx9vLvoQzzLs~V_)6zptDjRLoWsrQZh>(O4h-jRv~1y)>}_zcbS^rhPGM?GF!`@&<6pu9x6ys-&fC*z z*ItvN>FnGAxYhz8a^7~H>FqZaz{zw7Hb@AaDO`kyV7&$dbhl5Q*o%{?6K{%y@-~;i zHvZDM9adgM803fhdpy2SCh|Ut|NjKJE6>N?$(7w zViHGfi2Pi!Y)j-%R0Pky#7*YjoV{o)NX56 zZ)angk|cNMCA(nU!>Mu?Jwfr}?7Olt9I4g1i5)X1G$n?+4-O8MviEB=s(6{K9Zj*z z88BkS&O0++*%o{9n_Ycw<}i(HUCv}?ad~ULa>*hgi`l}8O-Z@a7ZMWv(&+hrq(Vis_lr4srz4KY|(MX#XAs+Op`0(0Ks;!bKy}y zwMP$$#;T0h}63Tjt5GrYvj=3#Js>bf*xQ4b8CvC5DJI8#I%I z%`a$M%qnM0UyLOYg*d#M7;?@z4@^UbzONdh?WbH$%5gh}`!h&93>he8Y*`j}vuj*x zug_yMX|^-g-#y;Q8`ym0J#YyJuH=+(BAX6EJFn4{DJ-z75oU*12dxcmyo_2VD79WN z&`cMYU`dZH$r!5)bo`&&7i}{LW5^Y@!hxvW^dZ_-u&-&p{(@^a%n~J-L?i+*@R|j8 z2T8P>vWWNI3ajA5mRLPxY?+IgWDYYyoUWlH;?iz!)n^rqtvYYw-fVzqVrYdE1kM@8 zXl9<)<1o&PGZvsO53(4sNeV3^P%+{LX>K=_D7lePWsESl2W7w`jN9_5mi0OF9Y_nZ zg2WSa;N&F-9USq%D8#dkxQMa?01(YZj${pP3=qSXjp?14k=fN>ruCvjGFkv1vIgSt z2)n23n^JzFaIga+Zb~9iwamB)3fka(U+l%kV!O4L`~k63fQL?p3k#-4`h#ZnhSsaq zJ(7nToRmP)X!sRBFa-b0K2uvx=h33ez|<{4s4cOXf6oV7$L3X zrVFtX0#Ju%2g_x>zLTETEuiy*Ys?6(K&r*V(0QIRoZey=twx`jtyP!C z&Y|+^ZNqu3uWaE?u9KD=Gh|qaaqryl4BWMWVc+wWwN^&RtDqac-E>))aOPj31?&@1 zFf=rcCwD76$HOBlza1GtTS}56`l@eRwgBvmiXqsOiU4xnNkG`*l&WOfhoC&9kc+Mq z%`&#|F7h~UPwET;L?Hq|fMmEMxN_|cq9*|;*>c4Va1e@tXe2O}?xv3?Dg_ubudHpj zL?RG^LIJp$6f6ikET4v^31saHT#Ll4wB~iY#WbDJWJ#j+!F85u~gIf#gk$MP^|E zRPX~Rgixv^?W`TfcrP%MEFqS3XgN7Wmr9ZdcUgc8Rty#*2tiUZFa(fMBv}wV-fI^3 ze)t^VLT$wHrnTBdj1z}tFE4Ic1x{v@#);)XuiCGNDZnK@Q|h`ZB7;Z5BkQCMy+f-tRiaMhkrK z$0n`AScWs|#3YcQFnM=3;`4hPk}RcveH728{$W;amxH+)b}Yk0U&TPFbC}=0JVICynYK)@Z(t z*WytsgJ6#tu5D)6IlHLA*^OioSg~YD026Xq;?006Oq1C9h(R`#(9TOm)%0Dy>O3(= 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 a -+#include - - - #ifdef Q_OS_TEMP -@@ -123,9 +124,24 @@ void setup_qt( QImage& image, png_struct - png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, - 0, 0, 0); - -+ png_colorp info_ptr_palette = NULL; -+ int info_ptr_num_palette = 0; -+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { -+ png_get_PLTE(png_ptr, info_ptr, &info_ptr_palette, &info_ptr_num_palette); -+ } -+ -+ png_bytep info_ptr_trans_alpha = NULL; -+ int info_ptr_num_trans = 0; -+ png_color_16p info_ptr_trans_color = NULL; -+ -+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { -+ png_get_tRNS(png_ptr, info_ptr, &info_ptr_trans_alpha, &info_ptr_num_trans, &info_ptr_trans_color); -+ } -+ -+ - if ( color_type == PNG_COLOR_TYPE_GRAY ) { - // Black & White or 8-bit grayscale -- if ( bit_depth == 1 && info_ptr->channels == 1 ) { -+ if ( bit_depth == 1 && png_get_channels(png_ptr, info_ptr) == 1 ) { - png_set_invert_mono( png_ptr ); - png_read_update_info( png_ptr, info_ptr ); - if (!image.create( width, height, 1, 2, QImage::BigEndian )) -@@ -159,7 +175,7 @@ void setup_qt( QImage& image, png_struct - image.setColor( i, qRgba(c,c,c,0xff) ); - } - if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) { -- const int g = info_ptr->trans_values.gray; -+ const int g = info_ptr_trans_color->gray; - if (g < ncols) { - image.setAlphaBuffer(TRUE); - image.setColor(g, image.color(g) & RGB_MASK); -@@ -168,7 +184,7 @@ void setup_qt( QImage& image, png_struct - } - } else if ( color_type == PNG_COLOR_TYPE_PALETTE - && png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE) -- && info_ptr->num_palette <= 256 ) -+ && info_ptr_num_palette <= 256 ) - { - // 1-bit and 8-bit color - if ( bit_depth != 1 ) -@@ -176,28 +192,28 @@ void setup_qt( QImage& image, png_struct - png_read_update_info( png_ptr, info_ptr ); - png_get_IHDR(png_ptr, info_ptr, - &width, &height, &bit_depth, &color_type, 0, 0, 0); -- if (!image.create(width, height, bit_depth, info_ptr->num_palette, -+ if (!image.create(width, height, bit_depth, info_ptr_num_palette, - QImage::BigEndian)) - return; - int i = 0; - if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) { - image.setAlphaBuffer( TRUE ); -- while ( i < info_ptr->num_trans ) { -+ while ( i < info_ptr_num_trans ) { - image.setColor(i, qRgba( -- info_ptr->palette[i].red, -- info_ptr->palette[i].green, -- info_ptr->palette[i].blue, -- info_ptr->trans[i] -+ info_ptr_palette[i].red, -+ info_ptr_palette[i].green, -+ info_ptr_palette[i].blue, -+ info_ptr_trans_alpha[i] - ) - ); - i++; - } - } -- while ( i < info_ptr->num_palette ) { -+ while ( i < info_ptr_num_palette ) { - image.setColor(i, qRgba( -- info_ptr->palette[i].red, -- info_ptr->palette[i].green, -- info_ptr->palette[i].blue, -+ info_ptr_palette[i].red, -+ info_ptr_palette[i].green, -+ info_ptr_palette[i].blue, - 0xff - ) - ); -@@ -284,7 +300,7 @@ void read_png_image(QImageIO* iio) - return; - } - -- if (setjmp(png_ptr->jmpbuf)) { -+ if (setjmp(png_jmpbuf(png_ptr))) { - png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); - iio->setStatus(-4); - return; -@@ -469,7 +485,7 @@ bool QPNGImageWriter::writeImage(const Q - return FALSE; - } - -- if (setjmp(png_ptr->jmpbuf)) { -+ if (setjmp(png_jmpbuf(png_ptr))) { - png_destroy_write_struct(&png_ptr, &info_ptr); - return FALSE; - } -@@ -491,10 +507,16 @@ bool QPNGImageWriter::writeImage(const Q - - png_set_write_fn(png_ptr, (void*)this, qpiw_write_fn, qpiw_flush_fn); - -+#warning XXXtnn not too sure about this -+/* -+according to png.h, channels is only used on read, not writes, so we -+should be able to comment this out. -+ - info_ptr->channels = - (image.depth() == 32) - ? (image.hasAlphaBuffer() ? 4 : 3) - : 1; -+*/ - - png_set_IHDR(png_ptr, info_ptr, image.width(), image.height(), - image.depth() == 1 ? 1 : 8 /* per channel */, -@@ -504,11 +526,12 @@ bool QPNGImageWriter::writeImage(const Q - : PNG_COLOR_TYPE_RGB - : PNG_COLOR_TYPE_PALETTE, 0, 0, 0); - -+ png_color_8 sig_bit; -+ sig_bit.red = 8; -+ sig_bit.green = 8; -+ sig_bit.blue = 8; -+ png_set_sBIT(png_ptr, info_ptr, &sig_bit); - -- //png_set_sBIT(png_ptr, info_ptr, 8); -- info_ptr->sig_bit.red = 8; -- info_ptr->sig_bit.green = 8; -- info_ptr->sig_bit.blue = 8; - - if (image.depth() == 1 && image.bitOrder() == QImage::LittleEndian) - png_set_packswap(png_ptr); -@@ -522,11 +545,14 @@ bool QPNGImageWriter::writeImage(const Q - png_set_PLTE(png_ptr, info_ptr, palette, num_palette); - int* trans = new int[num_palette]; - int num_trans = 0; -+ png_colorp info_ptr_palette = NULL; -+ int tmp; -+ png_get_PLTE(png_ptr, info_ptr, &info_ptr_palette, &tmp); - for (int i=0; ipalette[i].red = qRed(rgb); -- info_ptr->palette[i].green = qGreen(rgb); -- info_ptr->palette[i].blue = qBlue(rgb); -+ info_ptr_palette[i].red = qRed(rgb); -+ info_ptr_palette[i].green = qGreen(rgb); -+ info_ptr_palette[i].blue = qBlue(rgb); - if (image.hasAlphaBuffer()) { - trans[i] = rgb >> 24; - if (trans[i] < 255) { -@@ -534,6 +560,7 @@ bool QPNGImageWriter::writeImage(const Q - } - } - } -+ png_set_PLTE(png_ptr, info_ptr, info_ptr_palette, num_palette); - if (num_trans) { - copy_trans = new png_byte[num_trans]; - for (int i=0; isig_bit.alpha = 8; -+ png_color_8p sig_bit; -+ png_get_sBIT(png_ptr, info_ptr, &sig_bit); -+ sig_bit->alpha = 8; -+ png_set_sBIT(png_ptr, info_ptr, sig_bit); - } - - // Swap ARGB to RGBA (normal PNG format) before saving on -@@ -1030,7 +1060,7 @@ int QPNGFormat::decode(QImage& img, QIma - return -1; - } - -- if (setjmp((png_ptr)->jmpbuf)) { -+ if (setjmp(png_jmpbuf(png_ptr))) { - png_destroy_read_struct(&png_ptr, &info_ptr, 0); - image = 0; - return -1; -@@ -1057,7 +1087,7 @@ int QPNGFormat::decode(QImage& img, QIma - - if ( !png_ptr ) return 0; - -- if (setjmp(png_ptr->jmpbuf)) { -+ if (setjmp(png_jmpbuf(png_ptr))) { - png_destroy_read_struct(&png_ptr, &info_ptr, 0); - image = 0; - state = MovieStart; -@@ -1117,7 +1147,7 @@ void QPNGFormat::end(png_structp png, pn - consumer->frameDone(QPoint(offx,offy),r); - consumer->end(); - state = FrameStart; -- unused_data = (int)png->buffer_size; // Since libpng doesn't tell us -+ unused_data = png_process_data_pause(png, 0); - } - - #ifdef PNG_USER_CHUNKS_SUPPORTED