Home Home > 2007 > 09 > 14 > Sneak Peeks at openSUSE 10.3: KDE 4
Sign up | Login

Sneak Peeks at openSUSE 10.3: KDE 4

September 14th, 2007 by

openSUSE 10.3 will see the first small parts of KDE 4 creeping into the distribution. KDE 3 will still be the default KDE session for openSUSE 10.3, but KDE 4 will be making its way in steadily. The online repository will contain a current KDE 4 development snapshot, the DVD will have a fully functional and working KDE 4 session, and even on the KDE Installation CD you will have some KDE 4 games, KRDC and KRFB.

Today we will see what exactly is new in openSUSE 10.3’s KDE 4 applications and we’ll also be talking to Dirk Müller, a long-time openSUSE and KDE core developer.

KDE 4: Discover a New Desktop

KDE 4 will contain a plethora of new innovative technologies to revolutionise the Linux desktop. One of the greatest parts of the new KDE version is the porting of KDE to Qt 4, the C++ toolkit that KDE is based on. Other large improvements include projects within KDE 4 such as: Solid, a new device framework; Plasma, the new panel and user interface; Phonon, a multimedia framework; Oxygen, a new style and icon theme set for KDE 4; and Dolphin, the new default file manager.


This article however will be focusing on the new KDE 4 applications that are directly available to an openSUSE 10.3 user, and will not provide a complete overview of the changes underway for the new KDE 4 desktop, though they are well documented elsewhere.

openSUSE and KDE 4

It has always been suggested that openSUSE would be among the earliest adopters of KDE 4, and the KDE Team began working on this very early with a regularly updated KDE:KDE4 repository in the Build Service, allowing users to have an up-to-date development snapshot of KDE. With this repository Stephan Binner, another KDE developer at openSUSE, created the popular live CD ‘KDE Four Live‘ using KIWI.

The packages have been created so that you can seamlessly have both KDE 3 and KDE 4 applications installed and used by each user. The user’s configuration files for KDE 4 applications are stored in ~/.kde4 to avoid any conflicts. The Oxygen style, though available, is not enabled by default. However, you can either change this configuration from KDE’s new System Settings, or for individual applications on launch by using this syntax:

kde4app -style oxygen

The old component-style of packaging for KDE has also gone, and applications are now in separate individual packages. For example, the kdeedu package has been split up into kmplot, kanagram, kgeography etc. This allows you to save more space on your hard disk, should you want to, and has created a lot of extra space where it will be much-needed with the new single CD installation images that will be appearing in openSUSE 10.3.

You can stay up-to-date with KDE 4 snapshots if you are brave enough by simply using One-Click-Install with the kde4-default.ymp in the openSUSE Build Service.

KDE 4 Games

The first real KDE 4 component that will be ready to go straight into openSUSE 10.3 will be KDE Games. This includes KMahjongg, KMines, KPatience, KReversi and KSudoku. Let’s take a look at two of these.


KPatience, the KDE Patience game, has, like all the other KDE Games, greatly benefited by the wide adoption in KDE of SVG rendering in applications. SVG images can be scaled indefinitely without loss of quality, unlike bitmaps (such as jpeg, gif, png), so the user gets a much smoother and cleaner experience with applications.

In contrast to the older version (screenshot), KPatience contains the brand new SVG Oxygen card deck, giving it a polished finish:

KPatience - Klondike KPat - In the Game KPatience - Cards Fly at the End Game

Another thing you will notice is the change in format for toolbars. Toolbar items now by default contain the icon with a text label below. This discourages application developers from having too many actions in the toolbars, makes the options in it more accessible, and makes the options quicker to access.


KReversi in KDE 3 (screenshot) had a fixed width and a rather more antiquated look. In KDE 4, KReversi is completely scalable to any size and benefits greatly from the new Oxygen theme, as you can see below:

KReversi in KDE 4


Below you can also see quick screenshots of KMahjongg, KMines and KSudoku, all as they would appear in openSUSE 10.3:

KMahjongg in KDE4 KMines in KDE4 KSudoku in KDE4

Desktop Sharing: KRDC & KRFB

Two other applications that were shown to be mature and stable enough to make it into openSUSE 10.3 by default are KRDC, KDE Remote Desktop Client and KRFB, KDE Desktop Sharing. KRDC had been somewhat neglected in the later stages of KDE 3 development, with no real maintainer for some years.

