From 3e9067fe8eba8ee7e0556361707ee0796f4c8bde Mon Sep 17 00:00:00 2001 From: Sebastian Marsching Date: Mon, 30 Oct 2017 15:41:20 +0100 Subject: [PATCH 1/3] Add build of MSI packages (#1148) --- share/windows/wix-banner.bmp | Bin 0 -> 85894 bytes share/windows/wix-dialog.bmp | Bin 0 -> 461814 bytes share/windows/wix-patch.xml | 8 ++++++ share/windows/wix-template.xml | 51 +++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 18 ++++++++++-- 5 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 share/windows/wix-banner.bmp create mode 100644 share/windows/wix-dialog.bmp create mode 100644 share/windows/wix-patch.xml create mode 100644 share/windows/wix-template.xml diff --git a/share/windows/wix-banner.bmp b/share/windows/wix-banner.bmp new file mode 100644 index 0000000000000000000000000000000000000000..14a13b8f1ae153db1ba6610510ffdd3218938012 GIT binary patch literal 85894 zcmeI5>r)j+8pg>#u%Gu&*strxsA#-vDlt~Pu%bXfH`%x>7oSB|sFxd~M_L*w%?RWa^?)nY& z*wxeBvv}p+kKPIxzuv*mZ}8KHY#{!9E8y4o9T2bz_np5A@cwum`1Ohx36KB@kbplE zppN_V(_`OBfCNb3)hp^a{|ZQe1W3TY2~fxV`}wi=BtQZrKpp4b011!)3HUbw>bQSD zKlYvkNPq;W_^O%*@Qh#KfK63kI@qI-O1w_(d9~j{hPU zSqTY{00~SG=@s3fk^_bt*v|Z>{+vB4P-hgDXF%$w!6Fgr`Okiyw~g8PhDMI*REZ|@EnB^ zg21-6w#mAtV^PPaLyKiefCNZDMxd{+&u+J`TD2-7BBHXga%5x#daVez`EL{(9v-f! zs6ZgXGcq#XV6ufeE_){QkpKyhfMo)h=?)1A2@Vd19KU?|(p&JmkeR;RrjjAwpo}ZtO$|qYgwW#B!czBZpNPq+k2#k)7rlzJsbFuhD zqsY&OdQUW;kEpgS`(~?2+H@(gu=zswP@g&+Gc9;cifYr-)6s-M<34WcxDO6yNPq-L zzzP8jmebPG@P4wUrbay#-aqWgzE!f~yY0)${-jCC4PPN?oXD>Dc6-k4(t+X0;XEq5 zdiAOzqjgxRIg4se&@Tzr~hD-hMo@#T^5FW#A8$*{-UPx$&zk279(O^xk<06<0f!;iv&o3 z1bhgzw6tJG1v`C&&elKv=aS-0i%xAcO3z?DnLN`#dCONPq-Lz=S|bN=kTmxKP->p@B7DM=dG}H%ZX(r0dzXnk*3o<6h4r zlMvhrD*Llo!GbM9*zJjp`$iq3jvJAop9DyN1bhf|baY^$VO3R?P~-zQ3KtfBY@VRw ziM5B~eRaI0`@y2ZaPz?If1DBxVW%jXHabp=I_~qFm>~fYAORx+Cr_TlnN~OsMUmHM zp5Em}8y6lAHBaL@UUM-1YNiln#W;JnV$tz1lUP*V<>^rhqfs=C4M)4vmf@`(bTFNVul1rfCQujpx}_vo}P(`jt4!D=I5=mlDs#XD=r}sya5%I*1Lz z(DB&H)Om+jTS?{aVHL_DE-zm@R6mM4io>bU;7&_eVK9hE5V70TQr80N>2SxfA7saNG(x_D2z=?90d3h_pT9dKEnpdPsl-NI*(p>(;Hw z$;p`CP_*@^vv5}G5~H;F)aQMJ{X&JMMz5z2#f)lzzraOyO`cop?p|Pjf7X|a^eOzoxKY*X>RJ$`&|!3 znJJBXPahyeQwg#ME*}=L_>vr&?(FQ;_Q{*4j!Uu7NdhE50uln4+}OBrBR;gIC~W`G zz=v6DXQsTXPHC0eBWi^l8yWj5?CKg|uRItuFf^c)=Xc#CPl7HIAORA1GXl-c&3N0X z{ePJBIC6o7%i#(Ou^o|>8(G?AB=H)V&Y<5MDH z0TLhq63`MD8ynlVZy(kILdw;n@}ZF-wHCwf_4LlM1$f{+Xp*a?UQvI4qKl)qbT_D&_x0yKmyhY;I$`KuwXGFwt9*!LPDCY8`!joC5Bj? zg44LHw~mt3@oC{=VG&9UUEwtwXqAAPc8*7iZz3 za7Ranye?~A>bNydEJXq&KmyYwpp3ZjK{$uQ0R`Xby!hBtQZrASV#;U+P6Qwg3PC literal 0 HcmV?d00001 diff --git a/share/windows/wix-dialog.bmp b/share/windows/wix-dialog.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b26ad1e251bf9ecd8aa52207d13b181769852bfe GIT binary patch literal 461814 zcmeFaX_#F_x%S`hr}xAEy8hR7^f)k2Va%L#lI~8YlkN=6b0!iX0~x>xha)N~dXDcA zJ+B@C5fDNGgrqYNP!JUllSe=haGpRwK|lrtnaKq2{oMES)T+IE2!w=VcPiInQLE~y zXR5t^RlD}uyE~42`TzUh4fby|{yPBw{q27>G&JGA|JCqbt8Taz?YI5^4g8N4IJK{s zQ;vVM40LRtL3zFWD;X#m=#LpF9PeowoBNLj_qXm(e|!O#m`Vmp23{{5?}xnZiTLI9 zUNTTJ&@VHv%{aalTLD|qr6)qMeg`6QuX(6{hmrE!FJHkWsFHz_fo;a|H$|5IEu6Ud zj}~Tmxt9!-4D`zk6pq)gUjNbHyAA#6m#^RwRLMZeK;d}dc)1Ho21*9{b_NQ^{}DJo zcN;Fcdr{T5U#i9Xl7W(e9x_lkzAZWa54$rixcBfHDAgqcB?Ems1OFo&-}>d}KR76R zSquLoH1+M5YVp2gpk$zj4E&F9d|NJoyYO-ACy6eqwyU4pTX{Em=;1X`s!Ik+2Ksge z`X9%)Hy^vv-&fux^zD~w@xElBWT1x(Y!{CA6|VKK1$Z|TOkIFIyaq~j$w0|K-_F2x z;dmWB%H=;u2Kx3(wRm4LP%_X%1`5Zwyo`O56rTGg<+r&5Ju2+sHBhQc21*9{b_NQ^ zd!*h!ERMI@vA+FME#8+5lnnHcfvx2DTigMEi`};xWZSvpKkiCgf%otlDAgqcB?Ems z16#@Q?F_^nXpQ`KX0mU;REzf|10@4JWT0?-2bwc_cny^5l7W(ezMX*{IsPWMKD4Ev zb0TBy<;qlV1?kVM)CzCm51YLy;TpSdVEwyYmA_eMwkZE5yzSdB)#820K*>N48ED8z z+C4J1C{RPjm4=m$T4dJtd?JH{_o-`w4J$u-5Q)V$!C0Jt!dZ2dJs|TZR$fEl8?U!otzGR?epoa`J zfL1*Kg7vn(Hc}+eq(WZVorXHT_+{Ok5gqG0xfAP=-8^ zIeq)3TD&hAC>iJ>0}VNvW9KB%r$P)llGRrvLZyzJFD_X_C8LSe=SZ?L>YY|qE79y5 zKACA(3q84#c5ce2Kvd{hS;^$WnYP?vFXxh>(DbN2@>3H+im0YHH)Dktk>vCm6Gh?HBhQc21*9{b_N>aRu`Kpl6Iv=RReZ(hfXI;2A2d} zC!oWNtm#$*1>jQhDvV~1#S)eDuj;$@s+2hFYME$Jkd@wwG9BX-Ro6FNR#vPR6uJWv z2r(I|v@r@@#+gP#zA|k!l|L!ZW+(|GnJ9;3vJ#rJ>_rze+0nOOs>S<~fs%n9GSEO6 z5ogXX!vXJqD>#72+ysRn2*ey@AsO<4LSc>&k4*4&uz{Q^U1d%!NzI zf0I|GE6Jc{7IQ?}rG)3Eg|>Somw-zvBnMK#%q7z~$|GJ0(0Qh!3O2i>aHTW(kTgdx z4MdWx_qImf1N1Ixa)Fg|dUy?#>XLzyfxexA2Eszb(aldL+KSIvAew*$sIfEAMl_^L zZxXNLEIpw_OmxbyDNyJ*%K>M26=7Yna*|6?yR@mLM#gDHx1GOM){$GRfLP_m^4Ff|CCek6%GZjP%cFdH3wxo=JLK(o93_^VdAZt<$nO-3j>mA-we7Vk?2ddxtB5rkkBN=N}Gby}wfWsFBG=d7W zzR}w}AztHeEW-2T80t|D%~puFAeAbQ$h!h3lqYQv?Bdxu5i3B z->Aj+l7U__&|nmEmf6j3L^Cw#tV==1ctL@R5r!KITT?}}5O4yjBP5f4Q)>si2r=xg zj>&=0Lk7{7I?^9^)yky2=?@@!jT}}`j7S{~h;hkYbj;l&cI6&B=04L_q)4&H*-ZPP zFoXVbo60RN9CDHwlf&kN9~q!6C=xtrkk3+OQJXe*FOt9jvw<*~OlL2zgVIzoP%_YW zGtfY&<;V~n{48Dw89b*|p+nPwLTve}ne+)-K~IL8*f2@lNv*LEPDDe&J8DIobrHgd zW6eNGtuBpjW;Z$S&N!n9yO042otWB}U`MN@bsA;J-s+kukanB^MGx?42)3}?JFuQIfe zS-ENYY&vz|(j2Ba*2tVkXRUNwO?8*3G;J`KB}dk+SLn&^xX_J7zhjjP7Q+^;YG?AS=3}Q zIs#k99rjWeiaE=SJH(1mB1zX{h#_~(kSh=3ILPYR$1bWAkCN%cELc<%&(64TO!$jH zlK-Tn$=IP*11M{Zu&9(ymX#ufYznPX!i=<%A&wb7yEDejikY+SvTJ>z$9<^r#OfIc zt%R7|lLPEa=R>Ep+L5{BLr^&0ckj{SdC9<*GSCorenJ4*LAa0zcA0P{JQ;{9ZW0{M zj?`DZvMGVsvhKv3xI@G^4T(iD4t+Tdm~iMJhU6-pp|^w}WYWao`klWfBhM{_ij}6{ z5p4Amvnb3f6N?&iRrOXwlA1puY5YxP3Ya!i?t0jT^46-1g*mg!vNS|5=}%T@BE%#g zftW(Uotha)<*+&CE?L3y39q*FVkqq;10@4}G6M~~$;D++%+BPF-Ty)oS>uQ?c_Pm! zCd3#%66wf6AtoeEo&v@oN3&@oPiadEDP|ajFvN%+nWHB(VZM=HJj)Zd8mDk65W5my z<}xN}YH`j(W27<{u`_VPp9mL7^RVUO7}w=#^kf>-2|W7J^IC`H+_n zkrPicFHN3Srwo^4Ek7$5wA=YjST5b39nDK5~~RY zuA1A5H_kpAp-E9&!Q~@_lmx`Mr58hKFBvEq=#v>}Ff@o1Vu7K}kP-NBKoD4B8L1In zNI>F`1aY8HCpBkFR5HjR<+j8lS|qT%)yl>!Gis{HFLp^a8Q_vwCK)(G6g4g-yH=1| zLfj1Tl1634`i3V#L&%tz3(&W4DJm^>QpK}RIl`+0J#|<1m~iVZi|#O#$VvCvCLzkJ zp1v_Zj8PUXSW}KJazlOX67_TXL<`s@W{DSsg%QMXK=hzK z;iE!iP)RZ-?=_)6fmlr-ODOCjOmnd~P167hNz#09H>{GEESTCF;ym+zfh}a9!AY0Xii{uvj0<)MbBR6%cQhI4oHDF2W(gl? zvQ`p};8Bzi`2R#Nt*CW zRpJ~bn3?2*QrdGK*U-=(OjLw$cs(Y0XbDR0kjG9gk3YA;0%1UxO4^Xi)kS)9x zN^{9T$w1%CKtoQAM3bsA;YLg$4jj;Gs@OrGh&bt7L#_-u>P0a}o7Gf!l_zW>gZ>IRZUdrIf0XMqb9U~sU$<5nms7z$PB3PjV(9WOH=K=E)aqY; zhrO&Xu#TEb?_Mn@t-eO5CK4t`I=xkPlQ1tmZ^~ZTAMaoHZi%L3ATrQkj0mh$L^cvR z2q+Nb&FjUxgc21DIsy%Wl9ZF16_Qe~q|iE=MY1)s?lp8E^`d0B9UH`|ltM{{&XCL^ zQd8)ucT99PRgA^NvJ50cd3P!l%5hc{IJ2fUA*QxU&eU}udiuq`iQ4iLH7{*=`PPT- zw1jYd%|i5&a%pf?@Gac4E^%aTSY=s{$BVxFzht1FWuU>B;yCa{qVD;;{`%kDjIiy^ zK5>u>OugzuX-_~K0$>nUmkX}@^!2~DUix?UpMMESbVO5Jc`w;5`} zA*1P>+m}L5zAJ)okPw*bDN*RP@VZY!Mo#JswWvfB4up?HsU8kkHt16F$Hc-(E9f$v zSI+a+!tp%CrCc)5k2268SoD4tksVJW1rdYwCa{8RI2l*Yz4gI6aVhfRoa!HbmJsAN zf?8ow8wlszu}tVeJ#dBtL>7;LGhBjV9e@!ns*7nLxpL4~92eApPA+VrMEc>3fLL*y zI?-CwmjqmR?WZw&nJ1E2G1o$P);JF9RmdymV&R-ZuHiTnDydS3-Qn@rc)5jiBl;SImQ-EzW%+n$rVxlcB)kUjm z;2!eic(%t)&*iq}2?zs%B0HS4NV71pvW610q7w4(1pI{+xXNuA!=kUp!To$PTRHdR zH+%_w;Ra+X@)}<42#%u{Yob0+6l4&r%{N@9!@7AA9Eb9{e@dp!E7<3u6_15L*9;mp zHAd_7l*^KVl7aq_0b7q(P^+bzF@oF?{%m0ggsreW0T9H{!=*IEG#ShVf036ANQP5UI!rY2|u&g2Qo&<{QTcI)|YKudLPkEqEZ1>aWAb5I85ap|qL>R)5d z+`SqmXvMahQ3L-KSLng);%j+`!Do1`SxTmD2Y*GZ$7wVaT7D!0D=43H`!ZTwV~H|J z(*~bKTbnXjiB^PWlKhZXu`AoqjMy!T74sHe_Zi4&hOmyU&rRi{HOKqHQ$ z3t&VZ&C6G;m4ZMVi^t&0(@vnXsa&4@vDr*kR*29b1Yh+ z$L1SbIA@=8il+fqt@J^8XwLN`5AaZ)ARK73bgh`@A)`A5#C>=U)98*?&UyCk#5}hr z2rZ3Oua&+|x7mVaG;uxd&#oYE(10%Jizb_RFd{2#R)8C*$0Z6-ZYy`iQq9L4I|H}j z+ond93&$}w5;twz~9s%MKfVTi#QVXzZlL2C4F)q~#Pry4= zCf^{eCTzkO3e&M--ZXwj3X8A;K6;aRYfE)h!soAI;D?nJBW^ox? zv15~*i9}TaN+xtx>7v^LsCA5#GEz$pnixw3RyZbkd23w|4kL;t#YHYtztSi%lL;$b3bn)GeW|}c zy>Lq`B?Bb`DFY3G14oG?%uq!D5emW|Id1g9A{Wa{EE2KeCZG*i!5U*0u@xK?*)zI{ ztvItUJBqdyzKLe1bJFZqgzsdI1#>lOoOi78%IK2z$FUx_F79gV$sj3M@VY8Q1P_@6 zXx91~XIXLJ%3*ijY^k0Fb!Uu%IE76hbXvh-op+2b%n#(1OmoH)qU7k(hC_C}AZJY2 zoM&aqOnH7hz3fY&WT0PVpdoJcw5&6rI~p7cj=wx^@D59Ihz0dnkUaQkgsSjCG1Dn| z5l0xc?$(RwCw)vtfD^fRY0!^L$C>+PI;Buhj&o(sJv5m5^D5XVue#8vKIg>DgbfyI z$SBD`v|&PyLyz-O6H;7S6n4Nd0F*&RlbMD^(@br&t`wOn*TVp1-Q?*Q3ei_#hN>(Z z>Yh5%x{0|z44j@6j^{7oQZ5xl zAZC#!Vv0!QWm>Gt#vNlE&3PHEVUaL`hZ19fFwM-lAu5riofU{f%@j&!B^5Gnyz=hmhGqg5DDQAb7e>KLlgacuzFFz)W<*F7EQZfX19M1=RFXXRdO1K7=o{HH zc{%S2s1}lj4Dv`UW~K4SE)z1y5$ByzDFarN9d_zP zP7y8@wv4lGi1;Jj2x~fEbdy~xm}wpC5IJ%?Imu+qt~n5W z>2Rhw+)ln(X6!J>%mF&%=TKrz44+7)mDI#8KIOP+X`?DvE5~5Me1j@lS1Qc9nZwz} zD7ldZVwKsrmtx64$w2?fKm&ng2oR@&K}G~2!&v}27$6KiLIw$PS_l zP#sw>ZBppuqCzXHBZbARicOLUA7s}phS~~_=2ZZW&YP30v_d)*yVc7>@-!}8IT0*a zvm+SF`2%7u$xB8mUV9W2GtDMeC9p~(-SAn^9e~bIE+-i;6nbcxZ_>ji>yqcw%kq#h z7LNCy`?f?7;AUKE*YM>1ICSYmJ=zIwc2{*12 z%p#anUy(@Wcm~%r&6uPh9dq$D>|*)AmvYHK z$w0r!K!b?jEC?Es2)Ox$2BL(V61FM^akb07BnVNJup*YFE~%FUx~*rW5m2pySCX`X zd1&OyE0a75$tcSTAfyeE7Nrjn8T9n>Xp2O1`2q0$)_&z zN|)ADvD@;Wyfsx80&0>TFU0&*xh;$GnVM~K>Nl_25=hBF$v~cg1_KAN$bvIMH9;i@ zt0V;`HVGnPO#p>ULPJlrq;;`mMSb&2Y8DL>6TOg(M!_%#AHof{D{Ylm&dq8*$OTm9 znOh|>F{nnGLmv9we=64k*(xC*;8MV3!ZCBtDwP4v9L8TkR%h#OUF=+yO($zo6OGaq z<#ow(vhFcj-udFWFrMiqRR+EfMtu9@jZ$7NX zou`H>G)77dbi?VK+}8BKOPQ{tvpjdNl6A=QK&v-VdAhVpIjI8As;^n>4!>C zz~!RrJ_9%Kg?qTo-xzS};VVx13ai3_0EF>fp)6!Gfl7VPQ)1A7uM43bV){8l)k6k- zQ!C`gIKaE2lOimcBBCIFqeGZKbr*@8fRNM~M?%1A;oR0<^nB?J8_0}Z;*yWanK zO%B$K3-cy+Iz#}(gh*t^5z{#j^*QP45{EDPLt8Qgg!L+Hh?IOzNf1r=u5m0RpEH#{%B3?lT%@xWz{8!R40leEzHu-D6ZQF~tV7Dllezve%Vg39% zBy-jS*}+yztn{Q=1bQ&jNI+-(czU<`>ndeVA*WS;Tq*-Tlyx1;WywIvK>x@cv3AzxYRtp;Mm@*I5=vLT#i1r(C=$u4qOXF87p+RR+!KW~Bt z7)sL*lt41yX|W}FbVREUP}Ef8RrbfzV3b11K>x}>0~W1ye5qIv%k7-wb;3C!kr})x7F6BzQ4^?iKa8HjxqCuTQmbFiSE>1-V}JU^XX@2r#=2u!@?UCg&2IUzDDZYCN47pZ$l;DI zK6OQ~c~&{!L^hNMKdZ8~$x_N1Q&ros~0w!hD$XP~^ znQ*>E3&4R*1`)xibKVc*Igs9S1Omcz?}SYnC~PxLz8+7lDqz}J^ULpi{0Dl9Be<5u z0ws0WRY!7M{?7+k^N=NgiAt+!X2vAD>Vb7zuyXh|NiBqb;Srr>qj4#5xs46(X;)*X#ey=;o%7Dk_M?=XK=b^3W<{l6rXiyS zRdO7~^!z+O`A`Za10@6fDFfiR69k1x&Tgy8sgZNMYw%i8f>t7tK%cKwV;M^UYEG1g z80>ZxCcMO;`L)6})4UOm!_V02F+N&2TAapN0jAKvan;=OsPCi$xSF4;zCKZ5!T#lx z2Za!+GxxGGL!iYx#?;q#U`(fH28DcrL>IYaIw50GK++F`HJ9*g)f`Og7Abr%)2X|x zB)g?hGEg$mpE7`bmF#VJ#vn%q37BBlHS%iBXy8aZvS;Ixut*oJFgHIv{()Txu%=$v zRZ&|fp2B`cs(iuQ&HlJaigb0jG*HGH3(y~{U88wm9bK>!BIOLk5Sh%OuZSF}sG_^{ z-ug#Vd&F0mkg8)^s@|TUqz%K1!9TkEZ_>X7mnL@L;wr8F^-TaIOn~Hasxe(opvO^P}@}p zeYzJmzNghOg-<7{YWBxXGkrE-(RBW(jBPP)M?)Xg+<@t zW9-}t$EA^--aQf(n!y`Z*%i!aVt03MB(21N|ujzCR99=>FGQ(rD#GHfrQV z#wD8a8sUcBtGDye00^elZnr68N2k&o6DGVmYnT|;*(9Gk!Q#h~MNJhDOEp~!K&mf| zYd3l7BoPkDK7TsD2UORZF0of`GfK>7nn==H5QwF;RPSbNvawX;xThYgv_Yvsxi0N2 zn%6O%^)?n76!taY8#m>Ppv3`s+8e7 z39gRwcymd87Rq$h%q6*uYoi_qXzkp9CwUNi>S9~)m9Ql?HQ^lqvu&fmf#4a!xb!hH z`fHe!cCFm2TuE5+o#lH#DYd0gGSIIw5bN=@Gj8`h=@2(RFp+c3R_TG zIot*%A)n6{So31bMXh$G7+k^@N**<~ch0>7TlwOqWdKIeF<<6`;JAc|Y9VY2YaUjC z%=C31h71ad5zfGz6q^3pHxo#*<;P}IoRy*&Af}6{W0N7<(x|g3Oc^st>y@%v3MB(2 z1N|uj;J6{lNP*j)H@{&BL@-ntL2%BAM%WQ3wJThZ&N)IVIr0K7u1&TAK+sGvQikS8 zKqF45vdsayK@ihVT;`h(wjOss&0#2nt=!@1c(BjH@g{m=`rV3oNH;A zD?Oeo$?$A$oAro}fXk~Yo5rt{a`zjo>4j*(>Wk)<+Vopq_ ziMhqNWTj1qslMjRoOn~BcrE1G$wnWjnngC{Z(s7w9LD0#BMF!l@R=%mng2`?6Ua2C zoUq

Q67+5=+TI$w110eVz$(%&vHr7YVxrX&}Rr`LQblnnH@4A}GIez!aC5;{o%!&c3rTQn5ogq8d& zh@cOamQrYEr=AL2dIz29+529HwuC<5;NT6GhX&jt+Dp+w^3}BgX@O z^w7OU$B<9X%O9$RSCva90Aa>!t+fwF+VrNM7xx$$cqg7;#A84HEhovSudJX;{!Xat zs||gT3hzP(Qg_BkmplXJYF7=VrevUGpdVzQT8{$(q?O(LI>dCGbD9_+C{QC@`@^u< z(seN-rn6Y9TIsA;BK(DBbxAU=!CJ}9T13{30cePw7ST-}x}WmI*4>&F>}-Lk9+fPo zO83($xk9gPMK4M694q~RK3egnBmo*8Vy&$?tV%4Q56S%9jP0(_oLi?AJhD=^SpvGc2B*szMM-m&xLZdx(2B&>+$|^%a$lg2D)Ux z_En4v>E_Q06)&<%r-RU$(FejVFJUzaB~eaLbKzVq%Dk*#C$Fsj6f>IihtA4e;MFux ziJz0*N|kZ5q8kNFGdp^H>LpbnBOjpI?MkQ4>fW_ut|7@}m6gMxt@43lc9{pxa$af9 zghCG_xe-m0hn_B@Un)ulN(TBv2DlzKI-DXLR2&fwzzAU?U;(O%7YS!X3A$4Q(UUain5!y@UB8q$c6XyRWct|z&6P80#-a?}2Eom=%E_y$i}a*3 z3U!B6F(+yYKP^kHnGT~hnmBDlrPa$-sxr4(17SO?iOH$6YfYHmY=%=8D@a~7(w6mt zw*K&fEise~lnivqfbXjqVt_NFMxZJc#D&C&Ktn>mcOj!m6T&6LoY96_K_|7=GsyJN z2XiKjCVvcSl}@^v#41+uJ2v`)X%$2LA2B67=3emmt6H2_POMy+MAHD2w zf!w0c993(YeyXIwRd$IOH6pn`wJE9$Nv89ZE~8&6N(M>>`a=fvyh>tgFok)d}D-YH}?4oMGscK=Pyu*+pb&HdSH5 z>(RYSUs=r0xwooUO}0*VKcy|#sp&Imh|3_mTiK*Qt!Xev}FG|~|< z6-0FDfCz%*mx7UMQkezvWwKKS0;!e4X2O(*P8yPR<5bwS?h>QCBa9kCj2dc{Co$I_ zt(7zKL3%>7@F%sM^WnLCv$Hy~#`5O+tuWbpnG!3j)#WLPvX0a%iBWU-k1&;l@Xf?h zq>`g{hk9*?_SG%@0!hLuJQD+gJkNmK%}BoKhhmZ(5j z>Kod;hV{WyXwYGX$SLb6{Z^10?gO!yjCzy#uo52XGIfC!9Z7@KhFF+WfFbOp=4D#v zx+)o>JVWs0BttA@4l9cKc}oHckaL6CvdVCb0+EEM4|(~CJfx&?_EldBn`CtvqaY{C zzDl3JT}uEZ1Knl->v7%rT>2SagB`>{TqZ_{2muQMlp3twVOmi&sS0`5NhP(!37oOX zeGre-mu1IUs!wV|Ch^Y6Xngko6Ca)LGGrZN)of}#mI|zOb}Q47H!i?a>~45|aQvmC(L4o{|QRukPL#G{wh`;lq$C_If8qhz{$1(eE?fs%o~o&n={z{T)k zM-48mMoh`*K>Rr-qL+vRnmF81ABd?nVcLAcZ~@i`xKiKB1KL*+M+`=O#NrM(5NqOWlpz$zyC5K2 z)!iW#JfbkUmdGOE?k?Q{>;||ABfg`Gy>w|N{4mW{>DnBuRXAbA#A?f8H?fjV?cuQ19itm6`P@_Y3(>W^5H~Qn|a^I*; zF1ZqdES23WkxrkTs+<{>ez~28iJBCb9H=p*c&W#FC9hH;H>Ao4t#Xh4yA{QvvrOkT z)F#Q~74(>Ch@~TS?EWQCYD)%62Ksmg(!Po_E8rrKITTo#uq8&!pR~$>NK6t3J7W;Fxe0c3ok`v*&4(IWVZuDmV#)P%ZL0B5c9TUY$&akwdL~jmB}pk~L}tB@zgCO;B?Bb` z-DjX7!?Bp+Yzkx~I#gH*h*XjkHc6xBDoEn2R`p77acxEx3M5r>LqsE$99W4*Niww( zQZ-^ZD3gB58^uzj>L|_TNx(5F^d|GrJkKPlhc#KfMQtHxdQg@?^wp)y`zqbv1EscPps#1Z_Q%BtV9pEV5z5YssIP^HG0tkL z)*4V+-?~*~fLm&bd$Z`5WERWv$IiG+XBkorDy#Y^rzR@#zPY68^Ntzjk}aY(b2Zn1 zTqWf)r?YfQn+ZftQr}v!yl6z3JzX zF7raJA+J|2ooi$=_ax6&r+Mn7rbNt4vL3rNScm6yK9{dAX98%-L#xWlfLzUDS0Fmq z^-XC{t+FdIm2*;eRaGNj>!h0c`ir&rUoucK&}{~MJzfK^0A&J7Dv&7)3<}~@VBP9b zQ_BwYGVX+Au0&Xw)Jaw9D^*m|Rn_EG3)H<{VU0!CCgs(+My8uL0TnB-OFrQFS}e&r7>F3q=ODb2$^ZrcNH*&kz19!eFc=tl7W(ezMg@G ziW+gxCs^?2udpH(2pJ~R^U+J)U441yMsFs6}4jBP0z&dD)Qx0A+j(U{%6d z4J8FN$B-keLRF@UYR$144HfS){GpdCOyL-U>pH^usF7G$mrgoXdE$nkB&CH}at~QH znTqvQLZYu~GNVb}Ojq^PsoX}Td~+)?5vq%vPY#&QWZJuT`wA$PB?Bb`eLVxQuOj3* zeQ?{?f}`8jpO})LgD(VDtp+tEVtTJ6V-_8SY62xI3{^auvwDMzht2M3}9b{w|zahi4vf}4kAN%wQ~kRV~4s2FI=Fm3tKA< zxp3E}P-u2jImB{r-8y6_CU296$(&CK$t4!l*UoZ=VM0%`n7Stc7O*_`{Sfs{8fxWz zMv)aXp^$m*Qxs~fK723@iZ`OJ)fujala<0uUfPmQ$;4&%FM(29GEg$m$1~8C*M!oald4srwm|U#VIgF1PPAVrBfpVpD;)Y!np&{%Dx$eDeTV3 zs|8b%Dz_U7t#6p93g(#NqFTGG#4H?Krb-s%gW`2P;i_G_jO7-RrXdcNdwLO+`jUZ? zfj*r9?vINIcIOKmVuui*O7VqcF&S2p6cwqRIA9q&b_!~Np;bAsMDV0PR}08eznh>o zGZc;`TA>hS(o>QFJNkxR0xRi{CTry^QY&U;7x+vk2?&dnkD&ZAk&!M1wX;CX&y+D* z$@~llB72r78OqL)J=a4+)=_$rHtU#j!c@~Vq6`0{Rec$FpMIql=Sv1k271asT8|T3 zanExdCnO1ZK^$NLq!Vk%IAfWyhKt;)o>ZkkwIsAl9uiB0vc9f_st6zg%j&J*y<#zL z&alaR%Vp$PG|310mMlse&nD*n(0U>`O|!`}5KCs*HH&u8CDd0lgq)N@OJj;u!kQjf zkERfI=RE@o2d(U)vnll1$XtrP5h;Z$qmqokLm0i3x}IJHrM_gKWS~!HAoj;eX95ev zNfZ`wDr`AG$sHG~XPFpO5eM`!N%ANok#WsQTEk6(NdQ8a5tS3@~0fqb`Zs<{mw9wRFkK77p~6{qa71rxxc+271nbz6TVydIBg50beo5&Ve&w z1(&Q0q!LD`iJ2hSWa!~ML7G@!f|AftnUrzjn3ZHp0J0jRl7Ty#Xa#ICZn^_G_=0HG z%3d_&5jpPN0s6zfFhP0u)8l2-?iH;YE=?`7VX;sx-8NgQcbR&aLXUgv1=)(3!@8%k zHJLn*$_hKONr6`~RbNFNj)jJvUk0V6WT0fA4`+b;Dj6({m5xY*h(U@7Bc4Dpfh>{5 z7RBUPQ8E7yNh#JNP0|fCw95|cO z+S6bm0mTEn_)OP5TYLQqaZ z-U3m^tj3f`ZP-;}t;yY>Ee@ZQv%6~(_u+HTFN4xjGEg$mhcnP1BylN6dXiJ3k2Q&I zJmV5{Fb*200-%N))~nT)goF$E;xsXxqNlhcW`%}Oo@^POl9KSpfaSIvd346vO;+$>Q=xrL0NXqB~>&ox~KEBs43cNkH&Y_b6Amv>L5*-8!2HWpoLD1US2-9yO#*WKUCH8%b>KB43rG?;SAXRIACFCu_FlRmBFAKRh4j#8%kO) zAvoy~j6%PGN#=BBYXvNdxl5TpsIfy#OlN7PnA9fg@HPNf^~&+*Zb+4k)^?EwKPTtI zw5g&$UP!!_Gj?{kCpRb=Sf?$UB&aaOi%WA%R!~sL)LH3ay~IpX7LzklnCf$dWj)@9 z@6+OX$v|%z;B$upNASYw5b&D3YN0VmGT=qPMP!k%m&Kq2k6Vugwj?rP%_YGGhqAUI{b#up7+JkR#RAk#pIHe{RnMPOG)`} zhA5y6Wb(|3>qHsdO@sGB0Zp`<@{^iWFDpr{6{1Vt#9pDfCXmVj*DP0)OHr_lv0Oz> zL+&kmCFlF>tF$;?GEg$mTLyyT6&FOD1ilJhHB<_Yi%MXP;YL8Qg2TnT7?epX$BIEp zT`Kz2YM{38fwpq|SvhDW6DGfELC3N=<1aX&<*QT2eBr1OpE!8%`zIVQuVvp^qxL>- z_#TH3-u>W%cAa#(?ZZEDFuITZ>QtzjxNMGGm6a&_ zoFt>x6xnmJxb*1qIf;HUI+EJ@)=VvE;^8KeT^5)SQ?AU!WtIxMWc8W|eVPdedV3+1 zwvvI8fj*l7-&e6a-|66d5o^c=)`(472#dK%-Z&z%1eGLAX61}a)b7Ss0$eSmY<95!gDvHQGx)Sf!tGkVW=H}1hhHG8lg zXI8qH%6ph_bcB-K4;uu9P&@47lVPImqFFGPK$!@u6osEPX-t)zb;#>HGxp{q%XXBL zW)2Fmo_a<8bD6+;_C_S+D+j2&&%R2F<0S(n1HENH>v3Na0yjZe;8JJ~Kv$H>>nWBX zUNad;rwJ3^U{=;KKw~U6%@p(L!O@nXN*x1vD;G?-c=njHj~V>__I;+0-2IS&?`_%V zpNH=H&Y`=$YxwT(8nHX5{oc`g?KEbeUB(R9t$Dvan)lzU<-mQ$9yDO=z?Kf`l zzO94z!(oL%s6-P4AO_)Gng;ANW^Z(d5~zYgsD*NvfT01?M-KkLgyt_D*M7-~lUL$X z%G|N6oDvdY2CpT8ofd?q7F%BFYC_wq~E%S24;`ow#w+jq`9Gmy}b}hTggDl zK%dP3IPM@Il~k_KU=#*toiYZ9B<~nvQw=pl`~)TgR_a)zIha*}8^jNDlB~?3sqGuH zMxJ@-{wIyWe#m>q?DfteyS!uI&i_1gw|9@+W2e!3gTi~Y9t1QW*fwnN_>sdVj2h8C zrm>@`vAt>JgfS!9M&TIN+Bj_NNFFS-HjZc;J$&3K2tW+N=z@;u4kb{vSL=aL3+3+` zxd&(tbHMt0n)cpp@`3xG+%)pjhqawQbMlJnxkDufAt;$lOA6UyscJkeirr<{n!!C~ z(i4~uM3pof2xZ&O*?eieqKTv2XJ4ho@sfd(f!;C@>v2Oy4RHbis;oQXG70BPc)>-j zSr=ng-jvEJ;GDEkQUDUgRxND5SN;E+LVh~1`VJ#!k9ZIAPYM~q^2DA=@x%YzUSfs-ZFn#bYJ5Si}fVs_$pE(Rp zMieQQh|6P7!LrbOLQ>yUP_KM0OnPz|ly#X>4Y6FnE_-_+l(v$Al7T*(ft=&DfN+=! z5D62B4v7&V05H{csXFZ$@`&-lW*XMg?ji=@h{skZM9E=EXkyDlLwe43rG?mI3Xn1UR}`mFM8- zDrVFONV%jgMW2Hcpjp5rYtSXB5~qSV#2FqtX*&Cu{br5EhmBhHVp{_{*Vw`yIDYu3 z$t_KjTSrZ38qz#`WZUR*hqi;cr+j$v7tjB{%fHom!yPx>d*9FRfBd1pJonTyuRQnn zS6_Hx{Yx)xc=_dxue`kR)mJyIe|6J_>{yRVG(iAj5Jnetyzj9G@A>`Dq3VinbwVwa z!$j+$6JQQTVcHy+)G~O&$UR#Q*rj;@+|vqur?CUzcGKC%PP}YxH90Y;z-tECnrTlt zQESRZD&%=im30Nre=Ni8GRrfB%X+-GJE63d4D{U$r1iMp_5o!vB1ePDh8xJ}Og3eb zt07~&NcF)H>&voQr78*Q(wac<#jQ;DXB@fUBa6TEjjv!e{qqNY{m5S*``gQZ2a5q^V0z=`O`A4v+K7LfHg4d*_1V8y z`7f(jFBu414|LqT2}+;}3ZWLtfA)u8!O+=Y`bQSS^yrRexPhg*t=T)q958Oko~;MM zRcyJ~hoa4U?>n<`)aQ=qSSFgMd8-PX39JHF-XcXxDSBBURcdNvjnXKwl*U{>8LCEOrEROe|p~cops~1kX zVlH->@fNS@XL80D&Rn|oiXZ;;_D7%j%imvp z{-q5D?oF?4e(kl_Kw%I$2lQJhL)E5Do1hlTVFHGpTmQmi&prXuaNyHl`rI)mO~u-r zyDsMBkO__ZjT?lAWJvSf5D3D-XQ30XaGHC_Hrpv_>C7x;^(o=Zw&cB6s!3RnL6NqU zRTc8f@;h0*-wUO+WT3BRKzEE|W=&$s z!h=nx%S>KAAK$y#`&bfuh<$(w6yl-4VePirJ+x&6*5DJ5IrxKTeq_b9t8e@HosT{9 z1eVFzA=$Wjk|8|5IpsjTAWb>Loi3CuZIIqJpc4vzquDK!Ldol91JJn z>ZtbS;q9aM8#iRvrhVT%Vt4GGW6NdlV}>^UpQ9&TiN{*1s0m-s71E1@c*de&`H6DO zd1(@@^rSSVgrkOsl>1C9(|z?tTKp~iKA1IBTOh^S%bsBzQ=e<>hL1U0-Vfg_*~ z`U^Tv979!rn|*oNxuEr&>HE)Veh=2*cm!qS?z=Yc3xYRJY{t@iFm|Flnx`+Ab@n&D z^4~wb#=9Tt&;7>?ga6!g*02(KFr1qa0V_t_?JJyJvcdi!R*l!Tg>eV zO$gzD@k0>~f&$I)4Wk3*G`F5J`-G*1KZYV z&qNF4uAF__YLWwR35#@mSc(rw;p)Y!md-nUVdI1`2myhNnbLaT_@TSB?2B&|Axs22 zTft@JbZG^GTdh^SctItoBsEM!95st^XlVKJaeEy#RBP~^n)lgj?17^vj~zQ@ zJRag6+B)*2_s_rlniUT``6q0DWB&vz-^9(gjnr?-5Zp5-H?4o})fYhX<=1>uZ9aIHJ&ziKZ-mCg=1|sU%4$k%s_{aWe9tX2uR*cQXGh*w z!o9r^N?XZ5$v~gYfUU>vCI=39I2|$^m_XpeCE1Fycr6XqJ=IfZ(rl8lvTDJ^%jaPk zj*XOe4B7?X$=t1FzoG4oW2dwY95v*C#(~pMnT6-LfBVRNMsVBrwvF#Mh1CB+VRLoE zdbkbefA{ACn@p%W5@?PkP2nY&muCjTGcS~ zpuEN<(pU{ymD}j9n$R4JceeJ~S7~v)WT0fAw+u8G!O2-MB3nu?O6)KJp*(~Q7J1n* zofhC);4dMbE+&lnZe8*Z9yUF_wI{@FVJZI_ozx?BGpMCXt>^mC} zw>7~rA@G3SbXd){{U@3u1kn7~5C8uBD=wOJ>>>LM*$-ikncRxKqn(@f!2>x+!am0h zA9v35ly=K74<*fW&g`klY9h~h!OM~i0UNv2H!6F3A(Xa~fs%nfn*nm1H@wzyiQUyD zT7wbJnw$|C&Ap2Wa}HpWD)F?&$WI-*^SA;3bkI)NEXK+dUv_VqJPyxz;IlzI!*}Oz z@5L4~@TX1iZ3Xd-c$6GZgm2vZ+9n+K2;pm+H&=&hHsPrk9Qgc{Zvoyi*X2BSS~ei4 zAOGf_Po4c)go$7g^6-w)d$t~cCHXrJ+6f71Jo8XJ$|6h~lv7HT_SKvY$>J%i7pb)_ z)k3)gU6XDo@g@#ppM8}U$4drE271eYKIb$#BtU=>c1dvPJY|)k#Ez(UI+&!BB{fNp z1gK}x#HDivE*|&K!*+Y;pk1&{j9)|wW&>asLZrHSOJ)TP0$_LU#a|DIZ9{c+f*WC1-S&L7`SBDTdz7D!y+YqDz z2|-%$(=qK!PtMbulFzJGqhm5WLSRv(-QPT+-ZBq}S0m-q0P1^tA(Xa~fs%nfn*sZr z6U%42`B_MS5Q6=(T3Le^I-D0K0F>8vk0tr4h2t-nHDKyU01Ho2@7l8O;P#Q&EFL*- z^n@cP;p>sV{qy~JbPwO3+&Xq+hXm~2v=QvyZ2aB)Ivy*3^2NXY{;z-f$>YDi<>9;6 z+;`(QezErKyO)0Ejtf70>wlhh%a<42^nd34*T3OF0hg#m69g{!#oD#^-FWMt??Fd& zfAWRD0^-sM<@l!2#`POuZtMI+fX}ag5&Qo50&2%mQ}8=n_(%X>>$mUp<1zC=yX-S< zB!11&r$8dOme*B2W29`nQrQZ@ZdP(YrAPHBuPz+#v$tt+ykwx)48-T01OahOC_A{V zY%4n+00hcHMq+nb_nC|<0YtQfT-5rt>3l9_SA4LE9}65gv8j1dD}JKn__;Gye{bE> zFFo^0EW_U{AF)g}eB)c3I5us5>cwa7dhFNhet+Y+KVA8W+s>PJ6^W9H|vD5N=zy= zz#NQj-3lEGa|HX>m!G}*#_MJ*m_4Lr1X3|_QWMgm$LIGvVlaLej6v6lo6D$nD1_++HXM#&-x4_|;0IAu_ z@on<9{h}`9e)AWP*=@=}_sQKV=_)U@n8VBJEkaz$7XLv-gMk4Znzs6k&s9*NF!-pM4yX&xtSw!jc(fjfD#s$~iP@ z<*3ptbWv4 zN8rc*@JAlr+q5?x(inU2csxvvN2H~dUh{_awt0e$>&=_7wSDu$ zKl#F)mrlL@jEU<`Yh63PdG*}3wF^3~T0ChTsBK5@;O@Ou8lVaap|;uPhWQh(e&5vV zKl$%>UV78RcRlvplbc?{Cc1g^rXQ`@fFD_W1xfgiZ+>mqxJJ+%$-xhSAyGj2PA&V4 z`t0FkvGzvz&W3ZOzvDsK#*6vaS!oyU?F|#VXuLG_ng9lg=@|K`L*CuECw}=44;LQPHVk{gpw;*zCgKY+k3aX6 zJy!UJ9}EYvuPoNyB!?Qh>Os%N}Xood(?)A!lthhBCXsYR`OO0k(kN4HP zwD?^z(0c~R@e0A@bs~a8fv~Ptc?N|;RxiRqWH=+ZLI*V#4gdJT_|_u6hQ4#l0DP1; zcCtbIxVh7B`0>qud*$!;ldy02!Eo^2w!dG0?S&05|LD=5opr~BQ?7a6pyksVSI!={ zX8y#h7EgJ@>=v~r8=6l8i*cy@Mra;=-v@K;S1oQ`b4ugN6XC{`Yu9T)uQ&p&-( z<4dIZYj1p?$mXX_8NK&453zLRb*Z4h5seAzImWfr1g-nZkmJf#z1mN*oNr zksyvgmUi+7PPyxMKgEVPo(+HF5XXZk*ob~{!^^ima?dAz`1SE?77n^%+US)h0^gI? zooW=m>a!bI+yx|qR2;TTZ=!WtQ8;}+}JC770QTSzoArnR-bv6+W+GWHi4sir0f-}{T zf970#H{6T(7zG;+j2*?Qp}_$4(bs5kyJVnbp!W=Df4l|(P6W}}*WCebV}uSTxWj@F z!Cy|m*IU3KkO(|#J$S<4reUXinpF~N$xlL+#VkI!wUDFCw}*t+s2Lron7jMl0;;&siV)+R(um9Bj&pdMfvyYtc-7`lnKVcGP1vYJk zPWUtBs`tUM;mc2GU%T+E+b+2Cv0vd01e||^3v(m{X+d)EMb?EMJ8e+YFn)u-aTlT- z8!Y&kK@((P+Ubn6YnDAk^RCaVKAUQ&DodhaT8!ct=7ar;bqLbWj(HeFXxhhewP9JUcS8z zxAh${;W)5M)&wsE?hGY-^X~8B$9--3Zj%op#JMLvW&GggVT(TYzF$1_8xZOZeSPLt zJcYOs>3wPa%Rl(zkLTa;uT3lGGzvF7SCB zetjFe1cLY*d@K*&<$*U3KKti?|M8N^Yfl}s;-vAbPMNr7k>PdCqOCp*;;R>8r9Ah0 zXZ`ZY`|OXj#gC{s%AdG@-uFI-Rrv%>7;nwi#5IfCR?Q!?;>5{oPdod^OCNgnF$9Is zY~9`K;@n8SVZEXJkH1~;(bMqzy+|XHiH8x9*gcOJGX8?ug0&4q%)1yJjub~n=~%V(YNolo8H z$2;(SC0NPr_Eg4qK9RJaKlp2W?1?8>@P$vL^gT^`zjN@e1Ew`1)wZ%G$74{q^yXlt z5s?7SIzWFPva%lUcXw|IsANDH(0be$ZTEiyw}2isLWARgl`2nJv0&iBaqk?oGrn1l zzlq#3r40~2_T*`JIt8EI^+c<>dia5#So!+BtH!RFGvbPwM)1{(aoz^Uszt*tpE3LT zPyP1k2e6$|2XVQ9N;LiUuMeJh{ilatK7&TLfpvt?v3eoGX-Tg%xBhvASr>S> zm+%LvyX$xN;z>;;6JHTRV)19;@c7EWMQxK;*q{3`Kx3phSQ<6wd(`-N#c2Al7LJ#j zzGR@EW}xDDg=sG3aOtGT=paC(Grq2ZJ#qX1*6z*w<7@W^jT+K+c*hU!yv6epKG z;lbek`l$z|efwjBFFPI`w}}sv@YTvSry{7K%ch<2!>>K|!c(x)?Oc))f`azS@i5|z zKlvekN(_(QBeA_~j=e&zLR@r&D_m2LR;`VV^u z$o(Ild3f;+Ul_D(YU|3m0BFamg>U^Z3a?st(9&a%Sogu7J!wy;U@N>=U;HE1Up#sL z(bt?laM^M20ZQJwC(wYP#;u%-02kcwulN7$PjF__#w|F5)FFXLm&c8$Uzs}^gdG#m!^RX&JT2Fk6b+El^ij{agV@s|wr(+qHbJl*ZQ`N4Fj z0O2kux?=u-sU!aBfcNgyv^Sotz)mh!j$gj;tM+rRTl&T(IE7yg#BRpjkN@h# z?|gE^=cH;;(q!XE@71n?C2S=^?2H8#SQPby>5P<0f?v+-wh4;8=F`j z;xGGP_tt(&yLmW%!0(}_AHi>@Y>`m-%R6A%e?NTBvDbWL*s^KuD^Ho&Y4CmP$HdMB z?JMUGS$h2RYtQ)g(|^F&VkN$X_XQc_A&f4+e)@qEt~&!t%rVR>+s3hl&^CP8^kc3$ z{pN@7Lik9+788YJKJ?VXANur1kzOQu-?qU>_&W~TdFbgAgVbWQ2FON-$TqAWf}_j3 zs2%;qUg9qq=%*R5^|;;hLUvY04e^~fiTI20*Y4jlYA^hj;T~fTXqwcDzltz*-pqUM z{{?==FQa1jMJ#(kv77&N*AZ(!Fw|H%AMo8Ktb~#YE9MPfHf{EIKKZMjKiKTvt*G6| zk3E0$^aCe;=gbkyrnj${x2=5B9D|S#Tl>D7{&Xjj@J8M!Af@--{|lrSNyc9hLc;$U zj|Pp}6GIS_E7@I*V9?xG;sm<$y{yOk=}lb1+Tk+*j`Pm9&DQLm*PUN`7C1UCox9gj z!`?AyXYAMx>loeCF&2N|=IZ~t)_y)^OHUaJ;y--&Cx@?n->{|AIl__R=VGhiH#JD)(WWp|K5P4-qDZ|d>1IKH2<-?+goliM06G~sWRJ^kV{Tl}LC;^SS9 z|MHltKQv_NaqTPT0g+gbZ>wYM^4YVlJ>%z3{0>8fWpyI+Rur_s@{1?#n|0k8P`j-> zgdT=GZ^)&`9lP#yd^}+D&6Zrn^E6Mr_&59wyv7M*@OVDbj^twqFc8@C<`#-A$+;D- zOCQJ7ltABKU&JM@l7SsO16q&Q5!|Vr@!bX5&Yg)LQL#UGKX!k-%^%t_@`Obv{qE5} z;4hYK5tm5xgMWKu_P5U%w)D6OE9Zja+wg$G=H;``yZcJ~u}*9~Z_$}83cLm-8`pp3 zuFIO2&)Oc|A_*s6d&UFLJdCt#(HW%ow~yREbK!|dIMR;fzkB2!JGTzNvn&2~YE2qJ zD+IyQ46VJF^1R9pezTYG`)vleKfWgIvDV;#OLf)Yy!hbG1qaS)!AcN+?qJA-#>VkY zqdQt`M+M&}?|D(FPxFvJJSV>J`p*x)bn1i^b33*v#4#U;HzMclHeesN&zcTRRquQ=KxnsqAe15oX z4`8wRirHWP$(66HuQ-k;wZU{9Til7RTNLBh3W3fuZ~0o&cJ2?2q5J-K*t53P0i&mk9XM*p@k24D8?;5XWn8`)srIP?gs#8ui&D z-qW}zcE%5E8;YOe+rM$(HU)}5pJ*d|QhTr?cZB3WW9CP`MjurDJTsfzGI~)_P z6vtO+J&rHhJpIBmD}R0cxp!ZA!M&YdzxT?!9{nYj=e_Lz)J5_7rq`c&>A6MMpVhc@ z>h^FLI*|&XeDvirF$3N3huiT&?EOuHzT}Ct>yNSSl_y;`f1l$=;O{2y+O#i!M`iGg1+#zm=lk^+lj{hW zUm|UPeCClE-}>0#CC7AJIdA;(Ios)ITYmDGWmu1ku>#%o{E7Qsc-S7_ zm~_G2ov&@ebAE61ITrj)pQm4X=EQHEG2+sx+sS9CMOp@5a?G@KAHj#fNLQY{ZpxcB z-~&%2A3to1f!MWqUknO{X7c6pxFokXPxceDh@|j9fZ(*-zKKS&l#c{L?e8{s{VR zSI?mw$r-lf*nj`gMX#)X<+Y7H{uLqHCEv6Wzd^Qa-Ic>y8!-?V4h#xDv>5ZRM`hz^ z`(XJpoQStcddGgLm*`6d`fUc%=bXCv6VtUexBb@1SDdonj8XXZCKlt36PxfiB2Iq) ze5?xJ$YT8afA~@Rm2<}|n=t_^@heW+en;CCCyrS<Y4y`}n+TKRI&A@qq01Mq$q!KYpt@{;MbMKYI21 zM{R$OBRTMYLvP;fqt6--yg?quRFh5zHvw8kd+JfpWTFCzTTy2z=)19Lt947 zKYh^yPyDHu-^0Qq7aKQh+Wgw)^X|N&amn#xmz^+SJFjQO!5-G*ThH;k{`|`$I~R|- zblUcwgrFZOLZXl^Bn_$Cw4ukZG6ChUZd`x=;}6aK(1O8D!-uzz*=5WCyjwb8b`u7R zJ1RCSR|Cp<+J<#a*;nbew{Zz<2hV`*kLxDK+3tTkPPOGZmvZCInTbEyjuqd&;|60T zj_;vdy7qFc2YY!!PT#-3^U+@%+Ib4rm~EGzH2(4v+qUyD?(*5AFP(ngoy+;Witmrl zy5?U-EIAH*#G3j|?T;e_yr1~52X3FZeD0W~)3>+t(2o?2zx*Vm>#&szfAZKb@S=nd z`AR%5Bl&ngbjj*v7!C{yh6V#Ckky=$#qshvXMeqkOI$mA z2FP*0?G4}g@*F>HxW}P`@MV)d#~!HN*#EfbYtOv=_g;3!@dPw}`{|ZH-r2Hr=BP`K z8-LmCwzuUNhYvHCOwHHh5B}}pSyz8-#3jd$HBXLzQ|oaoe(|u)U!H&JlQ({4&_zd# zT{iRW2?SOeFTop#nYaFtKWy8>uOVue91rh*`NIDk**1D)dlLo-!-T<_czKT$e`+v;mkHW8AzjxGL2eu6xF>dt4qYwV! zy|=$?j~aIWwL{e7nGpP$;E(^{?12{?+O}-g+jfjwcEadOjz90m)xL^xeBDP!TzvG{ zOJ|I___$?1z3NRpuL6`~$RB_HsgK<7#laUG-g4;-L;2eh5mNW@8_q@=;czdherdxi zx88f(q+<>l-r9J;xS{$*_|gA*6v6FVWWF#L$_vN)>rGtZ+Tk+*j@w&rEZJ;-9P4o_ zaQW7`_@H@X|LMS;c5T7qhRwrUN8u0C{PD?0@D1{OuePp?#rTi@boZDg(?)#r*zuR0 zIBwajx94cZCio@CpPO+U&yR!S!!JG>2yWaej^q22czHbb{1YF$;q1W|9?`U98c@Ey z!$H!JI@r4HPxb@lb?MD7F%TGz4}SV1c$R!*M-#pigunWB(EPE7bS|<1!$n zhkvz~1e6T)&kWdloVPvSee*3jfqrWHg|l~=us_!0_*E=@p4R!Dwa@qZ(}tTjZGL&f zE1$mUtNWZcscqTpaZ68l+m2Rjo?Lv~xj()l`<(MnCtUTB;om%}Wy$oB-#m8Ny=&j> zdK}Q)xZZxG1*`H;-1vV7UvMP0ZpLF~+Rkwybx7cuH+>b!L`rjZ=VeSY_@&7!uU(C& z4>3R(CJffD?fbW1cp~3X#deB~ukDy)l>6sPxI|Slu)}A-o*%~@j%Bz5Jw75E{n;b` zdB|?~O%?n~>d3Y+$DB0vC%^q^@8A7FGVgx$R}+@a9(uu%6PEsubNpfB_(gAt&!fMB>73p58!{9{v^H^UXPNv#!pjier?lvw_iTs+=;E1&KP&;%(wG^#Zlip_S`!z=kJg6 zxx>Hy@q{&}55MrJmP@9Myy%#%TaQO@wpaelOV57(mU9~~I;Q!OY1=zAgo8AmcgN*O zDH5C9s4HMNFen%r3=oD1gM}eG@Z=W!ouF)AMP*}p|9lCTs7eNQ_zXD5xhlt!oC~+r zr%qflXSYcQy>sxc`-~feKR|K?-d>1< zs@-w?PbaMX@bC+dXj!riI1ZR%xB8mj-hkNx8#voLK_;=B0x<6#3Q3NJuJZo6X{&+vVgG*Q?1FyfHahxBB z;m$v7&8b5_I1yj<-g(SEBPTWCJ^R9sp7z+YPxSP6fAA0@{|dsUvu^s@kn<03xp*2# z*SciJ+j)##G95b}T{%ANf+LzQo;u>fqnBPA z%mAM|#4vmHGmH6@@HdT&XzF_z_ z4!2#7CDY&LW9*V?SiPQm$7QeJ8IO&=KR$EK>BBBKy!n#jM_hQ+R&X3&r^MqT819K~-V}R>aVa?dc0`9X4!_{=qpn=^=-;2P?{;?g%swhHC>R=iA!tO~XbhHpA!y(( z7`{VS;^{-ZyIOph2Dj{w_scuD1XVJ?^|(Pi-RijcJHC11o`(*?uc6|HJI1uPj61ab zx?8`8Z=LkCId0$KeC@UCes|N@i>Hmg@R)Iz%xJx2`rCYry<}SBg-4%zdo9OTe{k40 zupU2t#06W!aqWrU`oNFdmz;3Wc?Tn|w=*=@8g=2(Na^*zzXj>t(A{@C!Ep=ZZ9_MAG9w6D90#i;(H z4TSnE3#p5ondIW9G^;R|iX-6j2oN5J4bDDcvVqDq6VqUfW1(7gf&p{B2aOwc?&|rf znrfF_do0R#zq+R6#^nKTO;ip@`R%)vMyz=+Jmxe-F zP#H!wpg!%yH0D=`^$!wS}Fm#XY=|i0Qhru6;rQ!(qJObcxagdW5<|)|4t&b5Ahe6gz%=X6U*{0oFF&)3E z%JpoNs)|aOu3L}4YcA?$T-61B6|W>qaX0PC4iE77C}nCSH^W{-7F6(BJs>7AVV@XocdSzVJTA zls5*k7FuYhIgk7N+s*-yDguPZNxz%+zHyLH)ITsI8blCkiw2K_7xo<9cej!Zay~#H zr-%0%p|1oB z6i1rjOhtUrbIhYcd7SjRq*{r&TpR%(M*#kD@`mFR?>tgWF4+JGi=fJ4)Vf$>R-ewt zPyJ9)?b;FqtzZbQqJeF3)3B-by?UNdauX ztz&+^c-q7M%TUm-fB*L4*ufgR9*VeE*D3@#}Od*xWgES z;ij9M4hlfbgF4Qjvg#(xo_wM7vWGRt0pFqDkHxRwEl+<$ z9%pkqVU@4@W_#4qL^Kc9Roz-gSOBYCk+tXKK|o!Pz8znoAgF21vTSVEsf{-xW)z(& z<>&;~LZ|OwO*Oa2CHx|D(R>;KHqJ>rD(sz)8ejtj_?yGAA*alsT=_;ZrhU8PaZHuL z>K~hr{udl-f<6A&@%V5>UTU-OI2e=p$}!rw?#Nc%iVV&2jMkACzyjW_$95xr27o)b z+xY+rf|~L-tdbj*P#n~U##lDM?&xVz2MgzMpMKT3@DfIV#E-MyH+$8?`B|qSEh`t+SE2Secs$v-vV&@Q z+9TTIj5LW=UR@2++pnc^vA4 z62tqMsAh?N*-)p1>oFINBjC#ji1xVH^={u)i(r*tOB8rq8*AMD;jY^icijaYf>v(b zx%KL&OTnS0LfGSvC65<08;^s{;V4ISIe7L+*6S~5SHL81aghNm?D5%q@=EXAf=TXd zhC7a-AgF2U`#aTkJrsvM-oWD_-F43PIN02mD>|2*BOqY}p2*ligAR8PlMS|cP^OYl zfK>((x246sv+qN9!Q*tf+L~*(Z%lZ9E_mFsva=VH8P130uI%yLWMh5@)w1TX$H{1C zP0jw(hq`PS1d;L3RuP$WH7344@A~Z<)m1fs{lP!*IMf7XSyEy!8wlz{V;q#Fbhyhh zb`aN@gzGUEjU(X82ncb9)Nms%@_tGV(sR?W=-ebjewJ!k>e?e)9wlA{!eZJa#yMe$r>*HLTbh6; zwwk=^;0gpUhbKz#mi`&Pkm!+8tI(jjg3OZ<(r7r(s zjkABe=f)w?OOp&MGF5rWgvV=|HlNc$m!M9vn?y~`muJ68EbbM)IL2JisWpXFFH3!K z`^y(^mY^we$Kz1bXGiuYbxwog!festacuDBXr7sJC0viWXdD4wMu6JmJBDY9{_%G4 z5#aG~y8@Gd(t2d=KlY_(9zTEMLjO0%fJ0l8*B*RUOY%4+@%uGjojsOR+&gTM-O{=w z4q*Xr|1G2czHz}bkMBEnFtuAI6c=WXh7$b}BdIY?x>=ORxqsZ3-*hg!lo5DBU~up_ zNyFO3hCihb45K`r(X-=MKODiFZ1)VMVomyE^z}siza6pZcxU|QKf~qRM z{Qhg~q^bgs+Z3?Jp-Sda$rOT0xqn>BZ!(w7ml1eEc*)sl=l0>0$AdrwFzXu6YK$l^J^T+zAg903U<0ROn-RVN3;ucB{)U**D$lIORKQRgO`R%CfG z8Q}!aP0ri@TJ3z!OJ{m)7%X2LuV0p~TnZlF3}e>aJQ{~9-1z{OI28Z+sV_m|VGC{M z{0>M)Z-}YNO##S&x&gn+Q76BOp7>Q*XN!DN*O`RtF&B*^;L8X&)>jeOyzV$>MuX#= z7jIq~ux*@bX_9GqrWccOc?Qamw{LZ=Uj;nAevmvTPM?>iT#`WS@uu)NBKZ&;viH}o zl2-MISY)%T$TEY$y(FV*Y4V`0!QfVe{hu{9#@@ba*?UU^)2d~dVyIF$bFxgR^O?H|6->MiJ3ElG4`kH_kBQh0?d&I7Wh#tQR*3}hYp@wDY-sf=__V~l_IN1pZp7E0h;|sc~7AJU7ER4bA1D6P?IYMH_H}$( z9~5Yb&?j2hI$5{M?|4{W1p|XC_N{@zs9%=mMZR-skN4a#IC^oMAumlu{Nqg+=foCv zs1%10FkaXbckrTIcr^U`XeJ8|tOL{@cpU3wt$%A1TPG`!tdkXtb+R&PBTaamQn^pp zbS^wcK)MJZ?r;R&b2=0@0&hDOJH`4cjbFDGD>uFQ&0EUFar)d8V_v$q63AM)I3ag$ zv16R`*Gs>3T>D(e0;4=9Hay!>eCUlPjdMcdKb$*}TGShtdrK(xTmY+B9Jl3vyK1W3 z#@n!UYYW~e!cxPq#{(?kP@-(0ooW_pMVAZh^a$xzV=fs-z^4%)@#Dl^qrGo%x^i?P zOgZc$f$a#CjoU}!vtRaWmL%wwCL8n8yp;@j#0f6&cvUramp@r@I-|I^|15R*d`r-5 zZQ;Rnhy-tZ+#xE(ZzaEH7Wb1cw0lb^_FMp~U6T0O&tITO&S8h2?v zL^MmCwy&ftnuiv?`=j0c=j=#72`w##7-TNmloP>7>j&EoB^KcBE z|9$O3r`Mj3T43{*Q0%z?HmR`t|9(G?BDpIt_I0~(^Aa}U!&ZE3UpFXGKP8j;%1Aqn z1E^Ta6`9M%5%6IIs9%M2x`p_0%lxhw=fp<6j(wI-d){Zc=KjwYPW9R_Sd|lRSeojs zq+gn%SQMALw}|;wz;|q+@LJ7QyCp%F)muWb=c;nz`fM2b%f;Us zvCr}l$3Dy8am#|PaHmkuIMFXsEgJlYBft@m5CVk9sq<8@+G6v1x3Ps{s8bfJ*2WmJ z`gA^i>W7MI*V~DK0qdf@n;3H1ykowPD&bS?pKl2Ys-b<2-HD<`o}4Wi=$z~qld;lsq#bUp+3Q^jWI46Sw(%L7sPmr^1$QD?6^E9|M&wXZQ6&1w zIy-N|H2WF z5CY6U&R%tDnC}>&o0RdS+P|$SRGnbd*bPI*k2rVrd{s@gOCAS1f?}?gUVCxlsK|L1 zKHh_h}QXS>Rco7}p0Yx3K3BIcTn;BjxrWn7#Z zG1oF+)97oruHUbAEfkaj)j&Z5UmB{m={1Q)DDFv>ziv`Gb*E5|8F8Hv6-%hza#1(} z9D!N{s69^nr>yHuUVGcZ?rkg~=$p%8)LOd%qi5frIf0QhS9C|tk;sth`}03s0@GEy zDAACUqR&ZgorE^Sv?NutC?RmBDrlCvVBc#P&aAFqn$Y4%1kllhg_c4}zr}KF1h1LzT6vPvL>Je_y}gZsxjM5_JCqZiQ8O z*M7MvYgMm+8A?0|UZd8OPQJhfLjUZSF95GQrwRr+p_+I0egHKY;w_=}XebUN)rqV7 zL$g985^;_bElaEFa%ngM9036VvfiN>tU?bENWOJgSTDoB@F4nZTc-hT+ zw=mhnC6D7IqB}}%Ud|}&88OEUHrFpoYUyOmN!Dg31kF%u7bPs-v*PsSGu1U@8mCLX zbI;YDej%%@RM&t*Phb9R(IPYG1rt?*z?k@E0D__@=yv? zld~!p>r)z&tWX&g7v9?dCDO4?=2sCud9CLNa0DcYfM|~kAq^w4sNtp>lk}w0uZ^+2 zHpz_H`EZf{ef?sk8y*K2lBl?<>RIn+ht1Myv*Qhf<`P>j;r_}6F#*$6omchy{Fi-r zHgx03^WcfDJ^TjpyvG7^F!6owFJE*m?jJB+p+>^D(U~_iBK6!=b2yg@>iGXO2i&h(Z;ZxSW7?3Rcx1wE$U2aac>*LMq zcWuTB*YL)=V@#lP@kU9%wS(KwR2vp1=vyqIsep4McTfK9vfFql>}7XFY7$v{&WuM? zmRG{Rap&IMyw6vn04PSw$p`@3&rm(PZpg)(C6Li&*-#{?14_YiwNMb$6cQtc$^uek z$!lM9FgP>JIgd;7?d3vo1Q-GWkF)ojzVjn-jQQMA{Vo5FZij^rjmcJpSv_sht5}H% z?gf{ef|JCxa=)fv?`prPGVOvmeRe`iq^Q{@xTn_~+*DCj0akTan3g+_hhj?9>Vt0> z7ADDNn_5Cf+!Fx$O_d}329SF27eO88Z(M?ElopL4+1kz=3YA4YZxyEF)7}-+Ec@h@ zo+H2!kR$?($45F_ZS2@MqvO97eoyOy6!AJtFzM32$B`4qJh)b{k{|#&{^$2GOEW^I zt4s@%^x5&vmKMYtvJ>UAO>n-yacFB*RV5-FTaK(f-x-evfv!KaS+_7jKHF@}PSh`G zK1s9V0bTp)>e$@O@6P=INIey%ssc*s{9Jb^2x@||pfV`VS({*RO5&t>mShd)LU9B* z0#AtVIq{6s7hX6>Eb8AbE&`*S!PY2aqScUK+49~FOwdPP-W{_LKXv83neQxUH#yRP z(N6F<4D;ql#%wUA3HEQ{{x#)Q<<-^A5FzePipHEL1*j@7+`ks3ibfX!osZ@a6E`8C zWyiOj9Qo=y3jih{byprJ0_u44y&X^umcfCVpe(2iimRu}%pF2I&8s^{fFmGD1PG7g zJusnHp_& z?BO%t0L%xU>o@~NoGtlt%(R!WRxK3dX9@eih-YL2W1u)uiIl!~3S-weDajhlh2jWs z1c+Y+Bu;r;u-d5kM$VXKb%Ke9?SUd=RcgCFsdE}aBg)9IqKk!Az%MwD>FjsP?@WAa zM!;0Lc79AVQCpn<(x6IWPt$>P(u;>kA0cgITdRsM8&G0CMe4?yR)E5Lf^!fBJ{T?oAc_<5#R_& z5&>q9Q$_a9*ofoaijxngz+Su-ovxVR|qTG`EtO1Dufl@(-e=Yi9Q^$X)8 zXKD4>vAP8@kCKepaj;KupTlR4c(zYlhra7Q1x5Pu^kH2#`X3q;^-(0nwGcC6mKMP( zU;cI&cXsE(0=Yv4Pz2PWi!)(EPApD|NR_}0Me@3Vw1Y)R94)kHmn9&)IA5c=>S#VGoMo@d$yy>=I?XUS-kt9{lX-i@#&E)2*FYPC~6gKr`Q-7c@<- zo@dd6$LHH0F5z0`984H%F$x4JW59FW&W)G|?v7#@_W`M+zki#U zn-xA&{csGNf+vY5yQ_kbSmH%-BB!~cwS0Qgc zv*TdIF~2II0CK!_c;s^yO!f9NhiMZ{u>J;(8}{49KRlS^AXCiE!MY>`pBF{V(kf;f z_4DjH5L^=zu9D3pm%so0hp>4Owe7j_@Cu2eNGKSJ_uh9O$mbYP;D;6#lFDc43-`W; z^~Bw6837rYF%A{HICco;;%gF&i1CMlBA+#)sTVjpo8H+5MZh^8VOPQ!$07>$MOdhoD2^$Swa1LpS(A)2yuxz? zI0BMHfbsZ9#|ux#$3zQm2kDHbZyFlj$4E?aQz+uw{+3Ia32;TszO&_@tX}i=3&&=X=LL#C@7^6+?Fv`H1IH$alZ}00PQhCB<&Mq{s4LB}tico+qrwi5Dw}S@uFWvXF|Cnw^WFSmvJ7U= zXMeD`{S>)+j#)d`+LUAqo-BLrwE^dj{@t`oqp&Ik-&Qy0KKm|=Qv&yL%PN|$K5nrWP zfw@c^0geFtD%4UVd`-OMpa2I85E5r8?Tta9-E;^*gqPf$8WW{gAaJFTCi$ON{_MW8 zPr$?o!#uloj-`=F@v1&*hIaX$mDTsF-G$$ICe~K|6@^4mb3a`XHAAg@Ro_T4kqxi} zyb{r4Rlh&4{)PJ3K(VVTPMrG{VJc7o6ajUhpA_0%m$q?8UG5eX$C_uVVxm@F-#G#t z0ZAf2{3_&acVckij7aF@>&}s;nVp{22Vu`J*nrlQm~fqJ)#f$V%Sz#{^*}vjjllc& z_x!Y1IZGctRiTG>1%`P;Y_6MY4V@~tElfnv3oiF?|HtYl6!n`kM{QU)e5xEGG$#Ko6iw9p9)kc9Ii(l-qW>8d3wcv!+rsWzEjk=i}; ze}xM#TQx7Phvh~l zx2NG+!OFeQ7QfJbvJ4`4mJz=K3K;K!uS68>TZ7GvfRkGar(r60E6cw5<#TT8^FeeCNF8Uxhe3}v>cn}aj>1JCMGxdHGLSET116Khe z4`m^q@#-o-J$=#a_R4U3dOTF{v>^z(fKs47%Gx7Xr;1JjaP+Z=9tCpe{&D`sa|9%c zKph?z%{ofrjNgeVN5(wyQ^vMoSlb#lU>kD?<`80^AWRF|_368w7eQnLp+N6)>E##J z3=W(a4vy2#29KLuChaV=Qa1#$B#_*_MRC(8@@0gOXU8<2x;53I|xFYHWTjsXmb+m>?7m6c^ zDULSM2qC8$#Dn-BM}Q+BJp^dnA$`e(0Z;P&J0;OePAtBiBjZ=}!}QLlbU^{u2vdq3 zGxhrodmaOx@UArY2kid1@<)%tzWx)!R2T^)JZ^k2;e6CIrD=Z5H)oIHlE-lFk2^_G zR1_F4a^u_>h~Pm$h#xQ^w0B{@bB!6>EH4MVh&Ajxw7<%#1?&JHDu5#5^PhDhai=a6 zRj6o&3nY%5(yP8)B8~t@00=N1XRZ}W--1EMOme|6C)S)m4I|WJl3@vAW>9#H(vlpb zi!&`M%)NZ)8YXeNBRF=R?cw?TUq5Cn>)h_;K+Q}8VY*k152lDIicTxK|8o8$JkB0m z#-1P7`oE&6DDcncPj*_-EpkfqgL2^v5qYKo;%6=I^3&fZFcGxj4o5}#rQ6pQu3Q4B zEf`^rQDWB5lL|l0ODS2~p&*)wcBl>R_)7Iv+a%LwnAdoY07pQQ2nh3lYUzNz|AfuO z#Hc|eh?Lg{w(q1STfSMsG>JxIf;FL2%I?qJXEQuKvnQFaf4}D7$uARg()`8;t6`Oc z$7dSqrLalzf$N5zyZZM(XpoZ$jsl;%dTzkl!C{kR^@PG#2n&(@UJgpmN&D&)S<%qL z{CjpogaZNC|L%D=p<{|E!KTJ6d`lR>Z{JZ3MYz%$Ym!F@>LYp-8) zIH$v)b2je8lcHJIfgDhF*fBC@aW9OpA#yp$9%V|lVg2i#1Nt62^*sVAJo7kyWvh`K z_~l^Y;`FxTf>qP?+L=c6OoMX@eML5Y%j7G!uQmI0eCDOWr{kc(0yilG3Vh}E)t9$S zf(XtM;TR;Yny!P$DT_0|{PnBGkT@OV57QNx9ntR>3CebU) zjL|~azqlv7A4oXBSDbu^Te-Ug_q<(pXZl;SAc8|2hz5^}V!8&xX6AJ{e3~qz4iG#H zY~udp*QyFYI(EhczzdMEFdifo8A0dk!qnL?@aB@r|#IA1$oQRIonUn01hUlE4ypmg28w^8q zQ2DpNAMc*uJ79c>VycE%Z4Ztz6HhuFDstdu~cH(Y9JAx9ORY^6=t2;-4BOplxoa}MXG~;pl z{tHaOxIjD)%3!7+4iGHS)=qr2?aX2NBnv_*ls4Vg58fgh235G-XhI;qd&I#4K;cau zv}Q=#F+q`&6}p)w^>jTvEg->pyR(tAS$G_~qv1iNWu=Es9nRlVIBDC|5wDL%dS%3WC*5|5muXg4-!$hr}KUpA5fn5^&=+fTca9PWo#|0HNx0rY^msb|;|OpBq=x{D zR}sx{k*@`Vjxqva0jK031soWsW<9C)M`u6K5{Y=YD1CH%$K*Xn_F-s__@F(SoM1^7 zaDAop%7iy3`@Iw#Ix$i=)2NxD4;ddhW9KZG%#X<9C;;)WSKRyL`%ebFHpDz9CTM)v z)1%w98ykp(gW&PuIEjYj(;q$~<~g?DX{gMe$sGm0b@$fvowFbU1c5jq6Cwh}1y9~K z^=j!=)E>{5<5!9r*(Tz%Z}!J`NCu=>M=-m8rsCB6NsQL3s52u2_4=Q%Iq0ihAD=|!A``;Tc}NL z#iAcNdDrKA9{Ks$t@1k!au&;gLfkI9UAU)MHACk&HV8hJkO`5KwoJW#`}!k}bK=ey zZ(N%D_I&wNl|OAKlv6dZksS%oLgV2-E<`>}JAe1WlA9&Cq>;sTnGFTLe*4D6EmI)^ zZtnL|5W-Ye?|tp|z1xkyGobtW=VRSp>#{*I1O9eu(2 zb|{YVyOW)cGVni+07pQ22vENY@p@C&Dtq&Hh-^;DS}*_|$BY+t5-JB}q;41#)>Ds3 zo(O8j%1!2EJJ{#NF@wMR?Wfxnci}^D$#?Zm0#MsO4J_41az!$EU z3|%+!nNfa$FNb!^@3sGz1FX{26WQfgzy;6%9hMgdjAYayR`rZ21kvJQJq>AZV1;qf zPr}qezrxUl`UF~MUKFYtlG&j(ddy0~KRE&%0f`|%c%0hW0xuIn7c9P7Y7p`;)^PH- z5}MdCG8v0*cOVO4w=spt<1|h8+L6{Acb5d5F(T zS(N_s-@ky}UGiOnC$Xi@)mv9bZy48Rw131znP$2{4F;d8b(!!J*c{oAdF&hGZ`{7& zVMiX%k4Aw{{PlD4!gRC^IqxpPn!OOJG2S5pQAPQkio4&RJu&#@;WDF=z!;~&*d~Al zyvfDS6SPSqD(HoQFB;>d8K%cjA5BgTGo^T{Tb9)NrF; zg=5C-ltjcc4(cbQ4_X<89e(|jWdBk5x3z>Kvcg6q5r<9~2`UFSHO5yCek4&PSWu;^ z@`K|ajd*?3(X+=Mg2(YJ7{!PxT)C&ne@t-11et~~xTc|`MYiw>vcR$Ji#}V8)d%tC zc{I``p`*Y@&m0}Oe)LD*eOz8y4soz@ug5`6avSCoN1F$@hEE!UC_?}U7~7i3#+v~t zaU=3UdBhkL7CszExu&0B{VU-ViW%Tjiegu^_9Kj;;Vl}3G-oJn0 z+Qln3uOP@;Jl)v;+1Tk1=YEWt8y7GpSVL^^21#7VfXo47gJR|;dqJc4#8@ICE+- zO*#0Tu{r%pltuN$au2-_VU-h`IHOjS4!(35lS3{!3m*= z9ehUdB=acqEVBI@S)<$MQ_Gxm##ZscHmvriv4oUCGOrUy-Mmbs4q=ZWX#stO9OZe#= zajm#~M6;YEBwkf{we03+NA`Dnp;v@fj>RJt@p?a7IG{sAsGpRC8g@pZyrhL7!bNM*}5=DT;t2i^YgA|zOMCh0^njp3wA!`TkJANfJ zA*3B64O6q=6M(P0ojDXi7g%i-QFNFhwCSB~7j9m{vLT?tmN0c;-a<_We*VHV(-QJh zs0t)LN!g@?OG3wm>Sq}D{w@4_73WJYZGLwf7BWOT2NIXZX#p2N z19Sk8a4c^o_BbU7c7|DV%(!D@K`6VHK?KI9X9!=wax~BG!iGH&IY+i;PK}K+C{#9G_R7Vl zFaCa~q6}W}=KTZVG9Lfr_$Ruly0CF!569!UP&-Zc@$rvQHClqlA^6?OdjMg{>Sb8T z05dj8I~S`WA%^OJHr7zntDOZTX?saj;5cAD7GiyayTt_CoZ8*aR|&t;oFICl6h6-B z>n}T(U$O|0col&uC>^k`qUVH|*pwp}Wr&tIr4>RhG%=1K7YbjQc{s|puqR^X5dMrQ zLZNmtzZ^@2MCj#XroD^}nu)u-p{*yHMDz|G-}lo#5_vKzKt53}pBNoYlVXy>onelj zSRR^R?mx<3Jx#NpZeZW+JPuz91jkaeSRRrzY!hUj*|ICliZa2j~sizTeKDIdt;SC*OUt`M~Df_w%N1oi=9um;prt z`mE^NEw@{zB^{A)&^N#DfTDq8HjJINb^5aRm%Vv#^QYf`didAFzg;*3>;54EAKjG@ z0zym(i#_lXJEuZ?4F3WO0P>VJ5TlxycAvQFc@a{f6-0YU&WJ3`P^GObn7x+D3G&ba zYgTD~%HWL9>3Na;C0mQRU>pJ8MnH&HVZ6XBILa3ym5XMbNHK&L2w4*zAqRxn8R^r5 zEM~tmoa{5?xwk&qjls{d%6rT(ZZR)?=dWG(>+)acu8@R-3)e1Ox_;?e>9t#TZjqq%+RK_DQiTap zSyc(qAmH1dz4z?!7a%fr!ZWAXBVv`9t_eT@OZ4ElwDn|@HV4Rnl%(1-l&L8l(>zoK zB0ICI81h6rjMmv5gik?JzFpP1^c(@nBEal%#tVd+iDkzKf^e~D^btZq5^QsUIA~5W z58)jlPpwHv?!Yo&p+4jE4p^@oJ0Tz*0~^9&Z%+hiz(H(GvQA$#`^br7*YA}gl!ZCX zn}y9`9mA$3GlS?KINjx+@H5>W$elsmr1PxsM3AbA8}~}TK5=x~qFIJSvP3&XhTstY z8AI^DqT05#ha0DN6jm{G##3N$hh8YQ^;|1dL0QCFCu*V%s#AXIRc9KZCOpX?*;>p6 z;|TaR0%RT#HL(d(5E2&*ZAJ|O3o|aJ6i?0*i;pq8Ko*SO9lYoKHwD!tyhzVgMVw7Z>kJ=yGvtehSgcZ+HswHhC;bKbPgqlT8#~BJc z!`Ate=3)4YRL*W9-il9w)59UVGt%7Z^b>!x??BpQ!a$ zYXH)d^eef9k`5z%%0v!AC)p@Hjmp?O4BJbxk-cZkApzD%Re}K?bGbnop_BI>{OtN& zn?QeH^Rfy;h|Oh~H^{$_o`Es=y~=Vh_^;>ByuNcIyhaF0foQh0I90qM&>D&0Like9 zBT=RU{Yj6&IMK^2`0J7&LW=l zR{?4Qpffv*U+GEeY$5k?t^|ORp-)k1SE?9^Q#bQsD1MV5)n9sPzEL6y4=B- zntnR{N_j_M8G*Q|Nl4C9+G0K&d`(?HNHaDC>-k|CItb3s5{9`j@H`me%yOejA8*Do z-0OC{f%!7m%SthCsHz&ib0G@Q>$L7D0Ez_nIz}>4NECJL_6-Ba4MX7}0t6v@-NmW> ztl^Zw$>N2YaVcr*2h~Rs$cP>)$4?F<>4Av02=#-?a$M;8fL3Pv%&)>| zLbRqS^E%Oi!}`MkF~G&2T<|r1s>3_tttjs}@{0#MM!`WWd)|h9%iuA`KA--UaCne) ziDrGASz*?gl5D*OJ&Rbq1K%DxQ}PEw_bRF@5dp#o9c1d@Q_uEtbN%XgA_{#$u!?*SMYs&3E| zuM*&`rzvNp5d3S=u6+vb!2RRC{jPKArHcUbt1$8v=vAa?^5)kbJ23*~8vF$Ma3U1J zq9mLmk`cX}_3K4Kuf3tj_!(P<+ZJ>W>8cahTpQ?Tf^DwW#2aDQBE~}(YedZT*clVv ze0Td--yiw=`bDhPjX5>2&|wQZq7_?+(;eK62jOvu1jnOMfRfTHM}9iC<-Hx4o|@Dp z4FQEHDhjMkG@RI`ETpt1*|1BjD2rIN9S)OkIa@g!2x*a2!zTd5}%$nJkfXL=th?RMZ-h z8E+0XzuGypyPgbzg8sCDZA~Q79K(b91hY2Apt0-qai+}PonDzc4MT_rjvoS{V>py7 z)lyXfdPPhjsFs=P&0>HPo4c|SwEqua}^6u>P%0h?VTpzXyn0ZPTH6 zD5NT0A8uEm5kldy1q1{^aE=LKg>*cVIh5)&jRG~(_Od>M3m}V}?toeZ-_cms(^|c+ zVq?h~44I1Bo4;c&J94_<5~i$d%n)& z(l-vV%tJE#gsDgF4ino!_sD=hWF}WsS25zot#HGucdp~+cmy7V$Kjz_eL91_ zQ4DR25snmnq8Y^twnd@gVGQ2J5&{vhQW(S`u!s=V3jV;ETJ*%9>N2>99tEHMRC|eQ z#SviZ<&kbR=8|y)d>R3lJnmqPT6?*cgIutNBfmiXt}@d+4lA;jV$e>o%WH1}`m^Ws zjC|INfkDKyu$^%*g+163g%!FD$z(nx!m*WRjW*U8laY|ov*Vy~!?RZ|*|dA>r-%1` zd+LYN7kaVXhkpD92?zL!llTc4kPVsVEnhfs&J%9G(!ryr19)7pYSat=?BB z9(R`A<8dAIoLYzn$sHQ3t3>hX(yhi^GLC>xBOvg&J65I4QkN9ma}c?SNE!7hsj=r> zJS+9}L0FPoKEUo5A4xVmqZT@Gpc_Ll!9C2bkjH8?2}XFRv2=-%kgo~MtG4Rk`at|2 zV$wm!n2D3vF(tW6dRq4^5IqtO@D(TV6EYwhGUF0lh|6&kLp-@5Zi|~^H;k|tMG%}P z#t=LjT?AST|8_CqQT?s(?4ytm$nHXx`modo^C2#&$K#&v;L|mo3(padE&>nQ(Oyq%n?<`8?*@~urNvSW@=d* z)HXfFOEEHuL=W^Bq9mh~@iZF-R1-|N5SQa7xK(?*EWi>0?ndwlTjvW8CDTxo}qEAi=dz21JP@7rzjf z*B7*Fn34tCSw1i(vY#1Y>A_j5z_e)pB$R31^0-g2bK`~e>6*@k=Lkp_0jcqLGh5;h z;U#~FOW-1ZxT~7zTbFJ%=8|y)d>R3%@p$8n)8^0FDqQ?1#rEl%&V}a)NEd+?;PJDhy@HnUAhA6d8 z>(yGBrCW`;WE=sXMxgn4oO5?;(eXpK0X|*Rx$qnT=_1f{9_M`h*z>hJqL*$p=8|y) zd>VnK^Y}lO#oV!*@0|DPn$Csi2uK%!`aIsu@z=gh`i~o!(yhi^GLC>xBT%2m{{hD7 z6*@k=Lkp_fqx*6`?ihm;OK`qkZv{Rl5qrl8i7{g@p^{gLvTDf+@wi(SZhdlWfhRU2)w%_$A&zd$h0?9YTr!S; zPb2WeKZS!D!&43CX#o;%_@T`~!Oij%pRVa#c#eQ{5qM;K{PAbT$G?QFMfB3G##}Ov zfKMav$UNR!9Mn{U)VKN>jnjfp*K{sCM?ks=NS4Q&%KN^MU%J(pOU4oKX$1ahJkFgY zjWfMnHcLKT)4A{*0qG*}Pvh}NU@@1}*2t66@X|=P8gt1w0zQp^8y@$z*((j+^w3B= zgn$omNxcI2bWP{Na|EP|fEyn7lG$62cO>%F+l`_FM(I{#E*VF_rxEZ09)E0T)WN6T zI`HY5&V}a)NEZPo9_M@~^$T@Lx&ij-n$Csi z2uK%!$BxIn#)gkaGv-$OMw7MMJM0`K-D=Dw;|TaP0-VQ3c_6-j`cL&bH$Gj{x$qnT z=_2sB@OVAO`KJ@;<5_;`R%0$1N5H2McwBh=@gzQpmCC1UIv1WJAYBBW=+GRFSBddm YW5sDE=vu8WBHe1tCF2PAGy+fjKPI4DEC2ui literal 0 HcmV?d00001 diff --git a/share/windows/wix-patch.xml b/share/windows/wix-patch.xml new file mode 100644 index 000000000..1c1d222a9 --- /dev/null +++ b/share/windows/wix-patch.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/share/windows/wix-template.xml b/share/windows/wix-template.xml new file mode 100644 index 000000000..1e47029ef --- /dev/null +++ b/share/windows/wix-template.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + ProductIcon.ico + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 97ff5edf2..ca918971d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -299,14 +299,21 @@ if(MINGW) set(OUTPUT_FILE_POSTFIX "Win32") endif() - set(CPACK_GENERATOR "ZIP;NSIS") + # We have to copy the license file in the configuration phase. + # CMake checks that CPACK_RESOURCE_FILE_LICENSE actually exists and + # we have to copy it because WiX needs it to have a .txt extension. + execute_process(COMMAND ${CMAKE_COMMAND} -E copy + "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2" + "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt") + + set(CPACK_GENERATOR "ZIP;NSIS;WIX") set(CPACK_STRIP_FILES ON) set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}") set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME}) set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION}) set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team") string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt") set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico") set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}") @@ -319,6 +326,13 @@ if(MINGW) set(CPACK_NSIS_DISPLAY_NAME ${PROGNAME}) set(CPACK_NSIS_PACKAGE_NAME "${PROGNAME} v${KEEPASSXC_VERSION}") set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe") + set(CPACK_WIX_UPGRADE_GUID 88785A72-3EAE-4F29-89E3-BC6B19BA9A5B) + set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico") + set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/wix-banner.bmp") + set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/wix-dialog.bmp") + set(CPACK_WIX_TEMPLATE "${CMAKE_SOURCE_DIR}/share/windows/wix-template.xml") + set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/share/windows/wix-patch.xml") + set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "https://keepassxc.org") include(CPack) install(CODE " From 1ce77e6f1583d8dad2b8f49c4787e99794a7ef8d Mon Sep 17 00:00:00 2001 From: Sebastian Marsching Date: Sun, 3 Dec 2017 17:49:15 +0100 Subject: [PATCH 2/3] Remove WIX from default list of CPack generators. This ensures that MSI packages are only built when explicitly requested by using the "-G" parameter of cpack. --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ca918971d..89e3ebcbf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -306,7 +306,7 @@ if(MINGW) "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2" "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt") - set(CPACK_GENERATOR "ZIP;NSIS;WIX") + set(CPACK_GENERATOR "ZIP;NSIS") set(CPACK_STRIP_FILES ON) set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}") set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME}) From ab31619745a1bd0ee4be664a3b69f8210c5c9941 Mon Sep 17 00:00:00 2001 From: Sebastian Marsching Date: Sat, 9 Dec 2017 15:02:57 +0100 Subject: [PATCH 3/3] Build MSI package when making a release. --- release-tool | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/release-tool b/release-tool index 10c6a14c3..8ad547468 100755 --- a/release-tool +++ b/release-tool @@ -609,9 +609,13 @@ build() { -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" $CMAKE_OPTIONS "$SRC_DIR" logInfo "Compiling and packaging sources..." - make $MAKE_OPTIONS package + make $MAKE_OPTIONS preinstall + # Call cpack directly instead of calling make package. + # This is important because we want to build the MSI when making a + # release. + cpack -G "NSIS;WIX;ZIP" - mv "./${APP_NAME}-${RELEASE_NAME}-"*.{exe,zip} ../ + mv "./${APP_NAME}-${RELEASE_NAME}-"*.{exe,msi,zip} ../ else mkdir -p "${OUTPUT_DIR}/bin-release"