From 4626916f7c30dea2bf8f0b4331de5e5fbabb5f9f Mon Sep 17 00:00:00 2001 From: QIDI TECH <893239786@qq.com> Date: Tue, 3 Sep 2024 16:11:08 +0800 Subject: [PATCH] fix some bug --- resources/images/cali_fdc_editing_diagram.png | Bin 53939 -> 0 bytes .../images/cali_fdc_editing_diagram_CN.png | Bin 55397 -> 0 bytes .../GUI/CalibrationWizardPresetPage.cpp | 300 ++++++++++++------ .../GUI/CalibrationWizardPresetPage.hpp | 2 + src/slic3r/GUI/CalibrationWizardStartPage.cpp | 227 +++++-------- src/slic3r/GUI/CalibrationWizardStartPage.hpp | 2 + src/slic3r/GUI/OptionsGroup.hpp | 2 +- 7 files changed, 295 insertions(+), 238 deletions(-) delete mode 100644 resources/images/cali_fdc_editing_diagram.png delete mode 100644 resources/images/cali_fdc_editing_diagram_CN.png diff --git a/resources/images/cali_fdc_editing_diagram.png b/resources/images/cali_fdc_editing_diagram.png deleted file mode 100644 index 8b29fe468d039c3770c37f1f854ec1aa71f67523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53939 zcmce-WmH^E&@DW;OMu`WAXu>A9)ddr$pm+IcZU$%-QC^YgF6I*y95SzxrgU{@AvQi z{aCXWGiQ3v>FTcDUA1d>sG__C8Zsd=2n0ftk`z@2fuJ8iAgFjmXyD4I#XAn*AC!Z# zgb1i|g7^>wA_qx{eo=8v|JUJ?PCVoUc`Q51tpA)=-K}2}mOe{~Nsyl`<%c6B$wsF! zjqI(^SYR<4UzK?hm6>(5c0E5|=X7%XaTM1I99!X05%no0SJV(WoQ8IX7}pK&d!UwO z=2Xeiv(o2|jyTSul*{Lhx`V^R)5FTyqNBNzZ$-)RSa2f^7K^-md}U>2CS%F0Yquhp zuwO9yn|p$FPbKLH4D#%_fX~3|13FnRkKys#TUb`g@NwE%#W527UN(4UIjAUaEa0-i z>lZ#vLPCPU<<~|lqF_C6 zBBnoOE70iY=JxF)jGu31RI*nt{>bi13fR1_@x+y1u(nA|R=EB1Mf}vKQDu+c3lwj+ zgzaOIot<+Mz(;-X?2KvsXKUahI~y*Z_rZy)|0iasXz=B)9R+ssg7Bg3U_D7Xo_+TJ zdKQl5Crplm%sM#p#Q3#&u6iuPl|NIGD%g{k)g3mVN0FAj-r=%cHga1uPie?5*v{h3 z;Ax>!)*1Fs#OM~OoMUBZ(ljCKT{Dm(e^n5~$k1sNwYB}VAdai}3Jg&=l=8^wsrBE+5QmtYWIl7zfFEs0 zVujrJ1_A;CAK1>Q0)e?2zW(~(fG?xgi4py3!44Y;e)8z2jj>R)zmw;tGg`(^e0-lG z2($q%a$c%S6GVuI5Zm&bIt+#0_oF07SOfKXZqo@GP9L>fRLERsDyJHN>e4?8M zJ7D2T2w8oL0Y3co;YV`qoP1zPSa(KCMg3v!mHf#O{qgPE(IVoNcNO2U}VXUz)TFrj3NHY8AmSSsQcxg6Ct$RCT+4bCV^I9F5Hdnb@cb)#@VC2wX4wpOHDb;b;_`hDF)2cGu@ z6AnFv@2yK;aJc{fY9v}iUO;@&5?-T6DvX-)hhcgq_BeI9C#AtZb<)ZM? z`c*o`x%Kvg!I%fHDtpWCAHUZ!z!<-OWS+|3;tb*^JYkY|;JZjN55jx3+xU_X5;oz= zmxcXZUgqWH)vx)^PZ~9}-Dp+zylLBPSgJJwO7l^hRSd=nGkv88@NmZ5OEI8!=Zzjyn?@E76H{es)&CQKc>wA5blJaum ze{^D$#}gA1g@uJ4x2HUj+pAei4shAW4*=3wn41^Mro=jbUp_a}(xAjv6}3K;qHAky zB_tvOIyYk&03kiVAv;;TDr4@Jjsj1)dm++QmzU)Fhh*~d}vnCk26bzK{5 zjf{3Lc1L0Sx__=3o$KL?fBhN|JJ3B`e%?`=o#?a?tt~4n$qWzu_Uqp(U!?y+);c^+ zS6Vc!H+5O?QQ>8zrB?*bUHJ(kQVUB23sq@bE19)g>swoSPt?Wtk&q+U!TAXl3@A;K zvxb|w@?-IEteBF_G=%whFo9zvlqiO$Al-1SF7M~9fv}W$Ybvagii(QTQsf{J@FWN7 z_CyAs3uNu&=xF50d9B^;a&MgIo{z~C7@Y*h8S_hTBfZqUlfO-nm6qAn)rfFs$Csyj zpiv$u#t*PN2bl9WKLwLJAaoCe;iaXfu0)k`0+W(14-`-|Z^5uI_RqfgvU6 zv&lp{915=Mt)hxC>5O4cae29BweA-%cnQQjv$W)Pf3X`G8Cn1Aus@L@;`*pM$3`jY)#&+Ecym!b`P_U0wk5&1&C___}~%vs7v| z_`Q%((bk={*jeszd9jnTxa=cV=$ADNR*K)duVa1riB3OOOMi$$0Nl1;_qtV8Q9(U< z09+byy}Z0Wb~!EvaT600H@6n9PCr{a>Y16Dtr3xDl5)nGz~h9Vwz|B$yz+8JIo!Fe z$XM;>2)jZ?N#={slzdv56K!Fdy&$kfx zq-%S!+@Ot77k_beID78u*^Ht1v-pAwb^G5^opqr)U4c4oKx=#wJD8R=gU5kp+%PNO z=|Pg!-F;I#kX78Bl~!DlnT?|3>}^^5=9@u+Q1FO{?2b<*scOyV>E&kUhQ3@|azpai zS}WIG*1cjR`&SMA-t3Mhg?JwaMaBj#Cn^W`=~XcX2dLvpXE$0Ep`qdM2T1T0238qohsV4*#~!$FkUwcOj(4l35rSn?H_DPHudxz~Ijo zDYytl>NfCMEwkH*>dDB+EU;4z$f~O+HObBxveL$Hw6?ZdueK(n;8p?ea&vnt7CLI9 z31oC}KYpmh6Zr}3vlODs?ocS*VW!FIZ=%{90E^t7chw%!HHUBjj`dI$I7;+G0q9*% zmr?odLqWUuv%7)82jAe};O~ryJWAgXYi!m#UDn(rP7Y5`<&RN;piGSNoeOJMV`HO| zYvJ%O%wC4DnHlATE~W^J#YzCaGFbPdDJqaTQMV<89%AfYEK&z~ni!7(2Vm~Fnkf>z zE&{y{ad83khReV7&y_!X-B17C zvU)8oE%W@Z4Q@_OPG$%m43XF$<(vP0RLGR&D{N@EhP<3YG&Me|&ns$Z99yRqz6D25 zd0#|-j63uRa$L>_#US%`<+1Fysyi2p6`Z)Dv#ayN!Ocf zvedI18XBzAHWS2HRgP13W>E4CW5A3KV34+Z+*W!}0R!-7bVi1VOzf=8#-@h~q+5P4&{!D7wP z{9BRywe(VgSPufNA$5{AIdzz9gko(nuM@q2>~Qa2N@+S(8Gf6!_WdlM&eGCf4uVcc zDn?$=rlzL0Q6D>gi;;E+H@ee})1G^W59sqb{{vM6JJ-m_NV$YGox^Z0{@V_bt9$ND zIg9HcUxqS~C1isiybkf%48jAgw7bpz<$@zGC@(3wKUse{xjtSj$~av`hYt|UntVQJ zWDr#YyM9z<9Rz-sB}w(<{VE}N@y;;L-w0guy}Z5Mb2?XS?HSn1V95h*@g|jrPussm zXo7LRHe_b;yKiodP?m|)3Vo528&CYCLF%^i&L-xlwUWs+wXiMgiW1N53L2&?Y2^f1 z+=KcxzkdB1BJ&~6ETEc+M1>FV?phZpEB>GEOHpA}qL*oIr}V9v(_Ef!4;93ZCVncb zs8E%GE8uY@^*rmD^m)0QpPx_ZipAa9CvlG&(EsqF7>8qntInllnc5_r;HE~`+@h!L zc|IWY)F&j1!lOQok?zps@K5}#d8l8%rapTjcc2Wf1=soa2bBDgvzJGR&%HyDCO`_!gx5=}Ot0UDJNt~@iZbS` zFhe+4nn8w|FhaZ4QA)bS{n{K3+U^J);FxmKEDJ z0Ge{;8je8vVV*t05VSoMRc6;$Ki$Vp*Y)yn48mpBF4sgnZIZ@4`p7s+AN*p$WPd2O zz=2#lveh4o-7;v)$IA;~l@oxO&yTmSXCXqc)yCtgfK#|d0il^RQ^#)|<^rw$+VZT| zr~RX3_MxI%f5}6U>7zHi`m(92Wh0JT^|~OStO`|1iV@N`Vv=2&07M)N>XkdCh!2~FV(^IwKDYg@p28zJDMW5$I0PD3Dv)qqL>TNm}6k!ie*qfo%{S>-K4Scf`S1MU;<$x!EY_OG|md{ zV@Jcl!+fvfgkC;Kdmg%)l?f?b`^~Ziy~#4R0)LJ1IAOlwCP|RvdSE?SMP((^9IpVd z!g|qgzvzJ5fxXMzL=D`$`}DT;MU9V-n@nbU0izp9Ce#V|N4=YP%V}xyb#L2FHP=U{ zN_V90Q0$MHZhHhSI2ZHkI!?qU3*}%S02^)Zj4juYD4>@6#Q7gsvTMTKJU%BH(IrfT zN2-`Zf?qNOJZ^w6%xoxKz{42`)9!t&AFd7oGZ(9LZcoR`C3-h)SwF^Ik5GO-k@lub z=W~$Yc!ZAG<{UJqy-o2PsRtO$yfpK zv{nb01lj;1i8A%7n}-nKr;QH#@}T3zs@p*ZM2fx1tSp)^b^tETGuD{RfPgU#-TwF1 z-TC&&3ai|=!{0#vX16i`4{$r%==sj5rmijlm_?1!a6*$ws@p+TU}(DVzqtW;?6T?xpwU(QA$1h;ETRC`8$~;rV{$SFrBB|)cr#?hrO|^ zr=5@LRoW*92a3l>Mip=?G8Nxzw$3*Dz$Sm#29J)91A4L<{Z-BEa}0Ax*BMYK0vUps zJvULzl#9#Cz9|C%l_MUA$LHl~();E!2mnddK3b;ITGF44;=2?dSz4}oSy0t+K}_21 z$uuapqE(C|qoV`{HXYY$lre~~&}p1j7cbJ^zF`|!0#sO!EUU?V#Kx`0JwWMpJr z>uSRa#3k6mU@+Ls>@c408;E64lKJ-v1v0J+HM#1$l@1RVz%S3{HbxBit(NQSdEvTe z3S_(lvy8w%T;OxJ8PcKSR%YDvIsftf+A(B*}6-e55@u!?t*~eiJ(1`^-ze~3m4r4`YUrDHS zC=$jrX#Z%mOeuSZA#gPXq{JN-o~wJeZsMJ{v}La?RYo?gb*3rc3UwLq)K@#rwWF9^l+HyA?lTy zZvXzU+FT1b?8!oSx#9SkGP8dDLe^SbbzcBt%os&w#Y@Xs+XCBve`-QV-4VN^e4Y$A zTy7UCGW0&Si~j|Q72^%?nM&ip09$%xr8AI&;2pQPp68l- zbtJTLVU$R7%`7jw-=1pOxcZf9vcaI^8>p(PuCeO?;WMz*uhekizS*JT%FVWiT{qV@ z16yq&PCG5#N}G#9#pS>8Z?VDg%5qC^-S}y2MkBdmVJo~^!;~jD?=AUuLQ>le=fj{z za)DU0pdg4<4Gg}&pY-ttfDFh2?b0J7(J4g5#0K`p(}XTlCY$@%0pk?&ytTpU{BE`D z?xC!O`M#ZdKOY6lmgy=Yl|$rG*o-!Ng9b|Q0ytMz{?O{%vqnqhn8}KRiw2K?c@=o8tE=># z^jM)gyvaZ`l8@J?r+AWj(@^DQrKo;O(?LV?&isAQ7ghqJ6L+t9aVaS&3yU(o`Oh(u zKq6wxoeswH$Y|27b)vm|qHU-oGh5d1^;pJYnY&0ch8^0`c~gpW;>EuQlcFSZgYgBvZu zR9JLB@VuC2R`$$$Om4SLagrFq-gR9V8eU!H>MX@*?*Igr<`6+q?--YhM!;${>&XB$;~I)`MZ0i%ajfe;37Ji zApce^c`X~j4P*$!-vf`jr|7_kp;c-5PFt$DD?3N)Bq0&fHpD&-gb5)cInzYlh4g|9 z^r)Z97{$%pM7aJqvoi_O;lp&`yPo6LkzW8r4J`b8WlYOAMx4-=xM032QE33c4!I+_ zt|KwGfOULwasn_V>j{&g@2KQ(&3DTI3Lr9*kruUgl=e_;`H5M-I$9eQ7f9?Gaf({D z)!NMErBziE;%82TO5Ay3B-y#R);m1#d;!Zo9Dt84N{1w(>An@Z8s#X~nwps@g;qFe zk(EGy>~SMd?a0n0MbF0z&{sSmEFfUS{Y5ptA#7@8CE)c?PZXPys4@<@Z6gq!5uXix zw+|3*MG9FH2@FdNVMe2gayOX=u)t7m0VWCmuSwA@d5X-Q{G?s>yT6WF_BN*_$VlSS z=*{(O{s7sK$|T369#xo9(3O7f7k5@n;78L~Iihx(#tB+2_C^W{lR(g{p`mffSh~N! z!5+&Y?P_EPSrcgZ>_7tZen^-SpZb3&yAJ^SEBY=*jYEPmhQngP(b<`kgQKCTsm*Pr zW2o(~N)Bqs7+m74q0)~Zt?t)HK!6Gmknh5=^6|Fe4hO!!@j9Z0T37(;SPuMpA6{e1 zzPzxou(k%!RkE{Jdv+g#Lp3he=F_HKenrREwzs#Jm&*?4c64-9RD6nD=Ek79p7 zJREQZtVmS+Cto96!{_$~d!)IFWOPFdi6BpPs~j|wnm=mF-7v}J5cj8{ZIH!2*9 z<;m>WP^3%83NWhR~V=6FY>|l?-6hARm<{4Je+hhC=^hN*ARCfQ4G2@S+&JS$- z3KRDB#;(Jyvgge!NN<$AtodMX+cx;{E4d55G%G>|ZB;n3SuEpW#jqx3B@w!M;bf>_GCC=wm)OFj^9(O*(s83n{mRWe4z%OniRm-t5tq>686JR zX>cTRc(T~MOYCo@0an_<-W4d2ZOGEO?<#>Lal6yr-T38xDs$7-$}u~Zh=HaE3(koS zv)2s@_!L8qA)~h3xo3H~fXJA!ibaGX?lCYkb$NlP?JFlH&<|7clu})uxNNh5xTJq5 zBl|fW9bSq(?WR!{T{7S4 z{>WFhP0>{CKSS^TY zK0A?j7(sXI%`5~KEUiNQo$D7ObBB}lbiDuE+Q%`BVu>mvz_-LJ`M&o~jhe^gy=*D3 zwc?I@eJDBN42mpj2RTlhJaV4JDYs_-(?ZVP?5pG5e4=vSf@n$4erkfkqEM}#wwKis zYF6dfT00EfOhupfsL`^iiB4sYH#rs`oijZzQ%$4p2UgiGv(UR*i}fcK4zH;T6`S$kP3=mE!wl4H&{|NBh%V+?$uso->R@=lpelExgGI!tZyN1N-e z&+9J6q*z+(le|ah_3YO+HBZ-^^#!MoPFp)}`}RHf*dnr&y96-#@!O^vJLjk2=NaJy zEu>b&Ix;h1vV%&@u?>#)r>Tq(rV_(v&yBHYq zb^z--yD{QddsvZ#pvXADezPz`n&eXv{i`fJ9B9~^(S!l=hqKgiV{GQ(&TYGF3%|%>zBHo*wwdp!Wj%cM>ZIdy;BLy9rir3ql10x$#>@Vt^^spWJXVu zN!Wj=sK2JKPrs*fdtZ9G{BC4_SM#h;q z45If=f$4CF|D~5EWhxu|HAd|7J`<4eTCWm=!dc~5fW%2UZ@U0|+0cUk%V3 z%Dmwz4C4xdRC9vh-oZ=8sk9rC$9O$)Xjf;LW?G&K=eoeAevvrFaE{H-jYNO+}w zCp}sroO>dDIeBWiezQ`ZngVLxf%?mpS1%qX%Yxr(dT8wu?_nCtjfKz~LBs_lSgt@R z>N}$`7}wXoOz=S<6XxvR6NuXZPBskp6Hrc28=M!1n-_BUAeNe%N=Qg(y>1;To>ypw zarY8)n;h!n+1dhB{`)p<0kRIL6PS#r?uti*8@X^6;K|i|AFCyv6u?Vr*}jAW2%n=P z0Ql=o7s`1EOd?2$eGOOqoX^hA>+qNwogACF2C4BFuepqHa3*wy;b1~+^9^Ocby%RY z(8$P0?~SF_SWf#d)ftC}X`?1i-<)RumHw{Bl%gAc@71Z&j$X;3{kYp!B>|%*L%WvU zP=6#)NJE^N?xmG(ORyb@`qN`xZMaskV*aGP_HjS!Zo@`JMOF`scm;9^6^)9!uT@Ba z&(9&&seRaAl$U4q`tl4=9i&z%D+=r?umF(@s4UuAc_%Ujv@|px5Avc4pFHz|H2x`% zOiVaaqfFky#E4ZET3nD$LM0cPr5bxYb^xTGs}XB`s#o=AcOYDpWY*+&w*$!e8zAth zDlV367|nx4An$>z9~>mAI$eva&L8(j5}Y@Nf|6s~y?$5HHJly@ca$j2q9@cZoYVCAkds)3QXT6@GD5~ZgYKlO|_N1gIXfNPy0l5jE zOQ$)$I4#bPChJvyI23vYhUXV@-`>-TJ>E6;6QE`clubx^?DJb%?g8R=UGU7$#KOYj zGZUYFvxriyBo!9mJlbGMy7_w42`9Q;Nmo3YgT~`^<(6mJSw|zg%RRX&M)7JqzEpSC z7s#a~NtPV5AWNw`6i7C1Dl(J1?ezqP6N88`eWQRCm-C$?Rnmqz?k9veP#kS{7h}uG z#IU~dfh_EIO4>Y%HMc|Op_8okhn}LW^0Ep7Eih^nE0_|eLoKJ)37wQL-8TGtx9QXm zYw;~5vL#-rIpQJGET_D7i7+iMmfE|$lQcOlB9r-XQiui-!NbBKF(wHKNvXU}yX!f? z8UkMZZQY%L57m_jhTE8uj2U$I`~q-x3R!|)&kqs6I4w_2RT~UN;%U3)EFXp}}z(GUZuHhRTDR7c~{bD79^d2u4`TKBgVWBZVv%Xc9nq9qzB6Zr& zdQrY!HWfVa9*%n!R?JRM*8pr!Up2tkK3vTzJU+jy1X%Yi4T2(5Xoqg+!!pp&(D-y# z&wC}jEBH(BJlU^Aq}?h?%wGQ@plUA-6gFO@a+lR7>#(5@Q^9O&va!(7_Txs?N`LnvPEp@$e7#&*zTx5AK#z!>oE+2r;u4=!K{@Pan z5Xe4vePn8n5_Gy2z)}ho)d!dpAPZv7Pp;nlP=E>x4Sev~eb3I${%^hOwU5l(TgAr? zXi3^Z4!-J{4+}%vzlE&7<|xggaD-nUO{{W8Io6a^lotlfQ`akV2r;C1hLl)sE`7`P ziL=e$qQ%$!#o~gA{Fo=O?|uJ3)OC}Cq44J{gO%i+l2|s9HWE$wU0RHK!Ghh@evk0KY_S^bcS?BB+d zLq*!D70_g}1ut=LdMRpetRSH#VMqSC~lSp|Xj z$U&)TX*TSfH906>nh8IFAwo%mgM)i}0DY+Yx6vxooZ@+v))?Oac#je+!Ua4#)tV;2 zQe1_Zs=3b-Au5xNBt;RKJ`Z^?7r7>skRv|0yJi!=ga~8_TZv z!^hnf8;A*1fc zr+_j7WNRW*AZ-Ra{zVTQ%#d0yRur~)vV7aq5s_||`r#6rZC4lz;7oDc7x?ImA7;be zJ%8dR(Gq}Xh{##-TSpTK+UfW!1|OjK>Mjt!!Fky*=*6l%J+~5THz<1U9g*RJur?xM z&uX@h8$oIocLo?sQ3p3 zDrq1jFo1TKNLQ`4Rk%8JU00JI{JkQzKsxN}8=s?IzEFb~WrDzOz!ck7uvSvjR#DSi z%joN2Y)~-yodT!yr*a7%l(2Lnt}wT(a;+qhz&SpYSWQIx5F)6x5{AXfLNtALxI4Qu zsg^Me3Q8y1GX2RAs9dBNO`H-Fqx!Sbb^qIOQcl_u!99j0I>Z$zm5NoCu5LbzXIrh$ z2>;x?4{=>MF)*>kad;61(oGnOKqGM8Vx3DBV^2@X3^DQtdJ?YObl&~@XjJIbzCWTj z`r-4sxDHmWj@yw?wNVHyKZjkFV6lhW#kTGEwxRBweujp{hdX4j0zMTy{o*FTYvxTt z0qc6iK-f))m6@<7-gr2U7r^$%b7^4cZt=u`u&aD zVImYsX5uc2LSkUghC3yYN$d}!52WXs!B8lJkgxc@)3-n;?`n|D0(NhgGMx%X+R+rP9 zjz9m&!hSH`2v2L-{#3XXxpFSpAxckXkR#z7$7ix3TVG4~&oXJ)`{{e~_G!N{9ksz3 z(!0ig!oA6)Q9%_kQfJ>>MZI1$OeW(e%EKN!!_Aa=f1k+w=7q72MqF%&s~9JIO_9Kk z3pK!saS6e9DF&o=yx=&dNZpHsPP`=9UdYerZBf~}Ir?J8ybnQ!w)l>)S_V@j8Y&D+ zk$22&VB#3K06qH_dYZtN&tPN=N7{)ZJU1aMZJHmOs0)8tm!c5t$E--_p>UAHuVeS> zlo}&*F6qMX)@weceU<)5(D{MF!^F5iN3Z|%<7j7SVUa=4j(G>I*jvth_gJITL8A8W zc}_{=_{$bAQfQCuvA2P8G5y9i<)4k&Bg07CMA*%$r)x`NbC zt_Id;U;2el`@i@2gl&Q(t*`(8lqteZ2pfC63qt$<)Qjw&8G?SDB@vg*sp7nHE-6uj zmoR0d_OLqNbUbJw=Z%TJAI9`p?&D4QEw3X-K=^gBD(3Fm?`7oAhZIn^;Z5wYmQ3-s zgxgw5(L4kE|1dy5xAII;Nq`}cg5_4m<#76q643cPu%-Mjbga7doJT(Kl&iMbOX%w* z-QG>P;RAlH2MN{okwi+M;hMq2?E{Xpq#RS1{E-IaW2Cmt6ym*;>0B>N1JoO*q7-0`(sn^ur`hTbrGGp$sH=cVu;Zay?F4$Lcyc1 zvW-(=6h+%&&$HHW^f-}9J8EH&vNuV?>M;e;&mpFL)=W;O%h9=x_b72|D+F@C_Bs9= zW)b6=G(MQyrlvK9{9K<4vCFFn%n_p7?a)2C#$ToQYh8N6 z$CK}1zZia)rK0>9DhmjGWqpwfMI3g7ITToasw4%uwZ+DMwTA*Cf7ZbV%{U~MO@XB3 z>ipq}G_cbKBs9r;0xS0Dxrf5A%S#sQxjLoSYgqV9F~j@36gez!EU14g3K6r{ieODd z4wb_QKk>jgbm8V1e!=lt##1o6q7z;yiWg9otBjRO{Aj@FB%AnQb(9A3#hxzNd;tE@ zGA=_(D0#OR4&zVi|f5_{{$Dm@dRbU+^IUaLv|9#p=KWakU`NUdv^scX8Z)J)-xV-%}Q}a6A)?T;VYi zC{p{YQfr+*Hzi6^F=N`~a7l%yRGy4`O=xnWLA} zWeIDeT0U%IBc^oz`Ys&TK4dfWEI($mykzYBZaYZUxLQ~FhG15HeiE8)RuqW~>_R2c zfbdZo(sG|i{VPthVEExF$=kCOiX^=vjx#Q-oEmiMVQTtAg9T^SlbvzfcJ7jfN~{r^-gh{f-qM@auCXIAkpE0;35|1Gk35 z=haaHF+!E?)bW%mZmo9xk$TuAf@N{pT>Fi^p>j&`$ikJ25?Dudsc})#7(|Dj| zSl-7F1k#WQx%cKq^l>VgS7QYPk(}wvuoTl`Iw1J2&%6woydG1|L6;K=V1Zy^xb!#% zZ8S|g9q*2Yv74Bj;N-q0#Zu^AzMdbx7C{#*PG1ZOJ$(L#&FNCBy`*7a?jMBq@{(}- zx=qm#KO%l+Y*{-=U80dmk$Qq}j4R`2C{ zGs*cw>1Ls)O$^v(+M@9r<;<+)O;%^Py-4Y|kgvBk+UpSkFO zc)b=ton@~?~cb;N5a3TyO&$P#ZIr{(v{v@CHmy5+y?4>&L2V zRD3fGcie_&`Fg`AbT_=a__w#PWZ1WWSyT?L7qy)#=l1Rsd73y|4}M(9CTmyU=(e9# z*r`t75vZPSiYyh}m3LjeiRUj~PXnF)rJ8HaTf!g4a&banZSZPc=Y@cLv0VE(!sZE_ zPnGOAXnQmG*G3DFJpjcEvd2F|7YLZe4?$9hl7sb&Hz(^Y78u=KkE>m;8+DWSj`Jq; zgPGsdsH$Jbo2ZiGFXl=3I&_}@Drm#+cv&pI+-LdJ)l>EJ4*}A%l1}d+i&NBoo{HVS*g$|dVY%6^Z%>X0NThVs)rWWxY@hl=nO`^6 z^``@Q<&oiSciC|Xlv2#D&@I?#{Ioo7X?^T_S=M;Y)^uknao}R1H0>LKB3eaSljUl= zQC~0`Ae2+7<#zw~2lD(vCYpCHXyOZ{iOSZgyPw%%{y`7lrpv>Zm&}Ztc*<+aYomR8 z1$;S1V0VNw!IfR`zSnQ?9i7$O*oRPq+s0l+&Hp*&&U>#NXdRGth&{<1JdM zK^zvFw|!)QGT_V$^4U@TIuDQO#8(tF<$I~FZ&JB=<&rxPcx~yThDwtplAG3U6o(#7Ja28@d0%1kyqjYnp^(M* z*u?C0JF4>lvsb|#U;H?1KTVY6aKAi{f|m51{>I@pQvjn20(FJ=PxHVqLIbNzz4B?) z#w)JPY}{`!ZG8P{FN=)V^A1o8y~)j9E`46?&8Hb`Bt^89b9k|uU3ZV}QSjo=2n_g~ zPd%@45XATVXjr}2E@^a3H?td@CYxSz>8<1cp!>o~%x?{p30+GuY6c4H4u%N+vE52$ z+7iw}600H5%JkxP-RgZ$#H%7n@onZHgPE~lXBfYq(an+l zyN22rlUyh($ntxSPxa)f--)Eoa?e1uh%kktIKeTR8ICZqn);viZ{{oXVe7!F{O4(x z*Hzc+Re?3t)5fI|UzuTRYWMsr&UZ)^ND$#m*lL$$07fd*AL1(je{EO!xC8doeigtvloEIi**nh>J`u+ zEA^bMc|ZWBS+Drp3d(z%_mk0%t1P&|!*FL(%}{Pz&<*eu-T zbom25plJ9gc#ec{vFfsZ^6wvM!hVWjKKKMnq}z^O*5L=gHg?!Te{Mrfv)A60kLSM4 zyRZOrW+ zO>nb8vXS^%GX-*xjfRsSRw07NJ612NJ{_11IWTqfitp<=%-V{Ysgvft?e#DTiL=6O z%9(GWIBj>;(qW7Q%YSGdR~%vIFqb{$AkRM zh?{nVAK`v@Y@hXMg(%i2~p+el64PCvL!ZwFzXQQo-;x^WNXCTt0Znhm{ama(dwYJ0CQ38YbZGhHXLqnqW zyTCV+0g{NeB zMo@$TH47EIMvOKKP8thH_hZsBE<`@SVuEnTQ!2mggf<++CD6~0*h+SVPiCs|HW7lD z>NoZw?0-NAr&SmsVj+pCFp!a4{8|mU?j!rDtJxD>77nxHpM*#tRKyUoiLLc-6&Q+FXa9OV$ltHfz@3csA z?gNr7GqW~?jq@S0in6pC!(n|8Ai5xlNXvS1rQhjX{-LE+!CA?{aU(CU(DHA7U(~g%sH6_e9^?bNI&$3#Vh;so$;Iv7~q1CL`A5_4ARgs zzXwEc&3f!qr8#5Kh zv2GGf?go?&dti7^^elaNvg8(Rn5}9bw@qCKmWR`ZJkEb?u%udz1I+bfb-wWhS$YsW zE@;f9i&pe?1B&jz+fu2oAr2sDWoV#40@_Yz)@+^<7)y&STIWmJXuCbx#oCRT`9#EJ z7y2>F6}mepIJhigQFRbMT#>oahVD8s$`Fi|B8$6n)OI+CMjZy6*VyF|wBV^#p_+s(d$o71cYpIBL?DHE}7etbO^3qrT1dbYw&Q_ zx|P=nCFz#ne52FS4QE9}OGMABTpof#Xm)t_X)`=xyVyf`yUY=uSx^ zDLcNm%Ga&WqUeMzQa{V($Z_rs_I4dwS2y{k_xE{w9E+GE9jeyq5 zfKUliH^~k$z%he%#E9~uVcyqo7h=jrDy*7yG+8V%2?K?`=6b65RqlUPh3Rs*Nw3YcynQ^#r$`a&;b2^Pa|#sr{lImg z?6#tl<@s^~xJ&YadY&qkdSCH^nbum|+uwZ}WpVKH zaefXD(jqa@7t}MG`+Y6*YVm}QHpos#aLl3SA!hb{4-k01blLb66@5hh{m5l=VeUas zn8?udty9W5{lw=It&bgw|NL$nl-yrWr+QnV<*{=x-SK$i_0l9*6d@`^`TB4Y*Hew# z(MdZwhXIwG=(Y1Zrt7J!>oih~=d82hcAwEkVJ_;{fS!a?+rz6%F9p^060SsYM453{qRWUdm6CK{&JK(X$LK`BItoz@u@g1l*fVIc(R^JD>z_o zK+IggHUXvsGj;9BBF$qHD_yS?L#7mS+b#_$t5Q`xc;Qou$2u0QFSqRl@)j-j7$hYk zARJ#YL45wa+>weMUqgKY1;lB4b|ruSl?FGV-Q~g;=|(YDF<4#_ucz%;x}z|v)k{#$ z1eE+-f)7g9-hUdGmY3<38~frE_|HoeypV-;MvZkNvUUKWB#fe}YJ>T;IeAND|8|s+ z_s&5Lpz;EaZdrf#S^p_3!JIq?4@|O)6g}OEGgztiny@~aj+A!txeZgZWN*y*p zP*1|^;RO4mx$$@q#%QCZfPF=cY%;HKB?*Xd14jF4olJ$!njjm>+ZW1iL-zBF(GYcj zI&ZlPr90EZGOt>SLb*1ykS;V@QB?4*iU#ac?(tK}L=e#^b+y}k`0-;ElAKF6b347N=iPldSjq09G@ z9HC}&FFFx#(_Py8xcx5tYd-X^zxV27OoFqaw*0_EuS<7k>cXPWYFY1UEXz`|xi5%O zL!LS#pzMJIQ4neZ;J`nr&(k#XbJ6-Ybo}AkpXA36ljcQ+rocgmKj+*2HHnRlulGW) zNwNhiz`2QcsG9nVYXX2CJ_%Fz>sim$&4dwKUQ{&Wr+&R!_V-?E_j`NBlYCk61CQ&k z{bZeY)Z-c(JgeX}jA7+gr{jrfgO9M=EH4#G0`f~w>{h=0OJ zRBcF9X__}l%aLNa!3-K@%|B%KActl;l^G}59thK&WeMI?_jtzkAk4`Hkwtg!CEN|X zpnnbS@$XPY#ttIU1xm&l?8M~g=XC*Xxlp4sR-nRaLTeqNX~#;jFlU6ZWDK)Wx7v1Q zY*1F;C{|}klFdvvtggtM%3R5PJ*q51)23}U`ZtJ<Hm(%@|U!;c} zUgxP74^;fFQju0sr^|h~_udUP%5Sc1q#+MA8RC80W*yi((gYjqRdw<@qTY#x1cy?9 z6B2<_o&LG&POP8(xi75R9wNC6H4A3RK+(3S%sP zjW^6@o=L1&x#D9V{dKkMvv+?g3Pg>0IeFSucTuh0VJXS??tP6h&ZVrcU&)zt`$iJ{ z)Tz@_O2={DeDlqxw>>$e@S1)n#!qb5PTvR{cSn7F{U<*D8)+q-UBXET<$ug%NY<;n zb^_oMt5>g1y6aNOe~%wK3BYljH{N*TnWwe^DCU*wdo6n*(Q)tWD=$~a<00Duz$G++ zsZ#ib(4^%3**fk}pk$CzGBAtl+KgH(T?Pi&4lXtz8cjw!1i5y92;crH_UdH_JE@lM8sl&4Rhy?OH{fX{yFlb`*}Z+a(oNx(3i?H~ML zPr}%}d-n(4|KvzL7h}u;W0TrMPRe@3@_b0(_^H!3Zr%d$Tc7*vZ+-65UMt1{Ow)Pl z>8GR7=&P^pOqn~AXdG~a@!0DEj#FwH0&9}=9!!7NYPv^7dKJ~S)A>i|`UL{IOOvBKHD9{-l+21jD%?IyJ z0hmCXm-T2>aaQJbp_A66Oi%mI0WRT_mLCZrb?L1UBomBF=ssARSIr3m4siIK@wYD@ zit{NVm3SqHo;hXapZxCD5U^$`B6~!SZ8`AC-r4entRR!#+)=e>U)v%ju+(x_o=G=J zcrqkeYT!ZeQp0b?oS=<9<_?3Q+i~3rI@;Ey>;2H8uwK7>s3l^wml*D^hXcOD-3=$i zkmC^GkzC0m)UDOEUO<`Xdi) zdiAw8jvqhXa_dH2%`~RWox$9HmTkttIF};zp1Up1#B0AZWXB})F7v`z-jK`WF?|lm zDrA7~+_gs?@Wc~O@V*z-fRJB%=)nhf?cRO#*s$r9emo8!1 zGK4}4Hg0U%zdvGHgB>!PB=ojEefH*XWqVgzbW1)pwva9h2KWU6PDfY~n2GsFj;#TvWzxnpxYEq~q1@2M?8c;Q* zV)m>VhVAUzw+|4rXH2`(bh)+h5>Le`Cx=BDX3v<$At3obe(xWic=&!zI$RFo{*}8s zZNI~Ku(Ui|Q1#>>>kPF#ZXPLdudQR(-hEthKzJAKbs*==nYCi+GSf0&d+jxVEnTvB z-t4;cU}Qi7?|=UjyLRse*zVnXKlABNjPO%UN(TE1Nic@;itWGsyJ5qG@{%UIg91XB zSFau0wQI)WC73<~4Cw5-b?jKRX_nXykgNcGhRvnX`QCx@B}>5d>07p(fBWsAZTkzq zdF`J;IXW3o8NhG7@OYf*w#QBqfWvU58Lz#2ZPA?S8KvMryNzR)+Ty&#Wb-rspm{cBG-6hOOru*;>U$ZiZ10E zkv;|i$y?ex{^h4HCohqLOEBSV-mqrw%x4Nu>eAK*6_uHsw#1~A?v)u>qPvsBcA!a?%u|wfpA(SeW2eXBByT>y zYTUfp{HOod*BRr{n-kmTAD9DL`_=K8rBAb_I{=s|@8pXZl_ z!?Xl1JA9_`6OYU(0hZTdMmdXin_wlQR1y=4!g1{yx^oj06F zTZpy5XouMYI|>o&{p-Xax?ot$nL2gGJs7tTf9?Ng@4e&XDz3EQ=TzO$Jv}*Sq)|o@ zArJzIBmt7Z2oNUO7<>KNW(^n{oUpO^)~}5--p`-Ivc_R|Sz|ES*qC5~1R{e-7D`A$ zS)(+0rl->lRpNpXG4v4=r|CPAeaTv~7VOJ+@MExV!Znp^kuunotR(wl z;77~!Pw+b5(8^}t)+v)+BmLuNe*|2Ed<$B#+PHd^#h$6%g z)=ppN-j02{B=bRhg3w;@WI}Kyy}0GZn}47B?tmdB5wtctd}Xp8x;1R2 z5$!`Ffm8~v1J{T0;QLStz7Jo)_mNCW)@T`xWD<#Z>q{?0JU2IHkJehUwiN5mPOMpj zWD>qVZS>fGW>de`+9SJ1p%>`(;fM;2q2eZM?fbBM6ncOd5C>9#19+Jq7jS`u2L+>X zH2Q&F;H9;RBt?RlJy|e>M`l}s-rR*=API~ZGcgnJ;)9P5h;|1+%yuun;~G#n{2x@)r)C@m%yd6ONw$c+(2c@s@kdG4!U{E`;1ech;iQw0L$pr2jsd#``- zOODJQ9D_wK{V%gNK!(;W%3t-p?Q0c?) zj4?OZCmTY@%NlODX~gNdE7 zcoMYKt^|m|K~kZD+jEVQdOyoF0S3E)v5bfcohya`X3pJ%m{3_$J^AQkA6)wMfj+7n zkp7fmixk6`Ix_iu2O|Ilq4EEDozDwkD`okK0f~8k4Q=^;gXbgba6Ujb&zo7n)2h5+ z^%EuU3EtkQ6$&@?e^PjCxw08Kr@q`4D{MW|9$TJlDqbXu?*x$G+U$kQ-!kkDW+r&B zebF?~r-G2N7ylzavixvJtO5iC*~|{4Ge{TY7U9g?-c2QhC&ecu|Sx1h%shHw!8mXDhdC$;`4v5Sc_a zyx-ae+s}Yg1_T!>Janut+S}JVaAkNc@NOg96b#M#6;(^<5lUx@K9Dtc$Q;_~ZN0=j zg|8S&$8kuYFx_Txrg6%gzH)CXka#%XODM>%l2#PutY!tR$LWr=ch>Z$U0ZUo!hE~Ej-|YRXEEEM=}d=Ui$RnHYZLKxkT2yteF_hDsV5|f55ZB zcf&HrAt3JL=tH)v@s*N~Dh{#mfftSr0Fbw5$4ixnK?PuCzw;ecPyX&QD>j4)$r~gP}B7X~Bi5*xzjsMb5Ckj)(>u zw?p)D!K<~-Bi9$)NhFKE>kzW1a3&U4j-EpV_UmjrWajcfn`ioKsBbLx=M9#={8geL zv2j+TBLd1)UL}#y`UuVnJ;)fgit_{RUvoUj-dg@BckT}5kngg+5DcgR{eRlIGX1CG z!9;-65DG*Tgvn9@JdD{D6qF1wfmjjL;0duLh%+HmvP6Y|4kC*d-XNG^$^4XuQGndg zO8dQSXk?96!?Q^Z`jG6%8Ccqwb62{-N*&OPa^brUK?{}`d`o**G0b?wJ`6DDQPIl{l!=v``Am%rF&xNP12Y^l4ze?{$fU0+Jw62m8!a5H&7PRt+4*`>TM(MTx_-T1flM@oh; z!NT`V7Bc6(0SgU9(us!fBqR>=0PPRFEFonhBh9&dDp4 zb-7R`c|!XHpINxV&SZx`<_3uY!8Zt}5@_H=_SKm@eIoruj5H0Apczb>^-zbpGDrD} zI|LXC6`q({JyvVIDYiRdDJ4J*Q&Gqlqs_+ZP^D-1`;xuwI$k0L3$v-n_C=Lr%p5&= zTJyx(it4WZp0&H)-q78eu$5!LmwI4r&iqS&p(*UhN>9!jHF?UY@wJhf&S>}AU7O$T z-W9X`q^Tj&aluU%wkJZKXfUekDyw~|w{`E0TfPFH4fXZI4a)<7NHdhuy}iBlnSuqc%2p}2Q?nMg{m!=> zHAJ~6tBMf_5Gg~7#wGyV(Pk@_teN1EaHRArtITl7R@&>28mW{~lsS$G3c`^xZd%pj z#*CXdIb2m0>+adJc~h*dEv#J2*XAJl??60C7)JHDaV-h(77>S*hWIu!9~(Cp|Ep2bO9$H$F`j2l^BQz?7;)RtWxd!w#HRW8{~lqO?9 znQ%<)L=3kgY%4apV!lfe2(opoq0%(qWNjD&S*{^`Ve}T8iU~is=o`(bkHWca`=4)p; zVm#M>2dd{~_ z|8f<=X3;QJP#*jT+n)W=Q@5mYJlGGT5R^UzcJ{~qaNom{#MPhqSSXWDh9P`mEqmdW zw>GS|w7PJ~Sz|{v52({~RIf}>BscGFe`x9Q9Xne+&6YHdnm%dCnF~kNRT-?sz+qG% zBj^x;A$%#f?P`1YiKn-<1_i}Y)2Ez!=EBkS)shid5kM5kIxfqnURbeyk>8MgYez@dx4-*6 zBL3A)zqAZVf%=jG!ku^B^Xv=H3&yqAUOR2-WQT< z-FJ6WGHLj#Fc=v$+x1iIYpHvXTHVBM$z%<^Jknq4R*SqOkw2G*Z9um zn^`n@NC$#5;Z&;5qsN6WJAYh51S#OAySrAlCRt4Gwe0qu3Re+DeA(nyT)yZdADOVY5mgfC2kJb_(C{S; zDFZ%UuCQZ3RKNr{1-DLxjB>Y5lnWeJZ*ASHwf40L4jqbwg89;`e}Cxlr9^b@!uc&N zE#MMyae}?!?QJ`MciTNF1_M$`N9k2-H*Vj$?dmK4bxcDwv7cKcJCGE~x3}*8@7wNl zH8epA(^cNebsM*B+xDf)Khx4!D;Pu?Bo#zgGXcC%9fF%5*XGVt1Ra+w?qtX#S3OJBX#^*n$K!*E@1`P0v?T)Fa=|Nh;$F=GdNF9UD9x$4Vbxz_W1 zA~Foqb=~DpKfQA0%3J>HcjLy6&JwB^=;-MB?hn5I#^2vmU;*vAE-JzRT-RN>awP-> z;!b{R62OZVEg%%CtjZ7?P$WFtMkowu&$bl_Pw1p!#OrG3f8|+$k^YqCrtSH^G-rdU_SvWWlDk+n^MZ46LOnd0D&?m1w;sv-S?s` z-!+t-xRdGr61I6mLu!oBl{b9k%SU692EU$I`|l6`_nt`1G1Ad`a|e*^8%w6lUr=$J z3EqjeKfH4Pnoa9ZKk|f+9DjZzsxKIO#^Vjoyc*q*0JH?sYcU71&Y9CrIHhW~4Y>n* z?|tc^*S4)bdFGtUXI)y2&__m{@k-50&nDj1q>m3zy!NA?JyuSOz?6W>F|?-){nV~E z`d0kh_NDYGn?|@gWuG%{-hvtPl2C22&i8-sI&`3zKr%xH7mDP{^;_r z?T~g;*(U&gRmk|#6`#?R=h2`@MqPdTAMX&F>ub`H!4ASb_}xVgtA?`Nivj1wjNcH^ zbI-s0lb`;7n)%X?ee8-WKAYh-|J&dBuIKqjPM>zoHD5SxR!+h1 z|KQeJ{wpg^J@fnvKfdwbdwY8;Dk_r6B;`D(rn>T$|Nb2S4Uzp2O^C&l*Ijp=);wy| zD3q~YCjc=76?uRY9BITNkyF3?RZKntnz3fhi~sf8#zex-L@~}?A(PT*nmZSB=0FIv zwQarUt{v;wA92Eo<1fAt)ivS8=Y*er-r2S_#K`6G_(CR4IrjM3X<29A-c9%arFGrf z>2v3_T>1%Agy`(Wyy9hN%N9dQchsnPSA7mg9tG0`0a|DMdTga)tJduO@r{loC1t>2 zWT4kJ8|R-kVZmweRlK89AeXmSrlL>a&?Iu=g9>QL$r{=B#Y?76YXAeQcHx%4ZtfE! zJPrk6Xqh>iUCY$T6DL=lI1v)q8^hhpyEks#HRs5d3(stoLI-~9jH|C?QAU(DicEUfHICcyN?S+h=$z;vMQe&Mfw*|0omdpqA~ zv#TpFn{rVl?8S2ytbKg5WB9otlO<%tHO@TlG#jL#?|kL253YYYYB}3q?-*$|T{2^F zHLP=IFMRpA&A!0#N6eTeCur#HiQQ{ofAg%<&dzQGp5$&g%Xj|W$Q)0khUHPSQ+3su z|KdY+Ao{mgo^lVXcZP>NdN>J1w0Xy#JMOz*X`VCdsEd{?mhg+^m0(C{#w#n=^v04x zh);aa~?C`(h~~`q;%6jBT!y ztd2WsI!o*JyYAV(XWxd+TW3xhs|mYyx7~i%-I~nl)25$s))~M3_073;wxpOcZmdqT z>C;?4Psm4?uVCiUBb#PUpGxqtf0WBY6D02perI6y>b2jx;X6v}bIv~NYuA1?=e9zj zff)}!{I|}oE+V?&JO6j`#0dnPvEXzmrAc=h$yPMC9i39dKj!ABnM>gpz< zZ-4t+Q;wLJDQI4Q{q=9X_122lUO#E>8~__PZo2;Z>zQ!MDf6zn>Z;2wyDaxPQp#CJ zAA_{+_n~8c_n5X2_kHMd--o} zZivMro>x#XfGg07r>3ks4mD-u45&WiAy&s+x9i1xm@{OS548(f(~00PR;i3no< zdf`z=jR650+VH!3*YxR;Ns5$|q)m1g&Y2JfJm7)ltuL&19U9U7W_zTv=F)j)7??k& zW#<#SJZWaF1ypxny2d1UP-pq)kt@`iz;A zMo%6I23k9?_RZC2e&`s^99t*Iqo`dk|~zH!FoAF4cofKAwW!=Hb-!RSbuI_u6oKwJj|*wh$X(*lTf z*!IwxXQCCVFRb@fC+~jskq-0%x~0C^_D!kt8bK(weL2QzX7DCw$AfF0+gIgA!yFCy z_q_VZF7yz@*t*fAg(j_pj>5U8d)b%o_}<&`Ru8Vqajke z%$;@g*rs~PTCg_Rn>AzV#Ia)lY;WDgkj0u61-Whe4gr78?3rVl8%(VPYY8>`$f*;@ zjsj@Qj$Hu@M=51VT)cSERiC<~zQPs=;wfk7V61}tS%S3;Sjj*lo_g-3mjIl(@U+3| zKk)hQmqSYW14OVeW~-24+=GEF+jo5Jo7X#zd-BOA-|&CGopp4~e^6TSNrY9aR|7b2 z$&x_U30|_`)cMC8eKdeoZ>|Z#hvcqK!ScF#^=g36J@=eRM@+;(!BdVt`smDG0l@P- z!!W+~rLX+r=Ra+zuO*SsL)QZ*qAa5QvAgcQM-#5R;6~{t(=)B_q4$wKGI(TR0wmlB z_g%L5$oZ21U~3Qly5AOQskMMfNW_)Yxq z))iZO$jb~MW@ZRQq+q&a`D7~*(hvqGjz4DN=sGa4>{WESH33hVp+Linzg%WG1hhK@ z7!Wl{`?HHKT{2;z0kH*pesbTe3{pO`e#^?ipBT z{Hc>C?%cVvy`xh@$edxo%vuN*vc0pLz*8qr$ogRkh9Gy^q$9Sr?rrbx(FCcvwkGn$ z&s{No%qY#CWKFCFBEMyvax;sA4i=Z^URse#rCLUfoORT6p}nDlUSv=%C*AB^+t<lSPFu^8E$k_J=W3aJP>6h=cmSaodNSmCRX zuK?J}x8pHv-hvTL7&*!#QOUY>&6=jpj-9L5)<{|5d(b|3VABaC__U>rnaPaX_LwD0 z03a4$x$Mbm*EuBA-@ybA)VC6dsGjrZPd(#UA%NC?{QAzf+MW7@tOkoLt07%5;NO64 zgKHxIuzoudqShx{k(FXA=7+cMMeQUs*TdkHfSZ;o=H`agLJQl+gr?CJ z2tY@y%NLqSGXN4w==Ny0Zqy@C*I?D`)9tzM5}GGAwpfq~x+B)5Gx>luY1dF4(JoOb z8cetE%*~Qui^*QSIf4H+N8XM8rc=;zkR&4^x%UMG5!po)?dO_`7-3-*!)X>0fS}@nu zR0G`J+07(0(!L}B1c-?gsH3Y>K-X1Qofz;B{JhI?{0cj@qD@sWlJ9q8^(A?aNoRyk01$Sf$Hq_TP)Yqb< z$Wz5AZ~1mkm8TuC56mzCO^7+fMEk)T{6iy_A>I-~KVlVFNaCHN%k5I^NNq zJ~TMS7(H5BboH~?rGn8E2<3w+hFbQ$$W zEscEc4zlgQgyQ()?6c4e;zv#UGW2f%liLmoBg@P%_0Taaz& zd*Jn@2~)eWP~(3XC6Ob`%3JTaYhPzKlc=hy3WvkYN(?^rf+e-DuP@~|02=FR1?$}V z>+0$NbaZrR9x!=i7vjFYKG$^tG}hJUJr*1kZ13tE2uR9`ppkJG2h!ngi-I2t4f*to zFDG3!cGQStXH1p*KPr{u30D)Y`^Go6Zri2_O-)VJk%~N5@KTQ4MAXsIl}e?Mkx_Dy z6?cl;gMp5Yo@6pPctI*zun?t2${+8zE0s!3pEm9E`ST9NMH~QxIO4QZVVV#EfB;Di z8nQVQp}uJZ2p}Ep>XEDm@*Fezx;g{Vuzo~Sad5)A5hDNqy1%D8D3u=MzK(Wx1@&oY zY7#(Lsff~+R+2OBT@?7w1{036m2rfT3WbhXvIJ71uW!{8PlP>xpi~)R5K|ff^Jce% zG87v@#$XKVY!rS8)l^p#+|=6_QzUa9E_(Z7fg}EihT3dFq$ihds2?bp?I{*gL-zD3 z00L-isACA1DjcftVQU(2HrGYcKcFmjB9uI5ev<+8_*nYNW|zX63$qs=awyx{=Z9DSrCIjq@^pc2508&ke|T} zz}BKRX?*zjMWZo-A^x`QnXRhBwT8$@aTtSQ&z^ljvu)YFuqSw^z}kUHv^=qK<3<1gz4_*wcins6z^5_?CavND?z%2Ch{-ey1AGKmJkQg? z*(ATPm*LxH3o>+|tg)n#Em+v#87GF^i&&%+!<`!P zCO|V-L2C$c;?-a1t*vonaa6iIJ)+j>mPilX96pfDlnsV=ZUYJiR9f3akeRbVTDr~7 z0|eE~)^14t}eTGiKU*%-0|eWU>e zD8K-&ykt^?=(O}eaJ5_$ZJ@g)NX}}maxzA6AdY03G%Mv~PgBTQVT2?==f?aOnf?z( zb@shFM@5vY4i7F$xFPPHckI}aRRFMb1-iUipTYy*erQ^|ji2OWj?v%lQD zu5YsoH4$U3S#nuT$_#rXN=*WW@CEPgY!BvgLrtyBgpngaYBW^W3&02O*taYFwt>8E z*xlLYLkWn+>iPjgJ_}ORP+bo|fp_iOtMik+mHa&zn3hK^y5@qT&JsWu`X7Atsc6{s zh9NB-Mj=>5Y~x$s`1+h9^ytx2mX2_*nRUjYA}FU3OX2vQviCLKf@Th)8Je?q~-CEUFsnd?B*0V?t#^0|emf zp0l*+-sqXd;40}>IQuIe64d)`oq~uIi;k||p#AHrD<%6` z)0kjgUsH)dH1CWeUwmW|otc8QHIa5Zo}i2{{-_6MX5Asg%JiKweD z%0lL-e5t#)4?xq1hAe?5TMERcpoY3yP3YU{70n!FIN1&mI6{$Bw1!(IgF>E;xELFd!!p(qhrxy?X(SA3r|7f&-k7T;$fO zy`%Gi2Oa?MxhpS6DP2_AU=VhfNDnpmD*Dhv-s`VEck{2%(*r5#lvAdC=tI3$$jw`4 z1R$81SecBzwl*jQLZq?L6-IC*WC%r~vY`<|pr=Q;slb~em={bS=-z$pPzpj+G&ZIa zltOC=M-mzuz#84%?0Et@o8YsME1f^oT`8uWaVDCZpwzylOO05}R4j+|ReaBtJ=xS$ z!GCgRZXRFI10Gy~mv_qF{B=#c4+EHgB+fj3d_;Gd>>~f$iAXVgGTXYN0Y|vLMi_7c zKTU!rsKy#o0$njA*u6@qm(S%k$-V+|PSiox{}#3w8z=;WQX z2-@J}qS<3dh2aCsUWr9L!y`+VaiZ4YqwK_;tV%7nS6t{7TUT~grC#gb@?S6Cc)+EiaCkg2D6K&`wh*=Yltka=t#|V2O?1{0V5i=?$Gk9&HrkbFI z*}8Wh5se(tIOsczf*>=5f?W3e3y$KkEzPs0Por|)VTXaKlO_`o3E4ln@kb%sZfkG< z_IGd4L+(-l#*G^XVEu*-od5lSY3zvc6N*ZtyKMaUu>dw~*pU50V7uC|VFNQ4i96{V zO4cE`e%oz-bY1tz=~GWV<>aC3T%JgO9TC{yx$=#sWYTPH-G19`Pzpkhxb%{W>C+O1 z;fq2gI58w^xE{K?z_4Z>6ARgnFdQk9mZ58EjLB2Lz~0>j*`{H4LvJGWP7VASHTx*DhTa^8MnJ z7X^49IXwjnP0nFk0q}v9o7$qXd0VvNkB{{DfCMf%Gj!xA!{(TT68TjR4BU>U&L{vJ zGYJtyO->nbLL95J)#R}dKwCFF4rvGpFU-*}M=eeQaM^5+K>{-;RfG_?Ibp!D*r~I< zDPy34y7^HE-IMlP-pD~D7$aaRD3wrfYw5%Ox+c6 zAKCE2Bdt$6@ETC@)x}pHVKqfuVW>c%Dv(iAGYL;%M|Z1+nu;+O9kZx5Wz;2&mZ<%I zPCCC95e9a4?{N(uq^liqyggyb=(!`^i0unU_&XB2Bxr(cx%ikx&HZ*=!l+HkPo8xC zDAY3a_U=7e==};S0%R$wO_=A;Su_%L3_P-B`F8GdOka}*X*x{a87}hT5etT7HKw`# z;w5KGR_nL!ceFtkHx5*>Yg zFTb%;5k9o&bVIvRmoXEw7@A9pX9P?+V&d1oel1A9`q~@+^S`&I%|@(>brJ+joiZ8V z`|rQMr?(GTk!927VNVbkWPo_SUfO`S3& z|5XE-H%bV?M0?uWAAIN`0H3@33QB8z%8?QdAfLN4py>%B`2qmLRIq(r+} z48B5T!rFyc$otev8`O(pQ&&YjHK5{yY6Sdp?ZkOt%)7(T*DQTyt~&ZTd_ z1!{n+J~F=1PFkE4MW4n1L+t=>uy<1ykZ=l^SC%(i_& z`Q6EYXZU}6b9o%D0r9aD&i~Ab7tX7mana0L_-20cG{Nko{8#ZYY z1e`o~jwOZbx(`0KtlweR2zAAhe|_|E2Gv(bX3sb>S3@xrah~9leDay+eBU28X7tSI zQ=}d=QdyZIZ@A{EUJ{!RAZ@q2BidPvRl6iXj%r6&Rbb)Q#iA3V2|GYUK zPlBkUyXTj`yos5co0}IdT$p|V^S8hA-HR{z*o!Z%2(EneqKhrdN+c5h@vHxg#gh!A z3j)o}&1Wn)edy^_@Yh>!z18>q88c?gn-{2d4ynE<0s$s#Td7LVefgeyuz52`U{v!d zS6tB@vfT_FYC!&Gwv=AAY$-esQck((qUqrI+8>m!#$7A=BiB%C*&ekPfJ! zC;a%wldk>x37@~p6(Xedrl+2Q?*SNd(Z!R`J=dEw>DY@u(y(v=1R;@J`_$8RzNwP3 z%qa$m0mgzWM54O7=B%?p0@3K3Pd*i}c8Zmwh2L8?=LBZX1Q5!ymr0T7QaCAU?|W+P zrcMB8iQr!^oD%WdrA`$;#G}xYukK6&5;%Wh^Eq?IO{-5{JpYJAbBKWi@ce77K7|1u z-&}pe7moPK$Ls&~W8(z7KG{#d+7slmx^Pj=xpPNOt505d+LVQJD+CY&o_k}fPbTt- zA_ZeTLsE9?jQ+(Z3jn`UEH1AlW~DViUt#N()4zQ`hNb%|K4=| zx0_LYdg%D8PW$-JU%4}3DTXE*@V-o%`pKQI&+d8Q;<^PRQ2T|M|ALt?03W&^&fOax zT;IDZ8G`NOsIgOO5jJ2Pjj4vF-mrdQ+uxs<{@mFk=8r=C7mod;IyNAVAPVn}Eq_}X z-0u|>!DMzFk$iHkzWEKyEOtZ!fFRBua*f?U>z=kp{`MFFS6*>N=Em|o`w2h<0cNsxsVV~i z03ZNKL_t(pxU+wgc>-uUa8B6ghFI*4-~RUaAN~L})i{36Q5Rjb^-uSOmEsJW5C9R` z+V5Sn4$nM`MQ5V6zWLLiX$C+Bv=7(o`OBZZw)U`6zMz(=QxFbA2+Wx73q%~RYyDf3 zpM922I}LU9qd)bT(dpPT0S41>J?KKp8s4q^t1ASq|bxy$5Iq??=m>(AT2|Je!kCQclWkItWX*URlLg$qIs z`Xan)XMFj3oP8vkLb&XVFwU4FGQ{WmpY`{~*e6rMn=&R`4H&?Y;~}-jW#^ssTJ{l&+w$h zRNCYoJf@7-tP&{C84d)#e3E-avK^^*BzutbB{RX7IvP@MMz{X@C`D7Q8E|h{!LG44|tsCyY?ZpRUw(m*S0xLJH+l8J^#9rup z%`rG-=xE6Q&%fRJKQv(a$WfXZPee1R0rHP5%Xo* zds7KaJo3mMc$?92|H>!gmhTJba^Bd=6%uS}*V3LOri_|LuphC+r$2UaNK!Hpz3<+8 zOO_?plGW)apLpT9izBw-x~c8kw=1RUYa*9@;*z7MPLiw$fS^$=&0|J3n-a$yH8Win zYT?NzT)5<{h;6y9yM6n1rM&u@$fqv-=+Vva&Ln zOs-nBN-4j&x%nqI{%HQmCuN&p^5n^rCr_4AerVAd!4=9Wm`bHqty<;#{>bJLH{N*T z$tRy!{1yTvNH8Q=B9Ekb#~pWQrDn{SG4G_gW!&gPffzz7BauKVfkaX!Q^ZV~O{OZ> z<2}1J-S!70lknZfMT^3goh_IhuBPH@H}&Fex5b}$42cAk25TrE(f+P`?_T}LBNe_I z=u0=QS&Pn2B;t7SB};2d>q_5y_O@G7PdtWX9Lk5*PzrrLd+)h-)gzA<`&AiQo6&wa z4pNRCi)X1hQln|ck#Ie9biBQ6S%qKTv34@Zb&g?XCZWmb*WoD82gH=2NN9qBOp5AV zQS@LhW)!p&ProX+Wqks=+zy-P#?tR*QY{h1Wsys3@#9N!& z_9f7#@#;z_Vf$n!Mb#aTzV+A}hyyObfDd%}xNmvl@t3zHM77UG?&~y}QLmyO=m(-+ z$j^k~QA|^hill(uE|$H%-4PLn{J>bU5FDBhs6bCo&+u>FRU1F=wySs5CIGbbRXq0T z-;C~!0J!m%U+%8$U!_|2)W)Ns+ytEiG9v+of~90d%7mbp?K+0yO#FAtr-*BqN(dIN z)QOOnl9@n)!5NM;v5*?JFDo5mLRItRk>jLBiro#nx9|0O5~g+xtpo@6)T)p{qL)*S zpIchBx6-FvTI>$)holhea!|MVH^ z8_S;-l=`2e7Uhj5n6c9MQGEmye(c;hvFFm7MO;*7Pz*&~hI^ddT7a>ryCcJhsCPj0 zf;~KlhAb zQY_;Bb5)%FCGNL-4aQ8Y72;m&0AjW?bXhPb0HwgH1#9}DR3x)A%vAfT`0*2 zTox<)P`?3c)BQhBwZ7F5LC)aw|6!$q-3%~!+2L{#L*8F>KOY>s@UOSI%T{!c-brs_ zlKa_`4el<_aAN*g9Qs)Ym?L2=S6orD}|i0^NmW9-g0oSvl(MyZfccY7Ymoq|dg zw^Zp_8P$I9LBfjNG`g;8X=uQ6KD>}{)Ib_&%{g=JkOIf9iexk z4N&(4Mi446!9^)nzO}s(oPWSKc`X;{5)XpP8aeJiBd900+!%z-hnltkjzzsnWJ+lbjhM5OKLL=8&n~IPUd=B8S@HIKH^(ZM~9# z+3{x#+sZ7Kg_X+iVyi#uVhYs)a5>qIzh!0VHXu3C!g{telcwaVWs#Ff;rw09bF1w0=a>ind4<2ARNps~j9Dn9s1ZBe+d5cEhfui*L~iH=AIcKhE!x<( z8j^0hSy%Ph*sIu94CL)F$Ib+)F)_fc)VGXBd1#VZZ5Y>BT{zrA4%-kMi{MfPq`i`y-fn$74=r zQ^g&Mg^iT0%?YS~pyQ3~nOkBoseK(bHFs5!d>ptbTDy~pgQ{J@ZzXk&3!q$!z>$CL z%)$N!7*qP{)DFiHe(|8n{uYK^6gd>?0bFb$4?rS{!i_)I@bUm1G zKgQn^CCJ55uy5Bw*2+a2i6p3!7{P4~IO)PdDfLL1Aj0+rV=b^Lt!;OUsGwL*jF@hW zS{8nT9+g|iJT-&3F0UG&X^EDqaD!#%`%4mOIOXKlYmx^T?6f?*Xy z3Qq2Kh-Qce*>ISXdb^UU3)Safu=|aF80-1UQye>*sT*=f1|>G@ccR2v5BqDEt5Q0V zf+27kP{rZcNq|h>P%c$n2S!3`OMD~l0a9xN3^+`;7;}NdPigtnnfNzm8si4;y48I6 zNL2i3-@6dXxN+L}f2x4AA34_q@%Zbah%Yu-N$N88cyOiplvlMK6N%Z>nL(56Mt!=`~f4%Ue25Z6)$@VD}jEx9%CZavg$@+WnU3_K5br93O zUu5dmc#S+@Nk7@+jq+-seis@tyj1`8ERf%dcUm6q*>3OI7p(S0x-012n{0dEyurrK6@>3{oDBoi-AYBbyV)?Ud&L?m9*hPP2iXLH)i<)E+R&4 zRp>V^6lr0!IP3w$8ErG-o$!azYUfUd1#_Lk5RG30wS~xg%*fw~zi@euetCZA<#<45 z)(KnteRFfJa2Ma5hrtalXo-KYiu=|yi}CtAu9bq{IQS4g7!c*Ms>+NBlv^*(&4wUJ zzV$%$55tB2eqMLr5EzZdB3p(!q`X?az%3uSsCghm?lTC$0cSgJIlHbU}s|HD5c zIu>+BO3T0>kF}JWuxNtY$gq3du?3fng4j0~gVe0P)8QWc(+=PnJGDeJ#z>7uT{wT$ z`s%N^*LvRvvn3KN)FhM7tmks_il~#UwA;Q3VK0A!ALhh1@S4v5^T#0Im#vX)=kLog z__tca#Guf3jU<+gDE4l+qXTk2CMaDup9IRH4VmOz($_B0L7y}G26ePkbL@>cRB zEIE}77`z^e)AR#PgzRt#@>B31;foS1&s;J45P~r3dlSYnt8->#1JidUT3+N)sSoSC z9GuZqVNW0G0vOM2g`nNZntm+sg27?j$yElqv!)`)vr|l24&{*@e&^}#BxWZhsGrQ3 zWlHAu&CkpgWy-e-Vng(~0mi&OM+6ek6uZX-UpOy_xRcH@Gz`ZHg2XsDc*v!$wu`-9 z;Y7XM!_j=y^5x#RLCQY}3%X7PfX0827*O|b%z|pUPzFHwi&X3xXjw**NVns=FC4IQ z;V{oXu9}&Zf9o^~&Fl#C$in!GJhhNOJGOm;NQi*=g|uJM;4yruV?=$4h>#@u6CT6; zVV%fbBDm^j&t$a1Qx~_`L6dD}fs!a`l!Y1OmG$8Q|JiO<||DGDrW2y(q~=q2*FVT(d`7K z*FxDO43YEhu@e=6?6RJ+s*59ae)NHD2}BtA25*%m7uKejKU|loK1i6Q2r~7UbvGvl ziOBQDcRm^9JG$Enog+ND#y%C|T2uo*TyW98htQ}hiq-3Alo^h0`U~GQckA%fBdbo+ zY)rbg?L*vaV2HCEL3{rD_v!R+^1`40ChveHg(8nL zuSp7b_X~73vA5S!4dL7Ul-^VyE)FB2j1DP`&b}a}kZ4^%pfONKO%vs@$P>zxBs01q zow3_bA*a7J5E{;C7t1IY&p?%Alx<0qL=jtO$-x==lYBr9L@VNR9L~UY=l(Qw&S;De z>!W_If730}+nrg^-*^>e*5Q z%lDT0nW2;qU~OdX*9Pkp*kCR2w}^l-Wx!jWMgDPbCVi*M;8*-CR@;_e6w3^!EZEvyA<}3JW0Xp$CzidlQAImqpXjP} z_338BsCYY)?1u-dvh)WXIE;v0aiF6|0cY@bo5)3-p3w^GiChN`5b`8C%;T@6m^xPEmwR=~}MVbuQW%pY`~X!`|GnfWzap|Q=+kO?{IkkBkpSmZHa|D~(g z49kz*v}1taHL|_U>$(0@2}hzYkAH0VPq^kxAYW@iAXE_&5}MIS%RLVbSbvC|J6$GD znSS+xfqW~v3RY-LYy$?5*Ws(22NXIS5lQcU!3l} zl#w7-z2(wYV3ZTCL4?R}byu_y*vk|!YAif9(pgMcAzK|a1E>bCoJ(RN9#=9a;?7SvyPw5W2Q97T>bq{X-y)E1a= ztjPMmFYpu4Gg8Q4Ms1%IYwJgeIEVSX7kqUQ=`3>@s{VRIB|VIT0YXqxvyj=WIa0I7 z|AtyhxBhjkniAkkdvfh6T#Os>x~N&Pd#Y?k$?b1Q**%HCBu+;|i~T3L)AVnecw=c% z8w?9T=W#7btiGwS_nfH!RpGi46_^XsFO5q+s<mSeFDlx7BF92rirOAwlpZ z8M6Y{P)#jag^IlC0os5`{;&X_XbkwE<1r&nu|KPR!MS?iKNAHX#lwH4goC&Sa7uyP z8Z@kj$=?}_V!vFsPO-3b!Epg#eub3lUp+=hGG+bX1jB6J*upLG9z8N6)u_~v@FNXg z@f1FV`m$)L2h%h*zT|O<;}nB1Y)|MRVF7g|Z6ao#*B{wkO?mm|q6?V>)vuT9QmA1i z@Mt1Y&9OLeU}3Z(i8LSF4iJ^^cF|6k>*EnNbaVTRv3E$WM?4KHQLH8;MHa7~7)P&% z@AuY!$`qfn9PuYmdj}@@Wi;PTOmahL${ThCmVR!`d>0rOH)ZD^;3hW2n%M*jry8mutFTDiC2AKi;f3;>5V5cnX3{UqdHN|Kd=43Ebn%W>pt&ex zW4}Nb=JuXfs3P6LaDTt-CB)0UHZ}qHU8(kr&Xm0Ga#WKCl3%Tx#KNhe?Oig6n212 z%X8HDOuu|SX*nRDOaS#`q+{~nvuVourQh82(YMGKK8Ic8fy(-ASjXDkR`M(Tu6@+f zn#8zt+{j-v1Ual;ptJo6XBd!;4>IN!7IgjxXN)>)^DWAxq1)5}O3L;o z$z&@<+rzO2@oV@Z*p1e^kYxO}en2~~laehx>n>Gd3=A2i@DRqO+byD+Q+1epDH`VH+ zm;52o10z>0U{F4G6Elb8G9-WrQQ&e`PFUy}Cp_MDCO!eTcgcU7nj5=5+RCd>f748( zk?-B1NdYhM4z%FYp}1o2!gW4QXRbbm&Z@gFy+QyWKq0{G^-f<4PqmIALZ1efv5s7RG%~PQ(jmSvNup<6 zwQz6NYB7L<4_DB(#g@P<8(N5dsz3Y?ubDLM`UqJ*LeKL`JlYwF&rXQ0awl2Mu7k6e zJq7!#h>{2e0O6cjT{8FRiuh}=G}Ix=4i1M|TCN_4fJ|CcGUTS@j_K=W*w=u{Y935Q zYr5U0>*N(l?ahNX4p#Cz)7A1zy-Cw=bd>CKp1-@b%?(Unm0K;v9ZTD}6yx%W^iNaPNtCn=UFB+Gs zIv-cRKDc!5-<*(58O2v!@iE9M%rUSIuHK)oda;uI^#I@jlu-f?`;$jHw!Nf~rO)F? zSL^eC$E;A9^)8GEGwJxOJ9Y+a-t#$l&3{KR8das%XRx-nLHXQo%1eD8%eiS9U50oX zFvv92rb4teMD6VDe(?{a#JEIZEP1w4HReclUT z$gs!^8~;sW@R!rpjkU}%AP3>K|D)UWZtzS$_PT26@!ZQwo*uo+b&oRxjp%d9;k({Y{MZQAnQeIDi7+|fn8*23?8&=7(g`4}&@UwPKJESWuQT`8ad(#2 zBk0YE3GaCg@$@h&P%`^I<4DY<71S3-dGdwOm| zJ)g^rrY?WAfdO-cj>gPmE1%#B9FiBaGAaNSf)8<0g!^MD+S}@?e*~>Bv=k@WMxEt5 zAXJ~-@*_L=%asJv;THuNVTPvl>iX*P^B}&B$I;9XJsBXE)bse`$Kh9~{5qNax%q)rL}t%5V=zZ4F*Ni!Bq_M+tmlIY27nX%jE$~3KXyAoZ~X&0PrI&!|LtD+-V0w{drE}UG2>^b!nherJIBSuZ?{?3 zCurFXDnQIojvs<2jP`m6F@9sej>4N^mMctrGeCsgtG|=JRv@6E5_S=#rL0BdrzGNaZ{~ZW#Z|`d!p?Vfx<9{m#AsJ_3jSU9Tu$ z>v>UZQ(Y2lxz1=Tum_E6krWt;>yRP;u~Pg7BYD|%#wf3*xh&+eL)`r^G2%5R(Bios zp$?CX*Ja`Tv6Sltcl?bSUdm6(^69R-zil-s+LK_^Z~MvLOq6;0{U+LABQA653!Drs z22#|gNaQ2VV$=C4M?RYNMr>qd!fbe^&wbY(kN_V`Go+>x^?3r5%=OYE#ox5iG5Lvb z-5gCIfCC2<7Z!E_0sim!`tX6+nX&0ISlY!7J$pIHeJXZ)IilOSh z?yK%Z6JRr6Wy;-;bZO{#J)s>~3NFUFkY}m07W&UB`r$zM8h=g26 z**zLL7NoXSWs*p=SG)F>OXtF0Zc{NJYizcBLCagdp`j=cRO=6>1R`Ea#y=A#vu&_4 zIjYhslD9Ckx)qcp{+jt(tN#)fS?p#fAtU=u{Y}-WS91%x3_c71hyiqV%5is8SRg%n zYQ39H!ct$kDb%S*lPitW;eUH9w{4cbw4kewH~Q9Nv& z@|m=Q0s)-=xc}vPxm?HQcgE@h6K<~6aa6zqHP~b_bnPQx!3T10Q@UolU)h?!dhAQM zgq4I*eIP-L8yCS_`B3+x#Qk{*DFajp35SL-s*PG=iBVEz+_Z9beMdS$=L(%GQ4>+GC#t$z)g3`8_grZL&{9K>|ps_0D!mlG7)Ulwe?)otYi)~g&x z685wf_OhSNeNR5?*H~_Gd?W{*}d9k3J53$mQc8R&W?b#Gw4zs7Ir3dEiZ= zQDi?zOA$M`lpcxU{D3qkgg*R;{f|`XjNVG6Eil*NWzZ>net;&UXe2_`1)+o(owK(v`bIwATd$-L-8g z006AUu~h#X)fP8khglt4ol_lqnI!}$N6Z~k1o!Z;9p$nuRbvGz{czjl&x>(9(%44Q z+*Ym|-M=2?eeL(8tKWBe-9FoLzw>C|j{t+=*bVXihP^Sj)CsxqSKWr;>~;47rQpzs z1ai@u`~76-^HI0LWIjgK196r{QjZLbyl753{6JG$ekiLeaW9($K8{wSx%=#b!w4+U zl01&YGPmpfG%D@34yE&pNJy$L6p!@~<|X%OONkJ%bG?PIiqt1Jzxq#qBykC zX-D2OXJq2cWlisb2Sw*|Gu>0QRa1wG$JBsy(VLXUx3?nIZcQ&yGQz^5P0)ReYBgsP zAOxoD2|+_{0-YH%C!z*Ko|W1zVdeu5v#$^H5a_CDM3{`y?;C4~uuys1BG zs{B1OyRh&;<$XV5P%H-)`iNDjV)UtGGWB`hYK06RSO8d2)_mCc`uxn1R~d%B)G%a( z9D7F*y03)!yjGHwCy*2dcR9`tu3D-29K^5k-u?P8UAiRV;>`X3a{-pXbT?k<&S>ej zxZe+(yC0a*TBiag59qpXpL7`M?jQgrtBkRtvyT715xL!rdAsjjeSy(yBA3CJsoR}d z`MW=z3)FanSm2DtP7{Ii4$rU;PYfEh`Y#O4zQ1}%ZS`$$@58^2M82j&PPhpUrr;9E zh~I23WFA~9#2}GHado|!JU(XnK2)8QQ#j2#nu~4h2K-@jcz+QoY-x8rR@=DdV4Zqq zz4DTVTo#CVe=ctkHcUo-W2H14?2FjK4c}m26Qd!=r+r89c;;fVv6(SM1n8r8e_nSB zeDsc$S^sf;F#=^mq~@K-cVFKw5q~zP0Lg#R{1ulxgCPE#2!eOuy|8RGT5LcC2rGTW zUGd*vL@sHCD}oD;+j$-J5x*=+63sY$fPl2@<_?{Y+de^++MQc3*OK~C5P;s?W^L~c zXQJ1?1|M<#f`@i>j9BO?Nqa)BuLDdTV1FzRLNKEw}LO zGe9oi_&N1S08SYbAcfm><#B_M{glmXwu&v}Y0{GpCwD0nm|+g#2)^SLf(pItN%Z;o z7W`Im3;Rk=-O+4fXlLZ?h)+j$`ru^qGCq;5j@;M==bm@NP03Bf0$!rLyC>P8e3Ch#^3pP3|7R{K3}$GK zpQ(+-hT~pia<%1B;rD_}R$M6OQjbtr0O|IV=f&06r5aQB?XWZPMyERn24?Gh5M(xy zHk@2s7^2S3&irc8wht<2g4bJ@o@Yo)cLS~`vy<9d(hSCC-@mVQy(R`doT+xd8LKzK zLpE*LTdW;A_q=Ee`@B-*l;w~B^KFl(cd~`%>K!Dt*!6$^)lc{n>vU)t6aZO+Mh`Ap z13=F3havWK_*WVQr{t%4yrAiVt=3}j`;@P|>iI6+yBW$HX&Mq1U@I)=^H9fsy(IMh zs=&i6sG$P`Adx9AC%C9-3E$UebzO7P@qyh_nI~nj$0j9_N~|d7U1QW)*>t#k&-#D~ zl9YIReT9aG2Iy*tff5xw#a*vQ#}+y1werBhG^DZ=|2kV=mM8Na^G0WIC|%Z)*yE2` zb$qr(F6lVmAK!oo2Q77Uwr=)@+S}W~bRR}l=u|7z>kLP#t-4C{4WNX7^X1Yb1#;u2 zAxkSmM}IMa=geER%LR!sb-&L}W-e4#mUCJ9jKZt8VV0GHp~+?WZ8|XXzaK_vK~Tx# zMQI%^w>dH~#_~9D@^PB)S+ih^B5p@ITwh3T5jfHsm`eX@(VWmw|FaXNSL*GuHuPIB z6fW&_+}TKuXakKL*ll z;Ed#ZG?48n?rrWv-ef2&D(Y=Reik})tZnPXcAVlzSd5ou8uD-o7N3Xd(T#zgcq69c zkeq^)`7DbSUd_2%aGcZKOIwO2GA_#Jn`<|L@^C2J9x$8ZGKIWAS|N5gE@AT`A7-VyC;z9eXPv2cb7+^@n0`D7BFuh;sOM>RhKSVoY*T-)qdQvMau+Fv{pCpF?+lP)sEP-Sa zAxr{izxD-D@VJhV-6Uc+9ic};D;wOG88Co#35bJi=&AijiK-BC5k~O&j?(QViWu=t zZm|RT$N&cp($)qK7sXCpZ@^~Dg9IKH4l@RxVy%-WP%C=?0u4%3OGWoC=zy>?XY!iH z5aS-DZ;{a8tu0?~|F@uBINf?}AVF}bUJL*e?1+Q+y_@K3C|=)1*_ri@x5_XwqoVXT za$s2e+brJHjbVhiP@{~Q+<BN-L&dN;3)E$%aR5x5I1!cxkYN-q7HwpkM zT&8HZlgwS4@ic!Xjrej#=GJccnpbUlyjawkb+fSiphW){df zL=|tG%(l(^JX^37HU?KOSCo4CT$h@ng%j2BWkUH0_%V;vIQ>3lQt58JXzqEl^PPHV zsv(uc2Qnq*dK@_zApX+=zD z8C365H?!>w51b{N1S|e`zXmVSI-Lq0de`7 zQkEv9foTX)M2iOlLl-6k%gr!u5u+vt-T3ahjS_*h4CZ6rDFJ{-7E1Isb(#rAD!}2Ki4)|RAOz=OhB6MKoJCic5=H|E} zn>g1k{vc<~DURQhP5eD42awRFnz-wK6)Q_+ZY&5q@Wj8mO6%<79B5^qWXCIcZ@sN0 zm;uS8Gg85YkK35oHv+ZaGqMK>0@mzlg`AiEoT+wz0sR1gxoL5F3l0#Ehu;y`dJh3% zmK?Gcd-u~^3GJ5!C@X&XBhR=zO!m^#W;@m)Eyi+yh^wN+=2Na~c8Yw!#)WL95C#p7 zbUpny*iv~3YOMJ)?42Ndk#n{~MZAnY)5NX1q357U)&;sx2y1soO5gNz3{L1ov+sCX z*`4Um&Dgu^C`|9Ee`XQz9Vw*0R8kokfwdugCTYRF^r12K;AFl}Dje+@sd3{O!wt8* zj54`s*@Uwcafu~=<5v<;ShpYyJrXERVDXdyiWV1As4;tolE7mx4ukNzLnr=h1OQ9> z+wa;#r$6zX_}_i=r~yqzYh~czdnRG-eZSW~N(&zMkhY&-$YI5owiQACP5)&5bB=y2 zY=Erovi%+^p~jRQ9+1YF{u^z?;HcDTXH(#p^vPpc2!JF8Rcb
    Az7NjS2$Bz`N) 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 Ws`%vY5cDbpTsO>Z%&?}OY5xF>l(fPC diff --git a/resources/images/cali_fdc_editing_diagram_CN.png b/resources/images/cali_fdc_editing_diagram_CN.png deleted file mode 100644 index 3a7d57cf7e10fe7e203208bb5d58cd7275c78577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55397 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 diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 638c85b..2732169 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -361,6 +361,29 @@ void CalibrationPresetPage::msw_rescale() #define NOZZLE_LIST_DEFAULT 1 float nozzle_diameter_list[NOZZLE_LIST_COUNT] = {0.2, 0.4, 0.6, 0.8 }; +void CalibrationPresetPage::create_paragraph(wxWindow* parent, Label* title, std::string title_txt, Label* content, std::string content_txt) { + title = new Label(this, _L(title_txt)); + title->SetFont(Label::Head_14); + title->Wrap(FromDIP(1100)); + title->SetMinSize({ FromDIP(1100), -1 }); + + content = new Label(this, _L(content_txt));; + content->SetFont(Label::Body_14); + content->Wrap(FromDIP(1100)); + content->SetMinSize({ FromDIP(1100), -1 }); + m_top_sizer->Add(title); + m_top_sizer->Add(content); + m_top_sizer->AddSpacer(PRESET_GAP); +} +void CalibrationPresetPage::create_txt(wxWindow* parent, Label* label, std::string label_txt) { + label = new Label(parent, _L(label_txt)); + label->SetFont(Label::Body_14); + label->Wrap(FromDIP(1100)); + label->SetMinSize({ FromDIP(1100), -1 }); + m_top_sizer->Add(label); + m_top_sizer->AddSpacer(PRESET_GAP); +} + //w29 void CalibrationPresetPage::add_bitmap(wxWindow* parent, wxBoxSizer* m_top_sizer, std::string img,const bool custom_cut , const int px_cnt) { wxBitmap before_bmp;// = create_scaled_bitmap(img, this, 350); @@ -395,195 +418,256 @@ void CalibrationPresetPage::create_gif_images(wxWindow* parent, wxBoxSizer* m_to //w29 void CalibrationPresetPage::create_page_flow_coarse(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("You only need to click the \"Calibrate\" button below and wait for a short time.After successful slicing, you have three ways to print:\ + + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "You only need to click the \"Calibrate\" button below and wait for a short time.After successful slicing, you have three ways to print:\ \n1. Directly send the sliced file and print it;\ \n2. Send the sliced file to the printer via the network and manually select the sliced file for printing;.\ \n3. Send the sliced file to a storage medium and print it through the storage medium.\ \nAfter successful printing, you will receive the model as shown in the picture. Choose the number with the smoothest surface. \ - \nThe value of the number \"0\" in the figure has the smoothest surface, so the value obtained from coarse calibration is \"1 + 0.00 = 1\", which can be used as the intermediate value for fine calibration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + \nThe value of the number \"0\" in the figure has the smoothest surface, so the value obtained from coarse calibration is \"1 + 0.00 = 1\", which can be used as the intermediate value for fine calibration."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); + add_bitmap(parent, m_top_sizer, "flowcoarseresult", true, 400); m_top_sizer->AddSpacer(PRESET_GAP); - m_custom_range_panel = new CaliPresetCustomRangePanel(parent, 1); - //m_value_inputs m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); - create_paph(parent, _L("Step 2"), _L("You can also directly apply this value to your printing configuration, return to the \"Prepare\" interface, enter the filaments parameters to make modifications, and then click the save button to save your configuration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); - //add_bitmap(parent, m_top_sizer, "flowratiocoarseset", true, 180); - create_gif_images(parent, m_top_sizer, "flowratiocoarseset"); - + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "You can also directly apply this value to your printing configuration, return to the \"Prepare\" interface, enter the filaments parameters to make modifications, and then click the save button to save your configuration."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); + create_gif_images(parent, m_top_sizer, "flowratiocoarseset"); +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif + } //w29 void CalibrationPresetPage::create_page_flow_fine(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("After passing the \"coarse calibration\", the intermediate value \"1\" was obtained. Enter this value into the text box below and follow the steps in the \"coarse calibration\" to print.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "After passing the \"coarse calibration\", the intermediate value \"1\" was obtained. Enter this value into the text box below and follow the steps in the \"coarse calibration\" to print."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); m_custom_range_panel = new CaliPresetCustomRangePanel(parent, 1,true); m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); m_top_sizer->AddSpacer(PRESET_GAP); - create_paph(parent, _L("Step 2"), _L("After printing, select a number with the smoothest and smoothest surface, as shown in the figure below as \" - 1\". The optimal flow rate for obtaining current filaments is \"1.00 - 0.01 = 0.99\".")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "After printing, select a number with the smoothest and smoothest surface, as shown in the figure below as \" - 1\". The optimal flow rate for obtaining current filaments is \"1.00 - 0.01 = 0.99\"."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); + add_bitmap(parent, m_top_sizer, "flowfineresult", true, 430); m_top_sizer->AddSpacer(PRESET_GAP); - create_paph(parent, _L("Step 3"), _L("Fill in the value obtained in step 2 into the \"Flow ratio\" in the filaments settings, and you have completed the flow calibration here")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); - //add_bitmap(parent, m_top_sizer, "flowratioset", true, 180); + Label* title_3{ nullptr }; + std::string title_text_3 = "Step 3"; + Label* content_3{ nullptr }; + std::string content_text_3 = "Fill in the value obtained in step 2 into the \"Flow ratio\" in the filaments settings, and you have completed the flow calibration here"; + create_paragraph(parent, title_3, title_text_3, content_3, content_text_3); + create_gif_images(parent, m_top_sizer, "flowratioset"); - +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, title_3, content_1, content_2, content_3]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_3->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_3->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } //w29 void CalibrationPresetPage::create_page_pa_line(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time.The software will automatically set the calibration configuration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time.The software will automatically set the calibration configuration."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); m_custom_range_panel = new CaliPresetCustomRangePanel(parent); m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); m_top_sizer->AddSpacer(PRESET_GAP); - auto extra_text = new Label(parent, _L("After successful slicing, you have three methods to perform the operation:\ + + Label* introduce_1{ nullptr }; + std::string introduce_text_1 = "After successful slicing, you have three methods to perform the operation:\ \n1. Directly send the sliced file and print it;\ \n2. Send the sliced file to the printer via the network and manually select the sliced file for printing;\ \n3. Send the sliced file to a storage medium and print it through the storage medium.\ - \nReferring to the process in the \"PA Line\", you will print the calibration model as shown in the following figure.")); - extra_text->SetFont(Label::Body_14); - extra_text->Wrap(FromDIP(1000)); - extra_text->SetMinSize({ FromDIP(1000), -1 }); - m_top_sizer->Add(extra_text); - m_top_sizer->AddSpacer(PRESET_GAP); + \nReferring to the process in the \"PA Line\", you will print the calibration model as shown in the following figure."; + create_txt(parent, introduce_1, introduce_text_1); + add_bitmap(parent, m_top_sizer, "PressureAdvanceLine", true, 400); m_top_sizer->AddSpacer(PRESET_GAP); - - create_paph(parent, _L("Step 2"), _L("After printing is completed, select the smoothest line, enter its corresponding value into the software and save it.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "After printing is completed, select the smoothest line, enter its corresponding value into the software and save it."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); - create_gif_images(parent, m_top_sizer, "pavalue03"); - + create_gif_images(parent, m_top_sizer, "pavalue03"); +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce_1]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce_1->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } //w29 void CalibrationPresetPage::create_page_pa_pattern(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time.The software will automatically set the calibration configuration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time.The software will automatically set the calibration configuration."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); m_custom_range_panel = new CaliPresetCustomRangePanel(parent); m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); m_top_sizer->AddSpacer(PRESET_GAP); - auto extra_text = new Label(parent, _L("After successful slicing, you have three methods to perform the operation:\ + Label* introduce_1{ nullptr }; + std::string introduce_text_1 = "After successful slicing, you have three methods to perform the operation:\ \n1. Directly send the sliced file and print it;\ \n2. Send the sliced file to the printer via the network and manually select the sliced file for printing;\ \n3. Send the sliced file to a storage medium and print it through the storage medium.\ - \nReferring to the process in the \"PA Pattern\", you will print the calibration model as shown in the following figure.")); - extra_text->SetFont(Label::Body_14); - extra_text->Wrap(FromDIP(1000)); - extra_text->SetMinSize({ FromDIP(1000), -1 }); - m_top_sizer->Add(extra_text); - m_top_sizer->AddSpacer(PRESET_GAP); + \nReferring to the process in the \"PA Pattern\", you will print the calibration model as shown in the following figure."; + create_txt(parent, introduce_1, introduce_text_1); + add_bitmap(parent, m_top_sizer, "PressureAdvancePattern", true, 350); m_top_sizer->AddSpacer(PRESET_GAP); - - create_paph(parent, _L("Step 2"), _L("There are three feature regions in this model that need to be observed:\ + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "There are three feature regions in this model that need to be observed:\ \n1. In regions 1 and 3 of the figure, when the pressure advance value is too small, material stacking will occur and the endpoints will exceed the bounding box. When the pressure advance value is too high, there may be a shortage of wire and the endpoint has not reached the bounding box.\ \n2. In region 2 of the figure, when the pressure advance value is too small, material stacking may occur, which can cause excessive overflow at corners during actual printing. When the pressure value is too high, there may be missing threads. In actual printing, it can cause corners to become rounded and lead to missing threads.\ - \nFinally, save the value with the best surface effect.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + \nFinally, save the value with the best surface effect."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); + create_gif_images(parent, m_top_sizer, "pavalue03"); +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce_1]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce_1->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } //w29 void CalibrationPresetPage::create_page_pa_tower(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time. The software will automatically set the calibration configuration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "Enter the minimum pressure advance value, maximum pressure advance value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time. The software will automatically set the calibration configuration."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); m_custom_range_panel = new CaliPresetCustomRangePanel(parent); m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); m_top_sizer->AddSpacer(PRESET_GAP); - auto extra_text = new Label(parent, _L("After successful slicing, you have three methods to perform the operation:\ + + Label* introduce_1{ nullptr }; + std::string introduce_text_1 = "After successful slicing, you have three methods to perform the operation:\ \n1. Directly send the sliced file and print it;\ \n2. Send the sliced file to the printer via the network and manually select the sliced file for printing;\ \n3. Send the sliced file to a storage medium and print it through the storage medium.\ - \nReferring to the process in the \"PA Tower\", you will print the calibration model as shown in the following figure.")); - extra_text->SetFont(Label::Body_14); - extra_text->Wrap(FromDIP(1000)); - extra_text->SetMinSize({ FromDIP(1000), -1 }); - m_top_sizer->Add(extra_text); - m_top_sizer->AddSpacer(PRESET_GAP); + \nReferring to the process in the \"PA Tower\", you will print the calibration model as shown in the following figure."; + create_txt(parent, introduce_1, introduce_text_1); + add_bitmap(parent, m_top_sizer, "patowermodel", true, 350); m_top_sizer->AddSpacer(PRESET_GAP); - create_paph(parent, _L("Step 2"), _L("Observe each corner of the model and calibrate it. The pressure advance increases by a step value gradient with every 5mm increase in height. If the pressure advance value is too small, there will be excessive extrusion at the corner. If the pressure advance value is too large, there will be a right angle becoming rounded or even missing threads at the corner. Determine the optimal position for the effect and use a scale to determine the height.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); - - create_paph(parent, _L("Step 3"), _L("Calculate the optimal pressure advance value using the given formula:\ + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "Observe each corner of the model and calibrate it. The pressure advance increases by a step value gradient with every 5mm increase in height. If the pressure advance value is too small, there will be excessive extrusion at the corner. If the pressure advance value is too large, there will be a right angle becoming rounded or even missing threads at the corner. Determine the optimal position for the effect and use a scale to determine the height."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); + + Label* title_3{ nullptr }; + std::string title_text_3 = "Step 3"; + Label* content_3{ nullptr }; + std::string content_text_3 = "Calculate the optimal pressure advance value using the given formula:\ \nPressure Advance = k_Start + floor(height ÷ 5) × k_Step\ \nNOTICE: floor() represents rounding downwards\ \nAccording to the measured values, the pressure advance value in the figure is : 0.00 + floor(22.7 ÷ 5) × 0.005 = 0.02\ - \nFinally, save the value with the best surface effect.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + \nFinally, save the value with the best surface effect."; + create_paragraph(parent, title_3, title_text_3, content_3, content_text_3); + create_gif_images(parent, m_top_sizer, "pavalue02"); - - +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, title_3, content_1, content_2, content_3, introduce_1]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_3->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_3->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce_1->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } void CalibrationPresetPage::create_page_max_volumetric_speed(wxWindow* parent, wxBoxSizer* m_top_sizer) { - create_paph(parent, _L("Step 1"), _L("Enter the minimum volumetric speed value, maximum volumetric speed value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time. The software will automatically set the calibration configuration.")); - m_top_sizer->Add(m_txt_title); - m_top_sizer->Add(m_txt_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_1{ nullptr }; + std::string title_text_1 = "Step 1"; + Label* content_1{ nullptr }; + std::string content_text_1 = "Enter the minimum volumetric speed value, maximum volumetric speed value, and step size at the bottom of the current page, click the \"Calibrate\" button at the bottom of the page, and wait for a little time. The software will automatically set the calibration configuration."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); m_custom_range_panel = new CaliPresetCustomRangePanel(parent); m_top_sizer->Add(m_custom_range_panel, 0, wxALIGN_CENTER); m_top_sizer->AddSpacer(PRESET_GAP); - auto extra_text = new Label(parent, _L("After successful slicing, you have three methods to perform the operation:\ + Label* introduce_1{ nullptr }; + std::string introduce_text_1 = "After successful slicing, you have three methods to perform the operation:\ \n1. Directly send the sliced file and print it;\ \n2. Send the sliced file to the printer via the network and manually select the sliced file for printing;\ \n3. Send the sliced file to a storage medium and print it through the storage medium.\ - \nReferring to the process in the \"Max Volumetric Speed Calibration\", you will print the calibration model as shown in the following figure.")); - extra_text->SetFont(Label::Body_14); - extra_text->Wrap(FromDIP(1000)); - extra_text->SetMinSize({ FromDIP(1000), -1 }); - m_top_sizer->Add(extra_text); - m_top_sizer->AddSpacer(PRESET_GAP); - + \nReferring to the process in the \"Max Volumetric Speed Calibration\", you will print the calibration model as shown in the following figure."; + create_txt(parent, introduce_1, introduce_text_1); add_bitmap(parent, m_top_sizer, "Volumetricspeedmodel", true, 350); + m_top_sizer->AddSpacer(PRESET_GAP); create_paph(parent, _L("Step 2"), _L("It can be observed that at a certain height, the model begins to show missing fibers. There are two methods to measure the maximum volumetric velocity:\ \n1. Observing the number of notches nums on the right side, you can use StartV + (step * 2) = Max Volumetric Speed.\ @@ -591,7 +675,27 @@ void CalibrationPresetPage::create_page_max_volumetric_speed(wxWindow* parent, w m_top_sizer->Add(m_txt_title); m_top_sizer->Add(m_txt_content); m_top_sizer->AddSpacer(PRESET_GAP); + + Label* title_2{ nullptr }; + std::string title_text_2 = "Step 2"; + Label* content_2{ nullptr }; + std::string content_text_2 = "It can be observed that at a certain height, the model begins to show missing fibers. There are two methods to measure the maximum volumetric velocity:\ + \n1. Observing the number of notches nums on the right side, you can use StartV + (step * 2) = Max Volumetric Speed.\ + \n2. In the \"Preview\" interface, view the Gcode of the model, find the \"Flow\" value corresponding to the missing part, and save it."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); + create_gif_images(parent, m_top_sizer, "Volumetricspeedset"); +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce_1]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce_1->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.hpp b/src/slic3r/GUI/CalibrationWizardPresetPage.hpp index 7be39a1..51da4a7 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.hpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.hpp @@ -119,6 +119,8 @@ public: void msw_rescale() override; //w29 + void create_paragraph(wxWindow* parent, Label* title, std::string title_txt, Label* content, std::string content_txt); + void create_txt(wxWindow* parent, Label* label, std::string label_txt); void create_paph(wxWindow* parent, wxString title, wxString content) { m_txt_title = new Label(this, title); diff --git a/src/slic3r/GUI/CalibrationWizardStartPage.cpp b/src/slic3r/GUI/CalibrationWizardStartPage.cpp index 998dbd3..65ceefc 100644 --- a/src/slic3r/GUI/CalibrationWizardStartPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardStartPage.cpp @@ -95,6 +95,28 @@ void CalibrationStartPage::add_bitmap(wxWindow* parent, wxBoxSizer* m_top_sizer, m_bmp_intro_temp = { nullptr }; m_images_sizer_temp = { nullptr }; } +void CalibrationStartPage::create_paragraph(wxWindow* parent, Label* title, std::string title_txt, Label* content, std::string content_txt) { + title = new Label(this, _L(title_txt)); + title->SetFont(Label::Head_14); + title->Wrap(FromDIP(1100)); + title->SetMinSize({ FromDIP(1100), -1 }); + + content = new Label(this, _L(content_txt));; + content->SetFont(Label::Body_14); + content->Wrap(FromDIP(1100)); + content->SetMinSize({ FromDIP(1100), -1 }); + m_top_sizer->Add(title); + m_top_sizer->Add(content); + m_top_sizer->AddSpacer(PRESET_GAP); +} +void CalibrationStartPage::create_txt(wxWindow* parent, Label* label, std::string label_txt) { + label = new Label(parent, _L(label_txt)); + label->SetFont(Label::Body_14); + label->Wrap(FromDIP(1100)); + label->SetMinSize({ FromDIP(1100), -1 }); + m_top_sizer->Add(label); + m_top_sizer->AddSpacer(PRESET_GAP); +} CalibrationPAStartPage::CalibrationPAStartPage(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) @@ -156,40 +178,31 @@ void CalibrationPAStartPage::create_page(wxWindow* parent) m_page_caption->show_prev_btn(false); m_top_sizer->Add(m_page_caption, 0, wxALIGN_CENTER, 0); - - create_when(parent, - _L("What is Pressure Advance Calibration ?"), - _L("From fluid mechanics, when a newtonian fluid flow through a hole, it needs pressure, and the pressure is proportional to the flow rate.\ - \nAs the filament is not rigid body, when the extruder starts to extrude, the filament will be compressed to generate the pressure. The compression process will delay the response of the real flow, as the extruder only provides the amount of the filament that needs to extrude, no extra.")); - - m_top_sizer->Add(m_when_title); - m_top_sizer->Add(m_when_content); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* title_1{ nullptr }; + std::string title_text_1 = "What is Pressure Advance Calibration ?"; + Label* content_1{ nullptr }; + std::string content_text_1 = "From fluid mechanics, when a newtonian fluid flow through a hole, it needs pressure, and the pressure is proportional to the flow rate.\ + \nAs the filament is not rigid body, when the extruder starts to extrude, the filament will be compressed to generate the pressure. The compression process will delay the response of the real flow, as the extruder only provides the amount of the filament that needs to extrude, no extra."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); add_bitmap(parent, m_top_sizer, "PressureAdvanceCompare",true, 346); m_top_sizer->AddSpacer(PRESET_GAP); - create_when(parent, - _L("When to Calibrate Pressure in Advance"), - _L("1.Use different brands of filaments, or the filaments are damp;\ + Label* title_2{ nullptr }; + std::string title_text_2 = "When to Calibrate Pressure in Advance"; + Label* content_2{ nullptr }; + std::string content_text_2 = "1.Use different brands of filaments, or the filaments are damp;\ \n2.The nozzle is worn or replaced with a different size nozzle;\ \n3.Use different printing parameters such as temperature and line width;\ - \n4.PA calibration does not work with PETG.")); + \n4.PA calibration does not work with PETG."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); - m_top_sizer->Add(m_when_title); - m_top_sizer->Add(m_when_content); - m_top_sizer->AddSpacer(PRESET_GAP); - - auto introduce_text = new Label(parent, _L("We have provided 3 calibration modes. Click the button below to enter the corresponding calibration page.\ - \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page.")); - introduce_text->SetFont(Label::Body_14); - introduce_text->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - introduce_text->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - m_top_sizer->Add(introduce_text); - m_top_sizer->AddSpacer(PRESET_GAP); + Label* introduce{ nullptr }; + std::string introduce_text = "We have provided 3 calibration modes. Click the button below to enter the corresponding calibration page.\ + \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page."; + create_txt(parent, introduce, introduce_text); //w29 - m_action_panel = new CaliPageActionPanel(parent, CalibMode::Calib_PA_Line, CaliPageType::CALI_PAGE_START); m_top_sizer->Add(m_action_panel, 0, wxEXPAND, 0); @@ -197,14 +210,17 @@ void CalibrationPAStartPage::create_page(wxWindow* parent) m_top_sizer->Add(m_tips_panel, 0); m_top_sizer->AddSpacer(PRESET_GAP); -// #ifdef __linux__ -// wxGetApp().CallAfter([this]() { -// m_when_content->SetMinSize(m_when_content->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); -// m_about_content->SetMinSize(m_about_content->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); -// Layout(); -// Fit(); -// }); -// #endif +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce->SetMinSize(introduce_text->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } //w29 @@ -238,65 +254,42 @@ void CalibrationFlowRateStartPage::create_page(wxWindow* parent) m_page_caption->show_prev_btn(false); m_top_sizer->Add(m_page_caption, 0, wxALIGN_CENTER, 0); - Label* title_1{ nullptr }; + Label* introduce{ nullptr }; + std::string introduce_text = "When using official filaments, the default values of the software are obtained through our testing, and usually perform well in the vast majority of printing situations."; + create_txt(parent, introduce, introduce_text); + + Label* title_1{nullptr}; + std::string title_text_1 = "When do you need Flowrate Calibration"; Label* content_1{ nullptr }; - Label* title_2{ nullptr }; - Label* content_2{ nullptr }; - - auto introduce_text = new Label(parent, _L("When using official filaments, the default values of the software are obtained through our testing, and usually perform well in the vast majority of printing situations.")); - introduce_text->SetFont(Label::Body_14); - introduce_text->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - introduce_text->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - m_top_sizer->Add(introduce_text); - m_top_sizer->AddSpacer(PRESET_GAP); - - title_1 = new Label(this, _L("When do you need Flowrate Calibration")); - title_1->SetFont(Label::Head_14); - title_1->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - title_1->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - - content_1 = new Label(this, _L("If you notice the following signs and other uncertain reasons during printing, you may consider performing flowrate calibration:\ + std::string content_text_1 = "If you notice the following signs and other uncertain reasons during printing, you may consider performing flowrate calibration:\ \n1. Over-Extrusion: If you see excess material on your printed object, forming blobs or zits, or the layers seem too thick, it could be a sign of over-extrusion;\ \n2. Under-Extrusion: This is the opposite of over - extrusion.Signs include missing layers, weak infill, or gaps in the print.This could mean that your printer isn't extruding enough filament;\ \n3. Poor Surface Quality : If the surface of your prints seems rough or uneven, this could be a result of an incorrect flow rate;\ \n4. Weak Structural Integrity : If your prints break easily or don't seem as sturdy as they should be, this might be due to under-extrusion or poor layer adhesion, which can be improved by flow rate calibration;\ - \n5. When using third-party filaments"));; - content_1->SetFont(Label::Body_14); - content_1->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - content_1->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - m_top_sizer->Add(title_1); - m_top_sizer->Add(content_1); - m_top_sizer->AddSpacer(PRESET_GAP); + \n5. When using third-party filaments"; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); add_bitmap(parent, m_top_sizer, "FlowrateCompare",true,290); - title_2 = new Label(this, _L("Calibration process")); - title_2->SetFont(Label::Head_14); - title_2->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - title_2->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - - content_2 = new Label(this, _L("The calibration process includes two types: coarse calibration and fine calibration.\ + Label* title_2{ nullptr }; + std::string title_text_2 = "Calibration process"; + Label* content_2{ nullptr }; + std::string content_text_2 = "The calibration process includes two types: coarse calibration and fine calibration.\ \nUsually, we first use coarse calibration to obtain a range, and then perform fine calibration to obtain precise values. You can also directly use the values of coarse calibration.\ - \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page.")); - content_2->SetFont(Label::Body_14); - content_2->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - content_2->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - - m_top_sizer->Add(title_2); - m_top_sizer->Add(content_2); - m_top_sizer->AddSpacer(PRESET_GAP); + \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); m_action_panel = new CaliPageActionPanel(parent, CalibMode::Calib_Flow_Rate, CaliPageType::CALI_PAGE_START); m_top_sizer->Add(m_action_panel, 0, wxEXPAND, 0); #ifdef __linux__ - wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce_text]() { + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2, introduce]() { title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); - introduce_text->SetMinSize(introduce_text->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + introduce->SetMinSize(introduce_text->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); Layout(); Fit(); }); @@ -333,89 +326,45 @@ void CalibrationMaxVolumetricSpeedStartPage::create_page(wxWindow* parent) m_page_caption->show_prev_btn(false); m_top_sizer->Add(m_page_caption, 0, wxALIGN_CENTER, 0); - create_when(parent, - _L("What is Max Volumetric Speed Calibration ?"), - _L("Different filaments have different maximum volume speed.\ + Label* title_1{ nullptr }; + std::string title_text_1 = "What is Max Volumetric Speed Calibration ?"; + Label* content_1{ nullptr }; + std::string content_text_1 = "Different filaments have different maximum volume speed.\ \nNozzle material, caliber, printing temperature, etc., will affect the maximum volume speed.\ \nWhen the maximum volume velocity is set too high and does not match the filament properties, there may be missing threads during the printing process, resulting in a deterioration of the surface texture of the model.\ - \nThis is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament.")); + \nThis is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament."; + create_paragraph(parent, title_1, title_text_1, content_1, content_text_1); - m_top_sizer->Add(m_when_title); - m_top_sizer->Add(m_when_content); - m_top_sizer->AddSpacer(PRESET_GAP); - - create_when(parent, - _L("When to Calibrate Max Volumetric Speed ?"), - _L("We have configured corresponding values for our official consumables in the software. When you have the following situations, you need to calibrate the Max Volumetric Speed:\ + Label* title_2{ nullptr }; + std::string title_text_2 = "When to Calibrate Max Volumetric Speed ?"; + Label* content_2{ nullptr }; + std::string content_text_2 = "We have configured corresponding values for our official consumables in the software. When you have the following situations, you need to calibrate the Max Volumetric Speed:\ \n1.Use different brands of filaments;\ \n2.Replaced nozzles with different materials and diameters;\ \n3.You have changed the printing temperature;\ \n4.During the printing process, it was found that there were missing threads, insufficient extrusion, or broken filling.\ - \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page.")); + \nBefore calibration, you need to select the printer you are using, the consumables that need to be calibrated, and the process. You can directly select them in the upper left corner of the current page."; + create_paragraph(parent, title_2, title_text_2, content_2, content_text_2); - m_top_sizer->Add(m_when_title); - m_top_sizer->Add(m_when_content); - m_top_sizer->AddSpacer(PRESET_GAP); add_bitmap(parent, m_top_sizer, "maxvolumetricspeedmodel", true, 300); m_top_sizer->AddSpacer(PRESET_GAP); - /* - auto extra_text = new Label(parent, _L("Different filaments have different maximum volume speed.\ - \nNozzle material, caliber, printing temperature, etc., will affect the maximum volume speed.\ - \nWhen the maximum volume velocity is set too high and does not match the filament properties, there may be missing threads during the printing process, resulting in a deterioration of the surface texture of the model.\ - \nThis is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament.")); - extra_text->SetFont(Label::Body_14); - extra_text->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - extra_text->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - m_top_sizer->Add(extra_text); - m_top_sizer->AddSpacer(PRESET_GAP);*/ - - /* - auto end_text = new Label(parent, _L("During the test, the printing speed will increase layer by layer. When there is a hole or missing wire on the surface of the model, it indicates that the layer has reached the maximum volume speed, and the maximum volume speed is calculated according to the ratio of height.")); - end_text->SetFont(Label::Body_14); - end_text->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - end_text->SetMinSize({ CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1 }); - m_top_sizer->Add(end_text); - m_top_sizer->AddSpacer(PRESET_GAP);*/ - - /* - create_when(parent, _L("When you need Max Volumetric Speed Calibration"), _L("Over-extrusion or under extrusion")); - - m_top_sizer->Add(m_when_title); - m_top_sizer->Add(m_when_content); - m_top_sizer->AddSpacer(PRESET_GAP); - - auto recommend_title = new Label(parent, _L("Max Volumetric Speed calibration is recommended when you print with:")); - recommend_title->SetFont(Label::Head_14); - recommend_title->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - m_top_sizer->Add(recommend_title); - auto recommend_text1 = new Label(parent, _L("material with significant thermal shrinkage/expansion, such as...")); - recommend_text1->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - recommend_text1->SetFont(Label::Body_14); - m_top_sizer->Add(recommend_text1); - auto recommend_text2 = new Label(parent, _L("materials with inaccurate filament diameter")); - recommend_text2->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH); - recommend_text2->SetFont(Label::Body_14); - m_top_sizer->Add(recommend_text2); - - m_top_sizer->AddSpacer(PRESET_GAP); - - if (wxGetApp().app_config->get_language_code() == "zh-cn") { - create_bitmap(parent, "cali_page_before_pa_CN", "cali_page_after_pa_CN"); - } else { - create_bitmap(parent, "cali_page_before_pa", "cali_page_after_pa"); - } - - m_top_sizer->Add(m_images_sizer, 0, wxALL, 0); - - m_top_sizer->AddSpacer(PRESET_GAP);*/ - m_action_panel = new CaliPageActionPanel(parent, m_cali_mode, CaliPageType::CALI_PAGE_START); m_top_sizer->Add(m_action_panel, 0, wxEXPAND, 0); CaliPresetTipsstartPanel* m_tips_panel = new CaliPresetTipsstartPanel(parent); m_top_sizer->Add(m_tips_panel, 0); m_top_sizer->AddSpacer(PRESET_GAP); +#ifdef __linux__ + wxGetApp().CallAfter([this, title_1, title_2, content_1, content_2]() { + title_1->SetMinSize(title_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + title_2->SetMinSize(title_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_1->SetMinSize(content_1->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + content_2->SetMinSize(content_2->GetSize() + wxSize{ 0, wxWindow::GetCharHeight() }); + Layout(); + Fit(); + }); +#endif } void CalibrationMaxVolumetricSpeedStartPage::msw_rescale() diff --git a/src/slic3r/GUI/CalibrationWizardStartPage.hpp b/src/slic3r/GUI/CalibrationWizardStartPage.hpp index fe0786c..e8969b6 100644 --- a/src/slic3r/GUI/CalibrationWizardStartPage.hpp +++ b/src/slic3r/GUI/CalibrationWizardStartPage.hpp @@ -37,6 +37,8 @@ protected: void create_bitmap(wxWindow* parent, std::string img); //w29 void add_bitmap(wxWindow* parent, wxBoxSizer* m_top_sizer, std::string img,bool can_modify = false , int modify_size =350); + void create_paragraph(wxWindow* parent, Label* title, std::string title_txt, Label* content, std::string content_txt); + void create_txt(wxWindow* parent, Label* label, std::string label_txt); }; class CalibrationPAStartPage : public CalibrationStartPage diff --git a/src/slic3r/GUI/OptionsGroup.hpp b/src/slic3r/GUI/OptionsGroup.hpp index 3dfd342..75a3927 100644 --- a/src/slic3r/GUI/OptionsGroup.hpp +++ b/src/slic3r/GUI/OptionsGroup.hpp @@ -107,7 +107,7 @@ public: wxWindow * stb; const wxString icon; const wxString title; - size_t label_width = 15 ;// {200}; + size_t label_width = 20 ;// {200}; wxSizer* sizer {nullptr}; OG_CustomCtrl* custom_ctrl{ nullptr }; int ctrl_horiz_alignment{ wxALIGN_LEFT};