Nevertheless, as the result of a Google Summer of Code project, KRDC’s user interface has been completely redesigned, and countless bugs and enhancement requests have been resolved. The new user interface is cleaner and more clearly orientated to the common task: connecting to another computer.


Among other big improvements, it also contains a tabbed interface to easily navigate through your remote desktop sessions:



Talk with Dirk Müller

I caught up with Dirk to find out a little more about KDE 4, and KDE in openSUSE.

What have been the main jobs around getting to KDE 4 and what has made it take so long?

My main jobs for KDE4 have so far been release management jobs and some smaller things helping here and there.

As part of keeping KDE4 on track, I’ve set up (with the build power from SUSE) a build monitor that will continuously track KDE 4 development and check for new build failures and compile warnings. This turned out to be pretty helpful especially when porting to a new API / removing old API, as it more or less immediately notifies the developer working on the porting that he overlooked something somewhere and hence helps getting KDE4 on track.

The main reason for KDE4 progressing so slowly is that there were a lot of new ideas for the desktop popping up, and these started to be implemented. Some of them were thrown away again, and new ones were coming up. It was definitely a healthy process, which it doesn’t look like from the outside because very little was visible to the average user. I think things are shaping up very well now though.

For a long time, development was also split into KDE 3.5 development (which slowed down KDE4’s progress) and there was also the interruptive “trimming down and beautifying API”, which required a lot of modifications to the code. I think it is impressive that there has been roughly 250,000 commits into KDE4, which is roughly the same amount of commits it took us from KDE 0.0.1 up to KDE 2.2.

This makes it pretty clear that there is a lot going on and a lot of loose ends to catch up, and that it took time to start the “nail down to 4.0” phase, which we’re working on right now. Not everything will be done for 4.0 that was envisioned and is being done for KDE 4, but KDE 4.0 will be beutifully easy to use and have a consistent base from where the KDE 4.1 release cycle will add to, as well as contain all the stuff that missed the 4.0 cut-off deadline.

And sometimes it is just fun to rip out big chunks of clumsy code and replace them with a small one liner, which has happened in several areas :)

Will the next version of openSUSE contain KDE 4 by default?

Right now with 10.3 KDE4 is just an experimental addon, and we only ship a few applications on the 1CD media (due to space constrictions). We’re not advertising it as a default because there is no official release, and it is definitely not as stable and ready for production use than the SUSE-polished KDE 3.5.

For openSUSE 11.0 the idea is still open and the decision will be made in a few months from now. All I can say is that we’re working hard to meet that goal for 11.0 and beyond.

In the past openSUSE has made some great additional KDE applications like KNetworkManager, KPowersave, Kerry Beagle, Kickoff, and the sysinfo:/ KIO slave. Are we likely to see these applications in upstream KDE?

KNetworkManager is already developed upstream and will be ported to KDE4 after the 10.3 release.

KPowersave is handled by the Mobiles Devices Team, and KDE 4 will have some new functionality with Solid, so we’ll see.

Kerry will be developed as a general frontend to the Xesam interface, which means that it will not be restricted to the Beagle backend, but that it will be able to use any other search engine that we might want to support. Strigi is currently our favourite candidate because of its superior indexing and lower resource requirements.

Kickoff has been ported to KDE4 already, but the decision on what is to happen with it is still open. When we find time we’re going to finish the port and suggest it for upstream inclusion in KDE 4.0.

The sysinfo:/ I/O slave has been put into a public svn repository on svn.opensuse.org and has acquired some smaller beautifications for 10.3. I’m encouraging anyone to join the effort and ask me for an account if he or she wants to submit patches. I’ve talked to a couple of people about it already and I’ve merged (or reworked and then integrated) a couple of patches that I found around the network.

The sysinfo:/ IOslave will probably not go into upstream KDE 4.0 because it is very Linux-specific and not portable to any other primary platform of KDE. However, I’m focusing on getting the goodies that were added by other distributions integrated into it and getting them on board by combining all contributors’ resources, as has already happend with other parts of openSUSE.

What other plans does the openSUSE KDE team have for the future?

