From 5e6c4e6ad10733e980691d58cec3323c57c81849 Mon Sep 17 00:00:00 2001 From: Syping Date: Sun, 21 Aug 2022 21:39:19 +0200 Subject: [PATCH] fix Qt 6.4 build and few other changes - include QStringEncoder and QStringDecoder for Qt 6.4 - update integrated qtbase_de.qm from Qt 6.3 - fix macOS theme detection on Qt 6 - bump copyright year and some version numbers - remove ZEC donation - rework README.md --- .ci/app.rc | 2 +- .ci/donate.txt | 2 +- .ci/gta5view.nsi | 4 ++-- .flatpak/de.syping.gta5view.yaml | 2 +- .travis.yml | 12 +--------- CMakeLists.txt | 2 +- ImportDialog.cpp | 6 ++++- ProfileInterface.cpp | 10 +++++++- README.md | 38 ++++++++++++++----------------- RagePhoto.cpp | 5 +++- SnapmaticPicture.cpp | 2 ++ res/app.rc | 6 ++--- res/donate.qrc | 2 -- res/qt6/qtbase_de.qm | Bin 206518 -> 212070 bytes res/zec.str | 1 - res/zec.svgz | Bin 1023 -> 0 bytes 16 files changed, 47 insertions(+), 47 deletions(-) delete mode 100644 res/zec.str delete mode 100644 res/zec.svgz diff --git a/.ci/app.rc b/.ci/app.rc index 92f6518..f247bab 100644 --- a/.ci/app.rc +++ b/.ci/app.rc @@ -24,7 +24,7 @@ BEGIN VALUE "FileDescription", "gta5view" VALUE "FileVersion", "MAJOR_VER.MINOR_VER.PATCH_VERSTR_BUILD_VER" VALUE "InternalName", "gta5view" - VALUE "LegalCopyright", "Copyright © 2016-2021 Syping" + VALUE "LegalCopyright", "Copyright © 2016-2022 Syping" VALUE "OriginalFilename", "gta5view.exe" VALUE "ProductName", "gta5view" VALUE "ProductVersion", "MAJOR_VER.MINOR_VER.PATCH_VERSTR_BUILD_VER" diff --git a/.ci/donate.txt b/.ci/donate.txt index ab58641..407130d 100644 --- a/.ci/donate.txt +++ b/.ci/donate.txt @@ -1 +1 @@ -btc:187NSQSPzdMpQDGhxZAuw4AhZ7LgoAPV7D,eth:0x19d71DfCa86104d37a13D3c5d419936421CDC569,ltc:LKr6yvBoMMGmcxViS8Kc1A2sDjVSWTXn4m,xmr:43TB3ZMP5nk1pu5EQXRGPzdTKvmFEBGgccX3tNhRknLLiUYQ7z7dNedVHEA6WrWdByZv1isvFmjSGhCF7ddx3eRxFdm5Fzz,zec:t1SpfDKj6qGZFwyRdzJBw9w2PTj8rUixZGh \ No newline at end of file +btc:187NSQSPzdMpQDGhxZAuw4AhZ7LgoAPV7D,eth:0x19d71DfCa86104d37a13D3c5d419936421CDC569,ltc:LKr6yvBoMMGmcxViS8Kc1A2sDjVSWTXn4m,xmr:43TB3ZMP5nk1pu5EQXRGPzdTKvmFEBGgccX3tNhRknLLiUYQ7z7dNedVHEA6WrWdByZv1isvFmjSGhCF7ddx3eRxFdm5Fzz \ No newline at end of file diff --git a/.ci/gta5view.nsi b/.ci/gta5view.nsi index ee89b81..56ea8fa 100644 --- a/.ci/gta5view.nsi +++ b/.ci/gta5view.nsi @@ -4,8 +4,8 @@ !define APP_EXT ".g5e" !define COMP_NAME "Syping" !define WEB_SITE "https://gta5view.syping.de/" -!define VERSION "1.10.1.0" -!define COPYRIGHT "Copyright © 2016-2021 Syping" +!define VERSION "1.10.1.1" +!define COPYRIGHT "Copyright © 2016-2022 Syping" !define DESCRIPTION "Open Source Snapmatic and Savegame viewer/editor for GTA V" !define INSTALLER_NAME "gta5view_setup.exe" !define MAIN_APP_EXE "gta5view.exe" diff --git a/.flatpak/de.syping.gta5view.yaml b/.flatpak/de.syping.gta5view.yaml index 2e6fa1d..c9a9775 100644 --- a/.flatpak/de.syping.gta5view.yaml +++ b/.flatpak/de.syping.gta5view.yaml @@ -1,6 +1,6 @@ app-id: de.syping.gta5view runtime: org.kde.Platform -runtime-version: '5.15' +runtime-version: '5.15-21.08' sdk: org.kde.Sdk command: gta5view finish-args: diff --git a/.travis.yml b/.travis.yml index 2a04b89..8dee407 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,22 +22,12 @@ matrix: - BUILD_SCRIPT=windows_docker.sh - QT_SELECT=qt5-x86_64-w64-mingw32 - RELEASE_LABEL="Windows 64-Bit Portable" - - env: - - BUILD_SCRIPT=windows_docker.sh - - QT_SELECT=qt5-x86_64-w64-mingw32 - - RELEASE_LABEL="Windows 64-Bit Portable for gta5-mods" - - PACKAGE_CODE=gta5-mods - - env: - - BUILD_SCRIPT=windows_docker.sh - - QT_SELECT=qt5-x86_64-w64-mingw32 - - RELEASE_LABEL="Windows 64-Bit Portable for gtainside" - - PACKAGE_CODE=gtainside - env: - BUILD_SCRIPT=wininstall_docker.sh - QT_SELECT=qt5-x86_64-w64-mingw32 - RELEASE_LABEL="Windows 64-Bit Installer" - os: osx - osx_image: xcode10.3 + osx_image: xcode12.2 env: - BUILD_SCRIPT=osx_ci.sh - RELEASE_LABEL="Mac OS X 64-Bit Disk Image" diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d748c3..cbb26a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ if(APPLE) res/gta5view.icns ) set(MACOSX_BUNDLE_BUNDLE_NAME gta5view) - set(MACOSX_BUNDLE_BUNDLE_VERSION 1.10.0) + set(MACOSX_BUNDLE_BUNDLE_VERSION 1.10.1) set(MACOSX_BUNDLE_ICON_FILE gta5view.icns) set(MACOSX_BUNDLE_GUI_IDENTIFIER de.syping.gta5view) set_source_files_properties(res/gta5view.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") diff --git a/ImportDialog.cpp b/ImportDialog.cpp index 61f3e50..594cbf8 100644 --- a/ImportDialog.cpp +++ b/ImportDialog.cpp @@ -1,6 +1,6 @@ /***************************************************************************** * gta5view Grand Theft Auto V Profile Viewer -* Copyright (C) 2017-2021 Syping +* Copyright (C) 2017-2022 Syping * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -111,8 +111,12 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) : ui->vlButtom->setSpacing(6 * screenRatio); #ifndef Q_OS_MAC ui->vlButtom->setContentsMargins(9 * screenRatio, 6 * screenRatio, 9 * screenRatio, 9 * screenRatio); +#else +#if QT_VERSION >= 0x060000 + if (QApplication::style()->objectName() == "macos") { #else if (QApplication::style()->objectName() == "macintosh") { +#endif ui->vlButtom->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio); } else { diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp index 375069e..ce87356 100644 --- a/ProfileInterface.cpp +++ b/ProfileInterface.cpp @@ -1,6 +1,6 @@ /***************************************************************************** * gta5view Grand Theft Auto V Profile Viewer -* Copyright (C) 2016-2021 Syping +* Copyright (C) 2016-2022 Syping * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -124,8 +124,12 @@ ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *cre #ifndef Q_OS_MAC ui->hlButtons->setSpacing(6 * screenRatio); ui->hlButtons->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio); +#else +#if QT_VERSION >= 0x060000 + if (QApplication::style()->objectName() == "macos") { #else if (QApplication::style()->objectName() == "macintosh") { +#endif ui->hlButtons->setSpacing(6 * screenRatio); ui->hlButtons->setContentsMargins(9 * screenRatio, 15 * screenRatio, 15 * screenRatio, 17 * screenRatio); } @@ -1554,7 +1558,11 @@ void ProfileInterface::settingsApplied(int _contentMode, bool languageChanged) #ifdef Q_OS_MAC // DPI calculation qreal screenRatio = AppEnv::screenRatio(); +#if QT_VERSION >= 0x060000 + if (QApplication::style()->objectName() == "macos") { +#else if (QApplication::style()->objectName() == "macintosh") { +#endif ui->hlButtons->setSpacing(6 * screenRatio); ui->hlButtons->setContentsMargins(9 * screenRatio, 15 * screenRatio, 15 * screenRatio, 17 * screenRatio); } diff --git a/README.md b/README.md index 3713ce2..8831699 100644 --- a/README.md +++ b/README.md @@ -14,36 +14,32 @@ Open Source Snapmatic and Savegame viewer/editor for GTA V #### Build gta5view for Windows # Note: Install Docker Community Edition and Git before continuing - git clone https://gitlab.com/Syping/gta5view && cd gta5view docker pull sypingauto/gta5view-build:1.10-static - docker run --rm -v "$PWD:/gta5view" -it sypingauto/gta5view-build:1.10-static - cd /gta5view && mkdir -p build && cd build - mingw64-qt-cmake ../ - make -j $(nproc --all) + git clone https://gitlab.com/Syping/gta5view + docker run --rm -v "$PWD/gta5view:/gta5view" -it sypingauto/gta5view-build:1.10-static + mingw64-qt-cmake -B /gta5view/build /gta5view + cmake --build /gta5view/build #### Build gta5view for Debian/Ubuntu sudo apt-get install cmake git gcc g++ libqt5svg5-dev make qtbase5-dev qttranslations5-l10n - git clone https://gitlab.com/Syping/gta5view && cd gta5view - mkdir -p build && cd build - cmake ../ - make -j $(nproc --all) - sudo make install + git clone https://gitlab.com/Syping/gta5view + cmake -B gta5view-build gta5view + cmake --build gta5view-build + sudo cmake --install gta5view-build #### Build gta5view for Arch/Manjaro sudo pacman -S cmake gcc git make qt5-base qt5-svg qt5-tools qt5-translations - git clone https://gitlab.com/Syping/gta5view && cd gta5view - mkdir -p build && cd build - cmake ../ - make -j $(nproc --all) - sudo make install + git clone https://gitlab.com/Syping/gta5view + cmake -B gta5view-build gta5view + cmake --build gta5view-build + sudo cmake --install gta5view-build -#### Build gta5view for Fedora +#### Build gta5view for Fedora/RHEL sudo dnf install cmake git gcc gcc-c++ make qt5-qtbase-devel qt5-qtsvg-devel qt5-qttranslations - git clone https://gitlab.com/Syping/gta5view && cd gta5view - mkdir -p build && cd build - cmake ../ - make -j $(nproc --all) - sudo make install + git clone https://gitlab.com/Syping/gta5view + cmake -B gta5view-build gta5view + cmake --build gta5view-build + sudo cmake --install gta5view-build diff --git a/RagePhoto.cpp b/RagePhoto.cpp index 5e2113a..293d4a8 100644 --- a/RagePhoto.cpp +++ b/RagePhoto.cpp @@ -1,6 +1,6 @@ /***************************************************************************** * gta5view Grand Theft Auto V Profile Viewer -* Copyright (C) 2020-2021 Syping +* Copyright (C) 2020-2022 Syping * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,9 @@ #include #if QT_VERSION < 0x060000 #include +#else +#include +#include #endif #ifdef RAGEPHOTO_BENCHMARK #include diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index 3a0197b..c3664fd 100644 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -34,6 +34,8 @@ #if QT_VERSION < 0x060000 #include +#else +#include #endif #if QT_VERSION >= 0x050000 diff --git a/res/app.rc b/res/app.rc index a0fd25d..b1f5162 100644 --- a/res/app.rc +++ b/res/app.rc @@ -4,8 +4,8 @@ IDI_ICON1 ICON DISCARDABLE "5sync.ico" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gta5view.exe.manifest" #include VS_VERSION_INFO VERSIONINFO -FILEVERSION 1, 10, 1, 0 -PRODUCTVERSION 1, 10, 1, 0 +FILEVERSION 1, 10, 1, 1 +PRODUCTVERSION 1, 10, 1, 1 FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -24,7 +24,7 @@ BEGIN VALUE "FileDescription", "gta5view" VALUE "FileVersion", "1.10.1" VALUE "InternalName", "gta5view" - VALUE "LegalCopyright", "Copyright © 2016-2021 Syping" + VALUE "LegalCopyright", "Copyright © 2016-2022 Syping" VALUE "OriginalFilename", "gta5view.exe" VALUE "ProductName", "gta5view" VALUE "ProductVersion", "1.10.1" diff --git a/res/donate.qrc b/res/donate.qrc index fcad17d..e4a0005 100644 --- a/res/donate.qrc +++ b/res/donate.qrc @@ -8,8 +8,6 @@ ltc.svgz xmr.str xmr.svgz - zec.str - zec.svgz donate.svgz diff --git a/res/qt6/qtbase_de.qm b/res/qt6/qtbase_de.qm index a1080509e0d6e7c2b3e7443fe6132fd7d0a9fe3f..301fa8fe7103f48d68c080f0b901a6411114ebcb 100644 GIT binary patch delta 19882 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 URB4GnS+MZGtvCuqj5GHC0POc^C;$Ke delta 15281 zcmb802UHYUx9|5k-BsOPoeUs?fT*AZ!30LcKu|CTP|QR{5tJaHVvm9mjG(9(#(+5^ zV#I_2%!=7DV@{)()BQI+-?#4f-hJz?x7IMf>guXGr}o+Tv`@Zh_MFqqvoW}zCL(9z zm*0af#H-#VlD8+;>JP93xEAaPz6HIBwXP2OfTKZQVr?3Oe&8&y6SxiR3|;kb#8*c1hkk5Ph{=12{!F>bbh;18m zhQZ0inkNzsJr0q4tt1afBT5-gJbW(1x}PX)5wS815*bT;aSP&iHxNI39B({|m<)AAYS7v$rssUkS^drEL9_tFK$S@rZvgerQk)Q$Y4C+)@CGM zUq*B#qmsNVo#dM{ao&&QTUy}(g(TnOOZ;{`c$c`%5|S5V+3L+B`2{&1bhnbc_E3^v zgv9I|Nq&XEAd+93O{{4>6O#oKCrmPNN)rRgZ+PIsLnMC%O@7h3lC0l>N^*O=0nYQ= z=Sltv*VV6O;@*)Y$S+_iG$d$h6Q$21!4Auk+K>d7GUAOqN$_k(yy+S+5YK&HN#67v zxQckQFcLa@;Ce$I30)sy%{r101Q9zd0`rLVxky4}5z+XlO0xbrmEJkg*+W{l&!7b4@I{N`Sf z+K(V%m4F#tBVjW>ceEv88`fz081NUkjf5SLfcH-l_QBL_%waSU&}J10#Td9#go!1% z&-l4CoP@K-hzGcmZ~@BJ=^cqR1{3d6pTuR*f&LjJZl6d7K5!g~SR+2@35hUWK6oW5 z8h0T+Ob4z7{Ye3d@Q`3qY^fkVLP?6fP_C#!q#wD8Snp$0Wzu}&3Gb-t5F`6hwfS&n z*Sx5@99loMfU4gvCuUtpHTEPx^B<7)l2gRS&LZb^DKMYQtBnW5uT&-HYq04V$H>{Z z=C>@!#qR{sb3M6q#lW|G$i=uMWBQRx29(dLI=CH5tF0uzGKX9i8_#=#xNpoU6EilD zi&3&Oewz4vDY-yGbfq_FfT*tAA(vC%aHD}*%!QrnW>U-3I^u!ns7v(E7%V0-J4Bru!Ib$`>YUUH z=P#3g1DLC!2KlFy6W{Zc0t_xwh+A1uK=Xw}UYAXL!79o6`Bsu!&7pv>P+}=tsmnaP znXDRhRby#v{iy2ztg-D{>Y9f8tp`xo?~{rC7)ISV{7F(L>gJJ7)Gn5~MdTCT>rCA< z4iHW53>FcuqbEc6!&uuot*OUE1dv+ysHdMV(aZkSYpRO4V@>My;TX}B8`OIilrU{P z_1-BX7S^45ADW1@52D^bD{#Jm`m`JZ*S(zjmV6-YvD?JGFDS6x5aMrlQQ+NFqNyz? zsL4TMsc$GK6%H(Qw1I-A9V6!9LP4|gU?#mP$y+|4pv;9ZFEa|7_cv}FK|!D3fLiUN zewk~CG^45CJOr%~!%Q68qmsN$J?ej|6>-n))W4*dSpQP$e`X2HZZP%7M0r~?3NHSD z=PjY&GYE7RhD-{6ih*CbQt(?ij`kiD{AnK1grhXT_508jp~&~EPf}Ao&ozFT#sT)mk>{GPjSfzN<+ga(R?AXtT-Cy+>#jV zc--)CVi#>_TspoFT|~)M6NxS@qVdLwMkdhsXgHS0x->q;f%xzYnkdK8C|M=B(u}73 zIDt4)PU++3l7X7`syyJAH`CM?a^kVBG`(ymafcAfXc|WB;b6*iLX`C1Oqm}rk@Zt) zj(b;PL%Y))k8R)zn%CSLTAf169z7;Ddp+e1%!kM&+Tp*Oc$00kqkA3V<1bU;*aUoj zLxo=;k(Y1jXl6YFvCBnNd*VvPef(CNKvh-H{jNdc0EhAI>DB23)IO}wYA zB&%`TMBDx*{&1i(wGhmNG!qv$rZWq=5sR2f7uCq5XboLH2BmzUr7PbIeTf&}pqpX- zMCTQB*GWcH=Pf;Iw3C?UCU6({9K;*7bp&^V!@&Y@9X*aALiS>wQWHb9=V~9ls zFo!@`g?t06-`1SiF2}N4^4Z~6#C}jq>w=0P3ez0a! z;ZUN_Gtc4pBD5)MXO=*;G>Q4zeI_<9ignJ*Cdw^k0o^Ky9lyo;^$sU~+>8zFa**iE zbvCR6lGQ$17Sg*N(O5{kVg-WDAQtfnZyN8&Mj)2ZfVwPt`gG#7i$$+!N_^y1gXv(} zEf)P}Q({*u*ysTz2*a*y^mAmg!^7Cv={dyi3oL&2X=2w}v2k-=VW2rIY0nU%@5@>8 zz7k@;WNd0D_=zd2Smu$b$PuTqIZL3-G0oXr;SGY27hBRAO4_F*TQaf_vH9; zn1-2b)y4+IUi4tAF7zXQp+4Ktvq{S^Rw=Atw;PgA z1KZOZYyVir_Jl&TYd^9*(cqdBY|m&TUD=)(aP>mAC*Jt|V7AW_4k^2c9fp-q^9}4s zTMpf*naN6in-d#^1gpX8m}V&J4XeAo+fBDaT?WcJVah`49O&iL_>Eil13t~`1;Ua;X%9-V^l zysrk2&PH;W62-?(dW`&kWGx=I5L(Kt`M87>;u?Pw4=(2uTdgLxsSTgA9ut}z%jY)v ziD2`LXV)zv{xFee2WAuNdWtU!xlgQ1DEI)}1U>}cgLw0;KGLh$}!6g@u=erGQ2qKfq_?~`v zPzM>`V~m2AuUC>^>A?$o!+cuq;)TX&H}n9KgU15 zUPW}_KL7Zx8_}~xGNE|{@y5Sp!c@eRM<-=fZ#^Ksv(O+jTY-aKTV+;1FeCp5vRY#? z@XTbHbrQ6_<3*XR2uJkCIa%$z;ZQnXncWLyOzJ1HIv4Q3%WY)!_pTuRR3UTRixkUa ztIX*tmZI|@nX@B;lwSgfCGPkX#1ebg2eHK75#XPoVJ!}j#d<#ip=>^NK?EP45O6K{ zCy2H7xd*Ppn%jcw!Id)SMwme7&T);?JUFqZ4r70vFksMtzCm zl4N6RGvbLeW%1*&_NlXE3HK6-_n0Y5bSyw6l`czM9f9~C=q^k32`4ryQ$!>xu5i$&Sb|@YEi%qnhSOxl&}uv1Yt;ne0R&bfxKM+2yHl z#ZJFv*JdF}wYHF5|2vTQzS*+-Hw7Z^eA&aLsC@1=l0A}Qh&exzJ^F~)@~DdJal#H_LTLPoRptW|jNMmY>S4UPH-t43^jLjI~{VL++Am)QtslHzlm>FE@Fk zykea1Aa}o0hj`t;M?ZixPg8~$u5kJ*fHnY}?C8y1e_u$DY+%n>Nj3;B#>q|1{c z0>3+E#ukvNswPHu7uEumagq`TZ$n zFw2kf2Q_s>tIg!)=UO4Rw3R>Wj(VX^EQrF!K0^L{p(X5p{1W-g#ivjdewM%L1v|F? zB7f5t4Z|Kr_9E8P5$p|SfJmKs9suFddcFh$iS?=lqF>mn3y6MUuL&Ufg}pX|!QgHA zXMgyMm%HU(`oR9vgXO=1rb0(v$$v*0+h=2x0-x3q4k1YpmKi-=tRU_{0kX4-AW0bD z^dLc+0wtW%M5w+6o~*vFU}fHm_>n@v>fjWj9p!@6H8`y7#zL)cuAO&GF0AT&nNY861F_8Kf_)9cBO)pm>Sw^N(^P`f>83=-4-3u_ zki@!`g4_BOB%Ln>kMfgfD&+|+=fl-DwiH@!`VDpxS{}Sa{AdTE&5lEOGY7$|3D&+r zbD>?`HAD}72tGD9V74^{zYE7veisUzzo1dMVW-gb_feQ*3!$6g4V20Jv(Vj`dbJ%a z^qA0|xaAcgC~G1fSS0j+(}~zgYhkcE%&u-zVesJ;yx8s2~g-nkGl+!6frm+<>p|g;A5T4BQu`qulma5t|Axl|~ ziM|&WwN#)1($epp6c)JiGcSA8G!-QonYw>x$u)-Ef?U-s1 z)-*3BHod8^cGw@p!oLV>&j%A79WQK}iDa?CDPc<+3@}|OZ1H+beBd)-O8`D!ej@MsE@PqjyQJU0&mZxfzIE+i(k5nkj# zlIbgim#gxKFRKt=P|7AvR1HCfYpMjSlxD z(Y9MPD7CX#=jCCdP2WU^cCaGf4x-chYRLa1bfQZxw0ziU(PbCHZ9*rpp*d79X$ z0(Ls7wb=MCEXj~pV$(_C$YffI?$+?#)gOw@&-EnI?+}|`P-9K?VoTRk(3xSPXRWEk zH)};t8^nmCHO2O|(6s*Rjo4ugB#}}scGT}8o?Bn+bUqaJKXH}Vxm5#LVSlk}tqNo` zUZTl7=8HWh#}V&3U+j4a`9Q`4v3HgovG;nh_gOR~>K_*SL?V12`6>1}f%raPu-G>Z zB0nE1268-S*S1PBc^5J8ZeMu9Q(}-~7!sFsF}U~u@#@FL0q%xq*x@&Ez!}(aEl=<= z7zbVfH-Kf}U2z~YhtKyG2OGm@$^&soY*TbXFN#AZq0Wl35r_7~bzK&UL&w1N#*Y%i zmlR;n;Hwxp{3d+;eR1SEW7|Gb9M!7`;oDq{v3JM)ZN*r_?e4_O?}}so#+n4>iesPE zMX_03oFJkRQNyB=Y+{<2+6vLCpqiMPI1l!{T1-s>h4W(S9(b~t_u{1UPmy@+7bj2M zL2UU-aoVzT#P+#~(=OW*e=$XzQL&nM#7c3F(T{{Z6z9cZ;*um9<~>D@S2#q>sR9>_ z4VcA)kX-ifDCUk^gAC`Dn46YBthu|1V~WI8+nNzYR*367VGY5@#0>|R5bLHFH!ZKg z+OHC~jDLgH$`^6V(op1rAI0rysHz8U6$^r)jMtWng?}YrpD4}5rF9IZgP$ehk)axx z;aBlk2nvzuMdGo)&ZDI|NGz^dhRW!@c7tgkT zgBos%c(Ez6*g?_arP&Z|+C}l&NaN@A;tdx|q7~D{8^50u9os10>W--B=qcXHSW9ft z9Pv)61F?c6@!oA%!yzs{Dkvfv)mAKTf^iDpiZ4gOBX+qYzD)Q9`w#mjz6!xXVI%R? z0Yp3X2=Udc-st(95MMhrAbu)IeBP3b@}3_Rx?Pw^r$R-wh7Q=UIHRbRWDfhE zl&G*gbc|Tw28GSYk7yc&E9|Duhocy(XnY8382MSz^pzEqCP2}`1D@}+LeXLrQnpJu zik3BOiC@zyS~o-Rsy|ubb;+5Sdm}}=Hu%2fcZK)jKs2ig6@IEa#7c4%0gd6{TGmi> z>DhqT+h+=xIr@KX`r_ac_URrgde6LzMqwRA;6!A_HGe4vZK*V%`8W3euu0$=j?@EMH_s zY}HxC%AGz$%ar*IBs^fv&Wh`))ey&@D{ic)ih+kKZbf7vEC(tc zWkF&cmMI>6FM!9hQoKCii?F;=@%CFfv1e|Icg1+2Jq;9wuQ#wpwhG0s@TDnYgEi701eM9i_%U5=KxRBUWm9p~|c*MO^l>Tpjpnz$q?7qJzad*RQW%oz$ zbeC+DJ)`y^*IS?ra(F|OGuFh#Ka~9gv6e~WmBA4qL=nA|L%LN*{eKsP2>qOtL+4}> zD{ZM9Ru1J;&ryboKE%DPl%YcewC}4ZNBE;Im=d9kdSOqj)>!3e55mALl?ewRIm48h z%H$>ppOzhzg%JU2Zhh!@+tgXkpuVF0-`;_neFu;q=%J)`ZiM`P)-yaAj=Jr_mVN40p z%38{=c}=kG)=T-#0d2jzCzRjn8}P=}9hE=6LWz<}l|S2V#8!KhO8yvc(xj?NNQHer zt)^0rjUZYwR;9WHbNv1Z%p*48fJ#*nPQ1@NmHJ0Hx?LWs>aSsD59e2sSyiaadtky{ zYN=|7u!_b>D(enm$fCcftZ!8i@4ib_*DxxExa^FoUOf~BMK@J053^C3XjRSZ-Vz%% zQq^p!2a?A!m1mb<5b1K2uiH+vR9C1vy+)XQ8>Z?_mS|qzPz{*mi=?%hYM|E=Bph{B zgV(Jk_9|5sIu9=VOsFdK;4lQW`l`^PVQ365RSge(PjoXvWf)O}nRR=jiVms3j^%3; zzw1=dk$)o{XrmfC9tA{aJ5{_Z%(R_KH7*kqT-;7I4y78)*{T|M(D?b1Dk<9dxt1z< ztS#|-WvWW$U3OeGWg?bVoTZvo7=U~tQk9u-1rnI3%De^%=TqP?f>kT?;CQ0Ps#e}ALn4u-TAg2v#Nm;NzYeSNeuhK&9;()*rxWizMz!AP znAlO(#>+FYFZf2aW&2dre0x<}y*^-n;Dl=L6X?M95ECD5SM87CM7Io+RQq>e0uh5% z2d_g*r(38F_k+?LX`?E(e@>L2uR5_K0xgt2s?uN=;#C@{&Y(#}7F|_Wwbh7q8UVr{ zbjnj*KMUnkt5vu8dSVBrsQ#j>#LpR2uQRa}=9B;7Q`H;aVwiag)!z;X?}jrUR3FFr z6FcFp`g{PDiQ9VBx4oB<6^E+6dy9C39;zQr9f)tgqxzZTL+r^6)$d}w$&oZk{%kBN z9XClB4c#ccAc-1$KP^lWe;^NV=8__HHwqJ(Bwd84gZfF;9TDvE+el`wt%>XhN*4Ba zQU5RMCpB<9PNb}5;+?0GB{^#&t&A)n zid`hF9Qil#%#qTcUEl}mtdiClS=T|@5Kw}6|5DmyutyNGH1VK=w8dczwsuBJTN+Nq z{gQA4#mWwjz26NibZ&B`%5}JOpc(k zS~_0FiB9w!W`Rj4WwrWTO$YTAieZcAk=PwR{A*|eS&cYgY>(dvA%DwmWOsCX3(jHoL1OKc%xP= z##;6>s8yd)7d#7AOLd~KhQHKO97Jv7qLy;AQO7%})z+9$+%dI!F3k9CfLi?!FYwnR zb+x}%5wAB#ZMGWM`7}`1(RdNfc2d`KO~7{i9(9B2Q(*riW~iNHE{M<={#${4lx zhd`nk6V+X|nPH>RQr$HJ_uIZycl`vHd@EkvEo=~~WE*vltF?(G=BfK!#P2_7bAdYO zx;fF#k?H|@B%vM;)Pu24Po8e-!4ILeZUfa}$FKyv-9MbAj>OJ4i&3ki&FVo%;?>cM z646rWrjE^nnchxT$KS_hbj59T(%81Bj_0dWyb+XoR8yz+%0r{$wmLO$Mq;h+aZ&DERJ?_q!_^_HT|Z%E&1#DXO_Kg^&}X8NP~oTgE4z!x13YSjDjMaPC3?Gy)SvxP=4 zz+tT2uc`J4HDQZnO^q~UF1NR7EcS+>^VvgVb6bbr?*ol(g&BT`kfE{L1|4BmnmTF^ zyy0q1-R=&cM&nlU2sjEB}^T5RXa1#sS zOx){gVoCK%G7U3v!1YS<{OX$aS7xC^Yp3aOUx)I#r^YvO1@XIAG+m6@b4j3yrMa3e z3l8C@8n-pwLLWlOJCLTwGKhTWDoyX8ImmE4LD+NDO--L8vx%jy*Yu0sg`jg*6KrhN zygH^CXi@J%qUuo`ak%mCi4>V`E5@%vxoM9vZyt4x?&Bt*=yz<>Pyt{ znThw_RFc*9G|}abWuq|KkHqZrBo{dPglqV z_6*dVt-$%JzcuGC%bZTU#e^-q(DhCk5U`FIL-g0<#>B{Cw1 zQ<_I!3yH5BqInja4OhQO^U`44(WvdH`7p5pzkE2Z`C1Y~d{H=d^igc~t5Zpy{7frP zzl!TVXcaRA;!6%_wJj^~E0#`L?cz14XjW_Wc2UHZw$N7lgaMB^X>0tQO4{x7iw)HZA0fXOq*CL!7A!$6Mr1Vmh3a_xcYf$P_EJ@8NZib)h4AP zN(v3M6Fcl8b~s);aUjmW`>vgA?40`hXwyztpp?6;oqm1|k*^_8JI5I!O-s_w3D}4t z@uW6usS|oV^|aZOlZnqy(B>Q;f|}1qyR^$=Bo1NPWdkP>olVuQn1zY=|E^tg5J~8{ z0PUuV-o!5*)b0^5aFuB79#`}Q_OI0zj)KFPy+V651v(aARa;zl9sI)_?WxOwM272* z+Ota`+EW{}7fQ?UyT0|>d!e}DHPhZN#)FghXdlGH9z-k{|5N+w zDhd*P8|}LUDDjJt+IQdj5FZ<<{bExD(cja4DZPv=c!c)1Q8$)^>FDYl{1&y3j?bTu z-==j$w8mE|xqMNJd$#Outa-$weqQda|{TLb~Ce}MmSGzXMvizs6_J;_fk`P_JN0~@w@9UhWZ${#=LFc^gJ#x%4o!hho zRCYgy|Twp6a@TJ8sHN9o$=%87ae>jJLoQ1@Hu z0v+tnGmv&vnUKO>y@$xz+y&v114Ojl^wfg*75HQoNTa^&;nx&z%; zpgA-{cVHVjltbclhwrsUI31)rwmc7gz#6*JC&!>0x@Bc?y6%MlrT$o^|2Rp z=DP026?^>Ci~YJgaga<|JKbN4Ac?Rn-J>{jnDcC1xouy(2;}MuN87W%&hSLGn|LwT zz03SU>~$;Mx45II`^W3P`$DhD60rFYQ6|$>Et^{TfS_7^F9g z_Ce8kS#PmnJ+@|c>8-jn#l)KFt(!xV-52U>V*>n1p1y89CCYGLy~BQY6t{Qv4PDn_ zJ5F!VyN*K?JEze%j&dU2q^Z7fGDN@CMc;VA5#mj~^i7r{&dcuUn-sv#|6ZhTn$#B} zKc)Aqavr*HK;L#Ef{XnLecN4AiI+at`?YWAS3YkCu(750ny!tuzGdgEk_0ob9e3Xe_}Ti}j)Iam0__)rWZq#6@d;*n|Y4VP^V> zW{`-cmVP+MVlU{U(A|PL=%cpxC6YbXN4GnH=vkm2^Xmk$hPU(y`$CC+x$4I^!;)I2 z=_jC);@d*?6DEbA%zvhzTpw0p&=V$8O3=^STR}W8S--LjYuVRPziJ>p z-|ME|bOE2+%++r`2cO^Sg^ByD_1nxK;-_2m+l4|TrGEO|v+oe=QdNKG%mXwmAL)yz zJJIMJ`lGcb;pe@#^+)Ym5<8QtKkhjl@qgl5{qdW4!pIBtrqxUjNxVy%pl{8~x|z=wzI=)qhE7iY8PW z{r4hUqPwY;WHtOv{60_r^C7}>VH)bSzmMm{u3&cg3C&x{@}IXFQ8i!aQHSME==p-> z7xnJinZ3(W=LR#oET^Tlv!>+!!8&KjmO17(TIM2St+PT_*<{I9*(|Ehq*~q~F)^_T zc42W5Aqf$74o&PLW8>^%6BEWHCgk^8HC4t2z_5uQ)N-ZFC;2DF)qR` zA=WM_E(-UAM#qMY${(5+Vb7XpwJo*Gx?fUXTdPBKR7iZ~!(3gn%t{@ZTjh8COKmMI z{`+@HQ8D4MNl{_3Ft1ldst#n5mZjiMho3dh;ulu-FipUSfdI1`I+?8uQEs0rASQYx=- z$~o%D>-d=-d zToxG>9bp$AH9n^UW7P*wp{^Js0&ipdvm-bBKNce!-!lZCT&V+vQapvx2#6;NXA`K+ zzvmW@BhzK4-!r#~7(FH-#m+4*HasLD#Lcd9 z;q9WMLgPZ>QrvQy>DiE+4OQ7Xn{@KSBS%m){%>5n|1Of49BU1;bo&3Ak?;R&Mh!jjkI%UY8M(Y0tRgtfxpZvqvMUfC^W(@Bmt_YfN3aubv3OhGa5>`$xw3USLM}nbTyb{ZW=cN zi)&oof8IJrm&oc2_@4&1#n8qT!th2d{@+Jzh^G#%d{3kDB;Y8D#^-om;x)78E>zX1 zkr)$^JO)++!-yCfKO!O~;a{equmA5`|MRBm)&Gy1{&h#riJC0X(hcewg17mXUHqqR zNHvn;V(|k1(vHG$mh6%$YfIbEoCbER+H`Y!R%mX|6}tO^WL2%VB@@(bry6&(Dg2PKwlDgRjc^2qW?{(F+ z0V6E%CwMl&vqq;~anxD8-`7=ZBdhjy25$1rh(4W8UyV4#D=?>~NY8t7TJ_@i$A?p630K>Anx(ye@dJ(`z!w%F9oKJC`UKHX|l?sw48 zGMF3};O>0TQ&N|<(QW-nioL3 z`|tl-1{U0Ba{ixs_dMmBNPqCXvXvhzPEHHruF}hcmC6d3^|HoBv8u_O+y&JkwHL zNg9nwm%-(J97_xptYn!rQN*eYeqzA8k#x)L1o$OA>*i11UulSjt8}k>hsOtcZRb32 zK@9V;(szMu8tftMc2h@LnYOS6OUhZJko8x_BLO=_oF_4fScYYkkO)!Cs0fLSaR^ii z#i+W|036V|!@-R%VKM5np&`t{N41AN^tU6X1SgRk&(VHa<(D_xGTkyU=fGwEu2D&m zc^MyM#EG<`DJ&5&Xdr;$(Yc(0930Ky*4#%-1|xmhQ_SH*Xapl1MwFP}3p8y42E`q% zwV?~!<$>pjKKPNv%BJRVOp>s_-pW@;BEK~f&dgMqREo%CCqqV}_{d`lugVS!2D>}L z$O(%+G4o_F^~_Wh5h*??!HAL>^hoXg1&M(q3KSF*U}