From 8c86571034424082b783a88e698d9518fec62e18 Mon Sep 17 00:00:00 2001 From: Kerim Atilgan Date: Mon, 2 Nov 2026 21:12:05 +0100 Subject: [PATCH] =?UTF-8?q?Modernes=20Design:=20neue=20Symbole=20und=20Pro?= =?UTF-8?q?gramm-Icon,=20ohne=20=E2=80=9E95=E2=80=9C=20im=20Namen,=20Tipp?= =?UTF-8?q?=20des=20Tages=20ohne=20B=C3=BCroklammer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- assets/app.ico | Bin 8459 -> 43832 bytes assets/app.png | Bin 980 -> 24907 bytes build/make_icon.py | 20 --- build/make_moderne_icons.py | 117 ++++++++++++++++++ provtool/__init__.py | 2 +- provtool/gui/app.py | 16 +-- provtool/gui/assistent.py | 20 +-- provtool/gui/bilder/modern/app.png | Bin 0 -> 990 bytes provtool/gui/bilder/modern/app_gross.png | Bin 0 -> 1940 bytes provtool/gui/bilder/modern/birne.png | Bin 0 -> 787 bytes provtool/gui/bilder/modern/birne_gross.png | Bin 0 -> 1643 bytes provtool/gui/bilder/modern/export.png | Bin 0 -> 550 bytes provtool/gui/bilder/modern/export_gross.png | Bin 0 -> 951 bytes provtool/gui/bilder/modern/fehler.png | Bin 0 -> 1066 bytes provtool/gui/bilder/modern/fehler_gross.png | Bin 0 -> 2334 bytes provtool/gui/bilder/modern/frage.png | Bin 0 -> 964 bytes provtool/gui/bilder/modern/frage_gross.png | Bin 0 -> 2145 bytes provtool/gui/bilder/modern/haendler.png | Bin 0 -> 876 bytes provtool/gui/bilder/modern/haendler_gross.png | Bin 0 -> 2002 bytes provtool/gui/bilder/modern/import.png | Bin 0 -> 594 bytes provtool/gui/bilder/modern/import_gross.png | Bin 0 -> 1007 bytes provtool/gui/bilder/modern/info.png | Bin 0 -> 827 bytes provtool/gui/bilder/modern/info_gross.png | Bin 0 -> 1748 bytes provtool/gui/bilder/modern/neu.png | Bin 0 -> 789 bytes provtool/gui/bilder/modern/neu_gross.png | Bin 0 -> 1666 bytes provtool/gui/bilder/modern/oeffnen.png | Bin 0 -> 539 bytes provtool/gui/bilder/modern/oeffnen_gross.png | Bin 0 -> 811 bytes provtool/gui/bilder/modern/prozent.png | Bin 0 -> 686 bytes provtool/gui/bilder/modern/prozent_gross.png | Bin 0 -> 1381 bytes provtool/gui/bilder/modern/rechner.png | Bin 0 -> 583 bytes provtool/gui/bilder/modern/rechner_gross.png | Bin 0 -> 1211 bytes provtool/gui/bilder/modern/warnung.png | Bin 0 -> 742 bytes provtool/gui/bilder/modern/warnung_gross.png | Bin 0 -> 1511 bytes provtool/gui/dialogs.py | 6 +- provtool/gui/win95.py | 11 +- 35 files changed, 149 insertions(+), 43 deletions(-) delete mode 100644 build/make_icon.py create mode 100644 build/make_moderne_icons.py create mode 100644 provtool/gui/bilder/modern/app.png create mode 100644 provtool/gui/bilder/modern/app_gross.png create mode 100644 provtool/gui/bilder/modern/birne.png create mode 100644 provtool/gui/bilder/modern/birne_gross.png create mode 100644 provtool/gui/bilder/modern/export.png create mode 100644 provtool/gui/bilder/modern/export_gross.png create mode 100644 provtool/gui/bilder/modern/fehler.png create mode 100644 provtool/gui/bilder/modern/fehler_gross.png create mode 100644 provtool/gui/bilder/modern/frage.png create mode 100644 provtool/gui/bilder/modern/frage_gross.png create mode 100644 provtool/gui/bilder/modern/haendler.png create mode 100644 provtool/gui/bilder/modern/haendler_gross.png create mode 100644 provtool/gui/bilder/modern/import.png create mode 100644 provtool/gui/bilder/modern/import_gross.png create mode 100644 provtool/gui/bilder/modern/info.png create mode 100644 provtool/gui/bilder/modern/info_gross.png create mode 100644 provtool/gui/bilder/modern/neu.png create mode 100644 provtool/gui/bilder/modern/neu_gross.png create mode 100644 provtool/gui/bilder/modern/oeffnen.png create mode 100644 provtool/gui/bilder/modern/oeffnen_gross.png create mode 100644 provtool/gui/bilder/modern/prozent.png create mode 100644 provtool/gui/bilder/modern/prozent_gross.png create mode 100644 provtool/gui/bilder/modern/rechner.png create mode 100644 provtool/gui/bilder/modern/rechner_gross.png create mode 100644 provtool/gui/bilder/modern/warnung.png create mode 100644 provtool/gui/bilder/modern/warnung_gross.png diff --git a/assets/app.ico b/assets/app.ico index b7a5d91cf63069641570f775795eca06c327f239..cfabd0fcb2364416c970bb20e55e7d005c2be806 100644 GIT binary patch literal 43832 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�#Qh{kehdS&fMB~|UrwzK4vUl>wJVWw<&|^eZ#j$}sNzz5(?@Q( zEnGP!x)WOQIX6Nt@}^&q^JrRO2!E8%8}X$ALVp14R`pnOb-||kS{eh`{tNU9$&%|gx0u=Q zBqKAxc`Jw>_uTljSV|i(a?p`L`Idkeo>W=Cf>+g`1xdjA&8Z8gKo(++=toKRpsaso zX=bYLxveNW(oybc2petZsYF>Pt}3+P%ZOB%6}{4+xYZ~kSzZqg8ch6eHdffTaPg65 zm0ULmW$^7UkRh_|7(*+xi~mQ$E%?nB{J(^|(!yaA0DwpRU&8%2%P(2=ugj>wQTE$r zR{$0S1gg*YUx&YJ6%}h+bT>L=UH`yoexlT85x4=OC=?E&X6qpe({dXMrb(+J3QxIZIY@IASuD zLNH{Prl8FTB?c5&ztqw#_Byiy)5}$Vm%GAT+Y>B*@Q0Bt4IIXoiC)qPhQZ=V2Xt%r zY?nUhQoj5qAxOmHo63qW;lN(Qza>`~&fK@DMck5e9VIu!KztxuoDL1)5(frc-bVs{%TvM=I3G#uRMHiH@J}JzokrR>>WZw9`G+CfXL{SxWpIGzav`0P-6f_`G zOR=ejp@{7Zd37ox@BK*oB{19{IS@AgNP(k_NpE6iv=02?^Q5(%hv@`G&!eR8IG{?R z1QEmmrasPoc5?8>SJ1+8c=TlrXSV+!Ex{_qeHw#Ij3!!*^5+h-RzcW=JaxQ89Ujt1 z`7U0PQYNJp^gPBKvo$oO;iXp5KinsxOKO7CY=z*#1*w9jftIk9L88P~i5X&#Fuvr` z17c@bnF>)Vg@V2F`oXr(dF47;O$E>hNhy?rz7Ty=A)iba^%Z|MD303c?ek@T(3$UE z=Mqd><90C3EWscfM&8u^mygZHP#bDPvBFjNAr=Oxe+uHGW~z){ z3dg7NT$SQ3ZWD~BalG1&^!=tOsy&=Duu!1_6jvU@uk-{WzE9|*;6BP+UtV}hnlV>y_Zau-|ix-_?0(Pi*@Km>lS1CGx$m-Taswi6b(K9Z zrs$-GHv9EJ7F{h-K+Iu~m)|^aNV_nLH7pWUww;}Se5u_~VEpt6?<@sp;AJ%G1_T%~ zxnWaOwVmLOsHGrj+65BlE&^mc(T zI{0Xd?9MxUel5Ck+_s0(LNEzJb_Ejpc=;5e)$r}#-ibNAB>&M^)_qBRj1S9wgVXnO zN0IMoNg9i6g$fX~$_^6f++~%+;ekzaD<_^31c9K0RNLTBSr|<=&dGOql0A0u>rHU; zU5>=Uhn*T7;>P&tO8R-zd}0i}+ngp-_+me%y5*Myr=3YyqWN&@s^@V9kl%DL>{kId zRQVbCqC9&2%;1`@jJ-Ci)2t{8+35Y1de>&SX5$u7NElEtcds zpJbLfzp+c_2;lL%`k_GqeuyzV@wIeQ+=B}ZWUr8iE<4*nF=2$4= z=;SuZPv8t)jRb)`!YKpz@E*I`7|h1IV=E^wk8*?<+?T#aEP39UgC?*_Kv&Id6jZ`F z-lrx0)c1bT`2eXyX>Nt89w%%+$A1;xO=pN{*({MKDB{G#Oaj;NPHzFUaJ{yn&a>8Z zhMvt)!XJP~%fUgQfDu|va5*j)?rTJ^UFTMl(pQIdEzE#l04377a=zlImio~~!lT#dv^ zrAxj40Q}>?I(QAnPp7Tl+d`5RgO`RoEd~CJc~V!UaQvI&Rua3r$LaLgPq8_UM7@NH z+aOs`-bnHDxf4SFdbY97ry9?#JbNByM+Jdq?bH&f(d;3D5PIVzn58!S1q~H(%Tco~ z3fUv`$K`XFxw|uOMc4#&0yg+G6%%kBnaMoZGf1?|+ZKQ}`wgSD-wNy^R`zV;cxz=mbZvxSpbuJ5${n#KkXEE3l8}8-T5|UDDy+`xCn@bqT ztqAm1n({&sGJjdl^k1vIi^eg2>aUmru9wS+_wC=mVWAM1YAFXxXR}$JV zlFW0`@Nst+W^9f%5GmuwA_1<=EUWW@F>)D~_w0|LEnyKD>6=(7ye`YEGPp-!ktYun zK{M}>{&bFs-AsJds&O*%DJh}n_hh5(Om+#BaQa-Uk-q0u74~`bM)-&J4S2Q&0*Kcs@nx5pFj#pUtA8i8#_SQNBVH zK#)cyLujvPv|gCW1VAdo@YAg{Ex210My8h8WwArvzadOSA@Xjf+(fiJ&(TVJ=xuG) z8;lwO#s-pF1ftI%BXW4LoCw6APKJT1JEmIVW@-b2#Y@U%r*oewtqjg-rrK<#{jaz2CRokaA8l_(N?d#J z%6&zHI^yKJR|-IuE=gU4h`Vww%+KZp!5?mzgwq}XQt%puBDitTs$A{ofQzlHh0 z3FAR>KV0G1%vI4~7@@Ugq^>3X0&d1LG8-%1AJ^DScKIWR^M}wGIZMl$Yd`6;xneVt z#L$wT_}+lB%G$Z5E#9p#D!_p$$s!F-C*1iR>APWxaR4Rwf)hZ?;j9aq|7MjeAaR=K zQnx$gE|t}OGZEsyru8ODX^o9t4hP6?on~}0n7_eO!0 zRCAX-+o@yNk?q<)SZW-XhX!4^iI0Pmuq4bCg_8aG08S)F&!7}z2m=X6PpLnda9r6@ z2qh!`4*#TBpwHsR@ud%Iy}K|@?*7}u(#;s*rfL$%Zfr6eEJT3EV?m;Jk(=cbGKIae zu`=EprPJXr!Hy^j2llkuGs9?XwBh&rQGaq#Ye#m zRbO=(uMb|4-mmlEfD)JbbxBbPtKnOLTp8}U;G6b5B^5hxK_T=u+hH+w-*qKGKi3Iw z6zS%1?1cY_0g4+2d-@8B(fvpKeWFJ6FXbv7BiP|#_)@~Pr`UX}bk6r;~y z>jqAq$XBP2_%Q$Za8_FjV#b^@MHI;yGH|g!Z6y&_1nYg9B19cwt9y#r$E?5Zh@VZ1 z#)3P?8X!?*20|U0Yt=u5`jOIrkH{!Vm(dXQnb^x+(HcmF97I z_22jx0iF9T6KXc%VNpaJmNz2Brn+uHGRwNnQMBnhPJ95>-hJ);Z z_i+kRoEU$6qf4$=?pH1B-rV_&jcSz?GoJ?v02$LXsOvrdXj)dN?m-jpH!q zwB$Yqu3=yH6%&*eQ3)H$ZDSNiVmKg~k^r-HXT@#dDXuV3|bE7GFmSqKLGnXdt`ni8J0Q;`A>=d6tSmapr!u2_>4$@BF>KCUx-|Dv3Q@G(0=~ z3g(fLIQ$MWX_6YK5F_DE7pK#KkyiG(wnjpAV8 z4qpT+>xrqc7Wl^xGK1iDoFFj_>f@`&lsloc!#$!6dtM|x=Ybm30`e+bn&Nz3>UxL=XGQC6Be{C^aa{@;B6 z|0^a3`3)z(zfR!(Uom-+(!a;6#l=m54|TO#}tP?7tfZw)-r~PmF5B zm@hV87}(RY0Dn1WQz$geajTY1#9X>-4yJ z73XA27F?;l(5>1k{K231s-om_cJ4Hzk z5IV}*aFkb$5l0%dywHVTJ!Htud<-Pq*j{0n&UKC zXi2^$7Hy0GgBOvMVx^Q~gyM4d1sBrFP07PLNa`yD$Mrr;5y@tewSW}d^-pbTIoe^m zjZt|~Y$!CtDKo5|BM6q2om&=?v#MgDU=HO@EvCbvJ4u326BjPx4Z#4pl7t!l^?9YP$1S7xlr~d-nyuT`npymhO-Szb?aL*Y)V(^TXYc!`qr@ui zq?uIZ@RTo_RZtxNW?J`F_V?DXOJfGs`we?#m_VZO7v zQD0#PSvqPna1hueunHhm20PrtuVaf0+P#1jcK`=FRxMr^JRGnJ$p9QG3XvJtR^_o< z1TbP$zw?%aP6Uhjvr8C}CdheGY!zN_WR`wIRyQa3XT#*fqf@c(K;-c(t+cN%a*DFu zu=F&fcF^)AQL=EjB7r`lMpQF)RX<%!!R{_?AmxBtl>EG(QXtzK}qQHIlc8rgWYVE&>Ka zzy-xkS3^9k%kH6^%98)QsMo6Ttq<9hnF+279j+k1DupwxeN~3($ zzF2B?ZJ7|*Vy&`5nzC3sogjO8+jAIM_Vpo;eKwgh?tMbTEV&t~2$U5aP_|)}NaC;4 zQ6WSf@CTn}U~b5-YJ)%A!%eXcZD?BqlJo_}y>Ti<0}N&wRv@yD(Ls;4xpE}>>d&a%+&9@p@_hE_X~&$+k9hv3rg>`>UB@#(tOuuQv5ur zhS$;OlU73@lCC!@3CI#=HZsBJ2UVEocsjQTGra$g(@50DX# zq5%R!L?vWrYNL{61-s z%G%$*?E4~XA){4f@~p{aV#X?<5Ick`b(he(bUpUP6?a#vUXaByWaRj3X;DnN$|XF- zJLn=z&L2WVH^+Zj1r%q{t|w3Ixg);Wi%7TxmN(`vJ1L)greC`?L|L9jECyx+^U_FS zIF%ZIM^rCwJHdo;fmf7dapJMTTvd7CfFf|=u>Ssn!r`o8p+bW5-FjHZ((d0-s7+Wt zb!;-w7{&rV7#vKi%)$bu!t~)GH8ives3BA|=Y8DcKswPYw@p>m;(_o<2Srx5itOx} z+#cy<9=$U{RuL<0 zle5YD>_lKfBikJm_Pg1&Ad~Hd zia>4^{|-+fP;`<>!E6w4_X2j-5N;F&EcI-bqDTgxW7Zj-lEeo0V~gnK=htQyBCD{{ zSXpKl>%<@aPkAf>1iVdAY<{bQNpH&KZNeDN5Dx^zjy9hKtS$sxIZxSaxqTYQOcC{| znU$PrQ#oV76P(Rk>qEKhaT*@5vkTzuczuM)L2ORtx^x9CXBdW?`cRVt9n5C5n~~6^ zNG388dlR6vl;Q^7BJ&ID4uf2@9%sch`j83N$*6pC0Asq5P$6k{h~sOx<;|XuuU1=x z%N0^zq;^m;!B+Q0pI_(?%`A*d#BmL_BU*s~qZ)(3SakZgQ;5g&vtWma0e3wspb;AU zaafzv4o^jMq*#Fn$g=pA&&ckq;e{x0D>#>%05m8%nBWffw=HKDnO#mW24-}##*bK3 zPOe}C!k^DrRNza(`E+El+cWYrJC#4mwmC}dbBJIn9s5Il^~->#X~6?eLCX|MC5S^h z0kw2LO4V=m_4(7XYBOY;Q4OqnHa`^+Bl8ys7jgM-kJ(sZWG^hysQXx;1oN|>h;m5T z>pUbs#LTwLLi|27bzYXRy=}s|kg10J@m0bp+Zy8SQE6(k1{0%7w+Uo+V9Ss-6r}Qf zM1aqI9!YiVO&WX~Nx#8XHD)r@`qLQl`st+2gUasYn-G=q`C_uN{S&W%22+L}tQ2!b zfvNF#8F^^_D!?3QN@!X)9Y1vGnc98?+SsJLQDtUt4@q(R<+52}jW)XrTNM|hV`Cr= ze=QuW<=GAHM?PG(?m@9swV8^QSDIjdl9!yogXLo6_@${zD&ui&%WGiJ8sv`lKyxp9 zD&gzqnTAp@QVX*8Yxe?CQCN#N*#Jfc*ya1wKb?nE$>-I3YVRM<0c3{~mtSXkdhX45 zW!wQvBIeyNx0wx>rKAOIHzJL5BfI6BVK7a@V&uv{0}2ui^B1+nRuuyUwasK`ck;IU zV1$&Z?P|y=XgOm=-JWGC!|ygdD1v9#!q%JF(3g?czmB?fyw1?|WUZo6kt)o8#rIAZ zhzkMKa1N(22isXHJEolJ!A4xcUHw*F5qBt?YBLm&_L{~I0JYjucs%5Ssu6=cGq{r* z2xOe)a6ly6Iw~+)N_FI>7nz#KyS>@$pGu)!8JoNc>F-TdzSaz1_d#W2L!=X`hGtGs z-Rg#@eOk!@wX}ROCa4F8%wapxNWAY)eO`rCmJp=%d@HQu{Xs{UN-pJ_MM2z@J;S?|Yy-kp;V4vxUtW%mSnRaGds^DM zlRc}!Q8YWRc-w;DX9@R21nwHgI+IkS^4Gk3+=pcjb95ru`F_yM?M(TZSfNbzHfP90 z1o5y-B4V-@m?8>#OL5`k2~0tL_b0uJ6W>%w%ljRYuM|A*gm8? zDS1%7=i3d;9x|R1xCh`|ZHSd24^Fg<`Sl0^dJG@;9Vd`?97}m#%=N{*$hQ&v1O&@k z#=if*xVJJ31m~46nlQHB*qABB$P($@6j4C3sWCf*CX1$XA{uj2n-1KQ>JqU)&t^~6 z7Vs6r?B(nhe;?7(QU-Yt@Cyj_${WT?5)3bZdyV~RIA8*TcS2ZZc1F3n)m4;YSN$)R zg*cc94LI_CWJ_9t~_7>u|Q*X!_`g$wmj6%9DV6Zs(5w z%aQ`_$%cfTTuuX;V3Sy_e@U_(hR1$Cgo;eTfnp#09%xLIpyHEwBDgTso{tNX19FtZ z9jafIE-tH@E%s)66m|_sX4V;l zRpSTwPFadpbP>V3Q&a~&I0BI^cY&1u_VAAPE8TL2BA;X_7!4t6(*y=JCTXUzQa5@+ z-j*&#@X}}*-^%>P{1BlG3c7}-Edo=Zmd~9^)vo_Zm!h0sk>aawe8xC}J%^?zuX{gO z{83_fno z8}ZfB5?YFofeC2!hWWkA<1{Q{CAYgI_qBM?>hh-W2zZd!Q`Y{;diSx3=uAw@VyW_U z$Do#yKufwV0Kgc)js@?^Yd<#D{{4|=%J&>-eeHZ&tc3r({6foHooQkKy~^j@8D~45 z&o|9U({?kV$*RMYRQ#LxR`_X-9d(AF70=}BcTRcR0DL^9Gi_NdYw4@ne!XFipPf@E zg0~OJSu4BYUS+wAA3FFrn3l1_#2)XL6wjSp&DaS|36%NbekEsb4Nu%?D~Hpa&n)pS zOfSp!^uokTE5eMCk}0isfbe~~Wiz|XV9$JZ0b4Z^*`HG*!Qv!iP9LX{r|GLT1?bk^ z)$vhVuSB@DERl}PW$Abp8Oms&L_kX@!$xBaLN-T4FlXZP3A_|cbaV0uYLt1L>5cjf zLhWFJTPhoIyNsQ|fc5&IcGmN-NT5<2H_HL{1-tQNewopS=Sqo^np($U-M*F`0q&nL(G-Ah~IC)bNGsUQ&V^$?CH^JQwHn$sAf51Kc0!OdKN z(`PAE-_QFJF>R|Mg0Fff6iqpt**RCSO(q{u4M)CXzg5)P{`e-J@Mxnxm&WkSOr*;R^b_5@~+ewWZzJ!YboKLO^t zgQRbVFUMq0XNXL)2*=2yHc}OwzNf44@ZMV1OW!ibtz%f6@~N1Y)~i#$u>I@ngT!Fu z0ApZ>5F+M!z2v2KC(aH`jkY)PoqWYW%rBk5^1zj#>n3RPZjyc%FfaHLkKGdV8vO@W zFD;hxh86!{fq5>Upy7Bb!C&-n4cz_RaoqzSR!{bW!wc=t=Qp(cPTtE$o{+u<~d-{#W&;W%wJ=oa} zlB>YM2}pgQ>KQ_Z(|z&+WDsEk0mBK!>~tg`wNX&cX8m_;zFVFgA{KaMT%)PxW_ji zleDasr20FD>J=UIAu5|i1*x`T#8dgX* zheNl61?P?{qv+?IjEy0-sb&H{%9?lR1^ z*!DMUv>FJTy6|*PgQxR39rHbOg2EaBRID~Q6qip1y`26!98c^$1Ort2`!}yXqL9q_ z5Og#T*wxSZ{aA0BVa8C(Y9F(*Ru&S4QrkZ$(xMr01<<$QCcYOJiv#XnIt8AVCi#_R%kE|R>?w7&Ck0!0QlTUMtJJuo8d92rJ6B1>RNdJYj z3ne4aLHBKxwAuan?~KdK^XIa8gY%QIZO%7Z zmAjKGE;7?E*xLN`#uaLk>|G$i=~F{;gHYV&_y<)@k0UIYM5G{d^TZT!gpyfF1J5Rf zr=EId;_PtS>e)h+7b}t_UQC7fSKHe?H1Q5ciN=2@A4hlxvLe?uP#z4<&JSH2X&p&5 zA7<`Pv+x-~Y$g~5*ld0x(X{KUHd}aT^?Rzn>lh}T#iTm@c*}T-f!??q$v;R2!A(9s z0bD+BTD)rOcQP1d44D2FDN5TAp$K}cDFnWj@Hge4y8QB>0gu+Nj4}`-STM zM%(w2v`Y&*emCREVvY42JLX<^AvSgcwbo(Dn`(IfQlCm<_g|yrM?A4L^Fs_3X#|<< zUxNXxDjkWdt&0lS>fQKNSr?S0#rYL~jqRjEyXmkpwYn*fQM#!EK&18}{}Vcys7tX0 zi5C1b0vMkEcE16(4{a7NSsALzt7meB=Qo^QSuEBon^S3*8)8o8fZ!u6pNGM+`t4+D z%gSA@xOs;{dg?|?sdkGK3vbs00R`21AvZOT4Ni}4Eqp~(pI2Havicl;_`=^AKjp_d zLixhxbyE58dx)3*);^~=_mzBoa-e6cO@q=LGPQFj+`*Dc{~E^yYgrJFmKBWOQgXRz z_b1-Hry{#vSC>*^x#Q`Uh|F!6aUMvaHzG#5iFTS`8xVhweH=ttqv zUb#OfT0h0?!N8Btu`x2N8h(Pcb%~ap#ovv{q5G4-#23vlu*CTdah!>!mH_9|iUJWZ z)~jX5M5Xz*C~hTgRQuSQ6x6Qy)0>by-XQ9@2bpI?Lp;Hh(dPmA+?^Ck#&bz%QRk1? zNZ$ytYRk_UAnB_r7#9Xy1xyka>Oi8UKvNRE67fd{)+}4JlcZTWK znlLrFq65Vj4p(#uYlS1eTE_IXY-RY(gOyoP;~!5qzj!$3HQpZIX=`%TAxATI8|RPt z;)%%{j!~m$)O;MdtrwP&;P(y?`&Sd%ujhlLOG5U9z?BbnbO zn^l(YBKWp4#6QR2QxzfRVkE!GJ2O?MnI@^K3(aT4Zjf(GKMDh@$ozOG874b8XXgLM z*FT3x)`Z=|XvdmNl1?VZ#I|kQwkNi2+jb_lJ<-IN*tYG{&-zA*7wW^)&`fDwbaw6mqdY>U z(P)H^V5YW1AYs@9H_da)B8Kx0L5V(5Wi%P-A%m9{F2{NDIovpM$=A>v!Ed)5mZht^ zkMai<5*@6pRvy`)SunW`a@m&CSDe^O;SmJwt@!wR-&C#<&7UZL;3CG=(t@EY?i#s# zrg$I!$Opw4pAa^5%|pjM-nBOSM~IWOMqa=j_Kwh^dYe zbgbzJ#~*%d3c^%Qpce6_wu0Eoh}Hi^yjuNMYcMEUOW{5JCnlePEQyZx50#cxb6Q>S z>0OBkjwe*Gh{R zIDRvpG`-Y?LoL$&T<}W$9BhQbe?eR=_azAVCkjXI&MURqZTpkl$P#g-d>$jZzT~B^ zvwFH4MIV-g=2JX8&3I31NGHKYNbT(eOw*!K)zs$`$gE&e2u=u>BkL<0%Np87?6IV| zhoyeFD@Go=FI1n?ZFP~bXLsuZt>pSQ?U8oL_lxo}jxBtDVNw%9P9}d>cP&i_Dm?~@ zrsHl6vzK-~FPXm?0fJJpvP|=JgO;ZILh|!=z_1wYnOEgJvR*##VDyH4g*l!{k&vpB zvAB0MH>$k&XA$T~20xKEf8LmFOur=8a}M{d1|!P>PmqkE_HSJVkK-#m7(YYX-XG@pRKG7uJ=-bg`T%g7 z8;C4sD=TXWJ-DU|BLANCY{QqQyxp=hx4l^U(VCw@s2B$N+ciUe!J>(w(5R~~9bA&a zK?SZ4e^nOW@p9;dy;_iUOu*V0LzYezmGSp5^72O7%Tz+#FlT$fZB}~t_wPR*Ud+}R zhn6ZXjwcKD{N;6SOZn`+^LkEiCvj`VS$~HT5o8O4XV6M2SAcyW33Hnc)3QL*!hH!2 zk^ZcVhBLMmhfy!^iK3XH>IWVUYV(%L)9mPfF8%HDx)hPa&nup1P97x5d!C(tzdoWz z`&#LoeY9^_`;#_7)pN0fjxexGrX+DAd)c;42GS}7(}`=F7pbsA4lA}M%8I=q^unN3 zKCep8O5;}q?ET2^j%2n2emG?)sR(9Tt{cqC?X^RrzemK5H{<}X4rfnfp z6e`+H{pkef)_c~fd51JY7AQxH@smc5=cgK3-6Gl;pzHBd04K=#hmD}dCadV2sFgrC zP{h}u<73WDB7}er%-Hn1P$@v8wMP1~R@Gn9iPc4|@Izdp)%vH}p}~E;sKKz7NDs5V zodqm|pg^G#it}b1af_lk=^2Jg790r+!h`+N?$LE7zdx!UehRWiQCzokfjtlIpb9Rs z0eGHB$bdUi(q?aD|EpFQd+Rr&_~cqtJH4eHy+F zgydYCiBNgswq^yom_m^~|4CvnLmIHmC5*abpH*)UIx&ZP1|V;YRi|BV!pEc2&}i$& zC6yDqEQ@Q97js0P3e5_@)@cP1OQ@Afw(5_^VQl%`XZCX6C!S%TTS2-k8ZHcYzE5RI zsI_Zg1*0t}q9H~v!ip!BOC;GMhV*(TNee$Q^GEg2T|;^-POCev_*I_RihWt z3XRhBEK!7_3z>!{mL^vSoa4>l$Ton{PWr) zOk9-Ru^Sf(POyGkb|%1siM{=#r7{awJtrKcxr)0ks=S9$GYAkpLrX%+5pWz(k4T{> z^??mc7UTH!5BLqG>U+342M63})583sGj~k0>_0-H#w~KeZw9McD2PVoAGTPk=6)y_ z-3a7-X)29zDnOi+j1bJvjS*t}1h3}V8UUe-MAN_#g{drs*X1XL z{D8=K5GVFaEU!$e(k98U@0)WUQnVc5f6{Mf?gQ6SBCSSGE`V>A@EJskn0v&YeHpo4!A(5m}XN?qNO{QtKcfPpT90shBw zpyOC>1^^fW|KFB_ZjbC7)r_k*-7~x=1t(K{LVsk~pj{M|WDiFHn?P9bSlGhWPI>(c zr>kae$4+^IwU)Q#7+6PbOYHiT{P1c+WVpcH8F0p62I$f3f63U7_i|Pn{EM61KO}zs zUQMac_2|uu3zc7}>E7yo>dbwpGJoccPyD|>ja$5 zB-!WV7HE$q`hDq|^+FAw8peI8bW2tGmY;8)34j#Iu7>0jxrc2K%bM02MACixs5o04 zhjCw#=RQtn4EpJxZzPzUu0P6r)4)E<1S94eXv%E5WhUj6Z&b%K>MHPsa3-J^5Gl>k zBCQGOJcah{LVxGSccp}A$)t+wUm0PDue*LOu8Bf-*xAoU9PEqP`D+J`kK zjGh>dkSd^RwSmLmfJ0;m+Y*6Ad3d#yg;FT%O@iE@9e+h`Vs17c&4ereAJT#Dmf$rc z;HCY02p)IaMb}mD;mcf!zT!e)0!(D*+l0Bg;sWU5Z9{A{(tDTc-=*ZN}b$m0Zz zO?y7kjHHVf!2??pIxHh^U>2n^a`lcXg1QwT;9&H%J3S9hc#W+nDQaf%?s%}U5mgTp zwyhSww?Zr7uW@1=K&#HXz{FdYS9KM6?qGkqkfy@|5t-~Wp*wkh~%6j-Bgv5y8TOiioqP{J_^@}R)xkcPD zTw%9o4@|({JAhhMypG>TZtDG*>d0QJel)V5XbX-Mgn=e<>Q5S#=$qyV7`kAHflL#K z%*2867#r1(nx}XN2k{_`TBP`E2dLevL#i$f&=_7 z+WoZpE_z_9!8WNVgGsc24m6=p@d5EQ@&L@-P#%+L`BoSmI6**MlTUEGN@zY4WC`D~ zALH;8jffKr*Q>zC^i|haWrD}EQy)=Qod^RQeyw4aKTY4N52E7#f#k{2b$yWXGQ}8RB3- z3I#Iboa5g~h6gC(H9r|Np8$hrQ#Cy%D!b|-5dygHQz!;6Iq2h8&X3O-R(`;f_2`RM zrmh7@+2VLuL-~Mh3n{6+*~|*|Gms(YkHRvX?|8dJH?Yk31V2u{XU@Y0MbS9J07(F$ z#&dbEg;~aF>Ic6UeKo@OqBh~8MESX%YZ0*)t6eD+%XSOHEF=oucgp!($ZDdd*uT>g zMZog&ju4q8t-=O_rBv1Tkmke5!8u6fYV6 zw`SuyJjgfbe9#^t=32|tZfbz$9glZM6$YD5^C?<(>hx~2o}h;RSPfzDL5atEax%6m zael-Ml@P2&PFBfG()NChvHRY~`!;bc!2W>%*Os&0up2Vw34qV1%hb5Ua~1Yw3^r=F zYr-#N2op>UZ`oY>->=N7ECuulj?oC2U~QrpwxcWg;?-WPDk9mIW6WqEZ5KTqJzsi= z0{9%4JesDyI3%A9mH+fo15Al&E48?D5)*H+f60nT`d@TB-pDVHdaM(*Fvx){|Xnr=3$=DxL4KwumlCV7#O@0LiD*2n5&fn`vjrl57V$F1j zjGyxuf;BzU4C(UkzF}NIf>9^q+SMx<#{vkvmMf25=wCjSkll7#vZV`P5@&>@ws;so zBTV@wT5TpUN^=0#=-jmq&*LTf05MXLQ<;^6FIltd^nSL{3ew8P5Ml<;5#D&rBJ?)`DgK z(Ur@|1c@~)cYRw_>Pi`7gL1(hCZV#&Wpc7ufeTzOZPX$%`e)+Y3?hvWm%+BplmD|&JgFi~hb3t#pQrcvNlp>lR%1fNXtT-EO zz}uCQV9+30^T5>d33s#$!J+%6;a4^Jr;Om*6TcH|RJBP_7_2y)0#Tvb=vE*;_eEI= zJ6i2$G1MG64fs9bhQk6B?lX$P5WF$VubSZ${5E;8IoiBucjx1F0BHg+VdK)S zM`7E>ARy{AI;|BfhN3Da02?f`_Nt`x9eNH}u7Q#gcCFRe_JSHNg+d*N;PLb;OZ{=W zlfRDG|3V$mzrg<&nF}r?2aW`N&UJDs@A8w95(Y|{l0x7W5=vBoVt1eW<((=HX9_mG z-B0oPmT7yB&4=VhwtY z0#u>FQC~W5NhqDi@cL{0^8-b}_Egk5Z9acfAHX;>X(TwZn&+duWX8AP_`!eyN4)F_ z?YeF(Z=(n0@@)sqO}KL(Xz>*GYd{ldZhc?ML)mM7vA9{{=$XBsKbJrrfT9HL7l}-o z7V)Vuat8Ls!AY9oi*EUYAv%7NutLn&Ek2&dcHWSfo0Jv8+}_9tAePY?Sde+ zB8mgE(nuQ1x?w!uthB=+z!iTnMkKd=vgpxU3=r4vlk<_7*d7k*z)kpK8qlSYKm&2BoiI$m53 zFV1~J@DOAZ>xQ_!wh}{X1#~r`+WZS$)__Hwbp$QpvR?4zw>;0QovwB5LyS1g^Y9O8kNb8o-^Q9eB|?&jivH`9 z=O1vmyHeob>+g<%JFSK0??x=)E8K=Xu===}#k6 z8QwxaULJn}fA zaz&N7qG|qSmA{|>UMd~F{au#O&M%D$sM#n}Bo#ZO6%p2cKJeP>fVrl6tVPp^7u}X6 zV1A*Z0jq%&7eWpUwwluEb1|od{2Bfux7+Ry25Cp`FVF20KDr)5#0pHoEW`+K%@6II zQzCiD7BrCrB3wAmlMAPpOY_*W#vwvA?2*JlDP!q=40??T2PY?;_ZZglT&5<^!^(_Y z{cuF0pp8VIZkTRY(Iu*{MFQ#x9{vZc_s2#!_$v{Od~h4GR~CX6(mEPAEmSmOOxT}l zxPGU&d>@xD%c=P+z#Y%TryQOrQQZs(-x#BK`w_bqMO^s5O>Ki(jlX2+pZMC~jG%J( zGp^G@uRMhpA`EQ?#uO47og)4HA$QITOQrB z8m8`3G4gSyJ+txVJs0cgO^$Cq9!LSD&OlPr}yP~ zNbO7GPqk)#zYRB@*C)>D-P3uD^P9I9JU*Nj^q(rhJww!M@WYrK=o~;oC@x+MTn_MJ zwB#t1!ORuuRSr+r)P5zI&DLw{h&~!`hFq#jK0#`E3t7*9LfF~aD6o+*4r-M`Yej)1Tshpdm=M!Zq${9Q$rcl7%=^b z+i!)PUiK~T1gx~~yy$K0t1Hg<>9fCKtMT*qv2J<7zfvsk79Znfb6Nv>d3RM~Wo6Z9jUhHRcwfLw z2UsQKWE3bwmi4<4%BXOE7iiQbq`)~h$F>KB;4usdRuSBZVGVz{&h=2`m}9Tl;yGk=q3Gt0wH}}s% z;H<)EzW*A*2DlI5W))3+Ac>mn1EV~8t~pAoF{r!fQz8oD~5GWmfUX# z-qSf0gX@XTR%p&|+fOH;zNHagx|`sHR70IleQP0)AQmljZnW`$CKM#iEXNI?Z~`H_ z!*}xmYA-(PEog%SQaJS*`2Gfzfl%JNFlBr=3Rzq#ntUt0TzVaM%qy-62!{Ih;?q+} zLOu3THvxKT$lUIuoH9_&2Ec|#m|xeuEWjGSyw27tz{T&JG#pJS{fd?sv5S#P?O0;R z+?tNp3e2zfodO_bD74u8$g)`!53ZxVyK1H;%PGTQD;JvuGIeY^4os`rkwpW6)w5FU z4zl8^^a8N+K%FcK?}ZaDp3{e`*Zwlk87e_G#fjPu_lBOB=pQ#N;CB24Sy#GFJY~3> zYJTagk}EQtr=eOiCwG(7aXZB3^ue3J3go2mWy=Z!eGBDXD@nnoX8!|C?~kMrhl`BP zJ@zRu-+I@F8>PN9es@SekH3lvv9mZ~1-Mz*C~j`(Wgg||=df^8bc=pEw~uueUY-Ez zreON4R*xb1xPCkCl=5{k4YlJ6W3Cj$LN+N$C4t|);C+6x#_dA84NAquD`qP?9_!ku}3X$pTdg zsoUkG7hPw`E8eH;q8jNrTlL?o?&M+ZX#`77een4C<<~r-G}e?0=kyD9wcl?~d=qt1 z3O8!iu-RgM)Xgx0cK>nugGjGwve-prJ1pp55I*`P=#C4&^46vpsE;b%K2d5vw00xK zfg<_cL7(Wu{x)#M$iZt-H15hUPwyv^G+A4LHgL&{!_=AQQNw+I^KV< z@qMgu9L1p55`t&jpnK)Gy~TmwLM7yHkqCH0t){djh7-L08AhjxSV|cNid?@>5nX+} zCRuyA0<7ew&|+9s`{NfauoBPW(O{rwUzu!sw*~XLR?e7bb3f-So&*?ztj(dvQ_J0d z^`4zB95Ast5E8BH?RT|K?hw%Vppw)68ft+QtSVLc;dH^ZJE(#(W$p4Z2a|SvgMeNX z3O>-o)E=#SVUV>-@D;4=^OkE~@F%#qHTY=F1lQ?p5xi}WR1I4iUduZx+s z0iImS0VHC@bv5B$>iM##<8pwGn1ckZLb+~^P-HXp%J%#tx(g%Qu#u#0(p)cBjG-N5 z>wuztQX2VQwN)I8YyfjPc?BFjEL+s*N6RVFqvxn3Zn&W z;py{BQGP-xG7?gKFA{10Jd16|)?XQKOIZmTHH>KN6A?}vywY}K>HruMl4^7Lq% zEfVaG4*T?KWqA!Zk`fCJjP!QL`f0v^r&<}B;wekdsaRB`bbc4=Jq%iP!&abXT(BYv zVG!j@`DC)-cuMBf@w_CG(^-d4Z&;7ETEKBBrD`6hhKA#uHu^h3vy|Hkt8WRi*5M_$ zU?k}B87OrsAL246MAz(LmJ1YeKK%o=e+0ER>DgM9+bFMXO}&!`PS)mb4SmEtUH=hp z=`--pPJ_X5!nU27_N!I*@h|Ex#aDAtKhMrPk|yBIoR2*hpp>nW(X?ewxT7&DQIvAp zoTE#f`g`+kKRR#q=89p+ay03-4U6g!CmbTfvT=9keR9j&yCv5C$yz9~#|_km|F3`R zUAIsooBjI#q&Q_xmsoSsS9@;Gwj~0>(U`(LzPJx>yRBl6Y@}Bw>4)|YUPhwOI<274 zou9q;#*CjQypTo~u&E?bp$dk>&NLJvB3jYiN8mQRuQE|NOaptj3{)0}97t4*nwT<* zPNb6PQ1@Od6%;oWjW)A!&1o+NQUVKIug`?FBbIavPlFw;PZ%lRFl@KgQWO;v+O%}71)m|i1$<(j9GCzAH z%Fxs-CXOgPqzdFk&U}Q;Z)Q6jZ;cSsw6%+bd4I%cB{PCU8)tM!FW(>?non8v`u;{u z!&RDOr{lyUebfv%>^^!QCO88^wLn6?+y42Pw$YUuPz_b(N>Gh9%QDr+k^@$b^Jz5k zuF1)F)6bdh`~EFZ!%)4X8(X%J#ew#L`SrvKzDenywj53ftt_)TGPN9cMULP5pu_s( zs9Nq84|vO9qHJOe7jn~Z15MF516rLEiHV*%^awEd59Hdf^QX#+Za}lfY<2JE@DstZ z#B}O_t-49(yfbt@n?J`fwej@$UHcR6aCDcp-MMA4Rk=9rHM{5Lsxgj>PE!RmV7pkf zI=iVn_yz2H@P`8lu%=MM0$xALn!- zE@keT)^?unE7Mu-as&t~H(pw26PDSm~uK&aeX=x0FBD>phuqa<`y7 z(sZJ%jOfB7x1;j%hNFEk8n(&H@AX3Qm|!GeZlAs|pmfv) z`PZ@iB%QT1g%~mg-%SDO`}o0#f2fAlDpSmhMhHL~6Jlm}?LSb7+xl}_`0E}r)a*(ZA&?zrW3NV8?@|IK%d5T4+Az&AR<)gwtKNt2Mc< zX4&g|2O+*xvPH|I>habO0c2zKBWxDqIR7f&R3$6)$w{ZV20A{UPb2geui$ziOYF@* zD5M<~(2(>`X__A+dft@R9n2!l{-=aZ&jl-i{>?Mh)S&-WLyH4M!10N#ISBB37}2YO zqGe!4XekDgsRRc9R8t``{jC1{MwmZ8!dDd&qm7{ByN7-0(N*@D9mDm9E49y!bgr?Y z#J+Q*a&~d~()?BbtUB4K0w(my_{QJiHj2WNXxN=uRH>?Ln$wO0Z z{W6a14w!~gJV~Sl$A0>swda2s2po6ma`U~q)!8@*9aN(QjF+#yU%zm^Ub1Y+kZ7Q= z)DtNLaeF@}2}w2P23#TQi763Po)7(c1{VY13HWXBH)w4?u10p@{(;c%D3Wm~*452c>O>*NtdH*MXWQc)=pP5^weKbn zZZ(@i?U=%q!j9n=uSJ&d5DHfPa_}hPG!{F(`tF#36paPe-C-#m8-PRc&TP=UFA4|_j$TYFjE zpckSf1ED)giSQy};)7Q9%mKhZ6eA?bQZZk1A%ig)8)8P*QWk~gAX*iFw0-Z+0=$SK zdUCm@_T%5xi*@AK)@v%VscvYNn#*IdOEi1?f7a@Q8H~|zFrVjF_us5UMV7wYA^1J* zi(X8#q$wq$&0WLkd@a}@eiBChfEcn^|J@>z(U)xlw`hyM(_i+wyrNFV%q*;#PCTN) zFvg2r%Povc=DlZ5?{pZ!%z07%_<9yQV*HzOQDvamgNQ@5b?b?i>JOnJtQg+$_I?$h@+$D_FJ^nqPSKRZ85OKx0gXdL`{+c00zlyrZ};_^SOH^l|* z25xSEDl`|ZiR*3Pq)=_J40qOf+;rTC2;9eM z`l|XPEVki|RhJYeOs$j7;#9lSNQP!~@C6{Sd~o)85PJU*(~uuSmz+BnqNMiOJXuU% zex@TeugSwBD+XFgr{b**iJH^xL)fuK^{P>@F49bGGMw;O+)SE(E{6(!KCja;ZD0)u zpoGr1w))ZFHb5J&M9irW?SZjahp6HC|5QS(Hnk&@(QGEcu87adIH;}F8S@zL0K3ar zLboJV?7$972%PMs^1j^4V@&*ohyRSeL-?wD9`z4UrwzpxiKC&Rj5x>LV%?@Dpq$S- zkocS{st}EdMKQl}y1SCtR#7`+u~3>>PNii3_3CTe{q!T(+ZB+!>9fc?DCM&i{tsXf zDIaKLVjC+aDq3M&JYd9PNIR~KWhtprg^B%b)b$nD!-QLr6@OPwz^=Fa@sWD_AQ#BK z(VO7q+XGiQK9aSkTp<&duoZI@&kFE@21|hhYBtmh3JeusKvtE!>qHrl5T4Z9PrXDv zubPT8mrYihOJcXbEv>eKE!t7r54A4dt~Yk(kCWGjNM;CiJUx zk`F=fto=|}{JJlbuLV&}0Ja!6WsV#0>rpt(sH4-H&izPd(`g{ubNtdBLXWjOkdl*9 z0;gV0TgcKJPUmmfwC3o@wB{fR^Q20}Dpr@GRekA!K0GSE&eAk*@5WSSvkzdO%V$h5 zQ0m`3P{H!2tU18MWiIabZ-O_Xa?8shsk<6>m+Psb)%I(GyzLUipqT?>Ny|`s+~WsT zyCwtm45+)?_sIkC#&T+9dMJFmvC2|)16k1xCpaz2KuGIqO;=~~uj>e7&6yq4VY4bV zV$(^htvqw-WT5xQQI^KXwb}jzO$)X7!(&;LpT10g=W+AD-X4)XPPK03DikjR8}n2l z28~!llEG%u7Gk7#C=jqJ#yU`qJfRMLNYL*9TjE|l`D;qES13~;r8Zr!AWV3l{5-mX z(0(&kLUYW38dHqM!Ua{^9I++P?4n^1>zJN;apJd$%?}Fa<)`gRX4WnD$!$kBIoVBZ zF`O5A4^PHdt*yn1>y*%N=J*?u9{Cfiv`}@Ba@Ddb-94wV}t{;UkTAOMyD6X!k#a7Oim&KgRz^ObclSnk24iSh318Nu|&3IKA&wd%wO9Wp@l z1PIIc==+w*jX0Cqta%ea>itqQ^7HO{vN5yIF(7xkUPM(_%zp9>=?F)i#`NZ!(_@NI z^oqoSRIaXeo!LC>e^A%UuMv;@ib#j^#09zqEuUq_piffV4K%R)5v}x=mA{B1;W8$0 zNjrM_x9;4L(tL~&d;QD+Im~y~Bg8eW1U%x7 zmp9C9Cl$t=pQGQUYQLe{Q5Ob5PA9n6pb*|zTYkC}XJ`^oC*}f&FrZH^?_a_yQ*U=# zrwR9@iY;^ox#d`dOTssEfr^AI#*O4&Y4Zl$z$GAw&kr&1p=dP>X-wKLF>Z2)Ldq~W ztda13Z_|bGb@!*JWLH%Q$iWz&c1w9>T(DmjB?&cywoVxvI}2`CH#GsP;It~NV6}Wc ze8PegU+R%4xkL7aE3?Whsl&j|yT4LFfs1r`D^9n^{r=2bjB#Ig-C;jH@B>o}E}Qps@hax8-Ys@OAqK0}Bg2pIR81%88&j>dPP0 z31sS+YnnPp{_&g;@#SP8?<(b=oVc0>-OV&KGbQU&5RG=XkSUo zX3RUdN*7iy{gs+*yS!T)(eewC{wdYnK$pMu!-zSHE$(NhPgk}uXZ1Y}DhTfuiWr;H z%+%fX%f9=1B`Bvg&2KRMVp-<6>d@-#UhEX5iq)SPKqTOPbor`zd=&~0P3ef8aw308jk$K&Xk}|2W*4Zb6$;RJD?Umd)>Cqys(Bo{3@fKEK zR<5zN`o1hjs$Opap`%T`nH;kgHvay?#Ar6`B>MbEOI!7+=Z5&d zXHEnDHG$qyP-{)?xIruL@Za($;Cm-CagocvVtI_U_~-E{5T00Jl7R+_A)q<__yAdg zSvC}+AuE-;)=b)O0Gqo%pN2ccYEC;?p?4;-|Ju*;i!&9D%J=0GL-XOcKSl+Yp|3U_cJ8dxz?ifksg?fg>)O)BfjlrwQImPnFPj7@{htGB#{dAf1N zP-sqj;O?R$c1y(j@PIZAIt3;!;NmSPo2uQwdYd2B#T23=*b zK^=0#;cvdrlQ4S66D$Odr)9c6=SUC4Oaga?a*@)Rp?aF!WtM?4@fQ0lzl-3004Fy> zs=x@$?+^K`oGmAklmK{=OeguAKPBe$yMv z#ebCh`R*h5K_GOPLJqJxjFb4Sv*+YnYebF60$EiJG{q=M^Ir_PdL z`_``d091e;ye6dOpjf0+cO+0srmMM+TkiPKYbm>r@;?en)P=(#2(EDB25}@oAz~IW zdm;W-D{~bBAYcG41iWQtLi414->tWqu(`9Ra{2nGgCN!ip*8$t_(|G2*9D)KLwhR(XN=WmG_aLER7}Y!(4vu2q-*XU25M7 z#89l9BfXmrYP!a`$F%Xu1=@WZknF?oZ;6P) z#~x4FFGo+{&s$*63bys0FXFTOaA^)Lkp1{!TY1>-Kzn<4izdYw45NQ8ua(FU4reSn z(#1ngusGZ&A(3UbByPZdE6>-g02Og>`NVe`1O`?@DhI+|Kd zN;;|;Qt%-*lOo(ty5fx1=4(kF+Q6FEClvi~pMf1vY@R^k*_a;sdWSq?|27c)O;J@G zWP(ARzP|;C6#zq;NHVHK9lR1)&t6}KgR(e$)xOj21SXl)n;c#mrCKEGbq|ZQj{q5} zpdQ7ZPB~L88KE1Gd!Mo{NJ_%-3EOv@TYuZhe`D^>-qqzdNGy}2muQzjZa{6gn89P59rH-`YrM9`l zJb4-+6o^*bs>fd4QIG0=jx`w{{U7WR>OW}^b%YHFNqZZw`ZT8RL37{8*flWKl`6C@Q%$+rX(#e(Lu!jOMM^L2o4_yFtOK-_jHC$I5q|HS6``+;k!e z>$u)&!E;MLgOXN}4ER>tJ1vPM=yl;5 zRwMvBe^UmI?=yHnvKc^{YM-AH7aQ7ue)Lx!FLFTgF=qb z9T&>A$OT=DkD+-)ZZ#BzSTd1mBB(w$kB%sz;2bIr_$~jh#mr&inlSIU?M6NC~n>6pZ#g^$6oapA1N z8u%J8`TvKj5rD9Tfbi4GN|&e(KYk^!+ZIQ%W$CqcqJ)ZgS)U)`w=9Ovm*O4M|3F%6 z942AZ%c8F1-r2}Uz(xAsxR+fSgXBdc2(LF&)*qc_dkjc5XGc@|c169d(cI)PEhIA3 zA7nZI0Ovs*vxCY;4{ZLYMAAf12}ElDm2(=L zvdzzjzjgBsUY?H|Aa%uORa(-c9LWOBAe)eya0|jsAXX#W-kDr69eEgDJ2Di$bPl5;8eoXh37x6Mw^4#%KrDw# z9i=c73!A~5JAA&WSJSVlm z<>ekXpd`D}c9%0IC#FUO`F3cd`W+{Xr@vpjJ#`I^mKri4Xh%Cpc)evsg4$BA(tK8# zD;`q|FPaUB$L;voWr#-EiN$a>)IEd(f55OA{GX7HiZ>3^(3Dk+EM{6 zQpp>hs5)HbW9mkG+g$0X^yyo-i2`cnA57KX*R3HJ=6st%)4Zg4>T2@VeCso0v&7>! z`1Ga`UNKa1?CKaTd#|V< zcvM(bU44ZzZom2eZY3o3ldbbcQF_&5iL&wKUwc#?19z|S-_S^}e^eh#HH=hNt!VDY zH~6dCI+36v|4Wh1H|&g{(IC>%1}XpBl6*dY6?L2zg=l2te2E-C01m3-`j*eP8}tpQ zJCnhjFx+RzvZY-fQo<650?Z07^}N$e%5h=T?mfCoHwe4KRxfEqkkg4KI#DibQR~-@ zY3|#-u9<}7n6rDyhvcjPS^qjnipl?5GOr?qHDaD=Owjsl=H=bP3~I2sZu| zmrYi3dyrS;PP*O;(~|f%)H48AT!@tI4sl+T-$s(xpHj@`_g{tr(lh&k9UJe{uA%Ja zCRBeRQo<{3MBX6sg@&D$D%ojgz%Q}$X@11qq~4RPv}!?!ZfsHaO=#F%RSXKwp{ zinTz*>U(AEF+#xq{Zf9|ig zgr)==VEtszyB8oDA%tgiF$o%Ml43xPMe!m{X4X-$sqTM-ERFROtZ~TPzlSI65Y2DE zrO^K`6p2;Xb_y#$Fi9WGxkd~rnT?DFUQRM|>2RuTHkaWPy?iV&$}OKe1hdKGBvX6$ z?-0c|rMX}TS~tV!yF{6Q@Z}*cqmd-2u5%fhDrW z$=r|Ahf$zJh@aP7u{lxc`aPBiRSJin z9>eN2*EN?4dvWhl@~pR~7PKiaj4fOw$o?EGU>i!}Y6DY=6LrDRh|TEE4(aK6zOkz` zxx8ho*mz^hR!v;$Wbr+E{v%I@n^)!J%JBsGjXsZt#F?BuLuOLmKPu8rJSvbJzdO6P zVTDns9b59Ov#z}*=kGSo)Z5-&FbG?Xxw4KzW1FM-WQh`1!zfm zd1YuMWHYYuS9X@F+SySk)j52PNBf2p+tKXPyS;h6ZJ%u-mPRF$2bOm)F{~8Wq}bKb z2Q%prQtDkkwjWQ^R}}SJ68V$HBNC(60#G~%mgAmT_s+ziE}$Z|*xW83;E8IXw>ZwT zj&rOZri`|X0r76XySM~MlysILOy3tYz24cf=+~GOB zoRW$Q7RqMYqNSpd@hKSNF8$IriYx!BWPkX&+5Gby<%Awc`n;PneYdAdPu$7$tQj@O zlEN#G*w>%$I{${AvJ+p9c5`Ulq2c=oPRB6|+4SqAUF`8u8k7?@{x49LXF0_en?~D6 zn&N^cfV%xYTU5to7(6yRr;@)4Jtj@bVBAOi1qn^@tM~LkMN~dzPC~N#5`3H4oTe`h zZR_jfyA-#y`vzZqph+aUL<}fA;(n`Om-&B+iPO=`v8uXTwTgpMdnf?s-MYg@gm-?$0eyZ! z2p=nmwVtkSkG66AsGq&%KUU$**BKW3VRTG;lhBB9J4u}ef_pGB*b0#l^fxvnM*my@ zG{@I3hbhu8AeE<}HJEDfuyH-_|JB!9M#T|r>!P^3I|NB++&y@3cX!tS!QEYh6Er|@ z*C35Ua0u?f-Cb{G@AJkxTkieaJ-WKP#;UdE{A})dM8D1ezyW#Dg$jvm(= zf?u=2dz0#yJ8L9vp-q{iMP=-Kup$4~LOfW;H9b;+BXo@|j?r^|dG8;E-*6HaRuQ5J zr*Yjbd=SPg4`i{;WIfFf25Txlf7azNC^GGN#r)=&QC{qgkt_sJ?W;pPDJY}8^ z>-B)mfC}22Pgh?+7mHs0+kV*i88j{2?3&-d^#D!R@bpQQ^2&+>^|Yt7P=B?BE(aON z>5GR@yXhvJJSU4*n`H`{qZ(<+ zx%`Q5ZXW!NPlZ6!A#k{>3$E%%eEGaO)!lPz6rSNyHoDvu)#mlV^E`3uJSAtk_l5S%H}-v?lEj{?J;ad zWM~IG{@=*bm*CTaIRgnblb_4J<3i?WX}R?gG_!YxLd6`3gL>YIjkbnt>?53eOa-61 ze1ZR@6oWDQU9P?eK^1yZ>NaWbHC)-#0R(#rBX@RV7pW3d{pN#RPQDiNEu-IUrv$)G znwM-q4a3424=z{FC%A((CG@6iU<}unZVT!?ZCCaDtN4@6^hIsIr`f@SWq}~h5rUS& zUkt)mk4&l<|0F=u1@2iEvbP z^`)H4Wrc4dG%SIN-cV85U4;U7jk_>y=5xfM$rP9&wFOwzKIdcX z57{{FN-;{cAdo|`$Hq111U#lLl2YbpmW{&i{P*#|LSO#CGeH_VUDpP5OiWJ$M1F6h z5PW+C#<9{?XYTfqbp0hPe^i09kGPsAte?Hk>b9cBmb$um?!5`=+*&vs-o%je7VhAA z=^aTJ61EyBhlMdblJW*(AQ}+(A`~G$(Z#?-5zY$SNg2_-5P7Z-MkZDbtHlm$YIKYa z!*eSysY9;k%q(O!!2BdhMET&6qYoaCIE`rZdeOC>6Y9|(;X7a!o=x4yEir}nIYjC@+)9U6 zgLmKx%4{p;1Z+#2fvztrx6xyEO9Da1w-?T6JJL86B^`xw9QAxY3R-3sgc@axom(#? z1>*C%?vgzr{C*v=B^XoKG%Ibz@LaK73hom^L`a^USXbzGouhJtJ-_(%UgKIDS~T=k z>;%H{@a|`YCCBrr_E^e$CEsU;?1EhW{x;=WQAs2rQtaLISMToZ zNcp4r{y2qwpw{%Qj(;0}@LVRiV~=K^p32f9efH4#4GJ606O^ z6&XV&y&3PK)z+zw%HOWn6VLE%+ey!Rx93re=wlCZ%#kkkC_n=$8AIil9U&{+8rSE% zks%&1ix(4BL4q!p2-_^=zyR%2ao>DXA_`L#B4hXE`Od~B$?+DJ>7Qs_NP)jgc48jHqV$VVMth_8ZTar%jG?B7? zAF+Fi=VglV>rJ=3otFdt>9atUBW73>t+IF8!SoV}fwhy9zO2Jigb4!FRy~m z%5Vi2dZA}!Z82@-VFcwwqTXj8?mB`xi@YEttlt=1{q)eP=o=6O*?X_o0PE@Rziq`Z zO2~P{b6gZ^W1Zb(KmP1awF%4`VArApU+l4^OR(WgEz0}c%_gF_x~j%uHO&1J7|?q<`SBMRz!HDIR9!q2O9N3B?P}m&oKr+lZA`SvX}$QDQsq;- z&#+OR4Qv;#6k|8d7yD!_iD|2b+U*g4(kOIC`m6mkM*BK4=Qv^1FOewVMOf{_3>qq& z)cS5jk-ixtb}}0*=>J8GRtzi4LvjSrOcJ@Fs2#Q)cnD$2X0AS^bh0gbk9e@x55?Fg z$Dm)smc^q6!(`N6SXeBs>F%a<)?v~R?$MR#1Nu(jgE5*Wk-yN!j`6KgHex4>$@Ti9 zYMMuiX)rqp(h9ZHtqL6z5xTk0JQD{E$ToG!b%zV8 zHv;P?omuaELJc9{o^vl9Kj%=DqNq_!ee*sfVfyHe`9Wh)eb&7Vj&VT8(Z2uy4*m;k zno)PDS`f(QDJl$-x*v-Uj|Py3r;k8&DKxxsC&TPK!fdW($^0ZwbD%L69yn|1OG#AFWvS~lxKW%@*Utu zyTu1tJsm0=4yuL3Go%!MO1EDl(%e88eCnv+{CA!+Pf2>{DK@1+=D#wXd_y{~pm3B@ zNDtgbiLW)_o&vyVHo!Sp|0So?UQ_4m74bU2Cf3kU{5x$Kky+8+kSJGp=Cc2&-X@LO zW%XC@ZYQfmgtWkm#a2xpY>GH+9AqEs%W<=&1b`?i^S|2ue-Nca0?0s7k(d5v)r6v^ z)C)O>vfd|@L_WVq45A-yLax^AhK`mBEBYYS7ps8V6BZ2o_+B z>Mis{N;Z7GsR#o-%xxx*i4(zucyZ7k=~`T?{tLyZO3(C3>}ID&IaB{X7{(fFJpUWM zE%8`y$wsrrMH$d;lef>2sqDk?CrKkvXchIAin<$PU=_8N%*A4K+{WKUyW$ovRSIZK z!+EA|rcW#$PF2u_gSTY9RDkRl6Ktg;Cc`qcmFzk)X&daJ=h z`zjlY*?un(9BYaU$_Y-?(QWLb8Hw-qL4megZk{j~kT&FM++iZm_doJtNc3%}M`A6NUb>U1p zufO9jv~-fYJCGF-7VWIpq8J(cLNmv!*m}wEkl8RCHKQ*uTWb69i&RU}T z$EUO)nZkSEa_8Lc0+3}D;#DNSTje#Mwf zanI|oOiSd34$pxsfeq1%F2P8=2Bx~-{2@)Tx}&tm;pDCUPkxeGzUk-;Sr%!@SwTOv zSy@)tx;{@p*ZH>2!J*yRS|8`y(Z3y%3sr2{_LGSALQk4tO(7GK7x1=#?%XF4;tNLG z(M?CdS-L~Q0J19nIVLs^G4thGA`Du%em@;;x8WyDZBJssA5_6cNIZ!Df+`KD+nG=) z>Fy6>9j~bWi6@rSS~&SyiN|C8v6HNLiSQ!;IqEu(5h6oSA-~?!Q`w!L_znm8{|V~7 zO@NKZT208SB6BraR*zYj(KOzxLMju{P6+PLH;3R@XzFT$`Bz-2;;`k1#JE>=q|RJa zMAg3mOTyU9egV|1>hcb4gI_03Hvd{?-u8ke&l6SmATU6)2@|tbNcA&-i+06lc6y!^ zMMd}7Xt`u z=p9SujUa4GsJ7oOvBxKAqIt;{V*|#2HNV;5H3@%5LU#o;JL?(yOrMM1)79}yhNuo$ zgJY12*Lu>=Ke9Ne7tOY-?cXJX8ILaw?;PLTaA>K-ig+~@;@BGa{6r^-K7JNZO9C(m zl^N&Z#2~4}lk?WoVA=aV>#Na-6Rp{s7otxU965}DmMUIAXb9gyA6_RxcR`d@isBnt zv_A*kR76ZLfVu{yJEw2(YKRRMfW0^th!4(nRgPJSDiY`OIbf7UG5WOF>q><4GtKs@ zoumjLmQ(wTMH?!+dcL>a?*Uk-{-7JA1*$?wrlVFYND4IcSG}HAXMMdnC`v$YHV2gJ z{x6Fo0*#GbX>0C0SNtzO!)NyqyQ?+%STS?Itg6Bo957xqzdc}qb$>^HVXQIxxUtM2 z_asUI5*A0SV)PuT)%Q6B*vgH{`u)+R7&R02&-H=PD%SE99E_c@$w7l$D3^nKZixru zMmr>5zvdLv!uBLuz0(3W#kb||ci%DSEsy?E#jfEpYYg*ue6uw>lRzz!8w1_d|E2_(U)n>2^oJ8t$7L&MhOt5jF$0av>V;p0dokT z^N+~t|09Q=yXuOyJ1q*V3EF0sy2( z1tkTVjZ{#QbXEc9eMqg1N0A}pMD`T}&bhNpC95L;kS32!_Q`wm{uB3~H#c;^`6hF{$;#$9T++;9V- zr<>WOs~E`+5E5;I?v!sQ=eHl^JL@FubP3qG;{smZ>)N(&p+ z@=qCG|0J9$bwFv*lwUly;?r0&|ZcYuKN9hgt~Yf ztliWGmyi8Fk|W7PPTQyZALN}wMV3q(D@E_2RU_pRXVhM-8n~jtb2ztMkA9tRle@c5 zevKMd1s&PS27?e*@F08Dk~NZOayNf;C)NTNC;D7oe^$w{@%&`v8*8(0Lwm34|E8c< z{F7x`P=Y6dJHqPV9`?Vaf6xDr{!MN-GX_p)b|yxEJG`Oe0XG3JRqzSN)E#{hj8C7f zq}Itpa8mPAw$;+mm!JmgV!(RNGGKkR02KVl&4Oe4{tLB|GPD&@A~E=t?%p_^RI$34 z)Bz3)4H?Cf@pN;)mY&`8$c#lSJNonR+Vz(2 zWfU*Yn!TWHik#{;8t)NKX8k*CvjXNlAat=NEsBQV$-XbtM^FnO4!SEFSH2j_WVLyH zm6)?IW7!Y_7DT{Y!vhze-2Uzc){VhLo<6boB7#`<|Y!Qmvu5I?f$R*Lg;cj>Zq!jb--H zK1ZyyzW9rTl1hiNheD2c9C;i$j>gblEF10aV|!H-*)8GQ^I8rq&V}dYd-G=kKT{_B zy-7tt1Jqku#owlypXu@O zD=_8GVAE|PVrUW=yp;(tcvthW1jQGb`T6X)493ioXT?pT=(fg}JVMg|i|u?=g5zBs zVtwdR!|M`Yi-`l>Cez|l`Mri`|D*Y|(M^o8&2KFBfdGBunM&>ri7~}{`-_9cx`U;x zHABUP1p*yQ7pIUyl0D+6@q#|&l5Rw=duBf69G273Wb~8ML{X?)lhMc=|`Cq)~g5TzPg-Y_w@EH{k42g~Vo3 z_U@y@KHw9i^~rDd22CZMdtTqn=UJczd4#Kqt_>fv}e_d z^E_UJd_B!cBUt2+voJ<>Du~Q%Z}u0(Bw$s5T-4U4qk6ag_8>tQXZ9-wg_>xvK1Sz^ zR>%dNiei8p-|V_|RV@ms1dht^fF2tbQ7g!?a&0u;zY}vYrTffkfDg_188^kMaJA>s zl}T1}pdIVDHucUP!q3yI2e(|50w!@%-0@|Wwh|FrUT^As#Fk9wOD^+;oMPme|1FG; zK(tJNPMYBKx(uBSMyEPhEw!{Q8GV`1GSv?u#(3G;qCKqNro*_vrxd9E$G z3I8yBtua&7yuI*)y+5*QB+Xh5eQ4h+q5ApST;t7xxWV(705N||OnXdc@Eyxejks{% zuqhRfg3CXnB@Q7tY*J#41pT7rOFyt0g!bd0`=8=gj-8se;VBGQe6~$ge{1~u)_Cdp zx}AOHAArdiL-K~=mOSY zGa*w5iX&N|Nnf6&)66l0Ly6VVZR_TVi=k=*unv}T#br-etJh9!S6&ym!XD{DsE;QlIb?@pJ1^ad9(o|Tig3~_Zqfn~2bs^1AOVXZu>izM_MBd}D z8GeIO9CrQvJN;*Xw6Q8e?1eFw1?)u#`}E?^{iGA3iW#tjZq6(10>EB6``aOheo&y8 zF#=blq-<*y7GMuA-&Ss*vU14+G6)N)YSA3obL!{X__?!yIA|%|gubY0;eg`i*Q;Y< zQb-LZZsWM}w+*Gk^|%H>Nv&su=}x?n&=MS|Q`^_7UlGX?x>yYV#iEN76!OhB!$!zn zNBCbH1jHf2G>B>@pJ}qZNA%pE*uU(OVCxbhdhY$Izb`+$bIJ3$v1Gm~7dj5X!yimU z!J*>1OYKfkid3E+sLT4@Tlu{duegCPglc(e&hY!@dX34aS(_ZPIKO)Xfq=4djEbhe zk#!rIdbeLgJs9VWc#}#>#TDVcS7sMXni>yI!8$>SxG|wiSdOH#1zpT8(hKnKb7slbUr6A{$`+3Qx zx&w6nyjfV;AdDe5baw+ZQriOYL=Nv4344mfEm^u?=wlx{8li`gL@zJ@q6O2J(|T$ULi$o+(7Jg@-|K#wL303gq4vssCf|b-3Sl^4Vm^v0BE8NIrSZqK`{^&kKaTfu?i^iXH&7hu>K@@ z%a?1~_`#@OCS23PEYSv2#}^uWL#h@AOBaV(fG7)NNd8XFNHK-#+%6S3T}%3ok3oTq ziB;y*V3qf=wGRC9%02vK9FPWURA?gS+|=Ffw6S)kpwBNff7V{NZ;l`)gEXU(mYE1) z;98w$6&RX}F9jKe6e>A%0#*+(!x4#dh#>}hj?RIHr(ZrDJI6xqDO5lM2FchO$ht=r z>b+z3f(YB^bjQrAxtQI>gju&J0) zW@W$WCd${6kx?;e;R_HYKYsa`LbH6sq~PF{3^?tvg+-W>{>BuRoD33{_YwU7DJoiw zE#<6dcrzW&{-jspXa~`r8Ukd`29i?r(aF5nI@L27*oILn|GuV%NOw;y*;VtF=M7Pc z6xB*Nu%bc~jq(LU%+(egPIxgsRje+88J`b@cvhU9`_!8s_gnD;I-{Rar1L)rZxs7E z$qZ8$sE2$Zxnwssd-_hjX_DFkjgrjh&_Ypxe|Hl4LSMFalk_Wl<@N$;d0sF8V;&10 z{f`-T;dklf4ONx*(Dk<~?GojfN#_!3*Fq1co*#jDO*zY5)N(g;yS+{yb$WL_9+WOz zp%*@TXFGH%@Rw$$B|Fu{ID!{jczAkh+g=w0X{#lA(YEI z%7m8(4=?d8dlT>v`!Bpf`4K7J)er0Vrnz5JT*RvI2e3b{kSN0@5s05?B{IDxCl8pG z`9{)Hh>MS~u0p_w;qrX0&8c<2I-%{$gY|zU&J9eIj2Jc)j(QV0dS;Sv3!#3e6_@4a zP*@m){ccnV78n0w*|~*LiLe!&@s#2SEz{-gpj#`)>-cY^l|_t}KuOC<4`&xq)#KtH z>Z$OWcI}8Vgm&TLjKJh%r#!6K1fwV3gs96ZATM)$^p5E#e85EYr9t)5*$u&7iC+Fg z8nRn1Z_vG0(B=(-oLGel2&aEj|U)WRy)Zb~Us5RV-Ckfh)*fv+B{CE&C1LX#-oGGQ@3d zqgqu(<gkpMRD0Me?~u{{`{YMIm@+}sFVs)LZ?j+0SEVvo^ zd~w#Z(^Dc}nR)U4tqNr&gZ4L3TyqCOPIP+ilY;d@HM-rxHPSz{VB4UL~ItR1CbArS~WJKO7Rm!3nhb+#gO!~!!0ahK9IpzZ#0MY;fi>k zM?Vk3`;Q_qF21%HqE~UJBgPFO_Q(8oH*7%xLv40!bmEVRnemD6Ayr0GP_i$uG(v*H zVG#Er+qz->=x$-(tYa>%uflHYq$?hJ*CPh^tL zRi4ozWR(axe8*Lm2Dpj_gOaU7F!D@L*#>S&+3eFjEsHb}!cGec!NbGI?(vrfKr-&| z&XiX9^X*a6`@_h)Vc^c)3}&|U4$F!P`rJVYynWcVB$Lk9d^beNh@4X6|D9Y_B@?j{ za~g$LO&W3#e<3HY{fPL+&+qrFCM)9|cJsL{$x7jK8n{B6Pi%_av^giB=ncjA1yRQ^ z5F^Vv8+`~P1!oe*N?+thMsTvlcfPM$*fVFQDJWaJ?}U&ym>TXedLA%-UYu4{%3LbL1l{X`jy={>=r zCGY27G^nNf#PnZ*u*5S1`&xo5%?KdNoOSQ{Q(UX1zJi}dj;JDHrCq{VzU$h978eW^ zg?$N%h#J@Tgb<9G!FJn74230+`qcpnulSi` zTB%}g#YXo<=G z!pvP`mL=+nbDn2X!qu9!=%o%R z!70G9r$bTYrZE48FzQ=~ozN7%F0seZArOeOKC}0>kAdSc0)2VkE`~qkH1`n>!o$e8J%Qb2; zyC+#CrR2koXr5-&t)xADdFc3I?1H~|O48qXcs_06nF~_Ik`HMht;<$A_6_It!5oil{0GH~?w0d4J~LF=F|yxP_MSFABb zX=!O*qs)2eg%3J4o5s;6j6u9qnI{v9y?5zsyzQ`V9fie@t%5W(H0I#@H%L_7cV!1n L)NTKJl*0c3xG2rj literal 8459 zcmcI}cQ{;K*Y}wjWug-kqamgUA4Y3<3ZM#NRSM1ptIn0ss>Ew+xW@d|CiNqyLsup(L645C5ld0pCdX zUcU$ckMHPc&{DBckt%65Z=&=`*FQZnKuPuhPU4v@0Dv7eQObrv+3v}2J1Z z?v3Gd;di8 zfZEVN%}0N1?ooNm(@11alHBys(vR)YFs=kMRYA86jhJjd`&<(Qe--!}+pni*8n3*}o9 z4>VrWMrqy`;NF_{3~VZa=`(of@Jb*5zFv3vwL;c$83-e!lds-`*_t;I0YyZG*?!by z&VP}bOLdJApwZJ))<<1z6*7GHEGqeB2C(X(9T_-FS@ zdkRi@59yDl_LnJ+p6-nwhdgg;Qm~6J-Z=|v>qlX=m>f;7!f8rMf(}=&z+eyC&{ZPO z$b!YLeJzWO`cCsGwek5q)@hIQm;>^1cME&l@JNq3trtc0ax{;Ok~r?jMA{wTb)MJM zys|063ChR>wQp@o0WrhJ@^pJ_4n`(b<_k=rO6z&=sM2YeAn`ts%{KZ8#lJj=c23_|wCWHy5}Xe(<+M zq6=^O_d&jA8-IF9S?3jn4Rxu|LaX7l4UmCrKl>cfxAnbnFYB_hDTp_G)3PFAko=L;JLlwRZ zSyU<4WmYy4#x*=A1d|J9noy$wHZ{F#n#rn+;}esU#IV`XF9+`WQQBX>ZS00TYE2i6 z3%`|II0!z!f*4|YHnbN;8-=8J*cSS|>(_4>83@hGBQYnI^_B`~HF45nqkHt>a19om z#%o|JagisgAyMdy2AO*;Cpur+>1;BLgpp;WG7m|13G0xLACwRr^u zB;^l<;0D#0(ayz{};O2W_c*kvyrQRSJ)FP3bqt6XM{2 zdQTP31|rl4XPce`AKhh8R-22RXx0>O8E9bf;Gcvm`8r&E7E*KTX#Cp5nsgUDUgF*48vAZYQz8Z$Oo#jI9JrSx zuSAh}SN^hE)7gx1-gUfe9iVI)g{pDvD|M*JW z#dbvN9&9kn6CZMs{3=>cr`0L?TIekQdqI7m)YoXVbuqL!Mp~s$7pG|=On|If+Co>+wJ!Ka{r%LAF^P1N&$cN-Wah_yG&g@M$@& znXF-PHegsi;z@_ls~B7@x!+sLQyg58BLEv7MNkUiQcNR z2IF)XYDB>>BX%Ga$FIz=`EwwPFOKJJz^h{8c6f)E%r|;YMZanhRa67+Fv>+n^m0`K zrCIAU%$uk+2R7iho1Q;`Zxcl4Zkc!z{7PlK}L%h4=( zmX^X(>m4&tZNzH>VV!9MNL2(FVNh(c9$B;87lJr4*p&%_(|@+lxLqe`k)q zNOas%^F#4yS`#A!%vimG+zQdO&l9=T;v>rCF)KF49w|SlXY|g{X&yEtktIJXTCk^r zL^;=(Ihax)U%V<2;<>uyYnUq1$G?q$M!InB2$G?q^93=B8KtGd?Fa`M4j*rC<(Apv z&(2;xJ}S&=fxTZPe=K%CjW_=lk=`ouY;naG=l2UHUTtp6_t#GGwcrz?Q z-$*)Di7is7h^4f*X#0d|D3kxy^o0p`jQ#v!h=-|BjBF16%l+!|P#4&J=@=_reu8n* zlIzqonZvrJZtxx*m($}$&N8Z#lR(904gXV75rI6Rcasvff;%Bej_q4-w@>!YDIIf( z)E_J3k}#XQqoU0RT?C>NH#9{iR?=u<&B}2u80NJ@|5{^H5$8Q|L?Mb5` z`koL>V&Ws^oyuC+_>?jmHB4&}MMxCmTLbzMDkrCNO_zeK+UH-IJG{vk3c6%M{U$A` z$QgcBM*brO$dO@liRhH?eSKnMkClc3Zoj{?^tF(^Nh{pfS2fMC&@@)@0fi}rE!4Io znmgqc5iJpQzs>pE!lY+d6q3wnuWeyf#8$EaCB+>#w$EF$(^$^Wzj;eXAdP7`r=oQg%JLj{&Rju;4-LtuAO69~{y(NBq5J zP^Hb9U@=zzxYX{AX_<5#p50un@}u>)q;eVI*Z3PA7y7>U2I<=Uf~^nljI=KYnyQ!z zc_b%1m1wzBs{DpOJG;IT#0_0<`d~jN&v<>Fpmq84nqu1RSQuD5YoXcslfpx4M&sA0 z&8?GS40=Ou^dQTRWgVwZW6hW5e4=ZvC5Vjfv@wx2#C>?XIYhh?*CI$INJT>7i+a~4 z8<|Pd*yAF`$M*!I+-~Mid`*Q4t8&eyi5F}3yE*sqQPR<$r=t^N)T|6BxXF-`G1J9j ztzM|H>a&1X`+Dos)aBV0rG=kAjYH3zEdsC0hg+Z^su&smU3|B+T;_B%!JDJZEp&-%5WV*dXnOCU*l3==i)sB z02JN-$`UVheI~n@9<^LTe&p=rgDrFQ;Ag(eR^9#058GG}@daxM&t7JCD&7YwmM^vj z@Ddc9gz_?zMn-C?1y;w_8ecXjWgxZ!+SHA zdfDVXDdTUnQnja%CC4y8=I(6;(@cS8A$3x$Y%giap?#UsJXgWkcddae(YX5~4$g(q z(#&}^I!-v*(vy)I>i!FF#8i1XaA;WW(|l(^o^bWNNtiNFfGb$?W2fjTo%Zucq zE8TaH!r6Vi&KBGBb$A<>O=sK;=mL{STQ^KgNFxafP?? zMB$PN!PJ%_jB1R#iY5uy6Qri^Uh<+>W0t{9tx(NaZ`_~l z+7d;MHwO>b4AOarl4n;=e|YuVqg$pN%)Afn4-7p^#J`yfqGIR;g=r8`&K37(J$_k$ zgypWkGF0KEFq~WxTc*wtwvo=dnARos#b&V7-46#a+Dft+H7Xl9%I4gKFg?2;(L&uc zx>Dmoo+F4v3C2Z*w+tTbZ3wp!ksu+zc(|C(Uh%{yn60)(_yVV&*R|o_`!Y_AoBq4Jy-@{lzj<6}EdNvh3BQ0A2 zz0Lo;x0ooeVPqT{&KZ*R3kAZ(NyO$0);Bj>y@aVnN)(06q|c=BB!2^E4PoDJ zU|&ssuXF`xAC{vOJwqYe2g&yR=-uDhN$$-7aqEZte(7X-S2W?#g5ZU@=NBRjM=mtc zh9-b4ukPthao#JhSbX$lvb9B#erz3#^QkyF_B|NiP+Cq3r&w|SO0%IgiwTb~>e{W1 zUAw?l^;+Xcy7io3>QOBGsS|Z(Q~c8fZ}JkVmeUEs?-2&IUcUxhTi^!8@$bopcfEGx zk*NLoM~s8mH;H|HiX5`xhb|Vm-v+4ez)&ga;*{Ar(@8~;vY5`0cwZH`kZvwp_*v7S zA5{(2tWpvs6vvL`gg`FpZInk#AZ2(YO81TcYcTO7Nu6VgIm3*#X5M zZyH|~+6{+-p&i@fXJSz!FW{=ld`4{r;l3XuX4A`YjyZ;fV(ARAkYkC4Gs~J3V<`t2 z$z6#V`Y4__j4G<9ij{Z}pMNK=T~yI{((P_Q9#u7KWR20a5vFg_;>rv*@!Zg;R6^KN zq(s?Xi=MjpQK%ws-@RRlax?T^u#qY@opM6c4xwHdV4AkeCPjfCG_5BsH64nJZ@$ov z=H@%csTjtyyo-!>!4eOMgx-%vsiX;BS<1%%l5e^~6$P@ihdx8&@>8xP&S!Z>^VxEH zPJ_t^G+psQyFv~Kbfa7$TRmobp);wvnmx+qrk-GNaqN>Piry9tA4Ax1W_00iFiQiv z9-fb}3aabtIM79X<~P5ZH|CR;8UugXR7xHQPKXpkzrXhhQ{eC8Q06MRzn?cqseGf) zh3YAc%atXK`O~QLb6rl`)uIcr_K1&FpPxLkCvL9C$|-6gBIr>!b9cI;VYvG zx2%RcZKi$ZTl-pUIU3g}*jc!bk7Bnmfg3Bw^sPi6N6sp>Hmg(GJsQ>QBj0C@LU`7y zvZuaT=}qcjs@`Z_K9eH9c}O6i;CU|G;gpC@4b4n7c$|UE6LAky(|10usnhT(UVkM)>}X3 zPiZ^_Il?ZLz2*~?t0*#HA*Fz(*YTXI1Q zcBUu*j-_rE2Lq=O*7&({TCS-DRq8u;sSiySOKnO#Y0G3|6`^^n6uVM{uL7?O)clbDK*Bd+v2G|xtxyjC} z?C1c%j)Ktv(uq}IQyBU-%8F}6$CwRyUJsE&ZJvO6TM-kEnZ4*t z9r_y-T6=r3B_`VFCIAr#;>=^5w08-o;Ci#v0)WN2CU?w%+CZ3$^{}Uo61mL-xNzS?alpKk_Jhf=CtU)BhJ&fKl^gWGU$Rf1lHJMFnnu{;C7`(3jByV_9@`A7HDg&dFRt!G-S&^T0LC$=J zqL+o1>Hxruc>;Mx&JY9|kL?0c=xmAt_B8&*7^yW55823mzA$KU7P&Y&UogJ*QI>~j zh1SMO(XeXN1yU>G!3UoQ^(j@}EBg*tUzfcuT3S&g#@LW=?(9TM-hOK$B1CUH<|bX= z(xQ>(SP`&H#ht`=uDrawtmy3YL~dJtFQC|~5)5F?(Vv|S4-Wzw)sp!DE6?E(a%VY( z8X)aTTz*vmDWBr5QSACpE`;1MDPrFzxsjr11mt0w1f2kj~$5Q$XeRH@o2U=tRti;Je65U z{1m+Jv^Ud7AcvE-AlC@D2P#SSNsuUFT_xFUuf-x_$q-)ua_kcFXOZHBf5<4QUzx;& zcA3#7%kyObUMkm9xJjH$7`V;Rjmh6uFmt~;O=`98X$$cW^U9)>uGiUkF-MNfP$of- z4;^{_17I;o_!yTIDn=!_2Xzojjr^n5CD5VGgI`bid-gF8S`61g8y9W4X@yy z%@t!R7$xUrvQgqe+9;&tLxzrlg_RhBO>?#ObsZ|oH}<;cC9elZbk@y=isM6Nt?WpZ~38afmrKq zX!GtapmG!Xl8Cz)uL=FU+!I?I2Zn#M)%-r3i(Mod-U^dZwl`y=gv+>_p|8STy9VPE z{d8_MKYndI>_l6FEuQLe_a)0-*(utay@?%7D9-BI5w@iaI+r9i#?PS+x?z&44OQ9vCW>2>pe05(&}3xP-&Wm9FE4bV9Cydf@k_p zY8+E>OYeR!POOSkm8EOh)GQwpFF%pMrz^%8QhRwHBW?*BuE=*d8{YW&rHfMVDKYnm z|C;Wr9zCH_%Z6Gg=z`i{qG3*8d<9rH#f)@o?GvLB6od+MVBpF^=o17*zZ3eE;DoFZ z-B_^u9p2E28%EilnJS8nfE9ZPy0!+$W?y>GlA7rJW4p0}FOkclGLF4nD|X(MhH2GJDFS@X1Q zVwk_&t-Uoa7ycPhEGQRCl(LIAT(xxUCi7<*=oZ6gf%UVq^J<_D(-)!B2NLmo^*QCV4 zr-bwq6_WL@Ny)TwVj+S7Xj_M!QCQ)vev`WvvgxW%F}^C&Jg_4k{4x7Ki_$<~2-e&s@$>q6_NIvXg#|71+E=5f8c&XX9_}Q0RJhCNhlz5h-4%C zCnF~RoGEt&;8JF=1Vk6x4X*xzyp@BL1~X4eNJ{?W5n zzG-nkO?LXRz|t%}nD_tIcWAk*i_$6e9%s`@Fji}Hc5m(U`OmW!Edt{|a`V_>-GK3) zs`xtP>`dUwVBf|@<}|*=ZA+e%yZ^yx%B>P|YmNeTriXRyEB}cbD|gq1N(tux`!aw_ f`#+`s`EmW>=O_=TDcV(3!zY|-{>cCR8~DEfu6Xhx diff --git a/assets/app.png b/assets/app.png index 1192ec962e64900e659da195f61d872faccc47d1..7deaeb51bdf043461c1001c51ad20fb1af6ed615 100644 GIT binary patch literal 24907 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 diff --git a/build/make_icon.py b/build/make_icon.py deleted file mode 100644 index e35d4e7..0000000 --- a/build/make_icon.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Erzeugt assets/app.ico aus der Pixel-Grafik in provtool/gui/win95.py (benötigt Pillow, nur zum Entwickeln).""" -import sys -from pathlib import Path - -from PIL import Image - -ROOT = Path(__file__).resolve().parents[1] -sys.path.insert(0, str(ROOT)) -from provtool.gui.win95 import PALETTE, _icon_rows # noqa: E402 - -img = Image.new("RGBA", (16, 16), (0, 0, 0, 0)) -for y, row in enumerate(_icon_rows("app")): - for x, ch in enumerate(row): - if ch != ".": - img.putpixel((x, y), tuple(int(PALETTE[ch][i:i + 2], 16) for i in (1, 3, 5)) + (255,)) -groessen = [16, 32, 48, 64, 128, 256] -big = img.resize((256, 256), Image.NEAREST) -big.save(ROOT / "assets" / "app.ico", sizes=[(s, s) for s in groessen]) -big.save(ROOT / "assets" / "app.png") -print("assets/app.ico geschrieben") diff --git a/build/make_moderne_icons.py b/build/make_moderne_icons.py new file mode 100644 index 0000000..fc77aa8 --- /dev/null +++ b/build/make_moderne_icons.py @@ -0,0 +1,117 @@ +"""Zeichnet die modernen Symbole (flach, wie Windows 11) und das Programm-Icon. + +Ausgabe: provtool/gui/bilder/modern/.png (20 px) und _gross.png (40 px), +assets/app.ico und assets/app.png. Benötigt Pillow – nur zum Entwickeln, nicht zur Laufzeit. +""" +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont + +ROOT = Path(__file__).resolve().parents[1] +ZIEL = ROOT / "provtool" / "gui" / "bilder" / "modern" +N = 160 # Zeichenfläche (8-fach), danach weich verkleinert +LINIE, AKZENT, HELL = (66, 66, 66, 255), (0, 95, 184, 255), (255, 255, 255, 255) +GELB, ROT, ORANGE = (240, 190, 70, 255), (196, 43, 28, 255), (247, 168, 0, 255) +S = 9 # Strichstärke auf der Zeichenfläche +SCHRIFT = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf" + + +def leinwand(): + img = Image.new("RGBA", (N, N), (0, 0, 0, 0)) + return img, ImageDraw.Draw(img) + + +def zeichen(d, text, farbe, groesse=104): + f = ImageFont.truetype(SCHRIFT, groesse) + d.text((N / 2, N / 2 + 4), text, font=f, fill=farbe, anchor="mm") + + +def prozent(d, farbe, s=S): + d.ellipse((28, 28, 68, 68), outline=farbe, width=s) + d.ellipse((92, 92, 132, 132), outline=farbe, width=s) + d.line((120, 30, 40, 130), fill=farbe, width=s + 2) + + +def neu(d): + d.polygon([(34, 14), (96, 14), (126, 44), (126, 146), (34, 146)], outline=LINIE, width=S, fill=HELL) + d.line([(96, 14), (96, 44), (126, 44)], fill=LINIE, width=S) + d.ellipse((86, 86, 150, 150), fill=AKZENT) + d.line((118, 100, 118, 136), fill=HELL, width=S) + d.line((100, 118, 136, 118), fill=HELL, width=S) + + +def oeffnen(d): + d.polygon([(14, 34), (62, 34), (76, 50), (146, 50), (146, 132), (14, 132)], fill=GELB, outline=(193, 140, 30, 255), + width=S - 2) + d.rectangle((14, 66, 146, 132), fill=(250, 210, 100, 255), outline=(193, 140, 30, 255), width=S - 2) + + +def ablage(d, hoch: bool): + d.line([(18, 96), (18, 140), (142, 140), (142, 96)], fill=LINIE, width=S, joint="curve") + oben, unten = (14, 104) if hoch else (14, 104) + d.line((80, oben, 80, unten), fill=AKZENT, width=S + 2) + if hoch: + d.polygon([(80, 8), (52, 42), (108, 42)], fill=AKZENT) + else: + d.polygon([(80, 118), (52, 82), (108, 82)], fill=AKZENT) + + +def haendler(d): + d.ellipse((24, 26, 74, 76), outline=LINIE, width=S) + d.arc((8, 82, 90, 170), 180, 360, fill=LINIE, width=S) + d.ellipse((88, 34, 132, 78), fill=AKZENT) + d.pieslice((74, 86, 152, 166), 180, 360, fill=AKZENT) + + +def rechner(d): # Stift: Betrag ändern + d.polygon([(110, 18), (142, 50), (58, 134), (26, 102)], fill=HELL, outline=LINIE, width=S) + d.polygon([(26, 102), (58, 134), (16, 144)], fill=AKZENT) + d.line((98, 30, 130, 62), fill=LINIE, width=S) + + +def birne(d): + d.ellipse((34, 10, 126, 102), fill=GELB, outline=(193, 140, 30, 255), width=S - 2) + d.rectangle((56, 96, 104, 122), fill=GELB) + d.rectangle((56, 122, 104, 150), fill=(120, 120, 120, 255)) + d.line((60, 134, 100, 134), fill=HELL, width=4) + + +def kreis(d, farbe, text): + d.ellipse((6, 6, 154, 154), fill=farbe) + zeichen(d, text, HELL) + + +def warnung(d): + d.polygon([(80, 8), (156, 148), (4, 148)], fill=ORANGE) + zeichen(d, "!", (30, 30, 30, 255), 92) + + +def app(d): + d.rounded_rectangle((4, 4, 156, 156), radius=34, fill=AKZENT) + prozent(d, HELL, 13) + + +ICONS = { + "neu": neu, "oeffnen": oeffnen, "import": lambda d: ablage(d, False), "export": lambda d: ablage(d, True), + "haendler": haendler, "prozent": lambda d: prozent(d, AKZENT), "rechner": rechner, "birne": birne, + "info": lambda d: kreis(d, AKZENT, "i"), "frage": lambda d: kreis(d, AKZENT, "?"), + "fehler": lambda d: kreis(d, ROT, "×"), "warnung": warnung, "app": app, +} + + +def main(): + ZIEL.mkdir(parents=True, exist_ok=True) + for name, zeichne in ICONS.items(): + img, d = leinwand() + zeichne(d) + img.resize((20, 20), Image.LANCZOS).save(ZIEL / f"{name}.png") + img.resize((40, 40), Image.LANCZOS).save(ZIEL / f"{name}_gross.png") + if name == "app": + gross = img.resize((256, 256), Image.LANCZOS) + gross.save(ROOT / "assets" / "app.png") + gross.save(ROOT / "assets" / "app.ico", sizes=[(s, s) for s in (16, 24, 32, 48, 64, 128, 256)]) + print(f"{len(ICONS)} Symbole nach {ZIEL} geschrieben, assets/app.ico + app.png erneuert") + + +if __name__ == "__main__": + main() diff --git a/provtool/__init__.py b/provtool/__init__.py index 0162574..8493901 100644 --- a/provtool/__init__.py +++ b/provtool/__init__.py @@ -1,5 +1,5 @@ """Provisions-Manager 95 – Provisionsabrechnung für Unterhändler der Handy-Insel Miesbach.""" -__version__ = "1.4.0" +__version__ = "1.4.1" APP_NAME = "Provisions-Manager 95" APP_ORG = "Handy-Insel Miesbach" diff --git a/provtool/gui/app.py b/provtool/gui/app.py index 3576477..804f5c1 100644 --- a/provtool/gui/app.py +++ b/provtool/gui/app.py @@ -12,7 +12,7 @@ from datetime import date from pathlib import Path from tkinter import filedialog -from provtool import APP_NAME, config +from provtool import config from provtool import export as exp from provtool import regeln from provtool.db import EIGEN, UNZUGEORDNET, AbrechnungErledigt, Datenbank @@ -79,8 +79,8 @@ class App: root.report_callback_exception = self._fehler_handler klassisch = w.DESIGN == "win95" # Win95: eigene Titelleiste; modern: normaler Windows-Rahmen w.KLASSISCH = klassisch - self.rahmen = rh.Hauptrahmen(root, APP_NAME, self.icons("app"), self.beenden, klassisch=klassisch) - self.rahmen.set_titel(APP_NAME) + self.rahmen = rh.Hauptrahmen(root, w.APP_NAME, self.icons("app"), self.beenden, klassisch=klassisch) + self.rahmen.set_titel(w.APP_NAME) self.inhalt = self.rahmen.inhalt self._menue() @@ -151,7 +151,7 @@ class App: hi.add_separator() hi.add_command(label="Einrichtungs-Assistent...", command=self.assistent) hi.add_separator() - hi.add_command(label=f"Info über {APP_NAME}...", command=lambda: dlg.InfoDialog(self.root).zeigen()) + hi.add_command(label=f"Info über {w.APP_NAME}...", command=lambda: dlg.InfoDialog(self.root).zeigen()) def _toolbar(self): tb = tk.Frame(self.inhalt, bg=w.FACE, bd=0 if w.MODERN else 1, relief="raised") @@ -277,12 +277,12 @@ class App: if self.aid and self.db.abrechnung(self.aid): self.positionen = self.db.positionen(self.aid) titel = self.db.abrechnung(self.aid)["titel"] + (" – erledigt" if self.db.erledigt(self.aid) else "") - self.rahmen.set_titel(f"{APP_NAME} - [{titel}]") + self.rahmen.set_titel(f"{w.APP_NAME} - [{titel}]") self.status.set("info", f" Abrechnung: {titel}") else: self.aid = None self.positionen = [] - self.rahmen.set_titel(APP_NAME) + self.rahmen.set_titel(w.APP_NAME) self.status.set("info", " Keine Abrechnung geöffnet – Datei > Neue Abrechnung oder Import") self._haendlerliste(behalte_auswahl) self._tabelle() @@ -1061,7 +1061,7 @@ class App: "Rufnummer, Name oder Tarif eingeben – die Liste filtert sofort. Tastenkürzel: Strg+F."), (self.menueleiste.knoepfe["?"], "Das war's!", "Diesen Rundgang, den Einrichtungs-Assistenten und die Tipps finden Sie jederzeit hier im Menü „?“.\n\n" - "Viel Erfolg mit dem Provisions-Manager 95!"), + f"Viel Erfolg mit dem {w.APP_NAME}!"), ] self._rundgang = ass.Rundgang(self, schritte) @@ -1073,7 +1073,7 @@ class App: text = "".join(traceback.format_exception(exc, val, tb)) try: with (config.app_dir() / "fehler.log").open("a", encoding="utf-8") as f: - f.write(f"--- {date.today().isoformat()} {APP_NAME}\n{text}\n") + f.write(f"--- {date.today().isoformat()} {w.APP_NAME}\n{text}\n") except OSError: pass # Beim/nach dem Beenden keine Meldung mehr zeigen – das Fenster gibt es dann nicht mehr diff --git a/provtool/gui/assistent.py b/provtool/gui/assistent.py index e8859d9..80d547d 100644 --- a/provtool/gui/assistent.py +++ b/provtool/gui/assistent.py @@ -7,7 +7,6 @@ from collections import Counter, defaultdict from pathlib import Path from tkinter import filedialog, ttk -from provtool import APP_NAME from provtool.db import CAPS_ANBIETER, CAPS_WERT, Haendler, ist_grossgeschrieben from provtool.gui import win32 from provtool.gui import win95 as w @@ -33,7 +32,7 @@ class Einrichtungsassistent(w.Dialog): BREITE, HOEHE = 470, 340 def __init__(self, app): - super().__init__(app.root, "Provisions-Manager 95 – Einrichtung") + super().__init__(app.root, f"{w.APP_NAME} – Einrichtung") self.app = app self.dateien: list[str] = [] self.vorschlaege: dict[str, list[str]] = {"freenet": [], "vodafone": []} @@ -77,7 +76,7 @@ class Einrichtungsassistent(w.Dialog): for i, (x, y) in enumerate(((20, 30), (120, 55), (35, 120), (128, 150), (60, 20))): c.create_rectangle(x, y, x + 2 + i % 2, y + 2 + i % 2, fill=w.WHITE, outline="") c.create_image(77, self.HOEHE // 2 - 10, image=self._img) - c.create_text(77, self.HOEHE - 38, text="Provisions-\nManager 95", fill=w.WHITE, font=w.FONT_BOLD, + c.create_text(77, self.HOEHE - 38, text=w.APP_NAME.replace("-", "-\n", 1), fill=w.WHITE, font=w.FONT_BOLD, justify="center") def _leeren(self): @@ -100,7 +99,7 @@ class Einrichtungsassistent(w.Dialog): self.b_zurueck.configure(state="normal" if nr > 0 else "disabled") self.b_weiter.configure(text="Fertig stellen" if nr == len(self.seiten) - 1 else "Weiter >") if self.titelleiste: - self.titelleiste.set_titel(f"Provisions-Manager 95 – Einrichtung (Schritt {nr + 1} von {len(self.seiten)})") + self.titelleiste.set_titel(f"{w.APP_NAME} – Einrichtung (Schritt {nr + 1} von {len(self.seiten)})") def _weiter(self): pruefer = getattr(self, f"_pruefe_{self.nr}", None) @@ -128,7 +127,7 @@ class Einrichtungsassistent(w.Dialog): # ---------------------------------------------------------------- Seite 1 def _s_willkommen(self): - self._ueberschrift(f"Willkommen beim {APP_NAME}!") + self._ueberschrift(f"Willkommen beim {w.APP_NAME}!") self._text("Dieser Assistent richtet das Programm in wenigen Schritten ein:") for punkt in ("Speicherort der Daten festlegen", "Unterhändler mit ihren Kennungen anlegen", @@ -384,7 +383,7 @@ class Einrichtungsassistent(w.Dialog): def _s_fertig(self): self._ueberschrift("Fertig!") n = len(self.app.db.haendler_liste()) - self._text(f"Der {APP_NAME} ist eingerichtet.") + self._text(f"Der {w.APP_NAME} ist eingerichtet.") self._text(f" - {n} Händler angelegt") if self.v_abrechnung.get(): self._text(f" - Abrechnung „{self.v_titel.get().strip()}“" @@ -582,13 +581,14 @@ class TippDesTages(w.Dialog): haupt.pack(padx=12, pady=12) box = tk.Frame(haupt, bg=w.WHITE, bd=2, relief="sunken") box.pack(side="left", fill="both") - self._bild = tipp_bild(self) - self.bild_ok = self._bild is not None - if self._bild is None: # Ersatz, falls das Bild fehlt + # Büroklammer nur im Win95-Design; modern eine schlichte Glühbirne + self._bild = None if w.MODERN else tipp_bild(self) + self.bild_ok = self._bild is not None or w.MODERN + if self._bild is None: self._bild = w.make_icon(self, "birne", 3) tk.Label(box, image=self._bild, bg=w.WHITE).pack(side="left", anchor="n", padx=(12, 4), pady=10) # fester Textbereich: der Tipp bricht darin um und kann nicht mehr abgeschnitten werden - rechts = tk.Frame(box, bg=w.WHITE, padx=12, pady=10, width=380, height=self._bild.height() + 20) + rechts = tk.Frame(box, bg=w.WHITE, padx=12, pady=10, width=380, height=max(self._bild.height(), 170) + 20) rechts.pack(side="left", fill="both") rechts.pack_propagate(False) tk.Label(rechts, text="Wussten Sie schon...", bg=w.WHITE, font=(w.FONT_FAMILY, w.FONT_SIZE + 6, "bold"), diff --git a/provtool/gui/bilder/modern/app.png b/provtool/gui/bilder/modern/app.png new file mode 100644 index 0000000000000000000000000000000000000000..788c4169398ab2af1caa871b3cf8b93332b6c1e5 GIT binary patch literal 990 zcmV<410np0P)wA{fLA!MX?< z3q>%Qk|4S%GJZF=38>!t$XY~w{h7_H!YuaR!N+QIKYYEG??>F+^bLA@22Imj)0f)SdH}L znUHzLBhn+PMiseha>T(m=F{Ci1%M5UJ6N#!J5FCJqLHE^#KjtKJ~x~GzD`tyEg$`g zo08JlVgu<>Fm)Q)n(C3D)SWsova{Y~%pAI9lQS)iMCNND(KL|E@B3cAgz;x;Q^tX8GWcl&S%o zaC3`2KoShedOrC2JnI+T!&k4*17N(8Fu4B=225?u@bS7iI2D!+78to)!cC4yl8MB8 zT{n=(ap6jdp3R3@zqo@;2zaNXqfyix1J+mgV_fKl5$jGQK56oZODzU*DJ+ zlJ=bbvq=BWpX$Yohs1bm%`6sm9$}8_5hm5B@R)Ns))I01ZQ9ZY;V1}qr9;-07>js3Uw-t!139b1ID|$P~ zM9Q8+7y09I5lQ=h!Q2+8B7{mpTmA-wC$|+C85t)(HOug8^XQ(@%+va%Cuk$}D}uqE zm*&vfmgR-r$2oND3gUznJ=5u)(ZthIf=d1UPY6^MLMdkJss|=QXh~tQkxe!C^cE;V zz|5(TjMsR4VLKc9>JT>UI*ywZQA-TTxTc=I^Tin??FbDr9@Fmu2_cxI9EVSi^6r7N zZ2kN+NeHNVLa?TuZvXNu$4-qQ8MS~4rbmUfdvlch5ps8SQ68%in^Fsqc8JpnN{9$n zOQ4+83n_=B#mrCg)QXpgZBApr?wf^6eS(V~6bmilIA5OLbIKQ>9KXolPwi2wiq M07*qoM6N<$f>)*2lmGw# literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/app_gross.png b/provtool/gui/bilder/modern/app_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..7209622f564e4c9800c266d58a42ac3b96603b22 GIT binary patch literal 1940 zcmV;F2W$9=P)|XB5-`5{8&KB*`LmnZ+P0Qu73993}uabO+no50w^Vekpa$H<9FBHJmYm8;tQo3C&YNrZz@sqPYHIn$a4I zZ;YUW33G30;rgqy_*{%J)q_Rw9>V$nf^P!^DY$9JCyG>#Fe3PYn7ij*!vl+^bLY)1 zSSuX;Xn@VHpJ2=rb0EwryDdM*e%|(HGpLml)|LVik2bGx=Eb$u(3W;aoV+Z)tksc%)RF_*Z)}e)YhIl9fZ5WvXYXm9 zApD?x2E#*paxvfh6%l)}<)L6~QWC_4J|_Y$_B2ne;#lB4>9Dwx1<{(OOBrv~w=c!kHm@+oHB+`@H@AwR$GR+{PpoGJqa$Gaa6Kxpuq zLR%4h(X;cxxy-maOCk0|f#K;tcJuU}_X(P!n&4o#%~XY$bf??++Htmg>oXK%&zxzE zy!Gf8$j6?BjHM8JGNEC|!Bcd1=dev7&ZSw3`wBd{c6M15nb5HRy*}>Wd>A_=#EoMs z8neXCDW)N0`|Bszysw)mOmDLyG-NEQkO>V3{(X+`Y<~xnwRo?W6vfgf-b^cWnVwlw z27y$)fnm+&!yNzb5bN&#B-c-^1E4>j@Zy0}d~e6QoXy2Z#v*V@QJn6{*Szj(1606( zM1~(ff0UoRcAUA>8?i?C=f{JbJeh+!i)3tiv(pMu6q9t_t=slaDvIXX*IiA3DP@{T z+ZfS581qKgne;+vuni$z74=GBgrw-$`S1l%WWq{OBv$};dB9RQuZR^)eVB5qmUoxQ z7R40-rcjJ}P!I@lZw;a-{V`YKCokHlFFWuuJH_dqJSLN>+ZsvjmQyrIUq|dHt2K#$ zL+V1aT$)ZAJ!s@$?%io1`KKx#ijh@owu~4pP5rjeo`1^r%Exd64$y@7@0gj zSu@~xL;;iICu;^Ak0>U~Pu2{0rS@qeesWxZ#t2DY@+E=B`0qEV}2Lczs7WU^i9kd=GCPhHF74D}|6schZ?75?6u5%g){;E$ zPho?$PI#G~v aHvR|0s@Q4~RM#~C0000nJ?q?GPm=&Bn*x|pCy zq+&&=I|Wh1q}7e3RWnXH^U_#4&Agd+?{P6nI`PdDysOK*@BibR|M`HD(`sSM-Za6K zy#>=gCJCn5#C?$*I5x9CemS(^aUgIm|GB@FeIiNvJs^PoTPuag8rbF%?yC#+zf~*eCx~`EG)tzDidIt2D@^;{@zpb^>eee!)mN?-g^Ns z#we;X_`7F+T5Vr^;hpyDJDLJe6O1h4my_E3qxIVL`6r)nx${Q78jcts8!KA=$?zXtHgwFiOi z0-pyD5QgEiQKh2ZdzpkyLcMp!hLJ>Z^bEj>Me+i0LSRLT#hM0Iq|jQ0l!w`Hb(Cdl zjM1@Ydygs@W4zBtel#5Z0-zH;y9?}IAD2FJ`NwPRJF*>y7CTKbVsxW-$7F-iN2L)q zmvF5H_NBAEA3E!s9}G6TfwjgPJ5dxP1fg}qdmG_zH`C8gpS``T2}YU^+GdZ3jU{}m zfj#y1nKxH{ZC_lwxn}zJw){@&TlWXP^GC<5Ui)*oX7g77SlF9G!F<)R->UD&-7i1u z1c5w+1ZoWAqg)ha|Lns@_dWONtyZgHo6RLRsh>K_fZY9hc{Yk84Fbb(=uuU|C`1wN z_wVjgMc`P$;WD6VrQ#!(5eA9@L_koydMe)faTdi4rvMcYF0VXIx{;zNdG6WiaT^4L z!3=PPg@vNJEJ7|_Ug5;47yXeVb?=;45kUk=)0C^A6O703VQ+{TRGzEcFw+g5s4MbIHC248nshv0($k>?~d)~Zv?_u%A4yl;0=cF9z zE#|#@@A=I+_ndRjCG1iJpmGVk??cd@FC8TSs9(!T^@(?+P=F(X>{drQFab#ks_(cG zRIvz7t4F7qR4PFc!2+;v7iV;SqViN2xhIKf(pn+su}EyeE51k2oEXZAAc`EU(27?42M6`qu@^qM2qcyt z#_huZQmFu*EyJEUHFZLB{HjtkL2O{MfsBp@&KM(rz*&cSW0PCWO_sQgFm`Q-`qjlt z5BzNIH|L{b5xlSfcP{}+N?@9WefQLXHv%Jbu_#PDG7*pM9c8061Auf4LjXX8IJVNP zZ`y0CH#OTWgfai6zHXmAzOZs@P{@G*OC_k;S=hy2PQEcVLUUGS`Ms%+MyICc=( z*0a4_2b2g(F`N@wsjS7V#=6-I<=mzXzw?8}jV;VW`nkJrbnU>MJn(!jgE^~jgpMo)(ofFWIA;!%3=%=$YcU&W7xTYvO||O zlWmb7%h{|?I%>Ng0>IPrGhI2lepu{GievejZ-_@n14p#GvPwh{=a9>dKq&<{90h=< zmnOO{+&_v$4k{)XPj}MX(8cF25doBD0x<+Q005XSrw820zW3)$(s$LqfWo-tM6jE^ z_jz&7b#fSL08n1)?v}2A)hFH&0APjp+p(Zt-{K^@|4Kg#@VcWHuO^PgC3P$$*O$3y>lAw_I(*P%1p|fk(s$`u=8Y7Ablww?8 ztvZE>v{t|P`rP>l<=zZEKN7)}3Q)&hUcM9yzfN{btyb1zs0|ND47}{?=^U9~^N(HDv;D90P*7n&= z{`z9Jw)w#|CK?OdRtO-i6<8(zS40p+agtS-Ts~*G(Q-3;zxSti<=00I&7F@1)j3qZ zS}4GYfL7N&2$+=^qv87=GFcBw-)WJFXy?5#8l)7AhAtMt7(X;rNgBGLCW7R=j02KA zCn9j4+kXJ=elG$D$)KIwt^mJiNp-UT09FVr1Sh>WvIyXW5ce3kpXKBY;VF1WE;1sZ?;}$Pt`4@f?gXJ;xFePMUt0AAyr%|;lKzrfB1#7Jp>P_fIMn)tEf>b_E1sH}Q zd7d{mK0dAn2ohzCL9^NHy%+8!pw>DfqPJSDR<0i)0I}ARbM9XNFg-o}|G8AZUy`~- pD;A5qw6rwv{BpTG^aVNq{0B9-|Evo1-w^-+002ovPDHLkV1miQ2O$6e literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/export.png b/provtool/gui/bilder/modern/export.png new file mode 100644 index 0000000000000000000000000000000000000000..8b0e475787eb498e4ea4b8687a52abdebcbcad02 GIT binary patch literal 550 zcmV+>0@?kEP)VN%Ph%UL1D)S;Ns48;+MZltiBH$Bte724mXj_sbTjW}DuS5Y$ zw_y;?Y09@RYdmw?uf$c!=T&bbdTF_SP1PnAlg oLus1kaTe)!r_=d#5M!?X08dn}s;qX~LjV8(07*qoM6N<$f?aR;X#fBK literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/export_gross.png b/provtool/gui/bilder/modern/export_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..96106be9087e31292e9abecaa4ec144fe40ee797 GIT binary patch literal 951 zcmV;o14#UdP)te7`&M{NC)qJW&-? zWv*k+jVLk?uGNg_c?v}J0D#KwJ5+9b)^qRFDeqVS-rn8d;&*p>?b*-g$C zFDJ{|d|`#6J-`NQq;ZN3EXlp|TzlgdpK4$6R~$lWF2{GJ}yCs^ZzYc^(ti334Gm1u>uw(l(%Ab6~>k zS{1?q9N+nntFK)CdyFxeFb!;XQb)Ut4Q|msiopbkD#!{V&mb0D{3|X#L`49Hrh=H4 zdGnjEsPa3gOcRgeGI-XvzI~pH-)oi!Z+hH7=}rJcoKX0qB@qVkUL`G%)*_HzqJ@&qqR+^ zF#s^ed;t7nt-T5mO;X&&DykmUY%e&zv60$621KMFB2NI1k8SJ(p9X{lL#|-(j_TMW4b<*2sM)c_$!|E;Wz4xN3 z&lzKWPLc#;78a(Vb51(Ry4T?9>Z$^G?+=`FaS#MW5h*Up8Gx$dy$ATB`@ZyD>*nU> z(_t7s700o+)-L3{IZadY`Me}aa#XL^8>9N3`T=+4#bQw3TW Ze*qj}ZIU|=^CtiR002ovPDHLkV1nFpy;lGL literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/fehler.png b/provtool/gui/bilder/modern/fehler.png new file mode 100644 index 0000000000000000000000000000000000000000..954980d86b2826edb283f4bb5e9db21c651b5e4f GIT binary patch literal 1066 zcmV+_1l9YAP)9+l5XFBp_ulrs%18SupzsP(FlY-ghK&XhSs0CpF{rO@j3%fkL82}sCPXTrd?%&YU?JVHP?{L~We} zfYTc`#C3z$nuEtn)m+8s9~;x(Hum&P%&x6M{*UZz>*A)o=$ipHnfvlcG%rAKpH$?A zh<}q2zFha~UsoJd!2Uz%B_io0Tv%P)oCt^NL>tE4NzDo101A?bkXK>cY$7$^z3y`V zfhkf4T&v2YlW_jQ;=Z}6Uj>(j!7OBx=4RjmA|MW4cDJF-vee1VPon+jTZ<J zqKY86&G1|V5yjoX4F``P#3Iq8+r#TG_5Y#*?orq_Pjyaan1CWe7`;t4GF(}fsiob? zMuxHR(F!?;IpkEtVF%#)orDay`Jw)M& zC$aG{L=_jJQF8>I?pk@z0-d=1PqT>MS2h=^&NX9B%NmNWZ)3%-{iK5f*yIGOKK+8l zFTX~9#r=4eO{>h@JrONPQu9z8;;^h%v^I5j0dWgNbLMh=_XmKmWb;-$1mgMz7C!eP zzkjxe-s49|>I--X)$Ca!M5%=4Slm@aW}VPU=GSw*{e3)3DQ?*gK=-~~^d37*(s=hY z*-V(bYGm}KW~o*}?$v902xu-x+)$WqNE#cFIH{1$5aFPigCjTM@_2MTzANjmQCU_t zcSHntJj;0C@CgBu*&4@iy7;5PuxrM^fK_XCc%@8jXZ-`mw9M zf5rg8I68{G6$xr)u5ltazdgn1wJY?U_`Kqo8QuHaNrwg*{^0^zQ;VA+0_HAadI&(O zPob-|xT7)Fg9E9hq7vKqn0S^E&zp~%O?#Hz8b)hs(OeF9D;MIZW*`m6)?e=5)=?r7 zKsrijTPLBbrTBGYqOS~QW{4Q75h2_efhck}Gcl(j(P${O@5&4Mp85MMUIMEYO9yBh zg!8M5?KQ}*oQjT`let5s&>b`uB(I9OGZ8p;G2i>{mY>L`^5}O=ZwK8Cc5cnmwKZ<< znDdl~EKH`VD$!s-;EcH)ee_cQnW@;w)IVfaqVIg`->+W2DDiSj8Cl`(8jJL}`lUxM k_V)pFK-5Px# literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/fehler_gross.png b/provtool/gui/bilder/modern/fehler_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..23e917676540f6033fcfd97b4348a419b78fdd0e GIT binary patch literal 2334 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 Xp?0{j0jQy}00000NkvXXu0mjfQ1KlI literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/haendler.png b/provtool/gui/bilder/modern/haendler.png new file mode 100644 index 0000000000000000000000000000000000000000..6d04417ab93481c3b7095d27e972743294a943ea GIT binary patch literal 876 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 literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/import_gross.png b/provtool/gui/bilder/modern/import_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..dfcf8de88f8cde8905294d109dd7492fc33aa751 GIT binary patch literal 1007 zcmVD+~6o$Vyv*$fKPH-aOf(Be5BqPz%ad$*3w(^Y4y~O8+XmIfsLYN|po$>kA%IBkseR1I3_U5%1?J^kU|!Az z=H*;qUd{#P<#Yw>+&^B1sR}9^m`rYcNnlD2|1%?&4p(Lua>z;B}Q|mnKz*;80RL ze~dK#j^%5wWs!qnqjx}HsZ=UXPEL+D8jW~;eSJ_>ECf|cSV>r1`2op)h!bD3ahXG1xo_qp;v%GzD>8$12D#X0Q_pLT?PmqUx<29!kR->Xtx$fT3gsL zgR1N4BgSDoA?YlzdTooj$Q&l_INv=2L}WrlE(6aDh+db_F&`Pec>7P1y>}3C80$c@ zsZ*EYU-U?tAF}$!LxQT;xAPA$$ajB)QdL!kNe|I{N>KG!xv@dqx`ThoLrGDWP@M8; z?R?4d^?L+WubXm?<51r{0#&uUC5PNRVI|2#UcX0cdl`Sy!}^xE`2$IME89@zBO`a5 z@BBwySWXGl;K#R#n?GZW5bwRq=WlLPkA}{7gBZbCEJ{5RKE2T-bvKEdH(7n_$1L9+ zz3zr#H230YJ_Qw4WCPeB2n=C_Vv8M0k-g{8k5jl>(H59=rc^Vlr7IwoBEiIe@h%i&@q39!X2li zHJ#DD(WZ0c9p;vTfD1=2Jc#i#NDE6KsES~D$$`C-EWdFG$9ekHWq$vA9nAvfUO`0@ z8UuOp1fR}cQ4lBDaq9O@V1*4Sa|kL-wIcU5BSETv17|9jL2L->Cn^t*UC!wJ^F3MZ zQHtD$fljL)d2G)F09XFJMK8C}*>E%nsaz%a0j0b?1G0})NdEu;P!TAM{kvOy`}R|O z^VXB>nQlO7)!yLfS?Ppqno=HDN`IIT>r|sLT)S$DEC}@|t%Xt zhMOS-T!c+XkjgW>n(oF_ptp8`eYGR}c-=WSXL3jPCUoI^8>yWnt1HEAuo3}7#NAzy zAY?7@1jWW#>c73t2gk}j#)p00d@Sd`I)rAg;psUntfxF{0-Aj%JXc=*~tt}!rf{{s*-UIZ{@dRPDe002ovPDHLk FV1lshfd&8o literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/info_gross.png b/provtool/gui/bilder/modern/info_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf7a9e5977fc5f9ee4380f4380b3dfe21303e27 GIT binary patch literal 1748 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 literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/oeffnen_gross.png b/provtool/gui/bilder/modern/oeffnen_gross.png new file mode 100644 index 0000000000000000000000000000000000000000..6305a96d75b0561ea6123f53d375c4c966fbb1ae GIT binary patch literal 811 zcmV+`1JwM9P)1I{;e{6?}+$fQ+1UjUFk z!SDj6b1-M4c1|DwkZe{_F2}2jS2B?c$b7B|6GXKdBt#PQE4VK2P0elIe=-9#`xFd7 zdM&5{AdkEPz*hKXGU}T*Y@mqR3?r~G;&BIs#j#82`K^VOY+6s}3Ox_EZk(5@dtZ!6 z43C&_IHav*wDKfUvQ^v>zeaXtDYZR4S9tX7-b5huY2BVIe?7tQ7w z4u_CPMzw1g%0o~Da2y4tF3Y>On;h}W!_~W~jj3Df&+AVVPA8aaZqm(705iiF3u^@I zAxHqMwTQ;TG(IsV@7F$vWjtP8NaEju0bpoR->s=_%#jfe=OfQIywTi&0lYr3Gs-7+7EdFU>OS_poO4_{J#E$F&4wa zNmynf<=Fa|&IE}7wrtC#k|P%T$NM}5wRYh1X@Io*WhCSZ*@Rl;`)5nznL_M2B=Y253ZR!~F`NhXjS8G&`(J_!*b9t9rJ|CPw zpsyQstID`RP(*|jaj973gGzZh=a`S;!CLqy?-CUX=w;#HVZX5 p+2M(&$IQHjP_FOw{D1*1`3WgiKnR`fs&fDU002ovPDHLkV1nj)ZHoW^ literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/prozent.png b/provtool/gui/bilder/modern/prozent.png new file mode 100644 index 0000000000000000000000000000000000000000..447286bbef8a37b0fdea1d0b9d55943591cc4a9e GIT binary patch literal 686 zcmV;f0#W^mP)vN~J{<>9$RgEt457$c1SUBl*$18H0!{+O#a51GULjCGAoxv6w+Z z9Gn?2pF*S?QHa{rQljVs)Rdfgx5XQu&dgH@>c2ea@;m3A^S>AVzofuxxX=w3x~^<{ z%pXxfirry(A&1xwgES9YV{4z z8gJr{s6_o{J}~S{TXS&tp}K1bO^yzO6tMKI1*G7}duh)$ zPaE6R;?;yEp3pThOndB@o!64RT%DD)zp8b*>NeWOSAkd?-Sd)5W10mw3N5eh;8R<= zuHZFXH0CTJn0)A1G{>jT9c@%zs4l0f<^wYQk^WP40Qe(&D68nUefsj;qJs~!B$)Ck zgu`a`5`fEz3Q8+y9DSN;A|L2ARHo}wXvtnYr46k9I777cJ0MsW*D%-9^f%Npc)AXA zeIC`+K}e>24nTjzf_08vq;&r+R=x%qK0k+M6asQbpJufAmaR9MCKx|XQPm4pzC7aj z*{9Ykn)+?c>2)8f2oahb1#<}@nn|yo1S#N>ZJ3gFLgakF+)Y~}4qe?%qhGYRxI;PQ5083Nk?DGzXJ!#{)&`N#pd@;)_E zAp74z^Gf1(F4DE}rD=@%^(x8bR&B{eyY$!`Ee{Z2;oL6@W0Gdpm5-zOEfK$*f! zHFM(CI}l>NzMGERJ$MB{)MwJte*|eijZj+%4BW(J97QT|3|>Kqk8o9}Bu2mH1XtJA;Hel!C=DpCj3^FdXJHALZ%_-TMT8{Ke-NR*fvT-U zs9+{WfF369zDu45S6t$MqC2dF~`?Z|H}yBkSw5r&Ho2|4chOw<0R81i{v5W4e zV>AxB81@w{ibW92L%JkUWZcjFD)nq+N*m}uP5ULu?jcEA|G>00htMMYzKsFafaHf5VU>P<-Nn$1%Ik6>{B~=DLSvtXDMNuX{S)%- z_DR8*Iz)HVF@iCTVV_x6KUoq=5d~7v+IN<{F+2O8=?L_Fz@G1HTKoQ{t*18M8{<5N zbrym#jc{5N?yBusQOvPVQVisWz00000NkvXXu0mjfg<_1K literal 0 HcmV?d00001 diff --git a/provtool/gui/bilder/modern/rechner.png b/provtool/gui/bilder/modern/rechner.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a12b944bcc9395e118480dc6db96dbe84ea532 GIT binary patch literal 583 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 None: """„modern“ oder „win95“ – setzt Farben und Schriften (Feinschliff der Schrift in apply()).""" - global DESIGN, MODERN, FONT_FAMILY, FONT_SIZE + global DESIGN, MODERN, FONT_FAMILY, FONT_SIZE, APP_NAME DESIGN = name if name in _PALETTEN else "modern" MODERN = DESIGN == "modern" + APP_NAME = "Provisions-Manager" if MODERN else "Provisions-Manager 95" globals().update(_PALETTEN[DESIGN]) FONT_FAMILY = ("Segoe UI" if MODERN else "MS Sans Serif") if IS_WIN else "DejaVu Sans" FONT_SIZE = 9 if (MODERN or not IS_WIN) else 8 @@ -295,7 +298,13 @@ def _icon_rows(name: str) -> list[str]: return [r.ljust(16, ".")[:16] for r in rows[:16]] + ["." * 16] * (16 - len(rows)) +MODERNE_ICONS = Path(__file__).resolve().parent / "bilder" / "modern" + + def make_icon(master, name: str, scale: int = 1) -> tk.PhotoImage: + datei = MODERNE_ICONS / f"{name}{'_gross' if scale > 1 else ''}.png" + if MODERN and datei.exists(): # glatte Symbole aus build/make_moderne_icons.py + return tk.PhotoImage(master=master, file=str(datei)) img = tk.PhotoImage(master=master, width=16 * scale, height=16 * scale) for y, row in enumerate(_icon_rows(name)): for x, ch in enumerate(row):