Our main targets are getting KDE 4 on the road and adding one or two extra openSUSE goodies into it as usual ;) . There are a lot of areas where we can profit from the new features in the KDE4 platform and we’re going to make sure that by running KDE you have the richest web and desktop experience available. :)


Be sure to review all of your options for online graduate degrees in order to find the one that best complements your existing experience and passions

Both comments and pings are currently closed.

52 Responses to “Sneak Peeks at openSUSE 10.3: KDE 4”

  1. Are those 5 games the only KDE4 games to be included in 10.3?

  2. Robin

    Mhh.. the card deck looks very nice, but when playing the numbers/letters in the corner are very hard to recognize :-/

  3. Znurre

    How will yast Qt Version look like in the 11 release if KDE4 will get standard KDE enviroment ?
    I’m sick of the nice GTk integration between the GNOME control center, yast and now the Compiz configuration manager.

    While we KDE users have to deal with two separate, big and clumsy control centers ( kcontrol and yast ) GNOME users can enjoy a very unified desktop…

    I really hope this will change with KDE4.
    OpenSuSE have done great things to the KDE community, but it’s turning more and more into a Fedora like distro with optional KDE support.

    • > How will yast Qt Version look like in the 11 release if KDE4 will get standard KDE enviroment ?

      If it’s ported to Qt4 by 11.0 (which it hopefully will), then it’ll probably have a new skin. There are some mockups. :)

      > I’m sick of the nice GTk integration between the GNOME control center, yast and now the Compiz configuration manager.

      Compiz was a tool developed essentially for SLED originally, so that’s why it originally used the gconf plugin and had a GTK config tool. CCSM is developed by the Compiz Fusion community, which isn’t really part of openSUSE.

      It’s actually a lot easier to make a Compiz configurator with kconfig backend now, but I think what most KDE guys are holding on for is kwin_composite, which is also mainly developed by SUSE, and which will of course integrate perfectly with KDE4.

      For YaST they don’t really want to maintain two icon sets anymore which is understandable.

      > While we KDE users have to deal with two separate, big and clumsy control centers ( kcontrol and yast ) GNOME users can enjoy a very unified desktop…

      KControl is out for KDE4 (systemsettings is coming in), so perhaps more work can be done to smoothen the transition between YaST and KDE’s configuration tool then.

      > OpenSuSE have done great things to the KDE community, but it’s turning more and more into a Fedora like distro with optional KDE support.

      openSUSE still have more KDE developers and a higher KDE user percentage than any other distribution, so it’s not so bad, nor does it really look like the userbase is changing. Basically, if you want to run KDE openSUSE is still THE distribution to be on, and I’m sure it always will be.

      • Znurre

        That’s good to hear.
        The mockup is wounderful.

        Thanks for the quick reply.
        I’m looking forward to future releases of opensuse.

    • gnomelover

      Man, get a life! It’s just a fact the GNOME is the standard desktop in every distribution nowadays.

      • No, it really isn’t. There’s no default or single “standard desktop” in openSUSE.

        • gnomelover

          Sorry, I wasn’t talking about (open)SUSE per se. Rather than enterprise distributions (SLES, SLED), redhat, …
          And of course there’s debian, fedora, gentoo, and last but not least ubuntu.

        • Well, you still said “every distribution”, which is a pretty unambiguous (and erroneously applied, here) quantifier.

          Naming all the GNOME distributions doesn’t really help the argument unless you mention the KDE ones too. In terms of competition there’s not much in it, but KDE is generally thought to be slightly more widely used (Linspire, Xandros, Mandriva — though not as much these days, and of course Red Flag Linux, which is the most popular distro in China), despite there being a shift towards GNOME for the online and very much vocal community.

        • gnomelover

          The question remains…more widespread =? more users
          Ubuntu gains more and more users each day. Fedora seems to finally catch up (which traditionally is a GNOME centric distro). Regarding the recent development, GNOME’s (already) become the most widely used desktop (entreprise + home user).

        • > The question remains…more widespread =? more users

          I was using the two terms as synonymous, yes.

          There’s really no reason to argue though. The other desktop environment shouldn’t be the competition. Windows and OS X are :-)

        • jospoortvliet

          Gnome is indeed more vocal, but that’s just words. KDE still has the majority of desktop users, more developers & code and a superior architecture. Have a look at the latest KDE 3.x series – and compare to Gnome. True, Gnome has almost catched up in terms of functionality. But to what. A more than 2 year old KDE release…

        • gnomelover

          Blah, you’re hearing it all the time:

          * KDE still has the majority of desktop users: No proof, you simply can’t measure it. According to the latest desktop survey, GNOME leads the way.

          * more developers: There are no real number available. Both organisations tried to find out how many contributors they have.

          * superior architecture: The biggest ongoing FUD spread. There’s much GNOME code used in KDE (libgsf part of gnome office, hal (started at Red Hat by a GNOME guy), beagle (started at Ximian/Novell, used in openSUSE so far, strigi as a replacement), …). So, if you’re speaking of superior architecture, I can’t understand why KDE integrated inferior GNOME technology in the past and seems to do so in future.

          * KDE 3.5 isn’t two years old and GNOME 2.18/2.20 has already surpassed it, when it comes to new ideas being implemented. Additionally, GNOME’s been leading the way wrt. accessibility and usability. In fact, it’s been the first free desktop who came up with accessibility and usability…since 2001! KDE’s still far behind and tries to catch up with the help of the openusability project. I can’t see that the new so called mind blowing plasma desktop will fill the gap. It’s more like a step into the opposite direction.

        • Francis Giannaros

          > According to the latest desktop survey, GNOME leads the way.

          The desktop survey was really not that big and was something that was taken, again, by the online+vocal community.

          > * more developers: There are no real number available.

          There are actually, take a look at the commits. GNOME have also consistently said that they’re really short on core developers.

          > So, if you’re speaking of superior architecture, I can’t understand why KDE integrated inferior GNOME technology in the past and seems to do so in future.

          Your whole paragraph there is based on the fallacy that an application developed by a GNOME developer has to be a GNOME application, or that it’s “GNOME code”. That is not necessarily true. None of the backends you mentioned above are GNOME applications.

          Though, really, why such a polemic attitude? As I said before, the other DE is not the enemy, nor the competition. Windows and Mac are. Come on, please don’t troll :-)

      • > Man, get a life!

        Exactly what I would tell a GNOME user who trolls a KDE related story.

        • noone

          oh man, you’re the greatest troll ever known. everyone knows that, stop bashing and other people will behave. you look like a jerk. ‘nuf said.

    • the mockup is to say at least: godlike … i would love to install opensuse 11 with such an interface and of course kde4

  4. I mean… what’s the deal?

    What are the BIG improvements?, why this is 4.0? It’s looks the same as 3.5.

    Just use another file browser, amarok with new interface… a crappy composite manager… and that’s it.

    • I really don’t understand why you have to troll, but you’re basing this on one screenshot of the KDE desktop? I already said above that I wasn’t going to cover all the KDE4 changes, and instead concentrate on a few of the games. If you want to see changes then take a look at the links I provided.

      > Just use another file browser, amarok with new interface… a crappy composite manager… and that’s it.

      Curious that you so quickly dismiss these things which are no small achievement. Writing a decent file browser and composite manager are anything but trivial tasks. Solid, Phonon, and all the great updates to ALL KDE applications are what’s really amazing. Search Google or check Wikipedia for more.

  5. Fred

    Rumours are, if KDE4 will deliver on it’s high expectations (and it will), and some things change inside Novell (and I hope it will), the future SLE* products will default to KDE again :-)))

    But, I also notice a rather strange preference for both Gnome and GTK. Think OLPC, think openmoko, to name a few. The other thing I noticed is developers/distros seem to get more done with GTK2+, allthough it is clearly less powerfull than qt4. It must be the coorporate interests. If Gnome is the defacto default desktop on linux, it’s possible to develop closed source with the lgpl-ed GTK2+. I stil think KDE is way better than Gnome, but boy, do I wish there was only one major desktop environment on Linux. Imagine the pace of development it would give against both OSX and Windows. I know, I know, OSS is about choice. But choice has a downside and it is a slowdown in development pace. The best thing we, the OSS community, can do, is too follow open standards as close as possible, and by doing that, proving choice is possible.

    • gnomelover

      Well, that’s the result of hard work. It’s not only due to the license, but also marketing. GNOME has entered markets which seem to be impossible to reach for other projects.

  6. Features be damned! That’s the obsession with “featuritis” which made Windows almost unusable because it causes problems with reliability, security, and scalability.

    When KDE4 comes out, let’s make sure it’s not BUG-RIDDEN!

    THAT is what matters! Not whether GNOME OR KDE is better…

    If Linux is to be usable in corporate America desktops, it has to WORK BETTER than Windows. If Linux is to be adopted by new users, it has to work at least as well and preferably better than Windows. Ideally, it should be as good as the Apple interface (not saying it has to be the same – just as good.)

    So make sure the code is rock-solid before it’s released. No more stupid crap like the “server overload” messages I used to get with Kubuntu. That was one reason I switched to openSUSE, whose KDE has been much more stable.

  7. LS

    Many people have left KDE because it crashes too much. So KDE has more configurability features than Gnome? What good is it if not stable? Gnome is rock solid.

  8. Anonymous

    Hello ? Gnome is usually so broken that even basic stuff like printing or logout does not work. On some final released distros the distro makes were able to work around that. Other distro makers (like old standing Slackware) gave up and dropped Gnome completely from their distro, because it is such an inconsistent thing.

    Time to drop it from openSUSE as well, esp. only a minority of openSUSE users are (able ?) to use it at all like the download numbers and surveys are showing.

    This is really FUD…

  9. Jackal

    The only way to crush an application is to make something that exceeds it in every aspect possible. KDE4 has done this and the effects will be seen in the next few years.

  10. Hope the next OpenSuse will contain KDE4 by default.

  11. Robert Smits

    I’m glad to see KDE 4 making it’s way into OpenSuse 10.3. I assume then, that we’ll finally see KDE 4 in OpenSuse 10.4. All I ask is that it be thoroughly tested so that my Kpilot connection doesn’t break like 10.2 did.

    I like KDE, I like OpenSuse, and hope they continue to improve for a long time.

  12. Just to finish this forever: It has been stated here, that we, the OSS-community, should and must not dispute on emotional grounds (GNOME feels better, KDE looks better). A mere waste of energy. Energy that should be put in development, growth.
    What really bothers me, is the calling names. “Troll” is a quite harmless word, but it’s a start. Open Source is about openmindedness, profitting of common efforts; calling names has nothing to do with that. In fact i’m quite shocked to see that the (reli)fanatics find their way here. It all should not be about “better than..”, “more stable than…’, but about what great forces can be developed by an independent, international, interracial and open community.

  13. len

    The thing I find most anoying about kde is the shutdown time. It takes 15-30 seconds to shutdown kde
    and get to the text console. I’m using 10.2 amdx64. On returning to the text console I can see many
    startup and shutdown errors, some I can fix others not. Need some improvement here.
    Thanks for a great distribution.

  14. mingus

    Gertjan, thank you for your comment. Alas, like with all religious wars, people try to shape facts to fit their pre-conclusion. We dilute the strength of open source & Linux by these never-ending unresolvable debates.

    I did want to clarify something re the market share of Gnome as compared to KDE. While I have no idea what the actual numbers are, it should not be a surprise that Gnome is being used more than KDE: Ubuntu has become very popular, Fedora Core is the first distro of choice for corporate Linux professionals, Sun has adopted Gnome for the Java Desktop, and where Linux is used on the desktop in the enterprise the leader is Novell’s SLED which also uses Gnome. All have commercial backing. Now, so does openSUSE, but Novell’s support is divided between Gnome and KDE. Red Hat is exclusively Gnome as is Sun, making for a very large enterprise presence, and does anyone seriously believe that Novell spends as much real dollars on KDE for openSUSE as it does on Gnome for its business interests? Ubuntu is supported by Canonical, which all along has had its eye on moving up into the enterprise. Based upon having been an engineer and business manager for over 20 years working for one of the Big-3 Unix computer manufacturers in the Valley, I can say from experience: Money matters – a lot.

    Comments like the posts above tend to be made from the perspective of developer or end-user preferences. That is not what drives a Gnome or KDE decision in Sun, Red Hat, Novell, etc. The criteria and thought process is entirely different. And btw, there are countless examples of inferior technology winning – Microsoft comes to mind, eventually becoming a monopoly through what was then the monopoly power of IBM. The companies that support free distros try hard to accommodate “the community” but at the end of the day, profit targets and shareholder obligations are the primary decision drivers.

    GNOME was founded to become free from the QT license, and also to use the LGPL so that it could be linked to proprietary software at no charge. This second reason was ultimately a huge factor for corporate sponsorship; the reason should be obvious. Gnome’s founders created Ximian, later acquired by Novell . . . hmmm. And then add in the factors of location and culture (both where the decision is made as well as the markets targeted); this should also be obvious Gnome vis-a-vis KDE.

    Bottom line, talking about how one looks better or has a better architecture or more dev’s is nonsense and has little to do with what actually gets done and why. Decisions driven by financial and market criteria may not always be right or best, but that is just the way it is.

    • Anonymous

      > Fedora Core is the first distro of choice for corporate Linux professionals

      I doubt that, you likely confuse it with Red Hat Enterprise Desktop. If it’s used at all and not SLED.

      > Sun has adopted Gnome for the Java Desktop

      I don’t know about any significant deployment of the Java Desktop, imo it’s rather dead.

      > All have commercial backing.

      For sure not Fedora (so that it qualifies for usage in corporate environments).

  15. KdeRox

    Right, about the new features of OS 1.3 and KDE 4, looks really good. I’ve just finished downloading the Beta of 10.3 and can’t wait to try it out. Currently using OpenSUSE 1.2 with Gnome and it’s ok, it’s all down to personal preferences, look and feel. Screenshots of the menu expanded would have been appreciated.

    • Anonymous

      > Screenshots of the menu expanded would have been appreciated.

      There exists no implementation of the menu in upstream KDE yet (as of Beta 2).

  16. Maxei

    I want to call all the people developing linux and desktops and applications. Is it really necessary to rush towards a new version as soon as one version is released? What I mean here is: Why there should be a new version in the first place? Look, we have OpenSUSE 10, then 10.1, then 10.2 and we are about to see the version 10.3. Why? Is it because each new version is “better” than its older sister? If so, then why that “inferior” version was released? Please dont missunderstand. I know we all want the best. But this infernal cycle of new versions ALWAYS brings new problems, more bugs, more crashes of applications that worked fine in older versions, not to say changes in the way things used to be done, which disorient the users; there is also the potential lack of support for many packages that cannot be installed in the new version because of conflicting dependencies, forcing people to do “manual” installs of non-supported software.
    All of this is to say: Please, I want what I would call “A FINAL, FINISHED” version. Yes, a la Windows and a la Macintosh. THis is the way it should be. Hey man, it is a succesful tried, tested and true system. I do care in security updates. I do care in adding new features that are USEFULL, but I care a lot less in cosmetics and face-lifting or eye candy. All updates and replacing packages should be able to be done without the need to install completely a new system. I wonder if that can be done by the way, since I am only a user and this is only a personal opinion. whatever it is worth or worthless, it’s my 2 cents.
    Maxei DeVraie

    • Anonymous

      > Is it because each new version is “better” than its older sister?


      > If so, then why that “inferior” version was released?

      Because it was the best, final and finished version 8 months before.

  17. richlv

    a minor typo ;)

  18. Richard

    I like KPatience, but the new look of teh cards makes it bloody hard to play, I am hoping that there is a better design to the cards coming

  19. suni

    Please could someone give me an advice how to switch back to the KDE 3.x? After installing Superkaramba the KDE 4 (thanks to some miracle) has become the default window manager contrary my will. I would like to return back the KDE 3 as my default window manager in my openSUSE 10.3. And I definitely do not how to do it…:-(

    Thanks in advance!

    • suni

      Just one clarification. This problem occurs only while I’m connecting to this computer remotely via Nomachine NX. In this case the desktop like the one on the first image in the article above appears. But if I login to the machine “locally” (using its keyboard), the KDE3 appears like normally…

      Any suggestions?

      • Hello suni,
        I was having the same problem. I am using the free NX Client from No Machine and here is a quick fix. Click on Configure… to change the settings of your session. Then click change the Desktop from KDE to Custom then click Settings…
        Once that comes up select: Run the default X client script on server
        Click OK and then Save.

        *PLEASE NOTE* This will only work if KDE 3 is used on the local machine.

  20. David

    KDE 4 doesn’t look as nice as KDE 3.5 but IT STILL LOOKS BETTER THAN GNOME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!