Revision: 201015
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:23:15 +0300
changeset 20 ecc8def7944a
parent 18 578830873419
child 21 f9ba49b96643
child 23 2dc6caa42ec3
Revision: 201015 Kit: 201018
email_plat/email_services_api/email_services_api.h
email_plat/nmail_client_api/nmail_client_api.metaxml
email_plat/nmail_client_api/nmail_client_api.pri
email_plat/nmail_client_api/nmapiemailservice.h
email_plat/nmail_client_api/nmapienvelopelisting.h
email_plat/nmail_client_api/nmapifolder.h
email_plat/nmail_client_api/nmapifolderlisting.h
email_plat/nmail_client_api/nmapimailboxlisting.h
email_plat/nmail_client_api/nmapimessageenvelope.h
emailservices/emailcommon/bwins/fsfwcommonlibu.def
emailservices/emailcommon/eabi/fsfwcommonlibu.def
emailservices/emailcommon/emailcommon.pro
emailservices/emailcommon/inc/CFSMailAddress.h
emailservices/emailcommon/inc/CFSMailBox.h
emailservices/emailcommon/inc/CFSMailBoxBase.h
emailservices/emailcommon/inc/CFSMailCommon.h
emailservices/emailcommon/inc/CFSMailFolder.h
emailservices/emailcommon/inc/CFSMailFolderBase.h
emailservices/emailcommon/inc/CFSMailIterator.h
emailservices/emailcommon/inc/CFSMailMessage.h
emailservices/emailcommon/inc/CFSMailMessageBase.h
emailservices/emailcommon/inc/CFSMailMessagePart.h
emailservices/emailcommon/inc/CFSMailPluginData.h
emailservices/emailcommon/inc/CFSMailRequestHandler.h
emailservices/emailcommon/inc/CFSMailRequestObserver.h
emailservices/emailcommon/inc/cemailextensionbase.h
emailservices/emailcommon/inc/cmailboxstateext.h
emailservices/emailcommon/inc/cmailmessageext.h
emailservices/emailcommon/inc/cmrcalendarinfo.h
emailservices/emailcommon/inc/cmrcalendarinfoimpl.h
emailservices/emailcommon/src/CFSMailAddress.cpp
emailservices/emailcommon/src/CFSMailBox.cpp
emailservices/emailcommon/src/CFSMailBoxBase.cpp
emailservices/emailcommon/src/CFSMailFolder.cpp
emailservices/emailcommon/src/CFSMailFolderBase.cpp
emailservices/emailcommon/src/CFSMailIterator.cpp
emailservices/emailcommon/src/CFSMailMessage.cpp
emailservices/emailcommon/src/CFSMailMessageBase.cpp
emailservices/emailcommon/src/CFSMailMessagePart.cpp
emailservices/emailcommon/src/CFSMailPluginData.cpp
emailservices/emailcommon/src/CFSMailRequestHandler.cpp
emailservices/emailcommon/src/CFSMailRequestObserver.cpp
emailservices/emailcommon/src/cemailextensionbase.cpp
emailservices/emailcommon/src/emailcalendarinfoimpl.cpp
emailservices/emailframework/bwins/FSMailFrameworkU.DEF
emailservices/emailframework/data/fsmailbrandmanager.rss
emailservices/emailframework/data/gmail44svgtest4.svg
emailservices/emailframework/data/microsoft.svg
emailservices/emailframework/data/yahoo.svg
emailservices/emailframework/eabi/FSMailFrameworkU.DEF
emailservices/emailframework/emailframework.pro
emailservices/emailframework/inc/CFSMailBrandManagerImpl.h
emailservices/emailframework/inc/CFSMailClient.h
emailservices/emailframework/inc/CFSMailPlugin.h
emailservices/emailframework/inc/CFSMailPlugin.inl
emailservices/emailframework/inc/MFSMailBoxSearchObserver.h
emailservices/emailframework/inc/MFSMailBrandManager.h
emailservices/emailframework/inc/MFSMailEventObserver.h
emailservices/emailframework/inc/MFSMailIterator.h
emailservices/emailframework/inc/MFSMailPlugin.h
emailservices/emailframework/src/CFSFWImplementation.cpp
emailservices/emailframework/src/CFSMailBrand.cpp
emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp
emailservices/emailframework/src/CFSMailClient.cpp
emailservices/emailframework/src/CFSMailEventObserver.cpp
emailservices/emailframework/src/CFSMailPluginManager.cpp
emailservices/emailservermonitor/inc/emailshutdownconst.h
emailservices/emailservermonitor/inc/emailshutdownconst.hrh
emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF
emailservices/emailstore/base_plugin/EABI/basepluginU.DEF
emailservices/emailstore/base_plugin/base_plugin.pro
emailservices/emailstore/base_plugin/group/BasePlugin.mmp
emailservices/emailstore/base_plugin/group/bld.inf
emailservices/emailstore/base_plugin/inc/BasePlugin.h
emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h
emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h
emailservices/emailstore/base_plugin/inc/basepluginresourceloader.h
emailservices/emailstore/base_plugin/inc/nestedao.h
emailservices/emailstore/base_plugin/src/BaseMrInfoObject.cpp
emailservices/emailstore/base_plugin/src/BasePlugin.cpp
emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp
emailservices/emailstore/base_plugin/src/basepluginmisc.cpp
emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp
emailservices/emailstore/base_plugin/src/basepluginresourceloader.cpp
emailservices/emailstore/base_plugin/src/baseplugintranslator.cpp
emailservices/emailstore/base_plugin/src/nestedao.cpp
emailservices/emailstore/group/ABLD.BAT
emailservices/emailstore/inc/EmailStoreUids.hrh
emailservices/emailstore/inc/emailstorepskeys.h
emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp
emailservices/emailstore/message_store/MsgStoreRfsPlugin/inc/RfsMsgStorePlugin.h
emailservices/emailstore/message_store/MsgStoreRfsPlugin/src/RfsMsgStorePlugin.cpp
emailservices/emailstore/message_store/client/api/MsgStoreTypes.h
emailservices/emailstore/message_store/client/src/MessageStoreClient.cpp
emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp
emailservices/emailstore/message_store/server/inc/ContainerStoreContentManager.h
emailservices/emailstore/message_store/server/inc/MessageStoreServer.h
emailservices/emailstore/message_store/server/inc/bufferedmessagecreator.h
emailservices/emailstore/message_store/server/src/ContainerStoreContentManager.cpp
emailservices/emailstore/message_store/server/src/ContainerStoreUtils.cpp
emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp
emailservices/emailstore/message_store/server/src/bufferedmessagecreator.cpp
emailservices/emailstore/message_store/server/src/messagestoreutils.cpp
emailservices/emailstore/rom/emailstore.iby
emailservices/nmailagent/inc/nmmailagent.h
emailservices/nmailagent/inc/nmmailagentheaders.h
emailservices/nmailagent/nmailagent.pro
emailservices/nmailagent/src/main.cpp
emailservices/nmailagent/src/nmmailagent.cpp
emailservices/nmailbase/bwins/nmailbaseu.def
emailservices/nmailbase/eabi/nmailbaseu.def
emailservices/nmailbase/inc/nmcommon.h
emailservices/nmailbase/inc/nmmessage.h
emailservices/nmailbase/inc/nmmessagepart.h
emailservices/nmailbase/nmailbase.pro
emailservices/nmailbase/src/nmmessage.cpp
emailservices/nmailbase/src/nmmessagepart.cpp
emailservices/nmclientapi/bwins/nmailclientapiu.def
emailservices/nmclientapi/eabi/nmailclientapiu.def
emailservices/nmclientapi/inc/nmapieventnotifier_p.h
emailservices/nmclientapi/nmclientapi.pro
emailservices/nmclientapi/src/nmapiemailservice.cpp
emailservices/nmclientapi/src/nmapienvelopelisting.cpp
emailservices/nmclientapi/src/nmapieventnotifier.cpp
emailservices/nmclientapi/src/nmapieventnotifier_p.cpp
emailservices/nmclientapi/src/nmapifolder.cpp
emailservices/nmclientapi/src/nmapifolderlisting.cpp
emailservices/nmclientapi/src/nmapimailboxlisting.cpp
emailservices/nmclientapi/src/nmapimessageenvelope.cpp
emailservices/nmclientapi/src/nmapitypesconverter.cpp
emailservices/nmregister/inc/nmmailboxregisterinterface.h
emailservices/nmregister/inc/nmmailboxregisterinterface_p.h
emailservices/nmregister/inc/nmmailboxregisterinterfaceplugin.h
emailservices/nmregister/nmregister.pro
emailservices/nmregister/resource/nmregister.xml
emailservices/nmregister/rom/nmregister.iby
emailservices/nmregister/src/nmmailboxregisterinterface.cpp
emailservices/nmregister/src/nmmailboxregisterinterfaceplugin.cpp
emailuis/nmailcpplugin/nmailcpplugin.pro
emailuis/nmailui/conf/nmviewerheader.widgetml
emailuis/nmailui/inc/nmactionresponse.h
emailuis/nmailui/inc/nmapplication.h
emailuis/nmailui/inc/nmattachmentlist.h
emailuis/nmailui/inc/nmattachmentpicker.h
emailuis/nmailui/inc/nmeditorcontent.h
emailuis/nmailui/inc/nmeditorheader.h
emailuis/nmailui/inc/nmeditortextdocument.h
emailuis/nmailui/inc/nmeditorview.h
emailuis/nmailui/inc/nmmailboxlistviewitem.h
emailuis/nmailui/inc/nmmailboxserviceinterface.h
emailuis/nmailui/inc/nmrecipientfield.h
emailuis/nmailui/inc/nmsendserviceinterface.h
emailuis/nmailui/inc/nmuiheaders.h
emailuis/nmailui/inc/nmutilities.h
emailuis/nmailui/inc/nmviewerserviceinterface.h
emailuis/nmailui/inc/nmviewerview.h
emailuis/nmailui/nmailui.pro
emailuis/nmailui/service_conf.xml
emailuis/nmailui/src/main.cpp
emailuis/nmailui/src/nmapplication.cpp
emailuis/nmailui/src/nmattachmentlist.cpp
emailuis/nmailui/src/nmattachmentpicker.cpp
emailuis/nmailui/src/nmeditorcontent.cpp
emailuis/nmailui/src/nmeditorheader.cpp
emailuis/nmailui/src/nmeditortextdocument.cpp
emailuis/nmailui/src/nmeditorview.cpp
emailuis/nmailui/src/nmmailboxlistview.cpp
emailuis/nmailui/src/nmmailboxlistviewitem.cpp
emailuis/nmailui/src/nmmailboxserviceinterface.cpp
emailuis/nmailui/src/nmmessagelistview.cpp
emailuis/nmailui/src/nmmessagelistviewitem.cpp
emailuis/nmailui/src/nmrecipientfield.cpp
emailuis/nmailui/src/nmsendserviceinterface.cpp
emailuis/nmailui/src/nmuidocumentloader.cpp
emailuis/nmailui/src/nmuiextensionmanager.cpp
emailuis/nmailui/src/nmutilities.cpp
emailuis/nmailui/src/nmviewerheader.cpp
emailuis/nmailui/src/nmviewerserviceinterface.cpp
emailuis/nmailui/src/nmviewerview.cpp
emailuis/nmailui/src/nmviewerviewnetreply.cpp
emailuis/nmailui/translations/mail.qm
emailuis/nmailui/translations/mail.ts
emailuis/nmailui/translations/nmailui.qm
emailuis/nmailui/translations/nmailui.ts
emailuis/nmailuiengine/bwins/nmailuiengineu.def
emailuis/nmailuiengine/eabi/nmailuiengineu.def
emailuis/nmailuiengine/inc/nmbaseclientplugin.h
emailuis/nmailuiengine/inc/nmdataplugininterface.h
emailuis/nmailuiengine/inc/nmmessagelistmodel.h
emailuis/nmailuiengine/inc/nmmessagesendingoperation.h
emailuis/nmailuiengine/inc/nmoperation.h
emailuis/nmailuiengine/inc/nmuiengine.h
emailuis/nmailuiengine/inc/nmuiengineheaders.h
emailuis/nmailuiengine/nmailuiengine.pro
emailuis/nmailuiengine/src/nmbaseclientplugin.cpp
emailuis/nmailuiengine/src/nmicons.cpp
emailuis/nmailuiengine/src/nmmessagelistmodel.cpp
emailuis/nmailuiengine/src/nmoperation.cpp
emailuis/nmailuiengine/src/nmuiengine.cpp
emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def
emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def
emailuis/nmailuiwidgets/inc/nmailuiwidgetsheaders.h
emailuis/nmailuiwidgets/inc/nmattachmentlistitem.h
emailuis/nmailuiwidgets/inc/nmattachmentlistwidget.h
emailuis/nmailuiwidgets/inc/nmrecipientlineedit.h
emailuis/nmailuiwidgets/nmailuiwidgets.pro
emailuis/nmailuiwidgets/src/nmattachmentlistitem.cpp
emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp
emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp
emailuis/nmailuiwidgetsplugin/nmailuiwidgetsplugin.pro
emailuis/nmframeworkadapter/inc/nmframeworkadapter.h
emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h
emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h
emailuis/nmframeworkadapter/inc/nmfwacheckoutboxoperation.h
emailuis/nmframeworkadapter/inc/nmfwaforwardmessagecreationoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagecreationoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagesendingoperation.h
emailuis/nmframeworkadapter/inc/nmfwaremoveattachmentoperation.h
emailuis/nmframeworkadapter/inc/nmfwareplymessagecreationoperation.h
emailuis/nmframeworkadapter/inc/nmfwastoreenvelopesoperation.h
emailuis/nmframeworkadapter/inc/nmfwastoremessageoperation.h
emailuis/nmframeworkadapter/nmframeworkadapter.pro
emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp
emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp
emailuis/nmframeworkadapter/src/nmfwacheckoutboxoperation.cpp
emailuis/nmframeworkadapter/src/nmfwaforwardmessagecreationoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagecreationoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp
emailuis/nmframeworkadapter/src/nmfwaremoveattachmentoperation.cpp
emailuis/nmframeworkadapter/src/nmfwareplymessagecreationoperation.cpp
emailuis/nmframeworkadapter/src/nmfwastoreenvelopesoperation.cpp
emailuis/nmframeworkadapter/src/nmfwastoremessageoperation.cpp
emailuis/nmhswidget/inc/nmhswidget.h
emailuis/nmhswidget/inc/nmhswidgetconsts.h
emailuis/nmhswidget/inc/nmhswidgetemailengine.h
emailuis/nmhswidget/inc/nmhswidgetemailrow.h
emailuis/nmhswidget/inc/nmhswidgetplugin.h
emailuis/nmhswidget/nmhswidget.pro
emailuis/nmhswidget/resources/nmhswidget.xml
emailuis/nmhswidget/rom/nmhswidget.iby
emailuis/nmhswidget/src/nmhswidget.cpp
emailuis/nmhswidget/src/nmhswidgetemailengine.cpp
emailuis/nmhswidget/src/nmhswidgetemailrow.cpp
emailuis/nmhswidget/src/nmhswidgetplugin.cpp
emailuis/nmindicatorplugin/inc/nmindicator.h
emailuis/nmindicatorplugin/inc/nmindicatorplugin.h
emailuis/nmindicatorplugin/nmindicatorplugin.pro
emailuis/nmindicatorplugin/src/nmindicator.cpp
emailuis/nmindicatorplugin/src/nmindicatorplugin.cpp
emailuis/nmsettingui/bwins/nmsettinguiu.def
emailuis/nmsettingui/eabi/nmsettinguiu.def
emailuis/nmsettingui/inc/nmmailboxsettingsmanager.h
emailuis/nmsettingui/inc/nmsettingsformcustomitems.h
emailuis/nmsettingui/inc/nmsettingsplugininterface.h
emailuis/nmsettingui/inc/nmsettingsviewfactory.h
emailuis/nmsettingui/inc/nmsettingsviewlauncher.h
emailuis/nmsettingui/inc/nmsettinguidef.h
emailuis/nmsettingui/nmsettingui.pro
emailuis/nmsettingui/src/nmmailboxsettingsmanager.cpp
emailuis/nmsettingui/src/nmsettingsformcustomitems.cpp
emailuis/nmsettingui/src/nmsettingsviewfactory.cpp
inc/cemailextensionbase.h
inc/cmrcalendarinfo.h
inc/emailshutdownconst.h
inc/emailshutdownconst.hrh
inc/fsmailserverconst.h
inc/fsmailserverconst.hrh
inc/nmsettingsplugininterface.h
ipsservices/ipssosaoplugin/inc/IpsSosAOImapAgent.h
ipsservices/ipssosaoplugin/inc/IpsSosAOSettingsHandler.h
ipsservices/ipssosaoplugin/ipssosaoplugin.pro
ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp
ipsservices/ipssosaoplugin/src/IpsSosAOSettingsHandler.cpp
ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp
ipsservices/ipssosplugin/BWINS/IPSSOSPLUGINU.DEF
ipsservices/ipssosplugin/EABI/IPSSOSPLUGINU.DEF
ipsservices/ipssosplugin/inc/ipsplgbaseoperation.h
ipsservices/ipssosplugin/inc/ipsplgconnectandrefreshfolderlist.h
ipsservices/ipssosplugin/inc/ipsplgcreateforwardmessageoperation.h
ipsservices/ipssosplugin/inc/ipsplgcreatemessageoperation.h
ipsservices/ipssosplugin/inc/ipsplgcreatereplymessageoperation.h
ipsservices/ipssosplugin/inc/ipsplgdisconnectop.h
ipsservices/ipssosplugin/inc/ipsplgeventhandler.h
ipsservices/ipssosplugin/inc/ipsplgheaders.h
ipsservices/ipssosplugin/inc/ipsplgimap4connectop.h
ipsservices/ipssosplugin/inc/ipsplgimap4fetchattachmentop.h
ipsservices/ipssosplugin/inc/ipsplgimap4moveremoteop.h
ipsservices/ipssosplugin/inc/ipsplgimap4populateop.h
ipsservices/ipssosplugin/inc/ipsplgmailstoreroperation.h
ipsservices/ipssosplugin/inc/ipsplgmessagepartstoreroperation.h
ipsservices/ipssosplugin/inc/ipsplgnewchildpartfromfileoperation.h
ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h
ipsservices/ipssosplugin/inc/ipsplgpanic.h
ipsservices/ipssosplugin/inc/ipsplgpop3connectop.h
ipsservices/ipssosplugin/inc/ipsplgpop3fetchoperation.h
ipsservices/ipssosplugin/inc/ipsplgremovechildpartoperation.h
ipsservices/ipssosplugin/inc/ipsplgsmtpoperation.h
ipsservices/ipssosplugin/inc/ipsplgsmtpservice.h
ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h
ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.hrh
ipsservices/ipssosplugin/ipssosplugin.pro
ipsservices/ipssosplugin/src/ipsplgbaseoperation.cpp
ipsservices/ipssosplugin/src/ipsplgconnectandrefreshfolderlist.cpp
ipsservices/ipssosplugin/src/ipsplgcreateforwardmessageoperation.cpp
ipsservices/ipssosplugin/src/ipsplgcreatemessageoperation.cpp
ipsservices/ipssosplugin/src/ipsplgcreatereplymessageoperation.cpp
ipsservices/ipssosplugin/src/ipsplgdisconnectop.cpp
ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp
ipsservices/ipssosplugin/src/ipsplgimap4connectop.cpp
ipsservices/ipssosplugin/src/ipsplgimap4fetchattachmentop.cpp
ipsservices/ipssosplugin/src/ipsplgimap4moveremoteop.cpp
ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp
ipsservices/ipssosplugin/src/ipsplgimap4populateop.cpp
ipsservices/ipssosplugin/src/ipsplgmailstoreroperation.cpp
ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp
ipsservices/ipssosplugin/src/ipsplgnewchildpartfromfileoperation.cpp
ipsservices/ipssosplugin/src/ipsplgonlineoperation.cpp
ipsservices/ipssosplugin/src/ipsplgpop3connectop.cpp
ipsservices/ipssosplugin/src/ipsplgpop3fetchoperation.cpp
ipsservices/ipssosplugin/src/ipsplgpop3plugin.cpp
ipsservices/ipssosplugin/src/ipsplgremovechildpartoperation.cpp
ipsservices/ipssosplugin/src/ipsplgsmtpoperation.cpp
ipsservices/ipssosplugin/src/ipsplgsmtpservice.cpp
ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp
ipsservices/ipssosplugin/src/ipsplgsyncstatehandler.cpp
ipsservices/nmimapclientplugin/nmimapclientplugin.pro
ipsservices/nmipssettings/inc/ipssettingkeys.h
ipsservices/nmipssettings/inc/nmipsextendedsettingsmanager.h
ipsservices/nmipssettings/inc/nmipsimap4settingsmanager.h
ipsservices/nmipssettings/inc/nmipspop3settingsmanager.h
ipsservices/nmipssettings/inc/nmipssettingitems.h
ipsservices/nmipssettings/inc/nmipssettingscustomitem.h
ipsservices/nmipssettings/inc/nmipssettingshelper.h
ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h
ipsservices/nmipssettings/inc/nmipssettingsmanagerbase.h
ipsservices/nmipssettings/inc/nmipssettingsplugin.h
ipsservices/nmipssettings/nmipssettings.pro
ipsservices/nmipssettings/src/nmipsextendedsettingsmanager.cpp
ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp
ipsservices/nmipssettings/src/nmipspop3settingsmanager.cpp
ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp
ipsservices/nmipssettings/src/nmipssettingshelper.cpp
ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp
ipsservices/nmipssettings/src/nmipssettingsmanagerbase.cpp
ipsservices/nmipssettings/src/nmipssettingsplugin.cpp
ipsservices/nmipssettings/translations/mailips.qm
ipsservices/nmipssettings/translations/mailips.ts
ipsservices/nmpopclientplugin/nmpopclientplugin.pro
layers.sysdef.xml
nmail.pro
--- a/email_plat/email_services_api/email_services_api.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/email_services_api/email_services_api.h	Mon May 03 12:23:15 2010 +0300
@@ -1,19 +1,22 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: Email services API to be used through Qt Highway.
- *
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Email services API to be used through Qt Highway.
+*
+*/
+
+#ifndef EMAIL_SERVICES_API_H
+#define EMAIL_SERVICES_API_H
 
 /*!
     Keys for mail send service data.
@@ -27,7 +30,7 @@
 /*!
     Mail send service interface name.
 */
-static const QString emailInterfaceNameSend = "com.nokia.symbian.IMessage.Send";
+static const QString emailInterfaceNameSend = "com.nokia.symbian.IEmailMessageSend";
 
 
 /*!
@@ -141,5 +144,4 @@
 */
 static const QString emailOperationViewMessage = "viewMessage(QVariant,QVariant,QVariant)";
 
-
-// End of file.
+#endif // EMAIL_SERVICES_API_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email_plat/nmail_client_api/nmail_client_api.metaxml	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="a29a769373a60df860a923a77bfef505" dataversion="2.0">
+  <name>Nmail Client API</name>
+  <description>An interface for getting email messages from message store and monitoring changes in the store.</description>
+  <type>c++</type>
+  <collection>emailservices</collection>
+  <libs>
+    <lib name="nmailclientapi.lib"/>
+  </libs>
+  <release category="platform" sinceversion="4.0"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- a/email_plat/nmail_client_api/nmail_client_api.pri	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmail_client_api.pri	Mon May 03 12:23:15 2010 +0300
@@ -18,7 +18,7 @@
 symbian*: {
     # Build.inf rules
     BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
-            "nmail_client_api/nmcommon_api.h           APP_LAYER_PLATFORM_EXPORT_PATH(nmcommonheader_api.h)" \
+            "nmail_client_api/nmcommon_api.h           APP_LAYER_PLATFORM_EXPORT_PATH(nmcommon_api.h)" \
             "nmail_client_api/nmapiemailaddress.h      APP_LAYER_PLATFORM_EXPORT_PATH(nmapiemailaddress.h)" \
             "nmail_client_api/nmapiemailservice.h      APP_LAYER_PLATFORM_EXPORT_PATH(nmapiemailservice.h)" \
             "nmail_client_api/nmenginedef.h            APP_LAYER_PLATFORM_EXPORT_PATH(nmenginedef.h)" \
--- a/email_plat/nmail_client_api/nmapiemailservice.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapiemailservice.h	Mon May 03 12:23:15 2010 +0300
@@ -62,12 +62,12 @@
     /*
      *gets mail message envelope by id (see also NmEventNotifier)
      */
-    bool envelope( const quint64 mailboxId, const quint64 folderId, const quint64 envelopeId, NmMessageEnvelope &envelope );
+    bool getEnvelope( const quint64 mailboxId, const quint64 folderId, const quint64 envelopeId, NmMessageEnvelope &envelope );
 
     /*
      *  gets mailbox info by id (see also NmEventNotifier)
      */
-    bool mailbox( const quint64 mailboxId, NmMailbox &mailboxInfo );
+    bool getMailbox( const quint64 mailboxId, NmMailbox &mailboxInfo );
 
     /*
      * returns isrunning flag value
--- a/email_plat/nmail_client_api/nmapienvelopelisting.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapienvelopelisting.h	Mon May 03 12:23:15 2010 +0300
@@ -57,7 +57,7 @@
      *  
      *  \arg envelopes 
      */
-    bool envelopes( QList<EmailClientApi::NmMessageEnvelope> &envelopes );
+    bool getEnvelopes( QList<EmailClientApi::NmMessageEnvelope> &envelopes );
 
     /*!
      * \brief Return info if listing is running
--- a/email_plat/nmail_client_api/nmapifolder.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapifolder.h	Mon May 03 12:23:15 2010 +0300
@@ -108,7 +108,7 @@
      * returns child folder ids.
      * to be implemented later when nmail functionality is available
      */
-    void childFolderIds(QList<quint64> &childFolderIds);
+    void getChildFolderIds(QList<quint64> &childFolderIds);
 
     /*
      * returns parent folder id.
--- a/email_plat/nmail_client_api/nmapifolderlisting.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapifolderlisting.h	Mon May 03 12:23:15 2010 +0300
@@ -57,7 +57,7 @@
      *  It clears list of folders after be called.
      *  It also at start clear inputlist of NmFolder.
      */
-    bool folders(QList<EmailClientApi::NmFolder> &folders);
+    bool getFolders(QList<EmailClientApi::NmFolder> &folders);
 
     /*!
      * \brief Return info if listing is running
--- a/email_plat/nmail_client_api/nmapimailboxlisting.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapimailboxlisting.h	Mon May 03 12:23:15 2010 +0300
@@ -56,7 +56,7 @@
      *  \return Return true if results were avaible
      *  \arg List of mailboxes to filled. On start is cleared. 
      */
-    bool mailboxes(QList<EmailClientApi::NmMailbox> &mailboxes);
+    bool getMailboxes(QList<EmailClientApi::NmMailbox> &mailboxes);
 
     /*!
      * \brief Return info if listing is running
--- a/email_plat/nmail_client_api/nmapimessageenvelope.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/email_plat/nmail_client_api/nmapimessageenvelope.h	Mon May 03 12:23:15 2010 +0300
@@ -93,12 +93,12 @@
     /*
      * getter for to recipients
      */
-    void toRecipients( QList<EmailClientApi::NmEmailAddress> &toRecipients );
+    void getToRecipients( QList<EmailClientApi::NmEmailAddress> &toRecipients );
 
     /*
      * getter for cc recipients
      */
-    void ccRecipients( QList<EmailClientApi::NmEmailAddress> &ccRecipients );
+    void getCcRecipients( QList<EmailClientApi::NmEmailAddress> &ccRecipients );
 
     /*
      * getter for sent time
@@ -133,7 +133,7 @@
     /*
      * getter for plaintext body
      */
-    void plainTextBody( EmailClientApi::NmMessageBody &body );
+    void getPlainTextBody( EmailClientApi::NmMessageBody &body );
 
     /*
      * getter for plaintext body
@@ -173,12 +173,12 @@
     /*
      * setter for to recipients 
      */
-    void setGetToRecipients(const QList<EmailClientApi::NmEmailAddress>& toRecipients);
+    void setToRecipients(const QList<EmailClientApi::NmEmailAddress>& toRecipients);
 
     /*
      * setter for cc recipients 
      */
-    void setGetCcRecipients(const QList<EmailClientApi::NmEmailAddress> &ccRecipients);
+    void setCcRecipients(const QList<EmailClientApi::NmEmailAddress> &ccRecipients);
 
     /*
      * setter for sent time 
--- a/emailservices/emailcommon/bwins/fsfwcommonlibu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/bwins/fsfwcommonlibu.def	Mon May 03 12:23:15 2010 +0300
@@ -1,232 +1,260 @@
 EXPORTS
-	?GetTempDirL@CFSMailRequestHandler@@QAEAAVTDesC16@@XZ @ 1 NONAME ; class TDesC16 & CFSMailRequestHandler::GetTempDirL(void)
+	??1CEmailExtension@@UAE@XZ @ 1 NONAME ; CEmailExtension::~CEmailExtension(void)
 	?CancelAllRequestsL@CFSMailRequestHandler@@QAEXXZ @ 2 NONAME ; void CFSMailRequestHandler::CancelAllRequestsL(void)
 	?SaveL@CFSMailMessagePart@@QAEXXZ @ 3 NONAME ; void CFSMailMessagePart::SaveL(void)
 	?CreateMessageToSend@CFSMailBox@@QAEPAVCFSMailMessage@@XZ @ 4 NONAME ; class CFSMailMessage * CFSMailBox::CreateMessageToSend(void)
-	?ClearBccRecipients@CFSMailMessageBase@@QAEXXZ @ 5 NONAME ; void CFSMailMessageBase::ClearBccRecipients(void)
+	?FindExtension@TEmailExtensions@@QBEHABVTUid@@@Z @ 5 NONAME ; int TEmailExtensions::FindExtension(class TUid const &) const
 	?SendMessageL@CFSMailBox@@QAEXAAVCFSMailMessage@@@Z @ 6 NONAME ; void CFSMailBox::SendMessageL(class CFSMailMessage &)
 	?GetStandardFolderId@CFSMailBox@@QAE?AVTFSMailMsgId@@W4TFSFolderType@@@Z @ 7 NONAME ; class TFSMailMsgId CFSMailBox::GetStandardFolderId(enum TFSFolderType)
-	?CancelSearch@CFSMailBox@@QAEXXZ @ 8 NONAME ; void CFSMailBox::CancelSearch(void)
-	?ResetFlag@CFSMailMessageBase@@QAEXH@Z @ 9 NONAME ; void CFSMailMessageBase::ResetFlag(int)
-	?ListMrusL@CFSMailBox@@QBEPAVMDesC16Array@@XZ @ 10 NONAME ; class MDesC16Array * CFSMailBox::ListMrusL(void) const
-	?IsMRInfoProcessorSet@CFSMailBoxBase@@QAEHXZ @ 11 NONAME ; int CFSMailBoxBase::IsMRInfoProcessorSet(void)
-	??1CFSMailFolderBase@@UAE@XZ @ 12 NONAME ; CFSMailFolderBase::~CFSMailFolderBase(void)
+	?ResetFlag@CFSMailMessageBase@@QAEXH@Z @ 8 NONAME ; void CFSMailMessageBase::ResetFlag(int)
+	?ListMrusL@CFSMailBox@@QBEPAVMDesC16Array@@XZ @ 9 NONAME ; class MDesC16Array * CFSMailBox::ListMrusL(void) const
+	?IsMRInfoProcessorSet@CFSMailBoxBase@@QAEHXZ @ 10 NONAME ; int CFSMailBoxBase::IsMRInfoProcessorSet(void)
+	??1CFSMailFolderBase@@UAE@XZ @ 11 NONAME ; CFSMailFolderBase::~CFSMailFolderBase(void)
+	??0TEmailExtensions@@QAE@XZ @ 12 NONAME ; TEmailExtensions::TEmailExtensions(void)
 	?SetFolderType@CFSMailFolderBase@@QAEXW4TFSFolderType@@@Z @ 13 NONAME ; void CFSMailFolderBase::SetFolderType(enum TFSFolderType)
-	?SetUnseenCount@CFSMailFolderBase@@QAEXI@Z @ 14 NONAME ; void CFSMailFolderBase::SetUnseenCount(unsigned int)
-	?GetNmMessageEnvelope@CFSMailMessageBase@@QAEPAVNmMessageEnvelope@@XZ @ 15 NONAME ; class NmMessageEnvelope * CFSMailMessageBase::GetNmMessageEnvelope(void)
-	?GetName@CFSMailBoxBase@@QBEAAVTDesC16@@XZ @ 16 NONAME ; class TDesC16 & CFSMailBoxBase::GetName(void) const
-	?SaveMessageL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 17 NONAME ; int CFSMailMessage::SaveMessageL(class MFSMailRequestObserver &)
-	?GetMailBoxStatus@CFSMailBox@@QAE?AW4TFSMailBoxStatus@@XZ @ 18 NONAME ; enum TFSMailBoxStatus CFSMailBox::GetMailBoxStatus(void)
-	?AttachmentListL@CFSMailMessage@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 19 NONAME ; void CFSMailMessage::AttachmentListL(class RPointerArray<class CFSMailMessagePart> &)
-	?SaveMessageL@CFSMailMessage@@QAEXXZ @ 20 NONAME ; void CFSMailMessage::SaveMessageL(void)
-	?NewL@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 21 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewL(class TFSMailMsgId)
-	?FetchMessagesPartsL@CFSMailMessagePart@@QAEHABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@I@Z @ 22 NONAME ; int CFSMailMessagePart::FetchMessagesPartsL(class RArray<class TFSMailMsgId> const &, class MFSMailRequestObserver &, unsigned int)
-	?SetReplyToAddress@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 23 NONAME ; void CFSMailMessageBase::SetReplyToAddress(class CFSMailAddress *)
-	?IsFlagSet@CFSMailMessageBase@@QBEHH@Z @ 24 NONAME ; int CFSMailMessageBase::IsFlagSet(int) const
-	?NewL@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 25 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewL(class TFSMailMsgId)
-	?GetBCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 26 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetBCCRecipients(void)
-	?AddPluginL@CFSMailRequestHandler@@QAEXVTUid@@PAVCFSMailPlugin@@@Z @ 27 NONAME ; void CFSMailRequestHandler::AddPluginL(class TUid, class CFSMailPlugin *)
-	?SetContentDisposition@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 28 NONAME ; void CFSMailMessagePart::SetContentDisposition(class TDesC16 const &)
-	??1CFSMailMessageBase@@UAE@XZ @ 29 NONAME ; CFSMailMessageBase::~CFSMailMessageBase(void)
-	?CurrentSyncState@CFSMailBox@@QBE?AW4TSSMailSyncState@@XZ @ 30 NONAME ; enum TSSMailSyncState CFSMailBox::CurrentSyncState(void) const
-	?NewL@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 31 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewL(class TFSMailMsgId)
-	?SetAttachmentNameL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 32 NONAME ; void CFSMailMessagePart::SetAttachmentNameL(class TDesC16 const &)
-	?GetMessageCount@CFSMailFolderBase@@QBEIXZ @ 33 NONAME ; unsigned int CFSMailFolderBase::GetMessageCount(void) const
-	?RemoveChildPartL@CFSMailMessagePart@@QAEXVTFSMailMsgId@@@Z @ 34 NONAME ; void CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId)
-	?SaveMessagePartsL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 35 NONAME ; int CFSMailMessage::SaveMessagePartsL(class MFSMailRequestObserver &)
-	?MoveMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@1@Z @ 36 NONAME ; void CFSMailBox::MoveMessagesL(class RArray<class TFSMailMsgId> const &, class TFSMailMsgId, class TFSMailMsgId)
-	?GetFolderName@CFSMailFolderBase@@QBEAAVTDesC16@@XZ @ 37 NONAME ; class TDesC16 & CFSMailFolderBase::GetFolderName(void) const
-	?GetDisplayName@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 38 NONAME ; class TDesC16 & CFSMailAddress::GetDisplayName(void) const
-	?ConstructL@CFSMailFolderBase@@IAEXVTFSMailMsgId@@@Z @ 39 NONAME ; void CFSMailFolderBase::ConstructL(class TFSMailMsgId)
-	?SetSubject@CFSMailMessageBase@@QAEXABVTDesC16@@@Z @ 40 NONAME ; void CFSMailMessageBase::SetSubject(class TDesC16 const &)
-	?CreateReplyMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@HABVTDesC16@@@Z @ 41 NONAME ; class CFSMailMessage * CFSMailBox::CreateReplyMessage(class TFSMailMsgId, int, class TDesC16 const &)
-	?CopyContentFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 42 NONAME ; void CFSMailMessagePart::CopyContentFileL(class TDesC16 const &)
-	??1CFSMailBoxBase@@UAE@XZ @ 43 NONAME ; CFSMailBoxBase::~CFSMailBoxBase(void)
-	?RemoveContentL@CFSMailMessagePart@@QAEXXZ @ 44 NONAME ; void CFSMailMessagePart::RemoveContentL(void)
-	?NewLC@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 45 NONAME ; class CFSMailBox * CFSMailBox::NewLC(class TFSMailMsgId)
-	?GetParentFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 46 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetParentFolderId(void) const
-	??_ECFSMailRequestHandler@@UAE@I@Z @ 47 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(unsigned int)
-	?NewLC@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 48 NONAME ; class CFSMailFolder * CFSMailFolder::NewLC(class TFSMailMsgId)
-	?NewL@CFSMailAddress@@SAPAV1@XZ @ 49 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(void)
-	?IsMessageL@CFSMailMessagePart@@UBEHXZ @ 50 NONAME ; int CFSMailMessagePart::IsMessageL(void) const
-	?GetNmMessage@CFSMailMessage@@QAEPAVNmMessage@@XZ @ 51 NONAME ; class NmMessage * CFSMailMessage::GetNmMessage(void)
-	?GetContentToBufferL@CFSMailMessagePart@@QAEXAAVTDes16@@I@Z @ 52 NONAME ; void CFSMailMessagePart::GetContentToBufferL(class TDes16 &, unsigned int)
-	?AddNewAttachmentL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@VTFSMailMsgId@@0@Z @ 53 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId, class TDesC16 const &)
-	?BlockCopyFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 54 NONAME ; void CFSMailFolderBase::BlockCopyFromL(class RArray<enum TFSFolderType>, enum TFSMailBoxStatus)
-	?GetSender@CFSMailMessageBase@@QBEPAVCFSMailAddress@@XZ @ 55 NONAME ; class CFSMailAddress * CFSMailMessageBase::GetSender(void) const
-	?ClearSearchResultCache@CFSMailBox@@QAEXXZ @ 56 NONAME ; void CFSMailBox::ClearSearchResultCache(void)
-	?CancelRequestL@CFSMailRequestHandler@@QAEXH@Z @ 57 NONAME ; void CFSMailRequestHandler::CancelRequestL(int)
-	?GetMailBoxId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 58 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMailBoxId(void) const
-	?ListFolders@CFSMailBox@@QAEXVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 59 NONAME ; void CFSMailBox::ListFolders(class TFSMailMsgId, class RPointerArray<class CFSMailFolder> &)
-	?NewL@CFSMailMessage@@SAPAV1@ABVNmMessage@@@Z @ 60 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class NmMessage const &)
-	?HtmlBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 61 NONAME ; class CFSMailMessagePart * CFSMailMessage::HtmlBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource)
-	?ContentDescription@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 62 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDescription(void)
-	?SendMessageL@CFSMailBox@@QAEHAAVCFSMailMessage@@AAVMFSMailRequestObserver@@@Z @ 63 NONAME ; int CFSMailBox::SendMessageL(class CFSMailMessage &, class MFSMailRequestObserver &)
-	?GetFolderType@CFSMailFolderBase@@QBE?AW4TFSFolderType@@XZ @ 64 NONAME ; enum TFSFolderType CFSMailFolderBase::GetFolderType(void) const
-	?GetEmailAddress@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 65 NONAME ; class TDesC16 & CFSMailAddress::GetEmailAddress(void) const
-	?FSMailSortCriteria2NM@NmConverter@@SA?AVNmMailSortCriteria@@VTFSMailSortCriteria@@@Z @ 66 NONAME ; class NmMailSortCriteria NmConverter::FSMailSortCriteria2NM(class TFSMailSortCriteria)
-	?NewL@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 67 NONAME ; class CFSMailBox * CFSMailBox::NewL(class TFSMailMsgId)
-	?CreateMessageToSendL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 68 NONAME ; int CFSMailBox::CreateMessageToSendL(class MFSMailRequestObserver &)
-	?ContentID@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 69 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentID(void)
-	?FetchMessagesL@CFSMailFolder@@QAEHABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@@Z @ 70 NONAME ; int CFSMailFolder::FetchMessagesL(class RArray<class TFSMailMsgId> const &, enum TFSMailDetails, class MFSMailRequestObserver &)
-	?RequestHandler@CFSMailMessagePart@@QAEAAVCFSMailRequestHandler@@XZ @ 71 NONAME ; class CFSMailRequestHandler & CFSMailMessagePart::RequestHandler(void)
-	??1CFSMailFolder@@UAE@XZ @ 72 NONAME ; CFSMailFolder::~CFSMailFolder(void)
-	?toQDateTime@NmConverter@@SA?AVQDateTime@@ABVTTime@@@Z @ 73 NONAME ; class QDateTime NmConverter::toQDateTime(class TTime const &)
-	?IsRelatedTo@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 74 NONAME ; class TFSMailMsgId CFSMailMessageBase::IsRelatedTo(void) const
-	?GetContentFileL@CFSMailMessagePart@@QAE?AVRFile@@XZ @ 75 NONAME ; class RFile CFSMailMessagePart::GetContentFileL(void)
-	?AppendBCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 76 NONAME ; void CFSMailMessageBase::AppendBCCRecipient(class CFSMailAddress *)
-	?IsMRInfoSet@CFSMailMessagePart@@QAEHXZ @ 77 NONAME ; int CFSMailMessagePart::IsMRInfoSet(void)
-	??1CFSMailIterator@@UAE@XZ @ 78 NONAME ; CFSMailIterator::~CFSMailIterator(void)
-	?RemoveDownLoadedAttachmentsL@CFSMailMessagePart@@QAEXXZ @ 79 NONAME ; void CFSMailMessagePart::RemoveDownLoadedAttachmentsL(void)
-	?IsMessageL@CFSMailMessage@@UBEHXZ @ 80 NONAME ; int CFSMailMessage::IsMessageL(void) const
-	?GetNmMailbox@CFSMailBoxBase@@QAEPAVNmMailbox@@XZ @ 81 NONAME ; class NmMailbox * CFSMailBoxBase::GetNmMailbox(void)
-	?SetContentClass@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 82 NONAME ; void CFSMailMessagePart::SetContentClass(class TDesC16 const &)
-	?GetNmFolder@CFSMailFolderBase@@QAEPAVNmFolder@@XZ @ 83 NONAME ; class NmFolder * CFSMailFolderBase::GetNmFolder(void)
-	?GetFolderId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 84 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetFolderId(void) const
-	?ReadOnlyPartSize@CFSMailMessagePart@@QBEIXZ @ 85 NONAME ; unsigned int CFSMailMessagePart::ReadOnlyPartSize(void) const
-	?GetConnectionId@CFSMailBox@@QAEHAAK@Z @ 86 NONAME ; int CFSMailBox::GetConnectionId(unsigned long &)
-	?BlockMoveFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 87 NONAME ; void CFSMailFolderBase::BlockMoveFromL(class RArray<enum TFSFolderType>, enum TFSMailBoxStatus)
-	?ContentDisposition@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 88 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDisposition(void)
-	?RemoveDownLoadedAttachmentsL@CFSMailFolder@@QAEXXZ @ 89 NONAME ; void CFSMailFolder::RemoveDownLoadedAttachmentsL(void)
-	?CreateReplyMessageL@CFSMailBox@@QAEHVTFSMailMsgId@@HAAVMFSMailRequestObserver@@ABVTDesC16@@@Z @ 90 NONAME ; int CFSMailBox::CreateReplyMessageL(class TFSMailMsgId, int, class MFSMailRequestObserver &, class TDesC16 const &)
-	?NewLC@CFSMailAddress@@SAPAV1@XZ @ 91 NONAME ; class CFSMailAddress * CFSMailAddress::NewLC(void)
-	?NewL@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 92 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewL(class RPointerArray<class CImplementationInformation> &, class RPointerArray<class CFSMailPlugin> &)
-	?ChildPartsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@W4TFSMailMessagePartDataSource@1@@Z @ 93 NONAME ; void CFSMailMessagePart::ChildPartsL(class RPointerArray<class CFSMailMessagePart> &, enum CFSMailMessagePart::TFSMailMessagePartDataSource)
-	?FetchLoadState@CFSMailMessagePart@@QBE?AW4TFSPartFetchState@@XZ @ 94 NONAME ; enum TFSPartFetchState CFSMailMessagePart::FetchLoadState(void) const
-	?SetDisplayName@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 95 NONAME ; void CFSMailAddress::SetDisplayName(class TDesC16 const &)
-	?toTTime@NmConverter@@SA?AVTTime@@ABVQDateTime@@@Z @ 96 NONAME ; class TTime NmConverter::toTTime(class QDateTime const &)
-	?SetMailBoxId@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 97 NONAME ; void CFSMailMessageBase::SetMailBoxId(class TFSMailMsgId)
-	?GetFlags@CFSMailMessageBase@@QBEHXZ @ 98 NONAME ; int CFSMailMessageBase::GetFlags(void) const
-	?nmIdToMailMsgId@NmConverter@@SA?AVTFSMailMsgId@@VNmId@@@Z @ 99 NONAME ; class TFSMailMsgId NmConverter::nmIdToMailMsgId(class NmId)
-	?CopyMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@AAV2@VTFSMailMsgId@@2@Z @ 100 NONAME ; void CFSMailBox::CopyMessagesL(class RArray<class TFSMailMsgId> const &, class RArray<class TFSMailMsgId> &, class TFSMailMsgId, class TFSMailMsgId)
-	?IsConnectionAllowedWhenRoaming@CFSMailBox@@QAEHAAH@Z @ 101 NONAME ; int CFSMailBox::IsConnectionAllowedWhenRoaming(int &)
-	?ClearToRecipients@CFSMailMessageBase@@QAEXXZ @ 102 NONAME ; void CFSMailMessageBase::ClearToRecipients(void)
-	?CopyMessageAsChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@PAVCFSMailMessage@@@Z @ 103 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::CopyMessageAsChildPartL(class TFSMailMsgId, class CFSMailMessage *)
-	?ChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@@Z @ 104 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::ChildPartL(class TFSMailMsgId)
-	?GetId@CFSMailBoxBase@@QBE?AVTFSMailMsgId@@XZ @ 105 NONAME ; class TFSMailMsgId CFSMailBoxBase::GetId(void) const
-	?PreviousL@CFSMailIterator@@UAEHVTFSMailMsgId@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 106 NONAME ; int CFSMailIterator::PreviousL(class TFSMailMsgId, unsigned int, class RPointerArray<class CFSMailMessage> &)
-	?RefreshNowL@CFSMailBox@@QAEHXZ @ 107 NONAME ; int CFSMailBox::RefreshNowL(void)
-	?CancelSyncL@CFSMailBox@@QAEXXZ @ 108 NONAME ; void CFSMailBox::CancelSyncL(void)
-	?ContentDispositionParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 109 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentDispositionParameters(void)
-	?ListFolders@CFSMailBox@@QAEAAV?$RPointerArray@VCFSMailFolder@@@@XZ @ 110 NONAME ; class RPointerArray<class CFSMailFolder> & CFSMailBox::ListFolders(void)
-	?GetSettingsUid@CFSMailBoxBase@@QAE?BVTUid@@XZ @ 111 NONAME ; class TUid const CFSMailBoxBase::GetSettingsUid(void)
-	??1CFSMailMessage@@UAE@XZ @ 112 NONAME ; CFSMailMessage::~CFSMailMessage(void)
-	?PlainTextBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 113 NONAME ; class CFSMailMessagePart * CFSMailMessage::PlainTextBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource)
-	?GetStatus@CFSMailBoxBase@@QBE?AW4TFSMailBoxStatus@@XZ @ 114 NONAME ; enum TFSMailBoxStatus CFSMailBoxBase::GetStatus(void) const
-	?SetName@CFSMailBoxBase@@QAEXABVTDesC16@@@Z @ 115 NONAME ; void CFSMailBoxBase::SetName(class TDesC16 const &)
-	?GoOfflineL@CFSMailBox@@QAEXXZ @ 116 NONAME ; void CFSMailBox::GoOfflineL(void)
-	?CleanTempDirL@CFSMailRequestHandler@@QAEXXZ @ 117 NONAME ; void CFSMailRequestHandler::CleanTempDirL(void)
-	?SupportsMoveFromL@CFSMailFolder@@QAEHW4TFSFolderType@@@Z @ 118 NONAME ; int CFSMailFolder::SupportsMoveFromL(enum TFSFolderType)
-	?NewChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@ABVTDesC16@@@Z @ 119 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewChildPartL(class TFSMailMsgId, class TDesC16 const &)
-	?toRPointerArray@NmConverter@@SA?AV?$RPointerArray@VCFSMailAddress@@@@ABV?$QList@VNmAddress@@@@@Z @ 120 NONAME ; class RPointerArray<class CFSMailAddress> NmConverter::toRPointerArray(class QList<class NmAddress> const &)
-	?UpdateMessageFlagsL@CFSMailBox@@QAEHVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@@Z @ 121 NONAME ; int CFSMailBox::UpdateMessageFlagsL(class TFSMailMsgId, class RPointerArray<class CFSMailMessage> &, class MFSMailRequestObserver &)
-	?SetFolderId@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 122 NONAME ; void CFSMailMessageBase::SetFolderId(class TFSMailMsgId)
-	?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@AAVRFile@@ABVTDesC8@@@Z @ 123 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class RFile &, class TDesC8 const &)
-	?ConstructL@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 124 NONAME ; void CFSMailMessageBase::ConstructL(class TFSMailMsgId)
-	?GetLocalTextContentLC@CFSMailMessagePart@@QAEPAVHBufC16@@XZ @ 125 NONAME ; class HBufC16 * CFSMailMessagePart::GetLocalTextContentLC(void)
-	?GetMRInfo@CFSMailMessagePart@@QAEAAVMMRInfoObject@@XZ @ 126 NONAME ; class MMRInfoObject & CFSMailMessagePart::GetMRInfo(void)
-	?GetDate@CFSMailMessageBase@@QBE?AVTTime@@XZ @ 127 NONAME ; class TTime CFSMailMessageBase::GetDate(void) const
-	?SetRelatedTo@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 128 NONAME ; void CFSMailMessageBase::SetRelatedTo(class TFSMailMsgId)
-	?PreviousL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 129 NONAME ; int CFSMailIterator::PreviousL(class TDesC16 const &, unsigned int, class RPointerArray<class CFSMailMessage> &)
-	?CreateForwardMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@ABVTDesC16@@@Z @ 130 NONAME ; class CFSMailMessage * CFSMailBox::CreateForwardMessage(class TFSMailMsgId, class TDesC16 const &)
-	?SetStatus@CFSMailBoxBase@@QAEXW4TFSMailBoxStatus@@@Z @ 131 NONAME ; void CFSMailBoxBase::SetStatus(enum TFSMailBoxStatus)
-	?SetContentIDL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 132 NONAME ; void CFSMailMessagePart::SetContentIDL(class TDesC16 const &)
-	?NewLC@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 133 NONAME ; class CFSMailMessage * CFSMailMessage::NewLC(class TFSMailMsgId)
-	?GetRCLInfo@CFSMailBoxBase@@QAEXAAVTUid@@AAI@Z @ 134 NONAME ; void CFSMailBoxBase::GetRCLInfo(class TUid &, unsigned int &)
-	?MRInfoProcessorL@CFSMailBoxBase@@QAEAAVMMRInfoProcessor@@XZ @ 135 NONAME ; class MMRInfoProcessor & CFSMailBoxBase::MRInfoProcessorL(void)
-	?NewL@CFSMailAddress@@SAPAV1@ABVNmAddress@@@Z @ 136 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(class NmAddress const &)
-	?GetUnreadCount@CFSMailFolderBase@@QBEIXZ @ 137 NONAME ; unsigned int CFSMailFolderBase::GetUnreadCount(void) const
-	?SetSender@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 138 NONAME ; void CFSMailMessageBase::SetSender(class CFSMailAddress *)
-	?FindBodyPartL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@W4TFSMailMessagePartDataSource@1@@Z @ 139 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::FindBodyPartL(class TDesC16 const &, enum CFSMailMessagePart::TFSMailMessagePartDataSource)
-	?CreateForwardMessageL@CFSMailBox@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@ABVTDesC16@@@Z @ 140 NONAME ; int CFSMailBox::CreateForwardMessageL(class TFSMailMsgId, class MFSMailRequestObserver &, class TDesC16 const &)
-	?GetTempFileL@CFSMailRequestHandler@@QAE?AVRFile@@VTFSMailMsgId@@V?$TBuf@$0BAA@@@@Z @ 141 NONAME ; class RFile CFSMailRequestHandler::GetTempFileL(class TFSMailMsgId, class TBuf<256>)
-	?SetMailBoxId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 142 NONAME ; void CFSMailFolderBase::SetMailBoxId(class TFSMailMsgId)
-	?OwnMailAddress@CFSMailBoxBase@@QAEAAVCFSMailAddress@@XZ @ 143 NONAME ; class CFSMailAddress & CFSMailBoxBase::OwnMailAddress(void)
-	?SetCredentialsL@CFSMailBox@@QAEXABVTDesC16@@0@Z @ 144 NONAME ; void CFSMailBox::SetCredentialsL(class TDesC16 const &, class TDesC16 const &)
-	?SetContent@CFSMailMessagePart@@QAEXAAVTDes16@@@Z @ 145 NONAME ; void CFSMailMessagePart::SetContent(class TDes16 &)
-	?RemoveMessageL@CFSMailFolder@@QAEXVTFSMailMsgId@@@Z @ 146 NONAME ; void CFSMailFolder::RemoveMessageL(class TFSMailMsgId)
-	?NewLC@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 147 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewLC(class TFSMailMsgId)
-	?CompleteRequest@CFSMailRequestHandler@@QAEXH@Z @ 148 NONAME ; void CFSMailRequestHandler::CompleteRequest(int)
-	?GetFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 149 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetFolderId(void) const
-	?SetMRInfo@CFSMailMessagePart@@QAEXPAVMMRInfoObject@@@Z @ 150 NONAME ; void CFSMailMessagePart::SetMRInfo(class MMRInfoObject *)
-	??0CFSMailRequestHandler@@IAE@XZ @ 151 NONAME ; CFSMailRequestHandler::CFSMailRequestHandler(void)
-	?GoOnlineL@CFSMailBox@@QAEXXZ @ 152 NONAME ; void CFSMailBox::GoOnlineL(void)
-	?SetMessageCount@CFSMailFolderBase@@QAEXI@Z @ 153 NONAME ; void CFSMailFolderBase::SetMessageCount(unsigned int)
-	?NewLC@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 154 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class TFSMailMsgId, class TFSMailMsgId)
-	??1CFSMailMessagePart@@UAE@XZ @ 155 NONAME ; CFSMailMessagePart::~CFSMailMessagePart(void)
-	?NewLC@CFSMailMessagePart@@SAPAV1@ABVNmId@@ABVNmMessagePart@@@Z @ 156 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class NmId const &, class NmMessagePart const &)
-	?ContentTypeParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 157 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentTypeParameters(void)
-	?GetNmMessagePart@CFSMailMessagePart@@QAEPAVNmMessagePart@@XZ @ 158 NONAME ; class NmMessagePart * CFSMailMessagePart::GetNmMessagePart(void)
-	??1CFSMailAddress@@UAE@XZ @ 159 NONAME ; CFSMailAddress::~CFSMailAddress(void)
-	?SetParentFolderId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 160 NONAME ; void CFSMailFolderBase::SetParentFolderId(class TFSMailMsgId)
-	?AttachmentNameL@CFSMailMessagePart@@QAEAAVTDesC16@@XZ @ 161 NONAME ; class TDesC16 & CFSMailMessagePart::AttachmentNameL(void)
-	?GetToRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 162 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetToRecipients(void)
-	?SetContentDescription@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 163 NONAME ; void CFSMailMessagePart::SetContentDescription(class TDesC16 const &)
-	?NMMailSortCriteria2FS@NmConverter@@SA?AVTFSMailSortCriteria@@VNmMailSortCriteria@@@Z @ 164 NONAME ; class TFSMailSortCriteria NmConverter::NMMailSortCriteria2FS(class NmMailSortCriteria)
-	?GetContentClass@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 165 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentClass(void)
-	?GetContentType@CFSMailMessagePart@@QBEABVTDesC16@@XZ @ 166 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentType(void) const
-	?SetOwnMailAddressL@CFSMailBoxBase@@QAEXPAVCFSMailAddress@@@Z @ 167 NONAME ; void CFSMailBoxBase::SetOwnMailAddressL(class CFSMailAddress *)
-	?GetPluginByUid@CFSMailRequestHandler@@QAEPAVCFSMailPlugin@@VTFSMailMsgId@@@Z @ 168 NONAME ; class CFSMailPlugin * CFSMailRequestHandler::GetPluginByUid(class TFSMailMsgId)
-	?GetSubFolderCount@CFSMailFolderBase@@QBEIXZ @ 169 NONAME ; unsigned int CFSMailFolderBase::GetSubFolderCount(void) const
-	?SetMRInfoProcessorL@CFSMailBoxBase@@QAEXPAVMMRInfoProcessor@@@Z @ 170 NONAME ; void CFSMailBoxBase::SetMRInfoProcessorL(class MMRInfoProcessor *)
-	?FetchMessagePartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@I@Z @ 171 NONAME ; int CFSMailMessagePart::FetchMessagePartL(class TFSMailMsgId, class MFSMailRequestObserver &, unsigned int)
-	?ContentSize@CFSMailMessagePart@@QBEIXZ @ 172 NONAME ; unsigned int CFSMailMessagePart::ContentSize(void) const
-	?InitAsyncRequestL@CFSMailRequestHandler@@QAE?AVTFSPendingRequest@@VTUid@@AAVMFSMailRequestObserver@@@Z @ 173 NONAME ; class TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL(class TUid, class MFSMailRequestObserver &)
-	?toQString@NmConverter@@SA?AVQString@@ABVTDesC16@@@Z @ 174 NONAME ; class QString NmConverter::toQString(class TDesC16 const &)
-	?SetContentFromFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 175 NONAME ; void CFSMailMessagePart::SetContentFromFileL(class TDesC16 const &)
-	?GetNmAddress@CFSMailAddress@@QAE?AVNmAddress@@XZ @ 176 NONAME ; class NmAddress CFSMailAddress::GetNmAddress(void)
-	?GetBrandingIdL@CFSMailBox@@QAEAAVTDesC16@@XZ @ 177 NONAME ; class TDesC16 & CFSMailBox::GetBrandingIdL(void)
-	?NewLC@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 178 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewLC(class RPointerArray<class CImplementationInformation> &, class RPointerArray<class CFSMailPlugin> &)
-	?NewL@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 179 NONAME ; class CFSMailFolder * CFSMailFolder::NewL(class TFSMailMsgId)
-	?SetFetchedContentSize@CFSMailMessagePart@@QAEXI@Z @ 180 NONAME ; void CFSMailMessagePart::SetFetchedContentSize(unsigned int)
-	?RemoveAllRequests@CFSMailRequestHandler@@AAEXXZ @ 181 NONAME ; void CFSMailRequestHandler::RemoveAllRequests(void)
-	?SetMessagePartsStatus@CFSMailMessagePart@@QAEXW4TFSPartFetchState@@@Z @ 182 NONAME ; void CFSMailMessagePart::SetMessagePartsStatus(enum TFSPartFetchState)
-	?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 183 NONAME ; void CFSMailBox::SearchL(class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &)
-	?SetMessageId@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 184 NONAME ; void CFSMailMessageBase::SetMessageId(class TFSMailMsgId)
-	?SetContentType@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 185 NONAME ; void CFSMailMessagePart::SetContentType(class TDesC16 const &)
-	?NextL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 186 NONAME ; int CFSMailIterator::NextL(class TDesC16 const &, unsigned int, class RPointerArray<class CFSMailMessage> &)
-	?ListMessagesL@CFSMailFolder@@QAEPAVMFSMailIterator@@W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 187 NONAME ; class MFSMailIterator * CFSMailFolder::ListMessagesL(enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
-	?NewLC@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 188 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewLC(class TFSMailMsgId)
-	?AppendAttachmentsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 189 NONAME ; void CFSMailMessagePart::AppendAttachmentsL(class RPointerArray<class CFSMailMessagePart> &)
-	?SetFolderName@CFSMailFolderBase@@QAEXABVTDesC16@@@Z @ 190 NONAME ; void CFSMailFolderBase::SetFolderName(class TDesC16 const &)
-	?AppendToRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 191 NONAME ; void CFSMailMessageBase::AppendToRecipient(class CFSMailAddress *)
-	?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@ABVTDesC16@@VTFSMailMsgId@@@Z @ 192 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId)
-	?SupportsCopyFromL@CFSMailFolder@@QAEHW4TFSFolderType@@@Z @ 193 NONAME ; int CFSMailFolder::SupportsCopyFromL(enum TFSFolderType)
-	?SetSettingsUid@CFSMailBoxBase@@QAEXVTUid@@@Z @ 194 NONAME ; void CFSMailBoxBase::SetSettingsUid(class TUid)
-	?GetUnseenCount@CFSMailFolderBase@@QBEIXZ @ 195 NONAME ; unsigned int CFSMailFolderBase::GetUnseenCount(void) const
-	?SetReadOnlyPartSize@CFSMailMessagePart@@QAEXI@Z @ 196 NONAME ; void CFSMailMessagePart::SetReadOnlyPartSize(unsigned int)
-	?SetDate@CFSMailMessageBase@@QAEXVTTime@@@Z @ 197 NONAME ; void CFSMailMessageBase::SetDate(class TTime)
-	?NewL@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 198 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class TFSMailMsgId)
-	?mailMsgIdToNmId@NmConverter@@SA?AVNmId@@VTFSMailMsgId@@@Z @ 199 NONAME ; class NmId NmConverter::mailMsgIdToNmId(class TFSMailMsgId)
-	?SetEmailAddress@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 200 NONAME ; void CFSMailAddress::SetEmailAddress(class TDesC16 const &)
-	?GetLastSyncStatusL@CFSMailBox@@QAE?AVTFSProgress@@XZ @ 201 NONAME ; class TFSProgress CFSMailBox::GetLastSyncStatusL(void)
-	?NextL@CFSMailIterator@@UAEHVTFSMailMsgId@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 202 NONAME ; int CFSMailIterator::NextL(class TFSMailMsgId, unsigned int, class RPointerArray<class CFSMailMessage> &)
-	?SetUnreadCount@CFSMailFolderBase@@QAEXI@Z @ 203 NONAME ; void CFSMailFolderBase::SetUnreadCount(unsigned int)
-	?SetRCLInfo@CFSMailBoxBase@@QAEXVTUid@@I@Z @ 204 NONAME ; void CFSMailBoxBase::SetRCLInfo(class TUid, unsigned int)
-	?qstringToHBufCLC@NmConverter@@SAPAVHBufC16@@ABVQString@@@Z @ 205 NONAME ; class HBufC16 * NmConverter::qstringToHBufCLC(class QString const &)
-	?NewLC@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 206 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewLC(class TFSMailMsgId)
-	?AppendCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 207 NONAME ; void CFSMailMessageBase::AppendCCRecipient(class CFSMailAddress *)
-	?HasCapability@CFSMailBox@@QBEHW4TFSMailBoxCapabilities@@@Z @ 208 NONAME ; int CFSMailBox::HasCapability(enum TFSMailBoxCapabilities) const
-	?GetMessageId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 209 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMessageId(void) const
-	?GetSubject@CFSMailMessageBase@@QBEAAVTDesC16@@XZ @ 210 NONAME ; class TDesC16 & CFSMailMessageBase::GetSubject(void) const
-	?NewL@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 211 NONAME ; class CFSMailIterator * CFSMailIterator::NewL(class MFSMailIterator &, class CFSMailRequestHandler *)
-	?RefreshNowL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 212 NONAME ; int CFSMailBox::RefreshNowL(class MFSMailRequestObserver &)
-	??1CFSMailRequestHandler@@UAE@XZ @ 213 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(void)
-	?SetSubFolderCount@CFSMailFolderBase@@QAEXI@Z @ 214 NONAME ; void CFSMailFolderBase::SetSubFolderCount(unsigned int)
-	?ClearCcRecipients@CFSMailMessageBase@@QAEXXZ @ 215 NONAME ; void CFSMailMessageBase::ClearCcRecipients(void)
-	?GetPartId@CFSMailMessagePart@@QBE?AVTFSMailMsgId@@XZ @ 216 NONAME ; class TFSMailMsgId CFSMailMessagePart::GetPartId(void) const
-	?RemoveDownLoadedAttachmentsL@CFSMailBox@@QAEXXZ @ 217 NONAME ; void CFSMailBox::RemoveDownLoadedAttachmentsL(void)
-	?GetReplyToAddress@CFSMailMessageBase@@QAEABVCFSMailAddress@@XZ @ 218 NONAME ; class CFSMailAddress const & CFSMailMessageBase::GetReplyToAddress(void)
-	?GetMailBoxId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 219 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetMailBoxId(void) const
-	?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@V?$RArray@VTFSMailMsgId@@@@@Z @ 220 NONAME ; void CFSMailBox::SearchL(class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &, class RArray<class TFSMailMsgId>)
-	?FetchedContentSize@CFSMailMessagePart@@QBEIXZ @ 221 NONAME ; unsigned int CFSMailMessagePart::FetchedContentSize(void) const
-	??1CFSMailBox@@UAE@XZ @ 222 NONAME ; CFSMailBox::~CFSMailBox(void)
-	?GetSubFoldersL@CFSMailFolder@@QAEXAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 223 NONAME ; void CFSMailFolder::GetSubFoldersL(class RPointerArray<class CFSMailFolder> &)
-	?SetFlag@CFSMailMessageBase@@QAEXH@Z @ 224 NONAME ; void CFSMailMessageBase::SetFlag(int)
-	?ConstructL@CFSMailRequestHandler@@IAEXV?$RPointerArray@VCImplementationInformation@@@@V?$RPointerArray@VCFSMailPlugin@@@@@Z @ 225 NONAME ; void CFSMailRequestHandler::ConstructL(class RPointerArray<class CImplementationInformation>, class RPointerArray<class CFSMailPlugin>)
-	?NewLC@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 226 NONAME ; class CFSMailIterator * CFSMailIterator::NewLC(class MFSMailIterator &, class CFSMailRequestHandler *)
-	?SetContentSize@CFSMailMessagePart@@QAEXI@Z @ 227 NONAME ; void CFSMailMessagePart::SetContentSize(unsigned int)
-	?GetCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 228 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetCCRecipients(void)
-	?NewL@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 229 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewL(class TFSMailMsgId, class TFSMailMsgId)
-	?AddNewAttachmentL@CFSMailMessage@@QAEHABVTDesC16@@AAVMFSMailRequestObserver@@@Z @ 230 NONAME ; int CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class MFSMailRequestObserver &)
+	?GetNmMessageEnvelope@CFSMailMessageBase@@QAEPAVNmMessageEnvelope@@XZ @ 14 NONAME ; class NmMessageEnvelope * CFSMailMessageBase::GetNmMessageEnvelope(void)
+	?GetName@CFSMailBoxBase@@QBEAAVTDesC16@@XZ @ 15 NONAME ; class TDesC16 & CFSMailBoxBase::GetName(void) const
+	?SaveMessageL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 16 NONAME ; int CFSMailMessage::SaveMessageL(class MFSMailRequestObserver &)
+	?AttachmentListL@CFSMailMessage@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 17 NONAME ; void CFSMailMessage::AttachmentListL(class RPointerArray<class CFSMailMessagePart> &)
+	?NewL@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 18 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewL(class TFSMailMsgId)
+	?FetchMessagesPartsL@CFSMailMessagePart@@QAEHABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@I@Z @ 19 NONAME ; int CFSMailMessagePart::FetchMessagesPartsL(class RArray<class TFSMailMsgId> const &, class MFSMailRequestObserver &, unsigned int)
+	?AddPluginL@CFSMailRequestHandler@@QAEXVTUid@@PAVCFSMailPlugin@@@Z @ 20 NONAME ; void CFSMailRequestHandler::AddPluginL(class TUid, class CFSMailPlugin *)
+	?CurrentSyncState@CFSMailBox@@QBE?AW4TSSMailSyncState@@XZ @ 21 NONAME ; enum TSSMailSyncState CFSMailBox::CurrentSyncState(void) const
+	?SetAttachmentNameL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 22 NONAME ; void CFSMailMessagePart::SetAttachmentNameL(class TDesC16 const &)
+	?SaveMessagePartsL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 23 NONAME ; int CFSMailMessage::SaveMessagePartsL(class MFSMailRequestObserver &)
+	?MoveMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@1@Z @ 24 NONAME ; void CFSMailBox::MoveMessagesL(class RArray<class TFSMailMsgId> const &, class TFSMailMsgId, class TFSMailMsgId)
+	?GetFolderName@CFSMailFolderBase@@QBEAAVTDesC16@@XZ @ 25 NONAME ; class TDesC16 & CFSMailFolderBase::GetFolderName(void) const
+	?GetDisplayName@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 26 NONAME ; class TDesC16 & CFSMailAddress::GetDisplayName(void) const
+	?SetSubject@CFSMailMessageBase@@QAEXABVTDesC16@@@Z @ 27 NONAME ; void CFSMailMessageBase::SetSubject(class TDesC16 const &)
+	?CreateReplyMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@HABVTDesC16@@@Z @ 28 NONAME ; class CFSMailMessage * CFSMailBox::CreateReplyMessage(class TFSMailMsgId, int, class TDesC16 const &)
+	??1CFSMailBoxBase@@UAE@XZ @ 29 NONAME ; CFSMailBoxBase::~CFSMailBoxBase(void)
+	?NewLC@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 30 NONAME ; class CFSMailBox * CFSMailBox::NewLC(class TFSMailMsgId)
+	?ConstructL@CFSMailMessageBase@@IAEXABVNmMessageEnvelope@@@Z @ 31 NONAME ; void CFSMailMessageBase::ConstructL(class NmMessageEnvelope const &)
+	?NewLC@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 32 NONAME ; class CFSMailFolder * CFSMailFolder::NewLC(class TFSMailMsgId)
+	?Uid@CEmailExtension@@QBE?AVTUid@@XZ @ 33 NONAME ; class TUid CEmailExtension::Uid(void) const
+	?GetNmMessage@CFSMailMessage@@QAEPAVNmMessage@@XZ @ 34 NONAME ; class NmMessage * CFSMailMessage::GetNmMessage(void)
+	?GetContentToBufferL@CFSMailMessagePart@@QAEXAAVTDes16@@I@Z @ 35 NONAME ; void CFSMailMessagePart::GetContentToBufferL(class TDes16 &, unsigned int)
+	?BlockCopyFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 36 NONAME ; void CFSMailFolderBase::BlockCopyFromL(class RArray<enum TFSFolderType>, enum TFSMailBoxStatus)
+	?ClearSearchResultCache@CFSMailBox@@QAEXXZ @ 37 NONAME ; void CFSMailBox::ClearSearchResultCache(void)
+	?CancelRequestL@CFSMailRequestHandler@@QAEXH@Z @ 38 NONAME ; void CFSMailRequestHandler::CancelRequestL(int)
+	?ExtensionL@CExtendableEmail@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 39 NONAME ; class CEmailExtension * CExtendableEmail::ExtensionL(class TUid const &)
+	?ListFolders@CFSMailBox@@QAEXVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 40 NONAME ; void CFSMailBox::ListFolders(class TFSMailMsgId, class RPointerArray<class CFSMailFolder> &)
+	?NewL@CFSMailMessage@@SAPAV1@ABVNmMessage@@@Z @ 41 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class NmMessage const &)
+	?HtmlBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 42 NONAME ; class CFSMailMessagePart * CFSMailMessage::HtmlBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource)
+	?GetEmailAddress@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 43 NONAME ; class TDesC16 & CFSMailAddress::GetEmailAddress(void) const
+	?FSMailSortCriteria2NM@NmConverter@@SA?AVNmMailSortCriteria@@VTFSMailSortCriteria@@@Z @ 44 NONAME ; class NmMailSortCriteria NmConverter::FSMailSortCriteria2NM(class TFSMailSortCriteria)
+	?NewL@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 45 NONAME ; class CFSMailBox * CFSMailBox::NewL(class TFSMailMsgId)
+	?CreateMessageToSendL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 46 NONAME ; int CFSMailBox::CreateMessageToSendL(class MFSMailRequestObserver &)
+	?ContentID@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 47 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentID(void)
+	?RemoveChildPartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@@Z @ 48 NONAME ; int CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId, class MFSMailRequestObserver &)
+	??1CFSMailFolder@@UAE@XZ @ 49 NONAME ; CFSMailFolder::~CFSMailFolder(void)
+	?IsRelatedTo@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 50 NONAME ; class TFSMailMsgId CFSMailMessageBase::IsRelatedTo(void) const
+	?GetContentFileL@CFSMailMessagePart@@QAE?AVRFile@@XZ @ 51 NONAME ; class RFile CFSMailMessagePart::GetContentFileL(void)
+	?AppendBCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 52 NONAME ; void CFSMailMessageBase::AppendBCCRecipient(class CFSMailAddress *)
+	?ExtensionL@CFSMailFolder@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 53 NONAME ; class CEmailExtension * CFSMailFolder::ExtensionL(class TUid const &)
+	??1CFSMailIterator@@UAE@XZ @ 54 NONAME ; CFSMailIterator::~CFSMailIterator(void)
+	?RemoveDownLoadedAttachmentsL@CFSMailMessagePart@@QAEXXZ @ 55 NONAME ; void CFSMailMessagePart::RemoveDownLoadedAttachmentsL(void)
+	?IsMessageL@CFSMailMessage@@UBEHXZ @ 56 NONAME ; int CFSMailMessage::IsMessageL(void) const
+	?GetNmMailbox@CFSMailBoxBase@@QAEPAVNmMailbox@@XZ @ 57 NONAME ; class NmMailbox * CFSMailBoxBase::GetNmMailbox(void)
+	?CreateReplyMessageL@CFSMailBox@@QAEHVTFSMailMsgId@@HAAVMFSMailRequestObserver@@ABVTDesC16@@@Z @ 58 NONAME ; int CFSMailBox::CreateReplyMessageL(class TFSMailMsgId, int, class MFSMailRequestObserver &, class TDesC16 const &)
+	?NewL@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 59 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewL(class RPointerArray<class CImplementationInformation> &, class RPointerArray<class CFSMailPlugin> &)
+	?FetchLoadState@CFSMailMessagePart@@QBE?AW4TFSPartFetchState@@XZ @ 60 NONAME ; enum TFSPartFetchState CFSMailMessagePart::FetchLoadState(void) const
+	?toTTime@NmConverter@@SA?AVTTime@@ABVQDateTime@@@Z @ 61 NONAME ; class TTime NmConverter::toTTime(class QDateTime const &)
+	?RequestHandler@CFSMailMessageBase@@QAEAAVCFSMailRequestHandler@@XZ @ 62 NONAME ; class CFSMailRequestHandler & CFSMailMessageBase::RequestHandler(void)
+	?ContentTypeMatches@CFSMailMessagePart@@QAEHABVTDesC16@@@Z @ 63 NONAME ; int CFSMailMessagePart::ContentTypeMatches(class TDesC16 const &)
+	?ReleaseExtension@CFSMailFolder@@UAEXPAVCEmailExtension@@@Z @ 64 NONAME ; void CFSMailFolder::ReleaseExtension(class CEmailExtension *)
+	?nmIdToMailMsgId@NmConverter@@SA?AVTFSMailMsgId@@VNmId@@@Z @ 65 NONAME ; class TFSMailMsgId NmConverter::nmIdToMailMsgId(class NmId)
+	?ReleaseExtension@CExtendableEmail@@UAEXPAVCEmailExtension@@@Z @ 66 NONAME ; void CExtendableEmail::ReleaseExtension(class CEmailExtension *)
+	?ChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@@Z @ 67 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::ChildPartL(class TFSMailMsgId)
+	?GetId@CFSMailBoxBase@@QBE?AVTFSMailMsgId@@XZ @ 68 NONAME ; class TFSMailMsgId CFSMailBoxBase::GetId(void) const
+	?RefreshNowL@CFSMailBox@@QAEHXZ @ 69 NONAME ; int CFSMailBox::RefreshNowL(void)
+	?ContentDispositionParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 70 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentDispositionParameters(void)
+	?GetSettingsUid@CFSMailBoxBase@@QAE?BVTUid@@XZ @ 71 NONAME ; class TUid const CFSMailBoxBase::GetSettingsUid(void)
+	??1CFSMailMessage@@UAE@XZ @ 72 NONAME ; CFSMailMessage::~CFSMailMessage(void)
+	?GetStatus@CFSMailBoxBase@@QBE?AW4TFSMailBoxStatus@@XZ @ 73 NONAME ; enum TFSMailBoxStatus CFSMailBoxBase::GetStatus(void) const
+	?GoOfflineL@CFSMailBox@@QAEXXZ @ 74 NONAME ; void CFSMailBox::GoOfflineL(void)
+	?NewChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@ABVTDesC16@@@Z @ 75 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewChildPartL(class TFSMailMsgId, class TDesC16 const &)
+	?SetFolderId@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 76 NONAME ; void CFSMailMessageBase::SetFolderId(class TFSMailMsgId)
+	?Remove@TEmailExtensions@@QAEXPBVCEmailExtension@@@Z @ 77 NONAME ; void TEmailExtensions::Remove(class CEmailExtension const *)
+	?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@AAVRFile@@ABVTDesC8@@@Z @ 78 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class RFile &, class TDesC8 const &)
+	?ConstructL@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 79 NONAME ; void CFSMailMessageBase::ConstructL(class TFSMailMsgId)
+	?GetLocalTextContentLC@CFSMailMessagePart@@QAEPAVHBufC16@@XZ @ 80 NONAME ; class HBufC16 * CFSMailMessagePart::GetLocalTextContentLC(void)
+	?GetMRInfo@CFSMailMessagePart@@QAEAAVMMRInfoObject@@XZ @ 81 NONAME ; class MMRInfoObject & CFSMailMessagePart::GetMRInfo(void)
+	?SetRelatedTo@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 82 NONAME ; void CFSMailMessageBase::SetRelatedTo(class TFSMailMsgId)
+	?CreateForwardMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@ABVTDesC16@@@Z @ 83 NONAME ; class CFSMailMessage * CFSMailBox::CreateForwardMessage(class TFSMailMsgId, class TDesC16 const &)
+	?SetStatus@CFSMailBoxBase@@QAEXW4TFSMailBoxStatus@@@Z @ 84 NONAME ; void CFSMailBoxBase::SetStatus(enum TFSMailBoxStatus)
+	?SetContentIDL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 85 NONAME ; void CFSMailMessagePart::SetContentIDL(class TDesC16 const &)
+	?NewL@CFSMailAddress@@SAPAV1@ABVNmAddress@@@Z @ 86 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(class NmAddress const &)
+	?SetSender@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 87 NONAME ; void CFSMailMessageBase::SetSender(class CFSMailAddress *)
+	?SetCredentialsL@CFSMailBox@@QAEXABVTDesC16@@0@Z @ 88 NONAME ; void CFSMailBox::SetCredentialsL(class TDesC16 const &, class TDesC16 const &)
+	?NewLC@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 89 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewLC(class TFSMailMsgId)
+	??0CFSMailRequestHandler@@IAE@XZ @ 90 NONAME ; CFSMailRequestHandler::CFSMailRequestHandler(void)
+	??1CFSMailAddress@@UAE@XZ @ 91 NONAME ; CFSMailAddress::~CFSMailAddress(void)
+	?SetParentFolderId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 92 NONAME ; void CFSMailFolderBase::SetParentFolderId(class TFSMailMsgId)
+	?AttachmentNameL@CFSMailMessagePart@@QAEAAVTDesC16@@XZ @ 93 NONAME ; class TDesC16 & CFSMailMessagePart::AttachmentNameL(void)
+	?GetToRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 94 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetToRecipients(void)
+	?GetContentClass@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 95 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentClass(void)
+	?GetContentType@CFSMailMessagePart@@QBEABVTDesC16@@XZ @ 96 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentType(void) const
+	?SetOwnMailAddressL@CFSMailBoxBase@@QAEXPAVCFSMailAddress@@@Z @ 97 NONAME ; void CFSMailBoxBase::SetOwnMailAddressL(class CFSMailAddress *)
+	?GetSubFolderCount@CFSMailFolderBase@@QBEIXZ @ 98 NONAME ; unsigned int CFSMailFolderBase::GetSubFolderCount(void) const
+	?SetMRInfoProcessorL@CFSMailBoxBase@@QAEXPAVMMRInfoProcessor@@@Z @ 99 NONAME ; void CFSMailBoxBase::SetMRInfoProcessorL(class MMRInfoProcessor *)
+	?ContentSize@CFSMailMessagePart@@QBEIXZ @ 100 NONAME ; unsigned int CFSMailMessagePart::ContentSize(void) const
+	?toQString@NmConverter@@SA?AVQString@@ABVTDesC16@@@Z @ 101 NONAME ; class QString NmConverter::toQString(class TDesC16 const &)
+	?NewLC@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 102 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewLC(class RPointerArray<class CImplementationInformation> &, class RPointerArray<class CFSMailPlugin> &)
+	?SetMessagePartsStatus@CFSMailMessagePart@@QAEXW4TFSPartFetchState@@@Z @ 103 NONAME ; void CFSMailMessagePart::SetMessagePartsStatus(enum TFSPartFetchState)
+	?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 104 NONAME ; void CFSMailBox::SearchL(class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &)
+	?SetContentType@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 105 NONAME ; void CFSMailMessagePart::SetContentType(class TDesC16 const &)
+	??_ECExtendableEmail@@UAE@I@Z @ 106 NONAME ; CExtendableEmail::~CExtendableEmail(unsigned int)
+	?NewLC@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 107 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewLC(class TFSMailMsgId)
+	?AppendAttachmentsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 108 NONAME ; void CFSMailMessagePart::AppendAttachmentsL(class RPointerArray<class CFSMailMessagePart> &)
+	?AppendToRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 109 NONAME ; void CFSMailMessageBase::AppendToRecipient(class CFSMailAddress *)
+	?SupportsCopyFromL@CFSMailFolder@@QAEHW4TFSFolderType@@@Z @ 110 NONAME ; int CFSMailFolder::SupportsCopyFromL(enum TFSFolderType)
+	?NewL@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 111 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class TFSMailMsgId)
+	?GetLastSyncStatusL@CFSMailBox@@QAE?AVTFSProgress@@XZ @ 112 NONAME ; class TFSProgress CFSMailBox::GetLastSyncStatusL(void)
+	?NextL@CFSMailIterator@@UAEHVTFSMailMsgId@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 113 NONAME ; int CFSMailIterator::NextL(class TFSMailMsgId, unsigned int, class RPointerArray<class CFSMailMessage> &)
+	?NewLC@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 114 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewLC(class TFSMailMsgId)
+	?SetSubFolderCount@CFSMailFolderBase@@QAEXI@Z @ 115 NONAME ; void CFSMailFolderBase::SetSubFolderCount(unsigned int)
+	?RemoveDownLoadedAttachmentsL@CFSMailBox@@QAEXXZ @ 116 NONAME ; void CFSMailBox::RemoveDownLoadedAttachmentsL(void)
+	?GetMailBoxId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 117 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetMailBoxId(void) const
+	?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@V?$RArray@VTFSMailMsgId@@@@@Z @ 118 NONAME ; void CFSMailBox::SearchL(class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &, class RArray<class TFSMailMsgId>)
+	?FetchedContentSize@CFSMailMessagePart@@QBEIXZ @ 119 NONAME ; unsigned int CFSMailMessagePart::FetchedContentSize(void) const
+	?GetSubFoldersL@CFSMailFolder@@QAEXAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 120 NONAME ; void CFSMailFolder::GetSubFoldersL(class RPointerArray<class CFSMailFolder> &)
+	?ConstructL@CFSMailRequestHandler@@IAEXV?$RPointerArray@VCImplementationInformation@@@@V?$RPointerArray@VCFSMailPlugin@@@@@Z @ 121 NONAME ; void CFSMailRequestHandler::ConstructL(class RPointerArray<class CImplementationInformation>, class RPointerArray<class CFSMailPlugin>)
+	?NewLC@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 122 NONAME ; class CFSMailIterator * CFSMailIterator::NewLC(class MFSMailIterator &, class CFSMailRequestHandler *)
+	?SetContentSize@CFSMailMessagePart@@QAEXI@Z @ 123 NONAME ; void CFSMailMessagePart::SetContentSize(unsigned int)
+	?GetTempDirL@CFSMailRequestHandler@@QAEAAVTDesC16@@XZ @ 124 NONAME ; class TDesC16 & CFSMailRequestHandler::GetTempDirL(void)
+	?ClearBccRecipients@CFSMailMessageBase@@QAEXXZ @ 125 NONAME ; void CFSMailMessageBase::ClearBccRecipients(void)
+	?CancelSearch@CFSMailBox@@QAEXXZ @ 126 NONAME ; void CFSMailBox::CancelSearch(void)
+	?SetUnseenCount@CFSMailFolderBase@@QAEXI@Z @ 127 NONAME ; void CFSMailFolderBase::SetUnseenCount(unsigned int)
+	?GetMailBoxStatus@CFSMailBox@@QAE?AW4TFSMailBoxStatus@@XZ @ 128 NONAME ; enum TFSMailBoxStatus CFSMailBox::GetMailBoxStatus(void)
+	?SaveMessageL@CFSMailMessage@@QAEXXZ @ 129 NONAME ; void CFSMailMessage::SaveMessageL(void)
+	?IsFlagSet@CFSMailMessageBase@@QBEHH@Z @ 130 NONAME ; int CFSMailMessageBase::IsFlagSet(int) const
+	?SetReplyToAddress@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 131 NONAME ; void CFSMailMessageBase::SetReplyToAddress(class CFSMailAddress *)
+	?GetBCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 132 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetBCCRecipients(void)
+	?NewL@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 133 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewL(class TFSMailMsgId)
+	??1CFSMailMessageBase@@UAE@XZ @ 134 NONAME ; CFSMailMessageBase::~CFSMailMessageBase(void)
+	?SetContentDisposition@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 135 NONAME ; void CFSMailMessagePart::SetContentDisposition(class TDesC16 const &)
+	?NewL@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 136 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewL(class TFSMailMsgId)
+	?GetMessageCount@CFSMailFolderBase@@QBEIXZ @ 137 NONAME ; unsigned int CFSMailFolderBase::GetMessageCount(void) const
+	?RemoveChildPartL@CFSMailMessagePart@@QAEXVTFSMailMsgId@@@Z @ 138 NONAME ; void CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId)
+	?ConstructL@CFSMailFolderBase@@IAEXVTFSMailMsgId@@@Z @ 139 NONAME ; void CFSMailFolderBase::ConstructL(class TFSMailMsgId)
+	?CopyContentFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 140 NONAME ; void CFSMailMessagePart::CopyContentFileL(class TDesC16 const &)
+	?GetParentFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 141 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetParentFolderId(void) const
+	?RemoveContentL@CFSMailMessagePart@@QAEXXZ @ 142 NONAME ; void CFSMailMessagePart::RemoveContentL(void)
+	?ReleaseExtension@CFSMailMessageBase@@UAEXPAVCEmailExtension@@@Z @ 143 NONAME ; void CFSMailMessageBase::ReleaseExtension(class CEmailExtension *)
+	??_ECFSMailRequestHandler@@UAE@I@Z @ 144 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(unsigned int)
+	?IsMessageL@CFSMailMessagePart@@UBEHXZ @ 145 NONAME ; int CFSMailMessagePart::IsMessageL(void) const
+	?NewL@CFSMailAddress@@SAPAV1@XZ @ 146 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(void)
+	?AddNewAttachmentL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@VTFSMailMsgId@@0@Z @ 147 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId, class TDesC16 const &)
+	?GetSender@CFSMailMessageBase@@QBEPAVCFSMailAddress@@XZ @ 148 NONAME ; class CFSMailAddress * CFSMailMessageBase::GetSender(void) const
+	?ExtensionL@CFSMailBox@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 149 NONAME ; class CEmailExtension * CFSMailBox::ExtensionL(class TUid const &)
+	?GetMailBoxId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 150 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMailBoxId(void) const
+	?ContentDescription@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 151 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDescription(void)
+	?SendMessageL@CFSMailBox@@QAEHAAVCFSMailMessage@@AAVMFSMailRequestObserver@@@Z @ 152 NONAME ; int CFSMailBox::SendMessageL(class CFSMailMessage &, class MFSMailRequestObserver &)
+	?GetFolderType@CFSMailFolderBase@@QBE?AW4TFSFolderType@@XZ @ 153 NONAME ; enum TFSFolderType CFSMailFolderBase::GetFolderType(void) const
+	?FetchMessagesL@CFSMailFolder@@QAEHABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@@Z @ 154 NONAME ; int CFSMailFolder::FetchMessagesL(class RArray<class TFSMailMsgId> const &, enum TFSMailDetails, class MFSMailRequestObserver &)
+	?AddNewAttachmentL@CFSMailMessage@@QAEHABVTDesC16@@AAVMFSMailRequestObserver@@@Z @ 155 NONAME ; int CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class MFSMailRequestObserver &)
+	?toQDateTime@NmConverter@@SA?AVQDateTime@@ABVTTime@@@Z @ 156 NONAME ; class QDateTime NmConverter::toQDateTime(class TTime const &)
+	?IsMRInfoSet@CFSMailMessagePart@@QAEHXZ @ 157 NONAME ; int CFSMailMessagePart::IsMRInfoSet(void)
+	?SetContentClass@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 158 NONAME ; void CFSMailMessagePart::SetContentClass(class TDesC16 const &)
+	?GetNmFolder@CFSMailFolderBase@@QAEPAVNmFolder@@XZ @ 159 NONAME ; class NmFolder * CFSMailFolderBase::GetNmFolder(void)
+	?GetFolderId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 160 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetFolderId(void) const
+	?ContentDisposition@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 161 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDisposition(void)
+	?BlockMoveFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 162 NONAME ; void CFSMailFolderBase::BlockMoveFromL(class RArray<enum TFSFolderType>, enum TFSMailBoxStatus)
+	?GetConnectionId@CFSMailBox@@QAEHAAK@Z @ 163 NONAME ; int CFSMailBox::GetConnectionId(unsigned long &)
+	?ReadOnlyPartSize@CFSMailMessagePart@@QBEIXZ @ 164 NONAME ; unsigned int CFSMailMessagePart::ReadOnlyPartSize(void) const
+	?RemoveDownLoadedAttachmentsL@CFSMailFolder@@QAEXXZ @ 165 NONAME ; void CFSMailFolder::RemoveDownLoadedAttachmentsL(void)
+	?NewLC@CFSMailAddress@@SAPAV1@XZ @ 166 NONAME ; class CFSMailAddress * CFSMailAddress::NewLC(void)
+	?ChildPartsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@W4TFSMailMessagePartDataSource@1@@Z @ 167 NONAME ; void CFSMailMessagePart::ChildPartsL(class RPointerArray<class CFSMailMessagePart> &, enum CFSMailMessagePart::TFSMailMessagePartDataSource)
+	?SetDisplayName@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 168 NONAME ; void CFSMailAddress::SetDisplayName(class TDesC16 const &)
+	?SetMailBoxId@CFSMailMessageBase@@QAEXVTFSMailMsgId@@@Z @ 169 NONAME ; void CFSMailMessageBase::SetMailBoxId(class TFSMailMsgId)
+	?GetFlags@CFSMailMessageBase@@QBEHXZ @ 170 NONAME ; int CFSMailMessageBase::GetFlags(void) const
+	?CopyMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@AAV2@VTFSMailMsgId@@2@Z @ 171 NONAME ; void CFSMailBox::CopyMessagesL(class RArray<class TFSMailMsgId> const &, class RArray<class TFSMailMsgId> &, class TFSMailMsgId, class TFSMailMsgId)
+	?ClearToRecipients@CFSMailMessageBase@@QAEXXZ @ 172 NONAME ; void CFSMailMessageBase::ClearToRecipients(void)
+	?IsConnectionAllowedWhenRoaming@CFSMailBox@@QAEHAAH@Z @ 173 NONAME ; int CFSMailBox::IsConnectionAllowedWhenRoaming(int &)
+	?CopyMessageAsChildPartL@CFSMailMessagePart@@QAEPAV1@VTFSMailMsgId@@PAVCFSMailMessage@@@Z @ 174 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::CopyMessageAsChildPartL(class TFSMailMsgId, class CFSMailMessage *)
+	?PreviousL@CFSMailIterator@@UAEHVTFSMailMsgId@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 175 NONAME ; int CFSMailIterator::PreviousL(class TFSMailMsgId, unsigned int, class RPointerArray<class CFSMailMessage> &)
+	?CancelSyncL@CFSMailBox@@QAEXXZ @ 176 NONAME ; void CFSMailBox::CancelSyncL(void)
+	?ListFolders@CFSMailBox@@QAEAAV?$RPointerArray@VCFSMailFolder@@@@XZ @ 177 NONAME ; class RPointerArray<class CFSMailFolder> & CFSMailBox::ListFolders(void)
+	?PlainTextBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 178 NONAME ; class CFSMailMessagePart * CFSMailMessage::PlainTextBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource)
+	??0CExtendableEmail@@IAE@XZ @ 179 NONAME ; CExtendableEmail::CExtendableEmail(void)
+	?SetName@CFSMailBoxBase@@QAEXABVTDesC16@@@Z @ 180 NONAME ; void CFSMailBoxBase::SetName(class TDesC16 const &)
+	?CleanTempDirL@CFSMailRequestHandler@@QAEXXZ @ 181 NONAME ; void CFSMailRequestHandler::CleanTempDirL(void)
+	?SupportsMoveFromL@CFSMailFolder@@QAEHW4TFSFolderType@@@Z @ 182 NONAME ; int CFSMailFolder::SupportsMoveFromL(enum TFSFolderType)
+	?toRPointerArray@NmConverter@@SA?AV?$RPointerArray@VCFSMailAddress@@@@ABV?$QList@VNmAddress@@@@@Z @ 183 NONAME ; class RPointerArray<class CFSMailAddress> NmConverter::toRPointerArray(class QList<class NmAddress> const &)
+	?UpdateMessageFlagsL@CFSMailBox@@QAEHVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@@Z @ 184 NONAME ; int CFSMailBox::UpdateMessageFlagsL(class TFSMailMsgId, class RPointerArray<class CFSMailMessage> &, class MFSMailRequestObserver &)
+	?GetDate@CFSMailMessageBase@@QBE?AVTTime@@XZ @ 185 NONAME ; class TTime CFSMailMessageBase::GetDate(void) const
+	?PreviousL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 186 NONAME ; int CFSMailIterator::PreviousL(class TDesC16 const &, unsigned int, class RPointerArray<class CFSMailMessage> &)
+	?ReleaseExtension@CFSMailBox@@UAEXPAVCEmailExtension@@@Z @ 187 NONAME ; void CFSMailBox::ReleaseExtension(class CEmailExtension *)
+	?NewLC@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 188 NONAME ; class CFSMailMessage * CFSMailMessage::NewLC(class TFSMailMsgId)
+	?GetRCLInfo@CFSMailBoxBase@@QAEXAAVTUid@@AAI@Z @ 189 NONAME ; void CFSMailBoxBase::GetRCLInfo(class TUid &, unsigned int &)
+	?MRInfoProcessorL@CFSMailBoxBase@@QAEAAVMMRInfoProcessor@@XZ @ 190 NONAME ; class MMRInfoProcessor & CFSMailBoxBase::MRInfoProcessorL(void)
+	?GetUnreadCount@CFSMailFolderBase@@QBEIXZ @ 191 NONAME ; unsigned int CFSMailFolderBase::GetUnreadCount(void) const
+	?FindBodyPartL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@W4TFSMailMessagePartDataSource@1@@Z @ 192 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::FindBodyPartL(class TDesC16 const &, enum CFSMailMessagePart::TFSMailMessagePartDataSource)
+	?GetTempFileL@CFSMailRequestHandler@@QAE?AVRFile@@VTFSMailMsgId@@V?$TBuf@$0BAA@@@@Z @ 193 NONAME ; class RFile CFSMailRequestHandler::GetTempFileL(class TFSMailMsgId, class TBuf<256>)
+	?CreateForwardMessageL@CFSMailBox@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@ABVTDesC16@@@Z @ 194 NONAME ; int CFSMailBox::CreateForwardMessageL(class TFSMailMsgId, class MFSMailRequestObserver &, class TDesC16 const &)
+	?OwnMailAddress@CFSMailBoxBase@@QAEAAVCFSMailAddress@@XZ @ 195 NONAME ; class CFSMailAddress & CFSMailBoxBase::OwnMailAddress(void)
+	?SetMailBoxId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 196 NONAME ; void CFSMailFolderBase::SetMailBoxId(class TFSMailMsgId)
+	?SetContent@CFSMailMessagePart@@QAEXAAVTDes16@@@Z @ 197 NONAME ; void CFSMailMessagePart::SetContent(class TDes16 &)
+	?RemoveMessageL@CFSMailFolder@@QAEXVTFSMailMsgId@@@Z @ 198 NONAME ; void CFSMailFolder::RemoveMessageL(class TFSMailMsgId)
+	?CreateMessageFromFileL@CFSMailBox@@QAEPAVCFSMailMessage@@ABVRFile@@@Z @ 199 NONAME ; class CFSMailMessage * CFSMailBox::CreateMessageFromFileL(class RFile const &)
+	?CompleteRequest@CFSMailRequestHandler@@QAEXH@Z @ 200 NONAME ; void CFSMailRequestHandler::CompleteRequest(int)
+	?GetFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 201 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetFolderId(void) const
+	?SetMRInfo@CFSMailMessagePart@@QAEXPAVMMRInfoObject@@@Z @ 202 NONAME ; void CFSMailMessagePart::SetMRInfo(class MMRInfoObject *)
+	?GoOnlineL@CFSMailBox@@QAEXXZ @ 203 NONAME ; void CFSMailBox::GoOnlineL(void)
+	?SetMessageCount@CFSMailFolderBase@@QAEXI@Z @ 204 NONAME ; void CFSMailFolderBase::SetMessageCount(unsigned int)
+	??1CFSMailMessagePart@@UAE@XZ @ 205 NONAME ; CFSMailMessagePart::~CFSMailMessagePart(void)
+	?NewLC@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 206 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class TFSMailMsgId, class TFSMailMsgId)
+	?NewLC@CFSMailMessagePart@@SAPAV1@ABVNmId@@ABVNmMessagePart@@@Z @ 207 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class NmId const &, class NmMessagePart const &)
+	??1TEmailExtensions@@QAE@XZ @ 208 NONAME ; TEmailExtensions::~TEmailExtensions(void)
+	?ContentTypeParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 209 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentTypeParameters(void)
+	?GetNmMessagePart@CFSMailMessagePart@@QAEPAVNmMessagePart@@XZ @ 210 NONAME ; class NmMessagePart * CFSMailMessagePart::GetNmMessagePart(void)
+	?NMMailSortCriteria2FS@NmConverter@@SA?AVTFSMailSortCriteria@@VNmMailSortCriteria@@@Z @ 211 NONAME ; class TFSMailSortCriteria NmConverter::NMMailSortCriteria2FS(class NmMailSortCriteria)
+	?SetContentDescription@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 212 NONAME ; void CFSMailMessagePart::SetContentDescription(class TDesC16 const &)
+	?GetPluginByUid@CFSMailRequestHandler@@QAEPAVCFSMailPlugin@@VTFSMailMsgId@@@Z @ 213 NONAME ; class CFSMailPlugin * CFSMailRequestHandler::GetPluginByUid(class TFSMailMsgId)
+	?FetchMessagePartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@I@Z @ 214 NONAME ; int CFSMailMessagePart::FetchMessagePartL(class TFSMailMsgId, class MFSMailRequestObserver &, unsigned int)
+	?InitAsyncRequestL@CFSMailRequestHandler@@QAE?AVTFSPendingRequest@@VTUid@@AAVMFSMailRequestObserver@@@Z @ 215 NONAME ; class TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL(class TUid, class MFSMailRequestObserver &)
+	?SetContentFromFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 216 NONAME ; void CFSMailMessagePart::SetContentFromFileL(class TDesC16 const &)
+	?GetNmAddress@CFSMailAddress@@QAE?AVNmAddress@@XZ @ 217 NONAME ; class NmAddress CFSMailAddress::GetNmAddress(void)
+	?GetBrandingIdL@CFSMailBox@@QAEAAVTDesC16@@XZ @ 218 NONAME ; class TDesC16 & CFSMailBox::GetBrandingIdL(void)
+	?NewL@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 219 NONAME ; class CFSMailFolder * CFSMailFolder::NewL(class TFSMailMsgId)
+	?RemoveAllRequests@CFSMailRequestHandler@@AAEXXZ @ 220 NONAME ; void CFSMailRequestHandler::RemoveAllRequests(void)
+	?SetFetchedContentSize@CFSMailMessagePart@@QAEXI@Z @ 221 NONAME ; void CFSMailMessagePart::SetFetchedContentSize(unsigned int)
+	?SetMessageId@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 222 NONAME ; void CFSMailMessageBase::SetMessageId(class TFSMailMsgId)
+	?ListMessagesL@CFSMailFolder@@QAEPAVMFSMailIterator@@W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 223 NONAME ; class MFSMailIterator * CFSMailFolder::ListMessagesL(enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
+	?NextL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 224 NONAME ; int CFSMailIterator::NextL(class TDesC16 const &, unsigned int, class RPointerArray<class CFSMailMessage> &)
+	?SetFolderName@CFSMailFolderBase@@QAEXABVTDesC16@@@Z @ 225 NONAME ; void CFSMailFolderBase::SetFolderName(class TDesC16 const &)
+	?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@ABVTDesC16@@VTFSMailMsgId@@@Z @ 226 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId)
+	?SetSettingsUid@CFSMailBoxBase@@QAEXVTUid@@@Z @ 227 NONAME ; void CFSMailBoxBase::SetSettingsUid(class TUid)
+	??0CEmailExtension@@IAE@ABVTUid@@@Z @ 228 NONAME ; CEmailExtension::CEmailExtension(class TUid const &)
+	?GetUnseenCount@CFSMailFolderBase@@QBEIXZ @ 229 NONAME ; unsigned int CFSMailFolderBase::GetUnseenCount(void) const
+	?SetDate@CFSMailMessageBase@@QAEXVTTime@@@Z @ 230 NONAME ; void CFSMailMessageBase::SetDate(class TTime)
+	?SetReadOnlyPartSize@CFSMailMessagePart@@QAEXI@Z @ 231 NONAME ; void CFSMailMessagePart::SetReadOnlyPartSize(unsigned int)
+	?mailMsgIdToNmId@NmConverter@@SA?AVNmId@@VTFSMailMsgId@@@Z @ 232 NONAME ; class NmId NmConverter::mailMsgIdToNmId(class TFSMailMsgId)
+	?SetEmailAddress@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 233 NONAME ; void CFSMailAddress::SetEmailAddress(class TDesC16 const &)
+	?SetUnreadCount@CFSMailFolderBase@@QAEXI@Z @ 234 NONAME ; void CFSMailFolderBase::SetUnreadCount(unsigned int)
+	?SetRCLInfo@CFSMailBoxBase@@QAEXVTUid@@I@Z @ 235 NONAME ; void CFSMailBoxBase::SetRCLInfo(class TUid, unsigned int)
+	??1CExtendableEmail@@UAE@XZ @ 236 NONAME ; CExtendableEmail::~CExtendableEmail(void)
+	?qstringToHBufCLC@NmConverter@@SAPAVHBufC16@@ABVQString@@@Z @ 237 NONAME ; class HBufC16 * NmConverter::qstringToHBufCLC(class QString const &)
+	?AppendCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 238 NONAME ; void CFSMailMessageBase::AppendCCRecipient(class CFSMailAddress *)
+	?HasCapability@CFSMailBox@@QBEHW4TFSMailBoxCapabilities@@@Z @ 239 NONAME ; int CFSMailBox::HasCapability(enum TFSMailBoxCapabilities) const
+	?GetSubject@CFSMailMessageBase@@QBEAAVTDesC16@@XZ @ 240 NONAME ; class TDesC16 & CFSMailMessageBase::GetSubject(void) const
+	?GetMessageId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 241 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMessageId(void) const
+	?NewL@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 242 NONAME ; class CFSMailIterator * CFSMailIterator::NewL(class MFSMailIterator &, class CFSMailRequestHandler *)
+	?RefreshNowL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 243 NONAME ; int CFSMailBox::RefreshNowL(class MFSMailRequestObserver &)
+	?Extension@TEmailExtensions@@QBEPAVCEmailExtension@@H@Z @ 244 NONAME ; class CEmailExtension * TEmailExtensions::Extension(int) const
+	??1CFSMailRequestHandler@@UAE@XZ @ 245 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(void)
+	?DecRef@CEmailExtension@@QAEIXZ @ 246 NONAME ; unsigned int CEmailExtension::DecRef(void)
+	?AddL@TEmailExtensions@@QAEXPAVCEmailExtension@@@Z @ 247 NONAME ; void TEmailExtensions::AddL(class CEmailExtension *)
+	?GetPartId@CFSMailMessagePart@@QBE?AVTFSMailMsgId@@XZ @ 248 NONAME ; class TFSMailMsgId CFSMailMessagePart::GetPartId(void) const
+	?ClearCcRecipients@CFSMailMessageBase@@QAEXXZ @ 249 NONAME ; void CFSMailMessageBase::ClearCcRecipients(void)
+	?ExtensionL@CFSMailMessageBase@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 250 NONAME ; class CEmailExtension * CFSMailMessageBase::ExtensionL(class TUid const &)
+	?GetReplyToAddress@CFSMailMessageBase@@QAEABVCFSMailAddress@@XZ @ 251 NONAME ; class CFSMailAddress const & CFSMailMessageBase::GetReplyToAddress(void)
+	?IncRef@CEmailExtension@@QAEXXZ @ 252 NONAME ; void CEmailExtension::IncRef(void)
+	??1CFSMailBox@@UAE@XZ @ 253 NONAME ; CFSMailBox::~CFSMailBox(void)
+	?SetFlag@CFSMailMessageBase@@QAEXH@Z @ 254 NONAME ; void CFSMailMessageBase::SetFlag(int)
+	?MoveMessagesL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@ABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@2@Z @ 255 NONAME ; int CFSMailBox::MoveMessagesL(class MFSMailRequestObserver &, class RArray<class TFSMailMsgId> const &, class TFSMailMsgId, class TFSMailMsgId)
+	??_ECEmailExtension@@UAE@I@Z @ 256 NONAME ; CEmailExtension::~CEmailExtension(unsigned int)
+	?GetCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 257 NONAME ; class RPointerArray<class CFSMailAddress> CFSMailMessageBase::GetCCRecipients(void)
+	?NewL@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 258 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewL(class TFSMailMsgId, class TFSMailMsgId)
 
--- a/emailservices/emailcommon/eabi/fsfwcommonlibu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/eabi/fsfwcommonlibu.def	Mon May 03 12:23:15 2010 +0300
@@ -1,260 +1,295 @@
 EXPORTS
-	_ZN10CFSMailBox10GoOfflineLEv @ 1 NONAME
-	_ZN10CFSMailBox11CancelSyncLEv @ 2 NONAME
-	_ZN10CFSMailBox11ListFoldersE12TFSMailMsgIdR13RPointerArrayI13CFSMailFolderE @ 3 NONAME
-	_ZN10CFSMailBox11ListFoldersEv @ 4 NONAME
-	_ZN10CFSMailBox11RefreshNowLER22MFSMailRequestObserver @ 5 NONAME
-	_ZN10CFSMailBox11RefreshNowLEv @ 6 NONAME
-	_ZN10CFSMailBox12CancelSearchEv @ 7 NONAME
-	_ZN10CFSMailBox12SendMessageLER14CFSMailMessage @ 8 NONAME
-	_ZN10CFSMailBox12SendMessageLER14CFSMailMessageR22MFSMailRequestObserver @ 9 NONAME
-	_ZN10CFSMailBox13CopyMessagesLERK6RArrayI12TFSMailMsgIdERS2_S1_S1_ @ 10 NONAME
-	_ZN10CFSMailBox13MoveMessagesLERK6RArrayI12TFSMailMsgIdES1_S1_ @ 11 NONAME
-	_ZN10CFSMailBox14GetBrandingIdLEv @ 12 NONAME
-	_ZN10CFSMailBox15GetConnectionIdERm @ 13 NONAME
-	_ZN10CFSMailBox15SetCredentialsLERK7TDesC16S2_ @ 14 NONAME
-	_ZN10CFSMailBox16GetMailBoxStatusEv @ 15 NONAME
-	_ZN10CFSMailBox18CreateReplyMessageE12TFSMailMsgIdiRK7TDesC16 @ 16 NONAME
-	_ZN10CFSMailBox18GetLastSyncStatusLEv @ 17 NONAME
-	_ZN10CFSMailBox19CreateMessageToSendEv @ 18 NONAME
-	_ZN10CFSMailBox19CreateReplyMessageLE12TFSMailMsgIdiR22MFSMailRequestObserverRK7TDesC16 @ 19 NONAME
-	_ZN10CFSMailBox19GetStandardFolderIdE13TFSFolderType @ 20 NONAME
-	_ZN10CFSMailBox19UpdateMessageFlagsLE12TFSMailMsgIdR13RPointerArrayI14CFSMailMessageER22MFSMailRequestObserver @ 21 NONAME
-	_ZN10CFSMailBox20CreateForwardMessageE12TFSMailMsgIdRK7TDesC16 @ 22 NONAME
-	_ZN10CFSMailBox20CreateMessageToSendLER22MFSMailRequestObserver @ 23 NONAME
-	_ZN10CFSMailBox21CreateForwardMessageLE12TFSMailMsgIdR22MFSMailRequestObserverRK7TDesC16 @ 24 NONAME
-	_ZN10CFSMailBox22ClearSearchResultCacheEv @ 25 NONAME
-	_ZN10CFSMailBox28RemoveDownLoadedAttachmentsLEv @ 26 NONAME
-	_ZN10CFSMailBox30IsConnectionAllowedWhenRoamingERi @ 27 NONAME
-	_ZN10CFSMailBox4NewLE12TFSMailMsgId @ 28 NONAME
-	_ZN10CFSMailBox5NewLCE12TFSMailMsgId @ 29 NONAME
-	_ZN10CFSMailBox7SearchLERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver @ 30 NONAME
-	_ZN10CFSMailBox7SearchLERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver6RArrayI12TFSMailMsgIdE @ 31 NONAME
-	_ZN10CFSMailBox9GoOnlineLEv @ 32 NONAME
-	_ZN10CFSMailBoxD0Ev @ 33 NONAME
-	_ZN10CFSMailBoxD1Ev @ 34 NONAME
-	_ZN10CFSMailBoxD2Ev @ 35 NONAME
-	_ZN11NmConverter11toQDateTimeERK5TTime @ 36 NONAME
-	_ZN11NmConverter15mailMsgIdToNmIdE12TFSMailMsgId @ 37 NONAME
-	_ZN11NmConverter15nmIdToMailMsgIdE4NmId @ 38 NONAME
-	_ZN11NmConverter15toRPointerArrayERK5QListI9NmAddressE @ 39 NONAME
-	_ZN11NmConverter16qstringToHBufCLCERK7QString @ 40 NONAME
-	_ZN11NmConverter21FSMailSortCriteria2NME19TFSMailSortCriteria @ 41 NONAME
-	_ZN11NmConverter21NMMailSortCriteria2FSE18NmMailSortCriteria @ 42 NONAME
-	_ZN11NmConverter7toTTimeERK9QDateTime @ 43 NONAME
-	_ZN11NmConverter9toQStringERK7TDesC16 @ 44 NONAME
-	_ZN13CFSMailFolder13ListMessagesLE14TFSMailDetailsRK6RArrayI19TFSMailSortCriteriaE @ 45 NONAME
-	_ZN13CFSMailFolder14FetchMessagesLERK6RArrayI12TFSMailMsgIdE14TFSMailDetailsR22MFSMailRequestObserver @ 46 NONAME
-	_ZN13CFSMailFolder14GetSubFoldersLER13RPointerArrayIS_E @ 47 NONAME
-	_ZN13CFSMailFolder14RemoveMessageLE12TFSMailMsgId @ 48 NONAME
-	_ZN13CFSMailFolder17SupportsCopyFromLE13TFSFolderType @ 49 NONAME
-	_ZN13CFSMailFolder17SupportsMoveFromLE13TFSFolderType @ 50 NONAME
-	_ZN13CFSMailFolder28RemoveDownLoadedAttachmentsLEv @ 51 NONAME
-	_ZN13CFSMailFolder4NewLE12TFSMailMsgId @ 52 NONAME
-	_ZN13CFSMailFolder5NewLCE12TFSMailMsgId @ 53 NONAME
-	_ZN13CFSMailFolderD0Ev @ 54 NONAME
-	_ZN13CFSMailFolderD1Ev @ 55 NONAME
-	_ZN13CFSMailFolderD2Ev @ 56 NONAME
-	_ZN14CFSMailAddress12GetNmAddressEv @ 57 NONAME
-	_ZN14CFSMailAddress14SetDisplayNameERK7TDesC16 @ 58 NONAME
-	_ZN14CFSMailAddress15SetEmailAddressERK7TDesC16 @ 59 NONAME
-	_ZN14CFSMailAddress4NewLERK9NmAddress @ 60 NONAME
-	_ZN14CFSMailAddress4NewLEv @ 61 NONAME
-	_ZN14CFSMailAddress5NewLCEv @ 62 NONAME
-	_ZN14CFSMailAddressD0Ev @ 63 NONAME
-	_ZN14CFSMailAddressD1Ev @ 64 NONAME
-	_ZN14CFSMailAddressD2Ev @ 65 NONAME
-	_ZN14CFSMailBoxBase10GetRCLInfoER4TUidRj @ 66 NONAME
-	_ZN14CFSMailBoxBase10SetRCLInfoE4TUidj @ 67 NONAME
-	_ZN14CFSMailBoxBase12GetNmMailboxEv @ 68 NONAME
-	_ZN14CFSMailBoxBase14GetSettingsUidEv @ 69 NONAME
-	_ZN14CFSMailBoxBase14OwnMailAddressEv @ 70 NONAME
-	_ZN14CFSMailBoxBase14SetSettingsUidE4TUid @ 71 NONAME
-	_ZN14CFSMailBoxBase16MRInfoProcessorLEv @ 72 NONAME
-	_ZN14CFSMailBoxBase18SetOwnMailAddressLEP14CFSMailAddress @ 73 NONAME
-	_ZN14CFSMailBoxBase19SetMRInfoProcessorLEP16MMRInfoProcessor @ 74 NONAME
-	_ZN14CFSMailBoxBase20IsMRInfoProcessorSetEv @ 75 NONAME
-	_ZN14CFSMailBoxBase4NewLE12TFSMailMsgId @ 76 NONAME
-	_ZN14CFSMailBoxBase5NewLCE12TFSMailMsgId @ 77 NONAME
-	_ZN14CFSMailBoxBase7SetNameERK7TDesC16 @ 78 NONAME
-	_ZN14CFSMailBoxBase9SetStatusE16TFSMailBoxStatus @ 79 NONAME
-	_ZN14CFSMailBoxBaseD0Ev @ 80 NONAME
-	_ZN14CFSMailBoxBaseD1Ev @ 81 NONAME
-	_ZN14CFSMailBoxBaseD2Ev @ 82 NONAME
-	_ZN14CFSMailMessage12GetNmMessageEv @ 83 NONAME
-	_ZN14CFSMailMessage12SaveMessageLER22MFSMailRequestObserver @ 84 NONAME
-	_ZN14CFSMailMessage12SaveMessageLEv @ 85 NONAME
-	_ZN14CFSMailMessage13HtmlBodyPartLEN18CFSMailMessagePart28TFSMailMessagePartDataSourceE @ 86 NONAME
-	_ZN14CFSMailMessage15AttachmentListLER13RPointerArrayI18CFSMailMessagePartE @ 87 NONAME
-	_ZN14CFSMailMessage17AddNewAttachmentLER5RFileRK6TDesC8 @ 88 NONAME
-	_ZN14CFSMailMessage17AddNewAttachmentLERK7TDesC1612TFSMailMsgId @ 89 NONAME
-	_ZN14CFSMailMessage17SaveMessagePartsLER22MFSMailRequestObserver @ 90 NONAME
-	_ZN14CFSMailMessage18PlainTextBodyPartLEN18CFSMailMessagePart28TFSMailMessagePartDataSourceE @ 91 NONAME
-	_ZN14CFSMailMessage4NewLE12TFSMailMsgId @ 92 NONAME
-	_ZN14CFSMailMessage4NewLERK9NmMessage @ 93 NONAME
-	_ZN14CFSMailMessage5NewLCE12TFSMailMsgId @ 94 NONAME
-	_ZN14CFSMailMessageD0Ev @ 95 NONAME
-	_ZN14CFSMailMessageD1Ev @ 96 NONAME
-	_ZN14CFSMailMessageD2Ev @ 97 NONAME
-	_ZN15CFSMailIterator4NewLER15MFSMailIteratorP21CFSMailRequestHandler @ 98 NONAME
-	_ZN15CFSMailIterator5NewLCER15MFSMailIteratorP21CFSMailRequestHandler @ 99 NONAME
-	_ZN15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 100 NONAME
-	_ZN15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 101 NONAME
-	_ZN15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 102 NONAME
-	_ZN15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 103 NONAME
-	_ZN15CFSMailIteratorD0Ev @ 104 NONAME
-	_ZN15CFSMailIteratorD1Ev @ 105 NONAME
-	_ZN15CFSMailIteratorD2Ev @ 106 NONAME
-	_ZN17CFSMailFolderBase10ConstructLE12TFSMailMsgId @ 107 NONAME
-	_ZN17CFSMailFolderBase11GetNmFolderEv @ 108 NONAME
-	_ZN17CFSMailFolderBase12SetMailBoxIdE12TFSMailMsgId @ 109 NONAME
-	_ZN17CFSMailFolderBase13SetFolderNameERK7TDesC16 @ 110 NONAME
-	_ZN17CFSMailFolderBase13SetFolderTypeE13TFSFolderType @ 111 NONAME
-	_ZN17CFSMailFolderBase14BlockCopyFromLE6RArrayI13TFSFolderTypeE16TFSMailBoxStatus @ 112 NONAME
-	_ZN17CFSMailFolderBase14BlockMoveFromLE6RArrayI13TFSFolderTypeE16TFSMailBoxStatus @ 113 NONAME
-	_ZN17CFSMailFolderBase14SetUnreadCountEj @ 114 NONAME
-	_ZN17CFSMailFolderBase14SetUnseenCountEj @ 115 NONAME
-	_ZN17CFSMailFolderBase15SetMessageCountEj @ 116 NONAME
-	_ZN17CFSMailFolderBase17SetParentFolderIdE12TFSMailMsgId @ 117 NONAME
-	_ZN17CFSMailFolderBase17SetSubFolderCountEj @ 118 NONAME
-	_ZN17CFSMailFolderBase4NewLE12TFSMailMsgId @ 119 NONAME
-	_ZN17CFSMailFolderBase5NewLCE12TFSMailMsgId @ 120 NONAME
-	_ZN17CFSMailFolderBaseD0Ev @ 121 NONAME
-	_ZN17CFSMailFolderBaseD1Ev @ 122 NONAME
-	_ZN17CFSMailFolderBaseD2Ev @ 123 NONAME
-	_ZN18CFSMailMessageBase10ConstructLE12TFSMailMsgId @ 124 NONAME
-	_ZN18CFSMailMessageBase10SetSubjectERK7TDesC16 @ 125 NONAME
-	_ZN18CFSMailMessageBase11SetFolderIdE12TFSMailMsgId @ 126 NONAME
-	_ZN18CFSMailMessageBase12SetMailBoxIdE12TFSMailMsgId @ 127 NONAME
-	_ZN18CFSMailMessageBase12SetMessageIdE12TFSMailMsgId @ 128 NONAME
-	_ZN18CFSMailMessageBase12SetRelatedToE12TFSMailMsgId @ 129 NONAME
-	_ZN18CFSMailMessageBase15GetCCRecipientsEv @ 130 NONAME
-	_ZN18CFSMailMessageBase15GetToRecipientsEv @ 131 NONAME
-	_ZN18CFSMailMessageBase16GetBCCRecipientsEv @ 132 NONAME
-	_ZN18CFSMailMessageBase17AppendCCRecipientEP14CFSMailAddress @ 133 NONAME
-	_ZN18CFSMailMessageBase17AppendToRecipientEP14CFSMailAddress @ 134 NONAME
-	_ZN18CFSMailMessageBase17ClearCcRecipientsEv @ 135 NONAME
-	_ZN18CFSMailMessageBase17ClearToRecipientsEv @ 136 NONAME
-	_ZN18CFSMailMessageBase17GetReplyToAddressEv @ 137 NONAME
-	_ZN18CFSMailMessageBase17SetReplyToAddressEP14CFSMailAddress @ 138 NONAME
-	_ZN18CFSMailMessageBase18AppendBCCRecipientEP14CFSMailAddress @ 139 NONAME
-	_ZN18CFSMailMessageBase18ClearBccRecipientsEv @ 140 NONAME
-	_ZN18CFSMailMessageBase20GetNmMessageEnvelopeEv @ 141 NONAME
-	_ZN18CFSMailMessageBase4NewLE12TFSMailMsgId @ 142 NONAME
-	_ZN18CFSMailMessageBase5NewLCE12TFSMailMsgId @ 143 NONAME
-	_ZN18CFSMailMessageBase7SetDateE5TTime @ 144 NONAME
-	_ZN18CFSMailMessageBase7SetFlagEi @ 145 NONAME
-	_ZN18CFSMailMessageBase9ResetFlagEi @ 146 NONAME
-	_ZN18CFSMailMessageBase9SetSenderEP14CFSMailAddress @ 147 NONAME
-	_ZN18CFSMailMessageBaseD0Ev @ 148 NONAME
-	_ZN18CFSMailMessageBaseD1Ev @ 149 NONAME
-	_ZN18CFSMailMessageBaseD2Ev @ 150 NONAME
-	_ZN18CFSMailMessagePart10ChildPartLE12TFSMailMsgId @ 151 NONAME
-	_ZN18CFSMailMessagePart10SetContentER6TDes16 @ 152 NONAME
-	_ZN18CFSMailMessagePart11ChildPartsLER13RPointerArrayIS_ENS_28TFSMailMessagePartDataSourceE @ 153 NONAME
-	_ZN18CFSMailMessagePart11IsMRInfoSetEv @ 154 NONAME
-	_ZN18CFSMailMessagePart13FindBodyPartLERK7TDesC16NS_28TFSMailMessagePartDataSourceE @ 155 NONAME
-	_ZN18CFSMailMessagePart13NewChildPartLE12TFSMailMsgIdRK7TDesC16 @ 156 NONAME
-	_ZN18CFSMailMessagePart13SetContentIDLERK7TDesC16 @ 157 NONAME
-	_ZN18CFSMailMessagePart14RemoveContentLEv @ 158 NONAME
-	_ZN18CFSMailMessagePart14RequestHandlerEv @ 159 NONAME
-	_ZN18CFSMailMessagePart14SetContentSizeEj @ 160 NONAME
-	_ZN18CFSMailMessagePart14SetContentTypeERK7TDesC16 @ 161 NONAME
-	_ZN18CFSMailMessagePart15AttachmentNameLEv @ 162 NONAME
-	_ZN18CFSMailMessagePart15GetContentClassEv @ 163 NONAME
-	_ZN18CFSMailMessagePart15GetContentFileLEv @ 164 NONAME
-	_ZN18CFSMailMessagePart15SetContentClassERK7TDesC16 @ 165 NONAME
-	_ZN18CFSMailMessagePart16CopyContentFileLERK7TDesC16 @ 166 NONAME
-	_ZN18CFSMailMessagePart16GetNmMessagePartEv @ 167 NONAME
-	_ZN18CFSMailMessagePart16RemoveChildPartLE12TFSMailMsgId @ 168 NONAME
-	_ZN18CFSMailMessagePart17AddNewAttachmentLERK7TDesC1612TFSMailMsgIdS2_ @ 169 NONAME
-	_ZN18CFSMailMessagePart17FetchMessagePartLE12TFSMailMsgIdR22MFSMailRequestObserverj @ 170 NONAME
-	_ZN18CFSMailMessagePart18AppendAttachmentsLER13RPointerArrayIS_E @ 171 NONAME
-	_ZN18CFSMailMessagePart18ContentDescriptionEv @ 172 NONAME
-	_ZN18CFSMailMessagePart18ContentDispositionEv @ 173 NONAME
-	_ZN18CFSMailMessagePart18SetAttachmentNameLERK7TDesC16 @ 174 NONAME
-	_ZN18CFSMailMessagePart19FetchMessagesPartsLERK6RArrayI12TFSMailMsgIdER22MFSMailRequestObserverj @ 175 NONAME
-	_ZN18CFSMailMessagePart19GetContentToBufferLER6TDes16j @ 176 NONAME
-	_ZN18CFSMailMessagePart19SetContentFromFileLERK7TDesC16 @ 177 NONAME
-	_ZN18CFSMailMessagePart19SetReadOnlyPartSizeEj @ 178 NONAME
-	_ZN18CFSMailMessagePart21ContentTypeParametersEv @ 179 NONAME
-	_ZN18CFSMailMessagePart21GetLocalTextContentLCEv @ 180 NONAME
-	_ZN18CFSMailMessagePart21SetContentDescriptionERK7TDesC16 @ 181 NONAME
-	_ZN18CFSMailMessagePart21SetContentDispositionERK7TDesC16 @ 182 NONAME
-	_ZN18CFSMailMessagePart21SetFetchedContentSizeEj @ 183 NONAME
-	_ZN18CFSMailMessagePart21SetMessagePartsStatusE17TFSPartFetchState @ 184 NONAME
-	_ZN18CFSMailMessagePart23CopyMessageAsChildPartLE12TFSMailMsgIdP14CFSMailMessage @ 185 NONAME
-	_ZN18CFSMailMessagePart28ContentDispositionParametersEv @ 186 NONAME
-	_ZN18CFSMailMessagePart28RemoveDownLoadedAttachmentsLEv @ 187 NONAME
-	_ZN18CFSMailMessagePart4NewLE12TFSMailMsgIdS0_ @ 188 NONAME
-	_ZN18CFSMailMessagePart5NewLCE12TFSMailMsgIdS0_ @ 189 NONAME
-	_ZN18CFSMailMessagePart5NewLCERK4NmIdRK13NmMessagePart @ 190 NONAME
-	_ZN18CFSMailMessagePart5SaveLEv @ 191 NONAME
-	_ZN18CFSMailMessagePart9ContentIDEv @ 192 NONAME
-	_ZN18CFSMailMessagePart9GetMRInfoEv @ 193 NONAME
-	_ZN18CFSMailMessagePart9SetMRInfoEP13MMRInfoObject @ 194 NONAME
-	_ZN18CFSMailMessagePartD0Ev @ 195 NONAME
-	_ZN18CFSMailMessagePartD1Ev @ 196 NONAME
-	_ZN18CFSMailMessagePartD2Ev @ 197 NONAME
-	_ZN21CFSMailRequestHandler10AddPluginLE4TUidP13CFSMailPlugin @ 198 NONAME
-	_ZN21CFSMailRequestHandler10ConstructLE13RPointerArrayI26CImplementationInformationES0_I13CFSMailPluginE @ 199 NONAME
-	_ZN21CFSMailRequestHandler11GetTempDirLEv @ 200 NONAME
-	_ZN21CFSMailRequestHandler12GetTempFileLE12TFSMailMsgId4TBufILi256EE @ 201 NONAME
-	_ZN21CFSMailRequestHandler13CleanTempDirLEv @ 202 NONAME
-	_ZN21CFSMailRequestHandler14CancelRequestLEi @ 203 NONAME
-	_ZN21CFSMailRequestHandler14GetPluginByUidE12TFSMailMsgId @ 204 NONAME
-	_ZN21CFSMailRequestHandler15CompleteRequestEi @ 205 NONAME
-	_ZN21CFSMailRequestHandler17InitAsyncRequestLE4TUidR22MFSMailRequestObserver @ 206 NONAME
-	_ZN21CFSMailRequestHandler17RemoveAllRequestsEv @ 207 NONAME
-	_ZN21CFSMailRequestHandler18CancelAllRequestsLEv @ 208 NONAME
-	_ZN21CFSMailRequestHandler4NewLER13RPointerArrayI26CImplementationInformationERS0_I13CFSMailPluginE @ 209 NONAME
-	_ZN21CFSMailRequestHandler5NewLCER13RPointerArrayI26CImplementationInformationERS0_I13CFSMailPluginE @ 210 NONAME
-	_ZN21CFSMailRequestHandlerC1Ev @ 211 NONAME
-	_ZN21CFSMailRequestHandlerC2Ev @ 212 NONAME
-	_ZN21CFSMailRequestHandlerD0Ev @ 213 NONAME
-	_ZN21CFSMailRequestHandlerD1Ev @ 214 NONAME
-	_ZN21CFSMailRequestHandlerD2Ev @ 215 NONAME
-	_ZNK10CFSMailBox13HasCapabilityE22TFSMailBoxCapabilities @ 216 NONAME
-	_ZNK10CFSMailBox16CurrentSyncStateEv @ 217 NONAME
-	_ZNK10CFSMailBox9ListMrusLEv @ 218 NONAME
-	_ZNK14CFSMailAddress14GetDisplayNameEv @ 219 NONAME
-	_ZNK14CFSMailAddress15GetEmailAddressEv @ 220 NONAME
-	_ZNK14CFSMailBoxBase5GetIdEv @ 221 NONAME
-	_ZNK14CFSMailBoxBase7GetNameEv @ 222 NONAME
-	_ZNK14CFSMailBoxBase9GetStatusEv @ 223 NONAME
-	_ZNK14CFSMailMessage10IsMessageLEv @ 224 NONAME
-	_ZNK17CFSMailFolderBase11GetFolderIdEv @ 225 NONAME
-	_ZNK17CFSMailFolderBase12GetMailBoxIdEv @ 226 NONAME
-	_ZNK17CFSMailFolderBase13GetFolderNameEv @ 227 NONAME
-	_ZNK17CFSMailFolderBase13GetFolderTypeEv @ 228 NONAME
-	_ZNK17CFSMailFolderBase14GetUnreadCountEv @ 229 NONAME
-	_ZNK17CFSMailFolderBase14GetUnseenCountEv @ 230 NONAME
-	_ZNK17CFSMailFolderBase15GetMessageCountEv @ 231 NONAME
-	_ZNK17CFSMailFolderBase17GetParentFolderIdEv @ 232 NONAME
-	_ZNK17CFSMailFolderBase17GetSubFolderCountEv @ 233 NONAME
-	_ZNK18CFSMailMessageBase10GetSubjectEv @ 234 NONAME
-	_ZNK18CFSMailMessageBase11GetFolderIdEv @ 235 NONAME
-	_ZNK18CFSMailMessageBase11IsRelatedToEv @ 236 NONAME
-	_ZNK18CFSMailMessageBase12GetMailBoxIdEv @ 237 NONAME
-	_ZNK18CFSMailMessageBase12GetMessageIdEv @ 238 NONAME
-	_ZNK18CFSMailMessageBase7GetDateEv @ 239 NONAME
-	_ZNK18CFSMailMessageBase8GetFlagsEv @ 240 NONAME
-	_ZNK18CFSMailMessageBase9GetSenderEv @ 241 NONAME
-	_ZNK18CFSMailMessageBase9IsFlagSetEi @ 242 NONAME
-	_ZNK18CFSMailMessagePart10IsMessageLEv @ 243 NONAME
-	_ZNK18CFSMailMessagePart11ContentSizeEv @ 244 NONAME
-	_ZNK18CFSMailMessagePart14FetchLoadStateEv @ 245 NONAME
-	_ZNK18CFSMailMessagePart14GetContentTypeEv @ 246 NONAME
-	_ZNK18CFSMailMessagePart16ReadOnlyPartSizeEv @ 247 NONAME
-	_ZNK18CFSMailMessagePart18FetchedContentSizeEv @ 248 NONAME
-	_ZNK18CFSMailMessagePart9GetPartIdEv @ 249 NONAME
-	_ZTI21CFSMailRequestHandler @ 250 NONAME
-	_ZTV21CFSMailRequestHandler @ 251 NONAME
-	_ZThn4_N15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 252 NONAME
-	_ZThn4_N15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 253 NONAME
-	_ZThn4_N15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 254 NONAME
-	_ZThn4_N15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 255 NONAME
-	_ZThn4_N15CFSMailIteratorD0Ev @ 256 NONAME
-	_ZThn4_N15CFSMailIteratorD1Ev @ 257 NONAME
-	_ZN14CFSMailMessage17AddNewAttachmentLERK7TDesC16R22MFSMailRequestObserver @ 258 NONAME
+	_ZN10CFSMailBox10ExtensionLERK4TUid @ 1 NONAME
+	_ZN10CFSMailBox10GoOfflineLEv @ 2 NONAME
+	_ZN10CFSMailBox11CancelSyncLEv @ 3 NONAME
+	_ZN10CFSMailBox11ListFoldersE12TFSMailMsgIdR13RPointerArrayI13CFSMailFolderE @ 4 NONAME
+	_ZN10CFSMailBox11ListFoldersEv @ 5 NONAME
+	_ZN10CFSMailBox11RefreshNowLER22MFSMailRequestObserver @ 6 NONAME
+	_ZN10CFSMailBox11RefreshNowLEv @ 7 NONAME
+	_ZN10CFSMailBox12CancelSearchEv @ 8 NONAME
+	_ZN10CFSMailBox12SendMessageLER14CFSMailMessage @ 9 NONAME
+	_ZN10CFSMailBox12SendMessageLER14CFSMailMessageR22MFSMailRequestObserver @ 10 NONAME
+	_ZN10CFSMailBox13CopyMessagesLERK6RArrayI12TFSMailMsgIdERS2_S1_S1_ @ 11 NONAME
+	_ZN10CFSMailBox13MoveMessagesLER22MFSMailRequestObserverRK6RArrayI12TFSMailMsgIdES3_S3_ @ 12 NONAME
+	_ZN10CFSMailBox13MoveMessagesLERK6RArrayI12TFSMailMsgIdES1_S1_ @ 13 NONAME
+	_ZN10CFSMailBox14GetBrandingIdLEv @ 14 NONAME
+	_ZN10CFSMailBox15GetConnectionIdERm @ 15 NONAME
+	_ZN10CFSMailBox15SetCredentialsLERK7TDesC16S2_ @ 16 NONAME
+	_ZN10CFSMailBox16GetMailBoxStatusEv @ 17 NONAME
+	_ZN10CFSMailBox16ReleaseExtensionEP15CEmailExtension @ 18 NONAME
+	_ZN10CFSMailBox18CreateReplyMessageE12TFSMailMsgIdiRK7TDesC16 @ 19 NONAME
+	_ZN10CFSMailBox18GetLastSyncStatusLEv @ 20 NONAME
+	_ZN10CFSMailBox19CreateMessageToSendEv @ 21 NONAME
+	_ZN10CFSMailBox19CreateReplyMessageLE12TFSMailMsgIdiR22MFSMailRequestObserverRK7TDesC16 @ 22 NONAME
+	_ZN10CFSMailBox19GetStandardFolderIdE13TFSFolderType @ 23 NONAME
+	_ZN10CFSMailBox19UpdateMessageFlagsLE12TFSMailMsgIdR13RPointerArrayI14CFSMailMessageER22MFSMailRequestObserver @ 24 NONAME
+	_ZN10CFSMailBox20CreateForwardMessageE12TFSMailMsgIdRK7TDesC16 @ 25 NONAME
+	_ZN10CFSMailBox20CreateMessageToSendLER22MFSMailRequestObserver @ 26 NONAME
+	_ZN10CFSMailBox21CreateForwardMessageLE12TFSMailMsgIdR22MFSMailRequestObserverRK7TDesC16 @ 27 NONAME
+	_ZN10CFSMailBox22ClearSearchResultCacheEv @ 28 NONAME
+	_ZN10CFSMailBox22CreateMessageFromFileLERK5RFile @ 29 NONAME
+	_ZN10CFSMailBox28RemoveDownLoadedAttachmentsLEv @ 30 NONAME
+	_ZN10CFSMailBox30IsConnectionAllowedWhenRoamingERi @ 31 NONAME
+	_ZN10CFSMailBox4NewLE12TFSMailMsgId @ 32 NONAME
+	_ZN10CFSMailBox5NewLCE12TFSMailMsgId @ 33 NONAME
+	_ZN10CFSMailBox7SearchLERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver @ 34 NONAME
+	_ZN10CFSMailBox7SearchLERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver6RArrayI12TFSMailMsgIdE @ 35 NONAME
+	_ZN10CFSMailBox9GoOnlineLEv @ 36 NONAME
+	_ZN10CFSMailBoxD0Ev @ 37 NONAME
+	_ZN10CFSMailBoxD1Ev @ 38 NONAME
+	_ZN10CFSMailBoxD2Ev @ 39 NONAME
+	_ZN11NmConverter11toQDateTimeERK5TTime @ 40 NONAME
+	_ZN11NmConverter15mailMsgIdToNmIdE12TFSMailMsgId @ 41 NONAME
+	_ZN11NmConverter15nmIdToMailMsgIdE4NmId @ 42 NONAME
+	_ZN11NmConverter15toRPointerArrayERK5QListI9NmAddressE @ 43 NONAME
+	_ZN11NmConverter16qstringToHBufCLCERK7QString @ 44 NONAME
+	_ZN11NmConverter21FSMailSortCriteria2NME19TFSMailSortCriteria @ 45 NONAME
+	_ZN11NmConverter21NMMailSortCriteria2FSE18NmMailSortCriteria @ 46 NONAME
+	_ZN11NmConverter7toTTimeERK9QDateTime @ 47 NONAME
+	_ZN11NmConverter9toQStringERK7TDesC16 @ 48 NONAME
+	_ZN13CFSMailFolder10ExtensionLERK4TUid @ 49 NONAME
+	_ZN13CFSMailFolder13ListMessagesLE14TFSMailDetailsRK6RArrayI19TFSMailSortCriteriaE @ 50 NONAME
+	_ZN13CFSMailFolder14FetchMessagesLERK6RArrayI12TFSMailMsgIdE14TFSMailDetailsR22MFSMailRequestObserver @ 51 NONAME
+	_ZN13CFSMailFolder14GetSubFoldersLER13RPointerArrayIS_E @ 52 NONAME
+	_ZN13CFSMailFolder14RemoveMessageLE12TFSMailMsgId @ 53 NONAME
+	_ZN13CFSMailFolder16ReleaseExtensionEP15CEmailExtension @ 54 NONAME
+	_ZN13CFSMailFolder17SupportsCopyFromLE13TFSFolderType @ 55 NONAME
+	_ZN13CFSMailFolder17SupportsMoveFromLE13TFSFolderType @ 56 NONAME
+	_ZN13CFSMailFolder28RemoveDownLoadedAttachmentsLEv @ 57 NONAME
+	_ZN13CFSMailFolder4NewLE12TFSMailMsgId @ 58 NONAME
+	_ZN13CFSMailFolder5NewLCE12TFSMailMsgId @ 59 NONAME
+	_ZN13CFSMailFolderD0Ev @ 60 NONAME
+	_ZN13CFSMailFolderD1Ev @ 61 NONAME
+	_ZN13CFSMailFolderD2Ev @ 62 NONAME
+	_ZN14CFSMailAddress12GetNmAddressEv @ 63 NONAME
+	_ZN14CFSMailAddress14SetDisplayNameERK7TDesC16 @ 64 NONAME
+	_ZN14CFSMailAddress15SetEmailAddressERK7TDesC16 @ 65 NONAME
+	_ZN14CFSMailAddress4NewLERK9NmAddress @ 66 NONAME
+	_ZN14CFSMailAddress4NewLEv @ 67 NONAME
+	_ZN14CFSMailAddress5NewLCEv @ 68 NONAME
+	_ZN14CFSMailAddressD0Ev @ 69 NONAME
+	_ZN14CFSMailAddressD1Ev @ 70 NONAME
+	_ZN14CFSMailAddressD2Ev @ 71 NONAME
+	_ZN14CFSMailBoxBase10GetRCLInfoER4TUidRj @ 72 NONAME
+	_ZN14CFSMailBoxBase10SetRCLInfoE4TUidj @ 73 NONAME
+	_ZN14CFSMailBoxBase12GetNmMailboxEv @ 74 NONAME
+	_ZN14CFSMailBoxBase14GetSettingsUidEv @ 75 NONAME
+	_ZN14CFSMailBoxBase14OwnMailAddressEv @ 76 NONAME
+	_ZN14CFSMailBoxBase14SetSettingsUidE4TUid @ 77 NONAME
+	_ZN14CFSMailBoxBase16MRInfoProcessorLEv @ 78 NONAME
+	_ZN14CFSMailBoxBase18SetOwnMailAddressLEP14CFSMailAddress @ 79 NONAME
+	_ZN14CFSMailBoxBase19SetMRInfoProcessorLEP16MMRInfoProcessor @ 80 NONAME
+	_ZN14CFSMailBoxBase20IsMRInfoProcessorSetEv @ 81 NONAME
+	_ZN14CFSMailBoxBase4NewLE12TFSMailMsgId @ 82 NONAME
+	_ZN14CFSMailBoxBase5NewLCE12TFSMailMsgId @ 83 NONAME
+	_ZN14CFSMailBoxBase7SetNameERK7TDesC16 @ 84 NONAME
+	_ZN14CFSMailBoxBase9SetStatusE16TFSMailBoxStatus @ 85 NONAME
+	_ZN14CFSMailBoxBaseD0Ev @ 86 NONAME
+	_ZN14CFSMailBoxBaseD1Ev @ 87 NONAME
+	_ZN14CFSMailBoxBaseD2Ev @ 88 NONAME
+	_ZN14CFSMailMessage12GetNmMessageEv @ 89 NONAME
+	_ZN14CFSMailMessage12SaveMessageLER22MFSMailRequestObserver @ 90 NONAME
+	_ZN14CFSMailMessage12SaveMessageLEv @ 91 NONAME
+	_ZN14CFSMailMessage13HtmlBodyPartLEN18CFSMailMessagePart28TFSMailMessagePartDataSourceE @ 92 NONAME
+	_ZN14CFSMailMessage15AttachmentListLER13RPointerArrayI18CFSMailMessagePartE @ 93 NONAME
+	_ZN14CFSMailMessage17AddNewAttachmentLER5RFileRK6TDesC8 @ 94 NONAME
+	_ZN14CFSMailMessage17AddNewAttachmentLERK7TDesC1612TFSMailMsgId @ 95 NONAME
+	_ZN14CFSMailMessage17AddNewAttachmentLERK7TDesC16R22MFSMailRequestObserver @ 96 NONAME
+	_ZN14CFSMailMessage17SaveMessagePartsLER22MFSMailRequestObserver @ 97 NONAME
+	_ZN14CFSMailMessage18PlainTextBodyPartLEN18CFSMailMessagePart28TFSMailMessagePartDataSourceE @ 98 NONAME
+	_ZN14CFSMailMessage4NewLE12TFSMailMsgId @ 99 NONAME
+	_ZN14CFSMailMessage4NewLERK9NmMessage @ 100 NONAME
+	_ZN14CFSMailMessage5NewLCE12TFSMailMsgId @ 101 NONAME
+	_ZN14CFSMailMessageD0Ev @ 102 NONAME
+	_ZN14CFSMailMessageD1Ev @ 103 NONAME
+	_ZN14CFSMailMessageD2Ev @ 104 NONAME
+	_ZN15CEmailExtension6DecRefEv @ 105 NONAME
+	_ZN15CEmailExtension6IncRefEv @ 106 NONAME
+	_ZN15CEmailExtensionC1ERK4TUid @ 107 NONAME
+	_ZN15CEmailExtensionC2ERK4TUid @ 108 NONAME
+	_ZN15CEmailExtensionD0Ev @ 109 NONAME
+	_ZN15CEmailExtensionD1Ev @ 110 NONAME
+	_ZN15CEmailExtensionD2Ev @ 111 NONAME
+	_ZN15CFSMailIterator4NewLER15MFSMailIteratorP21CFSMailRequestHandler @ 112 NONAME
+	_ZN15CFSMailIterator5NewLCER15MFSMailIteratorP21CFSMailRequestHandler @ 113 NONAME
+	_ZN15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 114 NONAME
+	_ZN15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 115 NONAME
+	_ZN15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 116 NONAME
+	_ZN15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 117 NONAME
+	_ZN15CFSMailIteratorD0Ev @ 118 NONAME
+	_ZN15CFSMailIteratorD1Ev @ 119 NONAME
+	_ZN15CFSMailIteratorD2Ev @ 120 NONAME
+	_ZN16CExtendableEmail10ExtensionLERK4TUid @ 121 NONAME
+	_ZN16CExtendableEmail16ReleaseExtensionEP15CEmailExtension @ 122 NONAME
+	_ZN16CExtendableEmailC1Ev @ 123 NONAME
+	_ZN16CExtendableEmailC2Ev @ 124 NONAME
+	_ZN16TEmailExtensions4AddLEP15CEmailExtension @ 125 NONAME
+	_ZN16TEmailExtensions6RemoveEPK15CEmailExtension @ 126 NONAME
+	_ZN16TEmailExtensionsC1Ev @ 127 NONAME
+	_ZN16TEmailExtensionsC2Ev @ 128 NONAME
+	_ZN16TEmailExtensionsD1Ev @ 129 NONAME
+	_ZN16TEmailExtensionsD2Ev @ 130 NONAME
+	_ZN17CFSMailFolderBase10ConstructLE12TFSMailMsgId @ 131 NONAME
+	_ZN17CFSMailFolderBase11GetNmFolderEv @ 132 NONAME
+	_ZN17CFSMailFolderBase12SetMailBoxIdE12TFSMailMsgId @ 133 NONAME
+	_ZN17CFSMailFolderBase13SetFolderNameERK7TDesC16 @ 134 NONAME
+	_ZN17CFSMailFolderBase13SetFolderTypeE13TFSFolderType @ 135 NONAME
+	_ZN17CFSMailFolderBase14BlockCopyFromLE6RArrayI13TFSFolderTypeE16TFSMailBoxStatus @ 136 NONAME
+	_ZN17CFSMailFolderBase14BlockMoveFromLE6RArrayI13TFSFolderTypeE16TFSMailBoxStatus @ 137 NONAME
+	_ZN17CFSMailFolderBase14SetUnreadCountEj @ 138 NONAME
+	_ZN17CFSMailFolderBase14SetUnseenCountEj @ 139 NONAME
+	_ZN17CFSMailFolderBase15SetMessageCountEj @ 140 NONAME
+	_ZN17CFSMailFolderBase17SetParentFolderIdE12TFSMailMsgId @ 141 NONAME
+	_ZN17CFSMailFolderBase17SetSubFolderCountEj @ 142 NONAME
+	_ZN17CFSMailFolderBase4NewLE12TFSMailMsgId @ 143 NONAME
+	_ZN17CFSMailFolderBase5NewLCE12TFSMailMsgId @ 144 NONAME
+	_ZN17CFSMailFolderBaseD0Ev @ 145 NONAME
+	_ZN17CFSMailFolderBaseD1Ev @ 146 NONAME
+	_ZN17CFSMailFolderBaseD2Ev @ 147 NONAME
+	_ZN18CFSMailMessageBase10ConstructLE12TFSMailMsgId @ 148 NONAME
+	_ZN18CFSMailMessageBase10ConstructLERK17NmMessageEnvelope @ 149 NONAME
+	_ZN18CFSMailMessageBase10ExtensionLERK4TUid @ 150 NONAME
+	_ZN18CFSMailMessageBase10SetSubjectERK7TDesC16 @ 151 NONAME
+	_ZN18CFSMailMessageBase11SetFolderIdE12TFSMailMsgId @ 152 NONAME
+	_ZN18CFSMailMessageBase12SetMailBoxIdE12TFSMailMsgId @ 153 NONAME
+	_ZN18CFSMailMessageBase12SetMessageIdE12TFSMailMsgId @ 154 NONAME
+	_ZN18CFSMailMessageBase12SetRelatedToE12TFSMailMsgId @ 155 NONAME
+	_ZN18CFSMailMessageBase14RequestHandlerEv @ 156 NONAME
+	_ZN18CFSMailMessageBase15GetCCRecipientsEv @ 157 NONAME
+	_ZN18CFSMailMessageBase15GetToRecipientsEv @ 158 NONAME
+	_ZN18CFSMailMessageBase16GetBCCRecipientsEv @ 159 NONAME
+	_ZN18CFSMailMessageBase16ReleaseExtensionEP15CEmailExtension @ 160 NONAME
+	_ZN18CFSMailMessageBase17AppendCCRecipientEP14CFSMailAddress @ 161 NONAME
+	_ZN18CFSMailMessageBase17AppendToRecipientEP14CFSMailAddress @ 162 NONAME
+	_ZN18CFSMailMessageBase17ClearCcRecipientsEv @ 163 NONAME
+	_ZN18CFSMailMessageBase17ClearToRecipientsEv @ 164 NONAME
+	_ZN18CFSMailMessageBase17GetReplyToAddressEv @ 165 NONAME
+	_ZN18CFSMailMessageBase17SetReplyToAddressEP14CFSMailAddress @ 166 NONAME
+	_ZN18CFSMailMessageBase18AppendBCCRecipientEP14CFSMailAddress @ 167 NONAME
+	_ZN18CFSMailMessageBase18ClearBccRecipientsEv @ 168 NONAME
+	_ZN18CFSMailMessageBase20GetNmMessageEnvelopeEv @ 169 NONAME
+	_ZN18CFSMailMessageBase4NewLE12TFSMailMsgId @ 170 NONAME
+	_ZN18CFSMailMessageBase5NewLCE12TFSMailMsgId @ 171 NONAME
+	_ZN18CFSMailMessageBase7SetDateE5TTime @ 172 NONAME
+	_ZN18CFSMailMessageBase7SetFlagEi @ 173 NONAME
+	_ZN18CFSMailMessageBase9ResetFlagEi @ 174 NONAME
+	_ZN18CFSMailMessageBase9SetSenderEP14CFSMailAddress @ 175 NONAME
+	_ZN18CFSMailMessageBaseD0Ev @ 176 NONAME
+	_ZN18CFSMailMessageBaseD1Ev @ 177 NONAME
+	_ZN18CFSMailMessageBaseD2Ev @ 178 NONAME
+	_ZN18CFSMailMessagePart10ChildPartLE12TFSMailMsgId @ 179 NONAME
+	_ZN18CFSMailMessagePart10SetContentER6TDes16 @ 180 NONAME
+	_ZN18CFSMailMessagePart11ChildPartsLER13RPointerArrayIS_ENS_28TFSMailMessagePartDataSourceE @ 181 NONAME
+	_ZN18CFSMailMessagePart11IsMRInfoSetEv @ 182 NONAME
+	_ZN18CFSMailMessagePart13FindBodyPartLERK7TDesC16NS_28TFSMailMessagePartDataSourceE @ 183 NONAME
+	_ZN18CFSMailMessagePart13NewChildPartLE12TFSMailMsgIdRK7TDesC16 @ 184 NONAME
+	_ZN18CFSMailMessagePart13SetContentIDLERK7TDesC16 @ 185 NONAME
+	_ZN18CFSMailMessagePart14RemoveContentLEv @ 186 NONAME
+	_ZN18CFSMailMessagePart14SetContentSizeEj @ 187 NONAME
+	_ZN18CFSMailMessagePart14SetContentTypeERK7TDesC16 @ 188 NONAME
+	_ZN18CFSMailMessagePart15AttachmentNameLEv @ 189 NONAME
+	_ZN18CFSMailMessagePart15GetContentClassEv @ 190 NONAME
+	_ZN18CFSMailMessagePart15GetContentFileLEv @ 191 NONAME
+	_ZN18CFSMailMessagePart15SetContentClassERK7TDesC16 @ 192 NONAME
+	_ZN18CFSMailMessagePart16CopyContentFileLERK7TDesC16 @ 193 NONAME
+	_ZN18CFSMailMessagePart16GetNmMessagePartEv @ 194 NONAME
+	_ZN18CFSMailMessagePart16RemoveChildPartLE12TFSMailMsgId @ 195 NONAME
+	_ZN18CFSMailMessagePart16RemoveChildPartLE12TFSMailMsgIdR22MFSMailRequestObserver @ 196 NONAME
+	_ZN18CFSMailMessagePart17AddNewAttachmentLERK7TDesC1612TFSMailMsgIdS2_ @ 197 NONAME
+	_ZN18CFSMailMessagePart17FetchMessagePartLE12TFSMailMsgIdR22MFSMailRequestObserverj @ 198 NONAME
+	_ZN18CFSMailMessagePart18AppendAttachmentsLER13RPointerArrayIS_E @ 199 NONAME
+	_ZN18CFSMailMessagePart18ContentDescriptionEv @ 200 NONAME
+	_ZN18CFSMailMessagePart18ContentDispositionEv @ 201 NONAME
+	_ZN18CFSMailMessagePart18ContentTypeMatchesERK7TDesC16 @ 202 NONAME
+	_ZN18CFSMailMessagePart18SetAttachmentNameLERK7TDesC16 @ 203 NONAME
+	_ZN18CFSMailMessagePart19FetchMessagesPartsLERK6RArrayI12TFSMailMsgIdER22MFSMailRequestObserverj @ 204 NONAME
+	_ZN18CFSMailMessagePart19GetContentToBufferLER6TDes16j @ 205 NONAME
+	_ZN18CFSMailMessagePart19SetContentFromFileLERK7TDesC16 @ 206 NONAME
+	_ZN18CFSMailMessagePart19SetReadOnlyPartSizeEj @ 207 NONAME
+	_ZN18CFSMailMessagePart21ContentTypeParametersEv @ 208 NONAME
+	_ZN18CFSMailMessagePart21GetLocalTextContentLCEv @ 209 NONAME
+	_ZN18CFSMailMessagePart21SetContentDescriptionERK7TDesC16 @ 210 NONAME
+	_ZN18CFSMailMessagePart21SetContentDispositionERK7TDesC16 @ 211 NONAME
+	_ZN18CFSMailMessagePart21SetFetchedContentSizeEj @ 212 NONAME
+	_ZN18CFSMailMessagePart21SetMessagePartsStatusE17TFSPartFetchState @ 213 NONAME
+	_ZN18CFSMailMessagePart23CopyMessageAsChildPartLE12TFSMailMsgIdP14CFSMailMessage @ 214 NONAME
+	_ZN18CFSMailMessagePart28ContentDispositionParametersEv @ 215 NONAME
+	_ZN18CFSMailMessagePart28RemoveDownLoadedAttachmentsLEv @ 216 NONAME
+	_ZN18CFSMailMessagePart4NewLE12TFSMailMsgIdS0_ @ 217 NONAME
+	_ZN18CFSMailMessagePart5NewLCE12TFSMailMsgIdS0_ @ 218 NONAME
+	_ZN18CFSMailMessagePart5NewLCERK4NmIdRK13NmMessagePart @ 219 NONAME
+	_ZN18CFSMailMessagePart5SaveLEv @ 220 NONAME
+	_ZN18CFSMailMessagePart9ContentIDEv @ 221 NONAME
+	_ZN18CFSMailMessagePart9GetMRInfoEv @ 222 NONAME
+	_ZN18CFSMailMessagePart9SetMRInfoEP13MMRInfoObject @ 223 NONAME
+	_ZN18CFSMailMessagePartD0Ev @ 224 NONAME
+	_ZN18CFSMailMessagePartD1Ev @ 225 NONAME
+	_ZN18CFSMailMessagePartD2Ev @ 226 NONAME
+	_ZN21CFSMailRequestHandler10AddPluginLE4TUidP13CFSMailPlugin @ 227 NONAME
+	_ZN21CFSMailRequestHandler10ConstructLE13RPointerArrayI26CImplementationInformationES0_I13CFSMailPluginE @ 228 NONAME
+	_ZN21CFSMailRequestHandler11GetTempDirLEv @ 229 NONAME
+	_ZN21CFSMailRequestHandler12GetTempFileLE12TFSMailMsgId4TBufILi256EE @ 230 NONAME
+	_ZN21CFSMailRequestHandler13CleanTempDirLEv @ 231 NONAME
+	_ZN21CFSMailRequestHandler14CancelRequestLEi @ 232 NONAME
+	_ZN21CFSMailRequestHandler14GetPluginByUidE12TFSMailMsgId @ 233 NONAME
+	_ZN21CFSMailRequestHandler15CompleteRequestEi @ 234 NONAME
+	_ZN21CFSMailRequestHandler17InitAsyncRequestLE4TUidR22MFSMailRequestObserver @ 235 NONAME
+	_ZN21CFSMailRequestHandler17RemoveAllRequestsEv @ 236 NONAME
+	_ZN21CFSMailRequestHandler18CancelAllRequestsLEv @ 237 NONAME
+	_ZN21CFSMailRequestHandler4NewLER13RPointerArrayI26CImplementationInformationERS0_I13CFSMailPluginE @ 238 NONAME
+	_ZN21CFSMailRequestHandler5NewLCER13RPointerArrayI26CImplementationInformationERS0_I13CFSMailPluginE @ 239 NONAME
+	_ZN21CFSMailRequestHandlerC1Ev @ 240 NONAME
+	_ZN21CFSMailRequestHandlerC2Ev @ 241 NONAME
+	_ZN21CFSMailRequestHandlerD0Ev @ 242 NONAME
+	_ZN21CFSMailRequestHandlerD1Ev @ 243 NONAME
+	_ZN21CFSMailRequestHandlerD2Ev @ 244 NONAME
+	_ZNK10CFSMailBox13HasCapabilityE22TFSMailBoxCapabilities @ 245 NONAME
+	_ZNK10CFSMailBox16CurrentSyncStateEv @ 246 NONAME
+	_ZNK10CFSMailBox9ListMrusLEv @ 247 NONAME
+	_ZNK14CFSMailAddress14GetDisplayNameEv @ 248 NONAME
+	_ZNK14CFSMailAddress15GetEmailAddressEv @ 249 NONAME
+	_ZNK14CFSMailBoxBase5GetIdEv @ 250 NONAME
+	_ZNK14CFSMailBoxBase7GetNameEv @ 251 NONAME
+	_ZNK14CFSMailBoxBase9GetStatusEv @ 252 NONAME
+	_ZNK14CFSMailMessage10IsMessageLEv @ 253 NONAME
+	_ZNK15CEmailExtension3UidEv @ 254 NONAME
+	_ZNK16TEmailExtensions13FindExtensionERK4TUid @ 255 NONAME
+	_ZNK16TEmailExtensions9ExtensionEi @ 256 NONAME
+	_ZNK17CFSMailFolderBase11GetFolderIdEv @ 257 NONAME
+	_ZNK17CFSMailFolderBase12GetMailBoxIdEv @ 258 NONAME
+	_ZNK17CFSMailFolderBase13GetFolderNameEv @ 259 NONAME
+	_ZNK17CFSMailFolderBase13GetFolderTypeEv @ 260 NONAME
+	_ZNK17CFSMailFolderBase14GetUnreadCountEv @ 261 NONAME
+	_ZNK17CFSMailFolderBase14GetUnseenCountEv @ 262 NONAME
+	_ZNK17CFSMailFolderBase15GetMessageCountEv @ 263 NONAME
+	_ZNK17CFSMailFolderBase17GetParentFolderIdEv @ 264 NONAME
+	_ZNK17CFSMailFolderBase17GetSubFolderCountEv @ 265 NONAME
+	_ZNK18CFSMailMessageBase10GetSubjectEv @ 266 NONAME
+	_ZNK18CFSMailMessageBase11GetFolderIdEv @ 267 NONAME
+	_ZNK18CFSMailMessageBase11IsRelatedToEv @ 268 NONAME
+	_ZNK18CFSMailMessageBase12GetMailBoxIdEv @ 269 NONAME
+	_ZNK18CFSMailMessageBase12GetMessageIdEv @ 270 NONAME
+	_ZNK18CFSMailMessageBase7GetDateEv @ 271 NONAME
+	_ZNK18CFSMailMessageBase8GetFlagsEv @ 272 NONAME
+	_ZNK18CFSMailMessageBase9GetSenderEv @ 273 NONAME
+	_ZNK18CFSMailMessageBase9IsFlagSetEi @ 274 NONAME
+	_ZNK18CFSMailMessagePart10IsMessageLEv @ 275 NONAME
+	_ZNK18CFSMailMessagePart11ContentSizeEv @ 276 NONAME
+	_ZNK18CFSMailMessagePart14FetchLoadStateEv @ 277 NONAME
+	_ZNK18CFSMailMessagePart14GetContentTypeEv @ 278 NONAME
+	_ZNK18CFSMailMessagePart16ReadOnlyPartSizeEv @ 279 NONAME
+	_ZNK18CFSMailMessagePart18FetchedContentSizeEv @ 280 NONAME
+	_ZNK18CFSMailMessagePart9GetPartIdEv @ 281 NONAME
+	_ZTI15CEmailExtension @ 282 NONAME
+	_ZTI16CExtendableEmail @ 283 NONAME
+	_ZTI21CFSMailRequestHandler @ 284 NONAME
+	_ZTV15CEmailExtension @ 285 NONAME
+	_ZTV16CExtendableEmail @ 286 NONAME
+	_ZTV21CFSMailRequestHandler @ 287 NONAME
+	_ZThn4_N15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 288 NONAME
+	_ZThn4_N15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 289 NONAME
+	_ZThn4_N15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 290 NONAME
+	_ZThn4_N15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 291 NONAME
+	_ZThn4_N15CFSMailIteratorD0Ev @ 292 NONAME
+	_ZThn4_N15CFSMailIteratorD1Ev @ 293 NONAME
 
--- a/emailservices/emailcommon/emailcommon.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/emailcommon.pro	Mon May 03 12:23:15 2010 +0300
@@ -26,7 +26,8 @@
 ../inc \
 /epoc32/include/ecom 
 
-HEADERS   += inc/CFSMailBox.h \
+HEADERS   += inc/cemailextensionbase.h \ 
+    inc/CFSMailBox.h \
     inc/CFSMailBoxBase.h \
     inc/CFSMailFolder.h \
     inc/CFSMailFolderBase.h \
@@ -39,9 +40,14 @@
     inc/CFSMailRequestHandler.h \
     inc/CFSMailPluginData.h \
     inc/CFSMailCommon.h \
-    inc/nmconverter.h
+    inc/nmconverter.h \
+    inc/cmailboxstateext.h \
+    inc/cmailmessageext.h \
+    inc/cmrcalendarinfo.h \
+    inc/cmrcalendarinfoimpl.h
     
-SOURCES   += src/CFSMailBox.cpp \
+SOURCES   += src/cemailextensionbase.cpp \
+    src/CFSMailBox.cpp \
     src/CFSMailBoxBase.cpp \
     src/CFSMailFolder.cpp \
     src/CFSMailFolderBase.cpp \
@@ -53,7 +59,8 @@
     src/CFSMailIterator.cpp \
     src/CFSMailRequestHandler.cpp \
     src/CFSMailPluginData.cpp \
-    src/nmconverter.cpp
+    src/nmconverter.cpp \
+    src/emailcalendarinfoimpl.cpp
 
 symbian*: { 
     TARGET.EPOCALLOWDLLDATA = 1
--- a/emailservices/emailcommon/inc/CFSMailAddress.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailAddress.h	Mon May 03 12:23:15 2010 +0300
@@ -49,7 +49,7 @@
      * Two-phased constructor.
      *
      */
-    IMPORT_C static CFSMailAddress* NewL();
+   	 IMPORT_C static CFSMailAddress* NewL();
 
     /**
      * Two-phased constructor.
@@ -63,40 +63,40 @@
      * Two-phased constructor.
      *
      */
-    IMPORT_C static CFSMailAddress* NewLC();
+  	 IMPORT_C static CFSMailAddress* NewLC();
 
     /**
      * destructor
      */
-    IMPORT_C ~CFSMailAddress();
-        
+  	 IMPORT_C ~CFSMailAddress();
+      	
     /**
      * email address accessor
      *
      * @return email address owned by class
      */
-    IMPORT_C TDesC& GetEmailAddress() const;
+  	 IMPORT_C TDesC& GetEmailAddress() const;
         
     /**
      * email address mutator
      *
      * @param aAddress email address to be stored
      */
-    IMPORT_C void SetEmailAddress( const TDesC& aAddress );
-     
+  	 IMPORT_C void SetEmailAddress(const TDesC& aAddress);
+  	 
     /**
      * display name accessor
      *
      * @return stored display name owned by class
      */
-    IMPORT_C TDesC& GetDisplayName() const;
+  	 IMPORT_C TDesC& GetDisplayName() const;
         
     /**
      * display name mutator
      *
      * @param aDisplayName display name to be stored
      */
-    IMPORT_C void SetDisplayName( const TDesC& aDisplayName );
+  	 IMPORT_C void SetDisplayName(const TDesC& aDisplayName);
 
     /**
      * returns the NmAddress object
@@ -115,10 +115,11 @@
      CFSMailAddress();
     // </qmail> 
  
-  /**
+
+ 	/**
      * Two-phased constructor
      */
-     void ConstructL();
+  	 void ConstructL();
 
     /**
      * Two-phased constructor
@@ -129,12 +130,13 @@
 
  private: // data
 
-    /**
+	// <qmail>
+  	/**
      * email address - pointer descriptor to access QString object
      */
     mutable TPtrC  iEmailAddressPtr;
 
-    /**
+  	/**
      * display name - pointer descriptor to access QString object
      */
     mutable TPtrC  iDisplayNamePtr;
@@ -142,7 +144,6 @@
     /**
      * Reference to QT side of the address data object.
      */
-    // <qmail>
     QExplicitlySharedDataPointer<NmAddressPrivate> iNmPrivateAddress;
     // </qmail>
 };
--- a/emailservices/emailcommon/inc/CFSMailBox.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailBox.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -41,7 +41,6 @@
  *  mailbox data handling
  *
  *  @lib FSFWCommonLib
- *  @since S60 v3.1
  */
 NONSHARABLE_CLASS ( CFSMailBox ) : public CFSMailBoxBase
 {
@@ -57,15 +56,15 @@
      *
      * @param aMailBoxId mailbox id in plugin containing mailbox
      */
-    IMPORT_C static CFSMailBox* NewL( TFSMailMsgId aMailBoxId );
-    
+  	 IMPORT_C static CFSMailBox* NewL( TFSMailMsgId aMailBoxId	);
+  	
     /**
      * two based constructor
      *
      * @param aMailBoxId mailbox id in plugin containing mailbox
      */
-     IMPORT_C static CFSMailBox* NewLC( TFSMailMsgId aMailBoxId );
-    
+  	 IMPORT_C static CFSMailBox* NewLC( TFSMailMsgId aMailBoxId );
+  	
     /**
      * Enables synchronization of the mailbox. This means
      * that the framework can connect to server to do synchronization
@@ -84,8 +83,8 @@
      * for this purpose. There are also other reasons for ending up
      * in offline state like network error or scheduling.
      * 
-     */
-    IMPORT_C void GoOnlineL();
+	 */
+     IMPORT_C void GoOnlineL();
 
     /**
      * Disables mailbox synchronization. Connection to server
@@ -96,16 +95,16 @@
      * same connection then this function has effect on those
      * mailboxes also.
      * 
-     */
-    IMPORT_C void GoOfflineL();
+	 */
+     IMPORT_C void GoOfflineL();
 
     /**
      * Returns last synchronizing operation progress status.
      *
      * @return last sync operation progress status
      * 
-     */
-    IMPORT_C TFSProgress GetLastSyncStatusL();
+	 */
+     IMPORT_C TFSProgress GetLastSyncStatusL();
 
     /**
      * Forces synchronization of mailbox. This can be called
@@ -131,24 +130,24 @@
      * @param aOperationObserver optional observer given by user
      *
      * @return asynchronous request id
-     */
-    IMPORT_C TInt RefreshNowL( MFSMailRequestObserver& aOperationObserver );
+	 */
+     IMPORT_C TInt RefreshNowL( MFSMailRequestObserver& aOperationObserver );
 
-    IMPORT_C TInt RefreshNowL();
-    
+     IMPORT_C TInt RefreshNowL( );
+  	
     /**
      * cancels all ongoing synchronizations in this mailbox regardless
      * of initiator, by user or by plugin itself
      *
-     */
-    IMPORT_C void CancelSyncL();
+	 */
+     IMPORT_C void CancelSyncL();
 
     /**
      * creates into this mailbox new draft email 
      *
      * @return new draft email object, ownership is transferred to user
      */
-    IMPORT_C CFSMailMessage* CreateMessageToSend();
+  	 IMPORT_C CFSMailMessage* CreateMessageToSend( );
 
 // <qmail>  	 
     /**
@@ -178,7 +177,7 @@
         MFSMailRequestObserver& aOperationObserver );
 // </qmail> 
     
-     /**
+    /**
      * creates into this mailbox new draft email to be forwarded 
      *
      * @param aOriginalMessageId message id of the original message to be forwarded
@@ -187,8 +186,8 @@
      *
      * @return new draft email object, ownership is transferred to user
      */
-    IMPORT_C CFSMailMessage* CreateForwardMessage( const TFSMailMsgId aOriginalMessageId,
-                            const TDesC& aHeaderDescriptor = KNullDesC );
+  	 IMPORT_C CFSMailMessage* CreateForwardMessage( const TFSMailMsgId aOriginalMessageId,
+  	 												const TDesC& aHeaderDescriptor = KNullDesC  );
 
 // <qmail>       
     /**
@@ -218,9 +217,9 @@
      *
      * @return new draft email object, ownership is transferred to user
      */
-    IMPORT_C CFSMailMessage* CreateReplyMessage( const TFSMailMsgId aOriginalMessageId,
-                            const TBool aReplyToAll,
-                            const TDesC& aHeaderDescriptor = KNullDesC );
+  	 IMPORT_C CFSMailMessage* CreateReplyMessage(	const TFSMailMsgId aOriginalMessageId,
+  	 							 					const TBool aReplyToAll,
+  	 							 					const TDesC& aHeaderDescriptor = KNullDesC  );
 
 // <qmail>       
     /**
@@ -245,7 +244,7 @@
      *
      * @param aMessage message to be sent
      */
-    IMPORT_C void SendMessageL( CFSMailMessage& aMessage );
+	 IMPORT_C void SendMessageL(CFSMailMessage& aMessage);
 
 // <qmail>
     /**
@@ -259,41 +258,41 @@
 // </qmail>
 
     /**
-     * List subfolders of given folder.
-     * Only direct subfolders of given folder are returned.
-       *
-       * folder data : 
-       * - folder id
-       * - folder name
-       * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
-       * - message count
-       * - unread message count
-       * - mailbox id 
-       * - parent folder
-       * - subfolder count
-       *
-       * @param aFolderId defines parent folder id. TFSMailId::NullId() for root level list.
-       * @param aFolderList plugin writes results in this array owned by user
-       */
-    IMPORT_C void ListFolders( const TFSMailMsgId aFolderId, RPointerArray<CFSMailFolder>& aFolderList ); 
+	 * List subfolders of given folder.
+	 * Only direct subfolders of given folder are returned.
+	 *
+	 * folder data : 
+	 * - folder id
+	 * - folder name
+	 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
+	 * - message count
+	 * - unread message count
+	 * - mailbox id 
+	 * - parent folder
+	 * - subfolder count
+	 *
+	 * @param aFolderId defines parent folder id. TFSMailId::NullId() for root level list.
+	 * @param aFolderList plugin writes results in this array owned by user
+	 */
+	 IMPORT_C void ListFolders( const TFSMailMsgId aFolderId, RPointerArray<CFSMailFolder>& aFolderList); 
 
-      /**
-       * List all subfolders of mailbox.
-       *
-       * folder data : 
-       * - folder id
-       * - folder name
-       * - folder type ; Inbox, Outbox, Sent Items, Drafts, Deleted Items, Other
-       * - message count
-       * - unread message count
-       * - mailbox id 
-       * - parent folder
-       * - subfolder count
-       *
-       * @return results in this array owned by this object, caller must determine
-       *         tree structure by examining parent id of each returned folder.
-       */
-    IMPORT_C RPointerArray<CFSMailFolder>& ListFolders(); 
+	/**
+	 * List all subfolders of mailbox.
+	 *
+	 * folder data : 
+	 * - folder id
+	 * - folder name
+	 * - folder type ; Inbox, Outbox, Sent Items, Drafts, Deleted Items, Other
+	 * - message count
+	 * - unread message count
+	 * - mailbox id 
+	 * - parent folder
+	 * - subfolder count
+	 *
+	 * @return results in this array owned by this object, caller must determine
+	 *         tree structure by examining parent id of each returned folder.
+	 */
+	 IMPORT_C RPointerArray<CFSMailFolder>& ListFolders(  ); 
 
     /**
      * Standard folder id accessor.
@@ -301,7 +300,7 @@
      * @param aFolderType defines folder type
      * @return standard folder id
      */
-    IMPORT_C TFSMailMsgId GetStandardFolderId( const TFSFolderType aFolderType );
+	 IMPORT_C TFSMailMsgId GetStandardFolderId( const TFSFolderType aFolderType );
 
 
     /**
@@ -310,7 +309,7 @@
      *
      * @return branding id
      */
-    IMPORT_C TDesC& GetBrandingIdL( );
+     IMPORT_C TDesC& GetBrandingIdL( );
 
 
     /**
@@ -320,10 +319,22 @@
      * @param aSourceFolderId source folder id
      * @param aDestinationFolderId destination folder id
      */    
-    IMPORT_C void MoveMessagesL( const RArray<TFSMailMsgId>& aMessageIds, 
-                                 const TFSMailMsgId aSourceFolderId, 
-                                 const TFSMailMsgId aDestinationFolderId );
+     IMPORT_C void MoveMessagesL( const RArray<TFSMailMsgId>& aMessageIds, 
+                                  const TFSMailMsgId aSourceFolderId, 
+                                  const TFSMailMsgId aDestinationFolderId );
 
+     /**
+     * Moves a messages between folders. Async version.
+     *                            
+     * @param MFSMailRequestObserver& aOperationObserver for callback
+     * @param aMessageIds ids of the messages to be transferred
+     * @param aSourceFolderId source folder id
+     * @param aDestinationFolderId destination folder id
+     */    
+	 IMPORT_C TInt MoveMessagesL( MFSMailRequestObserver& aOperationObserver,
+                                  const RArray<TFSMailMsgId>& aMessageIds, 
+                                  const TFSMailMsgId aSourceFolderId, 
+                                  const TFSMailMsgId aDestinationFolderId );
     /**
      * Copies a messages from one folder to another folder.
      * including the properties, content, and all attachments. 
@@ -336,11 +347,11 @@
      * @param aSourceFolderId source folder id
      * @param aDestinationFolderId destination folder id
      */    
-    IMPORT_C void CopyMessagesL( const RArray<TFSMailMsgId>& aMessageIds, 
-                                 RArray<TFSMailMsgId>& aCopiedMessages,
-                                 const TFSMailMsgId aSourceFolderId, 
-                                 const TFSMailMsgId aDestinationFolderId );
-                                  
+     IMPORT_C void CopyMessagesL(	const RArray<TFSMailMsgId>& aMessageIds, 
+							  		RArray<TFSMailMsgId>& aCopiedMessages,
+                              		const TFSMailMsgId aSourceFolderId, 
+                              		const TFSMailMsgId aDestinationFolderId );
+                              		
     /**
      * Asyncronous call for starting search for given string. Only one search can be
      * performed at a time.
@@ -355,33 +366,33 @@
      * results generated by the same search string.
      *    
      * The function will leave with KErrInUse if a search is already in progress.
-   *
+	 *
      * note only works if the store is in an authenticated state,
      * otherwise this function leaves with KErrNotReady
      *
      * @param aSearchStrings text strings that will be searched from different message fields.
-   * @param aSortCriteria sort criteria for the results
-   * @param aSortCriteria sort criteria for the results
+	 * @param aSortCriteria sort criteria for the results
+	 * @param aSortCriteria sort criteria for the results
      * @param aFolderIds user can give list of folders to be searched
      */    
-    IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings,
-                           const TFSMailSortCriteria& aSortCriteria,
-                           MFSMailBoxSearchObserver& aSearchObserver );
+	 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings,
+						    const TFSMailSortCriteria& aSortCriteria,
+					 	    MFSMailBoxSearchObserver& aSearchObserver );
 
-    IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings,
-                           const TFSMailSortCriteria& aSortCriteria,
-                           MFSMailBoxSearchObserver& aSearchObserver,
-                           RArray<TFSMailMsgId> aFolderIds );
+	 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings,
+						    const TFSMailSortCriteria& aSortCriteria,
+					 	    MFSMailBoxSearchObserver& aSearchObserver,
+                            RArray<TFSMailMsgId> aFolderIds );
     /**
      * Cancels current search. Does nothing if there is not any search ongoing.
      * The search client will not be called back after this function is called.
-     *
+	 *
      * note CancelSearch() method does NOT clear the search result cached in the store. 
      *       A different sort order can be used for the same search string, and the 
      *       cache will be utilized.  Only by using a different search string can the
      *       cache be cleaned.
      */    
-    IMPORT_C void CancelSearch();
+	 IMPORT_C void CancelSearch();
 
     /**
      * Inform the store to clean up its cache for search results.
@@ -390,15 +401,15 @@
      * 
      *  This function should be called by the UI when search results are no longer in display.
      */
-    IMPORT_C void ClearSearchResultCache();
+     IMPORT_C void ClearSearchResultCache();
 
-    /**
-     * DEPRECATED
-     *
+	/**
+	 * DEPRECATED
+	 *
      * @param aFolderId...
      * @param aObserver observer
      */    
-    IMPORT_C void AddObserver( const TFSMailMsgId aFolderId, MFSMailEventObserver& aObserver );
+	 IMPORT_C void AddObserver(const TFSMailMsgId aFolderId, MFSMailEventObserver& aObserver);
 
     /** 
      *  Get a list of most recently used addresses of this mailbox.
@@ -411,28 +422,28 @@
      * @return Array of descriptors containing MRUs. Ownership
      *         is transferred. Empty if no entries are found.
      */
-    IMPORT_C MDesCArray* ListMrusL() const;
+     IMPORT_C MDesCArray* ListMrusL() const;
 
     /**
      * Returns the current synchronizing state of this mailbox.
      *
      * @return mailbox synchronizing state data structure
      */
-    IMPORT_C TSSMailSyncState CurrentSyncState() const;
+     IMPORT_C TSSMailSyncState CurrentSyncState() const;
 
     /**
      * mailbox capability check for user
      *
      * @param aCapa mailbox capability to be checked
      */
-    IMPORT_C TBool HasCapability( const TFSMailBoxCapabilities aCapability ) const; 
+	 IMPORT_C TBool HasCapability(const TFSMailBoxCapabilities aCapability) const; 
 
     /**
      * mailbox connection status accessor
      *
      * @return connection status, online / offline
      */
-    IMPORT_C TFSMailBoxStatus GetMailBoxStatus( );
+	 IMPORT_C TFSMailBoxStatus GetMailBoxStatus( );
 
     /**
      * mailbox authentication data mutator
@@ -446,7 +457,7 @@
       * removes downloaded attachments from local/terminal memory 
       */
      IMPORT_C void RemoveDownLoadedAttachmentsL();
-   
+	 
      /**
       * reads connection id from plugin
       *
@@ -461,19 +472,45 @@
       * @param  aConnectionAllowed 
       * @return KErrNone or error code
       */
-     IMPORT_C TInt IsConnectionAllowedWhenRoaming( TBool& aConnectionAllowed ) ;
-   
+     IMPORT_C TInt IsConnectionAllowedWhenRoaming( TBool& aConnectionAllowed) ;
+
+     /**
+      * creates email from RFC822 format data stream located
+      * in given attachment file
+      *
+      * @param  aFile access to file containing data stream contents
+      *         given by user
+      *
+      * return new email object, ownership is transferred to user
+      */
+      IMPORT_C CFSMailMessage* CreateMessageFromFileL( const RFile& aFile );
+
+public: // from  CExtendableEmail
+
+     /**
+     * @see CExtendableEmail::ReleaseExtension()
+     */
+     IMPORT_C void ReleaseExtension( CEmailExtension* aExtension );
+
+     /**
+      * Returns extension by uid, leaves KErrNotSupported if extension is
+      * not available.
+      * @param aInterfaceUid extension interface uid
+      * @return extension pointer. Ownership depends on extension.
+      */
+     IMPORT_C CEmailExtension* ExtensionL( const TUid& aInterfaceUid );
+
 private:
 
-    /**
+  	/**
      * Two-phased constructor
      */
-     void ConstructL( TFSMailMsgId aMailBoxId );
+  	 void ConstructL( TFSMailMsgId aMailBoxId );
 
     /**
      * C++ default constructor.
      */
-     CFSMailBox();
+  	 CFSMailBox();
 
     /**
      * Function used internally to inform that Mru list related to this
@@ -577,12 +614,12 @@
     /**
      * request handler for plugin requests
      */
-    CFSMailRequestHandler*   iRequestHandler;  
+	 CFSMailRequestHandler* 	iRequestHandler;	
 
-    /**
+	/**
      * mailbox folder list
      */
-    RPointerArray<CFSMailFolder> iFolders;
+	 RPointerArray<CFSMailFolder> iFolders;
 
 };
 
--- a/emailservices/emailcommon/inc/CFSMailBoxBase.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailBoxBase.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,6 +23,7 @@
 #include <QExplicitlySharedDataPointer>
 #include <e32base.h>
 #include "CFSMailCommon.h"
+#include "cemailextensionbase.h"
 
 class NmMailboxPrivate;
 class NmMailbox;
@@ -37,42 +38,42 @@
  *  @since S60 S60 v3.1
  */
 
-NONSHARABLE_CLASS ( CFSMailBoxBase ) : public CBase
+NONSHARABLE_CLASS ( CFSMailBoxBase ) : public CExtendableEmail
 {
  public:
-
+  
     /**
      * Two-phased constructor.
      *
      * @param aMailBoxId mailbox id in plugin containing mailbox
      */
-     IMPORT_C static CFSMailBoxBase* NewL( const TFSMailMsgId aMailBoxId );
-
+     IMPORT_C static CFSMailBoxBase* NewL(const TFSMailMsgId aMailBoxId);
+  	
     /**
      * Two-phased constructor.
      *
      * @param aMailBoxId mailbox id in plugin containing mailbox
      */
-     IMPORT_C static CFSMailBoxBase* NewLC( const TFSMailMsgId aMailBoxId );
+     IMPORT_C static CFSMailBoxBase* NewLC(const TFSMailMsgId aMailBoxId);
 
     /**
      * Destructor.
-     */
+     */  
      IMPORT_C virtual ~CFSMailBoxBase();
-
+  	
     /**
      * mailbox id accessor
      *
      * @return mailbox id
      */
-     IMPORT_C TFSMailMsgId GetId() const;
+     IMPORT_C TFSMailMsgId GetId( ) const;
 
     /**
      * mailbox name accessor
      *
      * @return mailbox name
      */
-     IMPORT_C TDesC& GetName() const;
+     IMPORT_C TDesC& GetName( ) const;
 
     /**
      * mailbox name mutator
@@ -80,32 +81,35 @@
      * @param aMailBoxName mailbox name
      */
      IMPORT_C void SetName( const TDesC& aMailBoxName );
-
+	 		
     /**
      * retuns mailbox status accessor
      *
      * @return mailbox status
      */
-     IMPORT_C TFSMailBoxStatus GetStatus() const;
+     IMPORT_C TFSMailBoxStatus GetStatus( ) const;
 
     /**
      * mailbox status mutator
      *
      * @param aStatus mailbox status
      */
+     //<cmail>
+     //function definition is empty, we need to remove it if not needed
+     //</cmail>
      IMPORT_C void SetStatus( const TFSMailBoxStatus aStatus );
 
-    /*
-     * Function to set context of Remote Contact Lookup service for
-     * this mailbox for protocol plugins.
-     *
-     * @param aProtocolUid specifies Ecom implementation UID of
-     *        "Remote Contact Lookup Protocol Adaptation API" to use.
-     * @param aMailBoxId mailbox id in plugin
-     */
-     IMPORT_C void SetRCLInfo( const TUid aProtocolUid, const TUint aMailBoxId );
-
-     /*
+	/*
+	 * Function to set context of Remote Contact Lookup service for
+	 * this mailbox for protocol plugins.
+	 *
+	 * @param aProtocolUid specifies Ecom implementation UID of
+	 *	      "Remote Contact Lookup Protocol Adaptation API" to use.
+	 * @param aMailBoxId mailbox id in plugin
+	 */
+     IMPORT_C void SetRCLInfo(const TUid aProtocolUid, const TUint aMailBoxId);
+ 
+	/*
      * Function to retrieve Remote Contact Lookup service context for
      * this mailbox.
      *
@@ -113,7 +117,7 @@
      *        "Remote Contact Lookup Protocol Adaptation API" to use.
      * @param aMailBoxId mailbox id in plugin
      */
-     IMPORT_C void GetRCLInfo( TUid& aProtocolUid, TUint& aAccountUid );
+     IMPORT_C void GetRCLInfo(TUid& aProtocolUid, TUint& aAccountUid);
 
     /**
      * returns settings view id for mailbox
@@ -127,15 +131,15 @@
      *
      * @param aUid settings view id
      */
-     IMPORT_C void SetSettingsUid( const TUid aUid );
+     IMPORT_C void SetSettingsUid(const TUid aUid);
 
-    /**
-     * Returns a meeting request info processor, which is used for replying
-     * to meeting request received as MMRInfoObjet
-     *
-     * @return meeting info Processor, NULL if not supported by plugin
-     *         ownership not transferred
-     */
+	/**
+	 * Returns a meeting request info processor, which is used for replying
+	 * to meeting request received as MMRInfoObjet
+	 *
+	 * @return meeting info Processor, NULL if not supported by plugin
+	 *         ownership not transferred
+	 */ 
      IMPORT_C MMRInfoProcessor& MRInfoProcessorL();
 
     /**
@@ -143,28 +147,28 @@
      *
      * @return
      */
-     IMPORT_C TBool IsMRInfoProcessorSet();
+	 IMPORT_C TBool IsMRInfoProcessorSet();
+
+	/**
+	 * Meeting request info processor mutator
+	 *
+	 * @param aMrInfoProcessor meeting info Processor, ownership transferred
+	 */ 
+	 IMPORT_C void SetMRInfoProcessorL(MMRInfoProcessor* aMrInfoProcessor);
 
     /**
-     * Meeting request info processor mutator
+     * mailbox own address accessor
      *
-     * @param aMrInfoProcessor meeting info Processor, ownership transferred
+     * @return mailbox own address
      */
-     IMPORT_C void SetMRInfoProcessorL( MMRInfoProcessor* aMrInfoProcessor );
+     IMPORT_C CFSMailAddress& OwnMailAddress( );
 
-     /**
-      * mailbox own address accessor
-      *
-      * @return mailbox own address
-      */
-      IMPORT_C CFSMailAddress& OwnMailAddress();
-    
     /**
      * mailbox own address mutator
      *
      * @param aOwnMailAddress mailbox own address
      */
-     IMPORT_C void SetOwnMailAddressL( CFSMailAddress* aOwnMailAddress );
+     IMPORT_C void SetOwnMailAddressL( CFSMailAddress* aOwnMailAddress);
     
     /**
      * returns nmmailbox constructed with shared data,
@@ -181,54 +185,54 @@
      */
      CFSMailBoxBase();
 
-    /**
-     * branding id accessor
-     */
-     TDesC& BrandingId();
+     /**
+      * branding id accessor
+      */
+      TDesC& BrandingId();
 
 // <qmail> Removed SetMailBoxId </qmail>
 protected: // data
 
 protected: // <cmail>
 
-    /**
+  	/**
      * Two-phased constructor
      */
-     void ConstructL( const TFSMailMsgId aMailBoxId );
-
+  	 void ConstructL( const TFSMailMsgId aMailBoxId );
+  	 
 private: // data
-
-    /**
+ 	
+	/**
      * mailbox name
      */
-     HBufC*               iMailBoxName;
+	 HBufC*	              iMailBoxName;
 
-
-    /**
+	 
+	/**
      * remote contact lookup info
      */
      TUid                 iProtocolUid;
-     TUint                iAccountUid;
-
-    /**
+     TUint 	              iAccountUid;
+	
+	/**
      * settings uid
      */
      TUid                 iSettingsUid;
 
-     /**
+	/**
      * Meeting request info
      */
      MMRInfoProcessor*    iMRInfoProcessor;
 
-    /**
+	/**
      * mailbox own address
      */
-     CFSMailAddress*      iOwnMailAddress;
+	 CFSMailAddress*      iOwnMailAddress;
 
-    /**
-     * branding id
-     */
-     HBufC*                iBrId;
+	 /**
+	  * branding id
+	  */
+	 HBufC*                iBrId;
 
     /**
      * Reference to QT side of the mailbox object.
@@ -242,9 +246,11 @@
      * Variable is mutable in order to maintain 
      * binary compatibility in this API
      */
+// <qmail>
      mutable TPtrC16 iTextPtr;
+// </qmail>
 
 // <qmail> Removed iMailBoxId </qmail>
 };
 
-#endif  // __CFSMAILBOXBASE_H
+#endif 	// __CFSMAILBOXBASE_H
--- a/emailservices/emailcommon/inc/CFSMailCommon.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailCommon.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -24,18 +24,18 @@
 // </qmail>
 #include "nmcommon.h" //NmId
 
-/** folder type definitions */
+/** folder type definitions */  
 enum TFSFolderType
     {
-  EFSInbox = 1,
-  EFSOutbox,
-  EFSDraftsFolder,
-  EFSSentFolder,
-  EFSDeleted,
-  EFSOther
+    EFSInbox = 1,
+    EFSOutbox,
+    EFSDraftsFolder,
+    EFSSentFolder,
+    EFSDeleted,
+    EFSOther
     };
-
-/** email flags */
+    
+/** email flags */  
 enum TFSMsgFlag
     {
     EFSMsgFlag_Read = 1,                 // Message is read (or "seen") on the server
@@ -51,10 +51,10 @@
     EFSMsgFlag_Forwarded = 1024,         // The message was forwarded
     EFSMsgFlag_OnlyToMe = 2048,          // The message was sent only to this user
     EFSMsgFlag_RemoteDeleted = 4096,     // The message has been deleted on the server
-    EFSMsgFlag_HasMsgSender = 8192,      // The message has one or more senders
+    EFSMsgFlag_HasMsgSender = 8192,      // The message has one or more senders 
     };
 
-/** email list sorting options */
+/** email list sorting options */  
 enum TFSMailSortField
     {
     EFSMailDontCare,            // user accepts any sort order
@@ -63,20 +63,20 @@
     EFSMailSortByRecipient,     // sorting is done by recipients
     EFSMailSortBySubject,       // sorting is done by subject
     EFSMailSortByPriority,      // sorting is done by priority
-    EFSMailSortByFlagStatus,    // follow up and completed
+    EFSMailSortByFlagStatus,    // follow up and completed   
     EFSMailSortByUnread,        // sorting is based on unread
     EFSMailSortBySize,          // sorting is done by size
     EFSMailSortByAttachment     // sorting is based on if message has attachments
     };
 
-/** email list sort order */
+/** email list sort order */  
 enum TFSMailSortOrder
     {
-  EFSMailDescending,
-  EFSMailAscending
+    EFSMailDescending,
+    EFSMailAscending    
     };
 
-/** email list sort criteria definition */
+/** email list sort criteria definition */  
 class TFSMailSortCriteria
     {
     public:
@@ -87,8 +87,8 @@
 /** mailbox status */
 enum TFSMailBoxStatus
     {
-  EFSMailBoxOffline = 1,
-  EFSMailBoxOnline
+    EFSMailBoxOffline = 1,
+    EFSMailBoxOnline
     };
 
 /** mailbox capabilities */
@@ -97,96 +97,99 @@
     // Mailbox supports creating subfolders.
     // Not supported by UI in 1.0 release.
     EFSMBoxCapaCreateSubfolder = 1,
-
+    
     // Mailbox supports responding to meeting requests.
     EFSMBoxCapaMeetingRequestRespond,
-
+    
     // Mailbox supports meeting request creation.
     EFSMBoxCapaMeetingRequestCreate,
-
+    
     // Mailbox supports meeting request update.
-  EFSMBoxCapaCanUpdateMeetingRequest,
-
+    EFSMBoxCapaCanUpdateMeetingRequest,     
+    
     // Mailbox supports user folder manipulation (rename and delete).
     // Not supported by UI in 1.0 release.
     EFSMBoxCapaManipulateUserFolders,
-
+    
     // Mailbox supports moving messages to and from user folders.
-    // Not supported in 1.0 release.
+    // Not supported in 1.0 release. 
     // (NOT USED. To be defined in the future.)
     EFSMBoxCapaMoveMessageToUserFolder,
-
+    
+    // Mailbox can move messages in offline or handle go online itself
+    EFSMBoxCapaMoveMessageNoConnectNeeded,
+    
     // Mailbox supports moving messages between folders.
     EFSMBoxCapaMoveToFolder,
-
+    
     // Mailbox supports copying messages between folders.
     // Not supported by UI in 1.0 release.
     EFSMBoxCapaCopyToFolder,
-
+    
     // Mailbox supports smart reply feature.
     // Returned by Intellisync and ActiveSync. UI will fetch rest of message if not supported.
     EFSMBoxCapaSmartReply,
-
+    
     // Mailbox supports smart forward feature.
     // Returned by Intellisync and ActiveSync. UI will fetch rest of message if not supported.
     EFSMBoxCapaSmartForward,
-
+    
     // Mailbox handles itself integration to Symbian Messaging.
     // Not supported by any protocol in 1.0 release.
     //
-    // (Should be returned for mailboxes that handle possible Symbian Messaging
-    // integration themselves. I.e. FW must not ask FS Integration MTM to replicate
-    // these mailboxes to Symbian Messaging. It is intended to prevent duplicate
-    // accounts in Symbian Messaging in the case when protocol plugin actually
-  // already has visible accounts in Symbian Messaging.)
+    // (Should be returned for mailboxes that handle possible Symbian Messaging 
+    // integration themselves. I.e. FW must not ask FS Integration MTM to replicate 
+    // these mailboxes to Symbian Messaging. It is intended to prevent duplicate 
+    // accounts in Symbian Messaging in the case when protocol plugin actually 
+    // already has visible accounts in Symbian Messaging.)
     EFSMBoxCapaSymbianMsgIntegration,
-
+    
     // Mailbox implements new email notifications itself.
     // Not supported by any protocol in 1.0 release.
-  //
-  // (EFSMBoxCapaNewEmailNotifications is intended to be defined for mailboxes that
-  // handle new email notifications some other way than relying to FW
-  // displaying them (e.g. via NCNList). If this is defined for a mailbox then
-  // FW will not monitor and display new email notifications for the mailbox.
-  // The aim is to prevent possible duplicate notifications to user.)
+    //
+    // (EFSMBoxCapaNewEmailNotifications is intended to be defined for mailboxes that 
+    // handle new email notifications some other way than relying to FW 
+    // displaying them (e.g. via NCNList). If this is defined for a mailbox then 
+    // FW will not monitor and display new email notifications for the mailbox.
+    // The aim is to prevent possible duplicate notifications to user.)
     EFSMBoxCapaNewEmailNotifications,
-
-  // Mailbox supports MRU feature.
-  // Framework can check this before updating the list for optimization. Intellisync and ActiveSync need to set.
-  // Capability is not checked in UI. Plugin just returns a null if there’s no MRU list and the UI doesn’t show anything.
+    
+    // Mailbox supports MRU feature.
+    // Framework can check this before updating the list for optimization. Intellisync and ActiveSync need to set.
+    // Capability is not checked in UI. Plugin just returns a null if there’s no MRU list and the UI doesn’t show anything.
     EFSMBoxCapaSupportsMRU,
-
-  // Mailbox can be deleted.
-  // Set by Intellisync and ActiveSync only if the server supports.
-  EFSMBoxCapaCanBeDeleted,
-
-  // Mailbox supports out of office feature.
-  // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
-  // EFSMBoxCapaSupportsOutOfOffice,
-
+     
+    // Mailbox can be deleted.
+    // Set by Intellisync and ActiveSync only if the server supports.
+    EFSMBoxCapaCanBeDeleted,
+        
+    // Mailbox supports out of office feature.
+    // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
+    // EFSMBoxCapaSupportsOutOfOffice,
+    
     // Mailbox supports setting OoO on/off.
     // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
     // EFSMBoxCapaOutOfOfficeSet,
-
+    
     // Mailbox supports editing out of office.
     // Set by Intellisync and ActiveSync. Not used by UI -> can be deprecated?
     // EFSMBoxCapaOutOfOfficeEdit,
-
-  // Mailbox supports saving to drafts automically when "create message to send" and
-  // "save message" (in framework api) are used.
-  EFSMBoxCapaSupportsSaveToDrafts,
-
+    
+    // Mailbox supports saving to drafts automically when "create message to send" and 
+    // "save message" (in framework api) are used.
+    EFSMBoxCapaSupportsSaveToDrafts,
+    
     // Remote Contact Lookup is supported via this mailbox.
     // Set by Intellisync and ActiveSync.
-  EFSMBoxCapaSupportsRCL,
-
-  // Mailbox supports followup. Email UI hides Follow Up flagging if mailbox does not support it.
+    EFSMBoxCapaSupportsRCL,
+    
+    // Mailbox supports followup. Email UI hides Follow Up flagging if mailbox does not support it.
     EFSMBoxCapaSupportsFollowUp,
-
+    
     // Mailbox supports for "do you want to delete"prompt.
     EFSMBoxCapaSupportsDeletedItemsFolder,
 
-  // Mailbox does not support editing original message with smart reply or forward
+    // Mailbox does not support editing original message with smart reply or forward
     EFSMBoxCapaReadOnlySmartQuote,
 
     // Mailbox supports sync
@@ -200,23 +203,35 @@
     EFSMBoxCapaMeetingRequestAttendeeStatus,
 
     EFSMBoxCapaMRRequiresReplyEmail,
-
+    
     // Mailbox supports embedded reply / forward message feature.
-    EFSMBoxCapaEmbeddedReplyForwardMessage
+    EFSMBoxCapaEmbeddedReplyForwardMessage,
+    
+    // Mailbox supports removing entry from calendar
+    EFSMBoxCapaRemoveFromCalendar,
 
+    // Mailbox supports attachments in meeting requests
+    EFSMboxCapaSupportsAttahmentsInMR,
+    
+    // Mailbox supports saving of embedded messages
+    EFSMboxCapaSupportsSavingOfEmbeddedMessages,
+    
+    // Mailbox supports smart editing feature.
+    // Returned by Intellisync and ActiveSync. If defined, UI will fetch message body fully. 
+    EFSMBoxCapaSmartEdit
     };
 
 /** email details included in plugin responses */
-enum TFSMailDetails
-  {
-  EFSMsgDataIdOnly = 1,     // Doesn't get any data. The object just contains the ID.
-  EFSMsgDataDate = 2,       // Get received date only. To be used when showing messages sorted by date.
-                              // The rest would be retreived when needed but date is needed to build the list.
-  EFSMsgDataSubject = 4,    // Like above but when sorting by subject
-  EFSMsgDataSender = 8,     // Likewise for sender address.
-  EFSMsgDataEnvelope = 16,  // Date, subject, Sender, To, Cc at least.
-  EFSMsgDataStructure = 32  // the part structure including mime type, size and name headers.
-  };
+enum TFSMailDetails 
+    {
+    EFSMsgDataIdOnly = 1,       // Doesn't get any data. The object just contains the ID.
+    EFSMsgDataDate = 2,         // Get received date only. To be used when showing messages sorted by date.
+                                // The rest would be retreived when needed but date is needed to build the list.
+    EFSMsgDataSubject = 4,      // Like above but when sorting by subject
+    EFSMsgDataSender = 8,       // Likewise for sender address.
+    EFSMsgDataEnvelope = 16,    // Date, subject, Sender, To, Cc at least.
+    EFSMsgDataStructure = 32    // the part structure including mime type, size and name headers.
+    };
 
     enum TFSPartFetchState
     {
@@ -227,53 +242,60 @@
     EFSEmailStructureUnknown
     };
 
-
 /** class for message part / message / folder / mailbox id */
 class TFSMailMsgId
-  {
-  public:
+    {
+    public:
 
-  inline TFSMailMsgId( ) // constructs NULL id
-  { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; };
-  inline TFSMailMsgId(TUid aPluginId, TUint aId)
-  { iPluginId = aPluginId; iId = aId; iNullId = EFalse; };
-  inline TFSMailMsgId(TUint aPluginId, TUint aId)
-  { iPluginId.iUid = aPluginId; iId = aId; iNullId = EFalse; };
-  inline TFSMailMsgId(NmId aId)
+    inline TFSMailMsgId( ) // constructs NULL id
+    { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; iSeparator = EFalse; };
+    inline TFSMailMsgId(TUid aPluginId, TUint aId)
+    { iPluginId = aPluginId; iId = aId; iNullId = EFalse; iSeparator = EFalse; };
+    inline TFSMailMsgId(TUint aPluginId, TUint aId)
+    { iPluginId.iUid = aPluginId; iId = aId; iNullId = EFalse; iSeparator = EFalse; };
+// <qmail>
+  	inline TFSMailMsgId(NmId aId)
 	{ iPluginId.iUid = aId.pluginId32();
 	  iId = aId.id32();
 	  (aId.id() == 0) ? iNullId = ETrue : iNullId = EFalse;
+	  iSeparator = EFalse;
 	};
-  inline TBool operator==(TFSMailMsgId aId) const
-  { if(iNullId != aId.IsNullId()) return EFalse;
-    if(iPluginId.iUid != aId.PluginId().iUid) return EFalse;
-    if(iId != aId.Id()) return EFalse; return ETrue; };
-  inline TBool operator!=(TFSMailMsgId aId) const
-  { if(iNullId != aId.IsNullId()) return ETrue;
-    if(iPluginId.iUid != aId.PluginId().iUid) return ETrue;
-    if(iId != aId.Id()) return ETrue; return EFalse; }
-  inline TBool IsNullId() const { return iNullId; };
-  inline void  SetNullId() { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; } ;
-  inline TUid PluginId() const { return iPluginId; };
-  inline TUint Id() const { return iId; };
-  inline void  SetPluginId(TUid aPluginId) { iPluginId = aPluginId; iNullId = EFalse; };
-  inline void  SetId(TUint aId) { iId = aId; iNullId = EFalse; };
-  inline NmId GetNmId()
-  {
-    NmId nmid;
-    if( !iNullId ){
-      nmid.setId32(iId);
-      nmid.setPluginId32(iPluginId.iUid);
-    }
-    return nmid;
-  };
+// </qmail>
+    inline TBool operator==(TFSMailMsgId aId) const
+    { if(iNullId != aId.IsNullId()) return EFalse;
+      if(iPluginId.iUid != aId.PluginId().iUid) return EFalse;
+      if(iId != aId.Id()) return EFalse; return ETrue; };
+    inline TBool operator!=(TFSMailMsgId aId) const
+    { if(iNullId != aId.IsNullId()) return ETrue;
+      if(iPluginId.iUid != aId.PluginId().iUid) return ETrue;
+      if(iId != aId.Id()) return ETrue; return EFalse; }
+    inline TBool IsNullId() const { return iNullId; };
+    inline void  SetNullId() { iPluginId.iUid = 0; iId = 0; iNullId = ETrue; } ;
+    inline TUid PluginId() const { return iPluginId; };
+    inline TUint Id() const { return iId; };
+    inline void  SetPluginId(TUid aPluginId) { iPluginId = aPluginId; iNullId = EFalse; };
+    inline void  SetId(TUint aId) { iId = aId; iNullId = EFalse; };
+    inline void SetSeparator( TBool aSeparator ) { iSeparator = aSeparator; }
+    inline TBool IsSeparator() const { return iSeparator; }
+// <qmail>
+  	inline NmId GetNmId()
+  	{
+    	NmId nmid;
+    	if( !iNullId ) {
+      		nmid.setId32(iId);
+      		nmid.setPluginId32(iPluginId.iUid);
+    	}
+    	return nmid;
+  	};
+// </qmail>
 
-  protected:
+    protected:
 
-  TBool iNullId;
-  TUid  iPluginId;      // ecom implementation id
-  TUint iId;            // message, folder, mailbox id
-  };
+    TBool   iNullId;
+    TUid    iPluginId;      // ecom implementation id
+    TUint   iId;            // message, folder, mailbox id
+    TBool   iSeparator;     // if object is separator
+    };
 
 /* Predefined constants for ContentTypes and parameters for ContentType and ContentDisposition */
 _LIT(KFSMailContentTypeMultipartMixed, "multipart/mixed");
@@ -286,6 +308,8 @@
 _LIT(KFSMailContentTypeMessage, "message/rfc822");
 _LIT(KFSMailContentTypeParamName, " name=");
 _LIT(KFSMailContentTypeParamCharset, " charset=");
+_LIT(KFSMailContentTypeTextCalendar, "text/calendar");
+
 
 _LIT(KFSMailContentDispAttachment, " attachment");
 _LIT(KFSMailContentDispParamFilename, " filename=");
@@ -314,8 +338,8 @@
     PasswordNotVerified,
     PushChannelOff,
     PushChannelEstablished,
-  PushChannelOffBecauseBatteryIsLow,
-  OutOfDiskSpace
+    PushChannelOffBecauseBatteryIsLow,
+    OutOfDiskSpace
     };
 
 /**
@@ -371,20 +395,20 @@
         // aParam1: NULL
         // aParam2: NULL
         // aParam3: NULL
-        TFSEventNewMailbox,
+        TFSEventNewMailbox, 
 
         // New mailbox creation failure
         // aParam1: NULL
         // aParam2: NULL
         // aParam3: NULL
-        TFSEventMailboxCreationFailure,
+        TFSEventMailboxCreationFailure, 
 
         // Mailbox renamed
         // aParam1: NULL
         // aParam2: NULL
         // aParam3: NULL
         TFSEventMailboxRenamed,
-
+        
         // Mailbox deleted
         // aParam1: NULL
         // aParam2: NULL
@@ -425,18 +449,19 @@
         // aParam3: NULL
         TFSEventMailboxSyncStateChanged,
 
+// <qmail>
         // New mails created
         // aParam1: RArray<TFSMailMsgId>* aNewEntries
         // aParam2: TFSMailMsgId* aParentFolder
         // aParam3: NULL
-        TFSEventNewMail,
+        TFSEventNewMail, 
 
         // Mails changed
         // aParam1: RArray<TFSMailMsgId>* aEntries
         // aParam2: TFSMailMsgId* aParentFolder
         // aParam3: NULL
         TFSEventMailChanged,
-
+        
         // Mails deleted
         // aParam1: RArray<TFSMailMsgId>* aEntries
         // aParam2: TFSMailMsgId* aParentFolder
@@ -459,14 +484,14 @@
         // aParam1: RArray<TFSMailMsgId>* aNewEntries
         // aParam2: TFSMailMsgId* aParentFolder
         // aParam3: NULL
-        TFSEventNewFolder,
+        TFSEventNewFolder, 
 
         // Folders changed
         // aParam1: RArray<TFSMailMsgId>* aEntries
         // aParam2: TFSMailMsgId* aParentFolder
         // aParam3: NULL
         TFSEventFolderChanged,
-
+        
         // Folders deleted
         // aParam1: RArray<TFSMailMsgId>* aEntries
         // aParam2: TFSMailMsgId* aParentFolder
@@ -478,20 +503,27 @@
         // aParam2: TFSMailMsgId* aNewParentFolder
         // aParam3: TFSMailMsgId* aOldParentFolder
         TFSEventFoldersMoved,
+// </qmail>
 
-        // exception / error happened
+        // exception / error happened 
         // aParam1: TInt (TFsEmailNotifierSystemMessageType) aEventType
         // aParam2: TDesC* aCustomMessage or NULL (optional)
         // aParam3: MFSMailExceptionEventCallback* aCallback or NULL (optional)
         TFSEventException,
+        
+        // Mail deleted from viewer
+        // aParam1: RArray<TFSMailId>* aEntries
+        // aParam2: TFSMailId* aParentFolder
+        // aParam3: NULL
+        TFSEventMailDeletedFromViewer,
         };
-
+        
 /**
  * Progress data structure to indicate different kind of progress
  * information coming from plugins to user. Usually user uses
  * progress events to update progress bar in user interface.
  *
- * Download progress indication :
+ * Download progress indication : 
  *   - first event iProgressStatus = EFSStatus_Started
  *   - next event iProgressStatus = EFSStatus_Status
  *   - last event iProgressStatus = EFSStatus_RequestComplete
@@ -510,7 +542,7 @@
  *   - iProgressStatus = EFSStatus_RequestCancelled
  *   - iMaxCount & iCounter optional, latest values or ignore/unknown = -1
  *   - iError symbian error code
- *
+ * 
  * Connection establisment progress :
  *
  *   - iProgressStatus ; EFSStatus_Waiting, EFSStatus_Connecting,
@@ -525,39 +557,39 @@
 public:
 
     /** possible progress indication states  */
-  enum TFSProgressStatus
-  {
-    EFSStatus_Waiting = 1,
-    EFSStatus_Started,
-    EFSStatus_Connecting,
-    EFSStatus_Connected,
-    EFSStatus_Authenticating,
-    EFSStatus_Authenticated,
-    EFSStatus_Status,
-    EFSStatus_RequestComplete,
-    EFSStatus_RequestCancelled,
-  };
+    enum TFSProgressStatus
+    {
+        EFSStatus_Waiting = 1,
+        EFSStatus_Started,
+        EFSStatus_Connecting,
+        EFSStatus_Connected,
+        EFSStatus_Authenticating,
+        EFSStatus_Authenticated,
+        EFSStatus_Status,
+        EFSStatus_RequestComplete,
+        EFSStatus_RequestCancelled,
+    };
 
 public: // data
-
+                
     /** event progress / completion status*/
     TFSProgressStatus   iProgressStatus;
-
+                    
     /** max value in progress countingc   */
-    TInt        iMaxCount;
+    TInt                iMaxCount;
 
     /** progress counter                  */
-    TInt        iCounter;
+    TInt                iCounter;
 
     /** error code (Symbian error codes)  */
-    TInt        iError;
+    TInt                iError;
 
 // <qmail>	
 	/** Related data parameter (used for async message creation) **/	
     TAny* iParam;
 // </qmail>
     };
-
+    
 // <qmail> Protocol plugins leave with this if API is not implemented
 const TInt KErrFSMailPluginNotSupported = KErrNotSupported - 1000;
 // </qmail>
--- a/emailservices/emailcommon/inc/CFSMailFolder.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailFolder.h	Mon May 03 12:23:15 2010 +0300
@@ -67,8 +67,8 @@
      * @return email list iterator, ownership is transferred to user
      */
      IMPORT_C MFSMailIterator* ListMessagesL(
-                    const TFSMailDetails aDetails,
-                    const RArray<TFSMailSortCriteria>& aSorting);
+                                const TFSMailDetails aDetails,
+                                const RArray<TFSMailSortCriteria>& aSorting);
     /**
      * removes given message from folder
      *
@@ -91,9 +91,9 @@
      * @param aObserver request observer for conveying fetching progress
      *  events to user
      */
-   IMPORT_C TInt FetchMessagesL(  const RArray<TFSMailMsgId>& aMessageIds,
-                    TFSMailDetails aDetails,
-                    MFSMailRequestObserver& aObserver );
+     IMPORT_C TInt FetchMessagesL(  const RArray<TFSMailMsgId>& aMessageIds,
+                                    TFSMailDetails aDetails,
+                                    MFSMailRequestObserver& aObserver );
     /**
      * method to check if this folder allows copying from given folder type
      *
@@ -112,7 +112,19 @@
       * removes downloaded attachments from local/terminal memory 
       */
      IMPORT_C void RemoveDownLoadedAttachmentsL();
+     
+public: // from  CExtendableEmail
 
+     /** 
+      * @see CExtendableEmail::ReleaseExtension
+      */                                        
+     IMPORT_C void ReleaseExtension( CEmailExtension* aExtension );
+     
+     /** 
+      * @see CExtendableEmail::ExtensionL
+      */
+     IMPORT_C CEmailExtension* ExtensionL( const TUid& aInterfaceUid );
+     
  protected:
 
     /**
@@ -125,14 +137,14 @@
     /**
      * Two-phased constructor
      */
-  void ConstructL( TFSMailMsgId aFolderId );
+    void ConstructL( TFSMailMsgId aFolderId );
 
 private: // data
 
     /**
      * request handler for plugin requests
      */
-   CFSMailRequestHandler*   iRequestHandler;  
+     CFSMailRequestHandler*     iRequestHandler;    
 
 };
 
--- a/emailservices/emailcommon/inc/CFSMailFolderBase.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailFolderBase.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -19,8 +19,8 @@
 #ifndef __FSMAILFOLDERBASE_H
 #define __FSMAILFOLDERBASE_H
 
-
 #include "CFSMailMessage.h"
+#include "cemailextensionbase.h"
 
 // <qmail>
 class NmFolder;
@@ -33,7 +33,7 @@
  *  @lib FSFWCommonLib
  *  @since S60 S60 v3.1
  */
-NONSHARABLE_CLASS ( CFSMailFolderBase ) : public CBase
+NONSHARABLE_CLASS ( CFSMailFolderBase ) : public CExtendableEmail
 {
  public:
     
@@ -42,48 +42,48 @@
      *
      * @param aFolderId folder id in plugin containing folder
      */
-    IMPORT_C static CFSMailFolderBase* NewL( const TFSMailMsgId aFolderId );
+     IMPORT_C static CFSMailFolderBase* NewL(const TFSMailMsgId aFolderId);
     
     /**
      * Two-phased constructor.
      *
      * @param aFolderId folder id in plugin containing folder
      */
-    IMPORT_C static CFSMailFolderBase* NewLC( const TFSMailMsgId aFolderId );
+     IMPORT_C static CFSMailFolderBase* NewLC(const TFSMailMsgId aFolderId);
 
     /**
      * Destructor.
      *
      */  
-    IMPORT_C virtual ~CFSMailFolderBase();
+     IMPORT_C virtual ~CFSMailFolderBase();
 
     /**
      * folder id accessor
      *
      * @return folder id
      */
-    IMPORT_C TFSMailMsgId GetFolderId() const;
+     IMPORT_C TFSMailMsgId GetFolderId() const;
 
     /**
      * parent folder id accessor
      *
      * @return parent folder id
      */
-    IMPORT_C TFSMailMsgId GetParentFolderId() const;
+     IMPORT_C TFSMailMsgId GetParentFolderId() const;
 
     /**
      * parent folder id mutator
      *
      * @param aFolderId parent folder id to be set
      */
-    IMPORT_C void SetParentFolderId( const TFSMailMsgId aFolderId );
+     IMPORT_C void SetParentFolderId( const TFSMailMsgId aFolderId );
 
     /**
      * folder name accessor
      *
      * @return folder name
      */
-    IMPORT_C TDesC& GetFolderName() const;
+     IMPORT_C TDesC& GetFolderName() const;
 
     /**
      * Folder name mutator. Note ! Some clients may ignore names set for
@@ -93,91 +93,91 @@
      *
      * @param aFolderName folder name to be set
      */
-    IMPORT_C void SetFolderName( const TDesC& aFolderName );
+     IMPORT_C void SetFolderName(const TDesC& aFolderName);
 
     /**
      * folder type accessor
      *
      * @return folder type
      */
-    IMPORT_C TFSFolderType GetFolderType() const;
+     IMPORT_C TFSFolderType GetFolderType() const;
 
     /**
      * folder type mutator
      *
      * @param aFolderType folder type to be set
      */
-    IMPORT_C void SetFolderType( const TFSFolderType aFolderType );
+     IMPORT_C void SetFolderType( const TFSFolderType aFolderType );
 
     /**
      * returns id of mailbox containing this folder
      *
      * @return mailbox id
      */
-    IMPORT_C TFSMailMsgId GetMailBoxId() const;
+     IMPORT_C TFSMailMsgId GetMailBoxId() const;
 
     /**
      * folder mailbox id mutator
      *
      * @param aMailBoxId mailbox id to be set
      */
-    IMPORT_C void SetMailBoxId( const TFSMailMsgId aMailBoxId );
+     IMPORT_C void SetMailBoxId( const TFSMailMsgId aMailBoxId );
 
     /**
      * returns message count contained by this folder
      *
      * @return message count
      */
-    IMPORT_C TUint GetMessageCount() const;
+     IMPORT_C TUint GetMessageCount() const;
 
     /**
      * returns unread message count contained by this folder
      *
      * @return unread message count
      */
-    IMPORT_C TUint GetUnreadCount() const;
+     IMPORT_C TUint GetUnreadCount() const;
 
     /**
      * returns unseen message count contained by this folder
      *
      * @return unseen message count
      */
-    IMPORT_C TUint GetUnseenCount() const;
+     IMPORT_C TUint GetUnseenCount() const;
 
     /**
      * returns subfolder count contained by this folder
      *
      * @return subfolder count
      */
-    IMPORT_C TUint GetSubFolderCount() const;
+     IMPORT_C TUint GetSubFolderCount() const;
 
     /**
      * set message count contained by this folder
      *
      * @param aMessageCount message count
      */
-    IMPORT_C void SetMessageCount( const TUint aMessageCount );
+     IMPORT_C void SetMessageCount( const TUint aMessageCount );
 
     /**
      * set unread message count contained by this folder
      *
      * @param aMessageCount unread message count
      */
-    IMPORT_C void SetUnreadCount( const TUint aMessageCount );
+     IMPORT_C void SetUnreadCount( const TUint aMessageCount );
 
     /**
      * set unseen message count contained by this folder
      *
      * @param aMessageCount unseen message count
      */
-    IMPORT_C void SetUnseenCount( const TUint aMessageCount );
+     IMPORT_C void SetUnseenCount( const TUint aMessageCount );
 
     /**
      * set subfolder count contained by this folder
      *
      * @param subfolder count
      */
-    IMPORT_C void SetSubFolderCount( const TUint aMessageCount );
+     IMPORT_C void SetSubFolderCount( const TUint aMessageCount );
 
     /**
      * blocks copying to this folder from given folder types
@@ -186,8 +186,8 @@
      * @param aMailBoxStatus mailbox status (online / offline) when
      * blocking is done
      */
-    IMPORT_C void BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
-                  TFSMailBoxStatus aMailBoxStatus );
+     IMPORT_C void BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
+                                    TFSMailBoxStatus aMailBoxStatus );
     /**
      * blocks moving to this folder from given folder types
      *
@@ -195,8 +195,8 @@
      * @param aMailBoxStatus mailbox status (online / offline) when
      * blocking is done
      */
-    IMPORT_C void BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
-                  TFSMailBoxStatus aMailBoxStatus );
+     IMPORT_C void BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
+                                    TFSMailBoxStatus aMailBoxStatus );
 
     // <qmail>
     /**
@@ -213,27 +213,26 @@
      */
      CFSMailFolderBase();
 
+// <qmail>
      /**
       * Two-phased constructor
       */
-    IMPORT_C void ConstructL( const TFSMailMsgId aFolderId );     
+    IMPORT_C void ConstructL( const TFSMailMsgId aFolderId );
+// </qmail>  
 
-    /**
-     * folder id
-     */
-    TFSMailMsgId             iFolderId;
+// <qmail> unnecessary iFolderId member removed </qmail>
 
     /**
      * blocked folders in copying
      */
-    RArray<TFSFolderType>    iCopyOfflineBlocked;
-    RArray<TFSFolderType>    iCopyOnlineBlocked;
+     RArray<TFSFolderType>    iCopyOfflineBlocked;
+     RArray<TFSFolderType>    iCopyOnlineBlocked;
 
     /**
      * blocked folders in moving
      */
-    RArray<TFSFolderType>    iMoveOfflineBlocked;
-    RArray<TFSFolderType>    iMoveOnlineBlocked;
+     RArray<TFSFolderType>    iMoveOfflineBlocked;
+     RArray<TFSFolderType>    iMoveOnlineBlocked;
 
 
 private: // data
--- a/emailservices/emailcommon/inc/CFSMailIterator.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailIterator.h	Mon May 03 12:23:15 2010 +0300
@@ -45,16 +45,16 @@
      */
      IMPORT_C static CFSMailIterator* NewL( MFSMailIterator& aIterator,
                                    CFSMailRequestHandler* aRequestHandler );
-                  
+									
     /**
      * Two-phased constructor.
      *
      * @param aIterator plugin iteraror 
      * @param aRequestHandler request handler for plugin requests
      */
-     IMPORT_C static CFSMailIterator* NewLC(  MFSMailIterator& aIterator,
-                  CFSMailRequestHandler* aRequestHandler );
-                  
+     IMPORT_C static CFSMailIterator* NewLC(	MFSMailIterator& aIterator,
+									CFSMailRequestHandler* aRequestHandler );
+									
     /**
      * see MFSMailIterator::NextL
      *
@@ -89,11 +89,11 @@
     /**
      * Destructor.
      */  
-     ~CFSMailIterator();
-          
+   	 ~CFSMailIterator();
+        	
 private:
 
-    /**
+  	/**
      * Two-phased constructor
      */
      void ConstructL( MFSMailIterator& aIterator,
@@ -102,25 +102,25 @@
     /**
      * C++ default constructor.
      */
-     CFSMailIterator();
+  	 CFSMailIterator();
 
     /**
      * sets request handler
      */
      void SetAsyncRequestHandler(RPointerArray<CFSMailMessage>& aMessages);
-    
+  	
 private: // data
  
     /**
      * request handler for plugin requests
      */
-     CFSMailRequestHandler*    iRequestHandler; 
+     CFSMailRequestHandler*    iRequestHandler;	
 
     /**
      * plugin iterator
      */
      MFSMailIterator*          iIterator;
-    };
+   	};
 
 #endif  // M_FSMAILITERATOR_H
 
--- a/emailservices/emailcommon/inc/CFSMailMessage.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailMessage.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -43,7 +43,7 @@
      * @param aMessageId message id in plugin containing email
      */
      IMPORT_C static CFSMailMessage* NewL( TFSMailMsgId aMessageId );
-
+    
     /**
      * Two-phased constructor.
      *
@@ -51,19 +51,21 @@
      */
      IMPORT_C static CFSMailMessage* NewLC( TFSMailMsgId aMessageId );
 
+// <qmail>
      /**
       * Two-phased constructor.
       *
       * @param aMessageId message id in plugin containing email
       */
       IMPORT_C static CFSMailMessage* NewL( const NmMessage &aMessage );
+// </qmail>
 
     /**
      * saves this message
      */
      IMPORT_C void SaveMessageL();
 
-     //<qmail>
+// <qmail>
     /**
      * saves this message asynchronously
      */
@@ -74,99 +76,99 @@
      */
     IMPORT_C TInt SaveMessagePartsL(
             MFSMailRequestObserver& aOperationObserver);
-    //</qmail>
+// </qmail>
 
     /**
      * destructor
-     */
+     */  
      IMPORT_C ~CFSMailMessage();
 
     /**
      * Adds new attachment to this email.
-     *
+     * 
      * @param aFilePath contains full path to new attachment file.
      * @param aInsertBefore specifies position where new attachment is created.
      *        If NullId then new attachment is created as last.
      *
      * @return new email part object, ownership is transferred to user
-     */
+     */ 
      IMPORT_C CFSMailMessagePart* AddNewAttachmentL( const TDesC& aFilePath,
                                                      const TFSMailMsgId aInsertBefore);
 
-     // <qmail>
+// <qmail>
      /**
       * Adds new attachment to this email asynchronously
       */
      IMPORT_C TInt AddNewAttachmentL( const TDesC& aFilePath,
                                       MFSMailRequestObserver& aOperationObserver);
-     // </qmail>
+// </qmail>
      
      /**
       * Adds new attachment to this email.
-      *
+      * 
       * @param aFile contains access to new attachment file.
       * @param aMimeType user can give content type of the new part,
       *        otherwise content type is tried to recognized by method
       *
       * @return new email part object, ownership is transferred to user
-      */
-     IMPORT_C CFSMailMessagePart* AddNewAttachmentL( RFile& aFile,
+      */ 
+     IMPORT_C CFSMailMessagePart* AddNewAttachmentL( RFile& aFile, 
                                                      const TDesC8& aMimeType );
 
      /**
-   * Returns a flat list of message parts that can be handled as attachments.
-   * Excludes message parts that are multipart and parts that are considered
-   * plain text or html body.
-   *
-   * @param aParts contains flat list of attachments
-   */
-   IMPORT_C void AttachmentListL(RPointerArray<CFSMailMessagePart>& aParts);
+     * Returns a flat list of message parts that can be handled as attachments.
+     * Excludes message parts that are multipart and parts that are considered
+     * plain text or html body.
+     * 
+     * @param aParts contains flat list of attachments
+     */        
+     IMPORT_C void AttachmentListL(RPointerArray<CFSMailMessagePart>& aParts);
 
-   //<qmail>
+// <qmail>
     /**
      * Returns plain text body part for this email or NULL if not found.
-     *
+     * 
      * @return plain text email body part, ownership is transferred to user
-     */
+     */        
     IMPORT_C CFSMailMessagePart* PlainTextBodyPartL(
             TFSMailMessagePartDataSource aDataSource =
                     EDataSourceMessageStore);
 
     /**
      * Returns html body part for this message or NULL if not found.
-     *
+     * 
      * @return html email body part, ownership is transferred to user
-     */
+     */        
     IMPORT_C CFSMailMessagePart* HtmlBodyPartL(
             TFSMailMessagePartDataSource aDataSource =
                     EDataSourceMessageStore);
-    //</qmail>
+// </qmail>
 
     /**
      * Returns ETrue if this part is actually a message.
      * In that case it shoud safe to cast this part to CFSMailMessage
-     *
+     * 
      * @return true if this message part is a message
-     */
-   IMPORT_C TBool IsMessageL() const;
+     */        
+     IMPORT_C TBool IsMessageL() const;
 
-   /**
+     /**
      * Returns a flat list of message parts that can be handled as attachments.
      * Excludes message parts that are multipart and parts that are considered
      * plain text or html body.
-     *
+     * 
      * @param aParts contains flat list of attachments
-     */
+     */        
      void DoAttachmentListL(RPointerArray<CFSMailMessagePart>& aParts);
 
-    //<qmail>
+// <qmail>
     /**
      * gets the new NmMessage object
      *
      * @return NmMessage object based on iNmPrivateMessagePart and iNmPrivateMessageEnvelope
      */
     IMPORT_C NmMessage* GetNmMessage();
-    //</qmail>
+// </qmail>
 
  protected:
 
@@ -182,18 +184,20 @@
      */
      void ConstructL( TFSMailMsgId aMessageId );
 
+// <qmail>
      /**
       * Two-phased constructor
       */
       void ConstructL( const NmMessage &aMessage );
+// </qmail>
 
     /**
      * Returns content-type parameters and their associated values.
      * This function is made private to prevent usage from CFSMailMessage
-     *
+     * 
      * @return content type parameters
      */
-  CDesCArray& ContentTypeParameters();
+    CDesCArray& ContentTypeParameters();
 
  private: // data
     //<qmail>
--- a/emailservices/emailcommon/inc/CFSMailMessageBase.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailMessageBase.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,9 +21,8 @@
 
 #include <e32std.h>
 #include <e32base.h>
-
-
 #include "CFSMailAddress.h"
+#include "cemailextensionbase.h"
 
 //<qmail>
 #include <QExplicitlySharedDataPointer>
@@ -31,13 +30,15 @@
 class NmMessageEnvelope;
 //</qmail>
 
+class CFSMailRequestHandler;
+
 /**
  *  email handling base class
  *
  *  @lib FSFWCommonLib
  *  @since S60 v3.1
  */
-NONSHARABLE_CLASS ( CFSMailMessageBase ) : public CBase
+NONSHARABLE_CLASS ( CFSMailMessageBase ) : public CExtendableEmail
 {
  public:
 
@@ -46,14 +47,14 @@
      *
      * @param aMessageId id of the email to be created
      */
-     IMPORT_C static CFSMailMessageBase* NewL( const TFSMailMsgId aMessageId );
+     IMPORT_C static CFSMailMessageBase* NewL(const TFSMailMsgId aMessageId);
     
     /**
      * Two-phased constructor.
      *
      * @param aMessageId id of the email to be created
      */
-     IMPORT_C static CFSMailMessageBase* NewLC( const TFSMailMsgId aMessageId );
+     IMPORT_C static CFSMailMessageBase* NewLC(const TFSMailMsgId aMessageId);
  
     /**
      * Destructor.
@@ -67,7 +68,7 @@
      */
      IMPORT_C TFSMailMsgId GetMessageId() const;
      
-     /**
+    /**
      * if email is related to another email, for example due reply / forward,
      * related email id is returned
      *
@@ -75,7 +76,7 @@
      */
      IMPORT_C TFSMailMsgId IsRelatedTo() const;
 
-     /**
+    /**
      * set email related to another email, for example due reply / forward
      *
      * @param aMessageId related email id
@@ -122,8 +123,9 @@
      *
      * @param aSender email sender address, ownership transferred from user
      */
-     IMPORT_C void SetSender( CFSMailAddress* aSender );
+     IMPORT_C void SetSender(CFSMailAddress* aSender);
 
+// <qmail>
     /**
      * returns TO-recipients list of email
      *
@@ -144,13 +146,14 @@
      * @return bcc-recipients list, ownership not transferred user
      */
      IMPORT_C RPointerArray<CFSMailAddress> GetBCCRecipients( );
+// </qmail>
 
     /**
      * appends one recipient to email TO-field, ownership transferred from user
      *
      * @param aRecipient new recipient email address
      */
-     IMPORT_C void AppendToRecipient( CFSMailAddress* aRecipient );
+     IMPORT_C void AppendToRecipient( CFSMailAddress* aRecipient);
 
     /**
      * appends one recipient to email CC-field, ownership transferred from user
@@ -170,19 +173,19 @@
      * clears email TO-recipients list
      *
      */
-     IMPORT_C void ClearToRecipients();
+     IMPORT_C void ClearToRecipients( );
 
     /**
      * clears email CC-recipients list
      *
      */
-     IMPORT_C void ClearCcRecipients();
+     IMPORT_C void ClearCcRecipients( );
 
     /**
      * clears email BCC-recipients list
      *
      */
-     IMPORT_C void ClearBccRecipients();
+     IMPORT_C void ClearBccRecipients( );
 
     /**
      * email subject accessor
@@ -196,7 +199,7 @@
      *
      * @param aSubject new email subject
      */
-     IMPORT_C void SetSubject( const TDesC& aSubject );
+     IMPORT_C void SetSubject(const TDesC& aSubject);
 
     /**
      * email date accessor
@@ -210,28 +213,28 @@
      *
      * @param aDate new email date
      */
-     IMPORT_C void SetDate( const TTime aDate );
+     IMPORT_C void SetDate(const TTime aDate);
 
     /**
      * email flags accessor
      *
      * @return email flags
      */
-     IMPORT_C TInt GetFlags() const;
+     IMPORT_C TInt GetFlags( ) const;
 
     /**
      * email flag set
      *
      * @aFlag email flag to be set
      */
-     IMPORT_C void SetFlag( const TInt aFlag );
+     IMPORT_C void SetFlag(const TInt aFlag);
 
     /**
      * email flag reset
      *
      * @aFlag email flag to be reset
      */
-     IMPORT_C void ResetFlag( const TInt aFlag );
+     IMPORT_C void ResetFlag(const TInt aFlag);
 
     /**
      * test email flag is set
@@ -239,7 +242,7 @@
      * @aFlag email flag to be tested
      * @return email flag status (set/reset)
      */
-     IMPORT_C TBool IsFlagSet( const TInt aFlag ) const;
+     IMPORT_C TBool IsFlagSet(const TInt aFlag) const;
 
     /**
      * Email reply-to address accessor ; defines optional email address
@@ -255,16 +258,38 @@
      *
      * @param aReplyToAddress email reply-to address
      */
-     IMPORT_C void SetReplyToAddress( CFSMailAddress* aReplyToAddress );
+     IMPORT_C void SetReplyToAddress(CFSMailAddress* aReplyToAddress);
 
-    // <qmail>
+     /**
+      * plugin request handler accessor
+      * 
+      * @return request handler
+      */
+     IMPORT_C CFSMailRequestHandler& RequestHandler( );
+	 
+// <qmail>
     /**
      * gets the new NmMessageEnvelope object
      *
      * @return NmMessageEnvelope object
      */
      IMPORT_C NmMessageEnvelope* GetNmMessageEnvelope();
-    // </qmail>
+// </qmail>
+          
+public: // from  CExtendableEmail
+
+     /**
+     * @see CExtendableEmail::ReleaseExtension
+     */                                        
+     IMPORT_C void ReleaseExtension( CEmailExtension* aExtension );
+     
+     /**
+      * Returns extension by uid, leaves KErrNotSupported if extension is
+      * not available.
+      * @param aInterfaceUid extension interface uid
+      * @return extension pointer. Ownership depends on extension.
+      */
+     IMPORT_C CEmailExtension* ExtensionL( const TUid& aInterfaceUid );
 
  protected:
 
@@ -273,12 +298,13 @@
      */
      CFSMailMessageBase();
 
+// <qmail>
     /**
      * ConstructL
      */
     IMPORT_C void ConstructL( const TFSMailMsgId aMessageId );      
 
-    void ConstructL( const NmMessageEnvelope &aMessageEnvelope );
+    IMPORT_C void ConstructL( const NmMessageEnvelope &aMessageEnvelope );
     
     /**
      * email message id mutator
@@ -286,13 +312,18 @@
      * @param aMessageId message id to be set
      */
     IMPORT_C void SetMessageId( const TFSMailMsgId aMessageId );
-   
-    // <qmail>
+// </qmail>
+ 
+protected:	// data
+    // Request handler from tls 
+    CFSMailRequestHandler*          iRequestHandler;
+	
+//<qmail>
     /**
      * Reference to QT side of the message meta data object.
      */
      QExplicitlySharedDataPointer<NmMessageEnvelopePrivate> iNmPrivateMessageEnvelope;
-    // </qmail>
+//</qmail>
 
  private: // data
 
@@ -312,21 +343,29 @@
      */
      TFSMailMsgId    iFolderId;
 
+// <qmail>
      /**
      * email sender address
      * do not use it directly!
      */
      CFSMailAddress*    iSender;
+// </qmail>
 
      /**
      * email reply-to address
      */
      CFSMailAddress*    iReplyTo;
 
+// <qmail>
+// Unnecessary members removed: iToRecipients, iCcRecipients, iBccRecipients, iFlags, iDate
+// </qmail>
+
+// <qmail>
     /**
      * email subject
      */
      mutable TPtrC    iSubjectPtr;
+// </qmail>
      
 };
 
--- a/emailservices/emailcommon/inc/CFSMailMessagePart.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailMessagePart.h	Mon May 03 12:23:15 2010 +0300
@@ -38,7 +38,6 @@
 class CFSMailPlugin;
 class CFSMailMessage;
 class MFSMailRequestObserver;
-class CFSMailRequestHandler;
 
 const TInt KArrayGranularity = 16;
 
@@ -51,7 +50,7 @@
 NONSHARABLE_CLASS ( CFSMailMessagePart ) : public CFSMailMessageBase
 {
  public:
-    //<qmail>
+// <qmail>
     /**
      * Enumeration to indicate data source
      */
@@ -60,7 +59,7 @@
         EDataSourceMessageStore = 0,    // plugin (data from message store)
         EDataSourceLocal                // internal private shared object
         };
-    //<qmail>
+// </qmail>
    
  public:
 
@@ -80,31 +79,35 @@
      */
      IMPORT_C static CFSMailMessagePart* NewLC( TFSMailMsgId aMessageId, TFSMailMsgId aMessagePartId );
 
+// <qmail>
      /**
       * Two-phased constructor.
       *
       * @param aMessageId message id in plugin containing email
       */
       IMPORT_C static CFSMailMessagePart* NewLC( const NmId &aNmMessageId, const NmMessagePart& aNmMessagePart );     
-     
+// </qmail>
+
     /**
      * destructor
      */  
      IMPORT_C virtual ~CFSMailMessagePart();
      
-  /**
+    /**
      * email part id accessor
      *
      * @return email part id
      */
      IMPORT_C TFSMailMsgId GetPartId() const;
 
+// <qmail>
     /**
      * email part content-type accessor (e.g. "text/plain")
      *
      * @return email part content type
      */
      IMPORT_C const TDesC& GetContentType() const;
+// </qmail>
     
     /**
      * email part content-type mutator 
@@ -123,8 +126,8 @@
      IMPORT_C CDesCArray& ContentTypeParameters();
      
     /**
-   * Returns email Content-Description value, includes also parameters,
-   * if any.
+     * Returns email Content-Description value, includes also parameters,
+     * if any.
      *
      * @return email Content-Description
      */
@@ -195,7 +198,8 @@
      * saves this message part 
      */
      IMPORT_C void SaveL();
-    
+
+// <qmail>
     /**
      * lists all direct child parts of this email part
      *
@@ -204,6 +208,7 @@
      */
      IMPORT_C void ChildPartsL(RPointerArray<CFSMailMessagePart>& aParts, 
          TFSMailMessagePartDataSource aDataSource = EDataSourceMessageStore);
+// </qmail>
 
     /**
      * Returns child part of this part identified by part id.
@@ -219,7 +224,7 @@
      * 
      * @return ETrue if this email part is email
      */        
-   IMPORT_C virtual TBool IsMessageL() const;
+     IMPORT_C virtual TBool IsMessageL() const;
 
     /**
      * Creates and adds a new child part to this email part
@@ -235,7 +240,7 @@
 
     /**
      * Copies given email object as new child part of this email part or email.
-   *
+     *
      * @param aInsertBefore defines place of where new child part is created,
      * if aInsertBefore is NULL id then new part is added as last.
      * @param aMessage message to be copied as child part
@@ -252,6 +257,20 @@
      */
      IMPORT_C void RemoveChildPartL(TFSMailMsgId aPartId);
 
+// <qmail>
+     /**
+      * Removes child part (and it's children, if any) from this email part
+      * 
+      * @param aPartId part id of the email part to be removed
+      * @param aOperationObserver Observer for the operation 
+      * 
+      * @return id of the request, KErrNotSupported if the protocol plugin this
+      * instance is attached to does not support the async method.
+      */
+     IMPORT_C TInt RemoveChildPartL( TFSMailMsgId aPartId,
+                                     MFSMailRequestObserver& aOperationObserver);
+// </qmail>
+     
     /**
      * Retrieves a read-only file handle for the content file of this message part.
      * The caller must close the file handle.
@@ -334,7 +353,7 @@
      * @param aStartOffset offset from content begin
      */
      IMPORT_C void GetContentToBufferL(TDes16& aBuffer, TUint aStartOffset);
-  
+    
     /**
      * copies email part contents from buffer given by user
      *
@@ -342,41 +361,34 @@
      */
      IMPORT_C void SetContent(TDes16& aBuffer); 
 
-  /**
+    /**
      * meeting request accessor if email part is a meeting request
      * 
      * @return meeting request object
      */
      IMPORT_C MMRInfoObject& GetMRInfo();
-  
-  /**
-   * stores given meeting request object as email part
-   * 
-   * @param aMeetingRequest meeting request object
-   */
+    
+    /**
+     * stores given meeting request object as email part
+     * 
+     * @param aMeetingRequest meeting request object
+     */
      IMPORT_C void SetMRInfo(MMRInfoObject* aMeetingRequest);
 
     /**
-   * method checks if MRInfo exists
-   * 
-   * @return true / false
-   */
-   IMPORT_C TBool IsMRInfoSet();
+     * method checks if MRInfo exists
+     * 
+     * @return true / false
+     */
+     IMPORT_C TBool IsMRInfoSet();
 
     /**
-   * plugin request handler accessor
-   * 
-   * @return request handler
-   */
-     IMPORT_C CFSMailRequestHandler& RequestHandler( );
-
-  /**
      * Sets attachment name for email part. Full path can be
      * given as input even though only filename is saved. 
      * 
      * @param aFilePath attachment name
      */        
-   IMPORT_C void SetAttachmentNameL(const TDesC& aFilePath);
+     IMPORT_C void SetAttachmentNameL(const TDesC& aFilePath);
 
     /**
      * returns email part attachment name
@@ -384,7 +396,8 @@
      * @return attachment name
      */        
      IMPORT_C TDesC& AttachmentNameL();
-  
+    
+// <qmail>
     /**
      * finds email body part based on given content type 
      * (plain text or html body part of email message)
@@ -396,7 +409,16 @@
      */
      IMPORT_C CFSMailMessagePart* FindBodyPartL(const TDesC& aContentType,
          TFSMailMessagePartDataSource aDataSource = EDataSourceMessageStore);
+// </qmail>
 
+    /**
+     * Checks that content type matches given.
+     * 
+     * @param aContentType body part content type to be checked
+     *
+     * @return ETrue if content type of message part matches tto given
+     */
+     IMPORT_C TBool ContentTypeMatches( const TDesC& aContentType );
 
     /**
      * starts email part fetching from email server
@@ -411,9 +433,9 @@
      *
      * @return err code
      */        
-   IMPORT_C TInt FetchMessagePartL(   const TFSMailMsgId aMessagePartId,
-                          MFSMailRequestObserver& aOperationObserver,
-                        const TUint aPreferredByteCount);
+     IMPORT_C TInt FetchMessagePartL(   const TFSMailMsgId aMessagePartId,
+                                        MFSMailRequestObserver& aOperationObserver,
+                                        const TUint aPreferredByteCount);
 
     /**
      * starts email parts fetching from email server
@@ -428,36 +450,36 @@
      *
      * @return err code
      */        
-   IMPORT_C TInt FetchMessagesPartsL( const RArray<TFSMailMsgId>& aMessagePartIds,
-                        MFSMailRequestObserver& aOperationObserver,
-                        const TUint aPreferredByteCount);
-  /**
-   * creates a list containing all email / email part subparts
-   * 
-   * @param aParts email part list given/owned by user
-   */        
-   IMPORT_C void AppendAttachmentsL(RPointerArray<CFSMailMessagePart>& aParts);
+     IMPORT_C TInt FetchMessagesPartsL( const RArray<TFSMailMsgId>& aMessagePartIds,
+                                        MFSMailRequestObserver& aOperationObserver,
+                                        const TUint aPreferredByteCount);
+    /**
+     * creates a list containing all email / email part subparts
+     * 
+     * @param aParts email part list given/owned by user
+     */        
+     IMPORT_C void AppendAttachmentsL(RPointerArray<CFSMailMessagePart>& aParts);
 
-  /**
-   * sets email part fetch status
-   * 
-   * @param aMessagePartStatus (EFSMessagePartsKnown)
-   */
+    /**
+     * sets email part fetch status
+     * 
+     * @param aMessagePartStatus (EFSMessagePartsKnown)
+     */
      IMPORT_C void SetMessagePartsStatus(TFSPartFetchState aMessagePartStatus);
 
     /**
-   * Adds new attachment to this email (part).
-   * 
-   * @param aFilePath full path of new attachment.
-   * @param aInsertBefore defines position of new attachment,
-   *        if NullId then new attachment is created as last part.
-   * @param aContentType attachment content type
+     * Adds new attachment to this email (part).
+     * 
+     * @param aFilePath full path of new attachment.
+     * @param aInsertBefore defines position of new attachment,
+     *        if NullId then new attachment is created as last part.
+     * @param aContentType attachment content type
 
      * @return new email part, ownership is transferred to user
-   */ 
-   IMPORT_C CFSMailMessagePart* AddNewAttachmentL( const TDesC& aFilePath, 
-                                                   const TFSMailMsgId aInsertBefore,
-                                                   const TDesC& aContentType );
+     */ 
+     IMPORT_C CFSMailMessagePart* AddNewAttachmentL( const TDesC& aFilePath, 
+                                                     const TFSMailMsgId aInsertBefore,
+                                                     const TDesC& aContentType );
     /**
      * read only part size accessor (character or byte count)
      *
@@ -478,16 +500,16 @@
       */
      IMPORT_C void RemoveDownLoadedAttachmentsL();
      
-     //<qmail>
+// <qmail>
      /**
  	 * gets the new NmMessagePart object
  	 *
  	 * @return NmMessagePart object
  	 */
  	 IMPORT_C NmMessagePart* GetNmMessagePart();
-     //<qmail>
+// </qmail>
  	 
- 	 //<qmail>
+// <qmail>
      /**
       * Gets the text content from private shared object.
       * Returns the ownership of text buffer to caller.
@@ -496,7 +518,7 @@
       * @return HBufC*
       */
      IMPORT_C HBufC* GetLocalTextContentLC();
-     //<qmail>
+// </qmail>
      
      
 public: // data
@@ -512,7 +534,7 @@
      * lists subparts
      */
      void ListMessagePartsL( RPointerArray<CFSMailMessagePart>& aParts );
-       
+         
     /**
      * clears internal part array
      */
@@ -521,7 +543,7 @@
     /**
      * finds id of body part
      */
-   TFSMailMsgId FindBodyPartIdL(const TDesC& aContentType);
+     TFSMailMsgId FindBodyPartIdL(const TDesC& aContentType);
 
      /**
      * Returns a flat list of message parts that can be handled as attachments.
@@ -534,37 +556,37 @@
 
 protected: // data
 
-   CFSMailRequestHandler*       iRequestHandler;  
-
     /**
      * email fetch from email server status
      */
-   TFSPartFetchState          iMessagePartsStatus;
+     TFSPartFetchState                  iMessagePartsStatus;
 
+// <qmail>
  	/**
  	 * message part MIME type - pointer descriptor to access QString object
  	 */
  	 mutable TPtrC						iContentTypePtr;
+// </qmail>
 	 
   	/** message parts array */
 	 RPointerArray<CFSMailMessagePart>	iMessageParts;
 	 TBool                              iReadMessageParts;
 	 
-    //<qmail>
+// <qmail>
 	/**
 	 * Reference to QT side of the message meta data object.
 	 */
 	 QExplicitlySharedDataPointer<NmMessagePartPrivate> iNmPrivateMessagePart;
-    //<qmail>
+// </qmail>
 
 protected:
 
-  /**
+    /**
      * Two-phased constructor
      */
      void ConstructL( TFSMailMsgId aMessageId, TFSMailMsgId aMessagePartId );
 
-    //<qmail>
+// <qmail>
     /**
      * Two-phased constructor
      */
@@ -572,16 +594,20 @@
 
      void ConstructL(const NmMessagePart& aNmMessagePart,
                      const NmMessageEnvelope& aNmMessageEnvelope);
-    //<qmail>
+// </qmail>
+
+private:    // data
 
-private:	// data
-
+// <qmail>
+// Unnecessary members removed: iMessagePartId, iContentSize, iFetchedContentSize
+// </qmail>
      /** read only part size */
      TUint           iReadOnlyPartSize;
 
      /** fetched from email server indication */
      TBool           iIsFetched;
 
+// <qmail>
    	/**
    	 * email content decription  - pointer descriptor to access QString object
    	 */
@@ -591,6 +617,7 @@
    	 * email content disposition  - pointer descriptor to access QString object
    	 */
    	 mutable TPtrC	iContentDispositionPtr;
+// </qmail>
  	 
      /** attachment name */
      HBufC           *iAttachmentName;
@@ -598,10 +625,12 @@
      /** email content class */
      HBufC           *iContentClass;
 
+// <qmail>
     /**
      * email content id  - pointer descriptor to access QString object
      */
-     mutable TPtrC	iContentIDPtr;     
+     mutable TPtrC	iContentIDPtr;
+// </qmail>
 
      /** content disposition parameters */
      CDesCArray      *iContentDispositionParams;
@@ -610,7 +639,7 @@
      CDesCArray      *iContentTypeParams;
 
      /** meeting request object */
-     MMRInfoObject*  iMeetingRequest;           
+     MMRInfoObject*  iMeetingRequest;                       
 
      /* temp file handle */
      RFile           iFile;
--- a/emailservices/emailcommon/inc/CFSMailPluginData.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailPluginData.h	Mon May 03 12:23:15 2010 +0300
@@ -32,7 +32,7 @@
  *  @since S60 v3.1
  */
 NONSHARABLE_CLASS ( CFSMailPluginData ) : public CBase
-{
+    {
 
 public:
 
--- a/emailservices/emailcommon/inc/CFSMailRequestHandler.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailRequestHandler.h	Mon May 03 12:23:15 2010 +0300
@@ -25,7 +25,10 @@
 //</cmail>
 #include "CFSMailPluginData.h"
 
+// <qmail>
+// Entire class is now exported
 #include "emailcommondef.h"
+// </qmail>
 
 // FORWARD DECLARATIONS
 class CFSMailRequestObserver;
@@ -106,7 +109,7 @@
      * @return request data
      */
       TFSPendingRequest InitAsyncRequestL( TUid aPluginId,
-                                                   MFSMailRequestObserver& aOperationObserver );
+                                                    MFSMailRequestObserver& aOperationObserver);
 
     /**
      * completes asynchronous request
@@ -180,7 +183,7 @@
 protected: // data
 
     /** list of loaded plugins */
-    RPointerArray<CFSMailPluginData>    iPluginList;
+	 RPointerArray<CFSMailPluginData>    iPluginList;
 
 private: 
 
@@ -190,9 +193,9 @@
 private: // data
 
     /** list of pending requests */
-    RArray<TFSPendingRequest>           iPendingRequests;
-    
-    /** request id counter       */
+	 RArray<TFSPendingRequest>           iPendingRequests;
+	
+	/** request id counter       */
     TUint                                iRequestId;
 
     /** temp directory files handling        */ 
@@ -201,5 +204,5 @@
     };
 
 #endif
-  
+
 // End of File
--- a/emailservices/emailcommon/inc/CFSMailRequestObserver.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/inc/CFSMailRequestObserver.h	Mon May 03 12:23:15 2010 +0300
@@ -77,7 +77,7 @@
      *
      * @param aObserver observer pointer
      */
-     void SetUserObserver( MFSMailRequestObserver& aObserver );
+     void SetUserObserver(MFSMailRequestObserver& aObserver);
 
  protected:
 
@@ -89,11 +89,11 @@
 
  private: // data
 
-    /** request handler pointer */
-    CFSMailRequestHandler*    iRequestHandler;
+   	 /** request handler pointer */
+   	 CFSMailRequestHandler*    iRequestHandler;
 	 
-    /** user observer */
-    MFSMailRequestObserver*  iObserver;
+   	 /** user observer */
+     MFSMailRequestObserver*  iObserver;
      
     };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/inc/cemailextensionbase.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Meeting Request calendar info object extension
+*
+*/
+
+#ifndef CEMAILEXTENSIONBASE_H
+#define CEMAILEXTENSIONBASE_H
+
+#include <e32base.h>
+
+// <qmail>
+// CExtendableEmail, CEmailExtension, TEmailExtensions classes are now exported
+#include "emailcommondef.h"
+// </qmail>
+
+/**
+* Base class for extensions. Instances of subclasses are requested from
+* CExtendableEmail::ExtensionL() with specific extension UID.
+* When client has ended using an extension it must be released with
+* CExtendableEmail::ReleaseExtension().
+* @since s60 v5.0
+*/
+class EMAILCOMMON_EXPORT CEmailExtension : public CBase
+{
+
+public: 
+    ~CEmailExtension();
+protected:    
+    CEmailExtension( const TUid& aUid );
+public:
+    
+    /**         
+    * returns extension uid
+    * @return   uid of the extension.
+    */
+    TUid Uid() const;
+
+public: // for internal use
+                           
+    /**
+    * Decrement reference count.
+    * @return new value of ref count
+    */                           
+    TUint DecRef();
+    
+    /**
+    * Increment reference count.
+    */                           
+    void IncRef();
+        
+private:
+
+    
+    // extension interface UID defined by specific interface.
+    const TUid iUid;    
+    
+    // Reference count is needed because more than one client may request
+    // same extension (e.g. UI and protocol plugin).
+    TUint iRefCount;
+};
+
+/**
+* helper class for managing extensions. In most cases needed only
+* by CExtendableEmail when extensions are created/released. Proto
+* @since s60 v5.0
+*/
+class EMAILCOMMON_EXPORT TEmailExtensions
+{
+public:
+
+    /**
+     * c++ constructor
+     */
+    TEmailExtensions();
+    
+    /**
+     * Destructor
+     */
+    ~TEmailExtensions();
+                       
+    /**
+     * Returns extension index in iExtensions
+     @ return extension index or KErrNotFound
+     */
+    TInt FindExtension( const TUid& aUid ) const;
+    
+    /**
+     * Returns extension by index or panics if invalid index is given
+     * @param aIndex index in iExtensions
+     * @panic EEmailExtensionIndexOutOfRange if index is out of range
+     * @return extension
+     */
+    CEmailExtension* Extension( const TInt aIndex ) const;
+    
+    /**
+     * Adds extension to iExtensions array and increments its ref count by one.
+     *
+     * @param aExtenstion   extension to add
+     * @leave KErrArgument  if aExtension is NULL
+     */
+    void AddL( CEmailExtension* aExtension );
+
+    /**
+     * Removes extension from iExtensions
+     * @param aExtenstion extension to remove
+     */
+    void Remove( const CEmailExtension* aExtension );
+    
+private:    
+    // array of extensions
+    RPointerArray<CEmailExtension> iExtensions;
+};
+
+/**                 
+* Classes that support email extension mechanism by returning extensions by
+* uid should have this as base class.
+*
+* @since s60 v5.0
+*/                 
+class EMAILCOMMON_EXPORT CExtendableEmail : public CBase
+{
+public:
+    /**
+    * Decrements extension reference count and deletes if count reaches 0.
+    * Derived class must call this if it overrides this method.
+    * @param aExtension extension to release
+    */
+    virtual void ReleaseExtension( CEmailExtension* aExtension );
+
+    /**
+    * Requests extension. Default implementation performs lookup only and
+    * derived class should implement actual instantiation because it knows
+    * extensions it supports. Derived class must always call this to ensure
+    * that extension is not created twice.
+    *
+    * @param aExtension extension to release
+    */
+    virtual CEmailExtension* ExtensionL( const TUid& aInterfaceUid );
+
+//<qmail>
+protected:
+    /**
+    * Constructor is required for sbs2 to generate the same .defs for urel/udeb
+    */
+    CExtendableEmail();
+//</qmail>
+    
+protected:    
+    // extension containment
+    TEmailExtensions iExtensions;
+};
+
+#endif // CEMAILEXTENSIONBASE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/inc/cmailboxstateext.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Message extension interface
+*
+*/
+
+#ifndef CMAILBOXSTATEEXT_H
+#define CMAILBOXSTATEEXT_H
+
+#include "cemailextensionbase.h"
+#include "CFSMailCommon.h"
+
+// interface UID value passed to CFSMailClient::ExtensionL
+const TUid KEmailMailboxStateExtensionUid        = { 0x2001E28B };
+
+/**
+* Data providider interface.
+*/
+class MEmailMailboxState
+{
+public:
+    /**
+    * Returns currently active folder and related mailbox that
+    * is currently being used.
+    * @param aActiveMailboxId id of currently active mailbox 
+    * @param aActiveFolderId id of currently active mail folder
+    * @return Symbian OS error code
+    */
+    virtual TInt GetActiveFolderId( 
+        TFSMailMsgId& aActiveMailboxId,
+        TFSMailMsgId& aActiveFolderId ) const = 0;
+};
+
+/**
+ * Extension interface for passing UI context data to protocol plugins. 
+ */
+class CMailboxStateExtension : public CEmailExtension
+{
+public:
+    
+    /**
+     * Sets data provider interface
+     * @param aDataProvider data provider
+     */
+    virtual void SetStateDataProvider( MEmailMailboxState* aDataProvider ) = 0;
+
+protected:    
+    inline CMailboxStateExtension();
+
+protected:
+    MEmailMailboxState* iDataProvider;
+};
+
+inline CMailboxStateExtension::CMailboxStateExtension() :
+         CEmailExtension( KEmailMailboxStateExtensionUid )
+    {
+    }
+         
+#endif // CMAILBOXSTATEEXT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/inc/cmailmessageext.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Message extension interface
+*
+*/
+
+#ifndef CMAILMESSAGEEXT_H
+#define CMAILMESSAGEEXT_H
+
+#include "cemailextensionbase.h"
+
+// interface UID value passed to CFSMailMessageBase::ExtensionL
+const TUid KEmailMessageExtensionUid        = { 0x2001E288 };
+
+/**
+ * Message extension interface
+ * 
+ * @code
+ * // below message is of type CFSMailMessageBase (or its derived type)
+ * CEmailExtension* extension = message->ExtensionL( KEmailMessageExtensionUid );
+ * CMailMessageExtension* mExt = reinterpret_cast<CMailMessageExtension*>( extension );
+ * mExt->CommitL(CFSMailMessage&);
+ * // Release extension when not needed any more.
+ * message->ReleaseExtension( extension );
+ * @endcode
+ * 
+ */
+class CMailMessageExtension : public CEmailExtension
+{
+public:
+    
+    /**
+     * Commits changes of the message to store.
+     * @param aMessage a message to commit.
+     */
+    virtual void CommitL(CFSMailMessage& aMessage) = 0;
+
+protected:    
+    inline CMailMessageExtension();
+};
+
+inline CMailMessageExtension::CMailMessageExtension() :
+         CEmailExtension( KEmailMessageExtensionUid )
+    {
+    }
+         
+#endif // CMAILMESSAGEEXT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/inc/cmrcalendarinfo.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Meeting Request calendar info mailbox extension
+*
+*/
+
+#ifndef CMRCALENDARINFO_H
+#define CMRCALENDARINFO_H
+
+#include <calcommon.h>    // TCalFileId
+#include "cemailextensionbase.h"
+
+// interface UID value passed to CFSMailBox::ExtensionL
+const TUid KMailboxExtMrCalInfo        = { 0x1020696a };
+
+/**
+ * Calendar info extension for CFSMailBox
+ * 
+ * @code
+ * CEmailExtension* extension = mailbox->ExtensionL( KMailboxExtMrCalInfo );
+ * CMRCalendarInfo* calInfo = reinterpret_cast<CMRCalendarInfo*>( extension );
+ * TCalFileId id;
+ * calInfo->GetCalendarDatabaseIdL( id );
+ * @endcode
+ * 
+ */
+class CMRCalendarInfo : public CEmailExtension
+{
+public:
+    
+    /**
+    * Return id of calendar database used with sync.
+    * @param aId database id is returned in this argument
+    */
+    virtual void GetCalendarDatabaseIdL( TCalFileId& aId ) const = 0;
+
+    /**
+    * Sets calendar database id.
+    * @param aId database id
+    */    
+    virtual void SetCalendarDatabaseIdL( const TCalFileId& aId ) = 0;
+
+protected:    
+    CMRCalendarInfo( const TUid& aUid );
+};
+
+#endif // CMRCALENDARINFO_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/inc/cmrcalendarinfoimpl.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  calender info extension for mailbox
+*
+*/
+#ifndef CMRCALENDARINFOIMPL_H
+#define CMRCALENDARINFOIMPL_H
+                          
+#include "cmrcalendarinfo.h" 
+#include "cemailextensionbase.h"
+
+/**
+* Implementation of calender info
+*/
+NONSHARABLE_CLASS( CMRCalendarInfoImpl ) : public CMRCalendarInfo
+{
+public:
+
+    CMRCalendarInfoImpl();
+    
+    ~CMRCalendarInfoImpl();
+    
+public: // from CMRCalendarInfo
+    /**
+    * Return name of calendar database used with sync.
+    */
+    virtual void GetCalendarDatabaseIdL( TCalFileId& aId ) const;
+
+    /**
+    * Sets calender database name.
+    */    
+    virtual void SetCalendarDatabaseIdL( const TCalFileId& aId );
+    
+private:
+    // calender database name.
+    TCalFileId iDatabaseId;        
+};
+
+#endif // CMRCALENDARINFOIMPL_H
--- a/emailservices/emailcommon/src/CFSMailAddress.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailAddress.cpp	Mon May 03 12:23:15 2010 +0300
@@ -31,13 +31,13 @@
 // CFSMailAddress::NewLC
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailAddress* CFSMailAddress::NewLC()
-{
+    {
     FUNC_LOG;
     CFSMailAddress* adr = new (ELeave) CFSMailAddress();
     CleanupStack::PushL(adr);
     adr->ConstructL();
     return adr;
-} 
+    } 
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::NewL
@@ -48,112 +48,129 @@
     CFSMailAddress* adr =  CFSMailAddress::NewLC();
     CleanupStack::Pop(adr);
     return adr;
-}
+    }
 
 // <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailAddress::NewL
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailAddress* CFSMailAddress::NewL( const NmAddress& aNmAddress )
-{
+	{
     FUNC_LOG;
     CFSMailAddress* adr = new (ELeave) CFSMailAddress();
     CleanupStack::PushL(adr);
     adr->ConstructL(aNmAddress);
     CleanupStack::Pop(adr);
     return adr;
-}
+	}
+// </qmail>
 
-// </qmail>
 // -----------------------------------------------------------------------------
 // CFSMailAddress::ConstructL
 // -----------------------------------------------------------------------------
 void CFSMailAddress::ConstructL()
-{
+    {
     FUNC_LOG;
+// <qmail>
     // Construction of shared data object
     iNmPrivateAddress = new NmAddressPrivate();
-}
+// </qmail>
+    }
+	
 // <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailAddress::ConstructL
 // --------------------------------_--------------------------------------------
 void CFSMailAddress::ConstructL( const NmAddress& aNmAddress )
-{
+	{
     FUNC_LOG;
     // shared data object
     iNmPrivateAddress = aNmAddress.d;
-}
+	}
 // </qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::CFSMailAddress
 // -----------------------------------------------------------------------------
 CFSMailAddress::CFSMailAddress()
-{
+    {
     FUNC_LOG;
-}
+// <qmail>
+// Unnecessary members initialization removed: iEmailAddress, iDisplayName
+// </qmail>
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::~CFSMailAddress
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailAddress::~CFSMailAddress()
-{
+    {
     FUNC_LOG;
-}
+// <qmail>
+// Unnecessary members destruction removed: iEmailAddress, iDisplayName
+// </qmail>
+        }
 
-// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailAddress::GetEmailAddress
 // -----------------------------------------------------------------------------
 EXPORT_C TDesC& CFSMailAddress::GetEmailAddress() const
-{
+    {
     FUNC_LOG;
+// <qmail>
     iEmailAddressPtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateAddress->mAddress.utf16()),
         iNmPrivateAddress->mAddress.length());
     return iEmailAddressPtr;
-}
+// </qmail>
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::SetEmailAddress
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailAddress::SetEmailAddress( const TDesC& aAddress )
-{
+EXPORT_C void CFSMailAddress::SetEmailAddress(const TDesC& aAddress)
+    {
     FUNC_LOG;
+// <qmail>
     QString qtEmailAddress = QString::fromUtf16(aAddress.Ptr(), aAddress.Length());
     iNmPrivateAddress->mAddress = qtEmailAddress;
-}
+// </qmail>
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::GetDisplayName
 // -----------------------------------------------------------------------------
 EXPORT_C TDesC& CFSMailAddress::GetDisplayName() const
-{
+    {
     FUNC_LOG;
+// <qmail>
     iDisplayNamePtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateAddress->mDisplayName.utf16()),
         iNmPrivateAddress->mDisplayName.length());
     return iDisplayNamePtr;
-}
+// </qmail>
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailAddress::SetDisplayName
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailAddress::SetDisplayName( const TDesC& aDisplayName )
-{
+EXPORT_C void CFSMailAddress::SetDisplayName(const TDesC& aDisplayName)
+    {
     FUNC_LOG;
+// <qmail>
     QString qtDisplayName = QString::fromUtf16(aDisplayName.Ptr(), aDisplayName.Length());
     iNmPrivateAddress->mDisplayName = qtDisplayName;
-}
-  
+// </qmail>
+	}
+
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailAddress::GetNmAddress
 // -----------------------------------------------------------------------------
 EXPORT_C NmAddress CFSMailAddress::GetNmAddress()
-{
+	{
     FUNC_LOG;
     NmAddress nmAddress(iNmPrivateAddress);
     return nmAddress;
-}
+	}
 // </qmail>
 
 
--- a/emailservices/emailcommon/src/CFSMailBox.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailBox.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,12 +15,17 @@
 *
 */
 
+// <qmail>
 #include <nmcommonheaders.h>
+// <//qmail>
 
 #include "emailtrace.h"
+#include <bamdesca.h>
 #include "CFSMailPlugin.h"
+#include "cmrcalendarinfoimpl.h"
 #include "CFSMailBox.h"
 #include "CFSMailRequestObserver.h"
+#include "cmailboxstateext.h"
 // <qmail>
 #include "CFSMailFolder.h"
 #include "CFSMailAddress.h"
@@ -32,24 +37,24 @@
 // -----------------------------------------------------------------------------
 // CFSMailBox::NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailBox* CFSMailBox::NewLC( TFSMailMsgId aMailBoxId )
+EXPORT_C CFSMailBox* CFSMailBox::NewLC(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
-    CFSMailBox* api = new (ELeave) CFSMailBox();
-    CleanupStack:: PushL(api);
-    api->ConstructL(aMailBoxId);
-    return api;
+  CFSMailBox* api = new (ELeave) CFSMailBox();
+  CleanupStack:: PushL(api);
+  api->ConstructL(aMailBoxId);
+  return api;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailBox* CFSMailBox::NewL( TFSMailMsgId aMailBoxId )
+EXPORT_C CFSMailBox* CFSMailBox::NewL(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
-    CFSMailBox* api =  CFSMailBox::NewLC(aMailBoxId);
-    CleanupStack:: Pop(api);
-    return api;
+  CFSMailBox* api =  CFSMailBox::NewLC(aMailBoxId);
+  CleanupStack:: Pop(api);
+  return api;
 }
 
 // -----------------------------------------------------------------------------
@@ -74,76 +79,84 @@
 // -----------------------------------------------------------------------------
 // CFSMailBox::ConstructL
 // -----------------------------------------------------------------------------
-void CFSMailBox::ConstructL( TFSMailMsgId aMailBoxId )
+void CFSMailBox::ConstructL(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
+// <qmail>
     CFSMailBoxBase::ConstructL(aMailBoxId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::GoOnlineL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::GoOnlineL()
-{
-    FUNC_LOG;  
+    {
+    FUNC_LOG;
+    
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->GoOnlineL( GetId() );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::GoOfflineL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::GoOfflineL()
-{
-    FUNC_LOG;    
+    {
+    FUNC_LOG;
+    
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->GoOfflineL( GetId() );
         }
-}
+        
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::CancelSyncL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::CancelSyncL()
-{
-    FUNC_LOG;  
+    {
+    FUNC_LOG;
+    
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->CancelSyncL( GetId() );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::GetLastSyncStatusL
 // -----------------------------------------------------------------------------
 EXPORT_C TFSProgress CFSMailBox::GetLastSyncStatusL()
-{
+    {
     FUNC_LOG;
     TFSProgress progress;
+    progress.iError = EFalse;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
-        progress = plugin->GetLastSyncStatusL( GetId() );   
+        progress = plugin->GetLastSyncStatusL( GetId() );       
         }
     return progress;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::RefreshNowL
 // -----------------------------------------------------------------------------
 EXPORT_C TInt CFSMailBox::RefreshNowL(
     MFSMailRequestObserver& aOperationObserver )
-{
+    {
     FUNC_LOG;
 
     TFSPendingRequest request;
+    request.iRequestId = 0;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         // init asynchronous request
         request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(),
-                              aOperationObserver );
+                                                        aOperationObserver );
         MFSMailRequestObserver* observer = request.iObserver;
         TRAPD(err,plugin->RefreshNowL( GetId(), *observer, request.iRequestId));
         if(err != KErrNone)
@@ -153,37 +166,40 @@
             }
         }
     return request.iRequestId;
-}
+
+   }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::RefreshNowL
 // -----------------------------------------------------------------------------
-EXPORT_C TInt CFSMailBox::RefreshNowL()
-{
+EXPORT_C TInt CFSMailBox::RefreshNowL( )
+    {
     FUNC_LOG;
 
     TFSPendingRequest request;
+    request.iRequestId = 0;
     MFSMailRequestObserver* observer = NULL;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         // init asynchronous request
         request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(), *observer );
-      
+        
         observer = request.iObserver;
         TRAPD(err,plugin->RefreshNowL( GetId(), *observer, request.iRequestId));
         if(err != KErrNone)
-        {
+            {
             iRequestHandler->CompleteRequest(request.iRequestId);
             User::Leave(err);
+            }
         }
-    }
     return request.iRequestId;
-}
+
+   }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::CreateMessageToSend
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessage* CFSMailBox::CreateMessageToSend()
+EXPORT_C CFSMailMessage* CFSMailBox::CreateMessageToSend( )
 {
     FUNC_LOG;
 
@@ -279,16 +295,16 @@
 // -----------------------------------------------------------------------------
 // CFSMailBox::CreateForwardMessage
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessage* CFSMailBox::CreateForwardMessage( TFSMailMsgId aOriginalMessageId,
-                              const TDesC& aHeaderDescriptor )
+EXPORT_C CFSMailMessage* CFSMailBox::CreateForwardMessage(  TFSMailMsgId aOriginalMessageId,
+                                                            const TDesC& aHeaderDescriptor )
 {
     FUNC_LOG;
     CFSMailMessage* message = NULL;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         TRAPD(err,message = plugin->CreateForwardMessageL( GetId(), 
-                                aOriginalMessageId,
-                                aHeaderDescriptor ));
+                                                                aOriginalMessageId,
+                                                                aHeaderDescriptor ));
         if(err != KErrNone)
             {
             message = NULL;
@@ -339,22 +355,22 @@
 // CFSMailBox::CreateReplyMessage
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessage* CFSMailBox::CreateReplyMessage( TFSMailMsgId aOriginalMessageId,
-                             TBool aReplyToAll,
-                             const TDesC& aHeaderDescriptor )
+                                                         TBool aReplyToAll,
+                                                         const TDesC& aHeaderDescriptor )
 {
     FUNC_LOG;
     CFSMailMessage* message = NULL;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         TRAPD(err,message = plugin->CreateReplyMessageL( GetId(),
-                              aOriginalMessageId,
-                              aReplyToAll,
-                              aHeaderDescriptor ));
+                                                            aOriginalMessageId,
+                                                            aReplyToAll,
+                                                            aHeaderDescriptor ));
         if(err != KErrNone)
             {
             message = NULL;
             }
-    }
+        }
     return message;
 }
 
@@ -400,7 +416,7 @@
 // -----------------------------------------------------------------------------
 // CFSMailBox::GetStandardFolderId
 // -----------------------------------------------------------------------------
-EXPORT_C TFSMailMsgId CFSMailBox::GetStandardFolderId( TFSFolderType aFolderType )
+EXPORT_C TFSMailMsgId CFSMailBox::GetStandardFolderId(TFSFolderType aFolderType)
 {
     FUNC_LOG;
 
@@ -420,7 +436,7 @@
 // CFSMailBox::SendMessageL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::SendMessageL( CFSMailMessage& aMessage )
-{
+    {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
@@ -431,7 +447,7 @@
         // </qmail>
         plugin->SendMessageL( aMessage );
         }
-}
+	}
 
 // <qmail>
 // -----------------------------------------------------------------------------
@@ -483,41 +499,42 @@
 // CFSMailBox::ListFolders
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::ListFolders(  TFSMailMsgId aFolder,
-                    RPointerArray<CFSMailFolder>& aFolderList )
+                                        RPointerArray<CFSMailFolder>& aFolderList)
 {
     FUNC_LOG;
 
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
-        {
+    {
         TRAPD(err, plugin->ListFoldersL(GetId(),aFolder,aFolderList));
         if(err != KErrNone)
             {
             aFolderList.ResetAndDestroy();
             }
-        }
+    }
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::ListFolders
 // -----------------------------------------------------------------------------
-EXPORT_C RPointerArray<CFSMailFolder>& CFSMailBox::ListFolders()
-{ 
+EXPORT_C RPointerArray<CFSMailFolder>& CFSMailBox::ListFolders( )
+{   
     iFolders.ResetAndDestroy();
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
-        {
+    {
         TRAPD(err,plugin->ListFoldersL(GetId(),iFolders));
         if(err != KErrNone)
             {
             iFolders.ResetAndDestroy();
             }
-        }
+    }
+
     return iFolders;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::GetBrandingIdL
 // -----------------------------------------------------------------------------
-EXPORT_C TDesC& CFSMailBox::GetBrandingIdL()
+EXPORT_C TDesC& CFSMailBox::GetBrandingIdL( )
 {
     FUNC_LOG;
     return BrandingId();
@@ -527,8 +544,8 @@
 // CFSMailBox::MoveMessagesL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::MoveMessagesL( const RArray<TFSMailMsgId>& aMessageIds, 
-                                   const TFSMailMsgId aSourceFolderId, 
-                                   const TFSMailMsgId aDestinationFolderId )
+                                         const TFSMailMsgId aSourceFolderId, 
+                                         const TFSMailMsgId aDestinationFolderId )
 {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
@@ -538,18 +555,44 @@
 }
 
 // -----------------------------------------------------------------------------
+// CFSMailBox::MoveMessagesL
+// -----------------------------------------------------------------------------
+EXPORT_C TInt CFSMailBox::MoveMessagesL( MFSMailRequestObserver& aOperationObserver,
+                                         const RArray<TFSMailMsgId>& aMessageIds, 
+                                         const TFSMailMsgId aSourceFolderId, 
+                                         const TFSMailMsgId aDestinationFolderId )
+{
+    FUNC_LOG;
+    TFSPendingRequest request;
+    if( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
+        {
+        // init asynchronous request
+        request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(),
+                                                        aOperationObserver );
+        plugin->MoveMessagesL(
+            GetId(), 
+            aMessageIds, 
+            aSourceFolderId, 
+            aDestinationFolderId, 
+            aOperationObserver, 
+            request.iRequestId );
+        }
+    return request.iRequestId;
+}
+
+// -----------------------------------------------------------------------------
 // CFSMailBox::CopyMessagesL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::CopyMessagesL( const RArray<TFSMailMsgId>& aMessageIds, 
-                                       RArray<TFSMailMsgId>& aNewMessages, 
-                                       const TFSMailMsgId aSourceFolderId, 
-                                       const TFSMailMsgId aDestinationFolderId )
+                                         RArray<TFSMailMsgId>& aNewMessages, 
+                                         const TFSMailMsgId aSourceFolderId, 
+                                         const TFSMailMsgId aDestinationFolderId )
 {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->CopyMessagesL(GetId(), aMessageIds, aNewMessages,
-                aSourceFolderId, aDestinationFolderId );  
+                                aSourceFolderId, aDestinationFolderId );    
         }
 }
 
@@ -557,27 +600,29 @@
 // CFSMailBox::SearchL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::SearchL( const RPointerArray<TDesC>& /*aSearchStrings*/,
-                   const TFSMailSortCriteria&  /*aSortCriteria*/,
-                   MFSMailBoxSearchObserver&   /*aSearchObserver*/,
-                   const RArray<TFSMailMsgId>  /*aFolderIds */ )
-{
+                                   const TFSMailSortCriteria&  /*aSortCriteria*/,
+                                   MFSMailBoxSearchObserver&   /*aSearchObserver*/,
+                                   const RArray<TFSMailMsgId>  /*aFolderIds */ )
+    {
     FUNC_LOG;
-}
-  
+
+    }
+    
 // -----------------------------------------------------------------------------
 // CFSMailBox::SearchL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::SearchL( const RPointerArray<TDesC>& aSearchStrings,
-                   const TFSMailSortCriteria& aSortCriteria,
-                   MFSMailBoxSearchObserver& aSearchObserver )
-{
+                                   const TFSMailSortCriteria& aSortCriteria,
+                                   MFSMailBoxSearchObserver& aSearchObserver )
+    {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
+
         // get mailbox folder list
         iFolders.ResetAndDestroy();
         plugin->ListFoldersL(GetId(),iFolders);
-    
+
         TFSMailMsgId draftsFolderId = GetStandardFolderId( EFSDraftsFolder );
         TFSMailMsgId outboxId = GetStandardFolderId( EFSOutbox );
         
@@ -585,49 +630,49 @@
         RArray<TFSMailMsgId> folderIds;
         folderIds.Reset();
         for(TInt i=0;i<iFolders.Count();i++)
-            {
+        {
             TFSMailMsgId id = iFolders[i]->GetFolderId();
             if( id != draftsFolderId && id != outboxId )
-                {
+            {
                 folderIds.Append(id);
-                }
             }
-    
+        }
+        
         // start search
         plugin->SearchL( GetId(), folderIds, aSearchStrings, aSortCriteria, aSearchObserver );
         folderIds.Reset();
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::CancelSearch
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::CancelSearch()
-{
+    {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->CancelSearch( GetId() );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::ClearSearchResultCache
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::ClearSearchResultCache()
-{
+    {
     FUNC_LOG;
     if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
         {
         plugin->ClearSearchResultCache( GetId() );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::ListMrusL
 // -----------------------------------------------------------------------------
 EXPORT_C MDesCArray* CFSMailBox::ListMrusL() const
-{
+    {
     FUNC_LOG;
     MDesCArray* mruList(0);
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId() ) )
@@ -635,14 +680,14 @@
         mruList = plugin->GetMrusL( GetId() );
         }
     return mruList;
-}
+    }
 
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::CurrentSyncState
 // -----------------------------------------------------------------------------
 EXPORT_C TSSMailSyncState CFSMailBox::CurrentSyncState() const
-{
+    {
     FUNC_LOG;
     TSSMailSyncState syncState(Idle);
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
@@ -650,7 +695,7 @@
         syncState = plugin->CurrentSyncState( GetId() );
         }
     return syncState;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::HasCapability
@@ -666,7 +711,7 @@
             {
             capability = EFalse;
             }
-    }
+        }
     return capability;
 }
 
@@ -678,9 +723,9 @@
     FUNC_LOG;
     TFSMailBoxStatus status(EFSMailBoxOffline);
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId() ) )
-        {
+    {
         status = plugin->GetMailBoxStatus( GetId() );
-        }
+    }
     return status;
 }
 
@@ -688,19 +733,19 @@
 // CFSMailBox::SetCredentialsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::SetCredentialsL( const TDesC& aUsername, const TDesC& aPassword )
-{
+    {
     FUNC_LOG;
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId() ) )
         {
         plugin->SetCredentialsL( GetId(), aUsername, aPassword );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::RemoveDownLoadedAttachmentsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailBox::RemoveDownLoadedAttachmentsL()
-{
+    {
     FUNC_LOG;
     
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() );
@@ -715,13 +760,13 @@
             delete folder;
             }
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::GetConnectionId
 // -----------------------------------------------------------------------------
 EXPORT_C TInt CFSMailBox::GetConnectionId( TUint32& aConnectionId )
-{
+    {
     FUNC_LOG;
     TInt rcode = KErrNotSupported;
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
@@ -729,13 +774,13 @@
         rcode = plugin->GetConnectionId( GetId(), aConnectionId );
         }
     return rcode;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::IsConnectionAllowedWhenRoaming
 // -----------------------------------------------------------------------------
 EXPORT_C TInt CFSMailBox::IsConnectionAllowedWhenRoaming( TBool& aConnectionAllowed )
-{
+    {
     FUNC_LOG;
     TInt rcode = KErrNotSupported;
     if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
@@ -743,6 +788,20 @@
         rcode = plugin->IsConnectionAllowedWhenRoaming( GetId(), aConnectionAllowed );
         }
     return rcode;
+    }
+
+// -----------------------------------------------------------------------------
+// CFSMailBox::CreateMessageFromFileL
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailMessage* CFSMailBox::CreateMessageFromFileL( const RFile& aFile )
+{
+    FUNC_LOG;
+    CFSMailMessage* message = NULL;
+    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId()))
+    {
+		message = plugin->CreateMessageFromFileL( GetId(), aFile );
+    }
+    return message;
 }
 
 // -----------------------------------------------------------------------------
@@ -752,7 +811,7 @@
     const RPointerArray<CFSMailAddress>& aRecipients,
     const RPointerArray<CFSMailAddress>& aCCRecipients,
     const RPointerArray<CFSMailAddress>& aBCCRecipients ) const
-{
+    {
     FUNC_LOG;
     
     // First lets make a copy of the current mru list
@@ -801,13 +860,13 @@
     plugin->SetMrusL( GetId(), newMruList );
     
     CleanupStack::PopAndDestroy( newMruList );
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::CopyArrayL
 // -----------------------------------------------------------------------------    
 CDesCArraySeg* CFSMailBox::CopyArrayL( MDesCArray& aArrayToBeCopied ) const
-{
+    {
     FUNC_LOG;
     CDesCArraySeg* newArray = new (ELeave) CDesCArraySeg( 10 );
     CleanupStack::PushL( newArray );
@@ -822,7 +881,7 @@
     
     CleanupStack::Pop( newArray );
     return newArray;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::UpdateMruListL
@@ -830,7 +889,7 @@
 void CFSMailBox::UpdateMruListL(
     CDesCArraySeg& aMruList,
     const RPointerArray<CFSMailAddress>& aNewRecentlyUsedOnes ) const
-{
+    {
     FUNC_LOG;
     TUint newCount( aNewRecentlyUsedOnes.Count() );
     TUint newIndexer( 0 );
@@ -863,7 +922,7 @@
         
         ++newIndexer;
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::FindAddressFromMruList
@@ -871,7 +930,7 @@
 TInt CFSMailBox::FindAddressFromMruList( CDesCArraySeg& aMruList,
                                          TDesC& searchedAddress,
                                          TInt& aPos ) const
-{
+    {
     FUNC_LOG;
     // CDesCArray::Find() is not used here because there is
     // possibility that we have to go through the whole array
@@ -903,12 +962,15 @@
     return 1;
     }
 
+
+
+
 // -----------------------------------------------------------------------------
 // CFSMailBox::AddAndRemoveExcessMruL
 // -----------------------------------------------------------------------------
 void CFSMailBox::AddAndRemoveExcessMruL( CDesCArraySeg& aMruList,
                                          CFSMailAddress& aToBeAdded ) const
-{
+    {
     FUNC_LOG;
     if ( aMruList.Count() == KMaxMruEntries )
         {
@@ -917,7 +979,7 @@
         }
     // Latest address is always found from the end.
     AppendMruItemL( aMruList, aToBeAdded );
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::SetAsMostRecentMruL
@@ -925,21 +987,21 @@
 void CFSMailBox::SetAsMostRecentMruL( CDesCArraySeg& aMruList,
                                       TInt aPosition,
                                       CFSMailAddress& aMostRecent ) const
-{
+    {
     FUNC_LOG;
     // Position of the address is given so the possible display name is
     // in the previous slot. Delete both.
     aMruList.Delete( aPosition - 1, 2 );
     // Latest address is always found from the end.
     AppendMruItemL( aMruList, aMostRecent );
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailBox::AppendMruItemL
 // -----------------------------------------------------------------------------
 void CFSMailBox::AppendMruItemL( CDesCArraySeg& aMruList,
                                  CFSMailAddress& aToBeAppended ) const
-{
+    {
     FUNC_LOG;
     // In the array, display name is always the first and then comes
     // the actual address.
@@ -950,15 +1012,62 @@
     TDesC* emailAddress = &aToBeAppended.GetEmailAddress();
 
     if( displayName->Length() > 0 && displayName->Compare(*emailAddress) == 0 )
+    {
+        aMruList.AppendL( KNullDesC );
+    }
+    else
+    {
+        aMruList.AppendL( *displayName );                
+    }
+    
+    aMruList.AppendL( *emailAddress );    
+    }
+
+// -----------------------------------------------------------------------------
+// CFSMailBox::ReleaseExtension
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailBox::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    // no specialized behaviour, call base class
+    CExtendableEmail::ReleaseExtension( aExtension );
+    }
+    
+// -----------------------------------------------------------------------------
+// CFSMailBox::ExtensionL
+// -----------------------------------------------------------------------------
+EXPORT_C CEmailExtension* CFSMailBox::ExtensionL( const TUid& aInterfaceUid )
+    {
+    FUNC_LOG;
+    CEmailExtension* extension = NULL;
+    if ( aInterfaceUid == KMailboxExtMrCalInfo )
         {
-        aMruList.AppendL( KNullDesC );
+        extension = CExtendableEmail::ExtensionL( aInterfaceUid );
+        if ( extension == NULL )
+            {
+            extension = new ( ELeave ) CMRCalendarInfoImpl();
+            CleanupStack::PushL( extension );
+            iExtensions.AddL( extension );
+            CleanupStack::Pop(); // calInfo
+            }
+        }    
+    else if ( aInterfaceUid == KEmailMailboxStateExtensionUid )
+        {
+        if ( !extension )
+            {
+            // check that plugin supports requested extension.
+            if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
+                {
+                // request extension from plugin, leaves if not supported
+                extension = plugin->ExtensionL( aInterfaceUid );
+                }
+    
+            }
         }
     else
         {
-        aMruList.AppendL( *displayName );                
+        User::Leave( KErrNotSupported );
         }
-    
-    aMruList.AppendL( *emailAddress );    
-    // </cmail>
-}
+    return extension;
+    }
 
--- a/emailservices/emailcommon/src/CFSMailBoxBase.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailBoxBase.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,8 +15,10 @@
 *
 */
 
+// <qmail>
+#include <nmcommonheaders.h>
+// </qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailBoxBase.h"
 // <qmail>
@@ -25,36 +27,42 @@
 // </qmail>
 #include "nmmailbox.h"
 
+//<qmail> Cmail fix task applied using QString methods (AknTextUtils n/a in 10.1)
+const int KCharCount = 5;
+static const QChar KCharsToReplace[KCharCount] = { '\r','\n','\t',0x2028,0x2029 };
+//</qmail>
+
 // ================= MEMBER FUNCTIONS ==========================================
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailBoxBase* CFSMailBoxBase::NewLC( TFSMailMsgId aMailBoxId )
+EXPORT_C CFSMailBoxBase* CFSMailBoxBase::NewLC(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
-    CFSMailBoxBase* api = new (ELeave) CFSMailBoxBase();
-    CleanupStack:: PushL(api);
-    api->ConstructL(aMailBoxId);  
-    return api; 
-}
+  CFSMailBoxBase* api = new (ELeave) CFSMailBoxBase();
+  CleanupStack:: PushL(api);
+  api->ConstructL(aMailBoxId);
+  return api;
+} 
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailBoxBase* CFSMailBoxBase::NewL( TFSMailMsgId aMailBoxId )
+EXPORT_C CFSMailBoxBase* CFSMailBoxBase::NewL(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
-    CFSMailBoxBase* api =  CFSMailBoxBase::NewLC(aMailBoxId);
-    CleanupStack:: Pop(api);
-    return api;
+  CFSMailBoxBase* api =  CFSMailBoxBase::NewLC(aMailBoxId);
+  CleanupStack:: Pop(api);
+  return api;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::CFSMailBoxBase
 // -----------------------------------------------------------------------------
-CFSMailBoxBase::CFSMailBoxBase()
+CFSMailBoxBase::CFSMailBoxBase() : CExtendableEmail()
 {
     FUNC_LOG;
+	
 }
 
 // -----------------------------------------------------------------------------
@@ -65,21 +73,21 @@
     FUNC_LOG;
     if( iMailBoxName )
         {
-        delete iMailBoxName;
+  		delete iMailBoxName;
         }
-    iMailBoxName = NULL;
+	iMailBoxName = NULL;
 
     if( iBrId )
         {
-        delete iBrId;
+  		delete iBrId;
         }
-    iBrId = NULL;
+	iBrId = NULL;
 
     if( iOwnMailAddress )
         {
-        delete iOwnMailAddress;
+  		delete iOwnMailAddress;
         }
-    iOwnMailAddress = NULL;
+	iOwnMailAddress = NULL;	
 
     if( iMRInfoProcessor )
         {
@@ -91,10 +99,10 @@
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::ConstructL
 // -----------------------------------------------------------------------------
-void CFSMailBoxBase::ConstructL( const TFSMailMsgId aMailBoxId )
+void CFSMailBoxBase::ConstructL(const TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
-	// <qmail> Removed iMailboxId </qmail>
+// <qmail> Removed iMailboxId </qmail>
     // prepare null empty descriptor
     iMailBoxName = HBufC::NewL(1);
     iMailBoxName->Des().Copy(KNullDesC());
@@ -102,7 +110,7 @@
     iBrId = HBufC::NewL(1);
     iBrId->Des().Copy(KNullDesC());
 
-    // <qmail>
+// <qmail>
     // Creating QT side object of the mailbox class.
     iNmPrivateMailbox = new NmMailboxPrivate();
     // Initialize QT data: pluginId and id. These need conversions between QT
@@ -116,17 +124,18 @@
 
     // typedef unsigned int TUint -> typedef unsigned int quint32
     iNmPrivateMailbox->mId.setPluginId32((unsigned int)aMailBoxId.PluginId().iUid);
-    // </qmail>
+// </qmail>
 }
 
-// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::GetId
 // -----------------------------------------------------------------------------
 EXPORT_C TFSMailMsgId CFSMailBoxBase::GetId() const
 {
     FUNC_LOG;
+// <qmail>
     return TFSMailMsgId(iNmPrivateMailbox->mId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -135,10 +144,12 @@
 EXPORT_C TDesC& CFSMailBoxBase::GetName()const
 {
     FUNC_LOG;
+// <qmail>
     iTextPtr.Set( 
         reinterpret_cast<const TUint16*> (iNmPrivateMailbox->mName.utf16()),
         iNmPrivateMailbox->mName.length());
     return iTextPtr;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -147,10 +158,16 @@
 EXPORT_C void CFSMailBoxBase::SetName( const TDesC& aMailBoxName )
 {
     FUNC_LOG;
+// <qmail>
     QString qtName = QString::fromUtf16(aMailBoxName.Ptr(), aMailBoxName.Length());
+    // Fix from Cmail 9.2 rewritten with QString methods
+    for (int i = 0; i < KCharCount; i++) {
+        QChar chr = KCharsToReplace[i];
+        qtName = qtName.replace(chr, ' ');
+    }
     iNmPrivateMailbox->mName = qtName;
+// </qmail>
 }
-// <qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::GetStatus
@@ -158,7 +175,7 @@
 EXPORT_C TFSMailBoxStatus CFSMailBoxBase::GetStatus( ) const
 {
     FUNC_LOG;
-    return EFSMailBoxOffline;
+	return EFSMailBoxOffline;
 }
 
 // -----------------------------------------------------------------------------
@@ -167,84 +184,85 @@
 EXPORT_C void CFSMailBoxBase::SetStatus( const TFSMailBoxStatus /*aStatus*/ )
 {
     FUNC_LOG;
+	
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::GetRCLInfo
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailBoxBase::GetRCLInfo( TUid& aProtocolUid, TUint& aAccountUid )
+EXPORT_C void CFSMailBoxBase::GetRCLInfo(TUid& aProtocolUid, TUint& aAccountUid)
 {
     FUNC_LOG;
-    aProtocolUid = iProtocolUid;
-    aAccountUid = iAccountUid;
+	aProtocolUid = iProtocolUid;
+	aAccountUid = iAccountUid;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::SetRCLInfo
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailBoxBase::SetRCLInfo( const TUid aProtocolUid, const TUint aAccountUid )
+EXPORT_C void CFSMailBoxBase::SetRCLInfo(const TUid aProtocolUid, const TUint aAccountUid)
 {
     FUNC_LOG;
-    iProtocolUid = aProtocolUid;
-    iAccountUid = aAccountUid;
+	iProtocolUid = aProtocolUid;
+	iAccountUid = aAccountUid;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::GetSettingsUid
 // -----------------------------------------------------------------------------
 EXPORT_C const TUid CFSMailBoxBase::GetSettingsUid()
-  {
+	{
     FUNC_LOG;
-    return iSettingsUid;
-}
+	return iSettingsUid;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::SetSettingsUid
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailBoxBase::SetSettingsUid( const TUid aUid )
-{
+EXPORT_C void CFSMailBoxBase::SetSettingsUid(const TUid aUid)
+	{
     FUNC_LOG;
-    iSettingsUid = aUid;
-}
+		iSettingsUid = aUid;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::MRInfoProcessorL
 // -----------------------------------------------------------------------------
 EXPORT_C MMRInfoProcessor& CFSMailBoxBase::MRInfoProcessorL()
-{
+	{
     FUNC_LOG;
-    return *iMRInfoProcessor;
-}
+	return *iMRInfoProcessor;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::IsMRInfoProcessorSet
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailBoxBase::IsMRInfoProcessorSet()
-{
+	{
     FUNC_LOG;
-    if(iMRInfoProcessor)
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-}
+	if(iMRInfoProcessor)
+		{
+		return ETrue;
+		}
+	else
+		{
+		return EFalse;
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::SetMRInfoProcessorL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailBoxBase::SetMRInfoProcessorL( MMRInfoProcessor* aMRInfoProcessor )
-{
+EXPORT_C void CFSMailBoxBase::SetMRInfoProcessorL(MMRInfoProcessor* aMRInfoProcessor)
+	{
     FUNC_LOG;
 
-    if(iMRInfoProcessor)
-        {
-        delete iMRInfoProcessor;
-        }
-    iMRInfoProcessor = aMRInfoProcessor;
-}
+	if(iMRInfoProcessor)
+	{
+		delete iMRInfoProcessor;
+	}
+	iMRInfoProcessor = aMRInfoProcessor;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::OwnMailAddress
@@ -252,36 +270,38 @@
 EXPORT_C CFSMailAddress& CFSMailBoxBase::OwnMailAddress( )
 {
     FUNC_LOG;
-    return *iOwnMailAddress;
+	return *iOwnMailAddress;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::SetOwnMailAddress
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailBoxBase::SetOwnMailAddressL( CFSMailAddress* aOwnMailAddress )
+EXPORT_C void CFSMailBoxBase::SetOwnMailAddressL( CFSMailAddress* aOwnMailAddress)
 {
     FUNC_LOG;
-    if(iOwnMailAddress)
-        {
-        delete iOwnMailAddress;
-        }
-    iOwnMailAddress = aOwnMailAddress;
+	if(iOwnMailAddress)
+		{
+		delete iOwnMailAddress;
+		}
+	iOwnMailAddress = aOwnMailAddress;
 
-    // set also branding id based on domain name
+	// set also branding id based on domain name
     TPtrC ptr = OwnMailAddress().GetEmailAddress();
     TInt index = ptr.Locate('@') + 1;
     if(index > 0 && ptr.Length() > 0)
-        {
+    {
         if(iBrId)
-            {
+        {
             delete iBrId;
             iBrId = NULL;
-            }
-        ptr.Set( ptr.Right( ptr.Length() - index ) );
+        }
+        ptr.Set( ptr.Right( ptr.Length() - index ) );        
         iBrId = HBufC::New(ptr.Length());
         iBrId->Des().Copy(ptr);
-        }
+    }
+// <qmail>
     iNmPrivateMailbox->mAddress = aOwnMailAddress->GetNmAddress();
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -295,10 +315,10 @@
 
 // <qmail> Removed SetMailBoxId </qmail>
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailBoxBase::GetNmMailbox
 // -----------------------------------------------------------------------------
-// <qmail>
 EXPORT_C NmMailbox* CFSMailBoxBase::GetNmMailbox()
 {
     NmMailbox* nmmailbox = new NmMailbox(iNmPrivateMailbox);
--- a/emailservices/emailcommon/src/CFSMailFolder.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailFolder.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,9 +15,11 @@
 *
 */
 
+// <qmail>
+#include <nmcommonheaders.h>
+// </qmail>
 
 //<cmail>
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailFolder.h"
 #include "CFSMailPlugin.h"
@@ -33,10 +35,10 @@
 EXPORT_C CFSMailFolder* CFSMailFolder::NewLC( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    CFSMailFolder* api = new (ELeave) CFSMailFolder();
-    CleanupStack:: PushL(api);
-    api->ConstructL( aFolderId );
-    return api;
+  CFSMailFolder* api = new (ELeave) CFSMailFolder();
+  CleanupStack:: PushL(api);
+  api->ConstructL( aFolderId );
+  return api;
 } 
 
 // -----------------------------------------------------------------------------
@@ -45,9 +47,9 @@
 EXPORT_C CFSMailFolder* CFSMailFolder::NewL( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    CFSMailFolder* api =  CFSMailFolder::NewLC( aFolderId );
-    CleanupStack:: Pop(api);
-    return api;
+  CFSMailFolder* api =  CFSMailFolder::NewLC( aFolderId );
+  CleanupStack:: Pop(api);
+  return api;
 }
 
 // -----------------------------------------------------------------------------
@@ -56,6 +58,7 @@
 CFSMailFolder::CFSMailFolder()
 {
     FUNC_LOG;
+
 }
 
 // -----------------------------------------------------------------------------
@@ -64,13 +67,12 @@
 void CFSMailFolder::ConstructL( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
+// <qmail>
     CFSMailFolderBase::ConstructL( aFolderId );
+// </qmail>
     
-    // get requesthandler pointer
-    iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
-
-    // set folder id
-    iFolderId = aFolderId;
+	// get requesthandler pointer
+	iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
 }
 
 // -----------------------------------------------------------------------------
@@ -79,170 +81,179 @@
 EXPORT_C CFSMailFolder::~CFSMailFolder()
 {
     FUNC_LOG;
+
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::ListMessagesL
 // -----------------------------------------------------------------------------
 EXPORT_C MFSMailIterator* CFSMailFolder::ListMessagesL( const TFSMailDetails aDetails,
-                    const RArray<TFSMailSortCriteria>& aSorting )
+        						const RArray<TFSMailSortCriteria>& aSorting)
 {
     FUNC_LOG;
 
-    CFSMailIterator* iterator = NULL;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        MFSMailIterator* pluginIterator =
-            plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting);
-        if(pluginIterator)
-            {
-            iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler );
-            }
-        }
-    return iterator;
+	CFSMailIterator* iterator = NULL;
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		MFSMailIterator* pluginIterator =
+		plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting);
+		if(pluginIterator)
+			{
+			iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler );
+			}
+		}
+	return iterator;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::FetchMessagesL
 // -----------------------------------------------------------------------------
-EXPORT_C TInt CFSMailFolder::FetchMessagesL( const RArray<TFSMailMsgId>& aMessageIds,
-                          TFSMailDetails aDetails,
-                          MFSMailRequestObserver& aObserver )
-{
+EXPORT_C TInt CFSMailFolder::FetchMessagesL( 	const RArray<TFSMailMsgId>& aMessageIds,
+     							 				TFSMailDetails aDetails,
+     							 				MFSMailRequestObserver& aObserver )
+	{
     FUNC_LOG;
-    // init asynchronous request
-    CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
-  
+	// init asynchronous request
+	CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
     TFSPendingRequest request = 
-      iRequestHandler->InitAsyncRequestL( GetFolderId().PluginId(), aObserver );
-      
-    MFSMailRequestObserver* observer = request.iObserver;
-    TRAPD(err,plugin->FetchMessagesL( GetMailBoxId(),
-                      GetFolderId(),
-                      aMessageIds,
-                      aDetails,
-                      *observer,
-                      request.iRequestId));
+    	iRequestHandler->InitAsyncRequestL(	GetFolderId().PluginId(), aObserver );
+
+    TInt err = KErrNone;
+    
+    if (plugin)
+        {
+        MFSMailRequestObserver* observer = request.iObserver;
+        TRAP(err,plugin->FetchMessagesL(	GetMailBoxId(),
+                                            GetFolderId(),
+                                            aMessageIds,
+                                            aDetails,
+                                            *observer,
+                                            request.iRequestId));
+        }
+    else 
+        {
+        err = KErrNotFound;        
+        }
+    
     if(err != KErrNone)
         {
         iRequestHandler->CompleteRequest(request.iRequestId);
         User::Leave(err);
         }
-    return request.iRequestId;  
-}
+    return request.iRequestId;
+    
+	}
 
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::GetSubFoldersL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolder::GetSubFoldersL( RPointerArray<CFSMailFolder>& aSubFolders )
+EXPORT_C void CFSMailFolder::GetSubFoldersL(RPointerArray<CFSMailFolder>& aSubFolders)
 {
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders));
-        if(err != KErrNone)
-            {
-            aSubFolders.ResetAndDestroy();
-            }
-        }
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders));
+		if(err != KErrNone)
+			{
+			aSubFolders.ResetAndDestroy();
+			}
+		}
 }
-  
+	
 // -----------------------------------------------------------------------------
 // CFSMailFolder::RemoveMessageL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolder::RemoveMessageL( TFSMailMsgId aMessage )
+EXPORT_C void CFSMailFolder::RemoveMessageL(TFSMailMsgId aMessage)
 {
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        RArray<TFSMailMsgId> messages;
-        messages.Reset();
-        messages.Append(aMessage);
-        plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages);
-        messages.Close();
-        }
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		RArray<TFSMailMsgId> messages;
+		messages.Reset();
+		messages.Append(aMessage);
+		plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages);
+		messages.Close();
+		}
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::SupportsCopyFromL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailFolder::SupportsCopyFromL( TFSFolderType aFolderType )
-{
+	{
     FUNC_LOG;
-  
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
-        if(onlineStatus == EFSMailBoxOnline)
-            {
-            for(TInt i=0;i<iCopyOnlineBlocked.Count();i++)
-                {
-                if(iCopyOnlineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }     
-                }
-            }
-        else if(onlineStatus == EFSMailBoxOffline)
-            {
-            for(TInt i=0;i<iCopyOfflineBlocked.Count();i++)
-                {
-                if(iCopyOfflineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }
-                }
-            }
-    }
-    return ETrue;
-}
+	
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
+		if(onlineStatus == EFSMailBoxOnline)
+			{
+			for(TInt i=0;i<iCopyOnlineBlocked.Count();i++)
+				{
+				if(iCopyOnlineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}			
+				}
+			}
+		else if(onlineStatus == EFSMailBoxOffline)
+			{
+			for(TInt i=0;i<iCopyOfflineBlocked.Count();i++)
+				{
+				if(iCopyOfflineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}
+				}
+			}
+		}
+		return ETrue;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::SupportsMoveFromL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailFolder::SupportsMoveFromL( TFSFolderType aFolderType )
-{
+	{
     FUNC_LOG;
 
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
-        if(onlineStatus == EFSMailBoxOnline)
-            {
-            for(TInt i=0;i<iMoveOnlineBlocked.Count();i++)
-                {
-                if(iMoveOnlineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }     
-                }
-            }
-        else if(onlineStatus == EFSMailBoxOffline)
-            {
-            for(TInt i=0;i<iMoveOfflineBlocked.Count();i++)
-                {
-                if(iMoveOfflineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }
-                }
-            }
-    }
-    return ETrue;
-}
-
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
+		if(onlineStatus == EFSMailBoxOnline)
+			{
+			for(TInt i=0;i<iMoveOnlineBlocked.Count();i++)
+				{
+				if(iMoveOnlineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}			
+				}
+			}
+		else if(onlineStatus == EFSMailBoxOffline)
+			{
+			for(TInt i=0;i<iMoveOfflineBlocked.Count();i++)
+				{
+				if(iMoveOfflineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}
+				}
+			}
+		}
+		return ETrue;
+	
+	}
 // -----------------------------------------------------------------------------
 // CFSMailFolder::RemoveDownLoadedAttachmentsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailFolder::RemoveDownLoadedAttachmentsL()
-{
+    {
     FUNC_LOG;
     
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
-    // <qmail>
-    if(plugin)
-    // </qmail
+    if(plugin != NULL)
         {
         MFSMailIterator* iterator = NULL;
 
@@ -273,5 +284,24 @@
             delete iterator;
             }
         }
-}
+    }
 
+// -----------------------------------------------------------------------------
+// CFSMailFolder::ReleaseExtension
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolder::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    // no specialized behaviour, call base class
+    CExtendableEmail::ReleaseExtension( aExtension );
+    }
+    
+// -----------------------------------------------------------------------------
+// CFSMailFolder::ExtensionL
+// -----------------------------------------------------------------------------
+EXPORT_C CEmailExtension* CFSMailFolder::ExtensionL( const TUid& aInterfaceUid )
+    {
+    FUNC_LOG;
+    return CExtendableEmail::ExtensionL( aInterfaceUid );
+    }
+
--- a/emailservices/emailcommon/src/CFSMailFolderBase.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailFolderBase.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,12 +15,16 @@
 *
 */
 
-
+// <qmail>
 #include <nmcommonheaders.h>
+// </qmail>
+
 #include "emailtrace.h"
+
+// <qmail>
 #include "CFSMailFolderBase.h"
 #include "nmfolder.h"
-
+// </qmail>
 
 // ================= MEMBER FUNCTIONS ==========================================
 // -----------------------------------------------------------------------------
@@ -29,14 +33,11 @@
 CFSMailFolderBase::CFSMailFolderBase()
 {
     FUNC_LOG;
-    // <qmail>
-    //iFolderName = HBufC::New(1);
-    //iFolderName->Des().Copy(KNullDesC());
-    // </qmail>
-    iMoveOfflineBlocked.Reset();
-    iMoveOnlineBlocked.Reset();
-    iCopyOfflineBlocked.Reset();
-    iCopyOnlineBlocked.Reset();
+// <qmail> unnecessary iFolderName initialization removed </qmail>
+	iMoveOfflineBlocked.Reset();
+	iMoveOnlineBlocked.Reset();
+	iCopyOfflineBlocked.Reset();
+	iCopyOnlineBlocked.Reset();
 }
 
 // -----------------------------------------------------------------------------
@@ -45,17 +46,11 @@
 EXPORT_C CFSMailFolderBase::~CFSMailFolderBase()
 {
     FUNC_LOG;
-    // <qmail>
-    //if(iFolderName)
-    //    {
-    //    delete iFolderName;
-    //    iFolderName = NULL;
-    //    }
-    // </qmail>
-    iMoveOfflineBlocked.Reset();
-    iMoveOnlineBlocked.Reset();
-    iCopyOfflineBlocked.Reset();
-    iCopyOnlineBlocked.Reset();
+// <qmail> unnecessary iFolderName destruction removed </qmail>
+	iMoveOfflineBlocked.Reset();
+	iMoveOnlineBlocked.Reset();
+	iCopyOfflineBlocked.Reset();
+	iCopyOnlineBlocked.Reset();
 }
 
 // -----------------------------------------------------------------------------
@@ -64,9 +59,10 @@
 EXPORT_C void CFSMailFolderBase::ConstructL( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    iFolderId = aFolderId;
+// <qmail>
     iNmPrivateFolder = new NmFolderPrivate();
     iNmPrivateFolder->mFolderId = aFolderId.GetNmId();
+// <qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -75,21 +71,21 @@
 EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewLC( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    CFSMailFolderBase* folder = new (ELeave) CFSMailFolderBase();
-    CleanupStack:: PushL(folder);
-    folder->ConstructL(aFolderId);
-    return folder;
+  CFSMailFolderBase* folder = new (ELeave) CFSMailFolderBase();
+  CleanupStack:: PushL(folder);
+  folder->ConstructL(aFolderId);
+  return folder;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewL( const TFSMailMsgId aFolderId )
+EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewL(const TFSMailMsgId aFolderId)
 {
     FUNC_LOG;
-    CFSMailFolderBase* folder =  CFSMailFolderBase::NewLC(aFolderId);
-    CleanupStack:: Pop(folder);
-    return folder;
+  CFSMailFolderBase* folder =  CFSMailFolderBase::NewLC(aFolderId);
+  CleanupStack:: Pop(folder);
+  return folder;
 }
 
 // -----------------------------------------------------------------------------
@@ -98,7 +94,9 @@
 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetFolderId() const
 {
     FUNC_LOG;
+// <qmail>
 	return TFSMailMsgId(iNmPrivateFolder->mFolderId);
+// </qmail>
 }
 
 
@@ -108,16 +106,20 @@
 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetParentFolderId() const
 {
     FUNC_LOG;
+// <qmail>
     return TFSMailMsgId(iNmPrivateFolder->mParentFolderId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetParentFolderId
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolderBase::SetParentFolderId( TFSMailMsgId aFolderId )
+EXPORT_C void CFSMailFolderBase::SetParentFolderId(TFSMailMsgId aFolderId)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mParentFolderId = aFolderId.GetNmId();
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -126,16 +128,20 @@
 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetMailBoxId() const
 {
     FUNC_LOG;
+// <qmail>
 	return TFSMailMsgId(iNmPrivateFolder->mMailboxId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetMailBoxId
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolderBase::SetMailBoxId( TFSMailMsgId aMailBoxId )
+EXPORT_C void CFSMailFolderBase::SetMailBoxId(TFSMailMsgId aMailBoxId)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mMailboxId = aMailBoxId.GetNmId();
+// </qmail>
 }
 
 
@@ -145,16 +151,20 @@
 EXPORT_C TFSFolderType CFSMailFolderBase::GetFolderType() const
 {
     FUNC_LOG;
+// <qmail>
     return static_cast<TFSFolderType>(iNmPrivateFolder->mFolderType);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetFolderType
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolderBase::SetFolderType( const TFSFolderType aFolderType )
+EXPORT_C void CFSMailFolderBase::SetFolderType(const TFSFolderType aFolderType)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mFolderType = static_cast<NmFolderType>(aFolderType);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -163,21 +173,24 @@
 EXPORT_C TDesC& CFSMailFolderBase::GetFolderName() const
 {
     FUNC_LOG;
+// <qmail>
     iTextPtr.Set(
         reinterpret_cast<const TUint16*> (iNmPrivateFolder->mName.utf16()),
         iNmPrivateFolder->mName.length());
     return iTextPtr;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetFolderName
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolderBase::SetFolderName( const TDesC& aFolderName )
+EXPORT_C void CFSMailFolderBase::SetFolderName(const TDesC& aFolderName)
 {
     FUNC_LOG;
-  
+// <qmail>
     QString qtName = QString::fromUtf16(aFolderName.Ptr(), aFolderName.Length());
     iNmPrivateFolder->mName = qtName;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -186,7 +199,9 @@
 EXPORT_C TUint CFSMailFolderBase::GetMessageCount() const
 {
     FUNC_LOG;
+// <qmail>
     return (TUint)iNmPrivateFolder->mMessageCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -195,7 +210,9 @@
 EXPORT_C TUint CFSMailFolderBase::GetUnreadCount() const
 {
     FUNC_LOG;
+// <qmail>
     return (TUint)iNmPrivateFolder->mUnreadMessageCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -204,7 +221,9 @@
 EXPORT_C TUint CFSMailFolderBase::GetUnseenCount() const
 {
     FUNC_LOG;
+// <qmail>
     return (TUint)iNmPrivateFolder->mUnseenCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -213,7 +232,9 @@
 EXPORT_C TUint CFSMailFolderBase::GetSubFolderCount() const
 {
     FUNC_LOG;
+// <qmail>
     return (TUint)iNmPrivateFolder->mSubFolderCount;
+// </qmail>
 }
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetMessageCount
@@ -221,7 +242,9 @@
 EXPORT_C void CFSMailFolderBase::SetMessageCount( TUint aMessageCount )
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mMessageCount = aMessageCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -230,7 +253,9 @@
 EXPORT_C void CFSMailFolderBase::SetUnreadCount( TUint aMessageCount )
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mUnreadMessageCount = aMessageCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -239,73 +264,86 @@
 EXPORT_C void CFSMailFolderBase::SetUnseenCount( TUint aMessageCount )
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mUnseenCount = aMessageCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolderBase::SetSubFolderCount
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolderBase::SetSubFolderCount( TUint aFolderCount )
+EXPORT_C void CFSMailFolderBase::SetSubFolderCount(TUint aFolderCount)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateFolder->mSubFolderCount = aFolderCount;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::BlockCopyFromL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailFolderBase::BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
-                          TFSMailBoxStatus aMailBoxStatus )
-{
+													TFSMailBoxStatus aMailBoxStatus )
+	{
     FUNC_LOG;
-    switch(aMailBoxStatus)
-        {
-        case EFSMailBoxOnline:
-            for(TInt i=0;i<aFolderTypes.Count();i++)
-                {
-                iCopyOnlineBlocked.Append(aFolderTypes[i]);       
-                }
-            break;
-        case EFSMailBoxOffline:
-            for(TInt i=0;i<aFolderTypes.Count();i++)
-                {
-                iCopyOfflineBlocked.Append(aFolderTypes[i]);        
-                }
-            break;
-      
-        default:
-            break;
-    }
-}
+	switch(aMailBoxStatus)
+		{
+			case EFSMailBoxOnline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iCopyOnlineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+
+			case EFSMailBoxOffline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iCopyOfflineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+			
+			default:
+			break;
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::BlockMoveFromL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailFolderBase::BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
-                          TFSMailBoxStatus aMailBoxStatus )
-{
+													TFSMailBoxStatus aMailBoxStatus )
+	{
     FUNC_LOG;
-    switch(aMailBoxStatus)
-        {
-        case EFSMailBoxOnline:
-            for(TInt i=0;i<aFolderTypes.Count();i++)
-                {
-                iMoveOnlineBlocked.Append(aFolderTypes[i]);       
-                }
-            break;
-        case EFSMailBoxOffline:
-            for(TInt i=0;i<aFolderTypes.Count();i++)
-                {
-                iMoveOfflineBlocked.Append(aFolderTypes[i]);        
-                }
-            break;
-        default:
-            break;
-    } 
-}
+	switch(aMailBoxStatus)
+		{
+			case EFSMailBoxOnline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iMoveOnlineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
 
+			case EFSMailBoxOffline:
+			for(TInt i=0;i<aFolderTypes.Count();i++)
+				{
+				iMoveOfflineBlocked.Append(aFolderTypes[i]);				
+				}
+			break;
+			
+			default:
+			break;
+		}
+	}
+
+// <qmail>
+// -----------------------------------------------------------------------------
+// CFSMailFolderBase::GetNmFolder
+// -----------------------------------------------------------------------------
 EXPORT_C NmFolder* CFSMailFolderBase::GetNmFolder()
 {
     NmFolder* nmFolder = new NmFolder(iNmPrivateFolder);
     return nmFolder;
 }
+// </qmail>
+
--- a/emailservices/emailcommon/src/CFSMailIterator.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailIterator.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,8 +15,10 @@
 *
 */
 
+// <qmail>
+#include <nmcommonheaders.h>
+// </qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailIterator.h"
 
@@ -24,26 +26,26 @@
 // -----------------------------------------------------------------------------
 // CFSMailIterator::NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailIterator* CFSMailIterator::NewLC(   MFSMailIterator& aIterator,
-                          CFSMailRequestHandler* aRequestHandler )
+EXPORT_C CFSMailIterator* CFSMailIterator::NewLC( 	MFSMailIterator& aIterator,
+													CFSMailRequestHandler* aRequestHandler )
 {
     FUNC_LOG;
-    CFSMailIterator* api = new (ELeave) CFSMailIterator();
-    CleanupStack:: PushL(api);
-    api->ConstructL( aIterator, aRequestHandler );
-    return api;
+  CFSMailIterator* api = new (ELeave) CFSMailIterator();
+  CleanupStack:: PushL(api);
+  api->ConstructL( aIterator, aRequestHandler );
+  return api;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailIterator::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailIterator* CFSMailIterator::NewL(  MFSMailIterator& aIterator,
-                          CFSMailRequestHandler* aRequestHandler )
+EXPORT_C CFSMailIterator* CFSMailIterator::NewL( 	MFSMailIterator& aIterator,
+													CFSMailRequestHandler* aRequestHandler )
 {
     FUNC_LOG;
-    CFSMailIterator* api =  CFSMailIterator::NewLC( aIterator, aRequestHandler );
-    CleanupStack:: Pop(api);
-    return api;
+  CFSMailIterator* api =  CFSMailIterator::NewLC( aIterator, aRequestHandler );
+  CleanupStack:: Pop(api);
+  return api;
 }
 
 // -----------------------------------------------------------------------------
@@ -52,18 +54,18 @@
 CFSMailIterator::CFSMailIterator()
 {
     FUNC_LOG;
-    iIterator = NULL;
+	iIterator = NULL;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailIterator::ConstructL
 // -----------------------------------------------------------------------------
-void CFSMailIterator::ConstructL(   MFSMailIterator& aIterator,
-                  CFSMailRequestHandler* aRequestHandler )
+void CFSMailIterator::ConstructL( 	MFSMailIterator& aIterator,
+									CFSMailRequestHandler* aRequestHandler )
 {
     FUNC_LOG;
-    iIterator = &aIterator;
-    iRequestHandler = aRequestHandler;
+	iIterator = &aIterator;
+	iRequestHandler = aRequestHandler;
  }
 
 // -----------------------------------------------------------------------------
@@ -72,10 +74,10 @@
 EXPORT_C CFSMailIterator::~CFSMailIterator()
 {
     FUNC_LOG;
-    if(iIterator)
-        {
-        delete iIterator;
-        }
+	if(iIterator)
+		{
+		delete iIterator;
+		}
 }
 
 // -----------------------------------------------------------------------------
@@ -85,15 +87,15 @@
         TFSMailMsgId aCurrentMessageId, 
         TUint aCount, 
         RPointerArray<CFSMailMessage>& aMessages)
-{
+	{
     FUNC_LOG;
-    // call plugin iterator
-    TBool ret = iIterator->NextL(aCurrentMessageId,aCount,aMessages);
-  
-    return ret;
-}
-  
-  
+	// call plugin iterator
+	TBool ret = iIterator->NextL(aCurrentMessageId,aCount,aMessages);
+	
+	return ret;
+	}
+	
+	
 // -----------------------------------------------------------------------------
 // CFSMailIterator::NextL
 // -----------------------------------------------------------------------------
@@ -101,15 +103,15 @@
         const TDesC&  aStartWith, 
         TUint aCount, 
         RPointerArray<CFSMailMessage>& aMessages)
-{
+	{
     FUNC_LOG;
 
-    // call plugin iterator
-    TBool ret = iIterator->NextL(aStartWith,aCount,aMessages);
-  
-    return ret;
-}
-  
+	// call plugin iterator
+	TBool ret = iIterator->NextL(aStartWith,aCount,aMessages);
+	
+	return ret;
+	}
+	
 // -----------------------------------------------------------------------------
 // CFSMailIterator::PreviousL
 // -----------------------------------------------------------------------------
@@ -117,14 +119,15 @@
         TFSMailMsgId aCurrentMessageId, 
         TUint aCount, 
         RPointerArray<CFSMailMessage>& aMessages)
-{
+	{
     FUNC_LOG;
-    // call plugin iterator
-    TBool ret = iIterator->PreviousL(aCurrentMessageId,aCount,aMessages);
-    
-    return ret;
-}
-  
+		// call plugin iterator
+	TBool ret = iIterator->PreviousL(aCurrentMessageId,aCount,aMessages);
+		
+	return ret;
+
+	}
+	
 // -----------------------------------------------------------------------------
 // CFSMailIterator::PreviousL
 // -----------------------------------------------------------------------------
@@ -132,13 +135,13 @@
         const TDesC&  aStartWith, 
         TUint aCount, 
         RPointerArray<CFSMailMessage>& aMessages)
-{
+	{
     FUNC_LOG;
 
-    // call plugin iterator
-    TBool ret = iIterator->PreviousL(aStartWith,aCount,aMessages);
-  
-    return ret;
+	// call plugin iterator
+	TBool ret = iIterator->PreviousL(aStartWith,aCount,aMessages);
+	
+	return ret;
 
-}
+	}
 
--- a/emailservices/emailcommon/src/CFSMailMessage.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailMessage.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,7 +15,6 @@
 *
 */
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include <apgcli.h>
 #include <apmrec.h>
@@ -29,6 +28,7 @@
 #include "CFSMailRequestObserver.h"
 
 //<qmail>
+#include <nmcommonheaders.h>
 #include "nmmessage.h"
 //</qmail>
 
@@ -37,24 +37,24 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessage::NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessage * CFSMailMessage::NewLC( TFSMailMsgId aMessageId )
+EXPORT_C CFSMailMessage * CFSMailMessage::NewLC(TFSMailMsgId aMessageId)
 {
     FUNC_LOG;
-    CFSMailMessage* message = new (ELeave) CFSMailMessage();
-    CleanupStack:: PushL(message);
-    message->ConstructL( aMessageId );
-    return message;
+  	CFSMailMessage* message = new (ELeave) CFSMailMessage();
+  	CleanupStack:: PushL(message);
+  	message->ConstructL( aMessageId );
+  	return message;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailMessage::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessage * CFSMailMessage::NewL( TFSMailMsgId aMessageId )
+EXPORT_C CFSMailMessage * CFSMailMessage::NewL(TFSMailMsgId aMessageId)
 {
     FUNC_LOG;
-    CFSMailMessage* message =  CFSMailMessage::NewLC(aMessageId);
-    CleanupStack:: Pop(message);
-    return message;
+  	CFSMailMessage* message =  CFSMailMessage::NewLC(aMessageId);
+  	CleanupStack:: Pop(message);
+  	return message;
 }
 
 // <qmail>
@@ -78,8 +78,10 @@
 void CFSMailMessage::ConstructL( TFSMailMsgId aMessageId )
 {
     FUNC_LOG;
+// <qmail>
     // Base class initialization
     CFSMailMessagePart::ConstructL( aMessageId, TFSMailMsgId() );
+// </qmail>
 }
 
 // <qmail>
@@ -98,11 +100,9 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessage::CFSMailMessage
 // -----------------------------------------------------------------------------
-CFSMailMessage::CFSMailMessage()
+CFSMailMessage::CFSMailMessage() : CFSMailMessagePart()
 {
     FUNC_LOG;
-    // set request handler pointer
-    iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
 }
 
 // -----------------------------------------------------------------------------
@@ -111,20 +111,22 @@
 EXPORT_C CFSMailMessage::~CFSMailMessage()
 {
     FUNC_LOG;
+// <qmail>
     iMessageBufferForAsyncOp.Reset();
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessage::SaveMessageL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessage::SaveMessageL()
-{
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
-        {
-        plugin->StoreMessageL(GetMailBoxId(),*this);
-        }
-}
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
+		{
+		plugin->StoreMessageL(GetMailBoxId(),*this);
+		}
+	}
 
 //<qmail>
 // -----------------------------------------------------------------------------
@@ -205,7 +207,7 @@
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessagePart* CFSMailMessage::AddNewAttachmentL( RFile& aFile,
                                                                 const TDesC8& aMimeType )
-{
+    {
     FUNC_LOG;
     
     CFSMailMessagePart* newPart = NULL;
@@ -249,48 +251,49 @@
         SetFlag(EFSMsgFlag_Attachments);
         }
     return newPart;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessage::AddNewAttachmentL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessage::AddNewAttachmentL( const TDesC& aFilePath,
-                                const TFSMailMsgId /*aInsertBefore*/ )
-{
+EXPORT_C CFSMailMessagePart* CFSMailMessage::AddNewAttachmentL(	const TDesC& aFilePath,
+																const TFSMailMsgId /*aInsertBefore*/ )
+    {
     FUNC_LOG;
 
-    CFSMailMessagePart* newPart = NULL;
-  
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
-        {
-        // use recognizer to find out ContentType 
-        RApaLsSession apaSession;
-        TDataRecognitionResult dataType;
-        TBufC8<KMaxDataTypeLength> buf;
-        User::LeaveIfError(apaSession.Connect());
-        User::LeaveIfError(apaSession.RecognizeData(aFilePath, buf, dataType));
-        apaSession.Close();
+	CFSMailMessagePart* newPart = NULL;
+	
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
+		{
+	    // use recognizer to find out ContentType 
+	    RApaLsSession apaSession;
+		TDataRecognitionResult dataType;
+		TBufC8<KMaxDataTypeLength> buf;
+	    User::LeaveIfError(apaSession.Connect());
+	    User::LeaveIfError(apaSession.RecognizeData(aFilePath, buf, dataType));
+	    apaSession.Close();
 
-        // Create new message part with correct Content-Type
-        TBuf<KMaxDataTypeLength> contentType;
-        contentType.Copy(dataType.iDataType.Des());
-        newPart = plugin->NewChildPartFromFileL( GetMailBoxId(),
-                            GetFolderId(),
-                            GetMessageId(),
-                            GetPartId(),
-                            contentType,
-                            aFilePath );
+	    // Create new message part with correct Content-Type
+		TBuf<KMaxDataTypeLength> contentType;
+		contentType.Copy(dataType.iDataType.Des());
+	    newPart = plugin->NewChildPartFromFileL( 	GetMailBoxId(),
+	    											GetFolderId(),
+	    											GetMessageId(),
+	    											GetPartId(),
+	    											contentType,
+	    											aFilePath );
 
-    
-        // Set attachment name
-        newPart->SetAttachmentNameL(aFilePath);
+		
+	    // Set attachment name
+	    newPart->SetAttachmentNameL(aFilePath);
 
-        // store message part
-        newPart->SaveL();
+		// store message part
+		newPart->SaveL();
 
-        // set flag
+		// set flag
         SetFlag(EFSMsgFlag_Attachments);
-    }  
+		}
+		
     return newPart;
 }
 
@@ -354,7 +357,7 @@
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessage::AttachmentListL(
     RPointerArray<CFSMailMessagePart>& aParts )
-{
+    {
     FUNC_LOG;
     // First list all message parts
     AppendAttachmentsL( aParts ); 
@@ -370,7 +373,8 @@
         // find plain text body part from the list
         CFSMailMessagePart* txtPart = FindBodyPartL(KFSMailContentTypeTextPlain);
         CleanupStack::PushL( txtPart );
-        if ( txtPart )
+        if ( txtPart
+          && txtPart->AttachmentNameL().Length() == 0 ) // real attachments have names
             {
             // remove plain text body part from attachment list
             for ( TInt ii = aParts.Count() - 1; ii >= 0; --ii )
@@ -388,7 +392,8 @@
         // find  html body part from the list
         CFSMailMessagePart* htmlPart = FindBodyPartL(KFSMailContentTypeTextHtml);
         CleanupStack::PushL( htmlPart );
-        if ( htmlPart )
+        if ( htmlPart
+          && htmlPart->AttachmentNameL().Length() == 0 ) // real attachments have names
             {
             // remove html body part from attachment list
             for ( TInt ii = aParts.Count() - 1; ii >= 0; --ii )
@@ -406,8 +411,9 @@
 
     iMessageParts.ResetAndDestroy();
     iReadMessageParts = ETrue;
-}
+    }
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessage::PlainTextBodyPartL
 // -----------------------------------------------------------------------------
@@ -418,18 +424,18 @@
     CFSMailMessagePart* part = FindBodyPartL(KFSMailContentTypeTextPlain, aDataSource);
     
     // special case, single part content type is not given
-    // <qmail>
-    if(!part && iMessageParts.Count() == 1 && iMessageParts[0]->GetContentType().Length() == 0)
-    // </qmail>
-        {
-        part = iMessageParts[0];
-        iMessageParts.Remove(0);
-        }
+    if(part == NULL && iMessageParts.Count() == 1 && iMessageParts[0]->GetContentType().Length() == 0)
+    	{
+    	part = iMessageParts[0];
+    	iMessageParts.Remove(0);
+    	}
     iMessageParts.ResetAndDestroy();
-    iReadMessageParts = ETrue;
+	iReadMessageParts = ETrue;
     return part;
 }
+// </qmail>
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessage::HtmlBodyPartL
 // -----------------------------------------------------------------------------
@@ -439,18 +445,21 @@
     FUNC_LOG;
     CFSMailMessagePart* part = FindBodyPartL(KFSMailContentTypeTextHtml, aDataSource);
     iMessageParts.ResetAndDestroy();
-    iReadMessageParts = ETrue;
+	iReadMessageParts = ETrue;
     return part;
 }
+// </qmail>
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessage::IsMessageL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailMessage::IsMessageL() const
-{
+	{
     FUNC_LOG;
     return CFSMailMessagePart::IsMessageL();
 	}
+// </qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessage::ContentTypeParameters()
@@ -458,18 +467,18 @@
 CDesCArray& CFSMailMessage::ContentTypeParameters()
 {
     FUNC_LOG;
-    CDesCArray* faked = NULL;
-    return *faked;
+   CDesCArray* faked = NULL;
+   return *faked;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessage::DoAttachmentListL
 // -----------------------------------------------------------------------------
 void CFSMailMessage::DoAttachmentListL( RPointerArray<CFSMailMessagePart>& aParts )
-{
+    {
     FUNC_LOG;
     AttachmentListL(aParts);
-}
+    }
 
 //<qmail>
 // -----------------------------------------------------------------------------
--- a/emailservices/emailcommon/src/CFSMailMessageBase.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailMessageBase.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -17,12 +17,14 @@
 
 
 //<cmail>
-#include <nmcommonheaders.h>
+#include "CFSMailRequestHandler.h"
 #include "emailtrace.h"
 #include "CFSMailMessageBase.h"
+#include "cmailmessageext.h"
 //</cmail>
 
 //<qmail>
+#include <nmcommonheaders.h>
 #include "nmmessageenvelope.h"
 #include "nmconverter.h"
 //</qmail>
@@ -33,11 +35,11 @@
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessageBase * CFSMailMessageBase::NewLC( TFSMailMsgId aMessageId )
 {
-    FUNC_LOG;
-    CFSMailMessageBase* message = new (ELeave) CFSMailMessageBase();
-    CleanupStack:: PushL(message);
-    message->ConstructL(aMessageId);
-    return message;
+  FUNC_LOG;
+  CFSMailMessageBase* message = new (ELeave) CFSMailMessageBase();
+  CleanupStack:: PushL(message);
+  message->ConstructL(aMessageId);
+  return message;
 } 
 
 // -----------------------------------------------------------------------------
@@ -45,10 +47,10 @@
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessageBase * CFSMailMessageBase::NewL( TFSMailMsgId aMessageId )
 {
-    FUNC_LOG;
-    CFSMailMessageBase* message =  CFSMailMessageBase::NewLC(aMessageId);
-    CleanupStack:: Pop(message);
-    return message;
+  FUNC_LOG;
+  CFSMailMessageBase* message =  CFSMailMessageBase::NewLC(aMessageId);
+  CleanupStack:: Pop(message);
+  return message;
 }
 
 // -----------------------------------------------------------------------------
@@ -57,16 +59,18 @@
 CFSMailMessageBase::CFSMailMessageBase(): iSender(NULL)
 {
     FUNC_LOG;
+// <qmail> unnecessary member initialization removed: iSubject, iFlags </qmail>
+  	// set request handler pointer
+	iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
 }
 
-//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::ConstructL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessageBase::ConstructL( TFSMailMsgId aMessageId )
 {
     FUNC_LOG;
-
+// <qmail>
     // Construction of shared data object
     iNmPrivateMessageEnvelope = new NmMessageEnvelopePrivate();
 
@@ -78,13 +82,14 @@
 
     // construct the CFSMailAddress object and connect it with NmAddress private data
     iSender = CFSMailAddress::NewL(iNmPrivateMessageEnvelope->mSender);
-    //iSender->ShareNmAddressPrivate(iNmPrivateMessageEnvelope->mSender);
+// </qmail>
 }
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::ConstructL
 // -----------------------------------------------------------------------------
-void CFSMailMessageBase::ConstructL(
+EXPORT_C void CFSMailMessageBase::ConstructL(
     const NmMessageEnvelope &aMessageEnvelope )
 {
     FUNC_LOG;
@@ -99,20 +104,21 @@
 EXPORT_C CFSMailMessageBase::~CFSMailMessageBase()
 {
     FUNC_LOG;
-    if(iSender)
-        {
-        delete iSender;
-        iSender = NULL;
-        }
+	if(iSender)
+		{
+		delete iSender;
+		iSender = NULL;
+		}
+// <qmail> unnecessary member destruction removed: iSubject, iToRecipients, iCcRecipients, iBccRecipients </qmail>
 }
 
-//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::GetMessageId
 // -----------------------------------------------------------------------------
 EXPORT_C TFSMailMsgId CFSMailMessageBase::GetMessageId(  ) const
 {
     FUNC_LOG;
+// <qmail>
     //For message  
     TFSMailMsgId id = TFSMailMsgId(iNmPrivateMessageEnvelope->mId);
     
@@ -120,10 +126,12 @@
     if(id.IsNullId()){
         id = TFSMailMsgId(iNmPrivateMessageEnvelope->mParentId);
     }
-    
+	
     return id;
+// </qmail>
 }
 
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetMessageId
 // -----------------------------------------------------------------------------
@@ -143,7 +151,9 @@
 EXPORT_C TFSMailMsgId CFSMailMessageBase::GetFolderId( ) const
 {
     FUNC_LOG;
-    return NmConverter::nmIdToMailMsgId(iNmPrivateMessageEnvelope->mParentId);
+// <qmail>
+    return TFSMailMsgId(iNmPrivateMessageEnvelope->mParentId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -152,8 +162,9 @@
 EXPORT_C void CFSMailMessageBase::SetFolderId( const TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    iNmPrivateMessageEnvelope->mParentId =
-        NmConverter::mailMsgIdToNmId(aFolderId);
+// <qmail>
+    iNmPrivateMessageEnvelope->mParentId = NmConverter::mailMsgIdToNmId(aFolderId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -162,7 +173,9 @@
 EXPORT_C TFSMailMsgId CFSMailMessageBase::GetMailBoxId( ) const
 {
     FUNC_LOG;
-    return NmConverter::nmIdToMailMsgId(iNmPrivateMessageEnvelope->mMailboxId);
+// <qmail>
+    return NmId(iNmPrivateMessageEnvelope->mMailboxId);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -171,25 +184,28 @@
 EXPORT_C void CFSMailMessageBase::SetMailBoxId( const TFSMailMsgId aMailBoxId )
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateMessageEnvelope->mMailboxId = NmConverter::mailMsgIdToNmId(aMailBoxId);
+// </qmail>
 }
 
-//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetSender
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::SetSender( CFSMailAddress* aSender )
+EXPORT_C void CFSMailMessageBase::SetSender(CFSMailAddress* aSender)
 {
     FUNC_LOG;
-    if (iSender) 
-        {
-        delete iSender;
+// <qmail>
+	// store sender
+	if (iSender)
+		{
+		delete iSender;
         iSender = NULL;
-        }
-    iSender = aSender;
+		}
+	iSender = aSender;
     iNmPrivateMessageEnvelope->mSender = iSender->GetNmAddress();
+// </qmail>
 }
-//</qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::GetSender
@@ -197,7 +213,7 @@
 EXPORT_C CFSMailAddress* CFSMailMessageBase::GetSender() const
 {
     FUNC_LOG;
-    return iSender;
+	return iSender;
 }
 
 // -----------------------------------------------------------------------------
@@ -239,8 +255,7 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::AppendToRecipient
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::AppendToRecipient(
-    CFSMailAddress* aRecipient )
+EXPORT_C void CFSMailMessageBase::AppendToRecipient(CFSMailAddress* aRecipient)
 {
     FUNC_LOG;
 // <qmail>
@@ -252,7 +267,7 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::AppendCCRecipient
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::AppendCCRecipient( CFSMailAddress* aRecipient )
+EXPORT_C void CFSMailMessageBase::AppendCCRecipient(CFSMailAddress* aRecipient )
 {
     FUNC_LOG;
 // <qmail>
@@ -277,34 +292,34 @@
 // CFSMailMessageBase::ClearToRecipients
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessageBase::ClearToRecipients( )
-{
+	{
     FUNC_LOG;
 // <qmail>
     iNmPrivateMessageEnvelope->mToRecipients.clear();
 // </qmail>
-}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::ClearCcRecipients
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessageBase::ClearCcRecipients( )
-{
+	{
     FUNC_LOG;
 // <qmail>
     iNmPrivateMessageEnvelope->mCcRecipients.clear();
 // </qmail>
-}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::ClearBccRecipients
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessageBase::ClearBccRecipients( )
-{
+	{
     FUNC_LOG;
 // <qmail>
     iNmPrivateMessageEnvelope->mBccRecipients.clear();
 // </qmail>
-}
+	}
 
 //<qmail>
 // -----------------------------------------------------------------------------
@@ -313,9 +328,11 @@
 EXPORT_C TDesC& CFSMailMessageBase::GetSubject() const
 {
     FUNC_LOG;
+// <qmail>
     iSubjectPtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateMessageEnvelope->mSubject.utf16()),
         iNmPrivateMessageEnvelope->mSubject.length());
     return iSubjectPtr;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -324,7 +341,9 @@
 EXPORT_C TTime CFSMailMessageBase::GetDate() const
 {
     FUNC_LOG;
+// <qmail>
     return NmConverter::toTTime(iNmPrivateMessageEnvelope->mSentTime);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -333,17 +352,21 @@
 EXPORT_C void CFSMailMessageBase::SetDate( const TTime aDate )
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateMessageEnvelope->mSentTime = NmConverter::toQDateTime(aDate);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetSubject
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::SetSubject( const TDesC& aSubject )
+EXPORT_C void CFSMailMessageBase::SetSubject(const TDesC& aSubject)
 {
     FUNC_LOG;
+// <qmail>
     QString qtSubject = QString::fromUtf16(aSubject.Ptr(), aSubject.Length());
     iNmPrivateMessageEnvelope->mSubject = qtSubject;
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -352,72 +375,80 @@
 EXPORT_C TInt CFSMailMessageBase::GetFlags( ) const
 {
     FUNC_LOG;
+// <qmail>
     return (TInt)iNmPrivateMessageEnvelope->flags();
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetFlag
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::SetFlag( const TInt aFlag )
+EXPORT_C void CFSMailMessageBase::SetFlag(const TInt aFlag)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateMessageEnvelope->setFlags((NmMessageFlags)aFlag, true);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::ResetFlag
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::ResetFlag( const TInt aFlag )
+EXPORT_C void CFSMailMessageBase::ResetFlag(const TInt aFlag)
 {
     FUNC_LOG;
+// <qmail>
     iNmPrivateMessageEnvelope->setFlags((NmMessageFlags)aFlag, false);
+// </qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::IsFlagSet
 // -----------------------------------------------------------------------------
-EXPORT_C TBool CFSMailMessageBase::IsFlagSet( const TInt aFlag ) const
+EXPORT_C TBool CFSMailMessageBase::IsFlagSet(const TInt aFlag) const
 {
     FUNC_LOG;
+// <qmail>
     TBool result = EFalse;
     if (iNmPrivateMessageEnvelope->isFlagSet((NmMessageFlag)aFlag)) 
         {
         result = ETrue;
         }
     return result;
+// <qmail>
 }
-//</qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::IsRelatedTo
 // -----------------------------------------------------------------------------
 EXPORT_C TFSMailMsgId CFSMailMessageBase::IsRelatedTo() const
-{
+	{
     FUNC_LOG;
-    return iRelatedTo;
-}
+	return iRelatedTo;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetRelatedTo
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessageBase::SetRelatedTo( const TFSMailMsgId aMessageId )
-{
+	{
     FUNC_LOG;
-    iRelatedTo = aMessageId;
-}
+	iRelatedTo = aMessageId;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::SetReplyToAddress
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessageBase::SetReplyToAddress( CFSMailAddress* aReplyToAddress )
+EXPORT_C void CFSMailMessageBase::SetReplyToAddress(CFSMailAddress* aReplyToAddress)
 {
     FUNC_LOG;
-    // store sender
-    if (iReplyTo)
-        {
-        delete iReplyTo;
-        }
-    iReplyTo = aReplyToAddress;
+	// store sender
+	if (iReplyTo)
+		{
+		delete iReplyTo;
+		}
+	iReplyTo = aReplyToAddress;
+
 }
 
 // -----------------------------------------------------------------------------
@@ -426,9 +457,15 @@
 EXPORT_C const CFSMailAddress& CFSMailMessageBase::GetReplyToAddress()
 {
     FUNC_LOG;
-    return *iReplyTo;
+	return *iReplyTo;
 }
 
+EXPORT_C CFSMailRequestHandler& CFSMailMessageBase::RequestHandler( )
+{
+	return *iRequestHandler;
+}
+
+// <qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessageBase::GetNmMessageEnvelope
 // -----------------------------------------------------------------------------
@@ -437,4 +474,47 @@
     FUNC_LOG;
     return new NmMessageEnvelope(iNmPrivateMessageEnvelope);
 }
+// </qmail>
 
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ReleaseExtension
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(
+		iNmPrivateMessageEnvelope->mId ) )
+        {
+        // If plugin has created the extension, let it handle destruction.
+        plugin->ReleaseExtension( aExtension );
+        }
+    else
+        {
+        CExtendableEmail::ReleaseExtension( aExtension );
+        }
+    }
+    
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ExtensionL
+// -----------------------------------------------------------------------------
+EXPORT_C CEmailExtension* CFSMailMessageBase::ExtensionL( 
+    const TUid& aInterfaceUid )
+    {
+    FUNC_LOG;
+    CEmailExtension* ext = CExtendableEmail::ExtensionL( aInterfaceUid );
+    // didn't find already created instance, try now
+    if ( !ext )
+        {
+        // check that plugin supports requested extension.
+// <qmail>
+        if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(
+			iNmPrivateMessageEnvelope->mId ) )
+// </qmail>
+            {
+            // request extension from plugin, leaves if not supported
+            ext = plugin->ExtensionL( aInterfaceUid );    
+            }
+
+        }
+    return ext;
+    }
--- a/emailservices/emailcommon/src/CFSMailMessagePart.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailMessagePart.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,10 @@
 *
 */
 
+//<qmail>
 #include <nmcommonheaders.h>
+//</qmail>
+
 #include "emailtrace.h"
 #include <apgcli.h>
 #include <apmrec.h>
@@ -38,29 +41,29 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessagePart::NewLC(
-    TFSMailMsgId aMessageId, TFSMailMsgId aMessagePartId )
+EXPORT_C CFSMailMessagePart* CFSMailMessagePart::NewLC( TFSMailMsgId aMessageId,
+														TFSMailMsgId aMessagePartId )
 {
     FUNC_LOG;
-    CFSMailMessagePart* self = new (ELeave) CFSMailMessagePart();
-    CleanupStack::PushL(self);
-    self->ConstructL( aMessageId, aMessagePartId );
-    return self;
+  CFSMailMessagePart* adr = new (ELeave) CFSMailMessagePart();
+  CleanupStack::PushL(adr);
+  adr->ConstructL( aMessageId, aMessagePartId );
+  return adr;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::NewL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessagePart::NewL(
-    TFSMailMsgId aMessageId, TFSMailMsgId aMessagePartId )
+EXPORT_C CFSMailMessagePart* CFSMailMessagePart::NewL(	TFSMailMsgId aMessageId,
+														TFSMailMsgId aMessagePartId )
 {
     FUNC_LOG;
-    CFSMailMessagePart* self =
-        CFSMailMessagePart::NewLC( aMessageId, aMessagePartId );
-    CleanupStack::Pop(self);
-    return self;
+  CFSMailMessagePart* adr =  CFSMailMessagePart::NewLC( aMessageId, aMessagePartId );
+  CleanupStack::Pop(adr);
+  return adr;
 }
 
+//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::NewLC
 // -----------------------------------------------------------------------------
@@ -68,11 +71,12 @@
     const NmMessagePart& aNmMessage )
 {
     FUNC_LOG;
-  CFSMailMessagePart* self = new (ELeave) CFSMailMessagePart();
-  CleanupStack::PushL(self);
-  self->ConstructL( aNmMessageId,aNmMessage );
-  return self;
+	CFSMailMessagePart* self = new (ELeave) CFSMailMessagePart();
+	CleanupStack::PushL(self);
+	self->ConstructL( aNmMessageId,aNmMessage );
+	return self;
 } 
+//</qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ConstructL
@@ -81,7 +85,8 @@
                                      TFSMailMsgId aMessagePartId )
 {
     FUNC_LOG;
-    // Base class initialization
+//<qmail>
+	// Base class initialization
     CFSMailMessageBase::ConstructL(aMessageId);
 	
 	iNmPrivateMessagePart = new NmMessagePartPrivate();
@@ -91,13 +96,12 @@
 		
 	iMessagePartsStatus = EFSDefault;
 
-	// set request handler pointer
-	iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
-
 	iContentTypeParams  = new (ELeave)CDesCArrayFlat( KArrayGranularity );
 	iContentDispositionParams = new (ELeave)CDesCArrayFlat( KArrayGranularity );
+//</qmail>
 }
 
+//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ConstructL
 // -----------------------------------------------------------------------------
@@ -111,14 +115,13 @@
            
     iMessagePartsStatus = EFSDefault;
 
-    // set request handler pointer
-    iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
-
     iContentTypeParams  = new (ELeave)CDesCArrayFlat( KArrayGranularity );
     iContentDispositionParams = new (ELeave)CDesCArrayFlat( KArrayGranularity );
 
 }
+//</qmail>
 
+//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ConstructL
 // -----------------------------------------------------------------------------
@@ -134,13 +137,11 @@
            
     iMessagePartsStatus = EFSDefault;
 
-    // set request handler pointer
-    iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
-
     iContentTypeParams  = new (ELeave)CDesCArrayFlat( KArrayGranularity );
     iContentDispositionParams = new (ELeave)CDesCArrayFlat( KArrayGranularity );
 
 }
+//</qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::~CFSMailMessagePart
@@ -148,7 +149,7 @@
 EXPORT_C CFSMailMessagePart::~CFSMailMessagePart()
 {
     FUNC_LOG;
-            
+//<qmail> iContentType, iContentDescription, iContentDisposition, iContentID removed </qmail>
 	if(iAttachmentName)
 	{
 		delete iAttachmentName;
@@ -184,12 +185,13 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::CFSMailMessagePart
 // -----------------------------------------------------------------------------
-CFSMailMessagePart::CFSMailMessagePart()
+CFSMailMessagePart::CFSMailMessagePart() : CFSMailMessageBase()
 {
-    FUNC_LOG;    
-
-    iContentClass = HBufC::New(1);
-    iContentClass->Des().Copy(KNullDesC());
+    FUNC_LOG;
+	
+//<qmail> iContentType, iContentDescription, iContentDisposition, iContentID removed </qmail>
+	iContentClass = HBufC::New(1);
+	iContentClass->Des().Copy(KNullDesC());
 
 	iAttachmentName = HBufC::New(1);
 	iAttachmentName->Des().Copy(KNullDesC());
@@ -203,19 +205,23 @@
 EXPORT_C const TDesC& CFSMailMessagePart::GetContentType() const
 {
     FUNC_LOG;
+//<qmail>
     iContentTypePtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateMessagePart->mContentType.utf16()),
     		iNmPrivateMessagePart->mContentType.length());
     return iContentTypePtr;
+//</qmail>
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentType
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetContentType( const TDesC& aContentType )
+EXPORT_C void CFSMailMessagePart::SetContentType(const TDesC& aContentType)
 {
     FUNC_LOG;
+//<qmail>
     QString qtContentType = QString::fromUtf16(aContentType.Ptr(), aContentType.Length());
     iNmPrivateMessagePart->mContentType = qtContentType;
+//</qmail>
 }
 
 // -----------------------------------------------------------------------------
@@ -224,15 +230,18 @@
 EXPORT_C TFSMailMsgId CFSMailMessagePart::GetPartId() const
 {
     FUNC_LOG;
+//<qmail>
     return TFSMailMsgId(iNmPrivateMessagePart->mOwnId);
+//</qmail>	
 }
 
+//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ChildPartsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::ChildPartsL( RPointerArray<CFSMailMessagePart>& aParts,
     TFSMailMessagePartDataSource aDataSource)
-{
+	{
     FUNC_LOG;
 
     if (aDataSource == EDataSourceMessageStore)
@@ -254,72 +263,102 @@
             aParts.AppendL(part);
             CleanupStack::Pop(part);
             }
-        }
- }
+		}
+	}
+//</qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ChildPartL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessagePart::ChildPartL( TFSMailMsgId aPartId )
-{
+EXPORT_C CFSMailMessagePart* CFSMailMessagePart::ChildPartL(TFSMailMsgId aPartId)
+	{
     FUNC_LOG;
-  
-    CFSMailMessagePart* part = NULL;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
-        {
-        part = plugin->MessagePartL(GetMailBoxId(),
-                  GetFolderId(),
-                  GetMessageId(),
-                  aPartId);
-        }
-    return part;
-}
+	
+	CFSMailMessagePart* part = NULL;
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
+		{
+		part = plugin->MessagePartL(GetMailBoxId(),
+									GetFolderId(),
+									GetMessageId(),
+									aPartId);
+		}
+	return part;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::IsMessageL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailMessagePart::IsMessageL() const
-{
+	{
     FUNC_LOG;
 
-    TBuf<KMaxDataTypeLength> ptr;
-    if ( !iNmPrivateMessagePart->mContentType.isNull() ) {
+	TBuf<KMaxDataTypeLength> ptr;
+//<qmail>
+    if ( !iNmPrivateMessagePart->mContentType.isNull() ) 
+    {
 		ptr.Copy(GetContentType());
-    	TInt length = ptr.Locate(';');
-    	if(length >= 0) {
+//</qmail>
+		TInt length = ptr.Locate(';');
+		if(length >= 0)
+			{
 			ptr.SetLength(length);
+			}
+		
+		if( !ptr.CompareF(KFSMailContentTypeMessage) )
+		{
+			return ETrue;
 		}
-    	if( !ptr.Compare(KFSMailContentTypeMessage) ) {
-			return ETrue;
-    	}
     }
-    return EFalse;
-}
+	return EFalse;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::NewChildPartL
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessagePart* CFSMailMessagePart::NewChildPartL( const TFSMailMsgId aInsertBefore,
-                                const TDesC& aContentType )
-{
+																const TDesC& aContentType )
+	{
     FUNC_LOG;
 
-    CFSMailMessagePart* part = NULL;
-  
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
-        {
-        part = plugin->NewChildPartL(   GetMailBoxId(), GetFolderId(), GetMessageId(),
-                    GetPartId(), aInsertBefore, aContentType );
-        }
-    return part;
-}
+	CFSMailMessagePart* part = NULL;
+	
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetMessageId()))
+		{
+		part = plugin->NewChildPartL( 	GetMailBoxId(), GetFolderId(), GetMessageId(),
+								 		GetPartId(), aInsertBefore, aContentType );
+		}
+	return part;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::RemoveChildPartL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::RemoveChildPartL( TFSMailMsgId aPartId )
+EXPORT_C void CFSMailMessagePart::RemoveChildPartL(TFSMailMsgId aPartId)
 {
     FUNC_LOG;
+	// get plugin pointer
+	TFSMailMsgId id = GetPartId();
+	if(id.IsNullId())
+		{
+		id = GetMessageId();
+		}
+	CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(id);
+	
+	if(plugin)
+		{
+		plugin->RemoveChildPartL( GetMailBoxId(), GetFolderId(), GetMessageId(), GetPartId(), aPartId );
+		}
+	}
+	
+// <qmail>
+// -----------------------------------------------------------------------------
+// CFSMailMessagePart::RemoveChildPartL
+// -----------------------------------------------------------------------------
+EXPORT_C TInt CFSMailMessagePart::RemoveChildPartL( TFSMailMsgId aPartId,
+                                                    MFSMailRequestObserver& aOperationObserver)
+{
+    FUNC_LOG;
+    TFSPendingRequest request;
     // get plugin pointer
     TFSMailMsgId id = GetPartId();
     if(id.IsNullId())
@@ -327,52 +366,79 @@
         id = GetMessageId();
         }
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(id);
-  
+
     if(plugin)
         {
-        plugin->RemoveChildPartL( GetMailBoxId(), GetFolderId(), GetMessageId(), GetPartId(), aPartId );
+        request = iRequestHandler->InitAsyncRequestL( id.PluginId(),
+                                                      aOperationObserver );
+        
+        MFSMailRequestObserver* observer = request.iObserver;
+        
+        TRAPD(err, plugin->RemoveChildPartL( GetMailBoxId(),
+            GetFolderId(),
+            GetMessageId(),
+            GetPartId(),
+            aPartId,
+            *observer,
+            request.iRequestId));
+        
+        if( err != KErrNone )
+            {
+            iRequestHandler->CompleteRequest( request.iRequestId );
+            User::Leave( err );
+            }
         }
+    else
+        {
+        User::Leave( KErrNotFound );
+        }
+    
+    return request.iRequestId;
 }
+// </qmail>
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::GetContentClass
 // -----------------------------------------------------------------------------
 EXPORT_C const TDesC& CFSMailMessagePart::GetContentClass()
-{
+	{
     FUNC_LOG;
-    return *iContentClass;
-}
+		return *iContentClass;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentClass
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::SetContentClass( const TDesC& aContentClass )
-{
+	{
     FUNC_LOG;
 
-    HBufC* contentClass = HBufC::New(aContentClass.Length());
-  
-    // store new mailbox name
-    if(contentClass)
-        {
-        delete iContentClass;
-        iContentClass = contentClass;
-        iContentClass->Des().Copy(aContentClass);
-        }
-    iContentClass->ReAlloc(aContentClass.Length());
-    if(iContentClass)
-        {
-        iContentClass->Des().Copy(aContentClass);   
-        }
-}
+	// 
+	HBufC* contentClass = HBufC::New(aContentClass.Length());
+	
+	// store new mailbox name
+	if(contentClass)
+	{
+		delete iContentClass;
+		iContentClass = contentClass;
+		iContentClass->Des().Copy(aContentClass);
+	}
+		iContentClass->ReAlloc(aContentClass.Length());
+		if(iContentClass)
+		{
+			iContentClass->Des().Copy(aContentClass);		
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ContentSize
 // -----------------------------------------------------------------------------
 EXPORT_C TUint CFSMailMessagePart::ContentSize() const
-{
+	{
     FUNC_LOG;
+//<qmail>
     return (TUint)iNmPrivateMessagePart->mSize;
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
@@ -381,101 +447,97 @@
 EXPORT_C void CFSMailMessagePart::SetContentSize( TUint aContentSize )
 	{
     FUNC_LOG;
+//<qmail>
     iNmPrivateMessagePart->mSize = quint32(aContentSize);
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ContentID
 // -----------------------------------------------------------------------------
 EXPORT_C const TDesC& CFSMailMessagePart::ContentID()
-{
+	{
     FUNC_LOG;
-	
+//<qmail>	
     iContentIDPtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateMessagePart->mContentId.utf16()),
     		iNmPrivateMessagePart->mContentId.length());
     return iContentIDPtr;	
-	
+//</qmail>
 	}
 	
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentIDL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetContentIDL( const TDesC& aContentID )
-{
+EXPORT_C void CFSMailMessagePart::SetContentIDL(const TDesC& aContentID)
+	{
     FUNC_LOG;
-
+//<qmail>
     QString qtContentID = QString::fromUtf16(aContentID.Ptr(), aContentID.Length());
     iNmPrivateMessagePart->mContentId = qtContentID;    
-    
+//</qmail>    
 	}
 	
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::CopyMessageAsChildPartL
 // -----------------------------------------------------------------------------
 EXPORT_C CFSMailMessagePart* CFSMailMessagePart::CopyMessageAsChildPartL(
-                          TFSMailMsgId aInsertBefore,
-                          CFSMailMessage* aMessage )
-{
+													TFSMailMsgId aInsertBefore,
+													CFSMailMessage* aMessage)
+	{
     FUNC_LOG;
-  
-    CFSMailMessagePart* part = NULL;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        part = plugin->CopyMessageAsChildPartL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),
-                      aInsertBefore, *aMessage);
-        }
-  return part;
-}
+	
+	CFSMailMessagePart* part = NULL;
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+	{
+		part = plugin->CopyMessageAsChildPartL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),
+											aInsertBefore, *aMessage);
+	}
+	return part;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::RemoveContentL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::RemoveContentL()
-{
+	{
     FUNC_LOG;
-  
-    CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId());
-    // <qmail>
-    if(!plugin)
-    // </qmail>
-        {
-        plugin = iRequestHandler->GetPluginByUid(GetMessageId());
-        }
-    // <qmail>
-    if(plugin)
-    // </qmail>
-        {
-        RPointerArray<CFSMailMessagePart> parts;
-        RArray<TFSMailMsgId> partIds;
-        plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
-        for(TInt i=0;i<parts.Count();i++)
-            {
-            partIds.Append(parts[i]->GetMessageId());
-            }
+	
+	CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId());
+	if(plugin == NULL)
+	    {
+	    plugin = iRequestHandler->GetPluginByUid(GetMessageId());
+	    }
+	
+	if(plugin != NULL)
+		{
+		RPointerArray<CFSMailMessagePart> parts;
+		RArray<TFSMailMsgId> partIds;
+    	plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
+		for(TInt i=0;i<parts.Count();i++)
+			{
+			partIds.Append(parts[i]->GetMessageId());
+			}
         partIds.Append(GetPartId());
-        plugin->RemovePartContentL(GetMailBoxId(), GetFolderId(), GetMessageId(), partIds);
+		plugin->RemovePartContentL(GetMailBoxId(), GetFolderId(), GetMessageId(), partIds);
         parts.ResetAndDestroy();
-        partIds.Reset();
-    }
-}
+		partIds.Reset();
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::RemoveDownLoadedAttachmentsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::RemoveDownLoadedAttachmentsL()
-{
+    {
     FUNC_LOG;
         
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId());
-    // <qmail>
-    if(!plugin)
-    // </qmail>
+    if(plugin == NULL)
         {
         plugin = iRequestHandler->GetPluginByUid(GetMessageId());
         }
-    // <qmail>
-    if(plugin)
-    // </qmail>
+    
+    if(plugin != NULL)
         {
         // get attachment list
         RPointerArray<CFSMailMessagePart> attachments;
@@ -500,141 +562,150 @@
         attachments.ResetAndDestroy();
         ids.Reset();
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::GetContentFileL
 // -----------------------------------------------------------------------------
 EXPORT_C RFile CFSMailMessagePart::GetContentFileL()
-{
+	{
     FUNC_LOG;
-  
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        TInt rcode = plugin->GetMessagePartFileL( GetMailBoxId(), GetFolderId(),
-                                      GetMessageId(), GetPartId(),
-                                      iFile );
-        // if content is encrypted, use temp dir files
-        if(rcode == KErrNotSupported)
-            {
-            // temp directory C:\Private\<uid>
-            TFileName fileName;
-            iFile = iRequestHandler->GetTempFileL(GetPartId(),fileName);
-            plugin->CopyMessagePartFileL(GetMailBoxId(), GetFolderId(),
-                                     GetMessageId(), GetPartId(),
-                                     fileName);
-            }
-        }
-    return iFile;
-}
-  
+	
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		TInt rcode = plugin->GetMessagePartFileL( GetMailBoxId(), GetFolderId(),
+					                            GetMessageId(), GetPartId(),
+					                            iFile );
+		// if content is encrypted, use temp dir files
+		if(rcode == KErrNotSupported)
+		    {
+		    // temp directory C:\Private\<uid>
+		    TFileName fileName;
+		    iFile = iRequestHandler->GetTempFileL(GetPartId(),fileName);
+		    plugin->CopyMessagePartFileL(GetMailBoxId(), GetFolderId(),
+		                                 GetMessageId(), GetPartId(),
+		                                 fileName);
+		    }
+		}
+	
+	return iFile;
+	}
+	
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentFromFileL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetContentFromFileL( const TDesC& aFilePath )
-{
+EXPORT_C void CFSMailMessagePart::SetContentFromFileL(const TDesC& aFilePath)
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        plugin->SetPartContentFromFileL(GetMailBoxId(), GetFolderId(),
-            GetMessageId(), GetPartId(), aFilePath );
-        }
-}
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		plugin->SetPartContentFromFileL(GetMailBoxId(), GetFolderId(),
+			GetMessageId(), GetPartId(), aFilePath );
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::CopyContentFileL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::CopyContentFileL( const TDesC& aFilePath )
-{
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        plugin->CopyMessagePartFileL( GetMailBoxId(), GetFolderId(),
-            GetMessageId(), GetPartId(), aFilePath);    
-        }
-}
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		plugin->CopyMessagePartFileL( GetMailBoxId(), GetFolderId(),
+			GetMessageId(), GetPartId(), aFilePath);		
+		}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::GetContentToBufferL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::GetContentToBufferL( TDes16& aBuffer, TUint aStartOffset )
-{
+EXPORT_C void CFSMailMessagePart::GetContentToBufferL(TDes16& aBuffer, TUint aStartOffset)
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        plugin->GetContentToBufferL( GetMailBoxId(), GetFolderId(), GetMessageId(),
-                   GetPartId(), aBuffer, aStartOffset );
-        }
-}
-  
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		plugin->GetContentToBufferL( GetMailBoxId(), GetFolderId(), GetMessageId(),
+									 GetPartId(), aBuffer, aStartOffset );
+		}
+	}
+	
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContent
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::SetContent( TDes16& aBuffer )
-{
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        // <qmail>
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+// <qmail>
         TRAP_IGNORE(plugin->SetContentL( aBuffer, GetMailBoxId(), GetFolderId(),
             GetMessageId(), GetPartId() ));
-        // </qmail>
+// </qmail>
         }
-}
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ContentDescription
 // -----------------------------------------------------------------------------
 EXPORT_C const TDesC& CFSMailMessagePart::ContentDescription()
-{
+	{
     FUNC_LOG;
+//<qmail>
     iContentDescriptionPtr.Set(reinterpret_cast<const TUint16*> (
             iNmPrivateMessagePart->mContentDescription.utf16()),
     		iNmPrivateMessagePart->mContentDescription.length());
     
     return iContentDescriptionPtr;
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentDescription
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::SetContentDescription( const TDesC& aContentDescription )
-{
+	{
     FUNC_LOG;
+//<qmail>
     QString qtContentDescription = QString::fromUtf16(
             aContentDescription.Ptr(), aContentDescription.Length());
     iNmPrivateMessagePart->mContentDescription = qtContentDescription;
+//</qmail>
 	}
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ContentDisposition
 // -----------------------------------------------------------------------------
 EXPORT_C const TDesC& CFSMailMessagePart::ContentDisposition()
-{
+	{
     FUNC_LOG;
+//<qmail>
 	iContentDispositionPtr.Set(reinterpret_cast<const TUint16*> (
 	        iNmPrivateMessagePart->mContentDisposition.utf16()),
 			iNmPrivateMessagePart->mContentDisposition.length());
 	return iContentDispositionPtr;
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetContentDisposition
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::SetContentDisposition( const TDesC& aContentDisposition )
-{
+	{
     FUNC_LOG;
+//<qmail>
     QString qtContentDisposition = QString::fromUtf16(
             aContentDisposition.Ptr(), aContentDisposition.Length());
     iNmPrivateMessagePart->mContentDisposition = qtContentDisposition;
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ContentTypeParameters
 // -----------------------------------------------------------------------------
 EXPORT_C CDesCArray& CFSMailMessagePart::ContentTypeParameters()
-{
+	{
     FUNC_LOG;
-		
+//<qmail>	
     if (iNmPrivateMessagePart->mContentType.isNull())
 		{
 		return *iContentTypeParams;
@@ -646,6 +717,7 @@
 	
 	// check content type parameters existence
 	TInt index = GetContentType().Locate(';');
+//</qmail>	
 	if(index >= 0)
 		{
 		TInt attLength(0);
@@ -657,7 +729,9 @@
 			HBufC* buf;
 			
 			// set pointer to first parameter
+//<qmail>
 			TPtrC parameter = GetContentType().Mid(index+1);
+//</qmail>
 			attLength = parameter.Locate('=');
 			if(attLength >= 0)
 				{
@@ -726,22 +800,26 @@
 // CFSMailMessagePart::ContentDispositionParameters
 // -----------------------------------------------------------------------------
 EXPORT_C CDesCArray& CFSMailMessagePart::ContentDispositionParameters()
-{
+	{
     FUNC_LOG;
 	
+//<qmail>
     const TDesC& contentDisposition = ContentDisposition();
     
 	if(!contentDisposition.Ptr())
 		{
 		return *iContentDispositionParams;
 		}
+//</qmail>
 	
 	// clear parameter array
 	iContentDispositionParams->Reset();
 	TInt ret = KErrNone;
     
 	// check content disposition parameters existence
+//<qmail>
 	TInt index = contentDisposition.Locate(';');
+//</qmail>
 	if( index >= 0 )
 		{
 		TInt attLength(0);
@@ -752,7 +830,9 @@
 			TPtrC value;
 			
 			// set pointer to first parameter
+//<qmail>
 			TPtrC parameter = contentDisposition.Mid(index+1);
+//</qmail>
 			attLength = parameter.Locate('=');
 			if( attLength >= 0 )
 				{
@@ -856,7 +936,7 @@
 EXPORT_C MMRInfoObject& CFSMailMessagePart::GetMRInfo()
 {
     FUNC_LOG;
-    return *iMeetingRequest;
+	return *iMeetingRequest;
 }
 
 // -----------------------------------------------------------------------------
@@ -865,55 +945,47 @@
 EXPORT_C TBool CFSMailMessagePart::IsMRInfoSet()
 {
     FUNC_LOG;
-    if(iMeetingRequest)
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
+	if(iMeetingRequest)
+		{
+		return ETrue;
+		}
+	else
+		{
+		return EFalse;
+		}
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetMRInfo
-// -----------------------------------------------------------------------------  
-EXPORT_C void CFSMailMessagePart::SetMRInfo( MMRInfoObject* aMeetingRequest )
+// -----------------------------------------------------------------------------	
+EXPORT_C void CFSMailMessagePart::SetMRInfo(MMRInfoObject* aMeetingRequest)
 {
     FUNC_LOG;
-    if(iMeetingRequest)
-        {
-        delete iMeetingRequest;
-        }
-    iMeetingRequest = aMeetingRequest;
-}
-
-// -----------------------------------------------------------------------------
-// CFSMailMessagePart::RequestHandler
-// -----------------------------------------------------------------------------
-EXPORT_C CFSMailRequestHandler&  CFSMailMessagePart::RequestHandler( )
-{
-    return *iRequestHandler;
+	if(iMeetingRequest)
+	{
+		delete iMeetingRequest;
+	}
+	iMeetingRequest = aMeetingRequest;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SaveL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::SaveL()
-{
+	{
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        plugin->StoreMessagePartL( GetMailBoxId(), GetFolderId(), GetMessageId(), *this );    
-        }
-}
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		plugin->StoreMessagePartL( GetMailBoxId(), GetFolderId(), GetMessageId(), *this );		
+		}
+	}
 
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetAttachmentNameL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetAttachmentNameL( const TDesC& aFilePath )
-{
+EXPORT_C void CFSMailMessagePart::SetAttachmentNameL(const TDesC& aFilePath)
+	{
     FUNC_LOG;
 	    // Parse file name in case full path is given
 		TPtrC name;
@@ -927,28 +999,36 @@
 			
 	    // Set Content-Type param "name" = filename
 	    TUint length =  KFSMailContentTypeParamName.iTypeLength + name.Length() + 5;
-	    if (!iNmPrivateMessagePart->mContentType.isNull()) {
+//<qmail>
+	    if (!iNmPrivateMessagePart->mContentType.isNull()) 
+			{
 			length += GetContentType().Length();
-	    }
+	    	}
 
 	    HBufC* buffer = HBufC::NewL(length);
-	    if (!iNmPrivateMessagePart->mContentType.isNull()) {
+	    if (!iNmPrivateMessagePart->mContentType.isNull()) 
+			{
 			buffer->Des().Append(GetContentType());
-	    }
+	    	}
+//</qmail>
+		
 	    buffer->Des().Append(_L("; "));
 	    buffer->Des().Append(KFSMailContentTypeParamName);
 	    buffer->Des().Append('"');
 	    buffer->Des().Append(name);
 	    buffer->Des().Append('"');
 	    
+//<qmail>
 	    SetContentType(*buffer);
 	    delete buffer;
+//</qmail>
 	    
 	    // Set Content-Disposition as "attachment" and
 	    // Content-Disposition param "filename" = filename and
 	    length = KFSMailContentDispAttachment.iTypeLength +
 	    KFSMailContentDispParamFilename.iTypeLength + name.Length() + 4;
 		
+//<qmail>
 	    buffer = HBufC::NewL(length);
 	    buffer->Des().Append(KFSMailContentDispAttachment);
 	    buffer->Des().Append(_L("; "));
@@ -956,63 +1036,64 @@
 	    buffer->Des().Append('"');
 	    buffer->Des().Append(name);
 	    buffer->Des().Append('"');
-
 	    SetContentDisposition(*buffer);    
 	    delete buffer;	    
 	    
 		// set content description		
 		SetContentDescription(name);
-				
+//</qmail>	
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::AttachmentNameL
 // -----------------------------------------------------------------------------
 EXPORT_C TDesC& CFSMailMessagePart::AttachmentNameL()
-{
+	{
     FUNC_LOG;
-	    // Look first from Content-Type param "name"
-		TInt ptr = GetContentType().Find(KFSMailContentTypeParamName);
-	    if(ptr >= 0)
-	    	{
-	    	ptr = GetContentType().Locate('=');
-	    	TInt length = GetContentType().Length()-ptr-3;
-	    	TPtrC name = GetContentType().Mid((ptr+2),length);
-	    	if(iAttachmentName)
-	    		{
-	    		delete iAttachmentName;
-	    		iAttachmentName = NULL;
-	    		}
+//<qmail>
+    // Look first from Content-Type param "name"
+	TInt ptr = GetContentType().Find(KFSMailContentTypeParamName);
+    if(ptr >= 0)
+    	{
+    	ptr = GetContentType().Locate('=');
+    	TInt length = GetContentType().Length()-ptr-3;
+    	TPtrC name = GetContentType().Mid((ptr+2),length);
+    	if(iAttachmentName)
+    		{
+    		delete iAttachmentName;
+    		iAttachmentName = NULL;
+    		}
+    	iAttachmentName = HBufC::New(name.Length());
+    	iAttachmentName->Des().Copy(name);
+    	return *iAttachmentName;
+    	}
+    // then if Content-Disposition is "attachment" look from Content-Disposition param "filename" and
+    TDesC contentDisposition = ContentDisposition(); 
+    ptr = contentDisposition.Find(KFSMailContentDispAttachment);
+	if(ptr >= 0)
+		{
+		ptr = contentDisposition.Find(KFSMailContentDispParamFilename);
+		if(ptr > 0)
+			{
+			ptr = contentDisposition.Locate('=');
+			TInt length = contentDisposition.Length()-ptr-3;
+	    	TPtrC name = contentDisposition.Mid(ptr+2,length);
+    		if(iAttachmentName)
+    		{
+    			delete iAttachmentName;
+    			iAttachmentName = NULL;
+    		}
 	    	iAttachmentName = HBufC::New(name.Length());
 	    	iAttachmentName->Des().Copy(name);
-	    	return *iAttachmentName;
-	    	}
-	    // then if Content-Disposition is "attachment" look from Content-Disposition param "filename" and
-	    TDesC contentDisposition = ContentDisposition(); 
-	    ptr = contentDisposition.Find(KFSMailContentDispAttachment);
-		if(ptr >= 0)
-			{
-			ptr = contentDisposition.Find(KFSMailContentDispParamFilename);
-			if(ptr > 0)
-				{
-				ptr = contentDisposition.Locate('=');
-				TInt length = contentDisposition.Length()-ptr-3;
-		    	TPtrC name = contentDisposition.Mid(ptr+2,length);
-	    		if(iAttachmentName)
-	    		{
-	    			delete iAttachmentName;
-	    			iAttachmentName = NULL;
-	    		}
-		    	iAttachmentName = HBufC::New(name.Length());
-		    	iAttachmentName->Des().Copy(name);
-	    		return *iAttachmentName;
-				}
+    		return *iAttachmentName;
 			}
-	    // finally look if there is Content-Description.
-    	return iContentDescriptionPtr;
-    	
+		}
+    // finally look if there is Content-Description.
+	return iContentDescriptionPtr;
+//</qmail>
 	}
 
+//<qmail>
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::FindBodyPartL
 // -----------------------------------------------------------------------------
@@ -1032,7 +1113,7 @@
             ptr.SetLength(length);
             }
 
-        if (!ptr.Compare(aContentType))
+        if (!ptr.CompareF(aContentType))
             {
             return this;
             }
@@ -1051,7 +1132,7 @@
                 }
             if (iMessageParts.Count())
                 {
-                if (!ptr.Compare(KFSMailContentTypeMultipartAlternative))
+                if (!ptr.CompareF(KFSMailContentTypeMultipartAlternative))
                     {
                     // multipart / alternative
                     for (TInt i = 0; i < iMessageParts.Count(); i++)
@@ -1062,31 +1143,24 @@
                             {
                             ptr.SetLength(length);
                             }
-                        if (!ptr.Compare(aContentType))
+                        if (!ptr.CompareF(aContentType))
                             {
                             messagePart = iMessageParts[i];
                             // remove part from table
                             iMessageParts.Remove(i);
                             break;
                             }
-                        else if (!ptr.Compare(
-                                KFSMailContentTypeMultipartRelated)
-                                || !ptr.Compare(
-                                        KFSMailContentTypeMultipartMixed)
-                                || !ptr.Compare(
-                                        KFSMailContentTypeMultipartAlternative)
-                                || !ptr.Compare(
-                                        KFSMailContentTypeMultipartDigest)
-                                || !ptr.Compare(
-                                        KFSMailContentTypeMultipartParallel))
+						else if(!ptr.CompareF(KFSMailContentTypeMultipartRelated) ||
+						   	 	!ptr.CompareF(KFSMailContentTypeMultipartMixed) ||
+								!ptr.CompareF(KFSMailContentTypeMultipartAlternative) ||
+								!ptr.CompareF(KFSMailContentTypeMultipartDigest) ||
+								!ptr.CompareF(KFSMailContentTypeMultipartParallel))
                             {
                             // multipart, check child parts
                             messagePart = iMessageParts[i];
                             // remove part from table
-                            messagePart = messagePart->FindBodyPartL(
-                                    aContentType);
-                            if (messagePart && messagePart->GetPartId()
-                                    == iMessageParts[0]->GetPartId())
+                            messagePart = messagePart->FindBodyPartL(aContentType);
+                            if (messagePart && messagePart->GetPartId() == iMessageParts[0]->GetPartId())
                                 {
                                 iMessageParts.Remove(i);
                                 }
@@ -1100,8 +1174,7 @@
                     messagePart = iMessageParts[0];
                     // remove part from table
                     messagePart = messagePart->FindBodyPartL(aContentType);
-                    if (messagePart && messagePart->GetPartId()
-                            == iMessageParts[0]->GetPartId())
+                    if (messagePart && messagePart->GetPartId() == iMessageParts[0]->GetPartId())
                         {
                         iMessageParts.Remove(0);
                         }
@@ -1128,13 +1201,43 @@
         }
     return messagePart;
     }
+//</qmail>
+	
+// -----------------------------------------------------------------------------
+// CFSMailMessagePart::ContentTypeMatches
+// -----------------------------------------------------------------------------
+EXPORT_C TBool CFSMailMessagePart::ContentTypeMatches( const TDesC& aContentType )
+{
+    FUNC_LOG;
+
+	TBuf<KMaxDataTypeLength> ptr;
+	TBool result(EFalse);
+//<qmail>
+	if ( !iNmPrivateMessagePart->mContentType.isNull() )
+    {
+        ptr.Copy(GetContentType());
+//</qmail>
+		TInt length = ptr.Locate(';');
+		if(length >= 0)
+			{
+			ptr.SetLength(length);
+			}
+		
+		if( !ptr.CompareF(aContentType) ) // case-insensitive comparision
+		{
+			result = ETrue;
+		}
+    }
+
+    return result;
+}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::AppendAttachmentsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailMessagePart::AppendAttachmentsL(
-    RPointerArray<CFSMailMessagePart>& aParts )
-{
+    RPointerArray<CFSMailMessagePart>& aParts)
+    {
     FUNC_LOG;
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetMessageId() );
     if ( plugin )
@@ -1142,17 +1245,17 @@
         RPointerArray<CFSMailMessagePart> messageParts;
         CleanupResetAndDestroyPushL( messageParts );
         plugin->ChildPartsL( GetMailBoxId(), GetFolderId(),
-                GetMessageId(), GetPartId(), messageParts );  
+                GetMessageId(), GetPartId(), messageParts );	
 
         const TInt messagePartCount = messageParts.Count();
         for ( TInt i = 0; i < messagePartCount; i++ )
             {
             const TDesC& contentType = messageParts[i]->GetContentType();
-            if (!contentType.Compare(KFSMailContentTypeMultipartMixed) ||
-                !contentType.Compare(KFSMailContentTypeMultipartAlternative) ||
-                !contentType.Compare(KFSMailContentTypeMultipartDigest) ||
-                !contentType.Compare(KFSMailContentTypeMultipartRelated) ||
-                !contentType.Compare(KFSMailContentTypeMultipartParallel))
+            if (!contentType.CompareF(KFSMailContentTypeMultipartMixed) ||
+                !contentType.CompareF(KFSMailContentTypeMultipartAlternative) ||
+                !contentType.CompareF(KFSMailContentTypeMultipartDigest) ||
+                !contentType.CompareF(KFSMailContentTypeMultipartRelated) ||
+                !contentType.CompareF(KFSMailContentTypeMultipartParallel))
                 {
                 // get multipart message subparts
                 messageParts[i]->AppendAttachmentsL( aParts );
@@ -1165,33 +1268,37 @@
             }
         CleanupStack::PopAndDestroy( &messageParts );
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::FetchedContentSize
 // -----------------------------------------------------------------------------
 EXPORT_C TUint CFSMailMessagePart::FetchedContentSize() const
-{
+	{
     FUNC_LOG;
+//<qmail>
     return (TUint)iNmPrivateMessagePart->mFetchedSize;
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetFetchedContentSize
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetFetchedContentSize( TUint aContentSize )
-{
+EXPORT_C void CFSMailMessagePart::SetFetchedContentSize(TUint aContentSize)
+	{
     FUNC_LOG;
+//<qmail>
     iNmPrivateMessagePart->mFetchedSize = quint32(aContentSize);
+//</qmail>
 	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::FetchLoadState
 // -----------------------------------------------------------------------------
 EXPORT_C TFSPartFetchState CFSMailMessagePart::FetchLoadState() const
-{
+	{
     FUNC_LOG;
-
+//<qmail>
 	 if(iMessagePartsStatus != EFSDefault)
 		{
 		return iMessagePartsStatus;
@@ -1212,108 +1319,111 @@
      	{
      	return EFSFull;
      	}
+//</qmail>
 	}
 	
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::FetchMessagePartL
 // -----------------------------------------------------------------------------
-EXPORT_C TInt CFSMailMessagePart::FetchMessagePartL( const TFSMailMsgId /*aMessagePartId*/,
-                                  MFSMailRequestObserver& aOperationObserver,
-                                  const TUint aPreferredByteCount )
-{
+EXPORT_C TInt CFSMailMessagePart::FetchMessagePartL( 	const TFSMailMsgId /*aMessagePartId*/,
+        										  		MFSMailRequestObserver& aOperationObserver,
+        												const TUint aPreferredByteCount)
+    {
     FUNC_LOG;
     
-    TInt requestId(0);
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        RArray<TFSMailMsgId> messageList;
-        messageList.Append(GetPartId());
-    
-        // init async request
-        TFSPendingRequest request = iRequestHandler->InitAsyncRequestL( GetPartId().PluginId(),
-                                        aOperationObserver);
+	TInt requestId(0);
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		
+	    RArray<TFSMailMsgId> messageList;
+    	messageList.Append(GetPartId());
+		
+	    // init async request
+	    TFSPendingRequest request = iRequestHandler->InitAsyncRequestL(	GetPartId().PluginId(),
+	    															  	aOperationObserver);
 
-        requestId = request.iRequestId;
-        MFSMailRequestObserver* observer = request.iObserver;
+	    requestId = request.iRequestId;
+    	MFSMailRequestObserver* observer = request.iObserver;
 
-        // fetch message parts
-        TRAPD(err,plugin->FetchMessagePartsL( GetMailBoxId(),
-                          GetFolderId(),
-                          GetMessageId(),
-                            messageList,
-                            *observer,
-                            requestId,
-                            aPreferredByteCount ));
-        messageList.Reset();
-        if(err != KErrNone)
-            {
-            iRequestHandler->CompleteRequest(requestId);
-            User::Leave(err);
-            }
-        }
-    return requestId;
-}
+		// fetch message parts
+	    TRAPD(err,plugin->FetchMessagePartsL(	GetMailBoxId(),
+	    										GetFolderId(),
+	    										GetMessageId(),
+	        									messageList,
+	        									*observer,
+	        									requestId,
+	        									aPreferredByteCount ));
+	    messageList.Reset();
+	    if(err != KErrNone)
+			{
+			iRequestHandler->CompleteRequest(requestId);
+			User::Leave(err);
+			}
+		}
+	return requestId;
+    }
     
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::FetchMessagesPartsL
 // -----------------------------------------------------------------------------
 EXPORT_C TInt CFSMailMessagePart::FetchMessagesPartsL( 
-                  const RArray<TFSMailMsgId>& aMessagePartIds,
-                      MFSMailRequestObserver& aOperationObserver,
-                      const TUint aPreferredByteCount )
-{
+									const RArray<TFSMailMsgId>& aMessagePartIds,
+        							MFSMailRequestObserver& aOperationObserver,
+        							const TUint aPreferredByteCount)
+    {
     FUNC_LOG;
 
-    TInt requestId(0);
+	TInt requestId(0);
     
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
-        {
-        // get async request id
-        TFSPendingRequest request = 
-            iRequestHandler->InitAsyncRequestL( GetPartId().PluginId(),
-                        aOperationObserver);
-                        
-        requestId = request.iRequestId;
-        MFSMailRequestObserver* observer = request.iObserver;
-      
-        // fetch message parts
-        TRAPD(err,plugin->FetchMessagePartsL(   GetMailBoxId(),
-                                  GetFolderId(),
-                                  GetMessageId(),
-                                  aMessagePartIds,
-                                  *observer,
-                                  requestId,
-                                  aPreferredByteCount ));
-              
-        if(err != KErrNone)
-            {
-            iRequestHandler->CompleteRequest(requestId);
-            User::Leave(err);
-            }
-        }
-    else
-        {
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetPartId()))
+		{
+		
+	    // get async request id
+	    TFSPendingRequest request = 
+	    iRequestHandler->InitAsyncRequestL(	GetPartId().PluginId(),
+	    								 	aOperationObserver);
+	    								 	
+	    requestId = request.iRequestId;
+    	MFSMailRequestObserver* observer = request.iObserver;
+	    
+	    // fetch message parts
+	    TRAPD(err,plugin->FetchMessagePartsL( 	GetMailBoxId(),
+	    										GetFolderId(),
+	    										GetMessageId(),
+	        									aMessagePartIds,
+												*observer,
+	        									requestId,
+	        									aPreferredByteCount ));
+	            
+	    if(err != KErrNone)
+			{
+			iRequestHandler->CompleteRequest(requestId);
+			User::Leave(err);
+			}
+		}
+	else
+	    {
         User::Leave(KErrArgument);
-        }
+	    }
     return requestId;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetMessagePartsStatus
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetMessagePartsStatus( TFSPartFetchState aMessagePartStatus )
-{
+EXPORT_C void CFSMailMessagePart::SetMessagePartsStatus(TFSPartFetchState aMessagePartStatus)
+	{
     FUNC_LOG;
-    iMessagePartsStatus = aMessagePartStatus;
-}
+	iMessagePartsStatus = aMessagePartStatus;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::AddNewAttachmentL
 // -----------------------------------------------------------------------------
-EXPORT_C CFSMailMessagePart* CFSMailMessagePart::AddNewAttachmentL( const TDesC& aFilePath,
-                                const TFSMailMsgId /*aInsertBefore*/,
-                                const TDesC& aContentType )
-{
+EXPORT_C CFSMailMessagePart* CFSMailMessagePart::AddNewAttachmentL(	const TDesC& aFilePath,
+																const TFSMailMsgId /*aInsertBefore*/,
+																const TDesC& aContentType )
+    {
     FUNC_LOG;
     CFSMailMessagePart* newPart = NULL;
 
@@ -1339,7 +1449,7 @@
         }
 
     return newPart;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::ReadOnlyPartSize
@@ -1353,7 +1463,7 @@
 // -----------------------------------------------------------------------------
 // CFSMailMessagePart::SetReadOnlyPartSize
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailMessagePart::SetReadOnlyPartSize( const TUint aReadOnlyPartSize )
+EXPORT_C void CFSMailMessagePart::SetReadOnlyPartSize(const TUint aReadOnlyPartSize)
 {
     FUNC_LOG;
     iReadOnlyPartSize = aReadOnlyPartSize;
--- a/emailservices/emailcommon/src/CFSMailPluginData.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailPluginData.cpp	Mon May 03 12:23:15 2010 +0300
@@ -18,6 +18,7 @@
 // <qmail>
 #include <nmcommonheaders.h>
 // </qmail>
+
 #include "emailtrace.h"
 #include "CFSMailPluginData.h"
 
@@ -36,10 +37,11 @@
 CFSMailPluginData::~CFSMailPluginData()
 {
     FUNC_LOG;
-    if(iPlugin)
-        {
-        delete iPlugin;
-        CFSMailPlugin::Close();
-        }
+	if(iPlugin)
+		{
+		delete iPlugin;
+		iPlugin = NULL;
+		CFSMailPlugin::Close();
+		}
 }
 
--- a/emailservices/emailcommon/src/CFSMailRequestHandler.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailRequestHandler.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,14 +15,17 @@
 *
 */
 
+// <qmail>
+// Exports removed because entire class is exported from DLL
+#include <nmcommonheaders.h>
+// </qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailRequestHandler.h"
 #include "CFSMailRequestObserver.h"
 
 
-// ================= MEMBER FUNCTIONS ==========================================  
+// ================= MEMBER FUNCTIONS ==========================================    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CFSMailRequestHandler
 // -----------------------------------------------------------------------------
@@ -36,7 +39,7 @@
     // reset 
     iPendingRequests.Reset();
     iPluginList.Reset();
-  
+    
     iTempDirName =NULL;
 }
 
@@ -44,7 +47,7 @@
 // CFSMailRequestHandler::~CFSMailRequestHandler
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler::~CFSMailRequestHandler()
-{
+    {
     FUNC_LOG;
     TRAP_IGNORE( CancelAllRequestsL() );
     RemoveAllRequests();
@@ -57,51 +60,56 @@
         // close file server connection
         iFs.Close();        
         }
-}
+    
+    // clear TLS
+    Dll::FreeTls();
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::NewLC
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler* CFSMailRequestHandler::NewLC( 
-                  RPointerArray<CImplementationInformation>& aPluginInfo,
-                  RPointerArray<CFSMailPlugin>& aPlugins )
+                                    RPointerArray<CImplementationInformation>& aPluginInfo,
+                                    RPointerArray<CFSMailPlugin>& aPlugins )
 {
     FUNC_LOG;
-    CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler();
-    CleanupStack:: PushL(pluginHandler);
-    pluginHandler->ConstructL( aPluginInfo, aPlugins );
-    return pluginHandler;
+  CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler();
+  CleanupStack:: PushL(pluginHandler);
+  pluginHandler->ConstructL( aPluginInfo, aPlugins );
+  return pluginHandler;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::NewL
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler* CFSMailRequestHandler::NewL( 
-                  RPointerArray<CImplementationInformation>& aPluginInfo,
-                  RPointerArray<CFSMailPlugin>& aPlugins )
+                                    RPointerArray<CImplementationInformation>& aPluginInfo,
+                                    RPointerArray<CFSMailPlugin>& aPlugins )
 {
     FUNC_LOG;
-    CFSMailRequestHandler* pluginHandler =  
-          CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins );
-    CleanupStack:: Pop(pluginHandler);
-    return pluginHandler;
+  CFSMailRequestHandler* pluginHandler =  
+                CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins );
+  CleanupStack:: Pop(pluginHandler);
+  return pluginHandler;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::ConstructL
 // -----------------------------------------------------------------------------
 void CFSMailRequestHandler::ConstructL( 
-                RPointerArray<CImplementationInformation> /*aPluginInfo*/,
-                RPointerArray<CFSMailPlugin> /*aPlugins*/ )
+                                RPointerArray<CImplementationInformation> /*aPluginInfo*/,
+                                RPointerArray<CFSMailPlugin> /*aPlugins*/ )
 {
     FUNC_LOG;
+
+
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetPluginByUid
 // -----------------------------------------------------------------------------
  CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid( TFSMailMsgId aObjectId )
-{
+    {
     FUNC_LOG;
 
     for(TInt i=0;i<iPluginList.Count();i++)
@@ -111,48 +119,50 @@
             return iPluginList[i]->iPlugin;
             }
         }
+
+
     return NULL;
-}
-  
+    }
+    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::InitAsyncRequestL
 // -----------------------------------------------------------------------------
  TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL( 
-                          TUid aPluginId,
-                          MFSMailRequestObserver& aOperationObserver )
-{
+                                                    TUid aPluginId,
+                                                    MFSMailRequestObserver& aOperationObserver)
+    {
     FUNC_LOG;
-    TFSPendingRequest newRequest;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
-        {
-        if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending)
+        TFSPendingRequest newRequest;
+        for(TInt i=0;i<iPendingRequests.Count();i++)
             {
-            iPendingRequests[i].iPluginId = aPluginId;
-            iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending;
-            iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver);     
-            newRequest = iPendingRequests[i];
-            return newRequest;
+            if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending)
+                {
+                iPendingRequests[i].iPluginId = aPluginId;
+                iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending;
+                iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver);         
+                newRequest = iPendingRequests[i];
+                return newRequest;
+                }
             }
-        }
 
-    newRequest.iRequestId = iPendingRequests.Count();
-    newRequest.iPluginId = aPluginId;
-    newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending;     
-    CFSMailRequestObserver* observer = 
+        newRequest.iRequestId = iPendingRequests.Count();
+        newRequest.iPluginId = aPluginId;
+        newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending;           
+        CFSMailRequestObserver* observer = 
             CFSMailRequestObserver::NewL(*this, aOperationObserver);
-    newRequest.iObserver = observer;
-    iPendingRequests.Append(newRequest);
-      
-    return newRequest;
-}
+        newRequest.iObserver = observer;
+        iPendingRequests.Append(newRequest);
+        
+        return newRequest;
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CompleteRequest
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CompleteRequest( TInt aRequestId )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
         if(iPendingRequests[i].iRequestId == aRequestId)
             {
@@ -160,85 +170,87 @@
             break;
             }
         }
-}
-  
+
+    }
+    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CancelRequestL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CancelRequestL( TInt aRequestId )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
-        if(iPendingRequests[i].iRequestId == aRequestId 
-            && iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
+        if(iPendingRequests[i].iRequestId == aRequestId &&
+            iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
             {
             TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
-            CFSMailPlugin* plugin = GetPluginByUid(pluginId);
-            plugin->CancelL(aRequestId);
+            if(CFSMailPlugin* plugin = GetPluginByUid(pluginId))
+                {
+                plugin->CancelL(aRequestId);
+                }
             iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
             break;
             }
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CancelAllRequestsL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CancelAllRequestsL( )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
-        if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
-            {
-            TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
-            CFSMailPlugin* plugin = GetPluginByUid(pluginId);
-            plugin->CancelL(iPendingRequests[i].iRequestId);
-            iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
-            }
+            if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
+                {
+                TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
+                if(CFSMailPlugin* plugin = GetPluginByUid(pluginId))
+                    {
+                    plugin->CancelL(iPendingRequests[i].iRequestId);
+                    }
+                iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
+                }
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::AddPluginL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin )
-{
+    {
     FUNC_LOG;
 
     CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData;
     pluginData->iPluginId = aPluginId;
     pluginData->iPlugin = aPlugin;
-    iPluginList.Append(pluginData);       
-}
+    iPluginList.Append(pluginData);             
+
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::RemoveAllRequests
 // -----------------------------------------------------------------------------
 void CFSMailRequestHandler::RemoveAllRequests()
-{
+    {
     FUNC_LOG;
     for(TInt i=0;i<iPendingRequests.Count();i++)
         {
         delete iPendingRequests[i].iObserver;
         iPendingRequests[i].iObserver = NULL;
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetTempFileL( )
 // -----------------------------------------------------------------------------
-// <qmail>
  RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName )
-// </qmail>
 {
     FUNC_LOG;
     
     // get temp dir path
-    // <qmail>
-    if(!iTempDirName)
-    // </qmail>
+    if(iTempDirName == NULL)
         {
         // open file server connection
         User::LeaveIfError(iFs.Connect());
@@ -255,22 +267,22 @@
     aFileName.AppendNum(aContentId.Id());
     file.Replace(iFs,aFileName,EFileWrite);
     return file;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CleanTempDirL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CleanTempDirL( )
-{
+    {
     FUNC_LOG;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetTempDirL
 // -----------------------------------------------------------------------------
  TDesC& CFSMailRequestHandler::GetTempDirL( )
-{
+    {
     FUNC_LOG;
     return *iTempDirName;
-}
+    }
 
--- a/emailservices/emailcommon/src/CFSMailRequestObserver.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailRequestObserver.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,8 +15,10 @@
 *
 */
 
+// <qmail>
+#include <nmcommonheaders.h>
+// </qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailRequestObserver.h"
 #include "CFSMailRequestHandler.h"
@@ -28,6 +30,7 @@
 CFSMailRequestObserver::CFSMailRequestObserver()
 {
     FUNC_LOG;
+
 }
 
 // -----------------------------------------------------------------------------
@@ -36,41 +39,42 @@
 CFSMailRequestObserver::~CFSMailRequestObserver()
 {
     FUNC_LOG;
+
 }
 // -----------------------------------------------------------------------------
 // CFSMailRequestObserver::NewLC
 // -----------------------------------------------------------------------------
 CFSMailRequestObserver* CFSMailRequestObserver::NewLC( CFSMailRequestHandler& aPluginManager,
-                       MFSMailRequestObserver& aObserver )
+											 MFSMailRequestObserver& aObserver)
 {
     FUNC_LOG;
-    CFSMailRequestObserver* obs = new (ELeave) CFSMailRequestObserver();
-    CleanupStack:: PushL(obs);
-    obs->ConstructL(aPluginManager,aObserver);
-    return obs;
+	CFSMailRequestObserver* obs = new (ELeave) CFSMailRequestObserver();
+  	CleanupStack:: PushL(obs);
+  	obs->ConstructL(aPluginManager,aObserver);
+  	return obs;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestObserver::NewL
 // -----------------------------------------------------------------------------
 CFSMailRequestObserver* CFSMailRequestObserver::NewL( CFSMailRequestHandler& aPluginRequestHandler,
-                      MFSMailRequestObserver& aObserver )
+											MFSMailRequestObserver& aObserver )
 {
     FUNC_LOG;
-    CFSMailRequestObserver* obs =  CFSMailRequestObserver::NewLC(aPluginRequestHandler,aObserver);
-    CleanupStack::Pop(obs);
-    return obs;
+  	CFSMailRequestObserver* obs =  CFSMailRequestObserver::NewLC(aPluginRequestHandler,aObserver);
+  	CleanupStack::Pop(obs);
+  	return obs;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestObserver::ConstructL
 // -----------------------------------------------------------------------------
 void CFSMailRequestObserver::ConstructL( CFSMailRequestHandler& aPluginRequestHandler,
-                  MFSMailRequestObserver& aObserver )
+									MFSMailRequestObserver& aObserver )
 {
     FUNC_LOG;
-    iObserver = &aObserver;
-    iRequestHandler = &aPluginRequestHandler;
+	iObserver = &aObserver;
+	iRequestHandler = &aPluginRequestHandler;
 }
 
 // -----------------------------------------------------------------------------
@@ -80,24 +84,25 @@
 {
     FUNC_LOG;
 
-    if(iObserver)
-        {
-        iObserver->RequestResponseL(aEvent,aRequestId); 
-        }
-    
-    if(aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete 
-        || aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled)
-        {
-        iRequestHandler->CompleteRequest(aRequestId);
-        }
+	if(iObserver)
+		{
+		iObserver->RequestResponseL(aEvent,aRequestId);	
+		}
+		
+	if(aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete ||
+		aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled)
+		{
+		iRequestHandler->CompleteRequest(aRequestId);
+		}
+
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestObserver::SetUserObserver
 // -----------------------------------------------------------------------------
-void CFSMailRequestObserver::SetUserObserver( MFSMailRequestObserver& aObserver )
-{
+void CFSMailRequestObserver::SetUserObserver(MFSMailRequestObserver& aObserver)
+	{
     FUNC_LOG;
     iObserver = &aObserver;
-}
-
+	}
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/src/cemailextensionbase.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  email internal extension base class
+*
+*/
+
+#include "cemailextensionbase.h"
+#include "emailtrace.h"
+
+/**
+*
+*/
+enum TEmailFwPanic {
+    EEmailExtensionIndexOutOfRange
+    };
+
+_LIT( KEmailExtensionPanic, "EmailFw" );
+    
+void Panic( TEmailFwPanic aPanic )
+    {
+    FUNC_LOG;
+    User::Panic( KEmailExtensionPanic, aPanic );
+    }
+
+// ---------------------------------------------------------------------------
+// c++ constructor
+// ---------------------------------------------------------------------------
+//
+CEmailExtension::CEmailExtension( const TUid& aUid ) : 
+    iUid( TUid::Uid(aUid.iUid ) )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CEmailExtension::~CEmailExtension()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TUid CEmailExtension::Uid() const
+    {
+    return iUid;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TUint CEmailExtension::DecRef()
+    {
+    if ( iRefCount )
+        {
+        iRefCount--;
+        }
+    return iRefCount;
+    }
+        
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CEmailExtension::IncRef()
+    {
+    ++iRefCount;
+    }
+        
+// ---------------------------------------------------------------------------
+// deletes extension and removes it from extension array
+// ---------------------------------------------------------------------------
+//
+void CExtendableEmail::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    if ( !aExtension->DecRef() )
+        {
+        iExtensions.Remove( aExtension );
+        delete aExtension;
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// Finds and returns extension
+// ---------------------------------------------------------------------------
+//
+CEmailExtension* CExtendableEmail::ExtensionL( const TUid& aInterfaceUid )
+    {
+    FUNC_LOG;
+    TInt index = iExtensions.FindExtension( aInterfaceUid );
+    CEmailExtension* ext = NULL;
+    if ( index != KErrNotFound )
+        {
+        ext = iExtensions.Extension( index );
+        ext->IncRef();
+        }
+    return ext;
+    }
+
+//<qmail>
+// ---------------------------------------------------------------------------
+// Constructor is required for sbs2 to generate the same .defs for urel/udeb
+// ---------------------------------------------------------------------------
+//
+CExtendableEmail::CExtendableEmail()
+    {
+    FUNC_LOG;
+    }
+//</qmail>
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+//
+TEmailExtensions::~TEmailExtensions()
+    {
+    iExtensions.Close();
+    }
+
+// ---------------------------------------------------------------------------
+// c++ constructor
+// ---------------------------------------------------------------------------
+//
+TEmailExtensions::TEmailExtensions() : iExtensions( 1 )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// returns index of extension in extension array
+// ---------------------------------------------------------------------------
+//
+TInt TEmailExtensions::FindExtension( const TUid& aUid ) const
+    {
+    TInt index = KErrNotFound;
+    for ( TInt i = 0; i < iExtensions.Count(); i++ )
+        {        
+        const CEmailExtension* tested = iExtensions[i];
+        if ( aUid == tested->Uid() )
+            {
+            index = i;
+            break;
+            }
+        }
+    return index;
+    }
+
+// ---------------------------------------------------------------------------
+// Returns extension by index. Panics if index is out of range.
+// ---------------------------------------------------------------------------
+//
+CEmailExtension* TEmailExtensions::Extension( const TInt aIndex ) const
+    {
+    __ASSERT_ALWAYS( aIndex>=0 && aIndex < iExtensions.Count(),
+        Panic( EEmailExtensionIndexOutOfRange ) );
+    return iExtensions[aIndex];
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void TEmailExtensions::AddL( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    if ( !aExtension )
+        {
+        User::Leave( KErrArgument );
+        }
+    CleanupStack::PushL( aExtension );
+    iExtensions.AppendL( aExtension );    
+    CleanupStack::Pop();
+    aExtension->IncRef();
+    }
+
+// ---------------------------------------------------------------------------
+// Removes extension from array
+// ---------------------------------------------------------------------------
+//
+void TEmailExtensions::Remove( 
+    const CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    const TInt index( FindExtension( aExtension->Uid() ) );
+    if ( index != KErrNotFound )    
+        {
+        iExtensions.Remove( index );
+        }    
+    }
+
+// End of file    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/src/emailcalendarinfoimpl.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  implementation of calendar info extension for mailbox
+*
+*/
+
+#include "emailtrace.h"
+#include "cmrcalendarinfoimpl.h"          
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CMRCalendarInfo::CMRCalendarInfo( const TUid& aUid ) : CEmailExtension( aUid )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CMRCalendarInfoImpl::CMRCalendarInfoImpl() : 
+    CMRCalendarInfo( KMailboxExtMrCalInfo )
+    {
+    iDatabaseId = MAKE_TINT64(0,0);
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CMRCalendarInfoImpl::~CMRCalendarInfoImpl()
+    {
+    FUNC_LOG
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CMRCalendarInfoImpl::GetCalendarDatabaseIdL( TCalFileId& aId ) const
+    {
+    FUNC_LOG
+    aId = iDatabaseId;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CMRCalendarInfoImpl::SetCalendarDatabaseIdL( const TCalFileId& aId )
+    {
+    FUNC_LOG
+    iDatabaseId = aId;
+    }
+
--- a/emailservices/emailframework/bwins/FSMailFrameworkU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/bwins/FSMailFrameworkU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -1,27 +1,30 @@
 EXPORTS
 	?DeleteMailBoxByUidL@CFSMailClient@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@@Z @ 1 NONAME ; int CFSMailClient::DeleteMailBoxByUidL(class TFSMailMsgId, class MFSMailRequestObserver &)
 	?CancelL@CFSMailClient@@QAEXH@Z @ 2 NONAME ; void CFSMailClient::CancelL(int)
-	?CleanTempDirL@CFSMailClient@@QAEXXZ @ 3 NONAME ; void CFSMailClient::CleanTempDirL(void)
-	?Close@CFSMailClient@@QAEXXZ @ 4 NONAME ; void CFSMailClient::Close(void)
-	?DeleteMessagesByUidL@CFSMailClient@@QAEXVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 5 NONAME ; void CFSMailClient::DeleteMessagesByUidL(class TFSMailMsgId, class TFSMailMsgId, class RArray<class TFSMailMsgId> const &)
-	?WizardDataAvailableL@CFSMailClient@@QAEHXZ @ 6 NONAME ; int CFSMailClient::WizardDataAvailableL(void)
-	?ListMailBoxes@CFSMailClient@@QAEHVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailBox@@@@@Z @ 7 NONAME ; int CFSMailClient::ListMailBoxes(class TFSMailMsgId, class RPointerArray<class CFSMailBox> &)
-	?GetTempDirL@CFSMailClient@@QAEAAVTDesC16@@XZ @ 8 NONAME ; class TDesC16 & CFSMailClient::GetTempDirL(void)
-	?GetFolderByUidL@CFSMailClient@@QAEPAVCFSMailFolder@@VTFSMailMsgId@@0@Z @ 9 NONAME ; class CFSMailFolder * CFSMailClient::GetFolderByUidL(class TFSMailMsgId, class TFSMailMsgId)
-	?NewL@CFSMailClient@@SAPAV1@H@Z @ 10 NONAME ; class CFSMailClient * CFSMailClient::NewL(int)
-	?SetMailboxName@CFSMailClient@@QAEXVTFSMailMsgId@@ABVTDesC16@@@Z @ 11 NONAME ; void CFSMailClient::SetMailboxName(class TFSMailMsgId, class TDesC16 const &)
-	?GetMessageByUidL@CFSMailClient@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 12 NONAME ; class CFSMailMessage * CFSMailClient::GetMessageByUidL(class TFSMailMsgId, class TFSMailMsgId, class TFSMailMsgId, enum TFSMailDetails)
-	?GetMailBoxByUidL@CFSMailClient@@QAEPAVCFSMailBox@@VTFSMailMsgId@@@Z @ 13 NONAME ; class CFSMailBox * CFSMailClient::GetMailBoxByUidL(class TFSMailMsgId)
-	?AuthenticateL@CFSMailClient@@QAEHAAVMFSMailRequestObserver@@@Z @ 14 NONAME ; int CFSMailClient::AuthenticateL(class MFSMailRequestObserver &)
-	?GetBrandManagerL@CFSMailClient@@QAEAAVMFSMailBrandManager@@XZ @ 15 NONAME ; class MFSMailBrandManager & CFSMailClient::GetBrandManagerL(void)
-	??1CFSMailClient@@EAE@XZ @ 16 NONAME ; CFSMailClient::~CFSMailClient(void)
-	?NewLC@CFSMailClient@@SAPAV1@H@Z @ 17 NONAME ; class CFSMailClient * CFSMailClient::NewLC(int)
-	?UnregisterRequestObserver@CFSMailClient@@QAEXH@Z @ 18 NONAME ; void CFSMailClient::UnregisterRequestObserver(int)
-	?RemoveObserver@CFSMailClient@@QAEXAAVMFSMailEventObserver@@@Z @ 19 NONAME ; void CFSMailClient::RemoveObserver(class MFSMailEventObserver &)
-	?SubscribeMailboxEventsL@CFSMailClient@@QAEXVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 20 NONAME ; void CFSMailClient::SubscribeMailboxEventsL(class TFSMailMsgId, class MFSMailEventObserver &)
-	?ListMessages@CFSMailClient@@QAEPAVMFSMailIterator@@VTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 21 NONAME ; class MFSMailIterator * CFSMailClient::ListMessages(class TFSMailMsgId, class TFSMailMsgId, enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
-	?UnsubscribeMailboxEvents@CFSMailClient@@QAEXVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 22 NONAME ; void CFSMailClient::UnsubscribeMailboxEvents(class TFSMailMsgId, class MFSMailEventObserver &)
-	?CancelAllL@CFSMailClient@@QAEXXZ @ 23 NONAME ; void CFSMailClient::CancelAllL(void)
-	?NewL@CFSMailClient@@SAPAV1@XZ @ 24 NONAME ; class CFSMailClient * CFSMailClient::NewL(void)
-	?AddObserverL@CFSMailClient@@QAEXAAVMFSMailEventObserver@@@Z @ 25 NONAME ; void CFSMailClient::AddObserverL(class MFSMailEventObserver &)
+	?ReleaseExtension@CFSMailClient@@UAEXPAVCEmailExtension@@@Z @ 3 NONAME ; void CFSMailClient::ReleaseExtension(class CEmailExtension *)
+	?CleanTempDirL@CFSMailClient@@QAEXXZ @ 4 NONAME ; void CFSMailClient::CleanTempDirL(void)
+	?Close@CFSMailClient@@QAEXXZ @ 5 NONAME ; void CFSMailClient::Close(void)
+	?DeleteMessagesByUidL@CFSMailClient@@QAEXVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 6 NONAME ; void CFSMailClient::DeleteMessagesByUidL(class TFSMailMsgId, class TFSMailMsgId, class RArray<class TFSMailMsgId> const &)
+	?WizardDataAvailableL@CFSMailClient@@QAEHXZ @ 7 NONAME ; int CFSMailClient::WizardDataAvailableL(void)
+	?ListMailBoxes@CFSMailClient@@QAEHVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailBox@@@@@Z @ 8 NONAME ; int CFSMailClient::ListMailBoxes(class TFSMailMsgId, class RPointerArray<class CFSMailBox> &)
+	?GetTempDirL@CFSMailClient@@QAEAAVTDesC16@@XZ @ 9 NONAME ; class TDesC16 & CFSMailClient::GetTempDirL(void)
+	?GetFolderByUidL@CFSMailClient@@QAEPAVCFSMailFolder@@VTFSMailMsgId@@0@Z @ 10 NONAME ; class CFSMailFolder * CFSMailClient::GetFolderByUidL(class TFSMailMsgId, class TFSMailMsgId)
+	?ExtensionL@CFSMailClient@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 11 NONAME ; class CEmailExtension * CFSMailClient::ExtensionL(class TUid const &)
+	?NewL@CFSMailClient@@SAPAV1@H@Z @ 12 NONAME ; class CFSMailClient * CFSMailClient::NewL(int)
+	?SetMailboxName@CFSMailClient@@QAEXVTFSMailMsgId@@ABVTDesC16@@@Z @ 13 NONAME ; void CFSMailClient::SetMailboxName(class TFSMailMsgId, class TDesC16 const &)
+	?GetMessageByUidL@CFSMailClient@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 14 NONAME ; class CFSMailMessage * CFSMailClient::GetMessageByUidL(class TFSMailMsgId, class TFSMailMsgId, class TFSMailMsgId, enum TFSMailDetails)
+	?GetMailBoxByUidL@CFSMailClient@@QAEPAVCFSMailBox@@VTFSMailMsgId@@@Z @ 15 NONAME ; class CFSMailBox * CFSMailClient::GetMailBoxByUidL(class TFSMailMsgId)
+	?AuthenticateL@CFSMailClient@@QAEHAAVMFSMailRequestObserver@@@Z @ 16 NONAME ; int CFSMailClient::AuthenticateL(class MFSMailRequestObserver &)
+	?GetBrandManagerL@CFSMailClient@@QAEAAVMFSMailBrandManager@@XZ @ 17 NONAME ; class MFSMailBrandManager & CFSMailClient::GetBrandManagerL(void)
+	??1CFSMailClient@@EAE@XZ @ 18 NONAME ; CFSMailClient::~CFSMailClient(void)
+	?NewLC@CFSMailClient@@SAPAV1@H@Z @ 19 NONAME ; class CFSMailClient * CFSMailClient::NewLC(int)
+	?UnregisterRequestObserver@CFSMailClient@@QAEXH@Z @ 20 NONAME ; void CFSMailClient::UnregisterRequestObserver(int)
+	?RemoveObserver@CFSMailClient@@QAEXAAVMFSMailEventObserver@@@Z @ 21 NONAME ; void CFSMailClient::RemoveObserver(class MFSMailEventObserver &)
+	?SubscribeMailboxEventsL@CFSMailClient@@QAEXVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 22 NONAME ; void CFSMailClient::SubscribeMailboxEventsL(class TFSMailMsgId, class MFSMailEventObserver &)
+	?ListMessages@CFSMailClient@@QAEPAVMFSMailIterator@@VTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 23 NONAME ; class MFSMailIterator * CFSMailClient::ListMessages(class TFSMailMsgId, class TFSMailMsgId, enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
+	?UnsubscribeMailboxEvents@CFSMailClient@@QAEXVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 24 NONAME ; void CFSMailClient::UnsubscribeMailboxEvents(class TFSMailMsgId, class MFSMailEventObserver &)
+	?CancelAllL@CFSMailClient@@QAEXXZ @ 25 NONAME ; void CFSMailClient::CancelAllL(void)
+	?NewL@CFSMailClient@@SAPAV1@XZ @ 26 NONAME ; class CFSMailClient * CFSMailClient::NewL(void)
+	?AddObserverL@CFSMailClient@@QAEXAAVMFSMailEventObserver@@@Z @ 27 NONAME ; void CFSMailClient::AddObserverL(class MFSMailEventObserver &)
+	?IncReferenceCount@CFSMailClient@@QAEHXZ @ 28 NONAME ; int CFSMailClient::IncReferenceCount(void)
 
--- a/emailservices/emailframework/data/fsmailbrandmanager.rss	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/data/fsmailbrandmanager.rss	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2001 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2001 - 2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -17,6 +17,7 @@
 
 NAME FSMB
 
+#include <eikon.rh>
 #include <data_caging_paths_strings.hrh>
 #include <google_brand_graphics.mbg>
 #include <yahoo_brand_graphics.mbg>
@@ -34,6 +35,8 @@
 //
 // ---------------------------------------------------------
 //
+RESOURCE RSS_SIGNATURE { }
+
 RESOURCE BRANDING_DATA r_branding_data
     {
     list_of_brands =
@@ -356,7 +359,7 @@
                     },
                     
                     BRAND {
-                        // Definition of AT&T Yahoo! Mail brand   
+                        // Definition of ... Yahoo! Mail brand   
                         graphics_file_path = APP_BITMAP_DIR"\\yahoo_brand_graphics.mif";
 
                         brand_id_match_strings =
@@ -422,7 +425,7 @@
                             },
 
                             BRAND {
-                                // Definition of Rogers Yahoo! Mail brand   
+                                // Definition of ... Yahoo! Mail brand   
                                 graphics_file_path = APP_BITMAP_DIR"\\yahoo_brand_graphics.mif";
 
                                 brand_id_match_strings =
--- a/emailservices/emailframework/data/gmail44svgtest4.svg	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/data/gmail44svgtest4.svg	Mon May 03 12:23:15 2010 +0300
@@ -1,984 +1,45 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
-<svg version="1.1" baseProfile="basic" id="Layer_1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="44px" height="44px"
-	 viewBox="0 0 44 44" xml:space="preserve">
-<pattern  x="-283.898" y="417.945" width="69" height="69" patternUnits="userSpaceOnUse" id="Polka_Dot_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible">
-	<g>
-		<polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 		"/>
-		<polygon fill="#F6BB60" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 		"/>
-		<g>
-			<path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335
-				c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-		</g>
-		<g>
-			<path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.063-0.165,0.128
-				c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-		</g>
-		<path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.063-0.165,0.128
-			c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-			c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-			c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-			c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-			c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
-			c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-			c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626
-			c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-		<g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					C8.15-41.004,8.149-41.02,8.14-41.04"/>
-				<path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-			<g>
-				<path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239
-					c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-					C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-				<path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-					C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161
-					c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631
-					C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45
-					c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071
-					c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-					c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-					c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-					c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			</g>
-		</g>
-		<g>
-			<path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46
-				c-0.051,0.063-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				c-0.021,0.011-0.021-0.005-0.03-0.025"/>
-			<path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207
-				c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169
-				C15.81-2.74,15.809-2.756,15.8-2.776"/>
-			<path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46
-				c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587
-				c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631
-				C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221
-				c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367
-				c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751
-				C8.15-2.74,8.149-2.756,8.14-2.776"/>
-			<path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46
-				C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161
-				c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631
-				C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45
-				c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419
-				c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337
-				c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367
-				c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751
-				C0.489-2.74,0.488-2.756,0.479-2.776"/>
-		</g>
-	</g>
-</pattern>
-<path fill="#9E3434" d="M42.69,6.279c-0.271-0.269-0.646-0.424-1.026-0.424h-0.729H3.346c-0.382,0-0.754,0.155-1.025,0.424
-	C2.049,6.55,1.896,6.922,1.896,7.305v27.808c0,0.38,0.153,0.755,0.425,1.023c0.271,0.271,0.643,0.426,1.025,0.426h38.318
-	c0.381,0,0.755-0.154,1.026-0.426c0.269-0.269,0.424-0.644,0.424-1.023V7.305C43.114,6.922,42.959,6.55,42.69,6.279z"/>
-<polygon fill="#C41200" points="41.575,6.824 2.684,6.824 2.684,35.593 42.328,35.593 42.328,6.824 "/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="22.5073" y1="9.0151" x2="22.5073" y2="34.7806">
-	<stop  offset="0.0225" style="stop-color:#DCDCDC"/>
-	<stop  offset="0.1404" style="stop-color:#FFFFFF"/>
-	<stop  offset="0.8146" style="stop-color:#FFFFFF"/>
-	<stop  offset="0.9663" style="stop-color:#E9E9E9"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="44" viewBox="0 0 44 44" width="44" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect fill="none" height="44" width="44"/>
+<path d="M41.659,29.844c0.031-0.087,0.043-0.177,0.019-0.264c-0.026-0.098-0.086-0.189-0.177-0.272 L29.867,19.001c-0.023-0.02-0.047-0.037-0.074-0.055c-0.005-0.003-0.009-0.007-0.016-0.01c-0.024-0.018-0.045-0.033-0.073-0.046 c0,0-0.003-0.002-0.006-0.002c-0.019-0.012-0.04-0.021-0.062-0.031c-0.005-0.003-0.01-0.006-0.014-0.008 c-0.005-0.003-0.01-0.006-0.014-0.007h-0.004c-0.031-0.015-0.064-0.028-0.099-0.038c-0.019-0.006-0.041-0.006-0.06-0.011 c-0.087-0.026-0.177-0.042-0.271-0.053c-0.041-0.002-0.076-0.009-0.116-0.01c-0.058-0.003-0.116,0.002-0.175,0.008 c-0.098,0-0.195,0-0.291,0.022l-5.439,1.181L8.11,23.209l-5.179,1.125c-0.238,0.053-0.424,0.162-0.552,0.301 c0.021,0.002,0.043,0.005,0.063,0.01C2.428,24.66,2.4,24.673,2.387,24.693C2.334,24.768,2.306,24.85,2.3,24.931 c-0.001,0.006,0,0.015,0,0.022c0,0.002,0,0.008,0,0.013c0,0.013-0.001,0.026,0,0.039l0,0c0.003,0.023,0.008,0.046,0.014,0.069 c0,0.003,0,0.006,0.002,0.01c0.006,0.017,0.012,0.036,0.021,0.054c-0.037,0.128-0.035,0.26,0.05,0.38l8.566,12.457 c0.17,0.248,0.559,0.398,0.963,0.398c0.06,0,0.116-0.018,0.176-0.024c0.358,0.091,0.771,0.142,1.192,0.075l27.823-7.514 c0,0,0.716-0.213,0.564-0.938C41.667,29.93,41.672,29.888,41.659,29.844z" fill="#666666" fill-opacity="0.2"/>
+<path d="M41.5,23.102L29.867,6.472c-0.271-0.387-0.755-0.547-1.197-0.391 L3.005,15.075c-0.275,0.095-0.5,0.308-0.617,0.579c-0.12,0.274-0.12,0.584-0.002,0.857l8.566,20.095 c0.17,0.402,0.559,0.645,0.963,0.645c0.138,0,0.278-0.03,0.412-0.087l28.728-12.456c0.291-0.126,0.513-0.382,0.601-0.696 C41.739,23.701,41.683,23.367,41.5,23.102z" fill="#8A2003" stroke="#A34C2E" stroke-width="2.1197"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="21.7" x2="26.4" y1="19.74" y2="29.72">
+<stop offset="0" stop-color="#F8F9FB"/>
+<stop offset="0.59" stop-color="#E3EBED"/>
+<stop offset="1" stop-color="#B9CDD3"/>
 </linearGradient>
-<rect x="3.439" y="7.579" fill="url(#SVGID_1_)" width="38.136" height="27.262"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="46.3467" y1="31.9702" x2="35.9325" y2="19.38">
-	<stop  offset="0" style="stop-color:#DCDEE0"/>
-	<stop  offset="1" style="stop-color:#FFFFFF"/>
-</linearGradient>
-<polyline fill="url(#SVGID_2_)" points="41.575,34.84 25.679,22.637 41.575,10.548 "/>
-<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="1352.9248" y1="31.9702" x2="1342.5111" y2="19.3806" gradientTransform="matrix(-1 0 0 1 1351.5918 0)">
-	<stop  offset="0" style="stop-color:#DCDEE0"/>
-	<stop  offset="1" style="stop-color:#FFFFFF"/>
-</linearGradient>
-<polyline fill="url(#SVGID_3_)" points="3.439,34.84 19.333,22.637 3.439,10.548 "/>
-<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="22.5298" y1="20.0078" x2="22.5298" y2="37.686">
-	<stop  offset="0" style="stop-color:#DF3900"/>
-	<stop  offset="1" style="stop-color:#B30C00"/>
+<path d="M41.5,22.625L29.867,5.995c-0.271-0.385-0.755-0.543-1.197-0.39L3.005,14.599 c-0.275,0.096-0.5,0.307-0.617,0.581c-0.12,0.272-0.12,0.583-0.002,0.857l8.566,20.095c0.17,0.402,0.559,0.642,0.963,0.642 c0.138,0,0.278-0.026,0.412-0.085l28.728-12.456c0.291-0.126,0.513-0.38,0.601-0.696C41.739,23.226,41.683,22.889,41.5,22.625z" fill="url(#SVGID_1)"/>
+<path d="M11.011,36.504c0,0,1.107,1.123,2.273,0.828L41.107,25.21c0,0,0.798-0.371,0.545-1.675L11.011,36.504z" fill="#783126"/>
+<radialGradient cx="14.93" cy="12.09" gradientUnits="userSpaceOnUse" id="SVGID_2" r="29.02">
+<stop offset="0" stop-color="#D0564B"/>
+<stop offset="0.59" stop-color="#C33A2F"/>
+<stop offset="1" stop-color="#98110C"/>
+</radialGradient>
+<path d="M41.497,22.625l-11.63-16.63c-0.023-0.031-0.047-0.059-0.074-0.089 c-0.005-0.007-0.009-0.012-0.016-0.017c-0.024-0.029-0.045-0.052-0.073-0.074c0-0.001-0.003-0.002-0.006-0.004 c-0.025-0.028-0.06-0.051-0.089-0.076h-0.004c-0.031-0.023-0.064-0.044-0.099-0.06l0,0c-0.25-0.14-0.556-0.171-0.837-0.071 L23.227,7.51l-3.4,7.568l-9.326-3.106l-7.496,2.626c-0.276,0.096-0.502,0.307-0.619,0.581c-0.052,0.122-0.081,0.254-0.087,0.383l0,0 c-0.002,0.039-0.002,0.08,0,0.118c0,0.001,0,0.001,0,0.003c0.003,0.037,0.008,0.073,0.014,0.112c0,0.003,0,0.008,0.002,0.013 c0.006,0.032,0.014,0.064,0.024,0.098c0,0.009,0.002,0.015,0.003,0.02c0.013,0.038,0.026,0.077,0.042,0.111l8.566,20.095 c0.172,0.402,0.558,0.642,0.962,0.642c0.138,0,0.277-0.026,0.412-0.085l5.064-2.195L9.315,17.474l13.36,3.635l4.789-10.822 l10.242,15.394l3.346-1.45c0.294-0.126,0.516-0.38,0.6-0.696C41.736,23.226,41.681,22.889,41.497,22.625z" fill="url(#SVGID_2)"/>
+<radialGradient cx="15.1" cy="16.91" gradientUnits="userSpaceOnUse" id="SVGID_3" r="23.61">
+<stop offset="0" stop-color="#D0564B"/>
+<stop offset="0.59" stop-color="#C33A2F"/>
+<stop offset="1" stop-color="#98110C"/>
+</radialGradient>
+<polygon fill="url(#SVGID_3)" points="15.323,33.494 39.354,23.747 39.354,24.937 15.323,35.395 "/>
+<polygon fill="url(#SVGID_2)" points="18.656,19.848 11.835,35.735 12.291,35.801 19.045,19.917 "/>
+<polygon fill="url(#SVGID_2)" points="22.627,17.119 38.791,22.527 38.815,22.06 22.652,16.719 "/>
+<path d="M41.5,22.625L29.867,5.995c-0.271-0.385-0.757-0.543-1.197-0.389L3.005,14.599 c-0.275,0.096-0.5,0.307-0.617,0.581c-0.12,0.273-0.12,0.583-0.004,0.857l8.568,20.095c0.17,0.402,0.559,0.642,0.963,0.642 c0.138,0,0.278-0.026,0.412-0.085l28.728-12.456c0.291-0.126,0.513-0.38,0.601-0.696C41.739,23.226,41.683,22.891,41.5,22.625z M3.114,16.57c0.005-0.335,0.088-1.548,1.034-2.007l-0.016-0.008l23.592-8.27c0.348,0.006,1.596,0.057,2.259,0.596l10.746,15.362 c0.368,0.922-0.364,1.841-0.53,2.035L13.043,36.051c-1.06,0.09-1.645-0.311-1.818-0.459L3.114,16.57z" fill="#FFFFFF" fill-opacity="0.3"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6" x1="12.82" x2="18.64" y1="22.32" y2="25.43">
+<stop offset="0" stop-color="#FFFFFF"/>
+<stop offset="1" stop-color="#99B5BE"/>
 </linearGradient>
-<polygon fill="url(#SVGID_4_)" points="32.034,7.293 22.917,16.779 11.775,7.293 3.238,7.293 3.238,34.984 8.443,34.984 
-	8.443,12.416 22.629,25.014 36.689,12.02 36.689,34.984 41.821,34.984 41.821,7.293 "/>
-<polygon opacity="0.4" fill="#C41230" points="26.128,22.335 25.752,22.692 41.174,34.476 "/>
-<polygon opacity="0.4" fill="#C41230" points="18.826,22.335 19.203,22.692 3.781,34.476 "/>
-<polygon opacity="0.6" fill="#FFFFFF" points="2.993,7.004 2.983,34.727 3.148,7.203 40.175,7.087 "/>
-<polygon opacity="0.6" fill="#FFFFFF" points="42.081,35.354 42.09,7.63 41.927,35.157 4.899,35.271 "/>
-<path fill="#FFFFFF" d="M36.742,11.966c-0.028-0.032-0.075-0.034-0.107-0.003c0,0-13.865,12.852-13.967,12.946
-	C22.563,24.818,8.574,12.494,8.574,12.494c-0.034-0.029-0.083-0.027-0.111,0.005c-0.029,0.031-0.027,0.081,0.004,0.11l14.12,13.121
-	c0.029,0.028,0.074,0.026,0.106-0.002l14.05-13.654C36.773,12.045,36.773,11.997,36.742,11.966z"/>
-<polygon fill="none" points="8.051,12.102 22.629,25.014 36.781,11.838 36.781,26.715 8.316,26.715 "/>
-<path opacity="0.33" fill="#FFFFFF" d="M13.598,7.99c-2.521,0.901-6.303-0.36-8.646,0.901c-4.502,2.521,1.259,3.961,3.782,3.961
-	c1.621,0,5.583-0.179,6.845-1.26c1.44-1.622-0.181-3.422-2.522-3.243"/>
-<path opacity="0.33" fill="#FFFFFF" d="M26.203,9.612c2.164,0,4.686-0.181,5.766,1.8c-1.982,1.261-7.203-0.359-3.602-1.8"/>
+<polygon fill="url(#SVGID_6)" points="14.749,28.569 18.411,20.091 13.883,18.932 12.483,23.686 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7" x1="30.35" x2="28.64" y1="14.91" y2="20.4">
+<stop offset="0" stop-color="#FFFFFF"/>
+<stop offset="1" stop-color="#99B5BE"/>
+</linearGradient>
+<polygon fill="url(#SVGID_7)" points="24.542,17.168 26.073,14.114 30.67,15.606 33.799,20.222 "/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_8" x1="24.26" x2="27.25" y1="23.19" y2="29.78">
+<stop offset="0" stop-color="#FFFFFF"/>
+<stop offset="1" stop-color="#99B5BE"/>
+</linearGradient>
+<polygon fill="url(#SVGID_8)" points="15.281,29.656 16.681,32.71 36.797,24.565 34.599,21.376 30.67,20.02 17.213,24.977 "/>
+<path d="M29.719,5.906c-0.006-0.007-0.01-0.012-0.019-0.017c-0.021-0.029-0.044-0.052-0.071-0.074 c-0.003-0.001-0.003-0.002-0.003-0.004c-0.021-0.021-0.044-0.036-0.065-0.053c-0.002-0.003-0.005-0.006-0.008-0.009 c-0.002-0.001-0.006-0.003-0.008-0.004c-0.005-0.002-0.008-0.006-0.013-0.009H29.53c-0.028-0.023-0.062-0.044-0.101-0.06 c-0.017-0.011-0.039-0.01-0.063-0.02c-0.084-0.041-0.175-0.069-0.27-0.084c-0.038-0.005-0.074-0.015-0.11-0.017 c-0.131-0.007-0.263,0.004-0.394,0.05L23.154,7.51L8.11,12.783l-5.179,1.815c-0.238,0.086-0.424,0.263-0.552,0.483 c5.409,1.588,11.858,2.513,18.791,2.513c5.6,0,10.884-0.605,15.563-1.673l-6.942-9.926C29.769,5.964,29.747,5.937,29.719,5.906z" fill="#FFFFFF" fill-opacity="0.1"/>
 </svg>
--- a/emailservices/emailframework/data/microsoft.svg	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/data/microsoft.svg	Mon May 03 12:23:15 2010 +0300
@@ -1,82 +1,44 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="44" height="44" viewBox="105.585 74.074 44 44">
-<rect fill="none" height="44" width="44" x="105.585" y="74.074"/>
-<linearGradient id="SVGID_2" gradientUnits="userSpaceOnUse" x1="117.14" y1="94.11" x2="146.99" y2="94.11">
-<stop stop-color="#A5D288" offset="0"/>
-<stop stop-color="#A2D085" offset="0.27"/>
-<stop stop-color="#9BCA7D" offset="0.48"/>
-<stop stop-color="#8EC06F" offset="0.68"/>
-<stop stop-color="#7EB55D" offset="0.87"/>
-<stop stop-color="#6EAA4F" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_2)" points="117.137,83.5 117.618,79.434 146.991,86.86 143.509,108.785 141.842,108.246 "/>
-<linearGradient id="SVGID_3" gradientUnits="userSpaceOnUse" x1="123.02" y1="75" x2="148.69" y2="104.01">
-<stop stop-color="#BAD986" offset="0"/>
-<stop stop-color="#B7D884" offset="0.24"/>
-<stop stop-color="#AED27D" offset="0.43"/>
-<stop stop-color="#9FCA70" offset="0.61"/>
-<stop stop-color="#8CC15E" offset="0.78"/>
-<stop stop-color="#70B64B" offset="0.94"/>
-<stop stop-color="#63B246" offset="1"/>
-</linearGradient>
-<path d="M141.933,108.094c0.915,0.92-23.651-23.688-24.616-24.655 c0.019-0.151,0.408-3.444,0.448-3.789c0.372,0.094,28.732,7.263,29.031,7.338c-0.048,0.303-3.365,21.184-3.425,21.571 C143.079,108.466,142,108.115,141.933,108.094" fill="url(#SVGID_3)"/>
-<path d="M143.032,108.61c-0.094-0.016-0.594-0.188-0.594-0.188s1.33-20.618,1.551-20.618l0.277,0.04 c0.222,0,0.4,0.179,0.4,0.4L143.032,108.61z" fill-opacity="0.24" />
-<linearGradient id="SVGID_7" gradientUnits="userSpaceOnUse" x1="114.32" y1="96.34" x2="144.22" y2="96.34">
-<stop stop-color="#FBAF4B" offset="0"/>
-<stop stop-color="#FBAD48" offset="0.31"/>
-<stop stop-color="#FAA53E" offset="0.56"/>
-<stop stop-color="#F89930" offset="0.8"/>
-<stop stop-color="#F6891F" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_7)" points="114.318,87.056 114.516,82.685 144.223,87.005 142.486,109.992 139.294,109.096 114.347,87.143 "/>
-<linearGradient id="SVGID_8" gradientUnits="userSpaceOnUse" x1="119.66" y1="77.69" x2="147.3" y2="104.68">
-<stop stop-color="#FDC27F" offset="0"/>
-<stop stop-color="#FDC17D" offset="0.22"/>
-<stop stop-color="#FBBD76" offset="0.41"/>
-<stop stop-color="#F9B668" offset="0.57"/>
-<stop stop-color="#F7AD54" offset="0.73"/>
-<stop stop-color="#F4A138" offset="0.88"/>
-<stop stop-color="#F19720" offset="1"/>
-</linearGradient>
-<path d="M139.38,108.942c0.899,0.811-23.935-21.1-24.886-21.958c0.006-0.148,0.171-3.764,0.186-4.101 c0.37,0.053,29.05,4.224,29.361,4.27c-0.023,0.313-1.679,22.211-1.709,22.618C141.98,109.671,139.451,108.961,139.38,108.942" fill="url(#SVGID_8)"/>
-<path d="M142.172,109.891c0.016,0-0.531-0.156-0.909-0.176c0,0-0.024-20.99-0.089-21.022 l0.089,0.012c0.589,0,1.066,0.544,1.066,1.214L142.172,109.891z" fill="#231F20" fill-opacity="0.23" />
-<linearGradient id="SVGID_10" gradientUnits="userSpaceOnUse" x1="111.43" y1="99.17" x2="141.47" y2="99.17">
-<stop stop-color="#74B8E5" offset="0"/>
-<stop stop-color="#56A7DB" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_10)" points="111.432,86.639 111.432,107.756 141.473,111.703 141.473,87.842 "/>
-<linearGradient id="SVGID_11" gradientUnits="userSpaceOnUse" x1="111.95" y1="99.09" x2="140.61" y2="99.09">
-<stop stop-color="#D8EEFB" offset="0"/>
-<stop stop-color="#A3DCEA" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_11)" points="111.948,87.154 111.948,107.339 140.614,111.016 140.614,88.528 "/>
-<linearGradient id="SVGID_12" gradientUnits="userSpaceOnUse" x1="141.56" y1="87.76" x2="141.56" y2="111.66">
-<stop stop-color="#3686C3" offset="0"/>
-<stop stop-color="#245F98" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_12)" points="141.643,111.364 141.47,111.704 141.47,87.842 141.643,88.162 "/>
-<polygon fill="#CC4124" points="138.591,96.151 132.129,95.083 132.495,90.082 138.957,90.953 "/>
-<path d="M139.314,90.919c0.011,0.002,0.017,0.007,0.027,0.01l0.012-0.202c-0.015,0.002-0.027,0.006-0.043,0.004 c-0.116-0.013-0.203-0.116-0.198-0.228c0.001-0.023,0.01-0.043,0.019-0.063l-0.237-0.028c0.006,0.021,0.012,0.043,0.01,0.066 c-0.007,0.111-0.104,0.19-0.221,0.177c-0.115-0.015-0.202-0.115-0.196-0.226c0.001-0.023,0.009-0.043,0.018-0.064l-0.235-0.027 c0.007,0.022,0.012,0.044,0.011,0.066c-0.007,0.111-0.104,0.19-0.22,0.178c-0.114-0.015-0.202-0.115-0.194-0.226 c0.001-0.022,0.009-0.045,0.017-0.063l-0.232-0.028c0.007,0.021,0.011,0.045,0.011,0.067c-0.008,0.11-0.105,0.188-0.219,0.175 c-0.113-0.013-0.199-0.114-0.192-0.224c0.001-0.024,0.007-0.044,0.017-0.063l-0.232-0.027c0.007,0.021,0.012,0.042,0.01,0.064 c-0.006,0.11-0.103,0.189-0.215,0.176c-0.113-0.014-0.199-0.113-0.191-0.224c0.001-0.022,0.009-0.043,0.016-0.063l-0.229-0.026 c0.006,0.022,0.01,0.044,0.009,0.066c-0.005,0.109-0.103,0.188-0.215,0.175c-0.111-0.015-0.196-0.113-0.189-0.223 c0.002-0.022,0.01-0.044,0.019-0.063l-0.229-0.027c0.007,0.021,0.01,0.043,0.01,0.066c-0.007,0.109-0.104,0.188-0.214,0.173 c-0.111-0.013-0.195-0.112-0.188-0.222c0.002-0.022,0.01-0.042,0.019-0.062l-0.227-0.026c0.007,0.021,0.01,0.043,0.009,0.064 c-0.007,0.109-0.102,0.187-0.212,0.174c-0.11-0.014-0.193-0.112-0.187-0.221c0.002-0.021,0.01-0.042,0.017-0.063l-0.223-0.026 c0.004,0.021,0.009,0.044,0.008,0.066c-0.006,0.108-0.101,0.185-0.21,0.173c-0.109-0.014-0.192-0.111-0.185-0.22 c0.002-0.023,0.007-0.044,0.017-0.063l-0.224-0.026c0.007,0.021,0.012,0.042,0.01,0.064c-0.008,0.107-0.1,0.187-0.208,0.173 c-0.108-0.013-0.19-0.111-0.185-0.219c0.001-0.022,0.009-0.042,0.019-0.063l-0.222-0.026c0.006,0.022,0.009,0.043,0.008,0.065 c-0.006,0.107-0.1,0.185-0.207,0.172s-0.188-0.11-0.182-0.217c0.002-0.024,0.008-0.044,0.017-0.063l-0.22-0.025 c0.007,0.021,0.011,0.041,0.01,0.063c-0.008,0.108-0.101,0.185-0.207,0.171c-0.106-0.012-0.188-0.109-0.18-0.216 c0.002-0.022,0.009-0.042,0.017-0.063l-0.18-0.021c0.001,0.014,0.006,0.024,0.005,0.038c-0.008,0.106-0.101,0.183-0.207,0.171 c-0.009-0.001-0.018-0.007-0.027-0.01l-0.008,0.14c0.009,0,0.019-0.004,0.028-0.003c0.107,0.013,0.188,0.111,0.181,0.219 c-0.007,0.108-0.099,0.184-0.208,0.172c-0.009-0.001-0.017-0.007-0.027-0.01l-0.013,0.205c0.011,0,0.018-0.002,0.028,0 c0.107,0.013,0.188,0.11,0.181,0.219c-0.006,0.109-0.099,0.185-0.206,0.17c-0.011-0.001-0.018-0.006-0.028-0.008l-0.015,0.206 c0.011,0,0.021-0.004,0.029-0.003c0.106,0.016,0.188,0.113,0.183,0.222c-0.008,0.108-0.101,0.184-0.209,0.17 c-0.008-0.001-0.017-0.007-0.027-0.01l-0.013,0.208c0.009,0,0.018-0.004,0.029-0.002c0.106,0.014,0.188,0.113,0.18,0.223 c-0.007,0.107-0.099,0.183-0.206,0.167c-0.011-0.001-0.02-0.005-0.027-0.008l-0.015,0.206c0.01,0,0.02-0.003,0.028-0.002 c0.107,0.016,0.188,0.115,0.183,0.224c-0.008,0.108-0.102,0.184-0.208,0.17c-0.011-0.002-0.018-0.008-0.028-0.011l-0.013,0.209 c0.009,0,0.019-0.004,0.029-0.002c0.106,0.015,0.188,0.114,0.181,0.223c-0.008,0.109-0.1,0.186-0.207,0.169 c-0.011-0.002-0.02-0.006-0.028-0.01l-0.015,0.208c0.011,0,0.019-0.004,0.029-0.002c0.107,0.017,0.188,0.117,0.181,0.226 c-0.006,0.108-0.1,0.184-0.206,0.168c-0.012-0.001-0.019-0.008-0.028-0.011l-0.015,0.209c0.01,0,0.02-0.002,0.028-0.001 c0.108,0.016,0.19,0.116,0.183,0.225c-0.008,0.109-0.101,0.186-0.208,0.168c-0.009-0.001-0.018-0.008-0.028-0.009l-0.013,0.208 c0.011,0,0.018-0.003,0.029-0.002c0.107,0.017,0.188,0.119,0.181,0.229c-0.008,0.108-0.1,0.183-0.207,0.167 c-0.011-0.002-0.02-0.008-0.028-0.012l-0.013,0.178c0.099,0.025,0.171,0.118,0.164,0.22c-0.002,0.024-0.008,0.047-0.018,0.066 l0.221,0.035c-0.007-0.022-0.012-0.047-0.01-0.071c0.007-0.107,0.101-0.181,0.207-0.165c0.107,0.019,0.188,0.119,0.181,0.227 c-0.001,0.024-0.009,0.046-0.018,0.067l0.223,0.033c-0.007-0.021-0.012-0.045-0.01-0.069c0.008-0.108,0.1-0.182,0.207-0.166 c0.107,0.017,0.189,0.119,0.185,0.229c-0.002,0.023-0.01,0.045-0.02,0.065l0.224,0.036c-0.007-0.022-0.011-0.047-0.01-0.071 c0.008-0.109,0.102-0.184,0.21-0.166c0.109,0.017,0.191,0.118,0.185,0.228c-0.001,0.023-0.009,0.048-0.018,0.067l0.224,0.035 c-0.005-0.023-0.01-0.047-0.008-0.071c0.008-0.109,0.101-0.184,0.21-0.167c0.109,0.019,0.193,0.12,0.186,0.229 c-0.001,0.024-0.007,0.047-0.018,0.066l0.229,0.037c-0.008-0.023-0.013-0.047-0.011-0.071c0.007-0.11,0.102-0.187,0.212-0.168 c0.11,0.017,0.194,0.119,0.188,0.229c-0.002,0.024-0.008,0.048-0.019,0.068l0.23,0.037c-0.008-0.024-0.013-0.049-0.011-0.073 c0.007-0.11,0.102-0.186,0.213-0.168c0.111,0.019,0.197,0.121,0.189,0.231c-0.002,0.025-0.008,0.047-0.018,0.067l0.231,0.037 c-0.008-0.023-0.013-0.047-0.011-0.072c0.007-0.11,0.103-0.186,0.215-0.168c0.112,0.017,0.198,0.12,0.191,0.231 c-0.002,0.024-0.01,0.049-0.019,0.069l0.232,0.037c-0.008-0.025-0.011-0.05-0.01-0.074c0.005-0.111,0.104-0.187,0.217-0.169 c0.113,0.019,0.197,0.123,0.192,0.234c-0.001,0.024-0.009,0.047-0.02,0.067l0.235,0.037c-0.008-0.023-0.013-0.047-0.012-0.072 c0.008-0.111,0.104-0.188,0.219-0.17s0.202,0.122,0.194,0.234c-0.001,0.024-0.009,0.049-0.018,0.069l0.235,0.036 c-0.008-0.023-0.012-0.048-0.011-0.072c0.007-0.112,0.105-0.188,0.219-0.171c0.116,0.02,0.204,0.124,0.197,0.236 c-0.002,0.025-0.008,0.048-0.019,0.068l0.238,0.039c-0.008-0.024-0.012-0.049-0.01-0.075c0.005-0.111,0.104-0.189,0.221-0.17 c0.115,0.018,0.203,0.124,0.197,0.236c-0.002,0.025-0.009,0.048-0.019,0.07l0.242,0.037c-0.004-0.017-0.009-0.035-0.008-0.053 c0.008-0.113,0.106-0.188,0.222-0.172c0.02,0.004,0.036,0.013,0.053,0.021l0.013-0.217c-0.01-0.001-0.018,0.001-0.027,0.001 c-0.117-0.02-0.206-0.124-0.199-0.237c0.007-0.112,0.105-0.189,0.222-0.172c0.011,0.001,0.017,0.007,0.026,0.01l0.014-0.214 c-0.011,0-0.019,0.003-0.027,0.001c-0.117-0.017-0.206-0.123-0.199-0.235c0.007-0.11,0.105-0.189,0.223-0.171 c0.008,0.001,0.017,0.007,0.026,0.008l0.011-0.214c-0.008,0-0.017,0.003-0.027,0.001c-0.114-0.016-0.204-0.12-0.197-0.232 c0.005-0.112,0.105-0.189,0.222-0.174c0.01,0.002,0.018,0.007,0.027,0.01l0.012-0.213c-0.011,0-0.018,0.001-0.028,0.001 c-0.116-0.017-0.203-0.121-0.198-0.232c0.007-0.112,0.105-0.19,0.222-0.175c0.01,0.001,0.019,0.007,0.026,0.01l0.014-0.213 c-0.011,0-0.02,0.003-0.028,0.002c-0.116-0.018-0.205-0.12-0.198-0.232s0.105-0.189,0.222-0.173 c0.011,0.001,0.017,0.005,0.026,0.008l0.014-0.213c-0.011,0-0.02,0.003-0.027,0.001c-0.117-0.014-0.206-0.119-0.199-0.23 c0.007-0.11,0.105-0.189,0.222-0.174c0.009,0.002,0.017,0.008,0.026,0.009l0.012-0.213c-0.009,0-0.018,0.003-0.028,0.002 c-0.114-0.015-0.203-0.117-0.196-0.229c0.005-0.111,0.105-0.189,0.22-0.176c0.011,0.002,0.02,0.008,0.027,0.01l0.013-0.214 c-0.011,0-0.018,0.003-0.028,0.002c-0.116-0.014-0.204-0.115-0.198-0.228c0.007-0.11,0.105-0.189,0.222-0.176 c0.011,0.001,0.019,0.007,0.026,0.01l0.014-0.212c-0.011,0-0.02,0.001-0.027,0.001c-0.117-0.014-0.206-0.115-0.199-0.227 C139.1,90.984,139.198,90.906,139.314,90.919z M138.558,96.088l-6.397-1.064l0.383-4.887l6.35,0.824L138.558,96.088z" fill="#FFFFFF"/>
-<path d="M129.281,93.9c-1.055,0.178-1.858,0.011-2.746-0.474 c0.877,0.404,2.153,0.47,3.562-0.041c3.479-1.262,4.393,0.537,4.393,0.537C132.681,92.495,130.582,93.706,129.281,93.9 L129.281,93.9z M129.35,94.872c-1.055,0.176-1.858,0.009-2.745-0.476c0.878,0.404,2.152,0.472,3.562-0.039 c3.478-1.263,4.395,0.537,4.395,0.537C132.75,93.465,130.652,94.677,129.35,94.872L129.35,94.872z M129.21,92.93 c-1.055,0.176-1.859,0.009-2.746-0.476c0.877,0.404,2.152,0.471,3.562-0.039c3.478-1.262,4.394,0.536,4.394,0.536 C132.609,91.523,130.511,92.736,129.21,92.93L129.21,92.93z M129.14,91.959c-1.054,0.178-1.859,0.011-2.746-0.474 c0.877,0.404,2.153,0.47,3.562-0.041c3.479-1.263,4.396,0.536,4.396,0.536C132.54,90.552,130.441,91.764,129.14,91.959 L129.14,91.959z" fill="#446D92" fill-opacity="0.2" />
-<path d="M135.787,99.213c0,0,0,4.979,0,6.008 s-0.686,0.688-0.686,0.688s-14.084-1.508-14.934-1.717c-0.741-0.184-0.687-0.686-0.687-0.686s0-4.979,0-5.666 s0.858-0.516,0.858-0.516s13.551,1.121,14.763,1.203C135.819,98.574,135.787,99.213,135.787,99.213L135.787,99.213z" fill="#0F001F" fill-opacity="0.25" />
-<linearGradient id="SVGID_13" gradientUnits="userSpaceOnUse" x1="119.33" y1="101.42" x2="135.64" y2="101.42">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#F5F9FC" offset="1"/>
-</linearGradient>
-<path d="M135.636,99c0,0,0,4.979,0,6.008s-0.686,0.688-0.686,0.688s-14.085-1.508-14.935-1.717 c-0.741-0.184-0.687-0.687-0.687-0.687s0-4.979,0-5.665c0-0.688,0.858-0.516,0.858-0.516s13.552,1.121,14.764,1.202 C135.668,98.362,135.636,99,135.636,99L135.636,99z" fill="url(#SVGID_13)"/>
-<path d="M111.617,89.262c-0.063,0-0.123,0.002-0.185,0.002v-2.625 l30.041,1.202v9.104C134.069,92.074,123.71,89.262,111.617,89.262L111.617,89.262z" fill="#FFFFFF" fill-opacity="0.25" />
-<linearGradient id="SVGID_14" gradientUnits="userSpaceOnUse" x1="148.5" y1="107.51" x2="106.79" y2="107.51">
-<stop stop-color="#FCD959" offset="0"/>
-<stop stop-color="#FBC64A" offset="0.21"/>
-<stop stop-color="#FBCB4D" offset="0.24"/>
-<stop stop-color="#FCDB58" offset="0.35"/>
-<stop stop-color="#FCE15C" offset="0.42"/>
-<stop stop-color="#FBDC5B" offset="0.53"/>
-<stop stop-color="#F9CE55" offset="0.69"/>
-<stop stop-color="#F5B84C" offset="0.88"/>
-<stop stop-color="#F5B84C" offset="0.88"/>
-<stop stop-color="#FBDB5C" offset="1"/>
-</linearGradient>
-<path d="M148.35,108.015c-1.304-3.304-4.799-4.506-8.053-4.504c-0.684,0-1.358,0.053-2.004,0.15 c-4.305,0.654-8.352,2.646-12.408,4.011c-3.642,1.226-7.412,1.98-11.248,1.979c-0.335,0-0.67-0.006-1.005-0.016 c-1.8-0.059-4.04-0.284-5.268-1.639c-0.478-0.524-0.672-1.141-0.673-1.784c0-0.816,0.321-1.678,0.791-2.384 c0.037-0.055,0.077-0.111,0.116-0.169c0,0,0.084-0.144-0.008-0.235c-0.091-0.092-0.234-0.001-0.234-0.001 c-1.054,0.749-1.559,2.021-1.56,3.266c0,0.29,0.027,0.577,0.082,0.858c0.313,1.63,1.542,2.705,3.01,3.265 c1.509,0.575,3.156,0.716,4.728,0.788c0.446,0.02,0.893,0.03,1.34,0.03c1.691,0,3.382-0.147,5.046-0.444 c4.259-0.762,8.247-2.509,12.264-3.95c2.519-0.903,5.514-1.979,8.329-1.979c1.125,0,2.222,0.172,3.253,0.59 c1.232,0.5,2.326,1.347,3.212,2.345c0,0,0.061,0.125,0.217,0.037C148.434,108.143,148.35,108.015,148.35,108.015z" fill="url(#SVGID_14)"/>
+<svg baseProfile="tiny" height="44px" version="1.1" viewBox="0 0 44 44" width="44px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<path d="M37.778,10.364c-4.158,1.571-7.277,2.283-11.252-0.597   c-0.313-0.222-0.77-0.281-1.186-0.092c0.031-0.379-0.156-0.803-0.51-1.053c-1.781-1.102-5.235-4.021-13.006-0.786   c-0.274,0.114-0.54,0.411-0.621,0.696L8.063,19.427c-0.047,0.229-0.039,0.582,0.263,0.96c0.03,0.037,0.073,0.086,0.127,0.141   c-0.099,0.039-0.198,0.079-0.296,0.121c-0.137,0.059-0.483,0.246-0.631,0.709L4.427,32.214c-0.062,0.307-0.002,0.743,0.41,1.111   l0.207,0.162c0.325,0.258,0.786,0.284,1.078,0.174c4.319-1.614,6.833-1.822,10.51,0.549c0.298,0.188,0.665,0.249,1.093,0.058   c-0.002,0.463,0.269,0.851,0.555,1.007c4.27,2.857,8.704,3.091,13.845,0.901c0.355-0.179,0.578-0.429,0.666-0.735l3.029-10.604   c0.133-0.729-0.289-1.026-0.465-1.183c0.584-0.235,0.895-0.384,1.043-0.881l3.143-10.785C39.862,10.954,38.63,10.058,37.778,10.364   z" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M20.73,22.326c0.004-0.031-0.01-0.106-0.047-0.134   c-2.603-1.686-5.517-3.396-12.201-0.63L5.385,32.406l0,0c-0.001,0.009-0.011,0.09,0.051,0.145c-0.002,0-0.002,0-0.002,0   l0.004,0.003l0.209,0.162c0,0,0-0.001,0,0c0.069,0.044,0.092,0.026,0.135,0.031c5.3-1.982,7.922-1.588,11.382,0.64l-0.002,0.001   c0,0,0.021,0.011,0.047,0.018l0,0c0.09,0.024,0.331-0.151,0.345-0.214c0,0,0.002,0,0.002,0.002l0.002-0.002v0.002L20.73,22.326z    M34.812,24.471l-0.254-0.2c-0.021-0.024-14.95,6.821-14.952,6.846L18.715,34.2v0.001c-0.057,0.17,0.109,0.263,0.109,0.263v-0.001   c2.744,1.841,6.72,3.457,12.913,0.813c0,0,0.004-0.002,0.01-0.002c0.018-0.011,0.074-0.044,0.102-0.101L34.86,24.66   c0-0.002,0-0.002-0.002-0.004C34.878,24.561,34.856,24.521,34.812,24.471z M9.365,19.978L9.365,19.978c0.002,0,0,0.007,0.006,0.006   c0.025-0.004,0.09-0.032,0.09-0.032c7.083-2.807,9.955-0.169,11.38,0.596c0.001,0,0.001,0.002,0.002,0.002   c0.003,0.001,0.003,0.002,0.005,0.002l0,0l0,0c0.07,0.043,0.365-0.054,0.396-0.172l0.001,0.002l0.001-0.007   c0.001-0.001,0.001-0.001,0.001-0.001l0,0l3.121-10.776l0,0V9.595c0.006-0.023-0.029-0.124-0.045-0.131l0,0l0,0   c-2.114-1.278-5.175-3.579-12.132-0.728c-0.045,0.019-3.176,10.882-3.176,10.882l0,0C8.997,19.729,9.262,19.975,9.365,19.978z    M38.604,11.697c0,0.001,0,0.002,0,0.002c0.041-0.121-0.264-0.518-0.48-0.42c-3.604,1.362-15.287,8.693-15.328,8.777l-0.431,1.49   c-0.057,0.169,0.096,0.252,0.096,0.252h0.002c2.858,1.915,6.606,3.415,12.884,0.804c0,0,0.002,0,0.006-0.002   c0.02-0.009,0.076-0.042,0.105-0.101L38.604,11.697L38.604,11.697L38.604,11.697z" fill-opacity="0.5" stroke-opacity="0.5"/>
+<radialGradient cx="22.0581" cy="22.0171" gradientUnits="userSpaceOnUse" id="SVGID_1_" r="20.4721">
+<stop offset="0" style="stop-color:#D1E7EE"/>
+<stop offset="0.0051" style="stop-color:#D1E7EE"/>
+<stop offset="0.7411" style="stop-color:#3474AA"/>
+<stop offset="1" style="stop-color:#244B93"/>
+</radialGradient>
+<path d="M20.684,21.216c-2.604-1.686-5.47-3.405-12.154-0.642c0,0-0.051,0.03-0.064,0.074l-3.081,10.78l0,0   l0,0l0,0c-0.001,0.009-0.011,0.09,0.05,0.144l0,0l0.002,0.003l0.209,0.163c0,0,0.002-0.002,0.002,0   c0.068,0.044,0.09,0.026,0.135,0.031c5.299-1.983,7.921-1.587,11.381,0.639L17.16,32.41c0,0,0.02,0.011,0.047,0.018l0,0   c0.09,0.024,0.331-0.151,0.345-0.215l0,0c0,0.001,0.001,0.001,0.003,0.002v-0.002c0,0.001,0,0.001,0,0.002l3.174-10.865   C20.734,21.316,20.721,21.242,20.684,21.216z" fill="url(#SVGID_1_)"/>
+<radialGradient cx="22.0356" cy="21.9517" gradientTransform="matrix(1 0 0 -1 -0.0225 43.8779)" gradientUnits="userSpaceOnUse" id="SVGID_2_" r="17.3888">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.2386" style="stop-color:#FFE23D"/>
+<stop offset="0.3435" style="stop-color:#FDDB3A"/>
+<stop offset="0.494" style="stop-color:#F7C832"/>
+<stop offset="0.671" style="stop-color:#EEA925"/>
+<stop offset="0.8325" style="stop-color:#E48717"/>
+<stop offset="1" style="stop-color:#E48717"/>
+</radialGradient>
+<path d="M34.812,23.492l-0.254-0.201c-0.021-0.022-0.07-0.049-0.17-0.032l0,0l0,0   c-6.318,2.14-9.357,0.88-12.103-0.971c-0.246-0.119-0.484,0.23-0.487,0.257l0.003-0.002l-0.002,0.002h0.002l-0.003,0.004   l-3.082,10.674v0.001c-0.057,0.17,0.109,0.261,0.109,0.261l0,0c2.743,1.841,6.721,3.458,12.914,0.814l0,0   c0,0,0.004-0.003,0.008-0.003c0.018-0.013,0.074-0.044,0.104-0.103l3.012-10.51c0-0.002-0.002-0.002-0.002-0.004   C34.878,23.584,34.856,23.545,34.812,23.492z" fill="url(#SVGID_2_)"/>
+<radialGradient cx="21.9673" cy="22.0635" gradientUnits="userSpaceOnUse" id="SVGID_3_" r="17.6608">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.0152" style="stop-color:#FFE23D"/>
+<stop offset="0.6701" style="stop-color:#E48717"/>
+<stop offset="0.821" style="stop-color:#E7521F"/>
+<stop offset="0.9373" style="stop-color:#E92F25"/>
+<stop offset="1" style="stop-color:#EA2227"/>
+</radialGradient>
+<path d="M21.25,19.395l3.12-10.775l0,0l0,0l0,0V8.617c0.008-0.023-0.029-0.124-0.043-0.132l0,0l0,0l0,0   c-2.13-1.286-5.074-3.659-12.126-0.722c-0.006,0.006-0.053,0.048-0.059,0.064L9.018,18.641l0,0   c-0.021,0.109,0.246,0.354,0.35,0.357l0,0c0.001,0,0,0.008,0.004,0.007c0.027-0.004,0.091-0.032,0.091-0.032   c7.083-2.807,9.955-0.17,11.38,0.596c0.001,0,0.001,0.002,0.002,0.002c0.002,0.001,0.004,0.002,0.006,0.002l0,0v0.001   c0.069,0.041,0.364-0.055,0.396-0.173l0,0l0.001,0.002l0.001-0.007C21.25,19.396,21.25,19.396,21.25,19.395   C21.25,19.396,21.25,19.396,21.25,19.395z" fill="url(#SVGID_3_)"/>
+<radialGradient cx="22.0356" cy="21.9521" gradientTransform="matrix(1 0 0 -1 -0.0225 43.8779)" gradientUnits="userSpaceOnUse" id="SVGID_4_" r="19.9665">
+<stop offset="0" style="stop-color:#D1E787"/>
+<stop offset="0.0152" style="stop-color:#D1E787"/>
+<stop offset="0.1256" style="stop-color:#C4DD7F"/>
+<stop offset="0.33" style="stop-color:#A2C268"/>
+<stop offset="0.5635" style="stop-color:#739D4A"/>
+<stop offset="1" style="stop-color:#29621A"/>
+</radialGradient>
+<path d="M38.604,10.724c0.041-0.122-0.264-0.52-0.48-0.42c-3.604,1.36-7.473,2.683-12.17-0.719   c-0.063-0.028-0.143-0.036-0.23,0.016V9.6c0.004-0.006-0.211,0.142-0.252,0.228l-3.106,10.744   c-0.057,0.169,0.097,0.252,0.097,0.252h0.002c2.859,1.916,6.605,3.414,12.883,0.805l0,0c0,0,0.004,0,0.008-0.003   c0.02-0.01,0.074-0.042,0.104-0.101L38.604,10.724L38.604,10.724v-0.003C38.604,10.723,38.604,10.724,38.604,10.724z" fill="url(#SVGID_4_)"/>
+<rect fill="none" height="44" width="43.999"/>
+</g>
 </svg>
\ No newline at end of file
--- a/emailservices/emailframework/data/yahoo.svg	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/data/yahoo.svg	Mon May 03 12:23:15 2010 +0300
@@ -1,101 +1,45 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="44" height="44" viewBox="36.537 17.377 44 44">
-<rect fill="none" height="44" width="44" x="36.537" y="17.377"/>
-<linearGradient id="SVGID_1" gradientUnits="userSpaceOnUse" x1="49.26" y1="25.84" x2="49.26" y2="42.11">
-<stop stop-color="#A6A6A6" offset="0"/>
-<stop stop-color="#888888" offset="0.61"/>
-<stop stop-color="#737373" offset="1"/>
-</linearGradient>
-<path d="M59.806,41.027l0.178-14.559l-0.026-0.026c-0.103-0.478-0.597-0.585-0.597-0.585H39.244 c0,0-0.623,0.075-0.637,0.771c-0.003,0.188-0.069,14.318-0.069,14.318c-0.001,0.019-0.003,0.095,0.007,0.2 c0.018,0.181,0.075,0.453,0.24,0.678c0.109,0.148,0.301,0.326,0.601,0.326l19.55,0.002c0.283,0,0.475-0.163,0.586-0.303 C59.778,41.532,59.803,41.109,59.806,41.027z" fill="url(#SVGID_1)"/>
-<linearGradient id="SVGID_2" gradientUnits="userSpaceOnUse" x1="49.23" y1="26.81" x2="49.23" y2="41.55">
-<stop stop-color="#ACC7DD" offset="0"/>
-<stop stop-color="#EDF7FF" offset="1"/>
-</linearGradient>
-<path d="M59.312,26.748l-0.117,14.193c0,0-0.012,0.545-0.401,0.545c-2.61,0-18.931-0.003-19.249-0.003 c-0.426,0-0.393-0.621-0.393-0.621l0.126-14.114H59.312" fill="url(#SVGID_2)"/>
-<g fill-opacity="0.33" stroke-opacity="0.33">
-<polygon points="58.848,40.986 40.23,40.684 47.141,32.271 52.228,32.271 "/>
-</g>
-<g fill-opacity="0.33" stroke-opacity="0.33">
-<polygon points="58.125,40.685 39.498,40.985 46.292,32.271 51.379,32.271 "/>
-</g>
-<linearGradient id="SVGID_3" gradientUnits="userSpaceOnUse" x1="49.17" y1="32.61" x2="49.17" y2="43.16">
-<stop stop-color="#D1E2EE" offset="0"/>
-<stop stop-color="#E4F3FF" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_3)" points="58.848,41.323 39.498,41.322 46.717,32.608 51.803,32.608 "/>
-<path d="M57.54,41.097c0,0-3.083-0.301-8.173-0.301 s-8.184,0.301-8.184,0.301" fill="#FFFFFF" fill-opacity="0.8" />
-<path d="M39.498,41.322c0,0,5.426-5.472,6.864-7.623l-0.379-0.135 L39.498,41.322z" fill="#FFFFFF" fill-opacity="0.6" />
-<path d="M58.855,41.322l-6.354-7.763l-0.383,0.135 C53.491,35.847,58.855,41.322,58.855,41.322z" fill="#FFFFFF" fill-opacity="0.6" />
-<path d="M39.544,41.483c-0.426,0-0.393-0.621-0.393-0.621 l0.126-14.114h0.447L39.54,40.862c0,0-0.036,0.621,0.39,0.621H39.544L39.544,41.483z" fill="#FFFFFF" fill-opacity="0.4" />
-<path d="M58.407,41.486c0.149,0,0.279,0,0.386,0 c0.39,0,0.401-0.545,0.401-0.545l0.118-14.193h-0.447l-0.059,14.193C58.807,40.941,58.797,41.486,58.407,41.486z" fill="#FFFFFF" fill-opacity="0.4" />
-<g fill-opacity="0.4" stroke-opacity="0.4">
-<path d="M39.278,26.75c0,0,8.156,10.261,9.93,10.261S59.312,26.75,59.312,26.75H39.278z"/>
-</g>
-<linearGradient id="SVGID_4" gradientUnits="userSpaceOnUse" x1="49.29" y1="35.82" x2="49.29" y2="26.75">
-<stop stop-color="#EEEEEE" offset="0"/>
-<stop stop-color="#ECECEC" offset="0.02"/>
-<stop stop-color="#C7C7C7" offset="0.31"/>
-<stop stop-color="#ACACAC" offset="0.58"/>
-<stop stop-color="#9C9C9C" offset="0.82"/>
-<stop stop-color="#969696" offset="1"/>
-</linearGradient>
-<path d="M59.312,26.748H39.277c0,0,8.403,9.077,9.935,9.077 C50.743,35.825,59.312,26.748,59.312,26.748z" fill="url(#SVGID_4)"/>
-<linearGradient id="SVGID_5" gradientUnits="userSpaceOnUse" x1="49.29" y1="35.33" x2="49.29" y2="26.52">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#D5E9F7" offset="1"/>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" height="44px" version="1.1" viewBox="0 0 44 44" width="44px" x="0px" y="0px">
+<radialGradient cx="16.6729" cy="32.6836" gradientTransform="matrix(1 0 0 0.1855 0 26.6218)" gradientUnits="userSpaceOnUse" id="SVGID_1_" r="12.1104">
+<stop offset="0" style="stop-color:#636466"/>
+<stop offset="0.4817" style="stop-color:#636466"/>
+<stop offset="1" style="stop-color:#636466;stop-opacity:0"/>
+</radialGradient>
+<path d="M16.757,35.012c-7.248,0-12.307-1.365-12.307-2.553s5.06-1.479,12.307-1.479  c7.246,0.002,12.306,0.291,12.306,1.479S24.003,35.012,16.757,35.012z" fill="url(#SVGID_1_)"/>
+<radialGradient cx="36.9902" cy="32.4746" gradientTransform="matrix(1 0 0 0.2569 0 24.1333)" gradientUnits="userSpaceOnUse" id="SVGID_2_" r="4.0342">
+<stop offset="0" style="stop-color:#636466"/>
+<stop offset="0.3636" style="stop-color:#636466"/>
+<stop offset="1" style="stop-color:#636466;stop-opacity:0"/>
+</radialGradient>
+<path d="M37.045,31.314c1.98,0.074,3.793,0.375,3.979,1.062c0,0.702-1.664,1.167-3.906,1.108  c-2.961,0-4.122-0.41-4.159-1.053C32.906,31.643,34.661,31.229,37.045,31.314z" fill="url(#SVGID_2_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 1 -144.0156 -532.127)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="160.8359" x2="160.8359" y1="542.251" y2="562.5588">
+<stop offset="0" style="stop-color:#88449A"/>
+<stop offset="0.231" style="stop-color:#824094"/>
+<stop offset="0.5333" style="stop-color:#723684"/>
+<stop offset="0.8737" style="stop-color:#582569"/>
+<stop offset="1" style="stop-color:#4C1E5D"/>
 </linearGradient>
-<path d="M59.103,26.524c-0.118,0-19.495,0-19.611,0c-0.238,0-0.214,0.224-0.214,0.224 s8.581,8.578,9.939,8.578s10.095-8.578,10.095-8.578S59.339,26.524,59.103,26.524z" fill="url(#SVGID_5)"/>
-<path d="M59.103,26.524c-0.118,0-19.495,0-19.611,0 c-0.238,0-0.214,0.168-0.214,0.168s8.581,6.449,9.939,6.449s10.095-6.449,10.095-6.449S59.339,26.524,59.103,26.524z" fill="#FFFFFF" fill-opacity="0.8" />
-<linearGradient id="SVGID_6" gradientUnits="userSpaceOnUse" x1="58.51" y1="35.84" x2="58.51" y2="52.9">
-<stop stop-color="#8418A8" offset="0"/>
-<stop stop-color="#4A005C" offset="1"/>
-</linearGradient>
-<path d="M58.512,52.899c-6.571,0-11.161-3.509-11.161-8.533c0-5.022,4.589-8.529,11.161-8.529 c6.57,0,11.158,3.507,11.158,8.529C69.671,49.39,65.082,52.899,58.512,52.899L58.512,52.899z" fill="url(#SVGID_6)"/>
-<linearGradient id="SVGID_7" gradientUnits="userSpaceOnUse" x1="72.51" y1="48.54" x2="72.51" y2="52.62">
-<stop stop-color="#8418A8" offset="0"/>
-<stop stop-color="#4A005C" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_7)" points="74.239,52.623 73.57,52.542 71.01,52.228 70.342,52.145 70.423,51.477 70.701,49.205 70.783,48.537 71.452,48.619 74.014,48.933 74.683,49.014 74.6,49.683 74.32,51.955 "/>
-<linearGradient id="SVGID_8" gradientUnits="userSpaceOnUse" x1="74.11" y1="36" x2="74.11" y2="47.87">
-<stop stop-color="#8418A8" offset="0"/>
-<stop stop-color="#4A005C" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_8)" points="74.252,47.871 73.66,47.798 71.784,47.568 71.193,47.495 71.192,46.901 71.175,36.764 71.174,35.999 71.934,36.095 76.29,36.644 77.043,36.74 76.858,37.476 74.396,47.292 "/>
-<linearGradient id="SVGID_9" gradientUnits="userSpaceOnUse" x1="58.51" y1="36.51" x2="58.51" y2="52.23">
-<stop stop-color="#B340D9" offset="0"/>
-<stop stop-color="#7B0099" offset="1"/>
-</linearGradient>
-<path d="M58.513,52.226c-6.175,0-10.487-3.231-10.487-7.86c0-4.624,4.312-7.855,10.487-7.855 c6.173,0,10.485,3.231,10.485,7.855C68.998,48.995,64.686,52.226,58.513,52.226z" fill="url(#SVGID_9)"/>
-<linearGradient id="SVGID_10" gradientUnits="userSpaceOnUse" x1="72.51" y1="49.29" x2="72.51" y2="51.87">
-<stop stop-color="#B340D9" offset="0"/>
-<stop stop-color="#7B0099" offset="1"/>
+<path d="M16.821,33.165c-9.292,0-15.779-4.858-15.779-11.826c0-6.957,6.487-11.819,15.779-11.819  c9.289,0,15.777,4.862,15.777,11.819C32.6,28.305,26.109,33.165,16.821,33.165z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientTransform="matrix(1 0 0 1 -144.0156 -532.127)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="180.7793" x2="180.7793" y1="541.584" y2="566.3591">
+<stop offset="0" style="stop-color:#88449A"/>
+<stop offset="0.2697" style="stop-color:#844296"/>
+<stop offset="0.517" style="stop-color:#7A3B8B"/>
+<stop offset="0.7554" style="stop-color:#672F79"/>
+<stop offset="0.9871" style="stop-color:#4E1F5F"/>
+<stop offset="1" style="stop-color:#4C1E5D"/>
 </linearGradient>
-<polygon fill="url(#SVGID_10)" points="73.652,51.873 71.092,51.558 71.37,49.288 73.932,49.601 "/>
-<linearGradient id="SVGID_11" gradientUnits="userSpaceOnUse" x1="74.03" y1="36.76" x2="74.03" y2="47.13">
-<stop stop-color="#B340D9" offset="0"/>
-<stop stop-color="#7B0099" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_11)" points="71.849,36.762 71.865,46.899 73.743,47.129 76.205,37.312 "/>
-<g fill-opacity="0.66" stroke-opacity="0.66">
-<linearGradient id="SVGID_12" gradientUnits="userSpaceOnUse" x1="58.51" y1="36.66" x2="58.51" y2="48.71">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#8A26A3" offset="1"/>
+<polygon fill="url(#SVGID_4_)" points="38.678,32.711 34.385,32.184 34.85,28.375 39.143,28.902 "/>
+<linearGradient gradientTransform="matrix(1 0 0 1 -144.0156 -532.127)" gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="183.3213" x2="183.3213" y1="541.585" y2="566.3589">
+<stop offset="0" style="stop-color:#88449A"/>
+<stop offset="0.231" style="stop-color:#824094"/>
+<stop offset="0.5333" style="stop-color:#723684"/>
+<stop offset="0.8737" style="stop-color:#582569"/>
+<stop offset="1" style="stop-color:#4C1E5D"/>
 </linearGradient>
-<path d="M58.513,48.711c-4.936,0-8.382-2.479-8.382-6.028c0-3.548,3.447-6.026,8.382-6.026 c4.934,0,8.38,2.479,8.38,6.026C66.893,46.232,63.446,48.711,58.513,48.711L58.513,48.711z" fill="url(#SVGID_12)"/>
-<linearGradient id="SVGID_13" gradientUnits="userSpaceOnUse" x1="72.33" y1="49.81" x2="72.33" y2="50.82">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#8A26A3" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_13)" points="72.93,50.822 71.616,50.666 71.725,49.805 73.038,49.962 "/>
-<linearGradient id="SVGID_14" gradientUnits="userSpaceOnUse" x1="73.3" y1="37.3" x2="73.3" y2="45.41">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#8A26A3" offset="1"/>
-</linearGradient>
-<polygon fill="url(#SVGID_14)" points="72.375,45.413 72.271,45.4 72.258,37.304 74.344,37.567 "/>
-</g>
-<path fill-opacity="0.25" d="M62.098,49.658l-0.682-0.047c-0.188-0.013-1.543-0.013-1.988-0.013h-0.654h-0.525 c-0.213,0-0.614,0.01-1.052,0.02c-0.543,0.013-1.145,0.026-1.532,0.026c-0.105,0-0.197-0.001-0.268-0.003l-0.777-0.023 l0.134-0.766l0.102-0.579l0.09-0.516l0.521-0.04c0.075-0.006,0.201-0.007,0.357-0.007c0.174-0.001,0.627-0.002,0.901-0.041 c-0.001-0.046-0.001-0.093-0.002-0.141c-0.002-0.129-0.004-0.284-0.004-0.477v-0.386c0-0.144,0-0.393-0.025-0.633 c-0.372-0.597-2.491-3.226-3.205-3.883c-0.183-0.029-0.515-0.071-0.751-0.101c-0.443-0.057-0.724-0.093-0.883-0.127l-0.518-0.111 l-0.015-0.528l-0.015-0.522l-0.013-0.427l0.38-0.193c0.179-0.09,0.375-0.105,0.775-0.105c0.169,0,0.375,0.003,0.605,0.008 l0.096,0.001c0.258,0.004,0.547,0.008,0.849,0.008c0.297,0,0.607-0.004,0.916-0.016c0.274-0.01,0.655-0.015,1.06-0.015 c0.776,0,2.015,0.02,2.273,0.049l0.686,0.08l-0.097,0.684l-0.065,0.462l-0.063,0.448l-0.44,0.109 c-0.165,0.043-0.426,0.063-0.862,0.091c0.388,0.525,0.803,1.06,1.163,1.524c0.16,0.206,0.31,0.4,0.445,0.576 c0.103-0.084,0.218-0.177,0.348-0.282c0.193-0.157,0.482-0.393,0.752-0.625c-0.162-0.021-0.29-0.035-0.341-0.037l-0.54-0.021 l-0.114-0.532l-0.109-0.594l-0.124-0.681l0.683-0.105c0.099-0.016,0.26-0.029,0.771-0.029c0.331,0,0.736,0.006,1.125,0.012 c0.352,0.005,0.69,0.01,0.946,0.01c1.148,0,2.266,0.004,2.661,0.036l1.162,0.096l-0.663,0.959l-0.386,0.56l-0.177,0.256 l-0.31,0.031c-0.148,0.016-0.897,0.178-1.18,0.239l-0.167,0.036c-0.525,0.284-2.853,2.136-3.216,2.659 c-0.023,0.149-0.037,0.368-0.037,0.589l-0.024,0.509c0.001,0.117,0.022,0.308,0.049,0.499c0.126,0.001,0.259,0.001,0.369,0.002 c0.642,0.002,0.941,0.007,1.112,0.035l0.595,0.099l-0.032,0.603l-0.032,0.607L62.098,49.658L62.098,49.658z" fill="#A02DBD"/>
-<path d="M64.631,42.427c-0.228,0.023-1.172,0.234-1.489,0.302c-0.34,0.091-3.445,2.489-3.649,3.08 c-0.045,0.204-0.067,0.517-0.067,0.812l-0.022,0.476c0,0.341,0.094,0.888,0.14,1.184c0.203,0.045,1.681,0.005,1.953,0.051 l-0.033,0.608c-0.266-0.019-2.142-0.014-3.214-0.014c-0.545,0-2.293,0.059-2.831,0.043l0.101-0.579 c0.295-0.023,1.514,0.053,1.783-0.23c0.133-0.142,0.091-0.291,0.091-1.107v-0.385c0-0.183,0-0.521-0.045-0.839 c-0.113-0.34-2.849-3.755-3.552-4.3c-0.204-0.067-1.482-0.195-1.799-0.264l-0.015-0.522c0.157-0.079,1.579,0.021,2.959-0.031 c0.906-0.033,2.976,0,3.23,0.03l-0.065,0.46c-0.273,0.069-1.582,0.094-1.922,0.185c0.883,1.313,2.282,3.007,2.735,3.664 c0.25-0.362,2.442-1.87,2.509-2.391c-0.341-0.068-1.467-0.231-1.647-0.231l-0.108-0.594c0.309-0.048,1.932,0,2.738,0 c0.696,0,2.184,0,2.606,0.035L64.631,42.427z" fill="#FFFFFF"/>
-<polygon fill="#7B0099" points="76.299,48.863 75.897,48.863 75.897,48.634 76.949,48.634 76.949,48.863 76.547,48.863 76.547,49.935 76.299,49.935 "/>
-<polygon fill="#7B0099" points="77.229,48.634 77.493,48.634 77.887,49.251 78.28,48.634 78.537,48.634 78.537,49.935 78.297,49.935 78.297,49.01 77.896,49.634 77.87,49.634 77.469,49.01 77.469,49.935 77.229,49.935 "/>
+<polygon fill="url(#SVGID_5_)" points="35.654,8.989 35.68,25.984 38.83,26.366 42.957,9.911 "/>
+<path d="M26.029,18.421c-0.348,0.036-1.766,0.354-2.242,0.456c-0.51,0.134-5.184,3.747-5.49,4.635  c-0.07,0.307-0.103,0.775-0.103,1.221l-0.036,0.715c0,0.516,0.143,1.335,0.211,1.779c0.304,0.067,2.529,0.008,2.94,0.076  l-0.051,0.916c-0.401-0.027-3.223-0.019-4.836-0.019c-0.821,0-3.452,0.089-4.259,0.062l0.151-0.869  c0.445-0.033,2.278,0.078,2.684-0.348c0.201-0.211,0.135-0.436,0.135-1.666V24.8c0-0.276,0-0.786-0.066-1.263  c-0.172-0.512-4.286-5.651-5.346-6.471c-0.306-0.101-2.229-0.291-2.708-0.394L6.99,15.885c0.241-0.118,2.377,0.031,4.455-0.048  c1.363-0.053,4.479,0,4.862,0.045l-0.098,0.691c-0.412,0.107-2.38,0.144-2.894,0.281c1.329,1.976,3.436,4.522,4.116,5.513  c0.377-0.548,3.674-2.815,3.778-3.602C20.695,18.663,19,18.42,18.73,18.42l-0.166-0.893c0.465-0.072,2.909,0,4.122,0  c1.047,0,3.285,0,3.924,0.053L26.029,18.421z" fill="#FFFFFF"/>
+<polygon fill="#DCBCDA" fill-opacity="0.5" points="36.04,11.116 36.09,9.583 42.396,10.301 41.98,11.645   41.928,11.07 36.296,10.396 " stroke-opacity="0.5"/>
+<path d="M30.77,16.643c-2.438-3.875-7.81-6.567-14.048-6.567  c-6.238,0-11.613,2.692-14.05,6.567c3.298-2.664,8.366-4.371,14.05-4.371C22.404,12.272,27.473,13.979,30.77,16.643z" fill="#DCBCDA" fill-opacity="0.5" stroke-opacity="0.5"/>
+<rect fill="none" height="44" width="44"/>
 </svg>
\ No newline at end of file
--- a/emailservices/emailframework/eabi/FSMailFrameworkU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/eabi/FSMailFrameworkU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -1,29 +1,32 @@
 EXPORTS
 	_ZN13CFSMailClient10CancelAllLEv @ 1 NONAME
-	_ZN13CFSMailClient11GetTempDirLEv @ 2 NONAME
-	_ZN13CFSMailClient12AddObserverLER20MFSMailEventObserver @ 3 NONAME
-	_ZN13CFSMailClient12ListMessagesE12TFSMailMsgIdS0_14TFSMailDetailsRK6RArrayI19TFSMailSortCriteriaE @ 4 NONAME
-	_ZN13CFSMailClient13AuthenticateLER22MFSMailRequestObserver @ 5 NONAME
-	_ZN13CFSMailClient13CleanTempDirLEv @ 6 NONAME
-	_ZN13CFSMailClient13ListMailBoxesE12TFSMailMsgIdR13RPointerArrayI10CFSMailBoxE @ 7 NONAME
-	_ZN13CFSMailClient14RemoveObserverER20MFSMailEventObserver @ 8 NONAME
-	_ZN13CFSMailClient14SetMailboxNameE12TFSMailMsgIdRK7TDesC16 @ 9 NONAME
-	_ZN13CFSMailClient15GetFolderByUidLE12TFSMailMsgIdS0_ @ 10 NONAME
-	_ZN13CFSMailClient16GetBrandManagerLEv @ 11 NONAME
-	_ZN13CFSMailClient16GetMailBoxByUidLE12TFSMailMsgId @ 12 NONAME
-	_ZN13CFSMailClient16GetMessageByUidLE12TFSMailMsgIdS0_S0_14TFSMailDetails @ 13 NONAME
-	_ZN13CFSMailClient19DeleteMailBoxByUidLE12TFSMailMsgIdR22MFSMailRequestObserver @ 14 NONAME
-	_ZN13CFSMailClient20DeleteMessagesByUidLE12TFSMailMsgIdS0_RK6RArrayIS0_E @ 15 NONAME
-	_ZN13CFSMailClient20WizardDataAvailableLEv @ 16 NONAME
-	_ZN13CFSMailClient23SubscribeMailboxEventsLE12TFSMailMsgIdR20MFSMailEventObserver @ 17 NONAME
-	_ZN13CFSMailClient24UnsubscribeMailboxEventsE12TFSMailMsgIdR20MFSMailEventObserver @ 18 NONAME
-	_ZN13CFSMailClient25UnregisterRequestObserverEi @ 19 NONAME
-	_ZN13CFSMailClient4NewLEi @ 20 NONAME
-	_ZN13CFSMailClient4NewLEv @ 21 NONAME
-	_ZN13CFSMailClient5CloseEv @ 22 NONAME
-	_ZN13CFSMailClient5NewLCEi @ 23 NONAME
-	_ZN13CFSMailClient7CancelLEi @ 24 NONAME
-	_ZN13CFSMailClientD0Ev @ 25 NONAME
-	_ZN13CFSMailClientD1Ev @ 26 NONAME
-	_ZN13CFSMailClientD2Ev @ 27 NONAME
+	_ZN13CFSMailClient10ExtensionLERK4TUid @ 2 NONAME
+	_ZN13CFSMailClient11GetTempDirLEv @ 3 NONAME
+	_ZN13CFSMailClient12AddObserverLER20MFSMailEventObserver @ 4 NONAME
+	_ZN13CFSMailClient12ListMessagesE12TFSMailMsgIdS0_14TFSMailDetailsRK6RArrayI19TFSMailSortCriteriaE @ 5 NONAME
+	_ZN13CFSMailClient13AuthenticateLER22MFSMailRequestObserver @ 6 NONAME
+	_ZN13CFSMailClient13CleanTempDirLEv @ 7 NONAME
+	_ZN13CFSMailClient13ListMailBoxesE12TFSMailMsgIdR13RPointerArrayI10CFSMailBoxE @ 8 NONAME
+	_ZN13CFSMailClient14RemoveObserverER20MFSMailEventObserver @ 9 NONAME
+	_ZN13CFSMailClient14SetMailboxNameE12TFSMailMsgIdRK7TDesC16 @ 10 NONAME
+	_ZN13CFSMailClient15GetFolderByUidLE12TFSMailMsgIdS0_ @ 11 NONAME
+	_ZN13CFSMailClient16GetBrandManagerLEv @ 12 NONAME
+	_ZN13CFSMailClient16GetMailBoxByUidLE12TFSMailMsgId @ 13 NONAME
+	_ZN13CFSMailClient16GetMessageByUidLE12TFSMailMsgIdS0_S0_14TFSMailDetails @ 14 NONAME
+	_ZN13CFSMailClient16ReleaseExtensionEP15CEmailExtension @ 15 NONAME
+	_ZN13CFSMailClient17IncReferenceCountEv @ 16 NONAME
+	_ZN13CFSMailClient19DeleteMailBoxByUidLE12TFSMailMsgIdR22MFSMailRequestObserver @ 17 NONAME
+	_ZN13CFSMailClient20DeleteMessagesByUidLE12TFSMailMsgIdS0_RK6RArrayIS0_E @ 18 NONAME
+	_ZN13CFSMailClient20WizardDataAvailableLEv @ 19 NONAME
+	_ZN13CFSMailClient23SubscribeMailboxEventsLE12TFSMailMsgIdR20MFSMailEventObserver @ 20 NONAME
+	_ZN13CFSMailClient24UnsubscribeMailboxEventsE12TFSMailMsgIdR20MFSMailEventObserver @ 21 NONAME
+	_ZN13CFSMailClient25UnregisterRequestObserverEi @ 22 NONAME
+	_ZN13CFSMailClient4NewLEi @ 23 NONAME
+	_ZN13CFSMailClient4NewLEv @ 24 NONAME
+	_ZN13CFSMailClient5CloseEv @ 25 NONAME
+	_ZN13CFSMailClient5NewLCEi @ 26 NONAME
+	_ZN13CFSMailClient7CancelLEi @ 27 NONAME
+	_ZN13CFSMailClientD0Ev @ 28 NONAME
+	_ZN13CFSMailClientD1Ev @ 29 NONAME
+	_ZN13CFSMailClientD2Ev @ 30 NONAME
 
--- a/emailservices/emailframework/emailframework.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/emailframework.pro	Mon May 03 12:23:15 2010 +0300
@@ -95,7 +95,11 @@
     -lgdi \
     -legul \
     -lFSFWCommonLib \
-    -lcentralrepository
+    -lcentralrepository \
+    -laknicon \
+    -letel \
+    -letelmm \
+    -ltimezonelocalization
 
 		BLD_INF_RULES.prj_exports += \			
         "../rom/FSEmailFramework.iby             CORE_APP_LAYER_IBY_EXPORT_PATH(FSEmailFramework.iby)"
--- a/emailservices/emailframework/inc/CFSMailBrandManagerImpl.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/CFSMailBrandManagerImpl.h	Mon May 03 12:23:15 2010 +0300
@@ -67,6 +67,12 @@
 	                       const TFSMailMsgId& aMailboxId );
 
 	/**
+	 * @see MFSMailBrandManager::GetGraphicL, overloaded with brandid
+	 */
+	CGulIcon* GetGraphicL( TFSBrandElement aElement, const TDesC& aBrandId );
+	
+	
+	/**
 	 * @see MFSMailBrandManager::GetTextL
 	 */
 	TPtrC GetTextL( TFSBrandElement aElement,
@@ -98,6 +104,13 @@
 	                     const TFSMailMsgId& aMailboxId,
                          TDes& aIconIds  );
 
+	/**
+	 * @see MFSMailBrandManager::GetGraphicIdsL
+	 */
+    TInt GetGraphicIdsL( TFSBrandElement aElement, 
+                         const TDesC& aBrandId,
+                         TDes& aIconIds  );
+    
 private:
 
     /**
@@ -134,6 +147,16 @@
 	 */
 	CFSMailBox* MailboxMatchingBrandIdL( const TDesC& aBrandId ) const;
 	
+// <gmail_brand_issue>
+    void GetMCCValueL( TDes& aMcc ) const;    
+
+    void GetMCCValueFromSIML( TDes& aMcc ) const;    
+
+    TUint8 GetCurrentCountryL() const;
+
+    void VerifyMailAccountName( TPtrC& aBrandedName ) const;
+// </gmail_brand_issue>
+
 private: // data
 
     /**
--- a/emailservices/emailframework/inc/CFSMailClient.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/CFSMailClient.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,6 +23,7 @@
 #include <e32base.h>
 
 #include "CFSMailClient.hrh"
+#include "cemailextensionbase.h"
 
 //<cmail>
 #include "MFSMailBrandManager.h"
@@ -32,42 +33,42 @@
 class CFSFWImplementation;
 class CFSMailPluginManager;
 
-	/**
-	* @mainpage Freestyle Email API
-	*
-	* @section sec1 Introduction
-	*
-	*    This is the mail API and framework used by the Freestyle email
-	*    client. It provides access to the message store for reading email
-	*    and to the sync engine for starting and stopping synchronizations.
-	*
-	* @section sec2 Typical Usage From UI
-	*
-	*  	// Initialize the access to the mail framework
-	*  	CFSMailClient* mail = CFSMailClient::NewL();
-	*  	CleanupClosePushL(*mail);
+    /**
+    * @mainpage Freestyle Email API
+    *
+    * @section sec1 Introduction
+    *
+    *    This is the mail API and framework used by the Freestyle email
+    *    client. It provides access to the message store for reading email
+    *    and to the sync engine for starting and stopping synchronizations.
+    *
+    * @section sec2 Typical Usage From UI
+    *
+    *   // Initialize the access to the mail framework
+    *   CFSMailClient* mail = CFSMailClient::NewL();
+    *   CleanupClosePushL(*mail);
     * 
-	*  	// List mailboxes for user to select which one to open
-	*	RPointerArray<CFSMailBox> mailBoxes;
-	*	mailBoxes.Reset();
-	*	TFSMailMsgId plugin; // null id if all mailboxes required
-	*	mail->ListMailBoxes(plugin,mailBoxes);
+    *   // List mailboxes for user to select which one to open
+    *   RPointerArray<CFSMailBox> mailBoxes;
+    *   mailBoxes.Reset();
+    *   TFSMailMsgId plugin; // null id if all mailboxes required
+    *   mail->ListMailBoxes(plugin,mailBoxes);
     *   // Lets select the first one this time
-	*  	CFSMailBox * currentMailbox = mailboxes[0]; 
+    *   CFSMailBox * currentMailbox = mailboxes[0]; 
     * 
-	*   // list all mailbox folders for user
-	*   RPointerArray<CFSMailFolder> folders = currentMailBox->ListFolders( );
-	*
-	*   // or get default folder, for example inbox
-	*	TFSMailMsgId folderId;
-	*	folderId = mailBox->GetStandardFolderId( EFSInbox );
-	*  	CFSMailFolder* inbox = mail->GetFolderByUid(currentMailBox->GetId(),folderId);
-	*
-	*   // List messages in inbox
-	*   // select message details to be listed
-	*   TFSMailDetails details(EFSMsgDataStructure);
-    *	
-	*   // set sorting criteria
+    *   // list all mailbox folders for user
+    *   RPointerArray<CFSMailFolder> folders = currentMailBox->ListFolders( );
+    *
+    *   // or get default folder, for example inbox
+    *   TFSMailMsgId folderId;
+    *   folderId = mailBox->GetStandardFolderId( EFSInbox );
+    *   CFSMailFolder* inbox = mail->GetFolderByUid(currentMailBox->GetId(),folderId);
+    *
+    *   // List messages in inbox
+    *   // select message details to be listed
+    *   TFSMailDetails details(EFSMsgDataStructure);
+    *   
+    *   // set sorting criteria
     *   TFSMailSortCriteria criteria;
     *   criteria.iField = EFSMailSortByDate;
     *   criteria.iOrder = EFSMailAscending;
@@ -75,30 +76,30 @@
     *   sorting.Append(criteria);
     *
     *   // get email list iterator from plugin
-	*   MFSMailIterator* iterator = folder->ListMessagesL(details,sorting);
+    *   MFSMailIterator* iterator = folder->ListMessagesL(details,sorting);
     *
     *   //  list all messages from folder
     *   TFSMailMsgId currentMessageId; // first call contains NULL id as begin id
     *   RPointerArray<CFSMailMessage> messages;
     *   messages.Reset();
     *   iterator->NextL(currentMessageId, folder->GetMessageCount(), messages);
-    *		
-	*   // Show the first 5 messages to in the UI
-	*   for(TInt i=0;i<messages.Count() && i<5;i++)
-	*   {
+    *       
+    *   // Show the first 5 messages to in the UI
+    *   for(TInt i=0;i<messages.Count() && i<5;i++)
+    *   {
     *       MyHeaderShowMethod(messages[i]->GetSender().GetEmailAddress(),
     *                          messages[i]->GetSubject()
     *                          messages[i]->GetDate());
     *
     *       // get email body
-	*       CFSMailMessagePart* body = messages[i]->PlainTextBodyPartL();
+    *       CFSMailMessagePart* body = messages[i]->PlainTextBodyPartL();
     *       if(body)
     *       {
     *           TBuf<n> text;
     *           TInt startOffset = 0;
     *           body->GetContentToBufferL(text,startOffset);
     *           MyPlainTextBodyShowMethod(text);
-    *           delete body;		
+    *           delete body;        
     *       }
     *
     *       //list email attachments
@@ -111,56 +112,56 @@
     *       }
     *       attachments.ResetAndDestroy();
     *   }
-	*
+    *
     *   // clean iterator and tables
     *   messages.ResetAndDestroy();
     *   delete iterator;
     *   sorting.Reset();
     *   delete folder;
     *
-	*   // User should call close when terminating mail framework usage
-	*   // when shutting down application close mail client singleton
-	*   CleanupStack::PopAndDestroy(mail);
-	*
-	* @section sec3 Observing Email Events.
-	*
-	*   // To be able to observe events an user has to
-	*   // implement MFSMailEventObserver interface.
-	*   // Here the COwnMailObserver class implements the interface.
-	*   COwnMailObserver* ownObserver = COwnMailObserver::NewL();
-	*
-	*   // Register to observe mail store events
-	*   mail->AddObserverL(*ownObserver);
-	*
-	*   // Now callbacks are done via the EventL function defined
-	*   // in the MFSMailEventObserver and implemented in this case
-	*   // by the COwnMailObserver
-	*
-	*   // When user does not wish to observe events anymore
-	*   // he has to unregister
-	*   mail->RemoveObserver( *ownObserver );
-	*
-	*   // Remember that it must be done for each observer
-	*   // in the end of the observation because the AddObserverL
-	*   // does not replace the observer
-	*
-	* @section sec_groups Classes
-	*
-	* The following classes form the public API of the frame work.
-	*
-	* @section sec_info More Information
-	*
-	* Copyright &copy; 2006 Nokia.  All rights reserved.
-	*
-	* This material, including documentation and any related computer programs, 
-	* is protected by copyright controlled by Nokia.  All rights are reserved.  
-	* Copying, including reproducing, storing, adapting or translating, any or 
-	* all of this material requires the prior written consent of Nokia.  This 
-	* material also contains confidential information which may not be disclosed 
-	* to others without the prior written consent of Nokia.
-	*/
+    *   // User should call close when terminating mail framework usage
+    *   // when shutting down application close mail client singleton
+    *   CleanupStack::PopAndDestroy(mail);
+    *
+    * @section sec3 Observing Email Events.
+    *
+    *   // To be able to observe events an user has to
+    *   // implement MFSMailEventObserver interface.
+    *   // Here the COwnMailObserver class implements the interface.
+    *   COwnMailObserver* ownObserver = COwnMailObserver::NewL();
+    *
+    *   // Register to observe mail store events
+    *   mail->AddObserverL(*ownObserver);
+    *
+    *   // Now callbacks are done via the EventL function defined
+    *   // in the MFSMailEventObserver and implemented in this case
+    *   // by the COwnMailObserver
+    *
+    *   // When user does not wish to observe events anymore
+    *   // he has to unregister
+    *   mail->RemoveObserver( *ownObserver );
+    *
+    *   // Remember that it must be done for each observer
+    *   // in the end of the observation because the AddObserverL
+    *   // does not replace the observer
+    *
+    * @section sec_groups Classes
+    *
+    * The following classes form the public API of the frame work.
+    *
+    * @section sec_info More Information
+    *
+    * Copyright &copy; 2006 Nokia.  All rights reserved.
+    *
+    * This material, including documentation and any related computer programs, 
+    * is protected by copyright controlled by Nokia.  All rights are reserved.  
+    * Copying, including reproducing, storing, adapting or translating, any or 
+    * all of this material requires the prior written consent of Nokia.  This 
+    * material also contains confidential information which may not be disclosed 
+    * to others without the prior written consent of Nokia.
+    */
 
-NONSHARABLE_CLASS(CFSMailClient) : public CBase
+NONSHARABLE_CLASS(CFSMailClient) : public CExtendableEmail
 {
  public:
     
@@ -179,7 +180,7 @@
      * @return CFSMailClient pointer
      */
      IMPORT_C static CFSMailClient* NewL( TInt aConfiguration );
-  	
+    
     /**
      * Creates a new CFSMailClient singleton instance or increments
      * reference count if singleton already exists
@@ -215,7 +216,7 @@
      * @return mailbox object ( CFSMailBox ), ownership is transferred to user
      */
      IMPORT_C CFSMailBox* GetMailBoxByUidL( const TFSMailMsgId aMailBoxId);
-      	  		
+                
     /**
      * returns email folder object related to given folder id
      *
@@ -236,8 +237,8 @@
      *
      * @return email object (CFSMailMessage), ownership is transferred to user
      */
-	 IMPORT_C CFSMailMessage* GetMessageByUidL(const TFSMailMsgId aMailBoxId, const TFSMailMsgId aFolderId,
-	 										  const TFSMailMsgId aMessageId, const TFSMailDetails aDetails );	 										  
+     IMPORT_C CFSMailMessage* GetMessageByUidL(const TFSMailMsgId aMailBoxId, const TFSMailMsgId aFolderId,
+                                              const TFSMailMsgId aMessageId, const TFSMailDetails aDetails );                                             
     /**
      * deletes emails defined in message id list
      *
@@ -246,7 +247,7 @@
      * @param aMessageIds defines ids of email to be deleted
      */
      IMPORT_C void DeleteMessagesByUidL( const TFSMailMsgId aMailBoxId, const TFSMailMsgId aFolderId, 
-	 									 const RArray<TFSMailMsgId>& aMessageIds );
+                                         const RArray<TFSMailMsgId>& aMessageIds );
 
     /**
      * Deletes mail account. This asynchronous operation returns id that can
@@ -272,10 +273,10 @@
      * @return email list iterator, ownership is transferred to user
      */
      IMPORT_C MFSMailIterator* ListMessages(
-        						const TFSMailMsgId aMailBoxId,
-        						const TFSMailMsgId  aFolderId,
-        						const TFSMailDetails  aDetails,
-        						const RArray<TFSMailSortCriteria>& aSorting);
+                                const TFSMailMsgId aMailBoxId,
+                                const TFSMailMsgId  aFolderId,
+                                const TFSMailDetails  aDetails,
+                                const RArray<TFSMailSortCriteria>& aSorting);
 
     /**
      * returns branding manager to handle branding elements
@@ -345,24 +346,24 @@
 
     /**
      * get framework temp directory
-	 */
+     */
      IMPORT_C TDesC& GetTempDirL( );
 
     /**
      * clean framework temp directory
-	 */
+     */
      IMPORT_C void CleanTempDirL( );
 
     /**
      * cancels single pending asynchronous request
      *
      * @param aRequestId identifies request
-	 */
+     */
      IMPORT_C void CancelL( const TInt aRequestId );
 
     /**
      * cancels all pending asynchronous requests
-	 */
+     */
      IMPORT_C void CancelAllL( );
 
      /**
@@ -372,7 +373,31 @@
       * @param aMailboxName new name for the mailbox
       */
      IMPORT_C void SetMailboxName( const TFSMailMsgId aMailboxId, const TDesC& aMailboxName );
-    
+
+//<qmail>
+     /**
+      * increments reference count to framework singleton
+	  * visibility change to public by Qmail
+      */
+     IMPORT_C TInt IncReferenceCount();
+//</qmail>
+
+public: // from  CExtendableEmail
+
+    /**
+     * @see CExtendableEmail::ReleaseExtension
+     */
+    IMPORT_C virtual void ReleaseExtension( CEmailExtension* aExtension );
+
+    /**
+    * Requests extension. Default implementation performs lookup only and
+    * derived class should implement actual instantiation because it knows
+    * extensions it supports
+    * array but does not delete it.
+    * @param aExtension extension to release
+    */
+    IMPORT_C virtual CEmailExtension* ExtensionL( const TUid& aInterfaceUid );
+        
  protected:
 
  private:
@@ -390,17 +415,12 @@
     /**
      * ConstructL
      */
-	 void ConstructL( TInt aConfiguration );
+     void ConstructL( TInt aConfiguration );
 
     /**
      * returns framework singleton instance if exists
      */
-	 static CFSMailClient* Instance();
-
-    /**
-     * increments reference count to framework singleton
-     */
-     TInt IncReferenceCount();
+     static CFSMailClient* Instance();
 
     /**
      * decrements reference count to framework singleton
@@ -409,13 +429,13 @@
 
  private: // data
 
-	/** framework singleton reference count */
+    /** framework singleton reference count */
     TInt                     iReferenceCount;
 
-	/** */
+    /** */
     CFSFWImplementation*     iFWImplementation;
-	 
-	/** branding manager pointer  */
+     
+    /** branding manager pointer  */
     MFSMailBrandManager*     iBrandManager;
 };
 
--- a/emailservices/emailframework/inc/CFSMailPlugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/CFSMailPlugin.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -25,6 +25,7 @@
 #include "MFSMailEventObserver.h"
 #include "CFSMailBox.h"
 #include "CFSMailPlugin.hrh"
+#include "cemailextensionbase.h"
 //</cmail>
 
 // constants
@@ -44,11 +45,11 @@
  *  CFSMailPlugin,CFSMailPlugin.inl are exported by framework
  *
  *  @lib FSFWCommonLib
- *  @since S60 v3.1
+ *
  */
-NONSHARABLE_CLASS ( CFSMailPlugin ) : public CBase
+NONSHARABLE_CLASS ( CFSMailPlugin ) : public CExtendableEmail
     {
-    
+
 public: // Methods
 
     /**
@@ -72,9 +73,9 @@
      * @param aInfo plugin implementation info
      */
      static void ListImplementationsL( RPointerArray<CImplementationInformation>& aInfo );
-  	      	
-	/** MAILBOX HANDLING API */
-	
+
+    /** MAILBOX HANDLING API */
+
     /**
      * Enables synchronization of identified mailbox. This means
      * that the plugin can connect to server to do synchronization
@@ -94,7 +95,7 @@
      * in offline state like network error or scheduling.
      *
      * @param aMailBoxId mailbox id request is accessed to
-	 */
+     */
      virtual void GoOnlineL( const TFSMailMsgId& aMailBoxId ) = 0;
 
     /**
@@ -106,7 +107,7 @@
      * mailboxes also.
      *
      * @param aMailBoxId mailbox id request is accessed to
-	 */
+     */
      virtual void GoOfflineL( const TFSMailMsgId& aMailBoxId ) = 0;
 
     /**
@@ -117,10 +118,10 @@
      *
      * All collections (mail etc.) supported by the plugin and
      * enabled by user settings are synchronized.
-     *     
+     *
      * This is an asynchronous operation and the request id
      * is returned for cancelling purpose.
-     * 
+     *
      * Observer is given as a parameter to enable callbacks
      * related to this operation. Alternatively user can use
      * empty implementation of the observer function and rely
@@ -132,7 +133,7 @@
      *        will receive progress notifications during the operation.
      * @param aRequestId identifies asynchronous request if parallel
      * requests exist
-	 */
+     */
      virtual void RefreshNowL( const TFSMailMsgId& aMailBoxId,
                                MFSMailRequestObserver& aOperationObserver,
                                TInt aRequestId ) = 0;
@@ -143,7 +144,7 @@
      * @param aMailBoxId mailbox id
      *
      * @return last sync operation status
-     * 
+     *
      */
      virtual const TFSProgress GetLastSyncStatusL( const TFSMailMsgId& aMailBoxId ) = 0;
 
@@ -151,7 +152,7 @@
      * cancels all ongoing synchronizations in given mailbox regardless if initiated
      * by email framework or plugin itself
      *
-     * @return error code 
+     * @return error code
      */
      virtual TInt CancelSyncL( const TFSMailMsgId& aMailBoxId ) = 0;
 
@@ -165,14 +166,14 @@
      virtual TSSMailSyncState CurrentSyncState( const TFSMailMsgId& aMailboxId ) = 0;
 
     /**
-     * returns mailbox online status 
+     * returns mailbox online status
      *
      * @param aMailboxId id of target mailbox
      *
      * @return online / offline
      */
      virtual TFSMailBoxStatus GetMailBoxStatus( const TFSMailMsgId& aMailBoxId ) = 0;
-	
+
     /**
      * checks if mailbox supports given capability
      *
@@ -181,9 +182,9 @@
      *
      * @return true/false
      */
-     virtual TBool MailboxHasCapabilityL( 	TFSMailBoxCapabilities aCapability,
-	 										TFSMailMsgId aMailBoxId ) = 0;
-	 	 
+     virtual TBool MailboxHasCapabilityL(   TFSMailBoxCapabilities aCapability,
+                                            TFSMailMsgId aMailBoxId ) = 0;
+
     /**
      * lists existing mailboxes contained by plugin
      *
@@ -191,33 +192,33 @@
      *        table owned by user
      * to this table owned by framework
      */
-  	 virtual void ListMailBoxesL( RArray<TFSMailMsgId>& aMailboxes) = 0;
+     virtual void ListMailBoxesL( RArray<TFSMailMsgId>& aMailboxes) = 0;
 
     /**
      * returns email mailbox object related to given mailbox id
      * mailbox data set by plugin :
-     *				 - mailbox id
+     *               - mailbox id
      *               - mailbox name
      *               - branding id
      *               - mailbox capabilities
      *
      * @param aMailBoxId mailbox id
      *
-     * @return mailBox object ( CFSMailBox ) to be owned by user 
+     * @return mailBox object ( CFSMailBox ) to be owned by user
      */
      virtual CFSMailBox* GetMailBoxByUidL( const TFSMailMsgId& aMailBoxId) = 0;
-      	  		
+
     /**
-     * removes mailbox 
+     * removes mailbox
      *
      * @param aMailBoxId id of the mailbox to be removed
      * @param aOperationObserver is FW provided observer that should be
      * used to report progress notifications during the operation.
      * @param aRequestId asynchronous request id
      */
-     virtual void DeleteMailBoxByUidL(	const TFSMailMsgId& aMailBoxId,
-	                                    MFSMailRequestObserver& aOperationObserver,
-	                                    const TInt aRequestId ) = 0;
+     virtual void DeleteMailBoxByUidL(  const TFSMailMsgId& aMailBoxId,
+                                        MFSMailRequestObserver& aOperationObserver,
+                                        const TInt aRequestId ) = 0;
 
     /**
      * Returns branding id of this mailbox.
@@ -243,7 +244,7 @@
      * Unsubscribes events from given mailbox
      *
      * @param aMailboxId id of target mailbox
-     * @param aObserver event observer 
+     * @param aObserver event observer
      */
      virtual void UnsubscribeMailboxEvents(const TFSMailMsgId& aMailboxId,
                                            MFSMailEventObserver& aObserver) = 0;
@@ -270,11 +271,23 @@
     /**
      * checks from plugin if connection is allowed when roaming
      *
-     * @param  aConnectionAllowed 
+     * @param  aConnectionAllowed
      * @return KErrNone or error code
      */
      virtual TInt IsConnectionAllowedWhenRoaming( TFSMailMsgId aMailBoxId, TBool& aConnectionAllowed );
 
+
+    /**
+      * Reads email from file stream and converts it to class CFSMailMessage
+      *
+      * @param  aMailBoxId mailbox where email exists
+      * @param  aFile input file given by user
+      * @return CFSMailMessage
+      */
+     virtual CFSMailMessage* CreateMessageFromFileL( const TFSMailMsgId /*aMailboxId*/,
+                                                     const RFile& /*aFile*/ )
+                                                     { return NULL; };
+
     /**
      * Moves a messages between the given folders.
      *
@@ -283,16 +296,30 @@
      * @param aSourceFolderId source folder id
      * @param aDestinationFolderId destination folder id
      *
-     */    
+     */
      virtual void MoveMessagesL( const TFSMailMsgId& aMailBoxId,
-                                 const RArray<TFSMailMsgId>& aMessageIds, 
+                                 const RArray<TFSMailMsgId>& aMessageIds,
                                  const TFSMailMsgId& aSourceFolderId,
                                  const TFSMailMsgId& aDestinationFolderId ) = 0;
-                                 
+
+    /**
+     * Moves a messages between the given folders. Async version.
+     * @param aMailBoxId id of the target mailbox
+     * @param aMessageIds ids of the messages to be transferred owned by user
+     * @param aSourceFolderId source folder id
+     * @param aDestinationFolderId destination folder id
+     */
+     virtual TInt MoveMessagesL( const TFSMailMsgId& /*aMailBoxId*/,
+                                 const RArray<TFSMailMsgId>& /*aMessageIds*/,
+                                 const TFSMailMsgId& /*aSourceFolderId*/,
+                                 const TFSMailMsgId& /*aDestinationFolderId*/,
+                                 MFSMailRequestObserver& /*aOperationObserver*/,
+                                 TInt /*aRequestId*/ ){return KErrNotSupported;}
+
     /**
      * Copies a messages from folder to another.
      * This function copies a messages to the given folder,
-     * including the properties, content, and all attachments. 
+     * including the properties, content, and all attachments.
      * (note Only works if the store is in an authenticated state,
      *  otherwise this function leaves with KErrNotReady)
      *
@@ -301,7 +328,7 @@
      * @param aNewMessages ids of the copied new messages owned by user
      * @param aSourceFolderId source folder id
      * @param aDestinationFolderId destination folder id
-     */    
+     */
      virtual void CopyMessagesL( const TFSMailMsgId& aMailBoxId,
                                  const RArray<TFSMailMsgId>& aMessageIds,
                                  RArray<TFSMailMsgId>& aNewMessages,
@@ -317,7 +344,7 @@
      *
      *  The function will leave with KErrNotFound if a mailbox with
      *  given id is not found.
-     *        
+     *
      * @param aMailBoxId target mailbox id
      *
      * @return Array of descriptors containing MRUs. Ownership
@@ -334,26 +361,26 @@
      *
      *  The function will leave with KErrNotFound if a mailbox with
      *  given id is not found.
-     *        
+     *
      * @param aMailBoxId target mailbox id
      * @param aNewMruList Array of descriptors containing MRUs.
      * Empty if no entries are found.
      */
      virtual void SetMrusL( const TFSMailMsgId& aMailBoxId,
                             MDesCArray* aNewMruList ) = 0;
-     						
-	/** FOLDER HANDLING API */
+
+    /** FOLDER HANDLING API */
     /**
      * returns email folder object related to given folder id
      * folder data set by plugin :
-     *				 - folder id
+     *               - folder id
      *               - folder name
-     *				 - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
+     *               - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
      *               - message count
      *               - unread message count
-     *               - mailbox id 
-	 *				 - parent folder
-	 *
+     *               - mailbox id
+     *               - parent folder
+     *
      * @param aMailBoxId id of mailbox containing folder
      * @param aFolderId folder id
      *
@@ -364,7 +391,7 @@
 
     /**
      * create new folder
-     * 
+     *
      * @param aMailBoxId id of the mailbox where folder is created
      * @param aFolderId id of the parent folder where folder is created
      * @param aFolderName name of the new folder
@@ -373,7 +400,7 @@
      *
      * @return new folder object CFSMailFolder to be owned by user
      */
-     virtual CFSMailFolder* CreateFolderL( 	const TFSMailMsgId& aMailBoxId,
+     virtual CFSMailFolder* CreateFolderL(  const TFSMailMsgId& aMailBoxId,
                                             const TFSMailMsgId& aParentFolderId,
                                             const TDesC& aFolderName,
                                             const TBool aSync ) = 0;
@@ -387,47 +414,47 @@
      virtual void DeleteFolderByUidL( const TFSMailMsgId& aMailBoxId,
                                       const TFSMailMsgId& aFolderId) = 0;
 
-	/**
-	 * Lists subfolders of given folder. 
-	 * Only direct subfolders of given folder are returned.
-	 * Folder data : 
-	 * - folder id
-	 * - folder name
-	 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
-	 * - message count
-	 * - unread message count
-	 * - mailbox id 
-	 * - parent folder
-	 * - subfolder count
-	 *
-	 * @param aMailBoxId id of the mailbox where parent folder is located
-	 * @param aFolderId parent folder id. TFSMailId::NullId() for root level list.
-	 * @param aFolderList plugin writes results in this array owned by user
-	 */
-	 virtual void ListFoldersL(	const TFSMailMsgId& aMailBoxId,
-	                            const TFSMailMsgId& aParentFolderId,
-	                            RPointerArray<CFSMailFolder>& aFolderList) = 0; 
-
-   /**
-     * List all subfolders of given mailbox. 
-     * folder data : 
+    /**
+     * Lists subfolders of given folder.
+     * Only direct subfolders of given folder are returned.
+     * Folder data :
      * - folder id
      * - folder name
      * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
      * - message count
      * - unread message count
-     * - mailbox id 
+     * - mailbox id
+     * - parent folder
+     * - subfolder count
+     *
+     * @param aMailBoxId id of the mailbox where parent folder is located
+     * @param aFolderId parent folder id. TFSMailId::NullId() for root level list.
+     * @param aFolderList plugin writes results in this array owned by user
+     */
+     virtual void ListFoldersL( const TFSMailMsgId& aMailBoxId,
+                                const TFSMailMsgId& aParentFolderId,
+                                RPointerArray<CFSMailFolder>& aFolderList) = 0;
+
+   /**
+     * List all subfolders of given mailbox.
+     * folder data :
+     * - folder id
+     * - folder name
+     * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
+     * - message count
+     * - unread message count
+     * - mailbox id
      * - parent folder
      * - subfolder count
      *
      * @param aMailBoxId mailbox id
      * @param aFolderList plugin writes results in this array owned by user.
-	 * Caller must determine tree structure by examining parent id of each
+     * Caller must determine tree structure by examining parent id of each
      * returned folder.
      */
-     virtual void ListFoldersL(	const TFSMailMsgId& aMailBoxId,
-                                RPointerArray<CFSMailFolder>& aFolderList) = 0; 
-    
+     virtual void ListFoldersL( const TFSMailMsgId& aMailBoxId,
+                                RPointerArray<CFSMailFolder>& aFolderList) = 0;
+
     /**
      * returns folder id of given standard folder
      *
@@ -437,57 +464,57 @@
      * return folder id
      */
      virtual TFSMailMsgId GetStandardFolderIdL( const TFSMailMsgId& aMailBoxId,
-	 											const TFSFolderType aFolderType ) = 0;
+                                                const TFSFolderType aFolderType ) = 0;
 
-	/** MESSAGE FETCH AND STORE */
+    /** MESSAGE FETCH AND STORE */
     /**
-     * List messages contained by given folder. 
+     * List messages contained by given folder.
      * Returns email list iterator to user.
      *
      * @param aMailBoxId id of the mailbox where parent folder is located
      * @param aFolderId folder id of given folder
      * @param aDetails defines which message details are included in messages
-	 * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
-	 * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
+     * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
+     * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
      *                      The rest would be retreived when needed but date is needed to build the list.
-	 * EFSMsgDataSubject -> Like above but when sorting by subject
-	 * EFSMsgDataSender  -> Likewise for sender address.
-	 * EFSMsgDataEnvelope, EFSMsgDataStructure -> email content type is returned by plugin
+     * EFSMsgDataSubject -> Like above but when sorting by subject
+     * EFSMsgDataSender  -> Likewise for sender address.
+     * EFSMsgDataEnvelope, EFSMsgDataStructure -> email content type is returned by plugin
      * @param aSorting describes requested sort criteria (owned by user).
      *        First item in array is primary sort criteria.
      *
      * @return Email list iterator, ownership is transferred to user.
-	 */
-	 virtual MFSMailIterator* ListMessagesL( const TFSMailMsgId& aMailBoxId,
-	                                         const TFSMailMsgId& aFolderId,
-	                                         const TFSMailDetails aDetails,
-	                                         const RArray<TFSMailSortCriteria>& aSorting ) = 0;
-	
+     */
+     virtual MFSMailIterator* ListMessagesL( const TFSMailMsgId& aMailBoxId,
+                                             const TFSMailMsgId& aFolderId,
+                                             const TFSMailDetails aDetails,
+                                             const RArray<TFSMailSortCriteria>& aSorting ) = 0;
+
     /**
      * returns email object related to given message id
      *
      * message info set by plugin :
-     *				  - message id
+     *                - message id
      *                - mailbox
-     *				  - parent folder
+     *                - parent folder
      *                - message size
-	 *                - the rest is defined by message attributes ;
+     *                - the rest is defined by message attributes ;
      * @param aMailBoxId id of the mailbox containing email
      * @param aFolderId parent folder id containing email
      * @param aMessageId email message id
      *
      * @param aDetails defines which message parts are included in message
-	 * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
-	 * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
+     * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
+     * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
      *                      The rest would be retreived when needed but date is needed to build the list.
-	 * EFSMsgDataSubject -> Like above but when sorting by subject
-	 * EFSMsgDataSender  -> Likewise for sender address.
-	 * EFSMsgDataEnvelope, EFSMsgDataStructure -> 
-	 * email content type is evaluated and returned by plugin
+     * EFSMsgDataSubject -> Like above but when sorting by subject
+     * EFSMsgDataSender  -> Likewise for sender address.
+     * EFSMsgDataEnvelope, EFSMsgDataStructure ->
+     * email content type is evaluated and returned by plugin
      *
      * @return email object (CFSMailMessage), ownership is transferred to user
      */
-     virtual CFSMailMessage* GetMessageByUidL( 	const TFSMailMsgId& aMailBoxId,
+     virtual CFSMailMessage* GetMessageByUidL(  const TFSMailMsgId& aMailBoxId,
                                                 const TFSMailMsgId& aParentFolderId,
                                                 const TFSMailMsgId& aMessageId,
                                                 const TFSMailDetails aDetails) = 0;
@@ -502,7 +529,7 @@
      virtual void DeleteMessagesByUidL( const TFSMailMsgId& aMailBoxId,
                                         const TFSMailMsgId& aFolderId,
                                         const RArray<TFSMailMsgId>& aMessages ) = 0;
-	 
+
     /**
      * creates new email template into drafts folder
      *
@@ -565,17 +592,17 @@
                                           const TDesC& aHeaderDescriptor = KNullDesC );
 // </qmail>
 
-     /**
-      * creates new email template to drafts folder to be replied
-      *
-      * @param aMailBoxId id of the mailbox where new email is created
-      * @param aOriginalMessageId id of original email,which is replied to
-      * @param aReplyToAll true if reply to all is wanted
-      * @param aHeaderDescriptor user can give quote headers data to plugin as
-      *        parameter if needed
-      *
-      * @return email object to be modified by user, ownership is transferred to user
-      */
+    /**
+     * creates new email template to drafts folder to be replied
+     *
+     * @param aMailBoxId id of the mailbox where new email is created
+     * @param aOriginalMessageId id of original email,which is replied to
+     * @param aReplyToAll true if reply to all is wanted
+     * @param aHeaderDescriptor user can give quote headers data to plugin as
+     *        parameter if needed
+     *
+     * @return email object to be modified by user, ownership is transferred to user
+     */
      virtual CFSMailMessage* CreateReplyMessageL( const TFSMailMsgId& aMailBoxId,
                                                   const TFSMailMsgId& aOriginalMessageId,
                                                   const TBool aReplyToAll,
@@ -632,19 +659,19 @@
     
     /**
      * starts email fetching from email server
-	 *
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aFolderId id of the parent folder containing email
      * @param aMessageIds ids of email to be fetched
      * @param aDetails defines which details are included in email
-	 * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
-	 * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
+     * EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
+     * EFSMsgDataDate    -> Get received date only. To be used when showing messages sorted by date.
      *                      The rest would be retreived when needed but date is needed to build the list.
-	 * EFSMsgDataSubject -> Like above but when sorting by subject
-	 * EFSMsgDataSender  -> Likewise for sender address.
-	 * EFSMsgDataEnvelope -> Date, subject, Sender, To, Cc at least.
-	 * EFSMsgDataStructure -> the part structure including mime type, size and name headers.
-	 *
+     * EFSMsgDataSubject -> Like above but when sorting by subject
+     * EFSMsgDataSender  -> Likewise for sender address.
+     * EFSMsgDataEnvelope -> Date, subject, Sender, To, Cc at least.
+     * EFSMsgDataStructure -> the part structure including mime type, size and name headers.
+     *
      * @param aObserver observer (callback medhod), which plugin calls to pass progress
      *        events to user (like fetching has completed)
      * @param aRequestId asynchronous request id
@@ -655,10 +682,10 @@
                                   TFSMailDetails aDetails,
                                   MFSMailRequestObserver& aObserver,
                                   TInt aRequestId) = 0;
-     							 	
+
     /**
      * starts email parts fetching from email server
-	 *
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aFolderId id of the parent folder containing email
      * @param aMessagePartIds part ids of email parts, which are to be fetched
@@ -677,31 +704,31 @@
                                       MFSMailRequestObserver& aOperationObserver,
                                       const TInt aRequestId,
                                       const TUint aPreferredByteCount) = 0;
-        								
+
 
     /* reads email objects from plugin store
-	 *
+     *
      * @param aMailBoxId id of the mailbox where email are located
      * @param aParentFolderId parent folder id containing emails
      * @param aMessageIds ids of emails to be read from plugin store
- 	 * @param aMessageList plugin writes results into this table owned by user
+     * @param aMessageList plugin writes results into this table owned by user
      * @param aDetails defines which email details are included in each email object
-	 *        EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
-	 *        EFSMsgDataDate    -> Get received date only. To be used when showing
-	 *        messages sorted by date. The rest would be retreived when needed but
-	 *        date is needed to build the list.
-	 *        EFSMsgDataSubject -> Like above but when sorting by subject
-	 *        EFSMsgDataSender  -> Likewise for sender address.
-	 *        EFSMsgDataEnvelope -> Date, subject, Sender, To, Cc at least.
-	 *        EFSMsgDataStructure -> the part structure including mime type,
-	 *        size and name headers.
-	 */
-	 virtual void GetMessagesL(	const TFSMailMsgId& aMailBoxId,
-	                            const TFSMailMsgId& aParentFolderId,
-	                            const RArray<TFSMailMsgId>& aMessageIds,
-	                            RPointerArray<CFSMailMessage>& aMessageList,
-	                            const TFSMailDetails aDetails ) = 0;
-     							
+     *        EFSMsgDataIdOnly  -> Doesn't get any data. The object just contains the ID.
+     *        EFSMsgDataDate    -> Get received date only. To be used when showing
+     *        messages sorted by date. The rest would be retreived when needed but
+     *        date is needed to build the list.
+     *        EFSMsgDataSubject -> Like above but when sorting by subject
+     *        EFSMsgDataSender  -> Likewise for sender address.
+     *        EFSMsgDataEnvelope -> Date, subject, Sender, To, Cc at least.
+     *        EFSMsgDataStructure -> the part structure including mime type,
+     *        size and name headers.
+     */
+     virtual void GetMessagesL( const TFSMailMsgId& aMailBoxId,
+                                const TFSMailMsgId& aParentFolderId,
+                                const RArray<TFSMailMsgId>& aMessageIds,
+                                RPointerArray<CFSMailMessage>& aMessageList,
+                                const TFSMailDetails aDetails ) = 0;
+
     /**
      * Returns child part objects for given email part. Ownership of objects
      * is transferred to user.
@@ -720,7 +747,7 @@
 
     /**
      * Creates and adds a new child part to given email part.
-     * 
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email email belongs to
@@ -730,7 +757,7 @@
      * @param aContentType content type of the new message part
      *
      * return new child part object, ownership is transferred to user
-     */        
+     */
      virtual CFSMailMessagePart* NewChildPartL( const TFSMailMsgId& aMailBoxId,
                                                 const TFSMailMsgId& aParentFolderId,
                                                 const TFSMailMsgId& aMessageId,
@@ -740,7 +767,7 @@
 
     /**
      * Creates and adds a new child part from file to given email part.
-     * 
+     *
      * @param aMailBoxId id of the mailbox where parent part is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email parent part belongs to
@@ -751,15 +778,15 @@
      * @param aFilePath file containing new child part contents
      *
      * return new child part object, ownership is transferred to user
-     */        
-	 virtual CFSMailMessagePart* NewChildPartFromFileL( const TFSMailMsgId& aMailBoxId,
-	                                                    const TFSMailMsgId& aParentFolderId,
-	                                                    const TFSMailMsgId& aMessageId,
-	                                                    const TFSMailMsgId& aParentPartId,
-	                                                    const TDesC& aContentType,
-	                                                    const TDesC& aFilePath) = 0;
+     */
+     virtual CFSMailMessagePart* NewChildPartFromFileL( const TFSMailMsgId& aMailBoxId,
+                                                        const TFSMailMsgId& aParentFolderId,
+                                                        const TFSMailMsgId& aMessageId,
+                                                        const TFSMailMsgId& aParentPartId,
+                                                        const TDesC& aContentType,
+                                                        const TDesC& aFilePath) = 0;
 
-     // <qmail>
+// <qmail>
 	    /**
 	     * Creates and adds a new child part from file to given email part.
 	     * 
@@ -771,6 +798,8 @@
 	     * If aInsertBefore is NULL id then new part is added as last.
 	     * @param aContentType content type of the new message part
 	     * @param aFilePath file containing new child part contents
+         * @param aOperationObserver Observer for the operation 
+         * @param aRequestId id of the operation
 	     *
 	     * return new child part object, ownership is transferred to user
 	     */        
@@ -782,7 +811,7 @@
 	                                        const TDesC& aFilePath,
 	                                        MFSMailRequestObserver& aOperationObserver,
 	                                        const TInt aRequestId );
-	 // </qmail>
+// </qmail>
 	 
 	 /**
 	  * Creates and adds a new child part from file to given email part.
@@ -806,10 +835,10 @@
 	                                                     const TDesC& aContentType, 
 	                                                     RFile& aFile ) = 0; 
 
-											    
+
     /**
      * Copies given email as new child part to given email part.
-     * 
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email parent part belongs to
@@ -819,7 +848,7 @@
      * @param aMessage id of the email that is copied as child part
      *
      * return new child part object, ownership is transferred to user
-     */        
+     */
      virtual CFSMailMessagePart* CopyMessageAsChildPartL( const TFSMailMsgId& aMailBoxId,
                                                           const TFSMailMsgId& aParentFolderId,
                                                           const TFSMailMsgId& aMessageId,
@@ -829,19 +858,40 @@
 
     /**
      * Removes child part (and its children, if any) from given email part
-     * 
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email parent part belongs to
      * @param aParentPartId id of the parent of the part
      * @param aPartId id of the part to removed
-     */        
-     virtual void RemoveChildPartL(	const TFSMailMsgId& aMailBoxId,
+     */
+     virtual void RemoveChildPartL( const TFSMailMsgId& aMailBoxId,
                                     const TFSMailMsgId& aParentFolderId,
                                     const TFSMailMsgId& aMessageId,
                                     const TFSMailMsgId& aParentPartId,
                                     const TFSMailMsgId& aPartId) = 0;
 
+// <qmail>
+     /**
+      * Removes child part (and its children, if any) from given email part
+      * 
+      * @param aMailBoxId id of the mailbox where email is located
+      * @param aParentFolderId id of the parent folder where email is located
+      * @param aMessageId id of the email parent part belongs to
+      * @param aParentPartId id of the parent of the part
+      * @param aPartId id of the part to removed
+      * @param aOperationObserver Observer for the operation 
+      * @param aRequestId id of the operation
+      */        
+      virtual void RemoveChildPartL( const TFSMailMsgId& aMailBoxId,
+                                     const TFSMailMsgId& aParentFolderId,
+                                     const TFSMailMsgId& aMessageId,
+                                     const TFSMailMsgId& aParentPartId,
+                                     const TFSMailMsgId& aPartId,
+                                     MFSMailRequestObserver& aOperationObserver,
+                                     const TInt aRequestId);
+// </qmail>
+      
     /**
      * Returns given message part. Ownership of object is transferred to caller.
      *
@@ -878,12 +928,12 @@
 
     /**
      * copies contents of this message part to given file
-     * 
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email part belongs to
      * @param aMessagePartId id of the message part
-     * @param aContentLocation defines file location as 
+     * @param aContentLocation defines file location as
      * a) directory, when plugin finds out corresponding file name
      *    related to this part id, in this case last character should
      *    be '/'
@@ -912,7 +962,7 @@
                                        const TFSMailMsgId& aMessagePartId,
                                        TDes& aBuffer,
                                        const TUint aStartOffset) = 0;
-	 							 
+
     /**
      * stores email part content
      *
@@ -922,12 +972,12 @@
      * @param aMessageId id of the email part belongs to
      * @param aMessagePartId id of the message part
      */
-	 virtual void SetContentL(	const TDesC& aBuffer,
-	 						  	const TFSMailMsgId& aMailBoxId,
-     							const TFSMailMsgId& aParentFolderId,
-								const TFSMailMsgId& aMessageId,
-	 							const TFSMailMsgId& aMessagePartId) = 0; 
-	 
+     virtual void SetContentL(  const TDesC& aBuffer,
+                                const TFSMailMsgId& aMailBoxId,
+                                const TFSMailMsgId& aParentFolderId,
+                                const TFSMailMsgId& aMessageId,
+                                const TFSMailMsgId& aMessagePartId) = 0;
+
     /**
      * Removes fetched contents of these parts.
      *
@@ -935,16 +985,16 @@
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
      * @param aPartIds message part ids to be removed
-     */  
-     virtual void RemovePartContentL( 	const TFSMailMsgId& aMailBoxId,
-     	     							const TFSMailMsgId& aParentFolderId,
-									  	const TFSMailMsgId& aMessageId,
-     								  	const RArray<TFSMailMsgId>& aPartIds) = 0;
-     							
+     */
+     virtual void RemovePartContentL(   const TFSMailMsgId& aMailBoxId,
+                                        const TFSMailMsgId& aParentFolderId,
+                                        const TFSMailMsgId& aMessageId,
+                                        const RArray<TFSMailMsgId>& aPartIds) = 0;
+
     /**
      * Sets email part contents from given file.
      * Possible old contents are replaced.
-     * 
+     *
      * @param aMailBoxId id of the mailbox where email is located
      * @param aParentFolderId id of the parent folder where email is located
      * @param aMessageId id of the email part belongs to
@@ -966,9 +1016,9 @@
      * @param aMessagePart email part data to be stored
      */
      virtual void StoreMessagePartL( const TFSMailMsgId& aMailBoxId,
-   	     							 const TFSMailMsgId& aParentFolderId,
-									 const TFSMailMsgId& aMessageId,
-         							 CFSMailMessagePart& aMessagePart) = 0;
+                                     const TFSMailMsgId& aParentFolderId,
+                                     const TFSMailMsgId& aMessageId,
+                                     CFSMailMessagePart& aMessagePart) = 0;
      
     // <qmail>
     /**
@@ -984,12 +1034,12 @@
     // <//qmail>
 
     /**
-     * unregisters request observer to cancel pending events  
+     * unregisters request observer to cancel pending events
      *
      * @param aRequestId request id of the pending asynchronous request
      */
      virtual void UnregisterRequestObserver(TInt aRequestId) = 0;
-    
+
     /**
      * Launches email sending in plugin,
      * cancellation is deleting the message from outbox.
@@ -1012,8 +1062,8 @@
 
     /**
      * Returns pending asynchronous request status, request is identified
-	 * by request id if parallel requests exists
-	 *
+     * by request id if parallel requests exists
+     *
      * @param aRequestId request id
      *
      * @return pending request status
@@ -1024,11 +1074,11 @@
      * cancels pending request
      *
      * @param aRequestId identifies request if parallel requests exists
-	 */
+     */
      virtual void CancelL( const TInt aRequestId ) = 0;
-     
-	/** Search API */
-	
+
+    /** Search API */
+
     /**
      * Asyncronous call for starting search for given string. Only one search can be
      * performed at a time.
@@ -1037,54 +1087,54 @@
      * This function will search for message's containing the given search string.
      * The search will be performed on the all message fields: To, Cc, Bcc, subject, body.
      * The search client will be notified of each found message,
-     * and upon completion of the search.  Only one search can be performed at a time.  
-     *  
+     * and upon completion of the search.  Only one search can be performed at a time.
+     *
      * To change the sort order in the search result, use the same search string in the
      * but change the aSortCriteria parameter.  The store "caches" the search
      * results generated by the same search string.
-     *    
+     *
      * The function will leave with KErrInUse if a search is already in progress.
-	 *
+     *
      * /note Only works if the store is in an authenticated state,
      *  otherwise this function leaves with KErrNotReady
-     * 
+     *
      * @paran aMailBoxId id of the mailbox where messages are to be searched
      * @param aFolderIds list of folders where messages are to be searched
-	 * 	      global or folder specific search depends on the size of array is 0 or not.
+     *        global or folder specific search depends on the size of array is 0 or not.
      * @param aSearchStrings text strings that will be searched from different message fields.
-	 * @param aSortCriteria sort criteria for the results
+     * @param aSortCriteria sort criteria for the results
      * @param aSearchObserver client observer that will be notified about search status.
      *
-     */    
+     */
      virtual void SearchL( const TFSMailMsgId& aMailBoxId,
                            const RArray<TFSMailMsgId>& aFolderIds,
                            const RPointerArray<TDesC>& aSearchStrings,
                            const TFSMailSortCriteria& aSortCriteria,
                            MFSMailBoxSearchObserver& aSearchObserver ) = 0;
-	
+
 
     /**
      * Cancels current search. Does nothing if there is not any search.
      * The search client will not be called back after this function is called.
-	 *
-     * \note CancelSearch() method does NOT clear the search result cached in the store. 
-     *       A different sort order can be used for the same search string, and the 
+     *
+     * \note CancelSearch() method does NOT clear the search result cached in the store.
+     *       A different sort order can be used for the same search string, and the
      *       cache will be utilized.  Only by using a different search string can the
      *       cache be cleaned.
-	 *
+     *
      * @paran aMailBoxId id of the mailbox where the search should be cancelled
      */
      virtual void CancelSearch( const TFSMailMsgId& aMailBoxId ) = 0;
 
-    /** 
+    /**
      * Inform the store to clean up its cache for search results.
-     *        
+     *
      * This method cancels the the ongoing search (if exists), and then clean ups store's cache.
-     * 
+     *
      * This function should be called when search results are no longer in display.
-	 *
+     *
      * @paran aMailBoxId id of the mailbox where the search cache should be cleared
-	 */
+     */
      virtual void ClearSearchResultCache( const TFSMailMsgId& aMailBoxId ) = 0;
 
     /**
@@ -1113,7 +1163,7 @@
      virtual void AuthenticateL(MFSMailRequestObserver& aOperationObserver, TInt aRequestId) = 0;
 
     /**
-	 * sets authentication popup data 
+     * sets authentication popup data
      * @param aMailBoxId id of the mailbox
      * @param aUsername email account user name
      * @param aPassword email account password
@@ -1121,9 +1171,9 @@
     virtual void SetCredentialsL( const TFSMailMsgId& aMailBoxId,
                                   const TDesC& aUsername,
                                   const TDesC& aPassword )  = 0;
-    
+
     /**
-      * Sets the mailbox name for this mailbox. 
+      * Sets the mailbox name for this mailbox.
       *
       * @param aMailboxId id of target mailbox
       * @param aMailboxName new name for the mailbox
@@ -1139,7 +1189,7 @@
 
 private:
 
-  	/**
+    /**
      * Two-phased constructor
      */
      void ConstructL();
@@ -1147,10 +1197,10 @@
 private: // data
 
     /**
-     * instance identifier key for destructor 
+     * instance identifier key for destructor
      */
-    TUid		iDtor_ID_Key;
-    
+    TUid        iDtor_ID_Key;
+
     };
 
 //<cmail>
@@ -1158,5 +1208,5 @@
 //</cmail>
 
 #endif // CFSFW_MAIL_PLUGIN_H
-            
+
 // End of File
--- a/emailservices/emailframework/inc/CFSMailPlugin.inl	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/CFSMailPlugin.inl	Mon May 03 12:23:15 2010 +0300
@@ -150,4 +150,18 @@
     {
     User::Leave( KErrFSMailPluginNotSupported );
     }
+
+// -----------------------------------------------------------------------------
+// CFSMailPlugin::RemoveChildPartL
+// -----------------------------------------------------------------------------
+inline void CFSMailPlugin::RemoveChildPartL( const TFSMailMsgId& /*aMailBoxId*/,
+                               const TFSMailMsgId& /*aParentFolderId*/,
+                               const TFSMailMsgId& /*aMessageId*/,
+                               const TFSMailMsgId& /*aParentPartId*/,
+                               const TFSMailMsgId& /*aPartId*/,
+                               MFSMailRequestObserver& /*aOperationObserver*/,
+                               const TInt /*aRequestId*/)
+    {
+    User::Leave( KErrFSMailPluginNotSupported );
+    }
 // </qmail>
--- a/emailservices/emailframework/inc/MFSMailBoxSearchObserver.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/MFSMailBoxSearchObserver.h	Mon May 03 12:23:15 2010 +0300
@@ -45,10 +45,17 @@
 
    /**
     * Notifies the email search API client that the search has completed
-	*
-	*/
+    *
+    */
     virtual void SearchCompletedL() = 0;
       
+//</cmail>
+    /**
+    * server asks client if to change the search priority (i.e. when calling to contact) 
+    *
+    */
+    virtual void ClientRequiredSearchPriority(TInt *apRequiredSearchPriority) = 0; 
+//</cmail>
     };
 
 #endif  // MFSMAILBOXSEARCHOBSERVER_H
--- a/emailservices/emailframework/inc/MFSMailBrandManager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/MFSMailBrandManager.h	Mon May 03 12:23:15 2010 +0300
@@ -48,87 +48,113 @@
      */  
      virtual ~MFSMailBrandManager() { }
     
-	/**
-	 * Returns a branded graphical element.
-	 *
-	 * @param aElement Id of the branded element. This identifies which
-	 *                 graphic user wishes to retrieve.
-	 * @param aMailBoxId mailbox whose branded element is retrieved.
-	 *
-	 * @return A pointer to a CGulIcon object. The caller of this method is 
-	 *         responsible of destroying the object. Returns NULL if the 
-	 *         brand doesn't contain the requested branding element.
-	 */
-	 virtual CGulIcon* GetGraphicL( TFSBrandElement aElement,
-	                                const TFSMailMsgId& aMailboxId ) = 0;
-	
-	/**
-	 * Returns a branded text element.
-	 *
-	 * @param aElement Id of the branded element. This identifies which
-	 *                 text user wishes to retrieve.
-	 * @param aMailBoxId mailbox whose branded element is retrieved.
-	 *
-	 * @return A TPtrC object. Returns TPtrC to a null descriptor if the
-	 *         brand doesn't contain the requested branding element.
-	 */
-	 virtual TPtrC GetTextL( TFSBrandElement aElement,
-	                        const TFSMailMsgId& aMailboxId ) = 0;
-	
-	/**
-	 * Returns a branded text element.
-	 * This function is for WhiteLabelBranding, because branded mailbox name is
-	 * needed before mailbox creation.
-	 * 
-	 * @param aElement Id of the branded element. This identifies which
-	 *                 text user wishes to retrieve.
-	 * @param aMailBoxId mailbox whose branded element is retrieved.
-	 *
-	 * @return A TPtrC object. Returns TPtrC to a null descriptor if the
-	 *         brand doesn't contain the requested branding element.
-	 */
-	 virtual TPtrC GetTextL( TFSBrandElement aElement, 
-			                const TDesC& aBrandId ) = 0;
-	
-	/**
-	 * Returns a branded text element.
-	 *
-	 * @param aElement The id of the branded element. This identifies which
-	 *                 color user wishes to retrieve.
-	 * @param aMailBoxId mailbox whose branded element is retrieved.
-	 * @param aColor A reference to a TRgb object. The color is returned
-	 *               using this reference.
+    /**
+     * Returns a branded graphical element.
+     *
+     * @param aElement Id of the branded element. This identifies which
+     *                 graphic user wishes to retrieve.
+     * @param aMailBoxId mailbox whose branded element is retrieved.
+     *
+     * @return A pointer to a CGulIcon object. The caller of this method is 
+     *         responsible of destroying the object. Returns NULL if the 
+     *         brand doesn't contain the requested branding element.
+     */
+     virtual CGulIcon* GetGraphicL( TFSBrandElement aElement,
+                                    const TFSMailMsgId& aMailboxId ) = 0;
+
+     /**
+      * Returns a branded graphical element.
+      *
+      * @param aElement Id of the branded element. This identifies which
+      *                 graphic user wishes to retrieve.
+      * @param aBrandId is the domain.
+      *
+      * @return A pointer to a CGulIcon object. The caller of this method is 
+      *         responsible of destroying the object. Returns NULL if the 
+      *         brand doesn't contain the requested branding element.
+      */
+      virtual CGulIcon* GetGraphicL( TFSBrandElement aElement,
+                                     const TDesC& aBrandId ) = 0;
+    
+    /**
+     * Returns a branded text element.
+     *
+     * @param aElement Id of the branded element. This identifies which
+     *                 text user wishes to retrieve.
+     * @param aMailBoxId mailbox whose branded element is retrieved.
      *
-	 * @return Error code. KErrNotFound if the brand doesn't contain the requested
-	 *         branding element.
-	 */
-	 virtual TInt GetColorL( TFSBrandElement aElement,
-	                        const TFSMailMsgId& aMailboxId,
-	                        TRgb& aColor ) = 0;
-	
-	/**
-	 * This function will change 'mailbox name' as branded name.
-	 * If aMailboxId is NULL function goes through all mailboxes and check if mailbox is branded.
-	 * If it is, function will change 'mailbox name' as branded name.
-	 * This function should be called after mailbox settings has changed.
-	 * 
-	 * @param aMailboxId Id of the mailbox
-	 */
-	 virtual void UpdateMailboxNamesL(  const TFSMailMsgId aMailboxId ) = 0;
+     * @return A TPtrC object. Returns TPtrC to a null descriptor if the
+     *         brand doesn't contain the requested branding element.
+     */
+     virtual TPtrC GetTextL( TFSBrandElement aElement,
+                            const TFSMailMsgId& aMailboxId ) = 0;
+    
+    /**
+     * Returns a branded text element.
+     * This function is for WhiteLabelBranding, because branded mailbox name is
+     * needed before mailbox creation.
+     * 
+     * @param aElement Id of the branded element. This identifies which
+     *                 text user wishes to retrieve.
+     * @param aMailBoxId mailbox whose branded element is retrieved.
+     *
+     * @return A TPtrC object. Returns TPtrC to a null descriptor if the
+     *         brand doesn't contain the requested branding element.
+     */
+     virtual TPtrC GetTextL( TFSBrandElement aElement, 
+                            const TDesC& aBrandId ) = 0;
+    
+    /**
+     * Returns a branded text element.
+     *
+     * @param aElement The id of the branded element. This identifies which
+     *                 color user wishes to retrieve.
+     * @param aMailBoxId mailbox whose branded element is retrieved.
+     * @param aColor A reference to a TRgb object. The color is returned
+     *               using this reference.
+     *
+     * @return Error code. KErrNotFound if the brand doesn't contain the requested
+     *         branding element.
+     */
+     virtual TInt GetColorL( TFSBrandElement aElement,
+                            const TFSMailMsgId& aMailboxId,
+                            TRgb& aColor ) = 0;
+    
+    /**
+     * This function will change 'mailbox name' as branded name.
+     * If aMailboxId is NULL function goes through all mailboxes and check if mailbox is branded.
+     * If it is, function will change 'mailbox name' as branded name.
+     * This function should be called after mailbox settings has changed.
+     * 
+     * @param aMailboxId Id of the mailbox
+     */
+     virtual void UpdateMailboxNamesL(  const TFSMailMsgId aMailboxId ) = 0;
 
     /**
      * Returns branded graphic element of given type.
      *
      * @param aElementId brand element
-	 * @param aMailBoxId mailbox whose branded element is retrieved.	 
+     * @param aMailBoxId mailbox whose branded element is retrieved.     
      * @param aIconIds Icon path and ids
-	 *
-	 * @return Error code
+     *
+     * @return Error code
      */
-	 virtual TInt GetGraphicIdsL( TFSBrandElement aElement,
-	                              const TFSMailMsgId& aMailboxId,
+     virtual TInt GetGraphicIdsL( TFSBrandElement aElement,
+                                  const TFSMailMsgId& aMailboxId,
                                   TDes& aIconIds  ) = 0;
-		
+
+    /**
+     * Returns branded graphic element of given type.
+     *
+     * @param aElementId brand element
+     * @param aBrandId Domain of email address.     
+     * @param aIconIds Icon path and ids
+     *
+     * @return Error code
+     */
+     virtual TInt GetGraphicIdsL( TFSBrandElement aElement,
+                                  const TDesC& aBrandId,
+                                  TDes& aIconIds  ) = 0;        
 };
 
 
--- a/emailservices/emailframework/inc/MFSMailEventObserver.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/MFSMailEventObserver.h	Mon May 03 12:23:15 2010 +0300
@@ -33,7 +33,7 @@
  *  @since S60 v3.1
  */
  class MFSMailEventObserver
- 	{
+    {
     public:
 
     /**
--- a/emailservices/emailframework/inc/MFSMailIterator.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/MFSMailIterator.h	Mon May 03 12:23:15 2010 +0300
@@ -35,7 +35,7 @@
     {
 
 public:
-									
+                                    
     /**
      * Lists user given count of email objects located after user
      * given start point.
@@ -100,9 +100,9 @@
     /**
      * Destructor.
      */  
-   	 virtual ~MFSMailIterator() { }; 
-        	
-   	};
+     virtual ~MFSMailIterator() { }; 
+            
+    };
 
 #endif  // MFSMAILITERATOR_H
 
--- a/emailservices/emailframework/inc/MFSMailPlugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/inc/MFSMailPlugin.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -54,7 +54,7 @@
  *  API allows Symbian leaves from plugins and will trap them, error codes are
  *  expected to be symbian error codes.
  *  @since ...
- */ 
+ */
 class MFSMailPlugin
   	{
 public: // Data
@@ -68,7 +68,7 @@
      * @return plugin capabilities data structure
      */
   	 virtual const TFSMailPluginCapabilities ReadPluginCapabilitiesL() = 0;
-  	      	
+
 	// MAILBOX HANDLING
     /**
      * lists existing mailboxes implemented by given plugin
@@ -88,12 +88,12 @@
      *               - mailbox capabilities
      *
      * @param aMailBoxId defines mailbox id
-     * @return mailBox object ( CFSMailBox ) to be owned by user 
+     * @return mailBox object ( CFSMailBox ) to be owned by user
      */
 	 virtual CFSMailBox* GetMailBoxByUidL( const TFSMailMsgId& aMailBoxId) = 0;
-      	  		
+
     /**
-     * removes mailbox 
+     * removes mailbox
      *
      * @param aMailBoxId defines id of the mailbox to be removed
      */
@@ -117,15 +117,15 @@
      * @param aSourceFolderId id of the folder where messages are located
      * @param aDestinationFolderId destination folder id
      *
-     */    
+     */
      virtual void MoveMessagesL( 	const TFSMailMsgId& aMailBoxId,
-     							 	const RArray<TFSMailMsgId>& aMessageIds, 
+     							 	const RArray<TFSMailMsgId>& aMessageIds,
                                 	const TFSMailMsgId& aSourceFolderId,
-                                	const TFSMailMsgId& aDestinationFolderId ) = 0;     
+                                	const TFSMailMsgId& aDestinationFolderId ) = 0;
     /**
      * Copies a messages from one folder to another.
      * This function copies a messages to the given folder,
-     * including the properties, content, and all attachments. 
+     * including the properties, content, and all attachments.
      * (note Only works if the store is in an authenticated state,
      *  otherwise this function leaves with KErrNotReady)
      *
@@ -134,7 +134,7 @@
      * @param aNewMessages ids of the copied messages.
      * @param aSourceFolderId id of the folder where messages are located
      * @param aDestinationFolderId destination folder id
-     */    
+     */
      virtual void CopyMessagesL( const TFSMailMsgId& aMailBoxId,
      							 const RArray<TFSMailMsgId>& aMessageIds,
      							 RArray<TFSMailMsgId>& aNewMessages,
@@ -150,7 +150,7 @@
      *
      *  The function will leave with KErrNotFound if a mailbox with
      *  given id is not found.
-     *        
+     *
      * @param aMailBoxId defines mailbox id
      * @return Array of descriptors containing MRUs. Ownership
      *         is transferred. Empty if no entries are found.
@@ -169,38 +169,38 @@
      *
      *  The function will leave with KErrNotFound if a mailbox with
      *  given id is not found.
-     *        
+     *
      * @param aMailBoxId defines mailbox id
      * @param aNewMruList Array of descriptors containing MRUs. Empty if no entries are found.
-     */    
+     */
      virtual void SetMrusL( const TFSMailMsgId& aMailBoxId,
      						MDesCArray* aNewMruList ) = 0;
 
 	// MAILBOX SYNC
     /**
      * DEPRECATED
-     * 
+     *
 	 */
      virtual void GoOnlineL( ) = 0;
 
     /**
      * DEPRECATED
-     * 
+     *
 	 */
      virtual void GoOfflineL( ) = 0;
 
     /**
      * DEPRECATED
-     * 
+     *
 	 */
      virtual  TFSProgress GetLastSyncStatusL( ) = 0;
 
     /**
      * DEPRECATED
      *
-	 */	 
+	 */
      virtual TInt RefreshNowL( ) = 0;
-     
+
     /**
      * Enables synchronization of identified mailbox. This means
      * that the plugin can connect toserver to do synchronization
@@ -220,7 +220,7 @@
      * in offline state like network error or scheduling.
      *
      * @param aMailBoxId defines mailbox
-     * 
+     *
 	 */
      virtual void GoOnlineL( const TFSMailMsgId& aMailBoxId ) = 0;
 
@@ -233,7 +233,7 @@
      * mailboxes also.
      *
      * @param aMailBoxId defines mailbox
-     * 
+     *
 	 */
      virtual void GoOfflineL( const TFSMailMsgId& aMailBoxId ) = 0;
 
@@ -242,7 +242,7 @@
      *
      * @param aMailBoxId defines mailbox
      * @return Last sync operation status
-     * 
+     *
 	 */
      virtual const TFSProgress GetLastSyncStatusL( const TFSMailMsgId& aMailBoxId ) = 0;
 
@@ -254,10 +254,10 @@
      *
      * All collections (mail etc.) supported by the plugin and
      * enabled by user settings are synchronized.
-     *     
+     *
      * This is an asynchronous operation and the request id
      * is returned for cancelling purpose.
-     * 
+     *
      * Observer is given as a parameter to enable callbacks
      * related to this operation. Alternatively user can use
      * empty implementation of the observer function and rely
@@ -273,7 +273,7 @@
      virtual void RefreshNowL(	const TFSMailMsgId& aMailBoxId,
          						MFSMailRequestObserver& aOperationObserver,
          						TInt aRequestId ) = 0;
-         						
+
 	// FOLDER HANDLING
     /**
      * returns email folder object related to given folder id
@@ -283,7 +283,7 @@
      *				 - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
      *               - message count
      *               - unread message count
-     *               - mailbox id 
+     *               - mailbox id
 	 *				 - parent folder
      * @param aMailBoxId defines mailbox id
      * @param aFolderId defines folder id
@@ -294,7 +294,7 @@
 
     /**
      * creates new folder
-     * 
+     *
      * @param aMailBoxId defines mailbox where folder is created
      * @param aFolderId defines id of the parent folder
      * @param aFolderName defines name of the new folder
@@ -318,13 +318,13 @@
 
 	/**
 	 * List subfolders of given folder. Only direct subfolders of given folder are returned.
-	 * Folder data : 
+	 * Folder data :
 	 * - folder id
 	 * - folder name
 	 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
 	 * - message count
 	 * - unread message count
-	 * - mailbox id 
+	 * - mailbox id
 	 * - parent folder
 	 * - subfolder count
 	 *
@@ -334,17 +334,17 @@
 	 */
 	virtual void ListFoldersL(	const TFSMailMsgId& aMailBoxId,
 	    						const TFSMailMsgId& aParentFolderId,
-	    						RPointerArray<CFSMailFolder>& aFolderList) = 0; 
+	    						RPointerArray<CFSMailFolder>& aFolderList) = 0;
 
 	/**
-	 * List all subfolders of given mailbox. 
-	 * folder data : 
+	 * List all subfolders of given mailbox.
+	 * folder data :
 	 * - folder id
 	 * - folder name
 	 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other
 	 * - message count
 	 * - unread message count
-	 * - mailbox id 
+	 * - mailbox id
 	 * - parent folder
 	 * - subfolder count
 	 *
@@ -353,7 +353,7 @@
 	 * Caller must determine tree structure by examining parent id of each returned folder.
 	 */
 	 virtual void ListFoldersL(	const TFSMailMsgId& aMailBoxId,
-	    						RPointerArray<CFSMailFolder>& aFolderList) = 0; 
+	    						RPointerArray<CFSMailFolder>& aFolderList) = 0;
     /**
      * return folder id of given folder type
      *
@@ -381,7 +381,7 @@
         									 const TFSMailMsgId& aFolderId,
         									 const TFSMailDetails aDetails,
         									 const RArray<TFSMailSortCriteria>& aSorting ) = 0;
-	
+
     /**
      * returns email message object related to given message id
      *
@@ -421,7 +421,7 @@
 	 virtual void DeleteMessagesByUidL( const TFSMailMsgId& aMailBoxId,
 	 									const TFSMailMsgId& aFolderId,
 	 									const RArray<TFSMailMsgId>& aMessages ) = 0;
-	 
+
     /**
      * creates new message template into drafts folder
      *
@@ -429,7 +429,7 @@
      * @return message object to be modified by user (ownership is transferred to user)
      */
 	 virtual CFSMailMessage* CreateMessageToSendL( const TFSMailMsgId& aMailBoxId ) = 0;
-	 
+
     /**
      * creates new message template to drafts folder to be forwarded
      *
@@ -439,7 +439,7 @@
      */
 	 virtual CFSMailMessage* CreateForwardMessageL( const TFSMailMsgId& aMailBoxId,
 	 												const TFSMailMsgId& aOriginalMessageId ) = 0;
-	 
+
     /**
      * creates new reply message template to drafts folder
      * @param aMailBoxId defines mailbox where message is created
@@ -450,7 +450,7 @@
 	 virtual CFSMailMessage* CreateReplyMessageL( const TFSMailMsgId& aMailBoxId,
 	 											  const TFSMailMsgId& aOriginalMessageId,
 	 											  const TBool aReplyToAll ) = 0;
-	 
+
     /**
      * stores message data to message store after modifications (commit)
      *
@@ -486,7 +486,7 @@
      							 	TFSMailDetails aDetails,
      							 	MFSMailRequestObserver& aObserver,
      							 	TInt aRequestId) = 0;
-     							 	
+
     /**
      * DEPRECATED
      * Fetches message part contents from server asynchronously.
@@ -514,7 +514,7 @@
         								MFSMailRequestObserver& aOperationObserver,
 										const TInt aRequestId,
         								const TUint aPreferredByteCount) = 0;
-        								
+
 
     /* synchronous message accessor
 	 *
@@ -538,7 +538,7 @@
      							const RArray<TFSMailMsgId>& aMessageIds,
      							RPointerArray<CFSMailMessage>& aMessageList,
      							const TFSMailDetails aDetails ) = 0;
-     							
+
     /**
      * Returns child part objects for given message part. Ownership of objects
      * is transferred to caller.
@@ -558,14 +558,14 @@
     /**
      * Creates and adds a new child part to this part.
      * If aInsertBefore is NULL id then new part is added as last.
-     * 
+     *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
      * @param aParentPartId parent of the new part
      * @param aInsertBefore id of existing part that new part should precede.
      * If NULL id then new part is added as last.
-     */        
+     */
      virtual CFSMailMessagePart* NewChildPartL( const TFSMailMsgId& aMailBoxId,
 				     							const TFSMailMsgId& aParentFolderId,
 												const TFSMailMsgId& aMessageId,
@@ -575,7 +575,7 @@
 
     /**
      * Copies given message as new child part to this part.
-     * 
+     *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
@@ -583,7 +583,7 @@
      * @param aInsertBefore id of existing part that new part should precede.
      * If NULL id then new part is added as last.
      * @param aMessage specifies the message that is copied
-     */        
+     */
      virtual CFSMailMessagePart* CopyMessageAsChildPartL(const TFSMailMsgId& aMailBoxId,
 						     							 const TFSMailMsgId& aParentFolderId,
 														 const TFSMailMsgId& aMessageId,
@@ -593,13 +593,13 @@
 
     /**
      * Removes child part (and its children, if any) from this part
-     * 
+     *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
      * @param aParentPartId parent of the part
      * @param aPartId part to remove
-     */        
+     */
      virtual void RemoveChildPartL(	const TFSMailMsgId& aMailBoxId,
 	     							const TFSMailMsgId& aParentFolderId,
 								 	const TFSMailMsgId& aMessageId,
@@ -641,7 +641,7 @@
 
     /**
      * copies message part to given location
-     * 
+     *
      *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
@@ -658,14 +658,14 @@
 
     /**
      * gets message part content to given buffer
-     * 
+     *
      *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
      * @param aMessagePartId gives the id of the message part
-     * @param aBuffer 
-     * @param aStartOffset 
+     * @param aBuffer
+     * @param aStartOffset
      */
 	 virtual void GetContentToBufferL(	const TFSMailMsgId& aMailBoxId,
 	 	     							const TFSMailMsgId& aParentFolderId,
@@ -673,10 +673,10 @@
 	 							 		const TFSMailMsgId& aMessagePartId,
 	 							 		TDes& aBuffer,
 	 							 		const TUint aStartOffset) = 0;
-	 							 
+
     /**
      * stores message part content
-     * 
+     *
      *
      * @param aBuffer message part content
      * @param aMailBoxId defines mailbox where message is located
@@ -688,8 +688,8 @@
 	 						  	const TFSMailMsgId& aMailBoxId,
      							const TFSMailMsgId& aParentFolderId,
 								const TFSMailMsgId& aMessageId,
-	 							const TFSMailMsgId& aMessagePartId) = 0; 
-	 
+	 							const TFSMailMsgId& aMessagePartId) = 0;
+
     /**
      * Removes fetched contents of these parts.
      *
@@ -697,15 +697,15 @@
      * @param aParentFolderId defines parent folder where message is located
      * @param aMessageId gives the id of the message that message part belongs to
      * @param aPartIds Array of message part ids.
-     */  
+     */
      virtual void RemovePartContentL( 	const TFSMailMsgId& aMailBoxId,
      	     							const TFSMailMsgId& aParentFolderId,
 									  	const TFSMailMsgId& aMessageId,
      								  	const RArray<TFSMailMsgId>& aPartIds) = 0;
-     							
+
     /**
      * Sets contents from given file. Possible old contents are replaced.
-     * 
+     *
      *
      * @param aMailBoxId defines mailbox where message is located
      * @param aParentFolderId defines parent folder where message is located
@@ -732,18 +732,18 @@
          							 CFSMailMessagePart& aMessagePart) = 0;
 
     /**
-     * unregisters plugin request observer to cancel pending events  
+     * unregisters plugin request observer to cancel pending events
      *
      * @param aRequestId request id of the pending asynchronous request
      */
 	 virtual void UnregisterRequestObserver(TInt aRequestId) = 0;
 
-    // MESSAGE SENDING 
+    // MESSAGE SENDING
     /**
      * DEPRECATED
      *
      * starts message sending done by plugin
-     * cancellation is deleting the message from outbox 
+     * cancellation is deleting the message from outbox
      *
      * @param aMessageId defines message id to be sent
      */
@@ -751,7 +751,7 @@
 
     /**
      * starts message sending done by plugin
-     * cancellation is deleting the message from outbox 
+     * cancellation is deleting the message from outbox
      *
      * @param aMessage message to be sent
      */
@@ -770,10 +770,10 @@
      * @param aRequestId identifies request if parallel requests exists
 	 */
      virtual void CancelL( const TInt aRequestId ) = 0;
-     
+
 	// Search API
  	// OPEN: IDS plugin nippets?
-	
+
     /**
      * Asyncronous call for starting search for given string. Only one search can be
      * performed at a time.
@@ -782,12 +782,12 @@
      * This function will search for message's containing the given search string.
      * The search will be performed on the all message fields: To, Cc, Bcc, subject, body.
      * The search client will be notified of each found message,
-     * and upon completion of the search.  Only one search can be performed at a time.  
-     *  
+     * and upon completion of the search.  Only one search can be performed at a time.
+     *
      * To change the sort order in the search result, use the same search string in the
      * but change the aSortCriteria parameter.  The store "caches" the search
      * results generated by the same search string.
-     *    
+     *
      * The function will leave with KErrInUse if a search is already in progress.
 	 *
      * /note Only works if the store is in an authenticated state,
@@ -799,32 +799,32 @@
 	 * @param aSortCriteria sort criteria for the results
      * @param aSearchObserver client observer that will be notified about search status.
      *
-     */    
+     */
 	virtual void SearchL( const TFSMailMsgId& aMailBoxId,
 						  const RArray<TFSMailMsgId>& aFolderIds,
 						  const RPointerArray<TDesC>& aSearchStrings,
 						  const TFSMailSortCriteria& aSortCriteria,
 					      MFSMailBoxSearchObserver& aSearchObserver ) = 0;
-	
+
 
     /**
      * Cancels current search. Does nothing if there is not any search.
      * The search client will not be called back after this function is called.
 	 *
-     * \note CancelSearch() method does NOT clear the search result cached in the store. 
-     *       A different sort order can be used for the same search string, and the 
+     * \note CancelSearch() method does NOT clear the search result cached in the store.
+     *       A different sort order can be used for the same search string, and the
      *       cache will be utilized.  Only by using a different search string can the
      *       cache be cleaned.
 	 *
      * @paran aMailBoxId mailbox where the search should be cancelled
 	 *
-     */    
+     */
 	virtual void CancelSearch( const TFSMailMsgId& aMailBoxId ) = 0;
 
     /** Inform the store to clean up its cache for search results.
-     *        
+     *
      *  This method cancels the the ongoing search (if exists), and then clean ups store's cache.
-     * 
+     *
      *  This function should be called when search results are no longer in display.
 	 *
      * @paran aMailBoxId mailbox where the search cache should be cleared
@@ -871,7 +871,7 @@
      *
      * @param aMailboxId id of target mailbox
      */
-    virtual const TSSMailSyncState CurrentSyncState(const TFSMailMsgId& aMailboxId) = 0;
+    virtual TSSMailSyncState CurrentSyncState(const TFSMailMsgId& aMailboxId) = 0;
 
     /**
      * Sets the mailbox name for this mailbox.
@@ -880,7 +880,7 @@
      * @param aMailboxName new name for the mailbox
      */
     virtual void SetMailboxName(const TFSMailMsgId& aMailboxId, const TDesC& aMailboxName );
-    
+
   	};
 
 
--- a/emailservices/emailframework/src/CFSFWImplementation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSFWImplementation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,7 +15,10 @@
 *
 */
 
+//<qmail>
 #include <nmcommonheaders.h>
+//</qmail>
+
 #include "emailtrace.h"
 #include "CFSFWImplementation.h"
 //<cmail>
--- a/emailservices/emailframework/src/CFSMailBrand.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailBrand.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,19 +15,29 @@
 *
 */
 
+//<qmail>
+#include <nmcommonheaders.h>
+//</qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include <barsread.h>
+//<qmail> Commented out in Qmail
+//#include <AknIconUtils.h>
+//</qmail>
 #include <gulicon.h>
 #include <centralrepository.h>
 //<cmail>
+//<qmail> Commented out in Qmail
 //#include "freestyleemailcenrepkeys.h"
+//</qmail>
 //</cmail>
 
 #include "CFSMailBrand.h"
 
 const TInt KElementArrayGranularity = 5;
+//<qmail> Commented out in Qmail
+//const TInt KMaxStringLenFromCenrep = 256;
+//</qmail>
 const TInt KMaxDesLen = 256;
 _LIT(KSpace, " ");
 // -----------------------------------------------------------------------------
@@ -66,9 +76,9 @@
 // -----------------------------------------------------------------------------
 void CFSMailBrand::ConstructFromCenrepL( )
     {
-    /*
     FUNC_LOG;
     
+	/*
     TBuf<KMaxStringLenFromCenrep> tBuf; // Temporary buffer
     HBufC*    mailboxName;
 
@@ -126,7 +136,7 @@
         CleanupStack::PopAndDestroy( mailboxName );
         CleanupStack::PopAndDestroy( repository );
         }
-        */
+		*/
    }
 
 // -----------------------------------------------------------------------------
@@ -304,9 +314,15 @@
 		 	TParse parse;
 		    User::LeaveIfError( parse.Set( *iIconFilePath, &dllFileName, NULL) );
 		    TFileName iconFileName( parse.FullName() );
-                
+             
+//<qmail>
             // Get icon and mask with above info
-		    
+            /*AknIconUtils::CreateIconLC( icon,
+                                        mask,
+                                        iconFileName,
+                                        element.iIconId,
+                                        element.iMaskId );*/
+//</qmail>
             CGulIcon* gulIcon = CGulIcon::NewL( icon, mask );
 
             CleanupStack::Pop( 2 ); // icon, mask
--- a/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,12 +15,22 @@
 *
 */
 
+//<qmail>
+#include <nmcommonheaders.h>
+//</qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include <FSMAILBRANDMANAGER.rsg>
 #include <barsread.h>
 #include <bautils.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h> // CleanupResetAndDestroy
+// <gmail_brand_issue>
+#include <etelmm.h>
+#include <mmtsy_names.h>
+#include <startupdomainpskeys.h>
+#include <tzlocalizer.h> // CTzLocalizer
+#include <centralrepository.h>
+// </gmail_brand_issue>
 //<cmail>
 #include "CFSMailClient.h"
 //</cmail>
@@ -32,6 +42,37 @@
 const TInt KBrandArrayGranularity = 5;
 _LIT( KResourceFilePath,"\\resource\\fsmailbrandmanager.rsc" );
 
+// The following are needed to convert "Gmail" brand name to "Google Mail"
+// in certain countries.
+// <gmail_brand_issue>
+
+_LIT( KBrandNameGmail, "Gmail" );
+_LIT( KBrandNameGoogleMail, "Google Mail" );
+
+_LIT( KMCCGermany, "262" );
+_LIT( KMCCUK1, "234" );
+_LIT( KMCCUK2, "235" );
+
+const TUint8 KGermanyTzId = 36;
+const TUint8 KUKTzId = 104;
+
+const TInt KMCCValueMaxLength = 3;
+
+#ifdef __WINS__
+LOCAL_C void RetrieveNextToken( TDes8& aContent, TDes& aToken )	
+	{
+	_LIT8( KComma, "," );
+	TInt pos = aContent.Find( KComma );
+	if ( pos != KErrNotFound ) 
+		{
+		aToken.Copy( aContent.MidTPtr( 0, pos ) );
+		aContent.Copy(
+		    aContent.RightTPtr( aContent.Length() - pos - 1 ) );
+		}
+	}
+#endif // __WINS__
+// </gmail_brand_issue>
+
 // -----------------------------------------------------------------------------
 // CFSMailBrandManagerImpl::CFSMailBrandManagerImpl
 // -----------------------------------------------------------------------------
@@ -133,42 +174,43 @@
     
     // list all mailboxes
     RPointerArray<CFSMailBox> mailBoxes;
-    TInt rcode = iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
-    if( rcode == KErrNone )
+    CleanupResetAndDestroyPushL( mailBoxes );
+    iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
+    // Check is there need to change the name of the mailbox
+    TPtrC name = GetTextL( EFSMailboxName, aMailBoxId);
+    // <gmail_brand_issue>
+    VerifyMailAccountName( name );
+    // </gmail_brand_issue>
+    if( name.Length() )
         {
-        // Check is there need to change the name of the mailbox
-        TPtrC name = GetTextL( EFSMailboxName, aMailBoxId);
-        if( name.Length() )
+        // check duplicates
+        TInt orderNumber(2);
+        TBool duplicate(ETrue);
+        HBufC* newName = HBufC::NewL(name.Length()+6);
+        TPtrC brandedName = name;
+        while(duplicate != EFalse)
             {
-            // check duplicates
-            TInt orderNumber(2);
-            TBool duplicate(ETrue);
-            HBufC* newName = HBufC::NewL(name.Length()+6);
-            TPtrC brandedName = name;
-            while(duplicate != EFalse)
+            duplicate = EFalse;
+            for(TInt i = 0; i < mailBoxes.Count( );i++)
                 {
-                duplicate = EFalse;
-                for(TInt i = 0; i < mailBoxes.Count( );i++)
+                if(brandedName == mailBoxes[i]->GetName() && 
+                   aMailBoxId != mailBoxes[i]->GetId( ))
                     {
-                    if(brandedName == mailBoxes[i]->GetName() && 
-                       aMailBoxId != mailBoxes[i]->GetId( ))
-                        {
-                        duplicate = ETrue;
-                        newName->Des().Copy(name);
-                        newName->Des().Append(' ');
-                        newName->Des().Append('(');
-                        newName->Des().AppendNum(orderNumber++);
-                        newName->Des().Append(')');
-                        brandedName.Set(newName->Des());
-                        break;
-                        }
+                    duplicate = ETrue;
+                    newName->Des().Copy(name);
+                    newName->Des().Append(' ');
+                    newName->Des().Append('(');
+                    newName->Des().AppendNum(orderNumber++);
+                    newName->Des().Append(')');
+                    brandedName.Set(newName->Des());
+                    break;
                     }
                 }
-            iMailClient.SetMailboxName(aMailBoxId,brandedName);
-            delete newName;
             }
+        iMailClient.SetMailboxName(aMailBoxId,brandedName);
+        delete newName;
         }
-       mailBoxes.ResetAndDestroy();
+    CleanupStack::PopAndDestroy( &mailBoxes );
     }
 
 // -----------------------------------------------------------------------------
@@ -202,6 +244,22 @@
 	}
 
 // -----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetGraphicL
+// -----------------------------------------------------------------------------
+CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
+    TFSBrandElement aElement, 
+    const TDesC& aBrandId )
+    {
+    FUNC_LOG;
+    CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
+    if ( brand == NULL )
+        {
+        return NULL;    
+        }    
+    return brand->GetGraphicL( aElement );
+    }
+    
+// -----------------------------------------------------------------------------
 // CFSMailBrandManagerImpl::GetGraphicIdsL
 // -----------------------------------------------------------------------------
 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
@@ -233,6 +291,24 @@
     }
 
 // -----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetGraphicIdsL
+// -----------------------------------------------------------------------------
+TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
+    TFSBrandElement aElement, 
+    const TDesC& aBrandId,
+    TDes& aIconIds  )
+    {
+    FUNC_LOG;
+
+    CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
+    if ( brand == NULL )
+        {
+        return KErrNotFound;
+        }
+    return brand->GetGraphicIdsL( aElement, aIconIds );
+    }
+
+// -----------------------------------------------------------------------------
 // CFSMailBrandManagerImpl::GetTextL
 // -----------------------------------------------------------------------------
 TPtrC CFSMailBrandManagerImpl::GetTextL(
@@ -336,11 +412,14 @@
 CFSMailBrand* CFSMailBrandManagerImpl::FindMatchingBrandL( const TDesC& aBrandId )
     {
     FUNC_LOG;
-    TInt brandCount( iBrands->Count() );
-    for ( TInt i( 0 ); i < brandCount; i++ )
+    if( aBrandId.Length() )
         {
-        if ( (*iBrands)[ i ]->IsMatching( aBrandId ) )
-            return (*iBrands)[ i ];
+        TInt brandCount( iBrands->Count() );
+        for ( TInt i( 0 ); i < brandCount; i++ )
+            {
+            if ( (*iBrands)[ i ]->IsMatching( aBrandId ) )
+                return (*iBrands)[ i ];
+            }
         }
     return NULL;
     }
@@ -350,18 +429,13 @@
 // -----------------------------------------------------------------------------
 CFSMailBox* CFSMailBrandManagerImpl::MailboxMatchingBrandIdL(
     const TDesC& aBrandId ) const
-    {
-    FUNC_LOG;
+    {    
     RPointerArray<CFSMailBox> mailboxes;
-    TInt outcome( KErrNone );
-    
-    outcome = iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
-    if ( outcome != KErrNone )
-        {
-        mailboxes.ResetAndDestroy();
-        User::Leave( outcome );
-        }
-    
+
+    CleanupResetAndDestroyPushL( mailboxes );
+
+    iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
+
     TInt mailboxCount( mailboxes.Count() );
     TInt mailboxIndexer( 0 );
     while ( mailboxIndexer < mailboxCount )
@@ -386,8 +460,201 @@
         ++mailboxIndexer;
         }
         
-    mailboxes.ResetAndDestroy();
+    CleanupStack::PopAndDestroy( &mailboxes );
     User::Leave( KErrNotFound );
     return NULL; // To prevent warning
     }
 
+// <gmail_brand_issue>
+// -----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetMCCValueL
+// -----------------------------------------------------------------------------
+void CFSMailBrandManagerImpl::GetMCCValueL( TDes& aMcc ) const
+    {
+    aMcc.Zero();
+    
+    TInt err = KErrNone;
+
+#ifndef __WINS__
+
+    TBool isSimPresent = EFalse;
+    
+    TInt simStatus( 0 );
+
+	err = RProperty::Get( KPSUidStartup, KPSSimStatus, simStatus );
+
+	if ( err == KErrNone &&
+	        simStatus != ESimNotPresent &&
+	        simStatus != ESimNotSupported )
+	    {
+	    isSimPresent = ETrue;
+	    }
+
+    if ( isSimPresent )
+        {
+        // We cannot let the method leave here
+        TRAP( err, GetMCCValueFromSIML( aMcc ) );
+
+        // If reading from SIM fails one time try again after 0.5 secs
+        if ( err != KErrNone )
+            {
+            const TInt KHalfSecond = 500000;
+
+            User::After( KHalfSecond );
+            
+            err = KErrNone;
+
+            // We cannot let the method leave here
+            TRAP( err, GetMCCValueFromSIML( aMcc ) );
+            }
+        }
+
+#else // __WINS__
+
+    _LIT( KSIMInfo, "C:\\data\\Settings\\SIMInfo.txt" );
+
+    RFs fs;
+
+    User::LeaveIfError( fs.Connect() );
+
+    RFile simFile;
+
+    err = simFile.Open( fs, KSIMInfo(), EFileShareReadersOnly |
+                                        EFileStream |
+                                        EFileRead );
+    if ( err == KErrNone )
+        {
+        TBuf8<100> content;
+        TBuf<100> dummy;
+
+        simFile.Read( content );
+
+    	simFile.Close();
+
+    	fs.Close();
+
+        if ( content.Length() > 0 )
+        	{
+            RetrieveNextToken( content, dummy );
+            RetrieveNextToken( content, dummy );
+            RetrieveNextToken( content, dummy );
+            RetrieveNextToken( content, dummy );
+
+            RMobilePhone::TMobilePhoneSubscriberId subscriberId;
+
+            RetrieveNextToken( content, subscriberId );
+
+            if ( subscriberId.Length() >= KMCCValueMaxLength )
+                {
+                aMcc = subscriberId.Left( KMCCValueMaxLength );
+                }
+        	}
+        }
+
+#endif // __WINS__
+
+    }
+
+// ----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetMCCValueFromSIML
+// ----------------------------------------------------------------------------
+// 
+void CFSMailBrandManagerImpl::GetMCCValueFromSIML( TDes& aMcc ) const
+    {
+    RTelServer telServer;
+
+    CleanupClosePushL( telServer );
+
+    User::LeaveIfError( telServer.Connect() );
+
+    User::LeaveIfError( telServer.LoadPhoneModule( KMmTsyModuleName ) );
+    
+    RMobilePhone mobilePhone;
+
+    CleanupClosePushL( mobilePhone );
+
+    User::LeaveIfError( mobilePhone.Open( telServer, KMmTsyPhoneName ) );
+    
+    TRequestStatus status;
+
+    RMobilePhone::TMobilePhoneSubscriberId subscriberId;       
+
+    mobilePhone.GetSubscriberId( status, subscriberId );
+    
+    User::WaitForRequest( status );
+
+    User::LeaveIfError( status.Int() );
+    
+    CleanupStack::PopAndDestroy( &mobilePhone );
+
+    CleanupStack::PopAndDestroy( &telServer );
+
+    if ( subscriberId.Length() >= KMCCValueMaxLength )
+        {
+        aMcc = subscriberId.Left( KMCCValueMaxLength );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetCurrentCountryL
+// ----------------------------------------------------------------------------
+// 
+TUint8 CFSMailBrandManagerImpl::GetCurrentCountryL() const
+    {
+    CTzLocalizer* localizer = CTzLocalizer::NewLC();
+
+    CTzLocalizedCity* city = localizer->GetFrequentlyUsedZoneCityL(
+        CTzLocalizedTimeZone::ECurrentZone );
+        
+    CleanupStack::PushL( city );
+
+    CTzLocalizedCityGroup* cityGroup = 
+        localizer->GetCityGroupL( city->GroupId() );
+
+    TUint8 countryId = cityGroup->Id();
+    
+    delete cityGroup;
+    cityGroup = NULL;
+    
+    CleanupStack::PopAndDestroy( 2, localizer );
+    
+    return countryId;
+    }
+
+// -----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::VerifyMailAccountName
+// -----------------------------------------------------------------------------
+void CFSMailBrandManagerImpl::VerifyMailAccountName(
+        TPtrC& aBrandedName ) const
+    {
+    // Due to legal reasons we don't show brand name "Gmail" in Germany and UK
+    if ( !aBrandedName.CompareF( KBrandNameGmail ) )
+        {
+        // First check timezone id
+        TUint8 timeZone = 0;
+        
+        TRAPD( err, timeZone = GetCurrentCountryL() );
+        
+        if ( err == KErrNone && ( timeZone == KGermanyTzId ||
+                                  timeZone == KUKTzId ) )
+            {
+            aBrandedName.Set( KBrandNameGoogleMail );
+            }
+        // Then if necessary check MCC
+        else
+            {
+            TBuf<KMCCValueMaxLength> mcc;
+
+            TRAPD( err2, GetMCCValueL( mcc ) );
+            
+            if ( err2 == KErrNone && ( mcc == KMCCGermany ||
+                                       mcc == KMCCUK1 ||
+                                       mcc == KMCCUK2 ) )
+                {
+                aBrandedName.Set( KBrandNameGoogleMail );
+                }
+            }
+
+        }
+    }
+// </gmail_brand_issue>
--- a/emailservices/emailframework/src/CFSMailClient.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailClient.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,8 +15,10 @@
 *
 */
 
+//<qmail>
+#include <nmcommonheaders.h>
+//</qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailClient.h"
 #include "CFSFWImplementation.h"
@@ -574,7 +576,7 @@
 // -----------------------------------------------------------------------------
 // CFSMailClient::IncReferenceCount
 // -----------------------------------------------------------------------------
-TInt CFSMailClient::IncReferenceCount()
+EXPORT_C TInt CFSMailClient::IncReferenceCount()
 {
     FUNC_LOG;
 	return ++iReferenceCount;
@@ -589,3 +591,19 @@
 	return --iReferenceCount;
 }
 
+// -----------------------------------------------------------------------------
+// CFSMailClient::ReleaseExtension
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailClient::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    CExtendableEmail::ReleaseExtension( aExtension );
+    }
+
+// -----------------------------------------------------------------------------
+// CFSMailClient::ExtensionL
+// -----------------------------------------------------------------------------
+EXPORT_C CEmailExtension* CFSMailClient::ExtensionL( const TUid& aInterfaceUid )
+    {
+    return CExtendableEmail::ExtensionL( aInterfaceUid );
+    }
+    
--- a/emailservices/emailframework/src/CFSMailEventObserver.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailEventObserver.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,8 +15,10 @@
 *
 */
 
+//<qmail>
+#include <nmcommonheaders.h>
+//</qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSClientRequestObserver.h"
 
--- a/emailservices/emailframework/src/CFSMailPluginManager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailPluginManager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,8 +15,9 @@
 *
 */
 
-
+//<qmail>
 #include <nmcommonheaders.h>
+//</qmail>
 #include "emailtrace.h"
 #include "CFSMailPluginManager.h"
 #include "CFSMailRequestObserver.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailservermonitor/inc/emailshutdownconst.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Constant definitions for Email shutdown
+*
+*/
+
+#ifndef EMAILSHUTDOWNCONST_H
+#define EMAILSHUTDOWNCONST_H
+
+#include <e32cmn.h>                 // TUid
+#include "emailshutdownconst.hrh"   // KEmailShutdownUidAsTInt
+
+
+// Publish & Subscribe category for Email shutdown events
+const TUid KEmailShutdownPsCategory = { KEmailShutdownUidAsTInt };
+
+// Size of one item in platform API UID list (in Publish & Subscribe
+// key EEmailPsKeyPlatformApiAppsToClose)
+const TInt KEmailPlatformApiUidItemSize = sizeof( TInt32 );
+
+// Publish & Subscribe keys used in shutdown process
+enum TEmailShutdownPsKeys
+    {
+    // Publish & Subscribe key used in communication between Shutter
+    // application and installation initiators
+    EEmailPsKeyInstallationStatus = 1,
+    
+    // Publish & Subscribe keys for Email shutdown events
+    EEmailPsKeyShutdownClients,
+    EEmailPsKeyShutdownPlugins,
+    EEmailPsKeyShutdownMsgStore,
+    
+    // Publish & Subscribe keys to register 3rd party applications to be closed
+    EEmailPsKeyPlatformApiAppsToCloseLength,
+    EEmailPsKeyPlatformApiAppsToClose
+    };
+
+// Publish & Subscribe values to be used with key EEmailPsKeyInstallationStatus
+enum TEmailShutdownPsInstallationValues
+    {
+    // Value to be set by installation initiators when installation is starting
+    EEmailPsValueInstallationStarting = 1,
+    // Value to be set by Shutter when all services are shutdown
+    EEmailPsValueInstallationOkToStart,
+    // Value to be set by installation initiators when installation is started
+    // after EEmailPsValueInstallationOkToStart event received
+    EEmailPsValueInstallationStarted,
+    // Value to be set by Starter when installation has finished
+    EEmailPsValueInstallationFinished
+    };
+
+// Executable name of the process that implements the shutdown functionality
+_LIT( KEmailShutdownHandlerExe, "emailservermonitor.exe" );
+
+// Command line arguments that can be given to shutdown handler process when
+// starting it
+
+// KEmailShutdownHandlerArgOnlyShutter should be used when starting the process
+// just before starting installation (if it wasn't already running)
+_LIT( KEmailShutdownHandlerArgOnlyShutter, "OnlyShutter" );
+
+// KEmailShutdownHandlerArgRestart should be given when restarting
+// the process after installation
+_LIT( KEmailShutdownHandlerArgRestart, "RestartAfterInstallation" );
+
+
+#endif // EMAILSHUTDOWNCONST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailservermonitor/inc/emailshutdownconst.hrh	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Constant definitions for Cmail shutdown
+*
+*/
+
+#ifndef EMAILSHUTDOWNCONST_HRH
+#define EMAILSHUTDOWNCONST_HRH
+
+
+// Publish & Subscribe category for Cmail shutdown events, needs to be the
+// same as UID of the process that implements the shutdown functionality
+#define KEmailShutdownUidAsTInt 0x20025FAD
+
+// Executable name of the process that implements the shutdown functionality
+#define KEmailShutdownProcessExeName emailservermonitor.exe
+
+
+#endif // EMAILSHUTDOWNCONST_HRH
--- a/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -5,207 +5,219 @@
 	?FindFetchRequestL@CBasePlugin@@IAEHIIIIAAUTOngoingFetchInfo@1@@Z @ 4 NONAME ; int CBasePlugin::FindFetchRequestL(unsigned int, unsigned int, unsigned int, unsigned int, struct CBasePlugin::TOngoingFetchInfo &)
 	?WizardDataAvailableL@CBasePlugin@@UAEHXZ @ 5 NONAME ; int CBasePlugin::WizardDataAvailableL(void)
 	?ReportRequestStatusL@CBasePlugin@@MAEXIIIIH@Z @ 6 NONAME ; void CBasePlugin::ReportRequestStatusL(unsigned int, unsigned int, unsigned int, unsigned int, int)
-	?DoCancel@CDelayedOp@@EAEXXZ @ 7 NONAME ; void CDelayedOp::DoCancel(void)
-	??1CBaseMrRecurrenceRule@@UAE@XZ @ 8 NONAME ; CBaseMrRecurrenceRule::~CBaseMrRecurrenceRule(void)
-	?GoOnlineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 9 NONAME ; void CBasePlugin::GoOnlineL(class TFSMailMsgId const &)
-	??1CDelayedOp@@UAE@XZ @ 10 NONAME ; CDelayedOp::~CDelayedOp(void)
-	?SetStartTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 11 NONAME ; void CBaseMrInfoObject::SetStartTimeInUtcL(class TTime)
-	?NewL@CBaseMrAttendee@@SAPAV1@ABVMMROrganizer@@@Z @ 12 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMROrganizer const &)
-	?CancelSearch@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 13 NONAME ; void CBasePlugin::CancelSearch(class TFSMailMsgId const &)
-	?RecurrentInterval@CBaseMrRecurrenceRule@@UBEHXZ @ 14 NONAME ; int CBaseMrRecurrenceRule::RecurrentInterval(void) const
-	?AddRecurrenceExceptionL@CBaseMrInfoObject@@UAEXPAVMMRInfoObject@@@Z @ 15 NONAME ; void CBaseMrInfoObject::AddRecurrenceExceptionL(class MMRInfoObject *)
-	?SetRecurrentDaysofMonthL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@@Z @ 16 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentDaysofMonthL(class RArray<struct MRRecurrenceRule::TRecurrentDaysofMonth> &)
-	?SetCredentialsL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@1@Z @ 17 NONAME ; void CBasePlugin::SetCredentialsL(class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &)
-	?SetAlarmInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 18 NONAME ; void CBaseMrInfoObject::SetAlarmInUtcL(class TTime)
-	?NewL@CBaseMrAttendee@@SAPAV1@ABVMMRAttendee@@@Z @ 19 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMRAttendee const &)
-	?TranslateMsgStoreDayOfWeek@CBasePlugin@@IAEXKAAVTDayOfWeekFtor@@@Z @ 20 NONAME ; void CBasePlugin::TranslateMsgStoreDayOfWeek(unsigned long, class TDayOfWeekFtor &)
-	?GetStandardFolderIdL@CBasePlugin@@UAE?AVTFSMailMsgId@@ABV2@W4TFSFolderType@@@Z @ 21 NONAME ; class TFSMailMsgId CBasePlugin::GetStandardFolderIdL(class TFSMailMsgId const &, enum TFSFolderType)
-	?DeleteFetchRequest@CBasePlugin@@IAEXAAUTOngoingFetchInfo@1@@Z @ 22 NONAME ; void CBasePlugin::DeleteFetchRequest(struct CBasePlugin::TOngoingFetchInfo &)
-	?CommonName@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 23 NONAME ; class TDesC16 const & CBaseMrAttendee::CommonName(void) const
-	?RecurrentDaysofMonth@CBaseMrRecurrenceRule@@UBEABV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@XZ @ 24 NONAME ; class RArray<struct MRRecurrenceRule::TRecurrentDaysofMonth> const & CBaseMrRecurrenceRule::RecurrentDaysofMonth(void) const
-	?MRSequenceNumberL@CBaseMrInfoObject@@UBEHXZ @ 25 NONAME ; int CBaseMrInfoObject::MRSequenceNumberL(void) const
-	?MRRecurrenceId@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 26 NONAME ; class TTime CBaseMrInfoObject::MRRecurrenceId(void) const
-	?SubjectL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 27 NONAME ; class TDesC16 const & CBaseMrInfoObject::SubjectL(void) const
-	?GetMessageByUidL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 28 NONAME ; class CFSMailMessage * CBasePlugin::GetMessageByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails)
-	?InvalidateCacheIfNecessary@CBasePlugin@@IAEXIII@Z @ 29 NONAME ; void CBasePlugin::InvalidateCacheIfNecessary(unsigned int, unsigned int, unsigned int)
-	?TranslateEmailFwRecipientsL@CBasePlugin@@IAEXAAVCMsgStoreMessagePart@@ABVTDesC8@@AAV?$RPointerArray@VCFSMailAddress@@@@@Z @ 30 NONAME ; void CBasePlugin::TranslateEmailFwRecipientsL(class CMsgStoreMessagePart &, class TDesC8 const &, class RPointerArray<class CFSMailAddress> &)
-	?SetRecurrenceRuleL@CBaseMrInfoObject@@UAEXABVMRRecurrenceRule@@@Z @ 31 NONAME ; void CBaseMrInfoObject::SetRecurrenceRuleL(class MRRecurrenceRule const &)
-	?RemoveAllPropertiesL@CBasePlugin@@KAXAAVCMsgStorePropertyContainer@@ABVTDesC8@@@Z @ 32 NONAME ; void CBasePlugin::RemoveAllPropertiesL(class CMsgStorePropertyContainer &, class TDesC8 const &)
-	?DoCancelSearchL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 33 NONAME ; void CBasePlugin::DoCancelSearchL(class TFSMailMsgId const &)
-	?GetMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@AAV?$RPointerArray@VCFSMailMessage@@@@W4TFSMailDetails@@@Z @ 34 NONAME ; void CBasePlugin::GetMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RPointerArray<class CFSMailMessage> &, enum TFSMailDetails)
-	?GetPlugin@CDelayedOp@@IAEAAVCBasePlugin@@XZ @ 35 NONAME ; class CBasePlugin & CDelayedOp::GetPlugin(void)
-	?HandleRemovePartContentL@CBasePlugin@@MAEXAAVCMsgStoreMessage@@AAVCMsgStoreMessagePart@@@Z @ 36 NONAME ; void CBasePlugin::HandleRemovePartContentL(class CMsgStoreMessage &, class CMsgStoreMessagePart &)
-	?SetMRRecurrenceIdL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 37 NONAME ; void CBaseMrInfoObject::SetMRRecurrenceIdL(class TTime)
-	?CreateReplyMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@@Z @ 38 NONAME ; class CFSMailMessage * CBasePlugin::CreateReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &)
-	?UnsubscribeMailboxEventsL@CBasePlugin@@IAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 39 NONAME ; void CBasePlugin::UnsubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &)
-	?CreateForwardMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0ABVTDesC16@@@Z @ 40 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
-	?UnregisterRequestObserver@CBasePlugin@@UAEXH@Z @ 41 NONAME ; void CBasePlugin::UnregisterRequestObserver(int)
-	?DeleteFolderByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0@Z @ 42 NONAME ; void CBasePlugin::DeleteFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?NewL@CBaseMrInfoObject@@SAPAV1@AAVMMRInfoObject@@@Z @ 43 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(class MMRInfoObject &)
-	?GoOfflineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 44 NONAME ; void CBasePlugin::GoOfflineL(class TFSMailMsgId const &)
-	?ResponseRequested@CBaseMrAttendee@@UBEHXZ @ 45 NONAME ; int CBaseMrAttendee::ResponseRequested(void) const
-	?GetAccountForMsgBoxL@CBasePlugin@@IAEPAVCMsgStoreAccount@@ABVTFSMailMsgId@@@Z @ 46 NONAME ; class CMsgStoreAccount * CBasePlugin::GetAccountForMsgBoxL(class TFSMailMsgId const &)
-	?GetSignatureL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 47 NONAME ; class HBufC16 * CBasePlugin::GetSignatureL(class TFSMailMsgId)
-	?SearchL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@ABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 48 NONAME ; void CBasePlugin::SearchL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &)
-	?StoreMessageL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVCFSMailMessage@@@Z @ 49 NONAME ; void CBasePlugin::StoreMessageL(class TFSMailMsgId const &, class CFSMailMessage &)
-	?ModificationNotifyL@CBasePlugin@@IAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 50 NONAME ; void CBasePlugin::ModificationNotifyL(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int)
-	?SetResponseRequestedL@CBaseMrAttendee@@UAEXH@Z @ 51 NONAME ; void CBaseMrAttendee::SetResponseRequestedL(int)
-	?GetMailboxInfoL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 52 NONAME ; class CMailboxInfo & CBasePlugin::GetMailboxInfoL(unsigned int)
-	?SetCreationTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 53 NONAME ; void CBaseMrInfoObject::SetCreationTimeInUtcL(class TTime)
-	?FetchMessagePartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@HI@Z @ 54 NONAME ; void CBasePlugin::FetchMessagePartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class MFSMailRequestObserver &, int, unsigned int)
-	?AddAttendeeL@CBaseMrInfoObject@@UAEXPAVMMRAttendee@@@Z @ 55 NONAME ; void CBaseMrInfoObject::AddAttendeeL(class MMRAttendee *)
-	?EndTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 56 NONAME ; class TTime CBaseMrInfoObject::EndTimeInUtcL(void) const
-	?GetBodyPartL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@AAVCMsgStoreMessage@@ABVTDesC16@@@Z @ 57 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetBodyPartL(class CMsgStoreMessage &, class TDesC16 const &)
-	?SendMessageL@CBasePlugin@@QAEXAAVCMsgStoreMailBox@@AAVCMsgStoreMessage@@ABVTTime@@@Z @ 58 NONAME ; void CBasePlugin::SendMessageL(class CMsgStoreMailBox &, class CMsgStoreMessage &, class TTime const &)
-	??_ECDelayedOp@@UAE@I@Z @ 59 NONAME ; CDelayedOp::~CDelayedOp(unsigned int)
-	?SetAttendeeRoleL@CBaseMrAttendee@@UAEXW4TAttendeeRole@MMRAttendee@@@Z @ 60 NONAME ; void CBaseMrAttendee::SetAttendeeRoleL(enum MMRAttendee::TAttendeeRole)
-	?RefreshMailboxCacheL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 61 NONAME ; class CMailboxInfo & CBasePlugin::RefreshMailboxCacheL(unsigned int)
-	?SetRecurrenceStartTimeL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 62 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceStartTimeL(class TTime)
-	?RecurrentCount@CBaseMrRecurrenceRule@@UBEIXZ @ 63 NONAME ; unsigned int CBaseMrRecurrenceRule::RecurrentCount(void) const
-	?TranslateEmailFwDayOfWeek@CBasePlugin@@IAEXW4TMRRecurrentDay@MRRecurrenceRule@@AAK@Z @ 64 NONAME ; void CBasePlugin::TranslateEmailFwDayOfWeek(enum MRRecurrenceRule::TMRRecurrentDay, unsigned long &)
-	?CopyMessagePartFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 65 NONAME ; void CBasePlugin::CopyMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
-	?MRResponse@CBaseMrInfoObject@@UBE?AW4TResponse@MMRInfoObject@@XZ @ 66 NONAME ; enum MMRInfoObject::TResponse CBaseMrInfoObject::MRResponse(void) const
-	?GetCachedMsgL@CBasePlugin@@IAEPAVCMsgStoreMessage@@II@Z @ 67 NONAME ; class CMsgStoreMessage * CBasePlugin::GetCachedMsgL(unsigned int, unsigned int)
-	?SetMethod@CBaseMrInfoObject@@QAEXW4TMRMethod@MMRInfoObject@@@Z @ 68 NONAME ; void CBaseMrInfoObject::SetMethod(enum MMRInfoObject::TMRMethod)
-	??1CBasePlugin@@UAE@XZ @ 69 NONAME ; CBasePlugin::~CBasePlugin(void)
-	?SetSubjectL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 70 NONAME ; void CBaseMrInfoObject::SetSubjectL(class TDesC16 const &)
-	?StoreMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@H@Z @ 71 NONAME ; void CBasePlugin::StoreMessagesL(class TFSMailMsgId const &, class RPointerArray<class CFSMailMessage> &, class MFSMailRequestObserver &, int)
-	?MailboxHasCapabilityL@CBasePlugin@@UAEHW4TFSMailBoxCapabilities@@VTFSMailMsgId@@@Z @ 72 NONAME ; int CBasePlugin::MailboxHasCapabilityL(enum TFSMailBoxCapabilities, class TFSMailMsgId)
-	?GetMrusL@CBasePlugin@@UAEPAVMDesC16Array@@ABVTFSMailMsgId@@@Z @ 73 NONAME ; class MDesC16Array * CBasePlugin::GetMrusL(class TFSMailMsgId const &)
-	?StoreMessagePartsL@CBasePlugin@@UAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@AAVMFSMailRequestObserver@@H@Z @ 74 NONAME ; void CBasePlugin::StoreMessagePartsL(class RPointerArray<class CFSMailMessagePart> &, class MFSMailRequestObserver &, int)
-	?AccountEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 75 NONAME ; void CBasePlugin::AccountEventNotifyL(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int)
-	?SupportedFields@CBaseMrInfoObject@@UBEHAAV?$RArray@W4TESMRInfoField@MMRInfoObject@@@@@Z @ 76 NONAME ; int CBaseMrInfoObject::SupportedFields(class RArray<enum MMRInfoObject::TESMRInfoField> &) const
-	?StatusL@CBasePlugin@@UAE?AVTFSProgress@@H@Z @ 77 NONAME ; class TFSProgress CBasePlugin::StatusL(int)
-	?SetRecurrentMonthsL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@@Z @ 78 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthsL(class RArray<enum MRRecurrenceRule::TMRRecurrenceMonth> &)
-	?SetContentL@CBasePlugin@@UAEXABVTDesC16@@ABVTFSMailMsgId@@111@Z @ 79 NONAME ; void CBasePlugin::SetContentL(class TDesC16 const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?GetMailBoxAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 80 NONAME ; class HBufC16 * CBasePlugin::GetMailBoxAddressL(class TFSMailMsgId)
-	?TranslateEmailFwAttendeeL@CBasePlugin@@IAEXAAVMMROrganizer@@AAVRMsgStoreAddress@@@Z @ 81 NONAME ; void CBasePlugin::TranslateEmailFwAttendeeL(class MMROrganizer &, class RMsgStoreAddress &)
-	?GetMailBoxStatus@CBasePlugin@@UAE?AW4TFSMailBoxStatus@@ABVTFSMailMsgId@@@Z @ 82 NONAME ; enum TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(class TFSMailMsgId const &)
-	??1CBaseMrAttendee@@UAE@XZ @ 83 NONAME ; CBaseMrAttendee::~CBaseMrAttendee(void)
-	?BlockCopyMoveFromFoldersL@CBasePlugin@@MAEXVTFSMailMsgId@@W4TFSFolderType@@AAVCFSMailFolder@@@Z @ 84 NONAME ; void CBasePlugin::BlockCopyMoveFromFoldersL(class TFSMailMsgId, enum TFSFolderType, class CFSMailFolder &)
-	?RecurrentMonthDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@H@@XZ @ 85 NONAME ; class RArray<int> const & CBaseMrRecurrenceRule::RecurrentMonthDays(void) const
-	??1CBaseMrInfoProcessor@@UAE@XZ @ 86 NONAME ; CBaseMrInfoProcessor::~CBaseMrInfoProcessor(void)
-	?NewL@CBaseMrRecurrenceRule@@SAPAV1@ABVMRRecurrenceRule@@@Z @ 87 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(class MRRecurrenceRule const &)
-	?ChildPartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 88 NONAME ; void CBasePlugin::ChildPartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray<class CFSMailMessagePart> &)
-	?SetPartContentFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 89 NONAME ; void CBasePlugin::SetPartContentFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
-	?ResetBodyCache@CBasePlugin@@IAEXXZ @ 90 NONAME ; void CBasePlugin::ResetBodyCache(void)
-	?Type@CBaseMrRecurrenceRule@@UBE?AW4TMRRecurrenceType@MRRecurrenceRule@@XZ @ 91 NONAME ; enum MRRecurrenceRule::TMRRecurrenceType CBaseMrRecurrenceRule::Type(void) const
-	?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@0AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 92 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray<class CFSMailFolder> &)
-	?SetContext@CDelayedOp@@QAEXAAVCBasePlugin@@AAVMDelayedOpsManager@@@Z @ 93 NONAME ; void CDelayedOp::SetContext(class CBasePlugin &, class MDelayedOpsManager &)
-	??_ECBasePlugin@@UAE@I@Z @ 94 NONAME ; CBasePlugin::~CBasePlugin(unsigned int)
-	?ReplyToMeetingRequestL@CBaseMrInfoProcessor@@UAEXABVTFSMailMsgId@@0AAVMMRInfoObject@@AAW4TMRInfoResponseMode@MMRInfoProcessor@@ABVTDesC16@@@Z @ 95 NONAME ; void CBaseMrInfoProcessor::ReplyToMeetingRequestL(class TFSMailMsgId const &, class TFSMailMsgId const &, class MMRInfoObject &, enum MMRInfoProcessor::TMRInfoResponseMode &, class TDesC16 const &)
-	?GetFolderByUidL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0@Z @ 96 NONAME ; class CFSMailFolder * CBasePlugin::GetFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?RecurrenceRuleL@CBaseMrInfoObject@@UBEABVMRRecurrenceRule@@XZ @ 97 NONAME ; class MRRecurrenceRule const & CBaseMrInfoObject::RecurrenceRuleL(void) const
-	?AuthenticateL@CBasePlugin@@UAEXAAVMFSMailRequestObserver@@H@Z @ 98 NONAME ; void CBasePlugin::AuthenticateL(class MFSMailRequestObserver &, int)
-	?DeleteMessagesByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 99 NONAME ; void CBasePlugin::DeleteMessagesByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &)
-	?UnsubscribeMailboxEvents@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 100 NONAME ; void CBasePlugin::UnsubscribeMailboxEvents(class TFSMailMsgId const &, class MFSMailEventObserver &)
-	?SetEndTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 101 NONAME ; void CBaseMrInfoObject::SetEndTimeInUtcL(class TTime)
-	?SetRecurrenceTypeL@CBaseMrRecurrenceRule@@UAEXW4TMRRecurrenceType@MRRecurrenceRule@@@Z @ 102 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceTypeL(enum MRRecurrenceRule::TMRRecurrenceType)
-	?TranslateEmailFwMessageL@CBasePlugin@@MAEXAAVCFSMailMessagePart@@AAVCMsgStoreMessagePart@@H@Z @ 103 NONAME ; void CBasePlugin::TranslateEmailFwMessageL(class CFSMailMessagePart &, class CMsgStoreMessagePart &, int)
-	?GetPluginId@CBasePlugin@@MAEIXZ @ 104 NONAME ; unsigned int CBasePlugin::GetPluginId(void)
-	?CreateForwardReplyMessageL@CBasePlugin@@IAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@HH@Z @ 105 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &, int, int)
-	?SetCommonNameL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 106 NONAME ; void CBaseMrAttendee::SetCommonNameL(class TDesC16 const &)
-	?CreateMessageToSendL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@@Z @ 107 NONAME ; class CFSMailMessage * CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &)
-	?MessagePartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000@Z @ 108 NONAME ; class CFSMailMessagePart * CBasePlugin::MessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?ResetCache@CBasePlugin@@IAEXXZ @ 109 NONAME ; void CBasePlugin::ResetCache(void)
-	?MRMethodL@CBaseMrInfoObject@@UBE?AW4TMRMethod@MMRInfoObject@@XZ @ 110 NONAME ; enum MMRInfoObject::TMRMethod CBaseMrInfoObject::MRMethodL(void) const
-	?RunL@CDelayedOp@@EAEXXZ @ 111 NONAME ; void CDelayedOp::RunL(void)
-	?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000@Z @ 112 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?RecurrenceExceptionsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRInfoObject@@@@XZ @ 113 NONAME ; class RPointerArray<class MMRInfoObject> const & CBaseMrInfoObject::RecurrenceExceptionsL(void) const
-	?SetRecurrentMonthDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@H@@@Z @ 114 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthDaysL(class RArray<int> &)
-	?SetPriorityL@CBaseMrInfoObject@@UAEXI@Z @ 115 NONAME ; void CBaseMrInfoObject::SetPriorityL(unsigned int)
-	?AttendeesL@CBaseMrInfoObject@@UAEAAV?$RPointerArray@VMMRAttendee@@@@XZ @ 116 NONAME ; class RPointerArray<class MMRAttendee> & CBaseMrInfoObject::AttendeesL(void)
-	?NewL@CBasePlugin@@SAPAV1@XZ @ 117 NONAME ; class CBasePlugin * CBasePlugin::NewL(void)
-	?FetchEmailAddressL@CBasePlugin@@IAEPAVCFSMailAddress@@AAVCMsgStorePropertyContainer@@I@Z @ 118 NONAME ; class CFSMailAddress * CBasePlugin::FetchEmailAddressL(class CMsgStorePropertyContainer &, unsigned int)
-	?NewL@CBaseMrInfoProcessor@@SAPAV1@AAVCBasePlugin@@@Z @ 119 NONAME ; class CBaseMrInfoProcessor * CBaseMrInfoProcessor::NewL(class CBasePlugin &)
-	?CopyMessageAsChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVCFSMailMessage@@@Z @ 120 NONAME ; class CFSMailMessagePart * CBasePlugin::CopyMessageAsChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessage const &)
-	?GetCachedBodyChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 121 NONAME ; class RPointerArray<class CMsgStoreMessagePart> & CBasePlugin::GetCachedBodyChildrenL(void)
-	?NotifyGlobalEventL@CBasePlugin@@IAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 122 NONAME ; void CBasePlugin::NotifyGlobalEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *)
-	?StartTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 123 NONAME ; class TTime CBaseMrInfoObject::StartTimeInUtcL(void) const
-	?ListMailBoxesL@CBasePlugin@@UAEXAAV?$RArray@VTFSMailMsgId@@@@@Z @ 124 NONAME ; void CBasePlugin::ListMailBoxesL(class RArray<class TFSMailMsgId> &)
-	?SetRecurrenceUntilL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 125 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceUntilL(class TTime)
-	?GetBrandingIdL@CBasePlugin@@UAEAAVTDesC16@@ABVTFSMailMsgId@@@Z @ 126 NONAME ; class TDesC16 & CBasePlugin::GetBrandingIdL(class TFSMailMsgId const &)
-	?FetchMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@H@Z @ 127 NONAME ; void CBasePlugin::FetchMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, enum TFSMailDetails, class MFSMailRequestObserver &, int)
-	?RemovePartContentL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@@Z @ 128 NONAME ; void CBasePlugin::RemovePartContentL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &)
-	?ClearSearchResultCache@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 129 NONAME ; void CBasePlugin::ClearSearchResultCache(class TFSMailMsgId const &)
-	?Address@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 130 NONAME ; class TDesC16 const & CBaseMrAttendee::Address(void) const
-	?GetMailBoxByUidL@CBasePlugin@@UAEPAVCFSMailBox@@ABVTFSMailMsgId@@@Z @ 131 NONAME ; class CFSMailBox * CBasePlugin::GetMailBoxByUidL(class TFSMailMsgId const &)
-	?NotifyEventL@CBasePlugin@@IAEXIIIW4TFSMailEvent@@I@Z @ 132 NONAME ; void CBasePlugin::NotifyEventL(unsigned int, unsigned int, unsigned int, enum TFSMailEvent, unsigned int)
-	?SetDescriptionL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 133 NONAME ; void CBaseMrInfoObject::SetDescriptionL(class TDesC16 const &)
-	?AccountEventNotify@CBasePlugin@@UAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 134 NONAME ; void CBasePlugin::AccountEventNotify(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int)
-	?SetUidL@CBaseMrInfoObject@@QAEXPAVHBufC16@@@Z @ 135 NONAME ; void CBaseMrInfoObject::SetUidL(class HBufC16 *)
-	?RemoveObserver@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 136 NONAME ; void CBasePlugin::RemoveObserver(class MFSMailEventObserver &)
-	?SetRecurrentCountL@CBaseMrRecurrenceRule@@UAEXH@Z @ 137 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentCountL(int)
-	?HandleMailboxDeleteL@CBasePlugin@@MAEXABVTFSMailMsgId@@@Z @ 138 NONAME ; void CBasePlugin::HandleMailboxDeleteL(class TFSMailMsgId const &)
-	?AttendeeStatus@CBaseMrAttendee@@UBE?AW4TAttendeeStatus@MMRAttendee@@XZ @ 139 NONAME ; enum MMRAttendee::TAttendeeStatus CBaseMrAttendee::AttendeeStatus(void) const
-	?RecurrentMonths@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@XZ @ 140 NONAME ; class RArray<enum MRRecurrenceRule::TMRRecurrenceMonth> const & CBaseMrRecurrenceRule::RecurrentMonths(void) const
-	?SetRecurrentInterval@CBaseMrRecurrenceRule@@UAEXH@Z @ 141 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentInterval(int)
-	?GetDelayedOpsManager@CBasePlugin@@QAEAAVMDelayedOpsManager@@XZ @ 142 NONAME ; class MDelayedOpsManager & CBasePlugin::GetDelayedOpsManager(void)
-	?GetContentToBufferL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAVTDes16@@I@Z @ 143 NONAME ; void CBasePlugin::GetContentToBufferL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDes16 &, unsigned int)
-	?SetUidL@CBaseMrInfoObject@@QAEXABVTDesC16@@@Z @ 144 NONAME ; void CBaseMrInfoObject::SetUidL(class TDesC16 const &)
-	?CreateFolderL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0ABVTDesC16@@H@Z @ 145 NONAME ; class CFSMailFolder * CBasePlugin::CreateFolderL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, int)
-	?UidL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 146 NONAME ; class TDesC16 const & CBaseMrInfoObject::UidL(void) const
-	?DoClearSearchResultCacheL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 147 NONAME ; void CBasePlugin::DoClearSearchResultCacheL(class TFSMailMsgId const &)
-	?AddAttachmentsL@CBaseMrInfoObject@@UAEXPAVMMRAttachment@@@Z @ 148 NONAME ; void CBaseMrInfoObject::AddAttachmentsL(class MMRAttachment *)
-	?MoveMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@00@Z @ 149 NONAME ; void CBasePlugin::MoveMessagesL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?SubscribeMailboxEventsL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 150 NONAME ; void CBasePlugin::SubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &)
-	?SetMRSequenceNumber@CBaseMrInfoObject@@QAEXH@Z @ 151 NONAME ; void CBaseMrInfoObject::SetMRSequenceNumber(int)
-	?DescriptionL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 152 NONAME ; class TDesC16 const & CBaseMrInfoObject::DescriptionL(void) const
-	?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 153 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class RPointerArray<class CFSMailFolder> &)
-	?SetRecurrentWeekDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@@Z @ 154 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentWeekDaysL(class RArray<enum MRRecurrenceRule::TMRRecurrentDay> &)
-	?CopyMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@AAV3@00@Z @ 155 NONAME ; void CBasePlugin::CopyMessagesL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RArray<class TFSMailMsgId> &, class TFSMailMsgId const &, class TFSMailMsgId const &)
-	?AlarmInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 156 NONAME ; class TTime CBaseMrInfoObject::AlarmInUtcL(void) const
-	?SendMessageL@CBasePlugin@@UAEXAAVCFSMailMessage@@@Z @ 157 NONAME ; void CBasePlugin::SendMessageL(class CFSMailMessage &)
-	?SetMrusL@CBasePlugin@@UAEXABVTFSMailMsgId@@PAVMDesC16Array@@@Z @ 158 NONAME ; void CBasePlugin::SetMrusL(class TFSMailMsgId const &, class MDesC16Array *)
-	??0CBasePlugin@@IAE@XZ @ 159 NONAME ; CBasePlugin::CBasePlugin(void)
-	?SetAddressL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 160 NONAME ; void CBaseMrAttendee::SetAddressL(class TDesC16 const &)
-	?RecurrentUntil@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 161 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrentUntil(void) const
-	?SetMRResponseL@CBaseMrInfoObject@@UAEXW4TResponse@MMRInfoObject@@@Z @ 162 NONAME ; void CBaseMrInfoObject::SetMRResponseL(enum MMRInfoObject::TResponse)
-	?NewL@CBaseMrInfoObject@@SAPAV1@XZ @ 163 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(void)
-	?DoListFoldersL@CBasePlugin@@IAEXVTFSMailMsgId@@IHAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 164 NONAME ; void CBasePlugin::DoListFoldersL(class TFSMailMsgId, unsigned int, int, class RPointerArray<class CFSMailFolder> &)
-	?MROrganizerL@CBaseMrInfoObject@@UAEAAVMMROrganizer@@XZ @ 165 NONAME ; class MMROrganizer & CBaseMrInfoObject::MROrganizerL(void)
-	??0CDelayedOp@@IAE@XZ @ 166 NONAME ; CDelayedOp::CDelayedOp(void)
-	?NotifyMailboxEventL@CBasePlugin@@MAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 167 NONAME ; void CBasePlugin::NotifyMailboxEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *)
-	?GetReplyToAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 168 NONAME ; class HBufC16 * CBasePlugin::GetReplyToAddressL(class TFSMailMsgId)
-	?LocationL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 169 NONAME ; class TDesC16 const & CBaseMrInfoObject::LocationL(void) const
-	?DeleteFetchRequestForPart@CBasePlugin@@IAEHAAUTOngoingFetchInfo@1@@Z @ 170 NONAME ; int CBasePlugin::DeleteFetchRequestForPart(struct CBasePlugin::TOngoingFetchInfo &)
-	?NewChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVTDesC16@@@Z @ 171 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
-	?NewL@CBaseMrRecurrenceRule@@SAPAV1@XZ @ 172 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(void)
-	?SetAttendeeStatusL@CBaseMrAttendee@@UAEXAAW4TAttendeeStatus@MMRAttendee@@@Z @ 173 NONAME ; void CBaseMrAttendee::SetAttendeeStatusL(enum MMRAttendee::TAttendeeStatus &)
-	?DeleteMailBoxByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 174 NONAME ; void CBasePlugin::DeleteMailBoxByUidL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
-	?TranslateMsgStoreMrL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@1AAVCFSMailMessagePart@@@Z @ 175 NONAME ; void CBasePlugin::TranslateMsgStoreMrL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &)
-	?GetMessagePartFileL@CBasePlugin@@UAEHABVTFSMailMsgId@@000AAVRFile@@@Z @ 176 NONAME ; int CBasePlugin::GetMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RFile &)
-	?SystemEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreSystemEvent@@@Z @ 177 NONAME ; void CBasePlugin::SystemEventNotifyL(enum TMsgStoreSystemEvent)
-	??1CBaseMrInfoObject@@UAE@XZ @ 178 NONAME ; CBaseMrInfoObject::~CBaseMrInfoObject(void)
-	?StoreMessagePartL@CBasePlugin@@UAEXABVTFSMailMsgId@@00AAVCFSMailMessagePart@@@Z @ 179 NONAME ; void CBasePlugin::StoreMessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessagePart &)
-	?AttachmentsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRAttachment@@@@XZ @ 180 NONAME ; class RPointerArray<class MMRAttachment> const & CBaseMrInfoObject::AttachmentsL(void) const
-	?RecurrenceStartTime@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 181 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrenceStartTime(void) const
-	?CreationTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 182 NONAME ; class TTime CBaseMrInfoObject::CreationTimeInUtcL(void) const
-	?SetReplyOrForwardToFieldL@CBasePlugin@@IAEXAAVCMsgStoreMessage@@@Z @ 183 NONAME ; void CBasePlugin::SetReplyOrForwardToFieldL(class CMsgStoreMessage &)
-	?RefreshNowL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 184 NONAME ; void CBasePlugin::RefreshNowL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
-	?ModificationNotify@CBasePlugin@@UAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 185 NONAME ; void CBasePlugin::ModificationNotify(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int)
-	?SystemEventNotify@CBasePlugin@@UAEXW4TMsgStoreSystemEvent@@@Z @ 186 NONAME ; void CBasePlugin::SystemEventNotify(enum TMsgStoreSystemEvent)
-	?GetCachedMsgChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 187 NONAME ; class RPointerArray<class CMsgStoreMessagePart> & CBasePlugin::GetCachedMsgChildrenL(void)
-	?CreateMrReplyMessageL@CBasePlugin@@MAEPAVCFSMailMessage@@ABVTFSMailMsgId@@AAVMMRInfoObject@@0@Z @ 188 NONAME ; class CFSMailMessage * CBasePlugin::CreateMrReplyMessageL(class TFSMailMsgId const &, class MMRInfoObject &, class TFSMailMsgId const &)
-	?SetLocationL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 189 NONAME ; void CBaseMrInfoObject::SetLocationL(class TDesC16 const &)
-	?NewChildPartFromFilePathOrHandleL@CBasePlugin@@IAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1HAAVRFile@@@Z @ 190 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFilePathOrHandleL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, int, class RFile &)
-	?TranslateEmailFwMrL@CBasePlugin@@MAEXAAVMMRInfoObject@@AAVCMsgStorePropertyContainer@@@Z @ 191 NONAME ; void CBasePlugin::TranslateEmailFwMrL(class MMRInfoObject &, class CMsgStorePropertyContainer &)
-	?ConstructL@CBasePlugin@@IAEXXZ @ 192 NONAME ; void CBasePlugin::ConstructL(void)
-	?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1@Z @ 193 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &)
-	?CancelSyncL@CBasePlugin@@UAEHABVTFSMailMsgId@@@Z @ 194 NONAME ; int CBasePlugin::CancelSyncL(class TFSMailMsgId const &)
-	?RefreshCachedMailBoxDisplayNameL@CBasePlugin@@IAEXAAHABI@Z @ 195 NONAME ; void CBasePlugin::RefreshCachedMailBoxDisplayNameL(int &, unsigned int const &)
-	?CurrentSyncState@CBasePlugin@@UAE?AW4TSSMailSyncState@@ABVTFSMailMsgId@@@Z @ 196 NONAME ; enum TSSMailSyncState CBasePlugin::CurrentSyncState(class TFSMailMsgId const &)
-	?AddObserverL@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 197 NONAME ; void CBasePlugin::AddObserverL(class MFSMailEventObserver &)
-	?AttendeeRole@CBaseMrAttendee@@UBE?AW4TAttendeeRole@MMRAttendee@@XZ @ 198 NONAME ; enum MMRAttendee::TAttendeeRole CBaseMrAttendee::AttendeeRole(void) const
-	?GetCachedBodyL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@I@Z @ 199 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetCachedBodyL(unsigned int)
-	?PriorityL@CBaseMrInfoObject@@UBEIXZ @ 200 NONAME ; unsigned int CBaseMrInfoObject::PriorityL(void) const
-	?RecurrentWeekDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@XZ @ 201 NONAME ; class RArray<enum MRRecurrenceRule::TMRRecurrentDay> const & CBaseMrRecurrenceRule::RecurrentWeekDays(void) const
-	?ListMessagesL@CBasePlugin@@UAEPAVMFSMailIterator@@ABVTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 202 NONAME ; class MFSMailIterator * CBasePlugin::ListMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
-	?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@AAVRFile@@@Z @ 203 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class RFile &)
-	?SetMailboxName@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@@Z @ 204 NONAME ; void CBasePlugin::SetMailboxName(class TFSMailMsgId const &, class TDesC16 const &)
-	?NewLC@CBasePlugin@@SAPAV1@XZ @ 205 NONAME ; class CBasePlugin * CBasePlugin::NewLC(void)
-	?ExtensionL@CBaseMrInfoObject@@UAEPAXVTUid@@@Z @ 206 NONAME ; void * CBaseMrInfoObject::ExtensionL(class TUid)
-	?TranslateMsgStorePropsL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@AAVCFSMailMessagePart@@W4TFSMailDetails@@@Z @ 207 NONAME ; void CBasePlugin::TranslateMsgStorePropsL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &, enum TFSMailDetails)
-	?GetMailboxDisplayNameL@CBasePlugin@@IAEXIAAVRBuf16@@@Z @ 208 NONAME ; void CBasePlugin::GetMailboxDisplayNameL(unsigned int, class RBuf16 &)
-	?CreateMessageToSendL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 209 NONAME ; void CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
+	?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 7 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, int)
+	?DoCancel@CDelayedOp@@EAEXXZ @ 8 NONAME ; void CDelayedOp::DoCancel(void)
+	??1CBaseMrRecurrenceRule@@UAE@XZ @ 9 NONAME ; CBaseMrRecurrenceRule::~CBaseMrRecurrenceRule(void)
+	?GoOnlineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 10 NONAME ; void CBasePlugin::GoOnlineL(class TFSMailMsgId const &)
+	??1CDelayedOp@@UAE@XZ @ 11 NONAME ; CDelayedOp::~CDelayedOp(void)
+	?SetStartTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 12 NONAME ; void CBaseMrInfoObject::SetStartTimeInUtcL(class TTime)
+	?NewL@CBaseMrAttendee@@SAPAV1@ABVMMROrganizer@@@Z @ 13 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMROrganizer const &)
+	?CancelSearch@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 14 NONAME ; void CBasePlugin::CancelSearch(class TFSMailMsgId const &)
+	?RecurrentInterval@CBaseMrRecurrenceRule@@UBEHXZ @ 15 NONAME ; int CBaseMrRecurrenceRule::RecurrentInterval(void) const
+	?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 16 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const
+	?AddRecurrenceExceptionL@CBaseMrInfoObject@@UAEXPAVMMRInfoObject@@@Z @ 17 NONAME ; void CBaseMrInfoObject::AddRecurrenceExceptionL(class MMRInfoObject *)
+	?SetRecurrentDaysofMonthL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@@Z @ 18 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentDaysofMonthL(class RArray<struct MRRecurrenceRule::TRecurrentDaysofMonth> &)
+	?SetCredentialsL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@1@Z @ 19 NONAME ; void CBasePlugin::SetCredentialsL(class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &)
+	?SetAlarmInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 20 NONAME ; void CBaseMrInfoObject::SetAlarmInUtcL(class TTime)
+	?NewL@CBaseMrAttendee@@SAPAV1@ABVMMRAttendee@@@Z @ 21 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMRAttendee const &)
+	?TranslateMsgStoreDayOfWeek@CBasePlugin@@IAEXKAAVTDayOfWeekFtor@@@Z @ 22 NONAME ; void CBasePlugin::TranslateMsgStoreDayOfWeek(unsigned long, class TDayOfWeekFtor &)
+	?GetStandardFolderIdL@CBasePlugin@@UAE?AVTFSMailMsgId@@ABV2@W4TFSFolderType@@@Z @ 23 NONAME ; class TFSMailMsgId CBasePlugin::GetStandardFolderIdL(class TFSMailMsgId const &, enum TFSFolderType)
+	?DeleteFetchRequest@CBasePlugin@@IAEXAAUTOngoingFetchInfo@1@@Z @ 24 NONAME ; void CBasePlugin::DeleteFetchRequest(struct CBasePlugin::TOngoingFetchInfo &)
+	?CommonName@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 25 NONAME ; class TDesC16 const & CBaseMrAttendee::CommonName(void) const
+	?RecurrentDaysofMonth@CBaseMrRecurrenceRule@@UBEABV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@XZ @ 26 NONAME ; class RArray<struct MRRecurrenceRule::TRecurrentDaysofMonth> const & CBaseMrRecurrenceRule::RecurrentDaysofMonth(void) const
+	?MRSequenceNumberL@CBaseMrInfoObject@@UBEHXZ @ 27 NONAME ; int CBaseMrInfoObject::MRSequenceNumberL(void) const
+	?MRRecurrenceId@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 28 NONAME ; class TTime CBaseMrInfoObject::MRRecurrenceId(void) const
+	?SubjectL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 29 NONAME ; class TDesC16 const & CBaseMrInfoObject::SubjectL(void) const
+	?GetMessageByUidL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 30 NONAME ; class CFSMailMessage * CBasePlugin::GetMessageByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails)
+	?InvalidateCacheIfNecessary@CBasePlugin@@IAEXIII@Z @ 31 NONAME ; void CBasePlugin::InvalidateCacheIfNecessary(unsigned int, unsigned int, unsigned int)
+	?TranslateEmailFwRecipientsL@CBasePlugin@@IAEXAAVCMsgStoreMessagePart@@ABVTDesC8@@AAV?$RPointerArray@VCFSMailAddress@@@@@Z @ 32 NONAME ; void CBasePlugin::TranslateEmailFwRecipientsL(class CMsgStoreMessagePart &, class TDesC8 const &, class RPointerArray<class CFSMailAddress> &)
+	?SetRecurrenceRuleL@CBaseMrInfoObject@@UAEXABVMRRecurrenceRule@@@Z @ 33 NONAME ; void CBaseMrInfoObject::SetRecurrenceRuleL(class MRRecurrenceRule const &)
+	?Load2L@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 34 NONAME ; class HBufC16 * CResourceLoader::Load2L(int)
+	?RemoveAllPropertiesL@CBasePlugin@@KAXAAVCMsgStorePropertyContainer@@ABVTDesC8@@@Z @ 35 NONAME ; void CBasePlugin::RemoveAllPropertiesL(class CMsgStorePropertyContainer &, class TDesC8 const &)
+	?DoCancelSearchL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 36 NONAME ; void CBasePlugin::DoCancelSearchL(class TFSMailMsgId const &)
+	?GetMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@AAV?$RPointerArray@VCFSMailMessage@@@@W4TFSMailDetails@@@Z @ 37 NONAME ; void CBasePlugin::GetMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RPointerArray<class CFSMailMessage> &, enum TFSMailDetails)
+	?GetPlugin@CDelayedOp@@IAEAAVCBasePlugin@@XZ @ 38 NONAME ; class CBasePlugin & CDelayedOp::GetPlugin(void)
+	?LoadLC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 39 NONAME ; class HBufC16 * CResourceLoader::LoadLC(int)
+	?HandleRemovePartContentL@CBasePlugin@@MAEXAAVCMsgStoreMessage@@AAVCMsgStoreMessagePart@@@Z @ 40 NONAME ; void CBasePlugin::HandleRemovePartContentL(class CMsgStoreMessage &, class CMsgStoreMessagePart &)
+	?SetMRRecurrenceIdL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 41 NONAME ; void CBaseMrInfoObject::SetMRRecurrenceIdL(class TTime)
+	?CreateReplyMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@@Z @ 42 NONAME ; class CFSMailMessage * CBasePlugin::CreateReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &)
+	?UnsubscribeMailboxEventsL@CBasePlugin@@IAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 43 NONAME ; void CBasePlugin::UnsubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &)
+	?CreateForwardMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0ABVTDesC16@@@Z @ 44 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
+	?UnregisterRequestObserver@CBasePlugin@@UAEXH@Z @ 45 NONAME ; void CBasePlugin::UnregisterRequestObserver(int)
+	?DeleteFolderByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0@Z @ 46 NONAME ; void CBasePlugin::DeleteFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?NewL@CBaseMrInfoObject@@SAPAV1@AAVMMRInfoObject@@@Z @ 47 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(class MMRInfoObject &)
+	?GoOfflineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 48 NONAME ; void CBasePlugin::GoOfflineL(class TFSMailMsgId const &)
+	?ResponseRequested@CBaseMrAttendee@@UBEHXZ @ 49 NONAME ; int CBaseMrAttendee::ResponseRequested(void) const
+	?GetAccountForMsgBoxL@CBasePlugin@@IAEPAVCMsgStoreAccount@@ABVTFSMailMsgId@@@Z @ 50 NONAME ; class CMsgStoreAccount * CBasePlugin::GetAccountForMsgBoxL(class TFSMailMsgId const &)
+	?GetSignatureL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 51 NONAME ; class HBufC16 * CBasePlugin::GetSignatureL(class TFSMailMsgId)
+	?SearchL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@ABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 52 NONAME ; void CBasePlugin::SearchL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RPointerArray<class TDesC16> const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &)
+	?StoreMessageL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVCFSMailMessage@@@Z @ 53 NONAME ; void CBasePlugin::StoreMessageL(class TFSMailMsgId const &, class CFSMailMessage &)
+	?Fs@CResourceLoader@@QAEAAVRFs@@XZ @ 54 NONAME ; class RFs & CResourceLoader::Fs(void)
+	?ModificationNotifyL@CBasePlugin@@IAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 55 NONAME ; void CBasePlugin::ModificationNotifyL(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int)
+	?SetResponseRequestedL@CBaseMrAttendee@@UAEXH@Z @ 56 NONAME ; void CBaseMrAttendee::SetResponseRequestedL(int)
+	?GetMailboxInfoL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 57 NONAME ; class CMailboxInfo & CBasePlugin::GetMailboxInfoL(unsigned int)
+	?SetCreationTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 58 NONAME ; void CBaseMrInfoObject::SetCreationTimeInUtcL(class TTime)
+	?FetchMessagePartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@HI@Z @ 59 NONAME ; void CBasePlugin::FetchMessagePartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class MFSMailRequestObserver &, int, unsigned int)
+	?AddAttendeeL@CBaseMrInfoObject@@UAEXPAVMMRAttendee@@@Z @ 60 NONAME ; void CBaseMrInfoObject::AddAttendeeL(class MMRAttendee *)
+	?EndTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 61 NONAME ; class TTime CBaseMrInfoObject::EndTimeInUtcL(void) const
+	?GetBodyPartL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@AAVCMsgStoreMessage@@ABVTDesC16@@@Z @ 62 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetBodyPartL(class CMsgStoreMessage &, class TDesC16 const &)
+	?SendMessageL@CBasePlugin@@QAEXAAVCMsgStoreMailBox@@AAVCMsgStoreMessage@@ABVTTime@@@Z @ 63 NONAME ; void CBasePlugin::SendMessageL(class CMsgStoreMailBox &, class CMsgStoreMessage &, class TTime const &)
+	??_ECDelayedOp@@UAE@I@Z @ 64 NONAME ; CDelayedOp::~CDelayedOp(unsigned int)
+	?SetAttendeeRoleL@CBaseMrAttendee@@UAEXW4TAttendeeRole@MMRAttendee@@@Z @ 65 NONAME ; void CBaseMrAttendee::SetAttendeeRoleL(enum MMRAttendee::TAttendeeRole)
+	?RefreshMailboxCacheL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 66 NONAME ; class CMailboxInfo & CBasePlugin::RefreshMailboxCacheL(unsigned int)
+	?SetRecurrenceStartTimeL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 67 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceStartTimeL(class TTime)
+	?RecurrentCount@CBaseMrRecurrenceRule@@UBEIXZ @ 68 NONAME ; unsigned int CBaseMrRecurrenceRule::RecurrentCount(void) const
+	?TranslateEmailFwDayOfWeek@CBasePlugin@@IAEXW4TMRRecurrentDay@MRRecurrenceRule@@AAK@Z @ 69 NONAME ; void CBasePlugin::TranslateEmailFwDayOfWeek(enum MRRecurrenceRule::TMRRecurrentDay, unsigned long &)
+	?CopyMessagePartFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 70 NONAME ; void CBasePlugin::CopyMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
+	?MRResponse@CBaseMrInfoObject@@UBE?AW4TResponse@MMRInfoObject@@XZ @ 71 NONAME ; enum MMRInfoObject::TResponse CBaseMrInfoObject::MRResponse(void) const
+	?GetCachedMsgL@CBasePlugin@@IAEPAVCMsgStoreMessage@@II@Z @ 72 NONAME ; class CMsgStoreMessage * CBasePlugin::GetCachedMsgL(unsigned int, unsigned int)
+	?SetMethod@CBaseMrInfoObject@@QAEXW4TMRMethod@MMRInfoObject@@@Z @ 73 NONAME ; void CBaseMrInfoObject::SetMethod(enum MMRInfoObject::TMRMethod)
+	??1CBasePlugin@@UAE@XZ @ 74 NONAME ; CBasePlugin::~CBasePlugin(void)
+	?SetSubjectL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 75 NONAME ; void CBaseMrInfoObject::SetSubjectL(class TDesC16 const &)
+	?StoreMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@H@Z @ 76 NONAME ; void CBasePlugin::StoreMessagesL(class TFSMailMsgId const &, class RPointerArray<class CFSMailMessage> &, class MFSMailRequestObserver &, int)
+	?MailboxHasCapabilityL@CBasePlugin@@UAEHW4TFSMailBoxCapabilities@@VTFSMailMsgId@@@Z @ 77 NONAME ; int CBasePlugin::MailboxHasCapabilityL(enum TFSMailBoxCapabilities, class TFSMailMsgId)
+	?GetMrusL@CBasePlugin@@UAEPAVMDesC16Array@@ABVTFSMailMsgId@@@Z @ 78 NONAME ; class MDesC16Array * CBasePlugin::GetMrusL(class TFSMailMsgId const &)
+	?StoreMessagePartsL@CBasePlugin@@UAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@AAVMFSMailRequestObserver@@H@Z @ 79 NONAME ; void CBasePlugin::StoreMessagePartsL(class RPointerArray<class CFSMailMessagePart> &, class MFSMailRequestObserver &, int)
+	?AccountEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 80 NONAME ; void CBasePlugin::AccountEventNotifyL(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int)
+	?SupportedFields@CBaseMrInfoObject@@UBEHAAV?$RArray@W4TESMRInfoField@MMRInfoObject@@@@@Z @ 81 NONAME ; int CBaseMrInfoObject::SupportedFields(class RArray<enum MMRInfoObject::TESMRInfoField> &) const
+	?StatusL@CBasePlugin@@UAE?AVTFSProgress@@H@Z @ 82 NONAME ; class TFSProgress CBasePlugin::StatusL(int)
+	?SetRecurrentMonthsL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@@Z @ 83 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthsL(class RArray<enum MRRecurrenceRule::TMRRecurrenceMonth> &)
+	?SetContentL@CBasePlugin@@UAEXABVTDesC16@@ABVTFSMailMsgId@@111@Z @ 84 NONAME ; void CBasePlugin::SetContentL(class TDesC16 const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?GetMailBoxAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 85 NONAME ; class HBufC16 * CBasePlugin::GetMailBoxAddressL(class TFSMailMsgId)
+	?TranslateEmailFwAttendeeL@CBasePlugin@@IAEXAAVMMROrganizer@@AAVRMsgStoreAddress@@@Z @ 86 NONAME ; void CBasePlugin::TranslateEmailFwAttendeeL(class MMROrganizer &, class RMsgStoreAddress &)
+	?GetMailBoxStatus@CBasePlugin@@UAE?AW4TFSMailBoxStatus@@ABVTFSMailMsgId@@@Z @ 87 NONAME ; enum TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(class TFSMailMsgId const &)
+	??1CBaseMrAttendee@@UAE@XZ @ 88 NONAME ; CBaseMrAttendee::~CBaseMrAttendee(void)
+	?BlockCopyMoveFromFoldersL@CBasePlugin@@MAEXVTFSMailMsgId@@W4TFSFolderType@@AAVCFSMailFolder@@@Z @ 89 NONAME ; void CBasePlugin::BlockCopyMoveFromFoldersL(class TFSMailMsgId, enum TFSFolderType, class CFSMailFolder &)
+	?RecurrentMonthDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@H@@XZ @ 90 NONAME ; class RArray<int> const & CBaseMrRecurrenceRule::RecurrentMonthDays(void) const
+	??1CBaseMrInfoProcessor@@UAE@XZ @ 91 NONAME ; CBaseMrInfoProcessor::~CBaseMrInfoProcessor(void)
+	?NewL@CBaseMrRecurrenceRule@@SAPAV1@ABVMRRecurrenceRule@@@Z @ 92 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(class MRRecurrenceRule const &)
+	?ChildPartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 93 NONAME ; void CBasePlugin::ChildPartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray<class CFSMailMessagePart> &)
+	?SetPartContentFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 94 NONAME ; void CBasePlugin::SetPartContentFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
+	?ResetBodyCache@CBasePlugin@@IAEXXZ @ 95 NONAME ; void CBasePlugin::ResetBodyCache(void)
+	?Type@CBaseMrRecurrenceRule@@UBE?AW4TMRRecurrenceType@MRRecurrenceRule@@XZ @ 96 NONAME ; enum MRRecurrenceRule::TMRRecurrenceType CBaseMrRecurrenceRule::Type(void) const
+	?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@0AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 97 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray<class CFSMailFolder> &)
+	?SetContext@CDelayedOp@@QAEXAAVCBasePlugin@@AAVMDelayedOpsManager@@@Z @ 98 NONAME ; void CDelayedOp::SetContext(class CBasePlugin &, class MDelayedOpsManager &)
+	??_ECBasePlugin@@UAE@I@Z @ 99 NONAME ; CBasePlugin::~CBasePlugin(unsigned int)
+	?ReplyToMeetingRequestL@CBaseMrInfoProcessor@@UAEXABVTFSMailMsgId@@0AAVMMRInfoObject@@AAW4TMRInfoResponseMode@MMRInfoProcessor@@ABVTDesC16@@@Z @ 100 NONAME ; void CBaseMrInfoProcessor::ReplyToMeetingRequestL(class TFSMailMsgId const &, class TFSMailMsgId const &, class MMRInfoObject &, enum MMRInfoProcessor::TMRInfoResponseMode &, class TDesC16 const &)
+	?GetFolderByUidL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0@Z @ 101 NONAME ; class CFSMailFolder * CBasePlugin::GetFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?RecurrenceRuleL@CBaseMrInfoObject@@UBEABVMRRecurrenceRule@@XZ @ 102 NONAME ; class MRRecurrenceRule const & CBaseMrInfoObject::RecurrenceRuleL(void) const
+	?AuthenticateL@CBasePlugin@@UAEXAAVMFSMailRequestObserver@@H@Z @ 103 NONAME ; void CBasePlugin::AuthenticateL(class MFSMailRequestObserver &, int)
+	?DeleteMessagesByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 104 NONAME ; void CBasePlugin::DeleteMessagesByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &)
+	?UnsubscribeMailboxEvents@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 105 NONAME ; void CBasePlugin::UnsubscribeMailboxEvents(class TFSMailMsgId const &, class MFSMailEventObserver &)
+	?SetEndTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 106 NONAME ; void CBaseMrInfoObject::SetEndTimeInUtcL(class TTime)
+	?SetRecurrenceTypeL@CBaseMrRecurrenceRule@@UAEXW4TMRRecurrenceType@MRRecurrenceRule@@@Z @ 107 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceTypeL(enum MRRecurrenceRule::TMRRecurrenceType)
+	?TranslateEmailFwMessageL@CBasePlugin@@MAEXAAVCFSMailMessagePart@@AAVCMsgStoreMessagePart@@H@Z @ 108 NONAME ; void CBasePlugin::TranslateEmailFwMessageL(class CFSMailMessagePart &, class CMsgStoreMessagePart &, int)
+	?GetPluginId@CBasePlugin@@MAEIXZ @ 109 NONAME ; unsigned int CBasePlugin::GetPluginId(void)
+	?CreateForwardReplyMessageL@CBasePlugin@@IAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@HH@Z @ 110 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &, int, int)
+	?SetCommonNameL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 111 NONAME ; void CBaseMrAttendee::SetCommonNameL(class TDesC16 const &)
+	?CreateMessageToSendL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@@Z @ 112 NONAME ; class CFSMailMessage * CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &)
+	?MessagePartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000@Z @ 113 NONAME ; class CFSMailMessagePart * CBasePlugin::MessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 114 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, class TDesC16 const &)
+	?ResetCache@CBasePlugin@@IAEXXZ @ 115 NONAME ; void CBasePlugin::ResetCache(void)
+	?MRMethodL@CBaseMrInfoObject@@UBE?AW4TMRMethod@MMRInfoObject@@XZ @ 116 NONAME ; enum MMRInfoObject::TMRMethod CBaseMrInfoObject::MRMethodL(void) const
+	?RunL@CDelayedOp@@EAEXXZ @ 117 NONAME ; void CDelayedOp::RunL(void)
+	?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000@Z @ 118 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?RecurrenceExceptionsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRInfoObject@@@@XZ @ 119 NONAME ; class RPointerArray<class MMRInfoObject> const & CBaseMrInfoObject::RecurrenceExceptionsL(void) const
+	?SetRecurrentMonthDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@H@@@Z @ 120 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthDaysL(class RArray<int> &)
+	?SetPriorityL@CBaseMrInfoObject@@UAEXI@Z @ 121 NONAME ; void CBaseMrInfoObject::SetPriorityL(unsigned int)
+	?AttendeesL@CBaseMrInfoObject@@UAEAAV?$RPointerArray@VMMRAttendee@@@@XZ @ 122 NONAME ; class RPointerArray<class MMRAttendee> & CBaseMrInfoObject::AttendeesL(void)
+	?Load2L@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 123 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, int)
+	?NewL@CBasePlugin@@SAPAV1@XZ @ 124 NONAME ; class CBasePlugin * CBasePlugin::NewL(void)
+	?FetchEmailAddressL@CBasePlugin@@IAEPAVCFSMailAddress@@AAVCMsgStorePropertyContainer@@I@Z @ 125 NONAME ; class CFSMailAddress * CBasePlugin::FetchEmailAddressL(class CMsgStorePropertyContainer &, unsigned int)
+	?NewL@CBaseMrInfoProcessor@@SAPAV1@AAVCBasePlugin@@@Z @ 126 NONAME ; class CBaseMrInfoProcessor * CBaseMrInfoProcessor::NewL(class CBasePlugin &)
+	?CopyMessageAsChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVCFSMailMessage@@@Z @ 127 NONAME ; class CFSMailMessagePart * CBasePlugin::CopyMessageAsChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessage const &)
+	?NotifyGlobalEventL@CBasePlugin@@IAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 128 NONAME ; void CBasePlugin::NotifyGlobalEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *)
+	?GetCachedBodyChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 129 NONAME ; class RPointerArray<class CMsgStoreMessagePart> & CBasePlugin::GetCachedBodyChildrenL(void)
+	?StartTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 130 NONAME ; class TTime CBaseMrInfoObject::StartTimeInUtcL(void) const
+	?ListMailBoxesL@CBasePlugin@@UAEXAAV?$RArray@VTFSMailMsgId@@@@@Z @ 131 NONAME ; void CBasePlugin::ListMailBoxesL(class RArray<class TFSMailMsgId> &)
+	?SetRecurrenceUntilL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 132 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceUntilL(class TTime)
+	?GetBrandingIdL@CBasePlugin@@UAEAAVTDesC16@@ABVTFSMailMsgId@@@Z @ 133 NONAME ; class TDesC16 & CBasePlugin::GetBrandingIdL(class TFSMailMsgId const &)
+	?FetchMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@H@Z @ 134 NONAME ; void CBasePlugin::FetchMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, enum TFSMailDetails, class MFSMailRequestObserver &, int)
+	?RemovePartContentL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@@Z @ 135 NONAME ; void CBasePlugin::RemovePartContentL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &)
+	?ClearSearchResultCache@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 136 NONAME ; void CBasePlugin::ClearSearchResultCache(class TFSMailMsgId const &)
+	?Address@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 137 NONAME ; class TDesC16 const & CBaseMrAttendee::Address(void) const
+	?NotifyEventL@CBasePlugin@@IAEXIIIW4TFSMailEvent@@I@Z @ 138 NONAME ; void CBasePlugin::NotifyEventL(unsigned int, unsigned int, unsigned int, enum TFSMailEvent, unsigned int)
+	?GetMailBoxByUidL@CBasePlugin@@UAEPAVCFSMailBox@@ABVTFSMailMsgId@@@Z @ 139 NONAME ; class CFSMailBox * CBasePlugin::GetMailBoxByUidL(class TFSMailMsgId const &)
+	?SetDescriptionL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 140 NONAME ; void CBaseMrInfoObject::SetDescriptionL(class TDesC16 const &)
+	?AccountEventNotify@CBasePlugin@@UAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 141 NONAME ; void CBasePlugin::AccountEventNotify(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int)
+	?SetUidL@CBaseMrInfoObject@@QAEXPAVHBufC16@@@Z @ 142 NONAME ; void CBaseMrInfoObject::SetUidL(class HBufC16 *)
+	?RemoveObserver@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 143 NONAME ; void CBasePlugin::RemoveObserver(class MFSMailEventObserver &)
+	?SetRecurrentCountL@CBaseMrRecurrenceRule@@UAEXH@Z @ 144 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentCountL(int)
+	?HandleMailboxDeleteL@CBasePlugin@@MAEXABVTFSMailMsgId@@@Z @ 145 NONAME ; void CBasePlugin::HandleMailboxDeleteL(class TFSMailMsgId const &)
+	?RecurrentMonths@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@XZ @ 146 NONAME ; class RArray<enum MRRecurrenceRule::TMRRecurrenceMonth> const & CBaseMrRecurrenceRule::RecurrentMonths(void) const
+	?AttendeeStatus@CBaseMrAttendee@@UBE?AW4TAttendeeStatus@MMRAttendee@@XZ @ 147 NONAME ; enum MMRAttendee::TAttendeeStatus CBaseMrAttendee::AttendeeStatus(void) const
+	?NewL@CResourceLoader@@SAPAV1@ABVTDesC16@@@Z @ 148 NONAME ; class CResourceLoader * CResourceLoader::NewL(class TDesC16 const &)
+	?SetRecurrentInterval@CBaseMrRecurrenceRule@@UAEXH@Z @ 149 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentInterval(int)
+	?GetDelayedOpsManager@CBasePlugin@@QAEAAVMDelayedOpsManager@@XZ @ 150 NONAME ; class MDelayedOpsManager & CBasePlugin::GetDelayedOpsManager(void)
+	?GetContentToBufferL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAVTDes16@@I@Z @ 151 NONAME ; void CBasePlugin::GetContentToBufferL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDes16 &, unsigned int)
+	?SetUidL@CBaseMrInfoObject@@QAEXABVTDesC16@@@Z @ 152 NONAME ; void CBaseMrInfoObject::SetUidL(class TDesC16 const &)
+	??1CResourceLoader@@UAE@XZ @ 153 NONAME ; CResourceLoader::~CResourceLoader(void)
+	?CreateFolderL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0ABVTDesC16@@H@Z @ 154 NONAME ; class CFSMailFolder * CBasePlugin::CreateFolderL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, int)
+	?UidL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 155 NONAME ; class TDesC16 const & CBaseMrInfoObject::UidL(void) const
+	?DoClearSearchResultCacheL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 156 NONAME ; void CBasePlugin::DoClearSearchResultCacheL(class TFSMailMsgId const &)
+	?AddAttachmentsL@CBaseMrInfoObject@@UAEXPAVMMRAttachment@@@Z @ 157 NONAME ; void CBaseMrInfoObject::AddAttachmentsL(class MMRAttachment *)
+	?MoveMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@00@Z @ 158 NONAME ; void CBasePlugin::MoveMessagesL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?SubscribeMailboxEventsL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 159 NONAME ; void CBasePlugin::SubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &)
+	?SetMRSequenceNumber@CBaseMrInfoObject@@QAEXH@Z @ 160 NONAME ; void CBaseMrInfoObject::SetMRSequenceNumber(int)
+	?DescriptionL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 161 NONAME ; class TDesC16 const & CBaseMrInfoObject::DescriptionL(void) const
+	?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 162 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class RPointerArray<class CFSMailFolder> &)
+	?SetRecurrentWeekDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@@Z @ 163 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentWeekDaysL(class RArray<enum MRRecurrenceRule::TMRRecurrentDay> &)
+	?CopyMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@AAV3@00@Z @ 164 NONAME ; void CBasePlugin::CopyMessagesL(class TFSMailMsgId const &, class RArray<class TFSMailMsgId> const &, class RArray<class TFSMailMsgId> &, class TFSMailMsgId const &, class TFSMailMsgId const &)
+	?AlarmInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 165 NONAME ; class TTime CBaseMrInfoObject::AlarmInUtcL(void) const
+	?SendMessageL@CBasePlugin@@UAEXAAVCFSMailMessage@@@Z @ 166 NONAME ; void CBasePlugin::SendMessageL(class CFSMailMessage &)
+	?SetMrusL@CBasePlugin@@UAEXABVTFSMailMsgId@@PAVMDesC16Array@@@Z @ 167 NONAME ; void CBasePlugin::SetMrusL(class TFSMailMsgId const &, class MDesC16Array *)
+	??0CBasePlugin@@IAE@XZ @ 168 NONAME ; CBasePlugin::CBasePlugin(void)
+	?SetAddressL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 169 NONAME ; void CBaseMrAttendee::SetAddressL(class TDesC16 const &)
+	?RecurrentUntil@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 170 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrentUntil(void) const
+	?SetMRResponseL@CBaseMrInfoObject@@UAEXW4TResponse@MMRInfoObject@@@Z @ 171 NONAME ; void CBaseMrInfoObject::SetMRResponseL(enum MMRInfoObject::TResponse)
+	?NewL@CBaseMrInfoObject@@SAPAV1@XZ @ 172 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(void)
+	?DoListFoldersL@CBasePlugin@@IAEXVTFSMailMsgId@@IHAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 173 NONAME ; void CBasePlugin::DoListFoldersL(class TFSMailMsgId, unsigned int, int, class RPointerArray<class CFSMailFolder> &)
+	?MROrganizerL@CBaseMrInfoObject@@UAEAAVMMROrganizer@@XZ @ 174 NONAME ; class MMROrganizer & CBaseMrInfoObject::MROrganizerL(void)
+	?NotifyMailboxEventL@CBasePlugin@@MAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 175 NONAME ; void CBasePlugin::NotifyMailboxEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *)
+	??0CDelayedOp@@IAE@XZ @ 176 NONAME ; CDelayedOp::CDelayedOp(void)
+	?GetReplyToAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 177 NONAME ; class HBufC16 * CBasePlugin::GetReplyToAddressL(class TFSMailMsgId)
+	?LocationL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 178 NONAME ; class TDesC16 const & CBaseMrInfoObject::LocationL(void) const
+	?DeleteFetchRequestForPart@CBasePlugin@@IAEHAAUTOngoingFetchInfo@1@@Z @ 179 NONAME ; int CBasePlugin::DeleteFetchRequestForPart(struct CBasePlugin::TOngoingFetchInfo &)
+	?Load2LC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 180 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int)
+	?NewChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVTDesC16@@@Z @ 181 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &)
+	?NewL@CBaseMrRecurrenceRule@@SAPAV1@XZ @ 182 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(void)
+	?SetAttendeeStatusL@CBaseMrAttendee@@UAEXAAW4TAttendeeStatus@MMRAttendee@@@Z @ 183 NONAME ; void CBaseMrAttendee::SetAttendeeStatusL(enum MMRAttendee::TAttendeeStatus &)
+	?DeleteMailBoxByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 184 NONAME ; void CBasePlugin::DeleteMailBoxByUidL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
+	?TranslateMsgStoreMrL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@1AAVCFSMailMessagePart@@@Z @ 185 NONAME ; void CBasePlugin::TranslateMsgStoreMrL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &)
+	?GetMessagePartFileL@CBasePlugin@@UAEHABVTFSMailMsgId@@000AAVRFile@@@Z @ 186 NONAME ; int CBasePlugin::GetMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RFile &)
+	?SystemEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreSystemEvent@@@Z @ 187 NONAME ; void CBasePlugin::SystemEventNotifyL(enum TMsgStoreSystemEvent)
+	??1CBaseMrInfoObject@@UAE@XZ @ 188 NONAME ; CBaseMrInfoObject::~CBaseMrInfoObject(void)
+	?StoreMessagePartL@CBasePlugin@@UAEXABVTFSMailMsgId@@00AAVCFSMailMessagePart@@@Z @ 189 NONAME ; void CBasePlugin::StoreMessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessagePart &)
+	?CreateMessageToSendL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 190 NONAME ; void CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
+	?AttachmentsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRAttachment@@@@XZ @ 191 NONAME ; class RPointerArray<class MMRAttachment> const & CBaseMrInfoObject::AttachmentsL(void) const
+	?RecurrenceStartTime@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 192 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrenceStartTime(void) const
+	?CreationTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 193 NONAME ; class TTime CBaseMrInfoObject::CreationTimeInUtcL(void) const
+	?SetReplyOrForwardToFieldL@CBasePlugin@@IAEXAAVCMsgStoreMessage@@@Z @ 194 NONAME ; void CBasePlugin::SetReplyOrForwardToFieldL(class CMsgStoreMessage &)
+	?RefreshNowL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 195 NONAME ; void CBasePlugin::RefreshNowL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int)
+	?CreateResourceReaderLC@CResourceLoader@@QBEPAVHBufC8@@AAVTResourceReader@@H@Z @ 196 NONAME ; class HBufC8 * CResourceLoader::CreateResourceReaderLC(class TResourceReader &, int) const
+	?ModificationNotify@CBasePlugin@@UAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 197 NONAME ; void CBasePlugin::ModificationNotify(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int)
+	?SystemEventNotify@CBasePlugin@@UAEXW4TMsgStoreSystemEvent@@@Z @ 198 NONAME ; void CBasePlugin::SystemEventNotify(enum TMsgStoreSystemEvent)
+	?GetCachedMsgChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 199 NONAME ; class RPointerArray<class CMsgStoreMessagePart> & CBasePlugin::GetCachedMsgChildrenL(void)
+	?CreateMrReplyMessageL@CBasePlugin@@MAEPAVCFSMailMessage@@ABVTFSMailMsgId@@AAVMMRInfoObject@@0@Z @ 200 NONAME ; class CFSMailMessage * CBasePlugin::CreateMrReplyMessageL(class TFSMailMsgId const &, class MMRInfoObject &, class TFSMailMsgId const &)
+	?SetLocationL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 201 NONAME ; void CBaseMrInfoObject::SetLocationL(class TDesC16 const &)
+	?NewChildPartFromFilePathOrHandleL@CBasePlugin@@IAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1HAAVRFile@@@Z @ 202 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFilePathOrHandleL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, int, class RFile &)
+	?TranslateEmailFwMrL@CBasePlugin@@MAEXAAVMMRInfoObject@@AAVCMsgStorePropertyContainer@@@Z @ 203 NONAME ; void CBasePlugin::TranslateEmailFwMrL(class MMRInfoObject &, class CMsgStorePropertyContainer &)
+	?ConstructL@CBasePlugin@@IAEXXZ @ 204 NONAME ; void CBasePlugin::ConstructL(void)
+	?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1@Z @ 205 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &)
+	?CancelSyncL@CBasePlugin@@UAEHABVTFSMailMsgId@@@Z @ 206 NONAME ; int CBasePlugin::CancelSyncL(class TFSMailMsgId const &)
+	?RefreshCachedMailBoxDisplayNameL@CBasePlugin@@IAEXAAHABI@Z @ 207 NONAME ; void CBasePlugin::RefreshCachedMailBoxDisplayNameL(int &, unsigned int const &)
+	?CurrentSyncState@CBasePlugin@@UAE?AW4TSSMailSyncState@@ABVTFSMailMsgId@@@Z @ 208 NONAME ; enum TSSMailSyncState CBasePlugin::CurrentSyncState(class TFSMailMsgId const &)
+	?AddObserverL@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 209 NONAME ; void CBasePlugin::AddObserverL(class MFSMailEventObserver &)
+	?AttendeeRole@CBaseMrAttendee@@UBE?AW4TAttendeeRole@MMRAttendee@@XZ @ 210 NONAME ; enum MMRAttendee::TAttendeeRole CBaseMrAttendee::AttendeeRole(void) const
+	?GetCachedBodyL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@I@Z @ 211 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetCachedBodyL(unsigned int)
+	?PriorityL@CBaseMrInfoObject@@UBEIXZ @ 212 NONAME ; unsigned int CBaseMrInfoObject::PriorityL(void) const
+	?RecurrentWeekDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@XZ @ 213 NONAME ; class RArray<enum MRRecurrenceRule::TMRRecurrentDay> const & CBaseMrRecurrenceRule::RecurrentWeekDays(void) const
+	?ListMessagesL@CBasePlugin@@UAEPAVMFSMailIterator@@ABVTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 214 NONAME ; class MFSMailIterator * CBasePlugin::ListMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails, class RArray<class TFSMailSortCriteria> const &)
+	?Load2L@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 215 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, class TDesC16 const &)
+	?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@AAVRFile@@@Z @ 216 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class RFile &)
+	?SetMailboxName@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@@Z @ 217 NONAME ; void CBasePlugin::SetMailboxName(class TFSMailMsgId const &, class TDesC16 const &)
+	?NewLC@CBasePlugin@@SAPAV1@XZ @ 218 NONAME ; class CBasePlugin * CBasePlugin::NewLC(void)
+	?ExtensionL@CBaseMrInfoObject@@UAEPAXVTUid@@@Z @ 219 NONAME ; void * CBaseMrInfoObject::ExtensionL(class TUid)
+	?TranslateMsgStorePropsL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@AAVCFSMailMessagePart@@W4TFSMailDetails@@@Z @ 220 NONAME ; void CBasePlugin::TranslateMsgStorePropsL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &, enum TFSMailDetails)
+	?GetMailboxDisplayNameL@CBasePlugin@@IAEXIAAVRBuf16@@@Z @ 221 NONAME ; void CBasePlugin::GetMailboxDisplayNameL(unsigned int, class RBuf16 &)
 
--- a/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -63,234 +63,248 @@
 	_ZN11CBasePlugin18ModificationNotifyEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 62 NONAME
 	_ZN11CBasePlugin18NotifyGlobalEventLE12TFSMailEvent12TFSMailMsgIdPvS2_S2_ @ 63 NONAME
 	_ZN11CBasePlugin18RemovePartContentLERK12TFSMailMsgIdS2_S2_RK6RArrayIS0_E @ 64 NONAME
-	_ZN11CBasePlugin18SystemEventNotifyLE20TMsgStoreSystemEvent @ 65 NONAME
-	_ZN11CBasePlugin19AccountEventNotifyLE21TMsgStoreAccountEventlRK7TDesC16S3_j @ 66 NONAME
-	_ZN11CBasePlugin19CreateReplyMessageLERK12TFSMailMsgIdS2_iRK7TDesC16 @ 67 NONAME
-	_ZN11CBasePlugin19DeleteMailBoxByUidLERK12TFSMailMsgIdR22MFSMailRequestObserveri @ 68 NONAME
-	_ZN11CBasePlugin19GetContentToBufferLERK12TFSMailMsgIdS2_S2_S2_R6TDes16j @ 69 NONAME
-	_ZN11CBasePlugin19GetMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_R5RFile @ 70 NONAME
-	_ZN11CBasePlugin19ModificationNotifyLEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 71 NONAME
-	_ZN11CBasePlugin19NotifyMailboxEventLE12TFSMailEvent12TFSMailMsgIdPvS2_S2_ @ 72 NONAME
-	_ZN11CBasePlugin19TranslateEmailFwMrLER13MMRInfoObjectR26CMsgStorePropertyContainer @ 73 NONAME
-	_ZN11CBasePlugin20CopyMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16 @ 74 NONAME
-	_ZN11CBasePlugin20CreateMessageToSendLERK12TFSMailMsgId @ 75 NONAME
-	_ZN11CBasePlugin20DeleteMessagesByUidLERK12TFSMailMsgIdS2_RK6RArrayIS0_E @ 76 NONAME
-	_ZN11CBasePlugin20GetAccountForMsgBoxLERK12TFSMailMsgId @ 77 NONAME
-	_ZN11CBasePlugin20GetDelayedOpsManagerEv @ 78 NONAME
-	_ZN11CBasePlugin20GetStandardFolderIdLERK12TFSMailMsgId13TFSFolderType @ 79 NONAME
-	_ZN11CBasePlugin20HandleMailboxDeleteLERK12TFSMailMsgId @ 80 NONAME
-	_ZN11CBasePlugin20RefreshMailboxCacheLEj @ 81 NONAME
-	_ZN11CBasePlugin20RemoveAllPropertiesLER26CMsgStorePropertyContainerRK6TDesC8 @ 82 NONAME
-	_ZN11CBasePlugin20ReportRequestStatusLEjjjji @ 83 NONAME
-	_ZN11CBasePlugin20TranslateMsgStoreMrLERK12TFSMailMsgIdR26CMsgStorePropertyContainerS4_R18CFSMailMessagePart @ 84 NONAME
-	_ZN11CBasePlugin20WizardDataAvailableLEv @ 85 NONAME
-	_ZN11CBasePlugin21CreateForwardMessageLERK12TFSMailMsgIdS2_RK7TDesC16 @ 86 NONAME
-	_ZN11CBasePlugin21CreateMrReplyMessageLERK12TFSMailMsgIdR13MMRInfoObjectS2_ @ 87 NONAME
-	_ZN11CBasePlugin21GetCachedMsgChildrenLEv @ 88 NONAME
-	_ZN11CBasePlugin21MailboxHasCapabilityLE22TFSMailBoxCapabilities12TFSMailMsgId @ 89 NONAME
-	_ZN11CBasePlugin21NewChildPartFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16R5RFile @ 90 NONAME
-	_ZN11CBasePlugin21NewChildPartFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16S5_ @ 91 NONAME
-	_ZN11CBasePlugin22ClearSearchResultCacheERK12TFSMailMsgId @ 92 NONAME
-	_ZN11CBasePlugin22GetCachedBodyChildrenLEv @ 93 NONAME
-	_ZN11CBasePlugin22GetMailboxDisplayNameLEjR6RBuf16 @ 94 NONAME
-	_ZN11CBasePlugin23CopyMessageAsChildPartLERK12TFSMailMsgIdS2_S2_S2_S2_RK14CFSMailMessage @ 95 NONAME
-	_ZN11CBasePlugin23SetPartContentFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16 @ 96 NONAME
-	_ZN11CBasePlugin23SubscribeMailboxEventsLERK12TFSMailMsgIdR20MFSMailEventObserver @ 97 NONAME
-	_ZN11CBasePlugin23TranslateMsgStorePropsLERK12TFSMailMsgIdR26CMsgStorePropertyContainerR18CFSMailMessagePart14TFSMailDetails @ 98 NONAME
-	_ZN11CBasePlugin24HandleRemovePartContentLER16CMsgStoreMessageR20CMsgStoreMessagePart @ 99 NONAME
-	_ZN11CBasePlugin24TranslateEmailFwMessageLER18CFSMailMessagePartR20CMsgStoreMessageParti @ 100 NONAME
-	_ZN11CBasePlugin24UnsubscribeMailboxEventsERK12TFSMailMsgIdR20MFSMailEventObserver @ 101 NONAME
-	_ZN11CBasePlugin25DeleteFetchRequestForPartERNS_17TOngoingFetchInfoE @ 102 NONAME
-	_ZN11CBasePlugin25DoClearSearchResultCacheLERK12TFSMailMsgId @ 103 NONAME
-	_ZN11CBasePlugin25SetReplyOrForwardToFieldLER16CMsgStoreMessage @ 104 NONAME
-	_ZN11CBasePlugin25TranslateEmailFwAttendeeLER12MMROrganizerR16RMsgStoreAddress @ 105 NONAME
-	_ZN11CBasePlugin25TranslateEmailFwDayOfWeekEN16MRRecurrenceRule15TMRRecurrentDayERm @ 106 NONAME
-	_ZN11CBasePlugin25UnregisterRequestObserverEi @ 107 NONAME
-	_ZN11CBasePlugin25UnsubscribeMailboxEventsLERK12TFSMailMsgIdR20MFSMailEventObserver @ 108 NONAME
-	_ZN11CBasePlugin26CreateForwardReplyMessageLERK12TFSMailMsgIdS2_iRK7TDesC16ii @ 109 NONAME
-	_ZN11CBasePlugin26InvalidateCacheIfNecessaryEjjj @ 110 NONAME
-	_ZN11CBasePlugin26TranslateMsgStoreDayOfWeekEmR14TDayOfWeekFtor @ 111 NONAME
-	_ZN11CBasePlugin27TranslateEmailFwRecipientsLER20CMsgStoreMessagePartRK6TDesC8R13RPointerArrayI14CFSMailAddressE @ 112 NONAME
-	_ZN11CBasePlugin32RefreshCachedMailBoxDisplayNameLERiRKj @ 113 NONAME
-	_ZN11CBasePlugin33NewChildPartFromFilePathOrHandleLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16S5_iR5RFile @ 114 NONAME
-	_ZN11CBasePlugin4NewLEv @ 115 NONAME
-	_ZN11CBasePlugin5NewLCEv @ 116 NONAME
-	_ZN11CBasePlugin7CancelLEi @ 117 NONAME
-	_ZN11CBasePlugin7SearchLERK12TFSMailMsgIdRK6RArrayIS0_ERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver @ 118 NONAME
-	_ZN11CBasePlugin7StatusLEi @ 119 NONAME
-	_ZN11CBasePlugin8GetMrusLERK12TFSMailMsgId @ 120 NONAME
-	_ZN11CBasePlugin8SetMrusLERK12TFSMailMsgIdP12MDesC16Array @ 121 NONAME
-	_ZN11CBasePlugin9GoOnlineLERK12TFSMailMsgId @ 122 NONAME
-	_ZN11CBasePluginC1Ev @ 123 NONAME
-	_ZN11CBasePluginC2Ev @ 124 NONAME
-	_ZN11CBasePluginD0Ev @ 125 NONAME
-	_ZN11CBasePluginD1Ev @ 126 NONAME
-	_ZN11CBasePluginD2Ev @ 127 NONAME
-	_ZN15CBaseMrAttendee11SetAddressLERK7TDesC16 @ 128 NONAME
-	_ZN15CBaseMrAttendee14SetCommonNameLERK7TDesC16 @ 129 NONAME
-	_ZN15CBaseMrAttendee16SetAttendeeRoleLEN11MMRAttendee13TAttendeeRoleE @ 130 NONAME
-	_ZN15CBaseMrAttendee18SetAttendeeStatusLERN11MMRAttendee15TAttendeeStatusE @ 131 NONAME
-	_ZN15CBaseMrAttendee21SetResponseRequestedLEi @ 132 NONAME
-	_ZN15CBaseMrAttendee4NewLERK11MMRAttendee @ 133 NONAME
-	_ZN15CBaseMrAttendee4NewLERK12MMROrganizer @ 134 NONAME
-	_ZN15CBaseMrAttendee4NewLEv @ 135 NONAME
-	_ZN15CBaseMrAttendeeD0Ev @ 136 NONAME
-	_ZN15CBaseMrAttendeeD1Ev @ 137 NONAME
-	_ZN15CBaseMrAttendeeD2Ev @ 138 NONAME
-	_ZN17CBaseMrInfoObject10AttendeesLEv @ 139 NONAME
-	_ZN17CBaseMrInfoObject10ExtensionLE4TUid @ 140 NONAME
-	_ZN17CBaseMrInfoObject11SetSubjectLERK7TDesC16 @ 141 NONAME
-	_ZN17CBaseMrInfoObject12AddAttendeeLEP11MMRAttendee @ 142 NONAME
-	_ZN17CBaseMrInfoObject12MROrganizerLEv @ 143 NONAME
-	_ZN17CBaseMrInfoObject12SetLocationLERK7TDesC16 @ 144 NONAME
-	_ZN17CBaseMrInfoObject12SetPriorityLEj @ 145 NONAME
-	_ZN17CBaseMrInfoObject14SetAlarmInUtcLE5TTime @ 146 NONAME
-	_ZN17CBaseMrInfoObject14SetMRResponseLEN13MMRInfoObject9TResponseE @ 147 NONAME
-	_ZN17CBaseMrInfoObject15AddAttachmentsLEP13MMRAttachment @ 148 NONAME
-	_ZN17CBaseMrInfoObject15SetDescriptionLERK7TDesC16 @ 149 NONAME
-	_ZN17CBaseMrInfoObject16SetEndTimeInUtcLE5TTime @ 150 NONAME
-	_ZN17CBaseMrInfoObject18SetMRRecurrenceIdLE5TTime @ 151 NONAME
-	_ZN17CBaseMrInfoObject18SetRecurrenceRuleLERK16MRRecurrenceRule @ 152 NONAME
-	_ZN17CBaseMrInfoObject18SetStartTimeInUtcLE5TTime @ 153 NONAME
-	_ZN17CBaseMrInfoObject19SetMRSequenceNumberEi @ 154 NONAME
-	_ZN17CBaseMrInfoObject21SetCreationTimeInUtcLE5TTime @ 155 NONAME
-	_ZN17CBaseMrInfoObject23AddRecurrenceExceptionLEP13MMRInfoObject @ 156 NONAME
-	_ZN17CBaseMrInfoObject4NewLER13MMRInfoObject @ 157 NONAME
-	_ZN17CBaseMrInfoObject4NewLEv @ 158 NONAME
-	_ZN17CBaseMrInfoObject7SetUidLEP7HBufC16 @ 159 NONAME
-	_ZN17CBaseMrInfoObject7SetUidLERK7TDesC16 @ 160 NONAME
-	_ZN17CBaseMrInfoObject9SetMethodEN13MMRInfoObject9TMRMethodE @ 161 NONAME
-	_ZN17CBaseMrInfoObjectD0Ev @ 162 NONAME
-	_ZN17CBaseMrInfoObjectD1Ev @ 163 NONAME
-	_ZN17CBaseMrInfoObjectD2Ev @ 164 NONAME
-	_ZN20CBaseMrInfoProcessor22ReplyToMeetingRequestLERK12TFSMailMsgIdS2_R13MMRInfoObjectRN16MMRInfoProcessor19TMRInfoResponseModeERK7TDesC16 @ 165 NONAME
-	_ZN20CBaseMrInfoProcessor4NewLER11CBasePlugin @ 166 NONAME
-	_ZN20CBaseMrInfoProcessorD0Ev @ 167 NONAME
-	_ZN20CBaseMrInfoProcessorD1Ev @ 168 NONAME
-	_ZN20CBaseMrInfoProcessorD2Ev @ 169 NONAME
-	_ZN21CBaseMrRecurrenceRule18SetRecurrenceTypeLEN16MRRecurrenceRule17TMRRecurrenceTypeE @ 170 NONAME
-	_ZN21CBaseMrRecurrenceRule18SetRecurrentCountLEi @ 171 NONAME
-	_ZN21CBaseMrRecurrenceRule19SetRecurrenceUntilLE5TTime @ 172 NONAME
-	_ZN21CBaseMrRecurrenceRule19SetRecurrentMonthsLER6RArrayIN16MRRecurrenceRule18TMRRecurrenceMonthEE @ 173 NONAME
-	_ZN21CBaseMrRecurrenceRule20SetRecurrentIntervalEi @ 174 NONAME
-	_ZN21CBaseMrRecurrenceRule21SetRecurrentWeekDaysLER6RArrayIN16MRRecurrenceRule15TMRRecurrentDayEE @ 175 NONAME
-	_ZN21CBaseMrRecurrenceRule22SetRecurrentMonthDaysLER6RArrayIiE @ 176 NONAME
-	_ZN21CBaseMrRecurrenceRule23SetRecurrenceStartTimeLE5TTime @ 177 NONAME
-	_ZN21CBaseMrRecurrenceRule24SetRecurrentDaysofMonthLER6RArrayIN16MRRecurrenceRule21TRecurrentDaysofMonthEE @ 178 NONAME
-	_ZN21CBaseMrRecurrenceRule4NewLERK16MRRecurrenceRule @ 179 NONAME
-	_ZN21CBaseMrRecurrenceRule4NewLEv @ 180 NONAME
-	_ZN21CBaseMrRecurrenceRuleD0Ev @ 181 NONAME
-	_ZN21CBaseMrRecurrenceRuleD1Ev @ 182 NONAME
-	_ZN21CBaseMrRecurrenceRuleD2Ev @ 183 NONAME
-	_ZNK15CBaseMrAttendee10CommonNameEv @ 184 NONAME
-	_ZNK15CBaseMrAttendee12AttendeeRoleEv @ 185 NONAME
-	_ZNK15CBaseMrAttendee14AttendeeStatusEv @ 186 NONAME
-	_ZNK15CBaseMrAttendee17ResponseRequestedEv @ 187 NONAME
-	_ZNK15CBaseMrAttendee7AddressEv @ 188 NONAME
-	_ZNK17CBaseMrInfoObject10MRResponseEv @ 189 NONAME
-	_ZNK17CBaseMrInfoObject11AlarmInUtcLEv @ 190 NONAME
-	_ZNK17CBaseMrInfoObject12AttachmentsLEv @ 191 NONAME
-	_ZNK17CBaseMrInfoObject12DescriptionLEv @ 192 NONAME
-	_ZNK17CBaseMrInfoObject13EndTimeInUtcLEv @ 193 NONAME
-	_ZNK17CBaseMrInfoObject14MRRecurrenceIdEv @ 194 NONAME
-	_ZNK17CBaseMrInfoObject15RecurrenceRuleLEv @ 195 NONAME
-	_ZNK17CBaseMrInfoObject15StartTimeInUtcLEv @ 196 NONAME
-	_ZNK17CBaseMrInfoObject15SupportedFieldsER6RArrayIN13MMRInfoObject14TESMRInfoFieldEE @ 197 NONAME
-	_ZNK17CBaseMrInfoObject17MRSequenceNumberLEv @ 198 NONAME
-	_ZNK17CBaseMrInfoObject18CreationTimeInUtcLEv @ 199 NONAME
-	_ZNK17CBaseMrInfoObject21RecurrenceExceptionsLEv @ 200 NONAME
-	_ZNK17CBaseMrInfoObject4UidLEv @ 201 NONAME
-	_ZNK17CBaseMrInfoObject8SubjectLEv @ 202 NONAME
-	_ZNK17CBaseMrInfoObject9LocationLEv @ 203 NONAME
-	_ZNK17CBaseMrInfoObject9MRMethodLEv @ 204 NONAME
-	_ZNK17CBaseMrInfoObject9PriorityLEv @ 205 NONAME
-	_ZNK21CBaseMrRecurrenceRule14RecurrentCountEv @ 206 NONAME
-	_ZNK21CBaseMrRecurrenceRule14RecurrentUntilEv @ 207 NONAME
-	_ZNK21CBaseMrRecurrenceRule15RecurrentMonthsEv @ 208 NONAME
-	_ZNK21CBaseMrRecurrenceRule17RecurrentIntervalEv @ 209 NONAME
-	_ZNK21CBaseMrRecurrenceRule17RecurrentWeekDaysEv @ 210 NONAME
-	_ZNK21CBaseMrRecurrenceRule18RecurrentMonthDaysEv @ 211 NONAME
-	_ZNK21CBaseMrRecurrenceRule19RecurrenceStartTimeEv @ 212 NONAME
-	_ZNK21CBaseMrRecurrenceRule20RecurrentDaysofMonthEv @ 213 NONAME
-	_ZNK21CBaseMrRecurrenceRule4TypeEv @ 214 NONAME
-	_ZTI10CDelayedOp @ 215 NONAME
-	_ZTI11CBasePlugin @ 216 NONAME
-	_ZTV10CDelayedOp @ 217 NONAME
-	_ZTV11CBasePlugin @ 218 NONAME
-	_ZThn12_N11CBasePlugin18ModificationNotifyEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 219 NONAME
-	_ZThn4_N15CBaseMrAttendee11SetAddressLERK7TDesC16 @ 220 NONAME
-	_ZThn4_N15CBaseMrAttendee14SetCommonNameLERK7TDesC16 @ 221 NONAME
-	_ZThn4_N15CBaseMrAttendee16SetAttendeeRoleLEN11MMRAttendee13TAttendeeRoleE @ 222 NONAME
-	_ZThn4_N15CBaseMrAttendee18SetAttendeeStatusLERN11MMRAttendee15TAttendeeStatusE @ 223 NONAME
-	_ZThn4_N15CBaseMrAttendee21SetResponseRequestedLEi @ 224 NONAME
-	_ZThn4_N15CBaseMrAttendeeD0Ev @ 225 NONAME
-	_ZThn4_N15CBaseMrAttendeeD1Ev @ 226 NONAME
-	_ZThn4_N17CBaseMrInfoObject10AttendeesLEv @ 227 NONAME
-	_ZThn4_N17CBaseMrInfoObject10ExtensionLE4TUid @ 228 NONAME
-	_ZThn4_N17CBaseMrInfoObject11SetSubjectLERK7TDesC16 @ 229 NONAME
-	_ZThn4_N17CBaseMrInfoObject12AddAttendeeLEP11MMRAttendee @ 230 NONAME
-	_ZThn4_N17CBaseMrInfoObject12MROrganizerLEv @ 231 NONAME
-	_ZThn4_N17CBaseMrInfoObject12SetLocationLERK7TDesC16 @ 232 NONAME
-	_ZThn4_N17CBaseMrInfoObject12SetPriorityLEj @ 233 NONAME
-	_ZThn4_N17CBaseMrInfoObject14SetAlarmInUtcLE5TTime @ 234 NONAME
-	_ZThn4_N17CBaseMrInfoObject14SetMRResponseLEN13MMRInfoObject9TResponseE @ 235 NONAME
-	_ZThn4_N17CBaseMrInfoObject15AddAttachmentsLEP13MMRAttachment @ 236 NONAME
-	_ZThn4_N17CBaseMrInfoObject15SetDescriptionLERK7TDesC16 @ 237 NONAME
-	_ZThn4_N17CBaseMrInfoObject16SetEndTimeInUtcLE5TTime @ 238 NONAME
-	_ZThn4_N17CBaseMrInfoObject18SetMRRecurrenceIdLE5TTime @ 239 NONAME
-	_ZThn4_N17CBaseMrInfoObject18SetRecurrenceRuleLERK16MRRecurrenceRule @ 240 NONAME
-	_ZThn4_N17CBaseMrInfoObject18SetStartTimeInUtcLE5TTime @ 241 NONAME
-	_ZThn4_N17CBaseMrInfoObject21SetCreationTimeInUtcLE5TTime @ 242 NONAME
-	_ZThn4_N17CBaseMrInfoObject23AddRecurrenceExceptionLEP13MMRInfoObject @ 243 NONAME
-	_ZThn4_N17CBaseMrInfoObjectD0Ev @ 244 NONAME
-	_ZThn4_N17CBaseMrInfoObjectD1Ev @ 245 NONAME
-	_ZThn4_N20CBaseMrInfoProcessor22ReplyToMeetingRequestLERK12TFSMailMsgIdS2_R13MMRInfoObjectRN16MMRInfoProcessor19TMRInfoResponseModeERK7TDesC16 @ 246 NONAME
-	_ZThn4_N20CBaseMrInfoProcessorD0Ev @ 247 NONAME
-	_ZThn4_N20CBaseMrInfoProcessorD1Ev @ 248 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule18SetRecurrenceTypeLEN16MRRecurrenceRule17TMRRecurrenceTypeE @ 249 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule18SetRecurrentCountLEi @ 250 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule19SetRecurrenceUntilLE5TTime @ 251 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule19SetRecurrentMonthsLER6RArrayIN16MRRecurrenceRule18TMRRecurrenceMonthEE @ 252 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule20SetRecurrentIntervalEi @ 253 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule21SetRecurrentWeekDaysLER6RArrayIN16MRRecurrenceRule15TMRRecurrentDayEE @ 254 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule22SetRecurrentMonthDaysLER6RArrayIiE @ 255 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule23SetRecurrenceStartTimeLE5TTime @ 256 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRule24SetRecurrentDaysofMonthLER6RArrayIN16MRRecurrenceRule21TRecurrentDaysofMonthEE @ 257 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRuleD0Ev @ 258 NONAME
-	_ZThn4_N21CBaseMrRecurrenceRuleD1Ev @ 259 NONAME
-	_ZThn4_NK15CBaseMrAttendee10CommonNameEv @ 260 NONAME
-	_ZThn4_NK15CBaseMrAttendee12AttendeeRoleEv @ 261 NONAME
-	_ZThn4_NK15CBaseMrAttendee14AttendeeStatusEv @ 262 NONAME
-	_ZThn4_NK15CBaseMrAttendee17ResponseRequestedEv @ 263 NONAME
-	_ZThn4_NK15CBaseMrAttendee7AddressEv @ 264 NONAME
-	_ZThn4_NK17CBaseMrInfoObject10MRResponseEv @ 265 NONAME
-	_ZThn4_NK17CBaseMrInfoObject11AlarmInUtcLEv @ 266 NONAME
-	_ZThn4_NK17CBaseMrInfoObject12AttachmentsLEv @ 267 NONAME
-	_ZThn4_NK17CBaseMrInfoObject12DescriptionLEv @ 268 NONAME
-	_ZThn4_NK17CBaseMrInfoObject13EndTimeInUtcLEv @ 269 NONAME
-	_ZThn4_NK17CBaseMrInfoObject14MRRecurrenceIdEv @ 270 NONAME
-	_ZThn4_NK17CBaseMrInfoObject15RecurrenceRuleLEv @ 271 NONAME
-	_ZThn4_NK17CBaseMrInfoObject15StartTimeInUtcLEv @ 272 NONAME
-	_ZThn4_NK17CBaseMrInfoObject15SupportedFieldsER6RArrayIN13MMRInfoObject14TESMRInfoFieldEE @ 273 NONAME
-	_ZThn4_NK17CBaseMrInfoObject17MRSequenceNumberLEv @ 274 NONAME
-	_ZThn4_NK17CBaseMrInfoObject18CreationTimeInUtcLEv @ 275 NONAME
-	_ZThn4_NK17CBaseMrInfoObject21RecurrenceExceptionsLEv @ 276 NONAME
-	_ZThn4_NK17CBaseMrInfoObject4UidLEv @ 277 NONAME
-	_ZThn4_NK17CBaseMrInfoObject8SubjectLEv @ 278 NONAME
-	_ZThn4_NK17CBaseMrInfoObject9LocationLEv @ 279 NONAME
-	_ZThn4_NK17CBaseMrInfoObject9MRMethodLEv @ 280 NONAME
-	_ZThn4_NK17CBaseMrInfoObject9PriorityLEv @ 281 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule14RecurrentCountEv @ 282 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule14RecurrentUntilEv @ 283 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule15RecurrentMonthsEv @ 284 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule17RecurrentIntervalEv @ 285 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule17RecurrentWeekDaysEv @ 286 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule18RecurrentMonthDaysEv @ 287 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule19RecurrenceStartTimeEv @ 288 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule20RecurrentDaysofMonthEv @ 289 NONAME
-	_ZThn4_NK21CBaseMrRecurrenceRule4TypeEv @ 290 NONAME
-	_ZThn8_N11CBasePlugin17SystemEventNotifyE20TMsgStoreSystemEvent @ 291 NONAME
-	_ZThn8_N11CBasePlugin18AccountEventNotifyE21TMsgStoreAccountEventlRK7TDesC16S3_j @ 292 NONAME
-	_ZN11CBasePlugin18StoreMessagePartsLER13RPointerArrayI18CFSMailMessagePartER22MFSMailRequestObserveri @ 293 NONAME
-	_ZN11CBasePlugin20CreateMessageToSendLERK12TFSMailMsgIdR22MFSMailRequestObserveri @ 294 NONAME
+	_ZN11CBasePlugin18StoreMessagePartsLER13RPointerArrayI18CFSMailMessagePartER22MFSMailRequestObserveri @ 65 NONAME
+	_ZN11CBasePlugin18SystemEventNotifyLE20TMsgStoreSystemEvent @ 66 NONAME
+	_ZN11CBasePlugin19AccountEventNotifyLE21TMsgStoreAccountEventlRK7TDesC16S3_j @ 67 NONAME
+	_ZN11CBasePlugin19CreateReplyMessageLERK12TFSMailMsgIdS2_iRK7TDesC16 @ 68 NONAME
+	_ZN11CBasePlugin19DeleteMailBoxByUidLERK12TFSMailMsgIdR22MFSMailRequestObserveri @ 69 NONAME
+	_ZN11CBasePlugin19GetContentToBufferLERK12TFSMailMsgIdS2_S2_S2_R6TDes16j @ 70 NONAME
+	_ZN11CBasePlugin19GetMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_R5RFile @ 71 NONAME
+	_ZN11CBasePlugin19ModificationNotifyLEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 72 NONAME
+	_ZN11CBasePlugin19NotifyMailboxEventLE12TFSMailEvent12TFSMailMsgIdPvS2_S2_ @ 73 NONAME
+	_ZN11CBasePlugin19TranslateEmailFwMrLER13MMRInfoObjectR26CMsgStorePropertyContainer @ 74 NONAME
+	_ZN11CBasePlugin20CopyMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16 @ 75 NONAME
+	_ZN11CBasePlugin20CreateMessageToSendLERK12TFSMailMsgId @ 76 NONAME
+	_ZN11CBasePlugin20CreateMessageToSendLERK12TFSMailMsgIdR22MFSMailRequestObserveri @ 77 NONAME
+	_ZN11CBasePlugin20DeleteMessagesByUidLERK12TFSMailMsgIdS2_RK6RArrayIS0_E @ 78 NONAME
+	_ZN11CBasePlugin20GetAccountForMsgBoxLERK12TFSMailMsgId @ 79 NONAME
+	_ZN11CBasePlugin20GetDelayedOpsManagerEv @ 80 NONAME
+	_ZN11CBasePlugin20GetStandardFolderIdLERK12TFSMailMsgId13TFSFolderType @ 81 NONAME
+	_ZN11CBasePlugin20HandleMailboxDeleteLERK12TFSMailMsgId @ 82 NONAME
+	_ZN11CBasePlugin20RefreshMailboxCacheLEj @ 83 NONAME
+	_ZN11CBasePlugin20RemoveAllPropertiesLER26CMsgStorePropertyContainerRK6TDesC8 @ 84 NONAME
+	_ZN11CBasePlugin20ReportRequestStatusLEjjjji @ 85 NONAME
+	_ZN11CBasePlugin20TranslateMsgStoreMrLERK12TFSMailMsgIdR26CMsgStorePropertyContainerS4_R18CFSMailMessagePart @ 86 NONAME
+	_ZN11CBasePlugin20WizardDataAvailableLEv @ 87 NONAME
+	_ZN11CBasePlugin21CreateForwardMessageLERK12TFSMailMsgIdS2_RK7TDesC16 @ 88 NONAME
+	_ZN11CBasePlugin21CreateMrReplyMessageLERK12TFSMailMsgIdR13MMRInfoObjectS2_ @ 89 NONAME
+	_ZN11CBasePlugin21GetCachedMsgChildrenLEv @ 90 NONAME
+	_ZN11CBasePlugin21MailboxHasCapabilityLE22TFSMailBoxCapabilities12TFSMailMsgId @ 91 NONAME
+	_ZN11CBasePlugin21NewChildPartFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16R5RFile @ 92 NONAME
+	_ZN11CBasePlugin21NewChildPartFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16S5_ @ 93 NONAME
+	_ZN11CBasePlugin22ClearSearchResultCacheERK12TFSMailMsgId @ 94 NONAME
+	_ZN11CBasePlugin22GetCachedBodyChildrenLEv @ 95 NONAME
+	_ZN11CBasePlugin22GetMailboxDisplayNameLEjR6RBuf16 @ 96 NONAME
+	_ZN11CBasePlugin23CopyMessageAsChildPartLERK12TFSMailMsgIdS2_S2_S2_S2_RK14CFSMailMessage @ 97 NONAME
+	_ZN11CBasePlugin23SetPartContentFromFileLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16 @ 98 NONAME
+	_ZN11CBasePlugin23SubscribeMailboxEventsLERK12TFSMailMsgIdR20MFSMailEventObserver @ 99 NONAME
+	_ZN11CBasePlugin23TranslateMsgStorePropsLERK12TFSMailMsgIdR26CMsgStorePropertyContainerR18CFSMailMessagePart14TFSMailDetails @ 100 NONAME
+	_ZN11CBasePlugin24HandleRemovePartContentLER16CMsgStoreMessageR20CMsgStoreMessagePart @ 101 NONAME
+	_ZN11CBasePlugin24TranslateEmailFwMessageLER18CFSMailMessagePartR20CMsgStoreMessageParti @ 102 NONAME
+	_ZN11CBasePlugin24UnsubscribeMailboxEventsERK12TFSMailMsgIdR20MFSMailEventObserver @ 103 NONAME
+	_ZN11CBasePlugin25DeleteFetchRequestForPartERNS_17TOngoingFetchInfoE @ 104 NONAME
+	_ZN11CBasePlugin25DoClearSearchResultCacheLERK12TFSMailMsgId @ 105 NONAME
+	_ZN11CBasePlugin25SetReplyOrForwardToFieldLER16CMsgStoreMessage @ 106 NONAME
+	_ZN11CBasePlugin25TranslateEmailFwAttendeeLER12MMROrganizerR16RMsgStoreAddress @ 107 NONAME
+	_ZN11CBasePlugin25TranslateEmailFwDayOfWeekEN16MRRecurrenceRule15TMRRecurrentDayERm @ 108 NONAME
+	_ZN11CBasePlugin25UnregisterRequestObserverEi @ 109 NONAME
+	_ZN11CBasePlugin25UnsubscribeMailboxEventsLERK12TFSMailMsgIdR20MFSMailEventObserver @ 110 NONAME
+	_ZN11CBasePlugin26CreateForwardReplyMessageLERK12TFSMailMsgIdS2_iRK7TDesC16ii @ 111 NONAME
+	_ZN11CBasePlugin26InvalidateCacheIfNecessaryEjjj @ 112 NONAME
+	_ZN11CBasePlugin26TranslateMsgStoreDayOfWeekEmR14TDayOfWeekFtor @ 113 NONAME
+	_ZN11CBasePlugin27TranslateEmailFwRecipientsLER20CMsgStoreMessagePartRK6TDesC8R13RPointerArrayI14CFSMailAddressE @ 114 NONAME
+	_ZN11CBasePlugin32RefreshCachedMailBoxDisplayNameLERiRKj @ 115 NONAME
+	_ZN11CBasePlugin33NewChildPartFromFilePathOrHandleLERK12TFSMailMsgIdS2_S2_S2_RK7TDesC16S5_iR5RFile @ 116 NONAME
+	_ZN11CBasePlugin4NewLEv @ 117 NONAME
+	_ZN11CBasePlugin5NewLCEv @ 118 NONAME
+	_ZN11CBasePlugin7CancelLEi @ 119 NONAME
+	_ZN11CBasePlugin7SearchLERK12TFSMailMsgIdRK6RArrayIS0_ERK13RPointerArrayI7TDesC16ERK19TFSMailSortCriteriaR24MFSMailBoxSearchObserver @ 120 NONAME
+	_ZN11CBasePlugin7StatusLEi @ 121 NONAME
+	_ZN11CBasePlugin8GetMrusLERK12TFSMailMsgId @ 122 NONAME
+	_ZN11CBasePlugin8SetMrusLERK12TFSMailMsgIdP12MDesC16Array @ 123 NONAME
+	_ZN11CBasePlugin9GoOnlineLERK12TFSMailMsgId @ 124 NONAME
+	_ZN11CBasePluginC1Ev @ 125 NONAME
+	_ZN11CBasePluginC2Ev @ 126 NONAME
+	_ZN11CBasePluginD0Ev @ 127 NONAME
+	_ZN11CBasePluginD1Ev @ 128 NONAME
+	_ZN11CBasePluginD2Ev @ 129 NONAME
+	_ZN15CBaseMrAttendee11SetAddressLERK7TDesC16 @ 130 NONAME
+	_ZN15CBaseMrAttendee14SetCommonNameLERK7TDesC16 @ 131 NONAME
+	_ZN15CBaseMrAttendee16SetAttendeeRoleLEN11MMRAttendee13TAttendeeRoleE @ 132 NONAME
+	_ZN15CBaseMrAttendee18SetAttendeeStatusLERN11MMRAttendee15TAttendeeStatusE @ 133 NONAME
+	_ZN15CBaseMrAttendee21SetResponseRequestedLEi @ 134 NONAME
+	_ZN15CBaseMrAttendee4NewLERK11MMRAttendee @ 135 NONAME
+	_ZN15CBaseMrAttendee4NewLERK12MMROrganizer @ 136 NONAME
+	_ZN15CBaseMrAttendee4NewLEv @ 137 NONAME
+	_ZN15CBaseMrAttendeeD0Ev @ 138 NONAME
+	_ZN15CBaseMrAttendeeD1Ev @ 139 NONAME
+	_ZN15CBaseMrAttendeeD2Ev @ 140 NONAME
+	_ZN15CResourceLoader2FsEv @ 141 NONAME
+	_ZN15CResourceLoader4NewLERK7TDesC16 @ 142 NONAME
+	_ZN15CResourceLoader6Load2LEi @ 143 NONAME
+	_ZN15CResourceLoader6Load2LEiRK7TDesC16 @ 144 NONAME
+	_ZN15CResourceLoader6Load2LEii @ 145 NONAME
+	_ZN15CResourceLoader6LoadLCEi @ 146 NONAME
+	_ZN15CResourceLoader7Load2LCEi @ 147 NONAME
+	_ZN15CResourceLoader7Load2LCEiRK7TDesC16 @ 148 NONAME
+	_ZN15CResourceLoader7Load2LCEii @ 149 NONAME
+	_ZN15CResourceLoaderD0Ev @ 150 NONAME
+	_ZN15CResourceLoaderD1Ev @ 151 NONAME
+	_ZN15CResourceLoaderD2Ev @ 152 NONAME
+	_ZN17CBaseMrInfoObject10AttendeesLEv @ 153 NONAME
+	_ZN17CBaseMrInfoObject10ExtensionLE4TUid @ 154 NONAME
+	_ZN17CBaseMrInfoObject11SetSubjectLERK7TDesC16 @ 155 NONAME
+	_ZN17CBaseMrInfoObject12AddAttendeeLEP11MMRAttendee @ 156 NONAME
+	_ZN17CBaseMrInfoObject12MROrganizerLEv @ 157 NONAME
+	_ZN17CBaseMrInfoObject12SetLocationLERK7TDesC16 @ 158 NONAME
+	_ZN17CBaseMrInfoObject12SetPriorityLEj @ 159 NONAME
+	_ZN17CBaseMrInfoObject14SetAlarmInUtcLE5TTime @ 160 NONAME
+	_ZN17CBaseMrInfoObject14SetMRResponseLEN13MMRInfoObject9TResponseE @ 161 NONAME
+	_ZN17CBaseMrInfoObject15AddAttachmentsLEP13MMRAttachment @ 162 NONAME
+	_ZN17CBaseMrInfoObject15SetDescriptionLERK7TDesC16 @ 163 NONAME
+	_ZN17CBaseMrInfoObject16SetEndTimeInUtcLE5TTime @ 164 NONAME
+	_ZN17CBaseMrInfoObject18SetMRRecurrenceIdLE5TTime @ 165 NONAME
+	_ZN17CBaseMrInfoObject18SetRecurrenceRuleLERK16MRRecurrenceRule @ 166 NONAME
+	_ZN17CBaseMrInfoObject18SetStartTimeInUtcLE5TTime @ 167 NONAME
+	_ZN17CBaseMrInfoObject19SetMRSequenceNumberEi @ 168 NONAME
+	_ZN17CBaseMrInfoObject21SetCreationTimeInUtcLE5TTime @ 169 NONAME
+	_ZN17CBaseMrInfoObject23AddRecurrenceExceptionLEP13MMRInfoObject @ 170 NONAME
+	_ZN17CBaseMrInfoObject4NewLER13MMRInfoObject @ 171 NONAME
+	_ZN17CBaseMrInfoObject4NewLEv @ 172 NONAME
+	_ZN17CBaseMrInfoObject7SetUidLEP7HBufC16 @ 173 NONAME
+	_ZN17CBaseMrInfoObject7SetUidLERK7TDesC16 @ 174 NONAME
+	_ZN17CBaseMrInfoObject9SetMethodEN13MMRInfoObject9TMRMethodE @ 175 NONAME
+	_ZN17CBaseMrInfoObjectD0Ev @ 176 NONAME
+	_ZN17CBaseMrInfoObjectD1Ev @ 177 NONAME
+	_ZN17CBaseMrInfoObjectD2Ev @ 178 NONAME
+	_ZN20CBaseMrInfoProcessor22ReplyToMeetingRequestLERK12TFSMailMsgIdS2_R13MMRInfoObjectRN16MMRInfoProcessor19TMRInfoResponseModeERK7TDesC16 @ 179 NONAME
+	_ZN20CBaseMrInfoProcessor4NewLER11CBasePlugin @ 180 NONAME
+	_ZN20CBaseMrInfoProcessorD0Ev @ 181 NONAME
+	_ZN20CBaseMrInfoProcessorD1Ev @ 182 NONAME
+	_ZN20CBaseMrInfoProcessorD2Ev @ 183 NONAME
+	_ZN21CBaseMrRecurrenceRule18SetRecurrenceTypeLEN16MRRecurrenceRule17TMRRecurrenceTypeE @ 184 NONAME
+	_ZN21CBaseMrRecurrenceRule18SetRecurrentCountLEi @ 185 NONAME
+	_ZN21CBaseMrRecurrenceRule19SetRecurrenceUntilLE5TTime @ 186 NONAME
+	_ZN21CBaseMrRecurrenceRule19SetRecurrentMonthsLER6RArrayIN16MRRecurrenceRule18TMRRecurrenceMonthEE @ 187 NONAME
+	_ZN21CBaseMrRecurrenceRule20SetRecurrentIntervalEi @ 188 NONAME
+	_ZN21CBaseMrRecurrenceRule21SetRecurrentWeekDaysLER6RArrayIN16MRRecurrenceRule15TMRRecurrentDayEE @ 189 NONAME
+	_ZN21CBaseMrRecurrenceRule22SetRecurrentMonthDaysLER6RArrayIiE @ 190 NONAME
+	_ZN21CBaseMrRecurrenceRule23SetRecurrenceStartTimeLE5TTime @ 191 NONAME
+	_ZN21CBaseMrRecurrenceRule24SetRecurrentDaysofMonthLER6RArrayIN16MRRecurrenceRule21TRecurrentDaysofMonthEE @ 192 NONAME
+	_ZN21CBaseMrRecurrenceRule4NewLERK16MRRecurrenceRule @ 193 NONAME
+	_ZN21CBaseMrRecurrenceRule4NewLEv @ 194 NONAME
+	_ZN21CBaseMrRecurrenceRuleD0Ev @ 195 NONAME
+	_ZN21CBaseMrRecurrenceRuleD1Ev @ 196 NONAME
+	_ZN21CBaseMrRecurrenceRuleD2Ev @ 197 NONAME
+	_ZNK11CBasePlugin16CalendarFileNameEv @ 198 NONAME
+	_ZNK15CBaseMrAttendee10CommonNameEv @ 199 NONAME
+	_ZNK15CBaseMrAttendee12AttendeeRoleEv @ 200 NONAME
+	_ZNK15CBaseMrAttendee14AttendeeStatusEv @ 201 NONAME
+	_ZNK15CBaseMrAttendee17ResponseRequestedEv @ 202 NONAME
+	_ZNK15CBaseMrAttendee7AddressEv @ 203 NONAME
+	_ZNK15CResourceLoader22CreateResourceReaderLCER15TResourceReaderi @ 204 NONAME
+	_ZNK17CBaseMrInfoObject10MRResponseEv @ 205 NONAME
+	_ZNK17CBaseMrInfoObject11AlarmInUtcLEv @ 206 NONAME
+	_ZNK17CBaseMrInfoObject12AttachmentsLEv @ 207 NONAME
+	_ZNK17CBaseMrInfoObject12DescriptionLEv @ 208 NONAME
+	_ZNK17CBaseMrInfoObject13EndTimeInUtcLEv @ 209 NONAME
+	_ZNK17CBaseMrInfoObject14MRRecurrenceIdEv @ 210 NONAME
+	_ZNK17CBaseMrInfoObject15RecurrenceRuleLEv @ 211 NONAME
+	_ZNK17CBaseMrInfoObject15StartTimeInUtcLEv @ 212 NONAME
+	_ZNK17CBaseMrInfoObject15SupportedFieldsER6RArrayIN13MMRInfoObject14TESMRInfoFieldEE @ 213 NONAME
+	_ZNK17CBaseMrInfoObject17MRSequenceNumberLEv @ 214 NONAME
+	_ZNK17CBaseMrInfoObject18CreationTimeInUtcLEv @ 215 NONAME
+	_ZNK17CBaseMrInfoObject21RecurrenceExceptionsLEv @ 216 NONAME
+	_ZNK17CBaseMrInfoObject4UidLEv @ 217 NONAME
+	_ZNK17CBaseMrInfoObject8SubjectLEv @ 218 NONAME
+	_ZNK17CBaseMrInfoObject9LocationLEv @ 219 NONAME
+	_ZNK17CBaseMrInfoObject9MRMethodLEv @ 220 NONAME
+	_ZNK17CBaseMrInfoObject9PriorityLEv @ 221 NONAME
+	_ZNK21CBaseMrRecurrenceRule14RecurrentCountEv @ 222 NONAME
+	_ZNK21CBaseMrRecurrenceRule14RecurrentUntilEv @ 223 NONAME
+	_ZNK21CBaseMrRecurrenceRule15RecurrentMonthsEv @ 224 NONAME
+	_ZNK21CBaseMrRecurrenceRule17RecurrentIntervalEv @ 225 NONAME
+	_ZNK21CBaseMrRecurrenceRule17RecurrentWeekDaysEv @ 226 NONAME
+	_ZNK21CBaseMrRecurrenceRule18RecurrentMonthDaysEv @ 227 NONAME
+	_ZNK21CBaseMrRecurrenceRule19RecurrenceStartTimeEv @ 228 NONAME
+	_ZNK21CBaseMrRecurrenceRule20RecurrentDaysofMonthEv @ 229 NONAME
+	_ZNK21CBaseMrRecurrenceRule4TypeEv @ 230 NONAME
+	_ZTI10CDelayedOp @ 231 NONAME
+	_ZTI11CBasePlugin @ 232 NONAME
+	_ZTV10CDelayedOp @ 233 NONAME
+	_ZTV11CBasePlugin @ 234 NONAME
+	_ZThn32_N11CBasePlugin17SystemEventNotifyE20TMsgStoreSystemEvent @ 235 NONAME
+	_ZThn32_N11CBasePlugin18AccountEventNotifyE21TMsgStoreAccountEventlRK7TDesC16S3_j @ 236 NONAME
+	_ZThn36_N11CBasePlugin18ModificationNotifyEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 237 NONAME
+	_ZThn4_N15CBaseMrAttendee11SetAddressLERK7TDesC16 @ 238 NONAME
+	_ZThn4_N15CBaseMrAttendee14SetCommonNameLERK7TDesC16 @ 239 NONAME
+	_ZThn4_N15CBaseMrAttendee16SetAttendeeRoleLEN11MMRAttendee13TAttendeeRoleE @ 240 NONAME
+	_ZThn4_N15CBaseMrAttendee18SetAttendeeStatusLERN11MMRAttendee15TAttendeeStatusE @ 241 NONAME
+	_ZThn4_N15CBaseMrAttendee21SetResponseRequestedLEi @ 242 NONAME
+	_ZThn4_N15CBaseMrAttendeeD0Ev @ 243 NONAME
+	_ZThn4_N15CBaseMrAttendeeD1Ev @ 244 NONAME
+	_ZThn4_N17CBaseMrInfoObject10AttendeesLEv @ 245 NONAME
+	_ZThn4_N17CBaseMrInfoObject10ExtensionLE4TUid @ 246 NONAME
+	_ZThn4_N17CBaseMrInfoObject11SetSubjectLERK7TDesC16 @ 247 NONAME
+	_ZThn4_N17CBaseMrInfoObject12AddAttendeeLEP11MMRAttendee @ 248 NONAME
+	_ZThn4_N17CBaseMrInfoObject12MROrganizerLEv @ 249 NONAME
+	_ZThn4_N17CBaseMrInfoObject12SetLocationLERK7TDesC16 @ 250 NONAME
+	_ZThn4_N17CBaseMrInfoObject12SetPriorityLEj @ 251 NONAME
+	_ZThn4_N17CBaseMrInfoObject14SetAlarmInUtcLE5TTime @ 252 NONAME
+	_ZThn4_N17CBaseMrInfoObject14SetMRResponseLEN13MMRInfoObject9TResponseE @ 253 NONAME
+	_ZThn4_N17CBaseMrInfoObject15AddAttachmentsLEP13MMRAttachment @ 254 NONAME
+	_ZThn4_N17CBaseMrInfoObject15SetDescriptionLERK7TDesC16 @ 255 NONAME
+	_ZThn4_N17CBaseMrInfoObject16SetEndTimeInUtcLE5TTime @ 256 NONAME
+	_ZThn4_N17CBaseMrInfoObject18SetMRRecurrenceIdLE5TTime @ 257 NONAME
+	_ZThn4_N17CBaseMrInfoObject18SetRecurrenceRuleLERK16MRRecurrenceRule @ 258 NONAME
+	_ZThn4_N17CBaseMrInfoObject18SetStartTimeInUtcLE5TTime @ 259 NONAME
+	_ZThn4_N17CBaseMrInfoObject21SetCreationTimeInUtcLE5TTime @ 260 NONAME
+	_ZThn4_N17CBaseMrInfoObject23AddRecurrenceExceptionLEP13MMRInfoObject @ 261 NONAME
+	_ZThn4_N17CBaseMrInfoObjectD0Ev @ 262 NONAME
+	_ZThn4_N17CBaseMrInfoObjectD1Ev @ 263 NONAME
+	_ZThn4_N20CBaseMrInfoProcessor22ReplyToMeetingRequestLERK12TFSMailMsgIdS2_R13MMRInfoObjectRN16MMRInfoProcessor19TMRInfoResponseModeERK7TDesC16 @ 264 NONAME
+	_ZThn4_N20CBaseMrInfoProcessorD0Ev @ 265 NONAME
+	_ZThn4_N20CBaseMrInfoProcessorD1Ev @ 266 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule18SetRecurrenceTypeLEN16MRRecurrenceRule17TMRRecurrenceTypeE @ 267 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule18SetRecurrentCountLEi @ 268 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule19SetRecurrenceUntilLE5TTime @ 269 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule19SetRecurrentMonthsLER6RArrayIN16MRRecurrenceRule18TMRRecurrenceMonthEE @ 270 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule20SetRecurrentIntervalEi @ 271 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule21SetRecurrentWeekDaysLER6RArrayIN16MRRecurrenceRule15TMRRecurrentDayEE @ 272 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule22SetRecurrentMonthDaysLER6RArrayIiE @ 273 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule23SetRecurrenceStartTimeLE5TTime @ 274 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRule24SetRecurrentDaysofMonthLER6RArrayIN16MRRecurrenceRule21TRecurrentDaysofMonthEE @ 275 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRuleD0Ev @ 276 NONAME
+	_ZThn4_N21CBaseMrRecurrenceRuleD1Ev @ 277 NONAME
+	_ZThn4_NK15CBaseMrAttendee10CommonNameEv @ 278 NONAME
+	_ZThn4_NK15CBaseMrAttendee12AttendeeRoleEv @ 279 NONAME
+	_ZThn4_NK15CBaseMrAttendee14AttendeeStatusEv @ 280 NONAME
+	_ZThn4_NK15CBaseMrAttendee17ResponseRequestedEv @ 281 NONAME
+	_ZThn4_NK15CBaseMrAttendee7AddressEv @ 282 NONAME
+	_ZThn4_NK17CBaseMrInfoObject10MRResponseEv @ 283 NONAME
+	_ZThn4_NK17CBaseMrInfoObject11AlarmInUtcLEv @ 284 NONAME
+	_ZThn4_NK17CBaseMrInfoObject12AttachmentsLEv @ 285 NONAME
+	_ZThn4_NK17CBaseMrInfoObject12DescriptionLEv @ 286 NONAME
+	_ZThn4_NK17CBaseMrInfoObject13EndTimeInUtcLEv @ 287 NONAME
+	_ZThn4_NK17CBaseMrInfoObject14MRRecurrenceIdEv @ 288 NONAME
+	_ZThn4_NK17CBaseMrInfoObject15RecurrenceRuleLEv @ 289 NONAME
+	_ZThn4_NK17CBaseMrInfoObject15StartTimeInUtcLEv @ 290 NONAME
+	_ZThn4_NK17CBaseMrInfoObject15SupportedFieldsER6RArrayIN13MMRInfoObject14TESMRInfoFieldEE @ 291 NONAME
+	_ZThn4_NK17CBaseMrInfoObject17MRSequenceNumberLEv @ 292 NONAME
+	_ZThn4_NK17CBaseMrInfoObject18CreationTimeInUtcLEv @ 293 NONAME
+	_ZThn4_NK17CBaseMrInfoObject21RecurrenceExceptionsLEv @ 294 NONAME
+	_ZThn4_NK17CBaseMrInfoObject4UidLEv @ 295 NONAME
+	_ZThn4_NK17CBaseMrInfoObject8SubjectLEv @ 296 NONAME
+	_ZThn4_NK17CBaseMrInfoObject9LocationLEv @ 297 NONAME
+	_ZThn4_NK17CBaseMrInfoObject9MRMethodLEv @ 298 NONAME
+	_ZThn4_NK17CBaseMrInfoObject9PriorityLEv @ 299 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule14RecurrentCountEv @ 300 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule14RecurrentUntilEv @ 301 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule15RecurrentMonthsEv @ 302 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule17RecurrentIntervalEv @ 303 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule17RecurrentWeekDaysEv @ 304 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule18RecurrentMonthDaysEv @ 305 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule19RecurrenceStartTimeEv @ 306 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule20RecurrentDaysofMonthEv @ 307 NONAME
+	_ZThn4_NK21CBaseMrRecurrenceRule4TypeEv @ 308 NONAME
 
--- a/emailservices/emailstore/base_plugin/base_plugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/base_plugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -31,10 +31,12 @@
            inc/baseplugindelayedopsprivate.h \
            inc/BasePluginPanic.h \
            inc/MailIterator.h \
+	   inc/basepluginresourceloader.h  \
            inc/Map.h \
            inc/SafePointerArray.h \
            inc/Map.inl \
-           inc/baseplugindef.h 
+           inc/baseplugindef.h \
+	   inc/nestedao.h
 SOURCES += src/BaseMrInfoObject.cpp \
            src/BasePlugin.cpp \
            src/baseplugindelayedops.cpp \
@@ -44,7 +46,9 @@
            src/BasePluginPanic.cpp \
            src/basepluginparts.cpp \
            src/baseplugintranslator.cpp \
-           src/MailIterator.cpp
+           src/MailIterator.cpp \
+	   src/basepluginresourceloader.cpp \
+	   src/nestedao.cpp
 
 LIBS += -leuser \
 		-lecom \
@@ -52,7 +56,8 @@
 		-lbafl \
 		-lmessagestoreclient \
 		-lfsfwcommonlib \
-		-ldebuglog
+		-ldebuglog \
+		-lcalinterimapi
 		
 symbian*: { 
     
--- a/emailservices/emailstore/base_plugin/group/BasePlugin.mmp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/group/BasePlugin.mmp	Mon May 03 12:23:15 2010 +0300
@@ -23,6 +23,7 @@
 // Removed from 10.1
 //#include "../../../../inc/emailversionnumbers.hrh" // KEmailBinaryVersionNumber
 //</qmail>
+#include "../../../../inc/emailtraceconfig.hrh"
 #include "../../inc/EmailStoreUids.hrh"
 
 TARGET            baseplugin.dll
@@ -56,16 +57,18 @@
 APP_LAYER_SYSTEMINCLUDE
 
 SOURCEPATH ../src
-SOURCE baseplugin.cpp
+SOURCE BasePlugin.cpp
 SOURCE basepluginmisc.cpp
 SOURCE basepluginparts.cpp
 SOURCE basepluginnotifications.cpp
-SOURCE basepluginpanic.cpp
+SOURCE BasePluginPanic.cpp
 SOURCE baseplugintranslator.cpp
-SOURCE mailiterator.cpp
-SOURCE basemrinfoobject.cpp
+SOURCE MailIterator.cpp
+SOURCE BaseMrInfoObject.cpp
 SOURCE basepluginfetch.cpp
 SOURCE baseplugindelayedops.cpp
+SOURCE basepluginresourceloader.cpp
+SOURCE nestedao.cpp
 
 // *************************************
 // OTHER STUFF
@@ -78,8 +81,14 @@
 LIBRARY     ecom.lib
 LIBRARY     charconv.lib
 LIBRARY     bafl.lib
+LIBRARY     efsrv.lib
+LIBRARY     gdi.lib
+LIBRARY     calinterimapi.lib
 
 LIBRARY     messagestoreclient.lib
 LIBRARY     fsfwcommonlib.lib
 
 LIBRARY     debuglog.lib
+#ifdef TRACE_INTO_FILE
+LIBRARY     flogger.lib
+#endif // TRACE_INTO_FILE
--- a/emailservices/emailstore/base_plugin/group/bld.inf	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/group/bld.inf	Mon May 03 12:23:15 2010 +0300
@@ -28,6 +28,7 @@
 ../inc/basemrinfoobject.h        |../../../../inc/basemrinfoobject.h
 ../inc/baseplugincommonutils.h   |../../../../inc/baseplugincommonutils.h
 ../inc/baseplugindelayedops.h    |../../../../inc/baseplugindelayedops.h
+../inc/basepluginresourceloader.h |../../../../inc/basepluginresourceloader.h
 
 PRJ_MMPFILES
 ./BasePlugin.mmp
\ No newline at end of file
--- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Mon May 03 12:23:15 2010 +0300
@@ -34,7 +34,9 @@
 #include "DebugLogMacros.h"
 //</cmail>
 
+//<qmail> Entire CBasePlugin class is exported in 10.1
 #include "baseplugindef.h"
+//</qmail>
 
 #include "basemrinfoobject.h"
 #include "Map.h"
@@ -201,12 +203,12 @@
 
          virtual CFSMailMessage* CreateMessageToSendL(
             const TFSMailMsgId& aMailBox );
-         // <qmail>
+// <qmail>
         virtual void CreateMessageToSendL(
             const TFSMailMsgId& aMailBoxId,
             MFSMailRequestObserver& aOperationObserver,
             const TInt aRequestId );
-         // </qmail>
+// </qmail>
 
          virtual CFSMailMessage* CreateForwardMessageL(
             const TFSMailMsgId& aMailBox,
@@ -223,20 +225,20 @@
             const TFSMailMsgId& aMailBoxId,
             CFSMailMessage& aMessage );
         
-        // <qmail>
+// <qmail>
          void StoreMessagesL(
                 const TFSMailMsgId& aMailBoxId,
                 RPointerArray<CFSMailMessage> &messages,
                 MFSMailRequestObserver& aOperationObserver,
                 const TInt aRequestId );
-        // </qmail>
+// </qmail>
         
-        // <qmail>
+// <qmail>
         virtual void StoreMessagePartsL(
                RPointerArray<CFSMailMessagePart>& aMessageParts,
                MFSMailRequestObserver& aOperationObserver,
                const TInt aRequestId);
-        // <//qmail>
+// <//qmail>
 		
          virtual void FetchMessagesL(
             const TFSMailMsgId& aMailBoxId,
@@ -656,7 +658,7 @@
             const TDesC8& aDstProperty,
             RPointerArray<CFSMailAddress>& aRecipients );
 
-         static void RemoveAllPropertiesL(
+        static void RemoveAllPropertiesL(
             CMsgStorePropertyContainer& aContainer,
             const TDesC8& aName );
 
@@ -776,6 +778,8 @@
 	        TMsgStoreId aId,
 	        TMsgStoreId aParentId,
 	        TMsgStoreId aOtherId );
+	    
+	     virtual const TDesC& CBasePlugin::CalendarFileName() const;
 
     public:
 
@@ -808,7 +812,7 @@
         TCacheLine iCacheLine;
 
     private:
-
+    protected:
         MDelayedOpsManager* iDelayedOpsManager;
 
         /**
@@ -848,14 +852,16 @@
 
         virtual ~CMailboxInfo()
             {
-            iMailBox->RemoveObserverL( iBasePlugin );
+            if ( iMailBox )
+                iMailBox->RemoveObserverL( iBasePlugin );
+
             iObservers.Close();
 
             delete iMailBoxName;
             delete iMailBoxDisplayName;
             delete iBrandingId;
             delete iMailBox;
-            }
+            };
 
         CMsgStoreMailBox& operator() ()
             {
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h	Mon May 03 12:23:15 2010 +0300
@@ -24,8 +24,10 @@
 #include "CFSMailCommon.h"
 #include "BasePlugin.h"
 #include "DebugLogMacros.h"
+
+//<qmail>
 #include "baseplugindef.h"
-
+//</qmail>
 
 class CBasePlugin;
 class CDelayedOp;
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h	Mon May 03 12:23:15 2010 +0300
@@ -19,7 +19,7 @@
 
 
 #include "baseplugindelayedops.h"
-
+#include "nestedao.h"
 
 /**
  * Lets the user enqueue and dequeue asynchronous jobs for handling
@@ -70,7 +70,7 @@
 /**
  * 
  */
-NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp
+NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp, public MDeletionHandler
     {
 
 public:
@@ -90,6 +90,10 @@
     //CDelayedOp::ExecuteOpL
     virtual void ExecuteOpL();
     
+    //From MDeletionHandler
+    //Used to delete messages in chunks starting from aStartIndex
+    TBool DeleteMessagesInChunksL( TInt aStartIndex );
+    
 private:
 
     void ConstructL( const RArray<TFSMailMsgId>& aMessages );
@@ -108,7 +112,7 @@
     TMsgStoreId iFolderId;
     RArray<TMsgStoreId> iMessages;
     TBool iImmediateDelete;
-    
+    TState iState;
     __LOG_DECLARATION
     };
 
@@ -173,7 +177,7 @@
     __LOG_DECLARATION
     };
 
-
+//<qmail>
 /**
  * 
  */
@@ -274,4 +278,6 @@
 
     __LOG_DECLARATION
     };
+//</qmail>
+
 #endif // BASEPLUGINDELAYEDOPSPRIVATE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/base_plugin/inc/basepluginresourceloader.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Library to handle resource loading when 
+*              CCoeEnv is not available.
+*/
+
+#ifndef __BASEPLUGINRESOURCELOADER_H__
+#define __BASEPLUGINRESOURCELOADER_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include <barsc.h>
+#include <biditext.h>
+
+/**
+ * Library to handle resource loading when CCoeEnv is not available.
+ */
+class CResourceLoader : public CBase
+    {
+public:
+
+    /**
+     * A constructor.
+     * @param aName a resource name
+     * @return created object.
+     */
+    IMPORT_C static CResourceLoader* NewL( const TDesC& aName );
+
+    /**
+     * Destructor
+     */
+    virtual ~CResourceLoader();
+
+    /**
+    * @return reference to opened file session
+    */
+    IMPORT_C RFs& Fs();
+    
+    /**
+     * @param aResourceId a resource key of a resource defined as LBUF
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* LoadLC(TInt aResourceId );
+
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2L( TInt aResourceId );
+
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2LC( TInt aResourceId );
+    
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @param aString a string value used as parameter in formatting
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2LC( TInt aResourceId, const TDesC& aString );
+
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @param aString a string value used as parameter in formatting
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2L( TInt aResourceId, const TDesC& aString );
+
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @param aInt a number to be inserted into the string
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2LC( TInt aResourceId, TInt aInt );
+
+    /**
+     * @param aResourceId a resource key of a resource defined as TBUF
+     * @param aInt a number to be inserted into the string
+     * @return resource value from resource, instance ownership is transferred
+     */
+    IMPORT_C HBufC* Load2L( TInt aResourceId, TInt aInt );
+
+    /**
+     * @param aReader a reader
+     * @param aResourceId a resource key
+     * @return pointer to resource buffer placed on leave stack
+     */
+    IMPORT_C HBufC8* CreateResourceReaderLC( TResourceReader& aReader, TInt aResourceId ) const;
+    
+private:
+
+    /**
+    * A constructor
+    */
+    CResourceLoader();
+
+    /**
+    * A 2nd phase constructor
+    * @param aName a HTML macro, e.g. lt
+    */
+    void ConstructL( const TDesC& aName );
+
+    TInt GetSubStringCount( const TDesC& aText );
+    HBufC* ResolveSubStringDirsL( TDes& aText, TInt aCount, TBool* aMarker );
+    void RemoveNoDirMarkers(TDes& aText);
+    TBidiText::TDirectionality DirectionalityL(const TDesC& aText, TBool* aFound);
+    TBidiText::TDirectionality ResolveDirectionality(TDes& aText, TBool* aFound);
+    HBufC* FormatStringL(const TDesC& aSource, const TDesC& aKey, const TDesC& aSubs, TBidiText::TDirectionality aDir);
+    HBufC* FormatStringL( const TDesC& aSource, const TDesC& aKey, const TDesC& aSubs,
+                          TBidiText::TDirectionality aDirectionality, TInt& aParamCount, TInt aSubCount );
+    TInt Formater( TDes& aDest, const TDesC& aSource, const TDesC& aKey,
+                   const TDesC& aSubs, TBidiText::TDirectionality aDirectionality );
+    HBufC* ResolveSubStringL(TDes& aText, TBool* aMarker);
+    TInt GetParamCount(const TDesC& aText, TInt aIndex = -1);
+
+private:
+
+class LanguageSpecificNumberConverter
+    {
+public:
+    static void Convert(TDes &aDes);
+    static void ConvertToWesternNumbers(TDes &aDes);
+    static TBool IsConversionNeeded();
+    };
+
+private:
+    RFs iFs;
+    RResourceFile iResFile;
+    };
+
+
+#endif  // __BASEPLUGINRESOURCELOADER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/base_plugin/inc/nestedao.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Class used to implement nested active object used to handle 
+* deletion of large number of messages by breaking them into smaller chunks
+*
+*/
+
+#ifndef __NESTED_AO_H__
+#define __NESTED_AO_H__
+
+//  Include Files
+
+
+#include <e32base.h>
+
+
+class MDeletionHandler
+    {
+public:
+    enum TState
+        {
+        EInProgress,
+        EFree
+        };
+    //Deletes messages from aStartIndex KSizeOfChunk at a time
+    virtual TBool DeleteMessagesInChunksL( TInt aStartIndex ) = 0;
+    };
+//Time interval between issuing 2 requests to delete messages
+const TInt KWaitIntervalInMicroSecs=500;
+//Maximum number of messages deleted in one go
+const TInt KSizeOfChunk=10;
+
+NONSHARABLE_CLASS ( CNestedAO ) : public CTimer
+    {
+    public:
+        
+        static CNestedAO* NewL( MDeletionHandler& aDeletionHandler );
+        virtual ~CNestedAO();
+        // --------------------------------------------------------------------------
+        // CNestedAO::DeleteMessagesAsync
+        // Used to delete messages asynchronously 
+        // Deleting a small number of messages at a time
+        // ------------
+        void DeleteMessagesAsync();
+        // --------------------------------------------------------------------------
+        // CNestedAO::Rc
+        // Used to return the iStatus return value
+        // ------------        
+        TInt Rc() { return iRc; }
+        
+    private:
+        CNestedAO( MDeletionHandler& aDeletionHandler );
+        void ConstructL();
+        
+        // inherited from CActive
+        virtual void RunL();
+        virtual void DoCancel();
+        // --------------------------------------------------------------------------
+        // CNestedAO::Stop
+        // Stops the scheduler from running
+        // Called after all messages are processed
+        // or in error condition
+        // ------------           
+        void Stop();
+        
+    private:
+        CActiveSchedulerWait* iNestedWait;
+        MDeletionHandler& iDeletionHandler;
+        TInt iDeletionIndex;
+        TInt iRc;
+    };
+
+
+#endif  //__NESTED_AO_H__
--- a/emailservices/emailstore/base_plugin/src/BaseMrInfoObject.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/BaseMrInfoObject.cpp	Mon May 03 12:23:15 2010 +0300
@@ -84,6 +84,7 @@
     iPriority = aMrInfo.PriorityL();
 
     iOrganizer = CBaseMrAttendee::NewL();
+//<qmail> Commented out in 10.1
     /*iOrganizer = CBaseMrAttendee::NewL( aMrInfo.MROrganizerL() );
     
     RPointerArray<MMRAttendee>& attendees = aMrInfo.AttendeesL();
@@ -95,6 +96,7 @@
         iAttendees.AppendL( attendee );
         CleanupStack::Pop( attendee );
         }*/
+//</qmail>
     
     iRrule = CBaseMrRecurrenceRule::NewL( aMrInfo.RecurrenceRuleL() );
     /**@ copy construction for iExceptions, iAttachments.*/
--- a/emailservices/emailstore/base_plugin/src/BasePlugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/BasePlugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -30,7 +30,7 @@
 //Freestyle.
 #include "CFSMailCommon.h"
 #include "CFSMailMessage.h"
-#include "CFSMailFolder.h"
+#include "cmrcalendarinfo.h" 
 //</cmail>
 //Base plugin.
 #include "BasePlugin.h"
@@ -38,10 +38,16 @@
 #include "baseplugincommonutils.h"
 #include "MailIterator.h"
 #include "baseplugindelayedopsprivate.h"
+
+//<qmail>
+#include "CFSMailFolder.h"
 #include "baseplugindef.h"
+//</qmail>
+
 // Other
 #include <e32base.h>
 #include <utf.h>
+#include <calsession.h>
 
 //<qmail>
 //<cmail>
@@ -112,7 +118,9 @@
     iMailboxes.ResetAndDestroy();
     iMailboxes.Close();
 
+//<qmail>
     if ( iObservers.Count() > 0 && iMsgStore )
+//</qmail>
         {
         TRAP_IGNORE( iMsgStore->RemoveObserverL( this ) );
         }
@@ -261,6 +269,37 @@
     MMRInfoProcessor* infoProcessor = CBaseMrInfoProcessor::NewL( *this );
     result->SetMRInfoProcessorL( infoProcessor );
     
+    //JOJA-83VJ4L Plugins need to set the correct Calendar Database ID for MRUI to work
+    //get the calendar file name from the derived class
+    const TDesC& calFileName = CalendarFileName();
+    if ( calFileName != KNullDesC )
+        {
+        //the derived class does use its own calendar file, check if that file exists
+        //the file may not exist because cal sync was disabled, or the file was deleted from the calendar UI
+        CCalSession* calSession = CCalSession::NewL();
+        CleanupStack::PushL( calSession );
+        
+        TRAPD( error, calSession->OpenL( calFileName ) );
+        if ( error == KErrNone )
+            {
+            //calendar file exists, get its file id, and set it to cMail Celendar Info via the extention
+            TCalFileId fileId = KNullFileId; 
+            calSession->FileIdL( fileId );
+            
+            //get the extention api for the MR info, set the cal db id, and release the extention
+            CEmailExtension* extension = NULL;
+            TRAP( error, extension = result->ExtensionL( KMailboxExtMrCalInfo ) );
+            if ( error == KErrNone )
+                {
+                CMRCalendarInfo* calInfo = reinterpret_cast<CMRCalendarInfo*>( extension );
+                calInfo->SetCalendarDatabaseIdL( fileId ); // cannot actually leave
+                result->ReleaseExtension( calInfo );
+                }
+            }
+        
+        CleanupStack::PopAndDestroy( calSession );
+        }
+    
     CleanupStack::Pop( result );
     
     __LOG_EXIT
@@ -644,85 +683,97 @@
     CleanupStack::PopAndDestroy( props );
     CleanupStack::PushL( message );
     
-    
-    //the body part.
-    props = CMsgStorePropertyContainer::NewL();
-    CleanupStack::PushL( props );
-    props->AddOrUpdatePropertyL( KMsgStorePropertyContentType, KFSMailContentTypeMultipartAlternative );
-    
-    CMsgStoreMessagePart* bodyPart = message->AddChildPartL( *props );
-    CleanupStack::PopAndDestroy( props );
-    CleanupStack::PushL( bodyPart );
-    
-    //the text/plain child.
+    //create the body part.
     props = CMsgStorePropertyContainer::NewL();
     CleanupStack::PushL( props );
     
-    props->AddPropertyL( KMsgStorePropertyContentType, KFSMailContentTypeTextPlain );
+    props->AddOrUpdatePropertyL(
+        KMsgStorePropertyContentType, KFSMailContentTypeMultipartAlternative );
+    CMsgStoreMessagePart* bodyPart = message->AddChildPartL( *props );
+    
+    CleanupStack::PopAndDestroy( props );
+    CleanupStack::PushL( bodyPart );
     
+    //create the plain text part.
+    props = CMsgStorePropertyContainer::NewL();
+    CleanupStack::PushL( props );
+
+    props->AddPropertyL(
+        KMsgStorePropertyContentType, KFSMailContentTypeTextPlain );
+
     _LIT(KMessageBodyCharset, "UTF-8");
     props->AddPropertyL( KMsgStorePropertyCharset, KMessageBodyCharset );
-    
+
     _LIT(KMessageBodyDisposition, "inline");
-    props->AddPropertyL( KMsgStorePropertyContentDisposition, KMessageBodyDisposition );
- 
-    CMsgStoreMessagePart* textPlain = NULL;
-        
-    // Add signature, if it exists
+    props->AddPropertyL(
+        KMsgStorePropertyContentDisposition, KMessageBodyDisposition );
+
     HBufC* signature = GetSignatureL( aMailBox );
-    
-	if ( NULL != signature )
+    if ( signature )
         {
         CleanupStack::PushL( signature );       
 
-        if ( signature->Length() > 0 )
-    		{
-
-            props->AddPropertyL( KMsgStorePropertySize, static_cast<TUint32>( signature->Length() ) );
-            props->AddPropertyL( KMsgStorePropertyRetrievedSize, static_cast<TUint32>( signature->Length() ) );
-            textPlain = bodyPart->AddChildPartL( *props );
-            CleanupStack::PopAndDestroy( props );
+        props->AddPropertyL(
+            KMsgStorePropertySize, static_cast<TUint32>( signature->Length() ) );
+        props->AddPropertyL(
+            KMsgStorePropertyRetrievedSize,
+            static_cast<TUint32>( signature->Length() ) );
+        }
+    
+    CMsgStoreMessagePart* textPlain = bodyPart->AddChildPartL( *props );
+    if ( signature )
+        {
+        CleanupStack::Pop( signature );
+        }
+    CleanupStack::PopAndDestroy( props );           
+    if ( signature )
+        {
+        CleanupStack::PushL( signature );
+        }
+    CleanupStack::PushL( textPlain );
     
-            TPtrC8 ptr8(
-                    reinterpret_cast<const TUint8*>( signature->Ptr() ),
-                    signature->Size() );
-           
-            CleanupStack::PushL( textPlain );
-            textPlain->ReplaceContentL( ptr8 );
-         
-            }
-        CleanupStack::PopAndDestroy( signature );
+    //add signature, if it exists
+	if ( NULL != signature && signature->Length() )
+        {
+        TPtrC8 ptr8(
+            reinterpret_cast<const TUint8*>( signature->Ptr() ),
+            signature->Size() );
+        
+        textPlain->ReplaceContentL( ptr8 );
 		}
-	else{
-        textPlain =bodyPart->AddChildPartL( *props );
-	    CleanupStack::PopAndDestroy( props );           
-	    CleanupStack::PushL( textPlain );
-	    }
-	
-    CleanupStack::PopAndDestroy( textPlain );
+
+	CleanupStack::PopAndDestroy( textPlain );
+    if ( signature )
+        {
+        CleanupStack::PopAndDestroy( signature );
+        }
     
-    
-    //the text/html child.
+//<qmail> 
+    //create the text/html part.
     props = CMsgStorePropertyContainer::NewL();
     CleanupStack::PushL( props );
     
-    props->AddPropertyL( KMsgStorePropertyContentType, KFSMailContentTypeTextHtml );
-    
+	props->AddPropertyL(
+        KMsgStorePropertyContentType, KFSMailContentTypeTextHtml );
+	
     props->AddPropertyL( KMsgStorePropertyCharset, KMessageBodyCharset );
-    
-    props->AddPropertyL( KMsgStorePropertyContentDisposition, KMessageBodyDisposition );
+
+    props->AddPropertyL(
+        KMsgStorePropertyContentDisposition, KMessageBodyDisposition );
     
     CMsgStoreMessagePart* htmlPlain = bodyPart->AddChildPartL( *props );
     CleanupStack::PopAndDestroy( props );         
     CleanupStack::PushL( htmlPlain );
     htmlPlain->AppendToContentL(KNullDesC8);
     CleanupStack::PopAndDestroy( htmlPlain );
+//</qmail>
     
     //delete body part
     CleanupStack::PopAndDestroy( bodyPart );
-    
+	
+	//done.
     message->CommitL();
-
+    
     TFSMailMsgId folderId( GetPluginId(), message->ParentId() );
     TFSMailMsgId msgId( GetPluginId(), message->Id() );
     CleanupStack::PopAndDestroy( message );
@@ -763,6 +814,7 @@
     return CreateForwardReplyMessageL( aMailBox, aOriginal, EFalse, aHeaderDescriptor, ETrue );
     }
 
+
 /**
  * Relying on the UI for the subject and recipients.
  */
@@ -775,6 +827,7 @@
     return CreateForwardReplyMessageL( aMailBoxId, aOriginalMessageId, aReplyToAll, aHeaderDescriptor, EFalse );
     }
 
+
 /**
  *
  */
--- a/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp	Mon May 03 12:23:15 2010 +0300
@@ -14,13 +14,16 @@
 * Description:  Email interface implementation.
 *
 */
+
+//<qmail>
 #include <utf.h>
+//<//qmail>
 
 #include "MsgStoreWritablePropertyContainer.h"
 
 #include "baseplugindelayedops.h"
 #include "baseplugindelayedopsprivate.h"
-
+#include "nestedao.h"
 
 ///////////////////////////////////////////////////
 // CDelayedOp                                    //
@@ -175,8 +178,9 @@
  */
 /*private*/ void CDelayedOpsManager::ExecutePendingOps()
     {
-    TInt count = iDelayedOps.Count();
-    for ( TInt i = 0; i < count; ++i )
+    //check the count on every iteration to avoid missing operations being
+    //enqueued by another operations.
+    for ( TInt i = 0; i < iDelayedOps.Count(); ++i )
         {
         CDelayedOp* op = iDelayedOps[i];
         
@@ -229,7 +233,63 @@
     __LOG_DESTRUCT
     }
 
+/**
+ * 
+ */
+/*public virtual*/TBool CDelayedDeleteMessagesOp::DeleteMessagesInChunksL( TInt aStartIndex )
+    {
+    __LOG_ENTER( "DeleteMessagesInChunksL" );
+    TBool done=EFalse;
+    TInt endIndex;
+    if( aStartIndex + KSizeOfChunk < iMessages.Count() )
+        {
+            endIndex = aStartIndex + KSizeOfChunk;
+        }
+    else
+        {
+        endIndex = iMessages.Count();   
+        done=ETrue;
+        }
+    CMailboxInfo& mailBoxInfo
+        = GetPlugin().GetMailboxInfoL( iMailBoxId );
+    CMsgStoreMailBox& mailBox = mailBoxInfo();
 
+    for ( TInt i = aStartIndex; i < endIndex; ++i )
+        {
+        TMsgStoreId msgId = iMessages[i];
+        
+        if ( EFalse == iImmediateDelete )
+            {
+            //try to find the message in the deleted items folder.
+            CMsgStoreMessage* theMessage = NULL;
+            TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
+              msgId, mailBoxInfo.iRootFolders.iFolders[EFSDeleted] ) );
+            
+            if ( NULL == theMessage )
+                {
+                //if not in deleted items then move it there.
+                __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId );
+                mailBox.MoveMessageL(
+                   msgId, KMsgStoreInvalidId,
+                   mailBoxInfo.iRootFolders.iFolders[EFSDeleted] );
+                }
+            else
+                {
+                //in deleted items, really delete it.
+                __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
+
+                delete theMessage;
+                mailBox.DeleteMessageL( msgId, iFolderId );
+                }
+            }
+        else
+            {
+            mailBox.DeleteMessageL( msgId, iFolderId );
+            }
+        }
+    __LOG_EXIT;
+    return done;    
+    }
 /**
  * 
  */
@@ -266,7 +326,7 @@
     TMsgStoreId aFolderId )
     :
     iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
-    iImmediateDelete( EFalse )
+    iImmediateDelete( EFalse ), iState ( EFree )
     {
     }
 
@@ -276,47 +336,21 @@
 /*private*/ void CDelayedDeleteMessagesOp::ExecuteOpL()
     {
     __LOG_ENTER( "ExecuteOpL" );
-    
-    CMailboxInfo& mailBoxInfo
-        = GetPlugin().GetMailboxInfoL( iMailBoxId );
-    CMsgStoreMailBox& mailBox = mailBoxInfo();
-
-    TInt count = iMessages.Count();
-    for ( TInt i = 0; i < count; ++i )
+    if ( iState != EFree )
         {
-        TMsgStoreId msgId = iMessages[i];
-        
-        if ( EFalse == iImmediateDelete )
-            {
-            //try to find the message in the deleted items folder.
-            CMsgStoreMessage* theMessage = NULL;
-            TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
-              msgId, mailBoxInfo.iRootFolders.iFolders[EFSDeleted] ) );
-            
-            if ( NULL == theMessage )
-                {
-                //if not in deleted items then move it there.
-                __LOG_WRITE8_FORMAT1_INFO(
-                     "Moving message 0x%X to the deleted items.", msgId );
-                mailBox.MoveMessageL(
-                   msgId, KMsgStoreInvalidId,
-                   mailBoxInfo.iRootFolders.iFolders[EFSDeleted] );
-                }
-            else
-                {
-                //in deleted items, really delete it.
-                __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
-
-                delete theMessage;
-                mailBox.DeleteMessageL( msgId, iFolderId );
-                }
-            }
-        else
-            {
-            mailBox.DeleteMessageL( msgId, iFolderId );
-            }
+        //this code becomes re-entrant now because we use nested AS.
+        // so if we are already authenticating, return right away.
+        return;
         }
-
+    iState=EInProgress;
+    CNestedAO* nestedAO = CNestedAO::NewL( *this );
+    //this is a blocking call with nested active scheduler
+    //This method makes a callback periodically to DeleteMessagesInChunks
+    //to delete the messages one chunk at a time
+    nestedAO->DeleteMessagesAsync();
+    //continue execution here
+    delete nestedAO;
+    iState = EFree;
     __LOG_EXIT;
     }
 
@@ -478,6 +512,7 @@
     {
     }
 
+//<qmail>
 ///////////////////////////////////////////////////
 // CDelayedMessageStorerOp                      //
 ///////////////////////////////////////////////////
@@ -759,3 +794,4 @@
     
     __LOG_EXIT;
     }
+//</qmail>
--- a/emailservices/emailstore/base_plugin/src/basepluginmisc.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/basepluginmisc.cpp	Mon May 03 12:23:15 2010 +0300
@@ -31,7 +31,7 @@
 /**
  * Base plugin has no particular id.
  */
-EXPORT_C TUint CBasePlugin::GetPluginId()
+TUint CBasePlugin::GetPluginId()
     {
     return 0;
     }
@@ -40,7 +40,7 @@
 /**
  *
  */
-EXPORT_C TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(
+TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(
     const TFSMailMsgId& /*aMailBoxId*/ )
     {
     return EFSMailBoxOnline;
@@ -50,7 +50,7 @@
 /**
  *
  */
-EXPORT_C TBool CBasePlugin::MailboxHasCapabilityL(
+TBool CBasePlugin::MailboxHasCapabilityL(
     TFSMailBoxCapabilities /*aCapability*/,
     TFSMailMsgId /*aMailBoxId*/ )
     {
@@ -61,7 +61,7 @@
 /**
  *
  */
-EXPORT_C TInt CBasePlugin::WizardDataAvailableL()
+TInt CBasePlugin::WizardDataAvailableL()
     {
     return KErrNotSupported;
     }
@@ -70,7 +70,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::AuthenticateL(
+void CBasePlugin::AuthenticateL(
     MFSMailRequestObserver& /*aOperationObserver*/,
     TInt /*aRequestId*/ )
     {
@@ -80,7 +80,7 @@
 
 /**
  */
-EXPORT_C void CBasePlugin::SetCredentialsL(
+void CBasePlugin::SetCredentialsL(
     const TFSMailMsgId& /* aMailBoxId */,
     const TDesC& /* aUsername */,
     const TDesC& /* aPassword */ )
@@ -92,7 +92,7 @@
 /**
  *
  */
-EXPORT_C TDesC& CBasePlugin::GetBrandingIdL( const TFSMailMsgId& aMailboxId )
+TDesC& CBasePlugin::GetBrandingIdL( const TFSMailMsgId& aMailboxId )
     {
     CMailboxInfo& mailbox = GetMailboxInfoL( aMailboxId.Id() );
     return *mailbox.iBrandingId;
@@ -102,7 +102,7 @@
 /**
  *
  */
-EXPORT_C TInt CBasePlugin::CancelSyncL( const TFSMailMsgId& /*aMailBoxId*/ )
+TInt CBasePlugin::CancelSyncL( const TFSMailMsgId& /*aMailBoxId*/ )
 	{
 	return KErrNotSupported;
 	}
@@ -171,7 +171,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::SearchL(
+void CBasePlugin::SearchL(
     const TFSMailMsgId& aMailBoxId,
     const RArray<TFSMailMsgId>& aFolderIds,
     const RPointerArray<TDesC>& aSearchStrings,
@@ -220,7 +220,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::CancelSearch(
+void CBasePlugin::CancelSearch(
     const TFSMailMsgId& aMailBoxId )
 
     {
@@ -231,7 +231,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::ClearSearchResultCache(
+void CBasePlugin::ClearSearchResultCache(
     const TFSMailMsgId& aMailBoxId )
 
     {
@@ -245,7 +245,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::GoOfflineL(
+void CBasePlugin::GoOfflineL(
     const TFSMailMsgId& /*aMailBoxId*/ )
     {
     }
@@ -254,7 +254,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::GoOnlineL(
+void CBasePlugin::GoOnlineL(
     const TFSMailMsgId& /*aMailBoxId*/ )
     {
     }
@@ -263,7 +263,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::RefreshNowL(
+void CBasePlugin::RefreshNowL(
     const TFSMailMsgId& /*aMailBoxId*/,
  	MFSMailRequestObserver& /*aOperationObserver*/,
  	TInt /*aRequestId*/ )
@@ -279,7 +279,7 @@
 /**
  *
  */
-EXPORT_C MDesCArray* CBasePlugin::GetMrusL(
+MDesCArray* CBasePlugin::GetMrusL(
     const TFSMailMsgId& aMailBoxId )
 
     {
@@ -313,7 +313,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::SetMrusL(
+void CBasePlugin::SetMrusL(
     const TFSMailMsgId& aMailBoxId,
     MDesCArray* aNewMruList )
 
@@ -350,7 +350,7 @@
 /**
  *
  */
-EXPORT_C TFSProgress CBasePlugin::StatusL( TInt /*aRequestId*/ )
+TFSProgress CBasePlugin::StatusL( TInt /*aRequestId*/ )
     {
     TFSProgress result = { TFSProgress::EFSStatus_Waiting, 0, 0, 0 };
     return result;
@@ -361,7 +361,7 @@
  * Concrete plugins need to call the base plugin's implementation.
  * @param aRequestId
  */
-EXPORT_C void CBasePlugin::CancelL( TInt aRequestId )
+void CBasePlugin::CancelL( TInt aRequestId )
     {
     //find the fetch request and notify the observer.
     TInt count = iReqs.Count();
@@ -370,8 +370,9 @@
     	if ( iReqs[i]->iRequestId == aRequestId )
     		{
     		CFetchRequester* request = iReqs[i];
-
+//<qmail>
     		TFSProgress progress = TFSProgress();
+//</qmail>
     		progress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
     		progress.iCounter = progress.iMaxCount = 1;
     		progress.iError = KErrNone;
@@ -388,7 +389,7 @@
 /**
  *
  */
-EXPORT_C const TFSProgress CBasePlugin::GetLastSyncStatusL(
+const TFSProgress CBasePlugin::GetLastSyncStatusL(
     const TFSMailMsgId& /*aMailBoxId*/ )
 
     {
@@ -403,8 +404,8 @@
  *
  */
 //<qmail>
-EXPORT_C TSSMailSyncState CBasePlugin::CurrentSyncState(
-    const TFSMailMsgId& /*aMailboxId*/ )
+TSSMailSyncState CBasePlugin::CurrentSyncState(
+            const TFSMailMsgId& /*aMailboxId*/ )
     {
     return Idle;
     }
@@ -413,7 +414,7 @@
 /**
  *
  */
-EXPORT_C CMsgStoreAccount* CBasePlugin::GetAccountForMsgBoxL(
+CMsgStoreAccount* CBasePlugin::GetAccountForMsgBoxL(
     const TFSMailMsgId& aMailboxId )
 
     {
@@ -470,7 +471,7 @@
 /**
  *
  */
-EXPORT_C /*virtual*/ void CBasePlugin::SetMailboxName(
+/*virtual*/ void CBasePlugin::SetMailboxName(
     const TFSMailMsgId& /*aMailboxId*/,
     const TDesC& /*aMailboxName*/ )
     {
@@ -479,7 +480,7 @@
 /**
  *
  */
-/*protected*/ EXPORT_C void CBasePlugin::ResetCache()
+/*protected*/ void CBasePlugin::ResetCache()
     {
     __LOG_ENTER_SUPPRESS( "ResetCache" );
 
@@ -497,7 +498,7 @@
 /**
  *
  */
-/*protected*/ EXPORT_C void CBasePlugin::ResetBodyCache()
+/*protected*/ void CBasePlugin::ResetBodyCache()
     {
     __LOG_ENTER_SUPPRESS( "ResetCache" );
     iCacheLine.iBodyChildren.ResetAndDestroy();
@@ -512,7 +513,7 @@
 /**
  *
  */
-/*protected*/ EXPORT_C CMsgStoreMessage* CBasePlugin::GetCachedMsgL(
+/*protected*/ CMsgStoreMessage* CBasePlugin::GetCachedMsgL(
     TMsgStoreId aMailBoxId,
     TMsgStoreId aMsgId )
     {
@@ -547,7 +548,7 @@
  *
  */
 /*protected*/
-EXPORT_C CMsgStoreMessagePart* CBasePlugin::GetCachedBodyL(
+CMsgStoreMessagePart* CBasePlugin::GetCachedBodyL(
     TMsgStoreId aPartId )
     {
     __LOG_ENTER_SUPPRESS( "GetCachedBodyL" );
@@ -575,7 +576,7 @@
  *
  */
 /*protected*/
-EXPORT_C RPointerArray<CMsgStoreMessagePart>& CBasePlugin::GetCachedMsgChildrenL()
+RPointerArray<CMsgStoreMessagePart>& CBasePlugin::GetCachedMsgChildrenL()
     {
     __LOG_ENTER_SUPPRESS( "GetCachedMsgChildrenL" );
 
@@ -599,7 +600,7 @@
  *
  */
 /*protected*/
-EXPORT_C RPointerArray<CMsgStoreMessagePart>& CBasePlugin::GetCachedBodyChildrenL()
+RPointerArray<CMsgStoreMessagePart>& CBasePlugin::GetCachedBodyChildrenL()
     {
     __LOG_ENTER_SUPPRESS( "GetCachedBodyChildrenL" );
 
@@ -622,7 +623,7 @@
 /**
  *
  */
-/*protected*/ EXPORT_C void CBasePlugin::InvalidateCacheIfNecessary(
+/*protected*/ void CBasePlugin::InvalidateCacheIfNecessary(
     TMsgStoreId aId,
     TMsgStoreId aParentId,
     TMsgStoreId aOtherId )
@@ -641,7 +642,12 @@
 /**
  *
  */
-/*public*/ EXPORT_C MDelayedOpsManager& CBasePlugin::GetDelayedOpsManager()
+/*public*/ MDelayedOpsManager& CBasePlugin::GetDelayedOpsManager()
     {
     return *iDelayedOpsManager;
     }
+
+/*protected*/ const TDesC& CBasePlugin::CalendarFileName() const
+    {
+    return KNullDesC();
+    }
--- a/emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp	Mon May 03 12:23:15 2010 +0300
@@ -126,23 +126,32 @@
     {
     switch ( aEvent )
         {
-        // A backup or restore is in progress.  The message store is unavailable.
-        case EMsgStoreBackupOrRestoreInProgress:
-        // The message store has been wiped, including the password.
-        case EMsgStoreDatabaseWiped:
-        // The message store has transitioned from an authenticated state to an unauthenticated state.
-        case EMsgStoreNotAuthenticated:
+        // The message store is unavailable.  This may be due to 
+        // a backup or restore being in progress, a Pointsec lock being issued,
+        // the disk drive being unavailable, etc.
+        case EMsgStoreUnavailable:
             {
-            NotifyGlobalEventL( TFSMailboxUnavailable );
+            // since the store is unavailabe we are unable to get 
+            // list of mailboxes, setting plugin id only
+            TFSMailMsgId id;
+            id.SetPluginId( TUid::Uid( GetPluginId() ) );
+            NotifyGlobalEventL( TFSMailboxUnavailable, id );
             }
         break;
 
-        // The backup or restore completed.  The message store is available again.   
-        case EMsgStoreBackupOrRestoreCompleted:
-        // The message store has transitioned from an unauthenticated state to an authenticated state.
-        case EMsgStoreAuthenticated:
+        // The message store is available again.
+        case EMsgStoreAvailable:
             {
-            NotifyGlobalEventL( TFSMailboxAvailable );
+            RArray<TFSMailMsgId> mailboxes;
+            CleanupClosePushL( mailboxes );
+            ListMailBoxesL( mailboxes );
+
+            for ( TInt i( 0 ); i < mailboxes.Count(); i++ )
+                {
+                NotifyGlobalEventL( TFSMailboxAvailable, mailboxes[i] );
+                }
+
+            CleanupStack::PopAndDestroy( &mailboxes );
             }
         break;
 
@@ -151,6 +160,7 @@
         // which many message store operations have occurred.
         case EObserverEventQueueOverflow:
         //don't see anything meaningful to do here.
+        default:
         break;
         };
     }
@@ -358,10 +368,6 @@
                     {
                     NotifyEventL( aMailBoxId, aId, aParentId, TFSEventFolderChanged );
                     }
-                else if ( EMsgStorePartContainer == aType )
-                    {
-                    ReportRequestStatusL( aMailBoxId, aOtherId, aParentId, aId );
-                    }
                 else if ( EMsgStoreMailboxContainer == aType )
                     {
                     TBool mailBoxNameHasChanged( EFalse );
@@ -375,6 +381,26 @@
                 }
             break;
 
+            case EMsgStoreRemoveContent:
+                break;
+
+            default:
+                break;
+            }
+        }
+        /* Reporting request status moved from above if-statement here. Now, request status is reported even there is no
+         * mailbox observers.
+         */ 
+        switch ( aOperation )
+            {
+            case EMsgStoreUpdateProperties:
+                {
+                if ( EMsgStorePartContainer == aType )
+                    {
+                    ReportRequestStatusL( aMailBoxId, aOtherId, aParentId, aId );
+                    }
+                }
+                break;
             /**@ check whether the ui removes the observer - then the observer must be kept
             until there are pending reqs ?*/
             //attachment download request handling.
@@ -384,13 +410,11 @@
                 ReportRequestStatusL( aMailBoxId, aOtherId, aParentId, aId, ETrue );
                 }
                 break;
-            case EMsgStoreRemoveContent:
-                break;
-
+                
             default:
                 break;
-            }
         }
+    
         
         __LOG_EXIT;
     } //ModificationNotifyL.
@@ -521,7 +545,9 @@
         CleanupStack::PopAndDestroy( part );
         CleanupStack::PopAndDestroy( msg );
 
+//<qmail>
         TFSProgress progress = TFSProgress();
+//</qmail>
         progress.iError = KErrNone;
         progress.iMaxCount = size;
         progress.iCounter = fetchedSize;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/base_plugin/src/basepluginresourceloader.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,890 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Library to handle resource loading when 
+*              CCoeEnv is not available.
+*
+*/
+
+
+
+#include <barsread.h>
+#include <bautils.h>
+#include <biditext.h>
+#include <tulpanics.h>
+
+#include "basepluginresourceloader.h"
+
+// panic category constant
+#ifdef _DEBUG
+_LIT( KPanicCategory, "CResourceLoader" );
+#endif
+
+// CP1252 ellipsis character value.
+#define KEllipsis       0x2026  // cp1252=133
+
+// Key characters to format key strings.
+const TText KKeyPrefix('%');
+const TText KSubStringSeparator(0x0001);    // pipe ('|') character
+const TText KDirNotFound( 0x0002 );
+
+const TInt KExtraSpaceForMainStringDirMarker = 1;
+const TInt KExtraSpaceForSubStringDirMarkers = 2;
+const TText KLRMarker = 0x200E; 
+const TText KRLMarker = 0x200F;
+
+// KIntSize and KKeySize define maximum number of characters
+// in input TInts and in keystring. KNumOfParams is maximum number of
+// parameters in the resource string.
+const TInt KIntSize(11); //Max 11 digits.
+const TInt KNumOfParams(20); //Max 20 parameters
+
+// Key strings for number and unicode data.
+_LIT(KNumKeyBuf, "%N"); //Number data
+_LIT(KStringKeyBuf, "%U"); //Unicode data
+
+// KUnknownCount is used as default value for param count in FormatStringL
+const TInt KUnknownCount(-99);
+
+EXPORT_C CResourceLoader* CResourceLoader::NewL( const TDesC& aName )
+    {
+    CResourceLoader* temp = new( ELeave ) CResourceLoader();
+    CleanupStack::PushL( temp );
+    temp->ConstructL( aName );
+    CleanupStack::Pop( temp );
+    return temp;
+    }
+
+CResourceLoader::CResourceLoader()
+    {
+    }
+
+void CResourceLoader::ConstructL( const TDesC& aFilename )
+    {
+    User::LeaveIfError( iFs.Connect() );
+    TFileName aFile(aFilename);
+    BaflUtils::NearestLanguageFile( iFs, aFile );
+    iResFile.OpenL( iFs, aFile );
+    iResFile.ConfirmSignatureL();
+    }
+
+EXPORT_C CResourceLoader::~CResourceLoader()
+    {
+    iResFile.Close();
+    iFs.Close();
+    }
+
+EXPORT_C RFs& CResourceLoader::Fs() 
+    {
+    return iFs;
+    }
+
+EXPORT_C HBufC* CResourceLoader::LoadLC( TInt aResourceId )
+    {
+    TResourceReader reader;
+    HBufC8* readBuffer = CreateResourceReaderLC( reader, aResourceId );
+    TPtrC textdata = reader.ReadTPtrC();
+    
+    HBufC16* textBuffer = HBufC16::NewL( textdata.Length() );
+    *textBuffer = textdata;
+    CleanupStack::PopAndDestroy( readBuffer );
+    CleanupStack::PushL( textBuffer );
+    return textBuffer;
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2L( TInt aResourceId )
+    {
+    HBufC8* readBuffer = iResFile.AllocReadLC( aResourceId );
+    const TPtrC16 ptrReadBuffer( ( TText16* ) readBuffer->Ptr(), ( readBuffer->Length()+1 )>>1 );
+    HBufC16* textBuffer=HBufC16::NewL( ptrReadBuffer.Length() );
+    *textBuffer=ptrReadBuffer;
+    CleanupStack::PopAndDestroy( readBuffer );
+    return textBuffer;
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2LC( TInt aResourceId )
+    {
+    HBufC* retbuf = Load2L( aResourceId );
+    CleanupStack::PushL( retbuf );
+    return retbuf;
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2L( TInt aResourceId, const TDesC& aString )
+    {
+    HBufC* resbuf = Load2LC( aResourceId );
+    TPtr retptr(resbuf->Des());
+        
+    // Get number of sub strings
+    TInt count = GetSubStringCount( retptr ); 
+    TBool marker(EFalse); 
+    
+    if (count >= 1)
+        {
+        HBufC* buffer = ResolveSubStringDirsL( retptr, count, &marker );
+        CleanupStack::PushL(buffer);
+        
+        TBool found(EFalse);
+        TBidiText::TDirectionality mainDir = DirectionalityL(*buffer , &found);
+        
+        //Formating the return string with FormatStringL.
+        HBufC* retbuf = FormatStringL(*buffer, KStringKeyBuf, aString, mainDir);
+        
+        CleanupStack::PopAndDestroy(buffer);
+        CleanupStack::PopAndDestroy(resbuf);
+                        
+        if (marker && retbuf->Length())
+            {
+            TPtr ptr = retbuf->Des();
+            RemoveNoDirMarkers(ptr);
+            } 
+            
+        __ASSERT_DEBUG(retbuf->Length(), 
+                    User::Panic(KPanicCategory, EKeyStringNotFound));    
+        return retbuf;
+        }
+     else
+        {
+        CleanupStack::PopAndDestroy(resbuf);
+        HBufC* retbuf = HBufC::NewL(0); // return empty buffer
+        __ASSERT_DEBUG(retbuf->Length(), 
+                    User::Panic(KPanicCategory, EKeyStringNotFound));
+        return retbuf;
+        }
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2LC( TInt aResourceId, const TDesC& aString )
+    {
+    HBufC* retbuf = Load2L( aResourceId, aString );
+    CleanupStack::PushL( retbuf );
+    return retbuf;
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2L(TInt aResourceId, TInt aInt )
+    {
+    HBufC* resbuf = Load2LC( aResourceId );
+    TPtr retptr = resbuf->Des();
+    //
+    //Converting input TInt to a descriptor. This way the size
+    //of the return string can be controlled.
+    //
+    TBuf<KIntSize> intbuf;
+    intbuf.Num(aInt);
+
+    if (LanguageSpecificNumberConverter::IsConversionNeeded())
+        LanguageSpecificNumberConverter::Convert(intbuf);
+    //
+    // Get number of sub strings
+    TInt count = GetSubStringCount(retptr); 
+    TBool marker(EFalse); 
+    
+    if (count >= 1)
+        {
+        HBufC* buffer = ResolveSubStringDirsL(retptr, count, &marker);
+        CleanupStack::PushL(buffer);
+        
+        TBool found(EFalse);
+        TBidiText::TDirectionality mainDir = DirectionalityL(*buffer , &found);
+        
+        //Adding int    
+        HBufC* retbuf = FormatStringL(*buffer, KNumKeyBuf, intbuf, mainDir);
+        
+        CleanupStack::PopAndDestroy(buffer);
+        CleanupStack::PopAndDestroy(resbuf);
+                        
+        if (marker && retbuf->Length())
+            {
+            TPtr ptr = retbuf->Des();
+            RemoveNoDirMarkers(ptr);
+            } 
+        __ASSERT_DEBUG(retbuf->Length(), 
+                    User::Panic(KPanicCategory, EKeyStringNotFound));
+        return retbuf;
+        }
+     else
+        {
+        CleanupStack::PopAndDestroy(resbuf);
+        HBufC* retbuf = HBufC::NewL(0); // return empty buffer
+        __ASSERT_DEBUG(retbuf->Length(), 
+                    User::Panic(KPanicCategory, EKeyStringNotFound));
+        return retbuf;
+        }
+    }
+
+EXPORT_C HBufC* CResourceLoader::Load2LC( TInt aResourceId, TInt aInt )
+    {
+    HBufC* retbuf = Load2L( aResourceId, aInt );
+    CleanupStack::PushL( retbuf );
+    return retbuf;
+    }
+
+EXPORT_C HBufC8* CResourceLoader::CreateResourceReaderLC(TResourceReader& aReader,TInt aResourceId) const
+    {
+    HBufC8* readBuffer = iResFile.AllocReadLC( aResourceId );
+    aReader.SetBuffer( readBuffer );
+    return readBuffer;
+    }
+        
+/**
+Counts the number of substrings (separated by KSubStringSeparators) in the text. 
+Needed for correct memory allocations.
+*/
+TInt CResourceLoader::GetSubStringCount(const TDesC& aText)
+    {
+    TInt subCount = 0;
+    TInt i = 0;
+
+    while (i < aText.Length())
+        {
+        TPtrC remainder = aText.Right(aText.Length() - i);
+        TInt nextKey = remainder.Locate(KSubStringSeparator);
+        i += nextKey;
+
+        // Always increase subcount, as a string without any separators counts as one substring.
+        // However, if string length is zero, then there are no substrings.
+        subCount++;
+
+        if (nextKey != KErrNotFound && i < aText.Length() - 1)
+            {
+            i++; // skip separator
+            }
+        else
+            break;
+        }
+
+    return subCount;
+    }
+
+HBufC* CResourceLoader::ResolveSubStringDirsL(TDes& aText, TInt aCount, TBool* aMarker)
+    {   
+    // Allocating heap buffer for return string.
+    TInt destlength(aText.Length());
+    destlength = destlength + (KExtraSpaceForMainStringDirMarker) * aCount;
+    HBufC* retbuf = HBufC::NewLC(destlength);
+    TPtr retptr(retbuf->Des());
+    TInt freeSpace(destlength); 
+    TInt i(0);
+    TInt j(0);
+    TBuf<1> subsMarker;
+    subsMarker.Append(KSubStringSeparator);
+    TInt count(aCount - 1);
+
+    while (i  < aCount)
+        {
+        // Resolve sub string
+        HBufC* buffer = ResolveSubStringL(aText, aMarker);
+        TPtr ptr = buffer->Des();
+        CleanupStack::PushL(buffer); 
+        
+        // Restore sub string separators
+        if (freeSpace >= ptr.Length()) 
+            {
+            retptr.Insert(j, ptr);
+            freeSpace -= ptr.Length();
+            j += ptr.Length();
+            if (freeSpace > KExtraSpaceForMainStringDirMarker && i < count)
+                {
+                retptr.Append(subsMarker);
+                j ++;
+                }
+            }    
+        CleanupStack::PopAndDestroy(buffer);  
+        i++;                       
+        } 
+    
+    retbuf = retbuf->ReAllocL(retptr.Length());
+    CleanupStack::Pop(); //retbuf  
+    return retbuf;
+    }
+
+TBidiText::TDirectionality CResourceLoader::DirectionalityL(const TDesC& aText, TBool* aFound)
+    {
+    // Resolve directionality of sub string
+    HBufC* dirbuf = aText.AllocL();
+    TPtr dirptr = dirbuf->Des();
+    TBidiText::TDirectionality dir = ResolveDirectionality(dirptr, aFound);
+    delete dirbuf;
+    return dir;
+    }
+    
+/**
+Resolves directionality of the given source text.
+Place-holder strings are removed so that they don't affect the result.
+*/
+TBidiText::TDirectionality CResourceLoader::ResolveDirectionality(TDes& aText, TBool* aFound)
+    {
+    TInt i = 0;
+
+    // Remove place-holders from string so they don't affect directionality
+    // length parameters e.g. "[29]" do not contain strongly directional
+    // characters so can ignore them.
+    while (i < aText.Length())
+        {
+        TPtrC remainder = aText.Right(aText.Length() - i);
+        TInt nextKey = remainder.Locate(KKeyPrefix);
+        i += nextKey;
+
+        if (nextKey != KErrNotFound && i < aText.Length() - 1)
+            {
+            TInt lastCharInKey = i + 1;
+
+            // skip possible key index
+            TText t = aText[lastCharInKey];
+            if (t >= '0' && t <= '9')
+                {
+                lastCharInKey++;
+
+                if (lastCharInKey < aText.Length())
+                    {
+                    t = aText[lastCharInKey];
+                    if (t >= '0' && t <= '9')
+                        {
+                        lastCharInKey++;
+                        }
+                    }
+                }
+
+            // lastCharInKey is now the index of 'N' or 'U' in the key
+
+            if (lastCharInKey < aText.Length())
+                {
+                TText t = aText[lastCharInKey];
+                if (t == 'U' || t == 'N')
+                    {
+                    // found key, delete it and continue loop to
+                    // search for the next key
+                    aText.Delete(i, lastCharInKey - i + 1);
+                    }
+                // This was not a proper key - check the remaining string
+                else
+                    {
+                    i = lastCharInKey + 1;
+                    }
+                }
+            // end of string encountered - stop
+            else
+                {
+                break;
+                }
+            }
+        // no key found - stop
+        else
+            {
+            break;
+            }
+        }
+
+    return TBidiText::TextDirectionality(aText, aFound);
+    }
+
+/**
+Finds the keystring from the source string and replaces it with the
+replacement string.
+*/
+HBufC* CResourceLoader::FormatStringL(const TDesC& aSource, const TDesC& aKey, const TDesC& aSubs,TBidiText::TDirectionality aDir)
+    {
+    TInt paramCount(KUnknownCount); // variable needed as it may be updated
+    return FormatStringL(aSource, aKey, aSubs, aDir, paramCount, KUnknownCount);
+    }
+
+/**
+Finds the keystring from the source string and replaces it with the
+replacement string.
+*/
+HBufC* CResourceLoader::FormatStringL(const TDesC& aSource, const TDesC& aKey, const TDesC& aSubs, TBidiText::TDirectionality aDirectionality,
+    TInt& aParamCount, TInt aSubCount)
+    {
+    if (aParamCount == KUnknownCount)
+        aParamCount = GetParamCount(aSource);
+
+    if (aSubCount == KUnknownCount)
+        aSubCount = GetSubStringCount(aSource);
+
+    // determine lenght of needed buffer 
+    TInt sourcelength(aSource.Length()); 
+    TInt keylength(aKey.Length());
+    TInt subslength(aSubs.Length());
+    TInt destlength = 0;
+    if (subslength >= keylength)
+        {
+        destlength = sourcelength + ((subslength - keylength) * aParamCount);
+        }
+    else
+        {
+        destlength = sourcelength;
+        }
+
+    destlength += KExtraSpaceForMainStringDirMarker * aSubCount;
+    destlength += KExtraSpaceForSubStringDirMarkers * aParamCount;
+    //
+    // Allocating heap buffer for return string.
+    //
+
+    HBufC* retbuf = HBufC::NewL(destlength);
+    TPtr retptr(retbuf->Des());
+
+    // Formating the resource string. Don't bother with format, 
+    // if parameter count is not above zero
+    if (aParamCount > 0)
+        {
+        aParamCount -= Formater(retptr, aSource, aKey, aSubs, aDirectionality);
+        __ASSERT_DEBUG(aParamCount >= 0, User::Invariant());
+        }
+
+    //
+    // If the key string wasn't found, retbuf is empty.
+    //
+    return retbuf; 
+    }
+
+/**
+Finds the keystring from the source string and replaces it with the
+replacement string. The formated string is stored in the destination
+descriptor.
+*/
+TInt CResourceLoader::Formater(TDes& aDest, const TDesC& aSource, const TDesC& aKey, const TDesC& aSubs, TBidiText::TDirectionality aDirectionality)    
+    {
+    // substitute string must not contain KSubStringSeparator, 
+    // or results will be unpredictable 
+    __ASSERT_DEBUG(aSubs.Locate(KSubStringSeparator) == KErrNotFound, 
+        User::Panic(KPanicCategory, EInvalidSubstitute));
+
+    TInt keylength(aKey.Length());
+
+    //aDest must be empty.
+    aDest.Zero();
+
+    // offset indicates end of last handled key in source
+    TInt offset(0);
+
+    // offset in destination string
+    TInt desOffset(0);
+
+    // Substring directionalities are adjusted after all changes are done.
+    TBool checkSubstringDirectionalities(EFalse);
+
+    // count is the position in the source from which the substring starts
+    TInt count(0);
+
+    // Replaced parameters count
+    TInt replaceCount(0);
+
+    while (count != KErrNotFound)
+        {
+        // desCount is the position of the substring starts in destination.
+        TInt desCount(0);
+
+        TPtrC remainder = aSource.Right(aSource.Length() - offset);
+        count = remainder.Find(aKey);
+
+        TInt maxSubLength = -1;
+        if (count != KErrNotFound)
+            {
+            replaceCount++;
+            desOffset += count;
+            offset += count;
+            count = offset;
+            desCount = desOffset;
+
+            // copy source to destination if first time
+            if (aDest.Length() == 0)
+                aDest.Append(aSource);
+
+            // delete found key from destination
+            aDest.Delete(desCount, keylength);
+
+            offset += keylength; // increase offset by key length
+
+            if (count + keylength < (aSource.Length()-1)) // aKey is not at the end of string
+                {
+                if (aSource[count+keylength] == '[') // Key includes max datalength
+                    {
+                    maxSubLength = 10*(aSource[count+keylength+1]-'0') 
+                                   + (aSource[count+keylength+2]-'0');
+                    aDest.Delete(desCount,4); // Length information stored->delete from descriptor
+                    offset += 4; // increase offset by max sub length indicator
+                    }
+                }
+         
+            aDest.Insert(desCount, aSubs);
+        
+            desOffset = desCount + aSubs.Length();
+
+            if (maxSubLength > 0 && aSubs.Length() > maxSubLength)
+                {
+                aDest.Delete(desCount+maxSubLength-1, aSubs.Length()+1-maxSubLength);     
+                TText ellipsis(KEllipsis);
+                aDest.Insert(desCount+maxSubLength-1, TPtrC(&ellipsis,1));
+                desOffset = desCount + maxSubLength;
+                }
+
+            TBidiText::TDirectionality subsDir =
+                TBidiText::TextDirectionality(aDest.Mid(desCount, desOffset - desCount));
+
+            // If inserted string has different directionality,
+            // insert directionality markers so that bidi algorithm works in a desired way.
+            if (aDirectionality != subsDir)
+                {
+                checkSubstringDirectionalities = ETrue;
+
+                TInt freeSpace = aDest.MaxLength() - aDest.Length();
+
+                // Protect the directionality of the inserted string.
+                if (freeSpace >= KExtraSpaceForSubStringDirMarkers)
+                    {
+                    TBuf<1> subsMarker;
+                    subsMarker.Append(subsDir == TBidiText::ELeftToRight ?
+                        KLRMarker : KRLMarker);
+
+                    aDest.Insert(desOffset, subsMarker);
+                    aDest.Insert(desCount, subsMarker);
+                    desOffset += KExtraSpaceForSubStringDirMarkers;
+                    }
+                }
+            }
+        }
+
+    // Adjust substring directionality markers if necessary
+    // and if there is enough room in destination string
+    if (checkSubstringDirectionalities)
+        {
+        TText mainMarker = (aDirectionality == TBidiText::ELeftToRight ? 
+            KLRMarker : KRLMarker);
+
+        TInt freeSpace = aDest.MaxLength() - aDest.Length();
+
+        // If not already done, protect the directionality of the original string
+        // and all of the KSubStringSeparator separated substrings.
+        if (freeSpace > 0 
+            && aDest.Length()
+            && aDest[0] != mainMarker 
+            && aDest[0] != KSubStringSeparator
+            && aDest[0] != KDirNotFound)  
+            {
+            aDest.Insert(0, TPtrC(&mainMarker, 1));
+            freeSpace--;
+            }
+
+        // Find and protect KSubStringSeparator separated substrings.
+        // Go through string backwards so that any changes will not affect indexes 
+        // that are not yet checked.
+        TInt j(aDest.Length()-1);
+        while (freeSpace > 0 && j >= 0) 
+            {
+            if (aDest[j] == KSubStringSeparator && j < (aDest.Length() - 1) 
+                && aDest[j+1] != mainMarker && aDest[j+1] != KDirNotFound)
+                {
+                aDest.Insert(j+1, TPtrC(&mainMarker, 1));
+                freeSpace--;
+                }
+            j--;
+            }
+        }
+
+    return replaceCount;
+    }
+
+/**
+Counts the number of parameters in the text. 
+Needed for correct memory allocations.
+*/
+TInt CResourceLoader::GetParamCount(const TDesC& aText, TInt aIndex)
+    {
+    TInt paramCount(0);
+    TInt i(0);
+    TBool singleIndex((aIndex < 0) || (aIndex > KNumOfParams) ? EFalse : ETrue);
+
+    while (i < aText.Length())
+        {
+        TPtrC remainder = aText.Right(aText.Length() - i);
+        TInt nextKey = remainder.Locate(KKeyPrefix);
+        i += nextKey;
+
+        if (nextKey != KErrNotFound && i < aText.Length() - 1)
+            {
+            TInt lastCharInKey = i + 1;
+
+            // skip possible key index
+            TText t = aText[lastCharInKey];
+            TInt foundIndex(-1);
+            
+            if (t >= '0' && t <= '9')
+                {
+                lastCharInKey++;
+                foundIndex = t - '0';
+
+                if (lastCharInKey < aText.Length())
+                    {
+                    t = aText[lastCharInKey];
+                    if (t >= '0' && t <= '9')
+                        {
+                        foundIndex *= 10;
+                        foundIndex += t - '0';
+                        lastCharInKey++;
+                        }
+                    }
+                }
+
+            // lastCharInKey is now the index of 'N' or 'U' in the key
+
+            if (lastCharInKey < aText.Length())
+                {
+                // Only count parameter, if index matches
+                if (!singleIndex || (foundIndex == aIndex))
+                    {
+                    TText t = aText[lastCharInKey];
+                    if (t == 'U' || t == 'N')
+                        {
+                        // found legit key, count it
+                        paramCount++;
+                        // continue search after index
+                        i = lastCharInKey + 1;
+                        }
+                    else if (t == '%')
+                        i = lastCharInKey;
+                    else    // continue search after index
+                        i = lastCharInKey + 1;
+                    }
+                else    // continue search after index
+                    i = lastCharInKey + 1;
+                }
+            else    // end of string encountered - stop
+                break;
+            }
+        else     // no key found - stop
+            break;
+        }
+
+    return paramCount;
+    }
+
+/**
+Resolves sub string and directionality of the sub string.
+Adds no dir marker if directionality of the string not found.
+*/
+HBufC* CResourceLoader::ResolveSubStringL(TDes& aText, TBool* aMarker)
+    {
+    // Allocating heap buffer for return string.
+    TInt destlength(aText.Length());
+    HBufC* retbuf = HBufC::NewLC(destlength + 1); // no dir marker
+    TPtr retptr(retbuf->Des());
+    
+    TBuf<1> marker;
+    marker.Append(KDirNotFound);
+        
+    TPtrC remainder = aText.Right(aText.Length());
+    TInt nextKey = remainder.Locate(KSubStringSeparator);
+    
+    if (nextKey == 0)
+        {
+        remainder.Set(remainder.Mid(1));
+        nextKey = remainder.Locate(KSubStringSeparator);
+        if (nextKey != KErrNotFound)
+            {
+            retptr.Insert(0, aText.Mid(1, nextKey));           
+            // Remove string from aText
+            aText.Delete(0, nextKey + 1);
+            }
+        else
+            {
+            TInt length = aText.Length();
+            retptr.Insert(0, aText.Mid(1, length - 1));
+            // Remove string from aText
+            aText.Delete(0, length);
+            }
+        }
+    else if (nextKey == KErrNotFound)
+        {
+        retptr.Insert(0, aText); 
+        // Remove string from aText
+        aText.Delete(0, aText.Length());
+        }
+    else
+        {
+        retptr.Insert(0, aText.Mid(0, nextKey));
+        // Remove string from aText
+        aText.Delete(0, nextKey);
+        }
+     
+    // Resolve directionality of sub string
+    HBufC* dirbuf = retbuf->AllocL();
+    TPtr dirptr = dirbuf->Des();
+    TBool found(EFalse);
+    TBidiText::TDirectionality mainDir = ResolveDirectionality(dirptr, &found);
+    delete dirbuf;
+    
+    if (!found)
+        {
+        retptr.Insert(0, marker);
+        *aMarker = ETrue;
+        }
+    else
+        {
+        *aMarker = EFalse;
+        }
+        
+    retbuf = retbuf->ReAllocL(retptr.Length());
+    CleanupStack::Pop(); //retbuf
+    // If the key string wasn't found, retbuf is empty.
+    return retbuf;     
+    }
+    
+/**
+Removes no dir markers from source text.
+*/
+void CResourceLoader::RemoveNoDirMarkers(TDes& aText)
+    {
+    TInt nextkey(0);
+    while (nextkey < aText.Length())
+        {
+        nextkey = aText.Locate(KDirNotFound);
+        if (nextkey != KErrNotFound)
+            {
+            aText.Delete(nextkey, 1);
+            nextkey++;    
+            }
+        else
+            {
+            break;
+            }     
+        }
+    }
+    
+// ============================ MEMBER FUNCTIONS ===============================
+
+static TChar NumberToBase(const TChar& aCharacter )
+    {
+    const TDigitType d[] = { EDigitTypeWestern, 
+                       EDigitTypeArabicIndic, 
+                       EDigitTypeEasternArabicIndic, 
+                       EDigitTypeDevanagari, 
+                       EDigitTypeThai };
+    
+    const TInt num = sizeof( d ) / sizeof( d[0] );
+    
+    TInt i = 0;
+    while( i < num )
+        {
+        if (aCharacter > TChar( d[i] ) && aCharacter < TChar( d[i]+10 )) 
+            return d[i];
+        
+        i++;
+        }
+        
+    return aCharacter;
+    }
+
+/**
+This routine is used to convert between European digits and 
+Arabic-Indic, Eastern Arabic-Indic, Devanagari or Thai digits 
+based on existing digit type setting. 
+
+@param aDes  Parameter to change
+*/
+void CResourceLoader::LanguageSpecificNumberConverter::Convert( TDes &aDes )
+    {   
+    TLocale locale;
+    locale.Refresh();
+    const TDigitType digitType = locale.DigitType();
+    TChar toArea = 0x030;
+    switch( digitType )
+        {
+        case EDigitTypeWestern:
+        case EDigitTypeArabicIndic:
+        case EDigitTypeEasternArabicIndic:
+        case EDigitTypeDevanagari:
+        case EDigitTypeThai:
+            toArea = digitType;
+            break;
+        case EDigitTypeUnknown:
+        case EDigitTypeAllTypes:
+            return;
+        }
+    
+    const TInt length = aDes.Length();
+    for( TInt i = 0; i < length; i++ )
+        {
+        TChar character = aDes[i];
+        TChar fromArea = NumberToBase( character );
+        TChar::TBdCategory cat = character.GetBdCategory();
+        switch( cat )
+            {
+            case TChar::EArabicNumber:
+            case TChar::EEuropeanNumber:
+                character += toArea;
+                character -= fromArea;
+                aDes[i] = TUint16( character );
+                break;
+            default: 
+                break;
+            }
+        }
+    }
+
+/**
+This routine is used to convert Arabic-Indic, Eastern Arabic-Indic
+or Devanagari digits to European digits. 
+
+@param aDes Parameter to change
+*/
+void CResourceLoader::LanguageSpecificNumberConverter::ConvertToWesternNumbers( TDes &aDes )
+    {   
+    const TChar toArea = 0x030;
+    const TInt KLastDevanagariDigit = 0x96F;
+    const TInt KFirstDevanagariDigit = 0x966;
+    const TInt length = aDes.Length();
+
+    for( TInt i=0; i<length; i++ )
+        {
+        TChar character = aDes[i];
+        TChar fromArea = NumberToBase( character );
+        TChar::TBdCategory cat = character.GetBdCategory();
+
+        if ( cat == TChar::EArabicNumber || cat == TChar::EEuropeanNumber ||
+           ( KFirstDevanagariDigit <= character && character <= KLastDevanagariDigit ) )
+            {
+            character += toArea;
+            character -= fromArea;
+            aDes[i] = TUint16( character );    
+            }        
+        }
+    }
+
+/**
+This routine is used to check if conversion of digits is needed.
+Conversion is needed if user language is   
+- Arabic, Urdu or Farsi and if digit type is Arabic-Indic
+- Urdu or Farsi and digit type is Eastern Arabic_indic
+- Hindi and digit type is Devanagari. 
+
+@return  ETrue if conversion is needed, EFalse if not
+*/
+TBool CResourceLoader::LanguageSpecificNumberConverter::IsConversionNeeded()
+    {
+    TLocale locale;
+    locale.Refresh();
+    const TLanguage language = User::Language();
+    const TDigitType digitType = locale.DigitType();
+    
+    if ( ( ( language == ELangArabic || language == ELangUrdu || language == ELangFarsi ) &&
+         digitType == EDigitTypeArabicIndic ) 
+         || ( ( language == ELangUrdu || language == ELangFarsi ) &&
+         digitType == EDigitTypeEasternArabicIndic )
+         || ( language == ELangHindi && digitType == EDigitTypeDevanagari )
+        )
+        {
+        return ETrue;
+        }
+
+    return EFalse;
+    }
+
--- a/emailservices/emailstore/base_plugin/src/baseplugintranslator.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/baseplugintranslator.cpp	Mon May 03 12:23:15 2010 +0300
@@ -93,7 +93,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::TranslateMsgStorePropsL(
+void CBasePlugin::TranslateMsgStorePropsL(
     const TFSMailMsgId& aMailBoxId,
     CMsgStorePropertyContainer& aMessage,
     CFSMailMessagePart& aFsMsg,
@@ -318,7 +318,7 @@
  * @param aMessage
  * @param aFsMsg
  */
-EXPORT_C void CBasePlugin::TranslateMsgStoreMrL(
+void CBasePlugin::TranslateMsgStoreMrL(
     const TFSMailMsgId& aMailBoxId,
     CMsgStorePropertyContainer& aMessage,
     CMsgStorePropertyContainer& aCalendar,
@@ -714,7 +714,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::TranslateEmailFwMessageL(
+void CBasePlugin::TranslateEmailFwMessageL(
     CFSMailMessagePart& aSrc,
     CMsgStoreMessagePart& aDst,
     TBool aInInbox )
@@ -768,10 +768,15 @@
 	    TTime sentTime;
 	    sentTime.UniversalTime();
 	    aDst.AddOrUpdatePropertyL( KMsgStorePropertySent, sentTime );
+	    // same date needs to be set as received date , because of sorting
+	    // feature in message store, which enable sorting only according to
+	    // received date.
+	    aDst.AddOrUpdatePropertyL( KMsgStorePropertyReceivedAt, sentTime );
 	    aSrc.SetDate( sentTime );
     	}
     
     //to recipients.
+//<qmail> Return by val (as in earlier Cmail version)
     RPointerArray<CFSMailAddress> toRecipients = aSrc.GetToRecipients();
     TranslateEmailFwRecipientsL( aDst, KMsgStorePropertyTo, toRecipients );
 
@@ -782,6 +787,7 @@
     //bcc recipients.
     RPointerArray<CFSMailAddress> bccRecipients = aSrc.GetBCCRecipients();
     TranslateEmailFwRecipientsL( aDst, KMsgStorePropertyBcc, bccRecipients );
+//</qmail>
 
     //flags.
     //the cast is important otherwise the TBool overload gets called.
@@ -865,7 +871,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::TranslateEmailFwMrL(
+void CBasePlugin::TranslateEmailFwMrL(
     MMRInfoObject& aSrc,
     CMsgStorePropertyContainer& aDst )
 
@@ -1221,7 +1227,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::TranslateEmailFwAttendeeL(
+void CBasePlugin::TranslateEmailFwAttendeeL(
     MMROrganizer& aSrc,
     RMsgStoreAddress& aDst )
 
@@ -1243,7 +1249,7 @@
 /**
  *
  */
-EXPORT_C void CBasePlugin::RemoveAllPropertiesL(
+void CBasePlugin::RemoveAllPropertiesL(
     CMsgStorePropertyContainer& aContainer,
     const TDesC8& aName )
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/base_plugin/src/nestedao.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of a nested active object used to handle deletion
+*                of large number of messages by breaking them into smaller chunks
+*
+*/
+
+//  Include Files
+//
+
+
+#include "NestedAO.h"
+#include "baseplugindelayedops.h"
+#include "baseplugindelayedopsprivate.h"
+
+//Class CNestedAO
+
+// --------------------------------------------------------------------------
+//  CNestedAO::NewL
+// ------------ 
+CNestedAO* CNestedAO::NewL( MDeletionHandler& aDeletionHandler )
+    {
+    CNestedAO* self = new(ELeave) CNestedAO( aDeletionHandler );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+// --------------------------------------------------------------------------
+//  CNestedAO::CNestedAO
+// ------------ 
+CNestedAO::CNestedAO( MDeletionHandler& aDeletionHandler ) 
+ : CTimer( EPriorityIdle ), iDeletionHandler( aDeletionHandler ), iRc( KErrNone )
+    {
+    }
+// --------------------------------------------------------------------------
+//  CNestedAO::ConstructL()
+// ------------ 
+void CNestedAO::ConstructL()
+    {
+    CTimer::ConstructL();
+    iNestedWait = new( ELeave ) CActiveSchedulerWait();
+    CActiveScheduler::Add( this );
+    }
+// --------------------------------------------------------------------------
+//  CNestedAO::~CNestedAO
+// ------------ 
+CNestedAO::~CNestedAO()
+    {
+    Cancel();
+    delete iNestedWait;
+    }
+// --------------------------------------------------------------------------
+// CNestedAO::DeleteMessagesAsync
+// Used to delete messages asynchronously 
+// Deleting a small number of messages at a time
+// ------------
+void CNestedAO::DeleteMessagesAsync()
+    {
+    iDeletionIndex = 0;
+    After( KWaitIntervalInMicroSecs );  //to invoke RunL after 100 microseconds
+    iNestedWait->Start(); 
+    }
+// --------------------------------------------------------------------------
+//  CNestedAO::DoCancel
+// ------------ 
+void CNestedAO::DoCancel()
+    {
+    iRc = KErrCancel;
+    Stop();
+    }
+// --------------------------------------------------------------------------
+//  CNestedAO::RunL
+// ------------    
+void CNestedAO::RunL()
+    {
+    iRc = iStatus.Int();
+    if ( iStatus.Int() == KErrNone )
+        {
+        TBool done = iDeletionHandler.DeleteMessagesInChunksL( iDeletionIndex );
+        if( !done )
+        	{
+        	//Increment deletionidex
+        	iDeletionIndex+=KSizeOfChunk;
+        	After( KWaitIntervalInMicroSecs ); 
+        	}
+        else
+        	{
+        	Stop();
+        	}
+		}
+    else
+        {
+        Stop();
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CNestedAO::Stop
+// Stops the scheduler from running
+// Called after all messages are processed
+// or in error condition
+// ------------    
+void CNestedAO::Stop()
+    {
+    if( iNestedWait->IsStarted() )
+        {
+        // Stop the nested active scheduler (flow-of-control will pick up immediately following the
+        // call to iWait.Start().
+        iNestedWait->AsyncStop();
+        } // end if
+    }
--- a/emailservices/emailstore/group/ABLD.BAT	Fri Apr 16 14:51:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\sf\app\commonemail\emailservices\emailstore\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/emailservices/emailstore/inc/EmailStoreUids.hrh	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/inc/EmailStoreUids.hrh	Mon May 03 12:23:15 2010 +0300
@@ -32,6 +32,7 @@
 #define KRfsMsgStorePluginDllUid    0x2000C8D3 // MsgStore RfsPlugin DLL
 #define KRfsMsgStorePluginImpUid    0x2000C8D4 // MsgStore RfsPlugin Implementation Uid
 #define KRfsMsgStoreVersionNumber   1          // MsgStore RfsPlugin version number
+#define KRfsMsgStoreMMPVersionNumber 1.0       // MsgStore version number for MMP file (major.minor)
 
 // These should be defined in Symbian OS headers, but aren't
 #ifndef KUidEPOCApp       
--- a/emailservices/emailstore/inc/emailstorepskeys.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/inc/emailstorepskeys.h	Mon May 03 12:23:15 2010 +0300
@@ -30,4 +30,9 @@
   */
 const TInt KProperty_EmailStore_Upgrade = 115;
   
+
+// Copied from emailshutter.h 
+// Value to be set in shutdown P&S key.
+const TInt KEmailShutterPsValue = 1;
+
 #endif //_EMAILSTOREPSKEYS_H_
--- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp	Mon May 03 12:23:15 2010 +0300
@@ -28,7 +28,7 @@
 VENDORID VID_DEFAULT
 
 
-VERSION       KRfsMsgStoreVersionNumber
+VERSION       KRfsMsgStoreMMPVersionNumber
 
 MW_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   /epoc32/include/ecom
--- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/inc/RfsMsgStorePlugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/inc/RfsMsgStorePlugin.h	Mon May 03 12:23:15 2010 +0300
@@ -56,7 +56,6 @@
     * @return   None
     */
     void ExecuteCustomCommandL( const TRfsReason aType, TDesC& aCommand );
-    TInt GetDriveL( TDriveNumber& aDrive );
 
 private:
     CRfsMsgStorePlugin();
--- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/src/RfsMsgStorePlugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/src/RfsMsgStorePlugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -55,8 +55,8 @@
     if ( aType == ENormalRfs || aType == EDeepRfs || aType == EInitRfs )
         {
         TUint driveStatus( 0 );
-				TDriveNumber drive( EDriveC );
-     		GetDriveL( drive );
+        TDriveNumber drive( EDriveC );
+        
         if ( DriveInfo::GetDriveStatus( iFs, drive, driveStatus ) == KErrNone )
             {
             _LIT( KPrivate, ":\\Private\\" );    
@@ -70,9 +70,7 @@
             msgStorePath.AppendNum( KUidMessageStoreExe, EHex );
             msgStorePath.Append( KPathDelimiter );
             CFileMan* fileManager = CFileMan::NewL( iFs );
-            // this will recursively delete all files in all directories under the msgStorePath
-            // but directories under the msgStorePath are not deleted
-            fileManager->Delete( msgStorePath, CFileMan::ERecurse );
+            fileManager->RmDir( msgStorePath );
             delete fileManager;
             }
         }
@@ -116,46 +114,5 @@
     User::LeaveIfError( iFs.Connect() );
     }
     
-// -----------------------------------------------------------------------------
-// CRfsMsgStorePlugin::GetDriveL(TDriveNumber&)
-// -----------------------------------------------------------------------------
-//
-TInt CRfsMsgStorePlugin::GetDriveL( TDriveNumber& aDrive )
-    {
-    _LIT16( KDriveToUseFile, "db_drive.cfg" );
-    TInt ret( KErrNotFound );
-    RFs fs;
-    if( fs.Connect() == KErrNone )
-        {
-        CleanupClosePushL( fs );               //+fs
-        TFileName fileName;
-        _LIT( KCDrive, "C:" );
-        _LIT( KPrivate, "Private" );   
-        fileName.Append(KCDrive());
-        fileName.Append( KPathDelimiter ); 
-        fileName.Append(KPrivate);
-        fileName.Append( KPathDelimiter );                 
-        fileName.AppendNum( KUidMessageStoreExe, EHex );
-        fileName.Append( KPathDelimiter );        
-        fileName.Append( KDriveToUseFile );
-        if( BaflUtils::FileExists( fs, fileName ) )
-            {
-            RFileReadStream reader;
-            if ( reader.Open( fs, fileName, EFileRead ) == KErrNone )
-          		{
-           		CleanupClosePushL( reader );             //+reader
-           		TUint drive = reader.ReadUint32L();
-              CleanupStack::PopAndDestroy( &reader );  //-reader
-              if(drive <=EDriveZ)
-	              {
-	           		aDrive = static_cast<TDriveNumber>( drive );
-           			ret = KErrNone;
-           			}
-           		}
-            }
-        CleanupStack::PopAndDestroy( &fs );    //-fs
-        } // end if
-    return ret;
-    }
 
 // END FILE RfsMsgStorePlugin.cpp
--- a/emailservices/emailstore/message_store/client/api/MsgStoreTypes.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/client/api/MsgStoreTypes.h	Mon May 03 12:23:15 2010 +0300
@@ -71,18 +71,23 @@
 /** Defines the system events of which observers receive notification. */
 enum TMsgStoreSystemEvent
 	{
-	// A backup or restore is in progress.  The message store is unavailable.
-	EMsgStoreBackupOrRestoreInProgress = KMsgStoreSystemEventMin,
-	
-	// The backup or restore completed.  The message store is available again.
-	EMsgStoreBackupOrRestoreCompleted,
+    // Available and Unavailable events have been added which include the
+    // status of backup/restore and Pointsec.  It is recommended that these
+    // new events be used to determine Msg Store availability.
+    // Backup/restore events and Pointsec events left for backwards compatibility.
+    
+    // A backup or restore is in progress.
+    EMsgStoreBackupOrRestoreInProgress = KMsgStoreSystemEventMin,
+    
+    // The backup or restore completed.
+    EMsgStoreBackupOrRestoreCompleted,
     
     // PointSec has locked the file system, all operations are suspendded
     EMsgStorePointSecLockStarted,
     
     // PointSec has unlocked the file system, all operations are resumed
     EMsgStorePointSecLockEnded,
-	
+    
 	// The message store has been wiped, including the password.
 	EMsgStoreDatabaseWiped,
 
@@ -95,7 +100,15 @@
 	// The observer event queue has overflowed and has been reset, so events have been lost.  This
 	// shouldn't happen unless the client thread has been starved for an extended period of time, during
 	// which many message store operations have occurred.
-	EObserverEventQueueOverflow
+	EObserverEventQueueOverflow,
+	
+    // The message store is unavailable.  This may be due to 
+    // a backup or restore being in progress, a Pointsec lock being issued,
+    // the disk drive being unavailable, etc.
+    EMsgStoreUnavailable,
+    
+    // All lock conditions have cleared and the message store is available again.
+    EMsgStoreAvailable
 	
 	}; // end enum TMsgStoreSystemEvent
 	
--- a/emailservices/emailstore/message_store/client/src/MessageStoreClient.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/client/src/MessageStoreClient.cpp	Mon May 03 12:23:15 2010 +0300
@@ -46,34 +46,34 @@
 
 /** This class defines the message store search client API.
 
-	This class is used to notify the search client of the completion of an asynchronous search of the
-	message store.
+    This class is used to notify the search client of the completion of an asynchronous search of the
+    message store.
 */
 class MMsgStoreSearchClient
-	{
-	public:
+    {
+    public:
 
-		virtual void MatchFound( TMsgStoreId aMessageId ) = 0;
-	
-		virtual void SearchCompleted() = 0;
-	
-	}; // end class MMsgStoreSearchClient
+        virtual void MatchFound( TMsgStoreId aMessageId ) = 0;
+    
+        virtual void SearchCompleted() = 0;
+    
+    }; // end class MMsgStoreSearchClient
 
 
 /** This class defines the message store quick property client API.
 
-	This class is used to notify the client when a quick property is ready to be processed, or
+    This class is used to notify the client when a quick property is ready to be processed, or
     to notify the client something has changed, restart building the list
 */
 class MMsgStoreQuickPropertyClient
-	{
-	public:
+    {
+    public:
 
-		virtual void ProcessQuickProperty( const CMsgStorePropertyContainer& aContainer ) = 0;
-	
-		virtual void Reset() = 0;
-	
-	}; // end class MMsgStoreSearchClient
+        virtual void ProcessQuickProperty( const CMsgStorePropertyContainer& aContainer ) = 0;
+    
+        virtual void Reset() = 0;
+    
+    }; // end class MMsgStoreSearchClient
 
 
     
@@ -84,10 +84,10 @@
     {
     public:
     
-	    // ==============
-	    // PUBLIC METHODS
-	    // ==============
-	    
+        // ==============
+        // PUBLIC METHODS
+        // ==============
+        
         TPropertyContainerProxy( MMsgStoreQuickPropertyClient& aClient );
         
         // inherited from MPropertiesArray              
@@ -96,10 +96,10 @@
         
     private:
     
-	    // ==================
-	    // PRIVATE ATTRIBUTES
-	    // ==================
-	
+        // ==================
+        // PRIVATE ATTRIBUTES
+        // ==================
+    
         MMsgStoreQuickPropertyClient& iClient;
         
     }; // end class TPropertyContainerProxy
@@ -118,209 +118,209 @@
 // FUNCTION: CopyAttachmentL
 // ==========================================================================
 EXPORT_C TMsgStoreId CMsgStoreSession::CopyAttachmentL( TMsgStoreId aAttachmentId,
-		                                                TMsgStoreId aSourceMessageId, 
-		                                                TMsgStoreId aSourceFolderId, 
-		                                                TMsgStoreId aDestinationMessageId, 
-		                                                TMsgStoreId aDestinationFolderId )
-	{
-	iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
-	iContext->VerifyTypeL( aSourceMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aSourceFolderId, EMsgStoreFolderBits );
-	iContext->VerifyTypeL( aDestinationMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aDestinationFolderId, EMsgStoreFolderBits );
-	
-	return iContext->iSession.CopyContainerL( aAttachmentId, 
-	                                          aSourceMessageId, 
-	                                          aSourceFolderId,
-	                                          aDestinationMessageId,
-	                                          aDestinationFolderId );	
-	} // end CopyAttachmentL
+                                                        TMsgStoreId aSourceMessageId, 
+                                                        TMsgStoreId aSourceFolderId, 
+                                                        TMsgStoreId aDestinationMessageId, 
+                                                        TMsgStoreId aDestinationFolderId )
+    {
+    iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
+    iContext->VerifyTypeL( aSourceMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aSourceFolderId, EMsgStoreFolderBits );
+    iContext->VerifyTypeL( aDestinationMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aDestinationFolderId, EMsgStoreFolderBits );
+    
+    return iContext->iSession.CopyContainerL( aAttachmentId, 
+                                              aSourceMessageId, 
+                                              aSourceFolderId,
+                                              aDestinationMessageId,
+                                              aDestinationFolderId );   
+    } // end CopyAttachmentL
 
 // ==========================================================================
 // FUNCTION: QuickMessagePropertiesL
 // ==========================================================================
 EXPORT_C void CMsgStoreSession::QuickMessagePropertiesL( TMsgStoreId aFolderId, RPointerArray<CMsgStorePropertyContainer>& aQuickProperties )
-	{
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	
-	TPropertyContainersArray containersArray( aQuickProperties );
-	
-	iContext->iSession.ChildrenPropertiesL( aFolderId,            // aId
-	                                        KMsgStoreInvalidId,   // aParentId (do not need to check parent ID)
-	                                        EMsgStoreMessageBits, // aContainerType
-	                                        ETrue,                // aQuickProperties
-	                                        EFalse,               // aRecursive	                                        
-	                                        containersArray );
-	} // end QuickMessagePropertiesL
-	
+    {
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    
+    TPropertyContainersArray containersArray( aQuickProperties );
+    
+    iContext->iSession.ChildrenPropertiesL( aFolderId,            // aId
+                                            KMsgStoreInvalidId,   // aParentId (do not need to check parent ID)
+                                            EMsgStoreMessageBits, // aContainerType
+                                            ETrue,                // aQuickProperties
+                                            EFalse,               // aRecursive                                         
+                                            containersArray );
+    } // end QuickMessagePropertiesL
+    
 // ==========================================================================
 // FUNCTION: QuickMessagePropertiesL overloaded
 // ==========================================================================
 EXPORT_C void CMsgStoreSession::QuickMessagePropertiesL( TMsgStoreId aFolderId, MMsgStoreQuickPropertyClient& aClient )
-	{
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	
-	TPropertyContainerProxy containerProxy( aClient );
-	
-	iContext->iSession.ChildrenPropertiesL( aFolderId,            // aId
-	                                        KMsgStoreInvalidId,   // aParentId (do not need to check parent ID)
-	                                        EMsgStoreMessageBits, // aContainerType
-	                                        ETrue,                // aQuickProperties
-	                                        EFalse,               // aRecursive	                                        
-	                                        containerProxy );
-	} // end QuickMessagePropertiesL
+    {
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    
+    TPropertyContainerProxy containerProxy( aClient );
+    
+    iContext->iSession.ChildrenPropertiesL( aFolderId,            // aId
+                                            KMsgStoreInvalidId,   // aParentId (do not need to check parent ID)
+                                            EMsgStoreMessageBits, // aContainerType
+                                            ETrue,                // aQuickProperties
+                                            EFalse,               // aRecursive                                         
+                                            containerProxy );
+    } // end QuickMessagePropertiesL
 
 // ==========================================================================
 // FUNCTION: AttachmentsL
 // ==========================================================================
 EXPORT_C void CMsgStoreSession::AttachmentsL( TMsgStoreId                         aMessageId,
-											  TMsgStoreId                         aFolderId,
-										      RPointerArray<CMsgStoreAttachment>& aAttachmentsList )
-	{
-	iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+                                              TMsgStoreId                         aFolderId,
+                                              RPointerArray<CMsgStoreAttachment>& aAttachmentsList )
+    {
+    iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
 
-//	TAttachmentsArray attachmentsArray( *iContext, aAttachmentsList );
-	
-	iContext->iSession.ChildrenPropertiesL( aMessageId,              // aId
-	                                        aFolderId,               // aParentId
-	                                        EMsgStoreAttachmentBits, // aContainerType
-	                                        EFalse,                  // aQuickProperties
-	                                        EFalse,                  // aRecursive	                                        	                                        
-	                                        attachmentsArray );	
-	} // end AttachmentsL
+//  TAttachmentsArray attachmentsArray( *iContext, aAttachmentsList );
+    
+    iContext->iSession.ChildrenPropertiesL( aMessageId,              // aId
+                                            aFolderId,               // aParentId
+                                            EMsgStoreAttachmentBits, // aContainerType
+                                            EFalse,                  // aQuickProperties
+                                            EFalse,                  // aRecursive                                                                                      
+                                            attachmentsArray ); 
+    } // end AttachmentsL
 
 // ==========================================================================
 // FUNCTION: AttachmentL
 // ==========================================================================
 EXPORT_C CMsgStoreAttachment* CMsgStoreSession::AttachmentL( TMsgStoreId aAttachmentId,
-										   				     TMsgStoreId aMessageId,
-										   				     TMsgStoreId aFolderId )
-	{
-	iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
-	iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	
-	RBuf8 propertiesBuf;
-	CleanupClosePushL( propertiesBuf );
-	
-	iContext->iSession.ContainerPropertiesL( aAttachmentId, aMessageId, aFolderId, propertiesBuf );	
+                                                             TMsgStoreId aMessageId,
+                                                             TMsgStoreId aFolderId )
+    {
+    iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
+    iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    
+    RBuf8 propertiesBuf;
+    CleanupClosePushL( propertiesBuf );
+    
+    iContext->iSession.ContainerPropertiesL( aAttachmentId, aMessageId, aFolderId, propertiesBuf ); 
 
-	CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, aAttachmentId, aMessageId, propertiesBuf );
-	
-	CleanupStack::PopAndDestroy( &propertiesBuf );
-	
-	return attachment;
-	} // end AttachmentL
+    CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, aAttachmentId, aMessageId, propertiesBuf );
+    
+    CleanupStack::PopAndDestroy( &propertiesBuf );
+    
+    return attachment;
+    } // end AttachmentL
 
 // ==========================================================================
 // FUNCTION: AddAttachmentL
 // ==========================================================================
 EXPORT_C CMsgStoreAttachment* CMsgStoreSession::AddAttachmentL( TMsgStoreId                       aMessageId,
-																TMsgStoreId                       aFolderId,
-																const TDesC&                      aFilename, 
-																const CMsgStorePropertyContainer& aProperties )
-	{
-	iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	
-	if( aFilename.Length() == 0 )
-	    {
-    	__LOG_STATIC_ENTER( "msg", "AddAttachmentL" )
-    	__LOG_WRITE_ERROR( "zero length file name" )
-	    __LOG_STATIC_EXIT
-	    User::Leave( KErrArgument );
-	    } // end if
-	
-	RBuf8 serializedProperties;
-	CleanupClosePushL( serializedProperties );
-	aProperties.SerializeL( serializedProperties );
-	
-	TInt id = iContext->iSession.CreateContainerL( aMessageId, 
-												   aFolderId,
-												   EMsgStoreAttachmentBits,
-												   serializedProperties,
-												   ETrue,
-												   aFilename );
-	
-	CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, id, aMessageId, serializedProperties );
-	
-	CleanupStack::PopAndDestroy( &serializedProperties );
-	
-	return attachment;
-	} // end AddAttachmentL
+                                                                TMsgStoreId                       aFolderId,
+                                                                const TDesC&                      aFilename, 
+                                                                const CMsgStorePropertyContainer& aProperties )
+    {
+    iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    
+    if( aFilename.Length() == 0 )
+        {
+        __LOG_STATIC_ENTER( "msg", "AddAttachmentL" )
+        __LOG_WRITE_ERROR( "zero length file name" )
+        __LOG_STATIC_EXIT
+        User::Leave( KErrArgument );
+        } // end if
+    
+    RBuf8 serializedProperties;
+    CleanupClosePushL( serializedProperties );
+    aProperties.SerializeL( serializedProperties );
+    
+    TInt id = iContext->iSession.CreateContainerL( aMessageId, 
+                                                   aFolderId,
+                                                   EMsgStoreAttachmentBits,
+                                                   serializedProperties,
+                                                   ETrue,
+                                                   aFilename );
+    
+    CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, id, aMessageId, serializedProperties );
+    
+    CleanupStack::PopAndDestroy( &serializedProperties );
+    
+    return attachment;
+    } // end AddAttachmentL
 
 // ==========================================================================
 // FUNCTION: AddAttachmentL
 // ==========================================================================
 EXPORT_C CMsgStoreAttachment* CMsgStoreSession::AddAttachmentL( TMsgStoreId                       aMessageId,
-																TMsgStoreId                       aFolderId,
-																const CMsgStorePropertyContainer& aProperties )
-	{
-	iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	
-	RBuf8 serializedProperties;
-	CleanupClosePushL( serializedProperties );
-	aProperties.SerializeL( serializedProperties );
-	
-	TInt id = iContext->iSession.CreateContainerL( aMessageId, 
-												   aFolderId,
-												   EMsgStoreAttachmentBits,
-												   serializedProperties );
-	
-	CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, id, aMessageId, serializedProperties );
-	
-	CleanupStack::PopAndDestroy( &serializedProperties );
-	
-	return attachment;
-	} // end AddAttachmentL
+                                                                TMsgStoreId                       aFolderId,
+                                                                const CMsgStorePropertyContainer& aProperties )
+    {
+    iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    
+    RBuf8 serializedProperties;
+    CleanupClosePushL( serializedProperties );
+    aProperties.SerializeL( serializedProperties );
+    
+    TInt id = iContext->iSession.CreateContainerL( aMessageId, 
+                                                   aFolderId,
+                                                   EMsgStoreAttachmentBits,
+                                                   serializedProperties );
+    
+    CMsgStoreAttachment* attachment = CMsgStoreAttachment::NewL( *iContext, id, aMessageId, serializedProperties );
+    
+    CleanupStack::PopAndDestroy( &serializedProperties );
+    
+    return attachment;
+    } // end AddAttachmentL
 
 // ==========================================================================
 // FUNCTION: RemoveAttachmentL
 // ==========================================================================
 EXPORT_C void CMsgStoreSession::RemoveAttachmentL( TMsgStoreId aAttachmentId,
-												   TMsgStoreId aMessageId,
-												   TMsgStoreId aFolderId )
-	{
-	iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
-	iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
-	
-	iContext->iSession.DeleteContainerL( aAttachmentId, aMessageId, aFolderId );
-	} // end RemoveAttachmentL
-		
+                                                   TMsgStoreId aMessageId,
+                                                   TMsgStoreId aFolderId )
+    {
+    iContext->VerifyTypeL( aMessageId, EMsgStoreMessageBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    iContext->VerifyTypeL( aAttachmentId, EMsgStoreAttachmentBits );
+    
+    iContext->iSession.DeleteContainerL( aAttachmentId, aMessageId, aFolderId );
+    } // end RemoveAttachmentL
+        
 // ==========================================================================
 // FUNCTION: SearchL
 // ==========================================================================
 EXPORT_C void CMsgStoreSession::SearchL( TMsgStoreId            aFolderId, 
                                          TMsgStoreSearchType    aSearchType, 
-                					     const TDesC&           aSearchString,
-                					     MMsgStoreSearchClient& aSearchClient )
+                                         const TDesC&           aSearchString,
+                                         MMsgStoreSearchClient& aSearchClient )
     {
-	iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
+    iContext->VerifyTypeL( aFolderId, EMsgStoreFolderBits );
 
-	if( aSearchString.Length() == 0 )
-	    {
-    	__LOG_STATIC_ENTER( "msg", "SearchL" )
-    	__LOG_WRITE_ERROR( "zero length search string" )
+    if( aSearchString.Length() == 0 )
+        {
+        __LOG_STATIC_ENTER( "msg", "SearchL" )
+        __LOG_WRITE_ERROR( "zero length search string" )
         __LOG_STATIC_EXIT
         User::Leave( KErrArgument );
-	    } // end if
+        } // end if
     
     if( iContext->iSearchHandler )
         {
-    	__LOG_STATIC_ENTER( "msg", "SearchL" )
-    	__LOG_WRITE_ERROR( "search already in progress" )
+        __LOG_STATIC_ENTER( "msg", "SearchL" )
+        __LOG_WRITE_ERROR( "search already in progress" )
         __LOG_STATIC_EXIT
         User::Leave( KErrInUse );
         } // end if        
-	
+    
     iContext->iSearchHandler = CMsgStoreSearchHandler::NewL( iContext->iSession, aFolderId, aSearchType, aSearchString, *this );
     iContext->iSearchClient  = &aSearchClient;
     
     } // end SearchL
-									       
+                                           
 // ==========================================================================
 // FUNCTION: CancelSearch
 // ==========================================================================
@@ -363,8 +363,8 @@
 CMsgStoreSearchHandler* CMsgStoreSearchHandler::NewL( RMessageStoreSession&  aSession,
                                                       TMsgStoreId            aFolderId, 
                                                       TMsgStoreSearchType    aSearchType, 
-                        					          const TDesC&           aSearchString,
-                        					          MMsgStoreSearchClient& aSearchClient )
+                                                      const TDesC&           aSearchString,
+                                                      MMsgStoreSearchClient& aSearchClient )
     {
     CMsgStoreSearchHandler* self = new(ELeave) CMsgStoreSearchHandler( aSession, aSearchClient );
     CleanupStack::PushL( self );
@@ -372,27 +372,27 @@
     CleanupStack::Pop( self );
     return self;
     } // end NewL
-	
+    
 // ==========================================================================
 // FUNCTION: Constructor
 // ==========================================================================
 CMsgStoreSearchHandler::CMsgStoreSearchHandler( RMessageStoreSession& aSession,
                                                 MMsgStoreSearchClient& aSearchClient ) :
-	CActive( EPriorityStandard ),
-	iSession( aSession ),
+    CActive( EPriorityStandard ),
+    iSession( aSession ),
     iSearchClient( aSearchClient )
     {
     __LOG_CONSTRUCT( "msg", "CMsgStoreSearchHandler" ) 
     
-   	CActiveScheduler::Add(this);    
+    CActiveScheduler::Add(this);    
     } // end constructor
-                			   
+                               
 // ==========================================================================
 // FUNCTION: ConstructL
 // ==========================================================================
 void CMsgStoreSearchHandler::ConstructL( TMsgStoreId           aFolderId, 
                                          TMsgStoreSearchType   aSearchType, 
-		                                 const TDesC&          aSearchString )    
+                                         const TDesC&          aSearchString )    
     {
     iMatchBuffer[0].CreateL( sizeof(TMsgStoreId) * KSearchBufferLength );
     iMatchBuffer[1].CreateL( sizeof(TMsgStoreId) * KSearchBufferLength );
@@ -420,7 +420,7 @@
         
     __LOG_DESTRUCT
     } // end destructor
-	
+    
 // ==========================================================================
 // FUNCTION: RunL
 // ==========================================================================
@@ -431,12 +431,12 @@
     RBuf8& currentMatchBuffer = iMatchBuffer[iMatchBufferIndex];
     
     if( iStatus == KErrNone && currentMatchBuffer.Length() > 0 )
-    	{
-    	// Switch to the other match buffer for the next call to the session.  Make this call before
-    	// calling the search client with matches, just in case the client cancels the search during
-    	// the callback.  This will cause DoCancel to be called during this object's destruction, which
-    	// will cancel the server-side search.
-    	iMatchBufferIndex = (iMatchBufferIndex + 1) % 2;
+        {
+        // Switch to the other match buffer for the next call to the session.  Make this call before
+        // calling the search client with matches, just in case the client cancels the search during
+        // the callback.  This will cause DoCancel to be called during this object's destruction, which
+        // will cancel the server-side search.
+        iMatchBufferIndex = (iMatchBufferIndex + 1) % 2;
         iSession.GetMatchesL( iStatus, iMatchBuffer[iMatchBufferIndex] );
         SetActive();                                      
 
@@ -445,13 +445,13 @@
         TBool thisObjectHasBeenDeleted = EFalse;
         iThisObjectHasBeenDeleted = &thisObjectHasBeenDeleted;
             
-    	TBool atEndOfIds = (currentMatchBuffer.Length() == 0);
-    	TUint offset = 0;
+        TBool atEndOfIds = (currentMatchBuffer.Length() == 0);
+        TUint offset = 0;
 
-    	while( !thisObjectHasBeenDeleted && !atEndOfIds )
-    	    {
-        	const TMsgStoreId& currentId = *reinterpret_cast<const TMsgStoreId *>( currentMatchBuffer.Ptr() + offset );
-        	
+        while( !thisObjectHasBeenDeleted && !atEndOfIds )
+            {
+            const TMsgStoreId& currentId = *reinterpret_cast<const TMsgStoreId *>( currentMatchBuffer.Ptr() + offset );
+            
             __LOG_WRITE8_FORMAT1_INFO( "match found (%i)", currentId )  
               
             offset += sizeof(TMsgStoreId);                    
@@ -463,22 +463,22 @@
             // Note that the client may cancel the search during this callback.                    
             iSearchClient.MatchFound( currentId );                    
                                 
-    	    } // end while                    	    
+            } // end while                          
 
         if( !thisObjectHasBeenDeleted )
             {
             iThisObjectHasBeenDeleted = NULL;
             } // end if
-	    }
+        }
     else
-    	{
+        {
         __LOG_WRITE8_FORMAT1_INFO( "Search completed, iStatus=%d", iStatus.Int() );
         
         iSearchClient.SearchCompleted();
         
-    	} // end if       	
+        } // end if         
 
-    // __LOG_EXIT was removed because it crashes in cases where thisObjectHasBeenDeleted is true    	
+    // __LOG_EXIT was removed because it crashes in cases where thisObjectHasBeenDeleted is true        
     
     } // end RunL
     
--- a/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp	Mon May 03 12:23:15 2010 +0300
@@ -58,7 +58,6 @@
 SOURCE        MessageStoreSession.cpp
 SOURCE        BackupRestoreObserver.cpp
 SOURCE        ShutdownServer.cpp
-SOURCE        StoreDriveMonitor.cpp
 
 SOURCE        ContainerStore.cpp
 SOURCE        ContainerStoreContainersTable.cpp
@@ -73,9 +72,9 @@
 SOURCE        MsgStoreSortResultRowSet.cpp
 SOURCE        MsgStoreStringSortResultRowSet.cpp
 SOURCE        ContainerStoreSortingTable.cpp
-SOURCE		  ContainerStoreSearchResultTable.cpp
+SOURCE        ContainerStoreSearchResultTable.cpp
 SOURCE        MessageStoreEncryptHandler.cpp
-SOURCE        ContainerStoreMruAddressTable.cpp
+SOURCE        ContainerStoreMRUAddressTable.cpp
 SOURCE        MsgStoreInMemorySortRowSet.cpp
 SOURCE        bufferedmessagecreator.cpp
 SOURCE        messagestoreutils.cpp
--- a/emailservices/emailstore/message_store/server/inc/ContainerStoreContentManager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/inc/ContainerStoreContentManager.h	Mon May 03 12:23:15 2010 +0300
@@ -110,7 +110,7 @@
          * manager.
          * @param aContentPath path and file name of an existing content file
          */
-        TInt TransferContentFile(
+        void TransferContentFileL(
             TContainerId aId, 
             const TDesC& aContentPath );
         
--- a/emailservices/emailstore/message_store/server/inc/MessageStoreServer.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/inc/MessageStoreServer.h	Mon May 03 12:23:15 2010 +0300
@@ -115,7 +115,6 @@
 							private MCustomBehaviorProvider, 
 							private MBackupRestoreObserver,
                             private MImsPointsecObserver,
-                            private MStoreDriveStateObserver,
                             public  MPSPropertyWatcherObserver
     {
     public:
@@ -187,17 +186,11 @@
         virtual void PointSecLockStarted();
         virtual void PointSecLockEnded();
         
-            
-        //from MStoreDriveStateObserver
-        virtual void DriveStateChangedL( TBool aState );
         
         void LockSystem();
         void UnlockSystemL();
         
-        void FindBiggestCapacityDriveL( TDriveNumber& aDrive );
-        TInt GetDriveL( TDriveNumber& aDrive );
-        void SetDriveL( const TDriveNumber aDrive );
-        
+    
         void SendSystemLockMessage( TInt aEvent );
         void TPtrC8ToRBuf16L( const TPtrC8& aPtr8, RBuf& aBuf ) const;
                 
@@ -212,10 +205,7 @@
         CImsPointsecMonitor*                iPointsecMonitor;
         TBool                               iWipeAfterBackupRestore;
         
-        //monitor the message store drive for mount/unmount
-        CStoreDriveMonitor*                 iStoreDriveMonitor;
-        //True if the message store is locked because drive is unmount 
-        TBool                               iLockedByDriveMonitor;
+
 
         TBool                               iLockedByBackupRestore;
         TBool                               iLockedByPointSec;
--- a/emailservices/emailstore/message_store/server/inc/bufferedmessagecreator.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/inc/bufferedmessagecreator.h	Mon May 03 12:23:15 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Message creator definition
 *
 */
 #ifndef BUFFEREDMESSAGECREATOR_H
--- a/emailservices/emailstore/message_store/server/src/ContainerStoreContentManager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/ContainerStoreContentManager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -564,19 +564,18 @@
 /**
  *
  */
-TInt CContainerStoreContentManager::TransferContentFile(
+void CContainerStoreContentManager::TransferContentFileL(
     TContainerId aId, 
     const TDesC& aContentPath )
     {
-    __LOG_ENTER( "TransferContentFile" )
+    __LOG_ENTER( "TransferContentFileL" )
     
     TFileName contentFilename;  
     ContentFilename( aId, contentFilename );
     
-    TInt err = iFs.Rename( aContentPath, contentFilename ); 
+    User::LeaveIfError( iFs.Replace( aContentPath, contentFilename ) );
     
     __LOG_EXIT
-    return err;
     }
 
             
--- a/emailservices/emailstore/message_store/server/src/ContainerStoreUtils.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/ContainerStoreUtils.cpp	Mon May 03 12:23:15 2010 +0300
@@ -211,7 +211,7 @@
 	__LOG_ENTER( "CreateDatabaseL" );
 
     // Create the file store.
-	iFileStore = CPermanentFileStore::ReplaceL( iFs, iDbFilename, EFileRead|EFileWrite );
+	iFileStore = CPermanentFileStore::ReplaceL( iFs, iDbFilename, EFileRead|EFileWrite|EFileWriteDirectIO );
 	
 	iFileStore->SetTypeL( iFileStore->Layout() );	
 	
@@ -237,7 +237,7 @@
 	__LOG_ENTER( "OpenDatabaseL" )
 
 	// construct a file store object
-	iFileStore = CPermanentFileStore::OpenL( iFs, iDbFilename, EFileRead|EFileWrite );
+	iFileStore = CPermanentFileStore::OpenL( iFs, iDbFilename, EFileRead|EFileWrite|EFileWriteDirectIO );
 	
 	// open database from the root of the store
 	iDatabase.OpenL( iFileStore, iFileStore->Root() );	
--- a/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp	Mon May 03 12:23:15 2010 +0300
@@ -38,6 +38,7 @@
 #include "ImsPointsecMonitor.h"
 #include "ImsPointsecObserver.h"
 #include "emailstorepskeys.h" // Support for on-the-fly upgrade
+#include "emailshutdownconst.h"
 //</cmail>
 
 // =========
@@ -46,8 +47,6 @@
 
 _LIT8( KNullDescriptor8, "" );
 
-// To support biggest free drive, we have to get rid of hard-coded C: drive
-//const TDriveNumber KDbDriveNumber = EDriveC;
 
 _LIT( KDbFilename, "message_store.db" );
 
@@ -61,10 +60,9 @@
 _LIT( KUninstallParameter, "IMS_UNINSTALL" );
 _LIT( KImsUninstaller, "IMS Uninstaller" );
 _LIT( KUpgradeDetectionFile, "c:\\System\\EsIms\\canary.txt" );
-_LIT16( KDriveToUseFile, "db_drive.cfg" );
-//_LIT( KMsgStorePrivateDir, "c:\\Private\\200029e1\\" );
+
 
-//const TChar KColon(':');
+
 
 // SID list
 // This is the list of secure Ids that are allowed to use the message store.  This list must be terminated
@@ -268,7 +266,6 @@
   
   iLockedByBackupRestore = EFalse;
   iLockedByPointSec = EFalse;
-  iLockedByDriveMonitor = EFalse;
   
   } // end constructor
 
@@ -294,8 +291,6 @@
     //must check if PointSec has locked the system or not,
     //only create the container store if PointSec is NOT locked.
     
-    // This will be used to monitor the drive where message store db is located.
-    iStoreDriveMonitor = CStoreDriveMonitor::NewL( *this );
     
     if ( iPointsecMonitor->IsServiceAllowed() )
         {
@@ -328,9 +323,9 @@
     TSecurityPolicy readPolicy( ECapabilityReadDeviceData );
     TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
     iUpgradePropertyWatcher = CPSIntPropertyWatcher::NewL( this );
-    iUpgradePropertyWatcher->StartL( KEmailStoreUpgradePSCategory,
-                                     KProperty_EmailStore_Upgrade,
-                                     process.SecureId(),
+    iUpgradePropertyWatcher->StartL( KEmailShutdownPsCategory, 
+                                     EEmailPsKeyShutdownMsgStore,
+                                     KEmailShutterPsValue,
                                      /*ETrue*/EFalse,
                                      readPolicy,
                                      writePolicy ); 
@@ -345,7 +340,6 @@
 CMessageStoreServer::~CMessageStoreServer()
   {
   delete iUpgradePropertyWatcher;
-  delete iStoreDriveMonitor;
   delete iShutdown;
   delete iMessageStore;
   iMessageStore = NULL;
@@ -386,14 +380,30 @@
 // Cancel the shutdown timer if it was running
 // ==========================================================================
 void CMessageStoreServer::AddSession( CMessageStoreSession* aSession )
-  {
-  __LOG_ENTER( "AddSession" )
-  iSessions.Append( aSession );
+    {
+    __LOG_ENTER( "AddSession" )
+    iSessions.Append( aSession );
+
+    // notify new session of current state
+    TMsgStoreEvent event;
+    event.iType        = EMsgStoreAvailable;
+    event.iId          = KMsgStoreInvalidId;
+    event.iParentId    = KMsgStoreInvalidId;
+    event.iOtherId     = KMsgStoreInvalidId;
+    event.iFlags       = KMsgStoreFlagsNotFound;
 
-  // A sesssion was added, so the shutdown timer can be stopped.
-//  iShutdown->Stop();
-  __LOG_EXIT
-  } // end AddSession
+    if ( iLockedByBackupRestore || iLockedByPointSec ) 
+        {
+        event.iType = EMsgStoreUnavailable;
+        }
+
+    aSession->SendEventToObserver( event );
+
+    // A sesssion was added, so the shutdown timer can be stopped.
+    //  iShutdown->Stop();
+
+    __LOG_EXIT
+    } // end AddSession
 
 // ==========================================================================
 // FUNCTION: DropSession
@@ -436,30 +446,17 @@
 // ==========================================================================
 void CMessageStoreServer::CreateContainerStoreL()
     {
+    __LOG_ENTER( "CreateContainerStoreL" )
+
     TDriveNumber drive( EDriveC );
-    if ( GetDriveL( drive ) == KErrNotFound )
-        {
-        FindBiggestCapacityDriveL( drive );
-        }
-    //set again the drive to be monitored in case is different than previous
-    iStoreDriveMonitor->SetDriveL( drive );
-    
-    if ( iStoreDriveMonitor->IsDrivePresent() )
-        {
     iMessageStore = CContainerStore::NewL( KDbFilename,
                                            drive,
                                            *this,
                                            *iShutdown,
                                            Priority() - 1);  // lower than server
-        }
-    else
-        {
-        iLockedByDriveMonitor = ETrue;
-        }
-    
-    // monitor the message store drive
-    iStoreDriveMonitor->WaitForChange();
+
 
+    __LOG_EXIT
     } // end CreateContainerStoreL
 
 
@@ -864,7 +861,7 @@
         //       change would have been backwards incompatible.
         
         TDriveNumber drive( EDriveC );
-        if ( GetDriveL( drive ) == KErrNotFound ) drive = EDriveC;
+		
         TInt result = CContainerStore::WipeEverything( KDbFilename,
                                                        drive );
 
@@ -904,11 +901,11 @@
 void CMessageStoreServer::BackupOrRestoreInProgress( TBool /*aIsARestore*/ )
 {
     __LOG_ENTER( "BackupOrRestoreInProgress" );
-    
-    SendSystemLockMessage( EMsgStoreBackupOrRestoreInProgress );
-    
-    if (( !iLockedByPointSec ) && ( !iLockedByDriveMonitor ) )
+
+    if ( !iLockedByBackupRestore )
         {
+        iLockedByBackupRestore = ETrue;
+        SendSystemLockMessage( EMsgStoreBackupOrRestoreInProgress );
         LockSystem();
         }
 
@@ -922,10 +919,10 @@
     {
     __LOG_ENTER( "BackupOrRestoreCompleted" );
   
-    SendSystemLockMessage( EMsgStoreBackupOrRestoreCompleted );
-      
-    if (( !iLockedByPointSec ) && ( !iLockedByDriveMonitor ) )
+    if ( iLockedByBackupRestore )
         {
+        iLockedByBackupRestore = EFalse;
+        SendSystemLockMessage( EMsgStoreBackupOrRestoreCompleted );
         TRAP_IGNORE( UnlockSystemL() );
         }
     
@@ -942,10 +939,7 @@
         {
         iLockedByPointSec = ETrue;
         SendSystemLockMessage( EMsgStorePointSecLockStarted );
-        if (( !iLockedByBackupRestore ) && ( !iLockedByDriveMonitor ) )
-            {
-            LockSystem();
-            }
+        LockSystem();
         }
     __LOG_EXIT
     }
@@ -960,10 +954,7 @@
         {
         iLockedByPointSec = EFalse;
         SendSystemLockMessage( EMsgStorePointSecLockEnded );
-        if ( ( !iLockedByBackupRestore ) && ( !iLockedByDriveMonitor ) )
-            {
-            TRAP_IGNORE( UnlockSystemL() );
-            }
+        TRAP_IGNORE( UnlockSystemL() );
         }
     __LOG_EXIT
     }
@@ -975,13 +966,18 @@
     {
     __LOG_ENTER( "LockSystem" );
     
-    for( TInt i = 0; i < iSessions.Count(); i++ )
+    if ( iMessageStore )
         {
-        iSessions[i]->ContainerStoreUnavailable();
-        } // end if
-
-    delete iMessageStore;
-    iMessageStore = NULL;
+        SendSystemLockMessage( EMsgStoreUnavailable );
+        
+        for( TInt i = 0; i < iSessions.Count(); i++ )
+            {
+            iSessions[i]->ContainerStoreUnavailable();
+            } // end if
+    
+        delete iMessageStore;
+        iMessageStore = NULL;
+        }
     
     __LOG_EXIT
     }
@@ -992,177 +988,43 @@
 void CMessageStoreServer::UnlockSystemL()
     {
     __LOG_ENTER( "UnlockSystemL" );
-    
-    TRAPD( result,
-            CreateContainerStoreL(); CreatePredefinedFoldersIfNeededL(); );
 
-    if( result != 0 )
+    if  ( ( !iLockedByBackupRestore ) 
+       && ( !iLockedByPointSec ) )
         {
-        __LOG_WRITE_ERROR( "failed to recreate message store after system lock" )
+        TRAPD( result,
+                CreateContainerStoreL(); CreatePredefinedFoldersIfNeededL(); );
+
+        if( result != KErrNone )
+            {
+            __LOG_WRITE_ERROR( "failed to recreate message store after system lock" )
 
-        // The server is in a very bad state.  Shut down the server immediately.
-        iShutdown->ShutDownNow();
-        }
-   else if  ( ( !iLockedByBackupRestore ) 
-           && ( !iLockedByDriveMonitor ) 
-           && ( !iLockedByPointSec ) )
-        {
-
-        for( TInt i = 0; i < iSessions.Count(); i++ )
+            // The server is in a very bad state.  Shut down the server immediately.
+            iShutdown->ShutDownNow();
+            }
+       else if  ( ( !iLockedByBackupRestore ) 
+               && ( !iLockedByPointSec ) )
             {
-            iSessions[i]->ContainerStoreAvailable();
+            SendSystemLockMessage( EMsgStoreAvailable );
+
+            for( TInt i = 0; i < iSessions.Count(); i++ )
+                {
+                iSessions[i]->ContainerStoreAvailable();
+                } // end if
+
+            if( iWipeAfterBackupRestore )
+                {
+                iWipeAfterBackupRestore = EFalse;
+                WipeEverythingL();
+                } // end if
+
             } // end if
-        
-        if( iWipeAfterBackupRestore )
-            {
-            iWipeAfterBackupRestore = EFalse;
-            WipeEverythingL();
-            } // end if
-
         } // end if
     
     __LOG_EXIT
     }
     
-// ==========================================================================
-// FUNCTION: FindBiggestCapacityDrive
-//           To locate the internal drive with the biggest available space.
-// ========================================================================== 
-void CMessageStoreServer::FindBiggestCapacityDriveL( TDriveNumber& aDrive )
-    {
-    __LOG_ENTER( "FindBiggestCapacityDrive" );
-    
-    RFs fs;
-    TInt driveToUse( 2 );  // set default drive to C:
-    
-    if( fs.Connect() == KErrNone )
-        {
-        CleanupClosePushL( fs );               //+fs
-        TDriveList driveList;
-        fs.DriveList( driveList );
-        TInt64 highest( 0 );
-        for (TInt i=0; i<KMaxDrives; i++)
-            {
-            if ( driveList[i] != 0 )     // check if drive exits
-                {
-                TDriveInfo driveInfo;
-                fs.Drive( driveInfo, i );
-                TVolumeInfo driveVolume;
-                fs.Volume( driveVolume, i );
-                                            
-                TUint drvStatus( 0 );
-                User::LeaveIfError( DriveInfo::GetDriveStatus( fs, i, drvStatus ) );
-                                            
-                if ( (drvStatus & DriveInfo::EDriveUserVisible) &&
-                     (drvStatus & DriveInfo::EDriveInternal)  && 
-                     (drvStatus & DriveInfo::EDrivePresent) )
-                    {
-                    if (driveVolume.iFree > highest)
-                        {
-                        driveToUse = i;
-                        highest = driveVolume.iFree;
-                        }
-                    }
-                }
-             }             
-                            
-        __LOG_WRITE_FORMAT2_INFO( "Drive #%d to use, free space=%u", driveToUse, highest );
-                                  
-        CleanupStack::PopAndDestroy( &fs );    //-fs
-        } // end if
-    
-    aDrive = static_cast<TDriveNumber>( driveToUse );
-    SetDriveL( aDrive );   // save it
-    
-    __LOG_EXIT
-    }
 
-// ==========================================================================
-// FUNCTION: GetDrive
-//           To find the previously-defined drive to use.   KErrNotFound will
-//           be returned if not config file found
-//
-// Note    : the config file will be loacted in C: drive 
-//           (C:\Private\2000c8d2\db_drive.cfg)
-// ==========================================================================
-TInt CMessageStoreServer::GetDriveL( TDriveNumber& aDrive )
-    {
-    __LOG_ENTER( "GetDrive" );
-    
-    TInt ret( KErrNotFound );
-        
-    RFs fs;
-    if( fs.Connect() == KErrNone )
-        {
-        CleanupClosePushL( fs );               //+fs
-        TFileName fileName;
-        fs.CreatePrivatePath( EDriveC );
-        User::LeaveIfError(fs.PrivatePath( fileName ));
-        fileName.Append( KDriveToUseFile );
-        _LIT( KCDrive, "C:" );
-        fileName.Insert( 0, KCDrive() );
-        __LOG_WRITE_FORMAT1_INFO( "DriveToUse file=%S", &fileName );
-                   
-        if( BaflUtils::FileExists( fs, fileName ) )
-            {
-            RFileReadStream reader;
-            if ( reader.Open( fs, fileName, EFileRead ) == KErrNone )
-          		{
-           		CleanupClosePushL( reader );             //+reader
-           		TUint drive = reader.ReadUint32L();
-           		__LOG_WRITE_FORMAT1_INFO( "previously-defined drive to use : %d", drive );
-                CleanupStack::PopAndDestroy( &reader );  //-reader
-           		aDrive = static_cast<TDriveNumber>( drive );
-           		ret = KErrNone;
-           		}
-            }
-                   
-        CleanupStack::PopAndDestroy( &fs );    //-fs
-        } // end if
-    
-    __LOG_EXIT
-    return ret;
-    }
-
-// ==========================================================================
-// FUNCTION: SetDrive
-//           To write the chosen drive info to the config file.
-//
-// Note    : the config file will be loacted in C: drive 
-//           (C:\Private\2000c8d2\db_drive.cfg)
-// ==========================================================================
-void CMessageStoreServer::SetDriveL( const TDriveNumber aDrive )
-    {
-    __LOG_ENTER( "SetDrive" );
-    
-    TUint drive = static_cast<TUint32>( aDrive );
-        
-    RFs fs;
-    if( fs.Connect() == KErrNone )
-        {
-        CleanupClosePushL( fs );               //+fs
-        TFileName fileName;
-        User::LeaveIfError(fs.PrivatePath( fileName ));
-        fileName.Append( KDriveToUseFile );
-        _LIT( KCDrive, "C:" );
-        fileName.Insert( 0, KCDrive() );
-        __LOG_WRITE_FORMAT1_INFO( "DriveToUse file=%S", &fileName )
-                   
-        RFileWriteStream writer;
-        if ( writer.Replace( fs, fileName, EFileRead ) == KErrNone )
-            {
-         	CleanupClosePushL( writer );             //+writer
-           	writer.WriteUint32L( drive );
-           	writer.CommitL();
-           	__LOG_WRITE_FORMAT1_INFO( "writing chosen drive #%d to file", drive );
-            CleanupStack::PopAndDestroy( &writer );  //-writer
-           	}
-                 
-        CleanupStack::PopAndDestroy( &fs );    //-fs
-        } // end if
-    
-    __LOG_EXIT
-    }
 
 // ==========================================================================
 // FUNCTION: SendSystemLockMessage
@@ -1242,34 +1104,5 @@
 
 #endif
 
-//from MStoreDriveStateObserver
-void CMessageStoreServer::DriveStateChangedL( TBool aState )
-    {
-    __LOG_ENTER( "DriveStateChangedL" );
-    if ( aState )
-        {
-        //drive mounted
-        if ( iLockedByDriveMonitor )
-             {
-             iLockedByDriveMonitor = EFalse;
-             if ( ( !iLockedByBackupRestore ) && ( !iLockedByPointSec ) )
-                 {
-                 UnlockSystemL();
-                 }
-             }
-        }
-    else
-        {
-        //drive unmounted
-        if ( !iLockedByDriveMonitor )
-            {
-            iLockedByDriveMonitor = ETrue;
-            if ( ( !iLockedByBackupRestore ) && ( !iLockedByPointSec ) )
-                {
-                LockSystem();
-                }
-            }
-        }
-    __LOG_EXIT
-    }
 
+
--- a/emailservices/emailstore/message_store/server/src/bufferedmessagecreator.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/bufferedmessagecreator.cpp	Mon May 03 12:23:15 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Message creator implementation
 *
 */
 
@@ -509,7 +509,7 @@
         
         if ( BaflUtils::FileExists( rfs, filePath ) )
             {
-            aStore.ContentManager().TransferContentFile(
+            aStore.ContentManager().TransferContentFileL(
                 part.iParams.iId, filePath );
             }
         }
--- a/emailservices/emailstore/message_store/server/src/messagestoreutils.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/messagestoreutils.cpp	Mon May 03 12:23:15 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Message store utilities implementation
 *
 */
 
--- a/emailservices/emailstore/rom/emailstore.iby	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailstore/rom/emailstore.iby	Mon May 03 12:23:15 2010 +0300
@@ -21,14 +21,13 @@
 #define _EMAILSTORE_IBY_
 
 #include <data_caging_paths_for_iby.hrh>
-#include <bldvariant.hrh>
 
 //----------------------------------------------------
 // Email Store - message store and base email plugin
 //----------------------------------------------------
 
 // Ignore some content when not in a Cmail environment
-#ifdef FF_EMAIL_FRAMEWORK 
+//#ifdef FF_EMAIL_FRAMEWORK 
 
 // Base email plugin
 file=ABI_DIR\BUILD_DIR\baseplugin.dll                 SHARED_LIB_DIR\baseplugin.dll
@@ -44,6 +43,6 @@
 //the stub sis.
 data=DATAZ_\system\install\emailstore_stub.sis        system\install\emailstore_stub.sis
 
-#endif //FF_EMAIL_FRAMEWORK 
+//#endif //FF_EMAIL_FRAMEWORK 
 
 #endif //_EMAILSTORE_IBY_
\ No newline at end of file
--- a/emailservices/nmailagent/inc/nmmailagent.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailagent/inc/nmmailagent.h	Mon May 03 12:23:15 2010 +0300
@@ -21,18 +21,26 @@
 #include <nmcommon.h>
 
 class NmMailbox;
-class NmFrameworkAdapter;
+class NmDataPluginFactory;
+class NmDataPluginInterface;
 
-class NmMailboxInfo 
+class NmMailboxInfo
 {
-public:    
+public:
     NmId mId;
+    int mIndicatorIndex;
     QString mName;
+    NmId mInboxFolderId;
+    NmId mOutboxFolderId;
     NmSyncState mSyncState;
     NmConnectState mConnectState;
+    int mInboxCreatedMessages;
+    int mInboxChangedMessages;
+    int mInboxDeletedMessages;
     int mUnreadMails;
+    int mOutboxMails;
     bool mActive;
-    
+
     NmMailboxInfo();
 };
 
@@ -45,7 +53,7 @@
     NmMailAgent();
 
     ~NmMailAgent();
-    
+
     bool init();
 
 public slots:
@@ -61,43 +69,46 @@
 
     void handleSyncStateEvent(
             NmSyncState state,
-            const NmId mailboxId);
+            const NmOperationCompletionEvent &event);
 
     void handleConnectionEvent(NmConnectState state, const NmId mailboxId);
-    
+
+    void delayedStart();
+
 private:
-    
-    bool loadAdapter();
-    
+
     void initMailboxStatus();
-    
+
     int getUnreadCount(const NmId& mailboxId, int maxCount);
-    
-    void updateStatus();
+
+    int getOutboxCount(const NmId& mailboxId);
+
+    int getIndicatorIndex();
 
     bool isMailboxActive(const NmMailboxInfo& mailboxInfo);
-    
-    bool updateIndicator(int mailboxIndex, 
-        bool active,
+
+    bool updateIndicator(bool active,
         const NmMailboxInfo& mailboxInfo);
-    
+
     NmMailboxInfo* getMailboxInfo(const NmId &id);
-    
+
     NmMailboxInfo* createMailboxInfo(const NmId &id);
 
-    NmMailboxInfo* createMailboxInfo(const NmMailbox &mailbox);
-    
+    NmMailboxInfo* createMailboxInfo(const NmMailbox &mailbox,
+        NmDataPluginInterface *plugin);
+
     bool removeMailboxInfo(const NmId &id);
-    
-    bool updateMailboxActivity(const NmId &mailboxId, bool active);
-    
+
+    bool updateMailboxState(const NmId &mailboxId,
+        bool active, bool refreshAlways);
+
     static QStringList pluginFolders();
-    
+
 private: // data
-    
-    NmFrameworkAdapter *mAdapter; // Owned
+
+    NmDataPluginFactory *mPluginFactory;
     QList<NmMailboxInfo*> mMailboxes;
-    int mActiveIndicators;
+    bool mSendingState;
 };
 
 
--- a/emailservices/nmailagent/inc/nmmailagentheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailagent/inc/nmmailagentheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -14,14 +14,20 @@
 * Description:
 *
 */
+#ifndef NMAILAGENTHEADERS_H
+#define NMAILAGENTHEADERS_H
 
 #include <QDir>
 #include <QPluginLoader>
+#include <QCoreApplication>
+#include <QTimer>
 
 #include <hbindicator.h>
 
 #include <nmcommon.h>
 #include <nmdatapluginfactory.h>
+#include <nmdataplugininterface.h>
 #include <nmmailbox.h>
 #include <nmmessageenvelope.h>
-#include <nmframeworkadapter.h>
+
+#endif
--- a/emailservices/nmailagent/nmailagent.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailagent/nmailagent.pro	Mon May 03 12:23:15 2010 +0300
@@ -21,6 +21,7 @@
 CONFIG += hb 
 CONFIG += console
 
+load(hb.prf)
 symbian:CONFIG -= symbian_i18n
 
 MOC_DIR = moc
@@ -38,7 +39,8 @@
              src/nmmailagent.cpp
 
 LIBS += -lnmailbase
-LIBS += -lnmailclientapi
+LIBS += -lnmailuiengine
+LIBS += -llibc
 
 symbian*: { 
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
--- a/emailservices/nmailagent/src/main.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailagent/src/main.cpp	Mon May 03 12:23:15 2010 +0300
@@ -16,9 +16,16 @@
 */
 
 
-#include <QCoreApplication>
+#include "nmmailagentheaders.h"
 #include "nmmailagent.h"
 
+#ifdef __WINSCW__
+const int NmStartupDelay = 14000; // 14s
+#else
+const int NmStartupDelay = 4000; // 4s
+#endif
+
+
 /*!
 	int main
 */
@@ -26,9 +33,9 @@
 {
     QCoreApplication app(argc, argv);
     NmMailAgent agent;
-    if( !agent.init() ) {
-        // failed to start the framework
-        return 1;
-    }
+
+    // Agent will be initialised with a delay to avoid startup problems
+    QTimer::singleShot(NmStartupDelay, &agent, SLOT(delayedStart()));
+
     return app.exec();
 }
--- a/emailservices/nmailagent/src/nmmailagent.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailagent/src/nmmailagent.cpp	Mon May 03 12:23:15 2010 +0300
@@ -19,7 +19,8 @@
 #include "nmmailagent.h"
 
 // CONSTS
-const int maxUnreadCount = 1; // 1 is enough
+const int NmAgentMaxUnreadCount = 1; // 1 is enough
+const int NmAgentIndicatorNotSet = -1;
 
 
 /*!
@@ -28,80 +29,88 @@
     \brief Main class for receiving email events and passing them to the HbIndicator
 */
 
-/*!
-    Creates list of folder paths where plug-ins can be loaded from.
-    \return folder path list.
-*/
-QStringList NmMailAgent::pluginFolders()
-{
-    const QString nmPluginPath("resource/plugins");
-    QStringList pluginDirectories;
-    QFileInfoList driveList = QDir::drives();
-
-    foreach(const QFileInfo &driveInfo, driveList) {
-        QString pluginDirectory =
-            driveInfo.absolutePath() + nmPluginPath;
-
-        if (QFileInfo(pluginDirectory).exists()) {
-            pluginDirectories.append(pluginDirectory);
-        }
-    }
-
-    return pluginDirectories;
-}
-
 NmMailboxInfo::NmMailboxInfo()
 {
     mId = 0;
+    mIndicatorIndex = NmAgentIndicatorNotSet;
     mSyncState = SyncComplete;
     mConnectState = Disconnected;
     mUnreadMails = 0;
+    mOutboxMails = 0;
+    mInboxFolderId = 0;
+    mOutboxFolderId = 0;
+    mInboxCreatedMessages = 0;
+    mInboxChangedMessages = 0;
+    mInboxDeletedMessages = 0;
     mActive = false;
 }
 
 NmMailAgent::NmMailAgent() :
- mAdapter(NULL),
- mActiveIndicators(0)
+ mPluginFactory(NULL),
+ mSendingState(false)
 {
     NMLOG("NmMailAgent::NmMailAgent");
 }
 
 /*!
+    Delayed start
+*/
+void NmMailAgent::delayedStart()
+{
+	NMLOG("NmMailAgent::delayedStart");
+	if (!init()) {
+		// Initialisation failed. Quit the agent.
+		QCoreApplication::exit(1);
+	}
+}
+
+/*!
     Initialise the agent. \return true if succesfully started.
 */
 bool NmMailAgent::init()
 {
-    if (!loadAdapter()) {
-        // Failed to load NmFrameworkAdapter
+	NMLOG("NmMailAgent::init");
+    mPluginFactory = NmDataPluginFactory::instance();
+    if (!mPluginFactory) {
+        NMLOG("NmMailAgent::init PluginFactory not created");
         return false;
     }
 
-    // Start listening events
-    connect(mAdapter, SIGNAL(mailboxEvent(NmMailboxEvent, const QList<NmId>&)),
-        this, SLOT(handleMailboxEvent(NmMailboxEvent, const QList<NmId> &)));
+    QList<QObject*> *plugins = mPluginFactory->pluginInstances();
+
+    foreach (QObject *plugin, *plugins) {
+    	if (plugin) {
+			// Start listening events
+			connect(plugin, SIGNAL(mailboxEvent(NmMailboxEvent, const QList<NmId>&)),
+				this, SLOT(handleMailboxEvent(NmMailboxEvent, const QList<NmId> &)),
+				Qt::UniqueConnection);
 
-    connect(mAdapter, SIGNAL(messageEvent(
-            NmMessageEvent, const NmId &, const QList<NmId> &, const NmId&)),
-        this, SLOT(handleMessageEvent(
-            NmMessageEvent, const NmId &, const QList<NmId> &, const NmId&)));
+			connect(plugin, SIGNAL(messageEvent(
+					NmMessageEvent, const NmId &, const QList<NmId> &, const NmId&)),
+				this, SLOT(handleMessageEvent(
+					NmMessageEvent, const NmId &, const QList<NmId> &, const NmId&)),
+				Qt::UniqueConnection);
 
-    connect(mAdapter, SIGNAL(syncStateEvent(NmSyncState, const NmId)),
-        this, SLOT(handleSyncStateEvent(NmSyncState, const NmId)));
+			connect(plugin, SIGNAL(syncStateEvent(NmSyncState, const NmOperationCompletionEvent&)),
+				this, SLOT(handleSyncStateEvent(NmSyncState, const NmOperationCompletionEvent&)),
+				Qt::UniqueConnection);
 
-    connect(mAdapter, SIGNAL(connectionEvent(NmConnectState, const NmId)),
-        this, SLOT(handleConnectionEvent(NmConnectState, const NmId)));
+			connect(plugin, SIGNAL(connectionEvent(NmConnectState, const NmId)),
+				this, SLOT(handleConnectionEvent(NmConnectState, const NmId)),
+				Qt::UniqueConnection);
+    	}
+    }
 
     // load all current mailboxes
     initMailboxStatus();
 
-    updateStatus();
     return true;
 }
 
 NmMailAgent::~NmMailAgent()
 {
-    delete mAdapter;
     qDeleteAll(mMailboxes);
+    NmDataPluginFactory::releaseInstance(mPluginFactory);
 }
 
 /*!
@@ -111,17 +120,37 @@
 {
     NMLOG("NmMailAgent::initMailboxStatus");
     QList<NmMailbox*> mailboxes;
-    mAdapter->listMailboxes(mailboxes);
-    foreach (const NmMailbox* mailbox, mailboxes) {
-        if (mailbox) {
-            NmMailboxInfo *mailboxInfo = createMailboxInfo(*mailbox);
-            if (mailboxInfo) {
-                mailboxInfo->mUnreadMails = getUnreadCount(mailbox->id(),maxUnreadCount);
-                updateMailboxActivity(mailbox->id(), isMailboxActive(*mailboxInfo));
+    QList<QObject*> *plugins = mPluginFactory->pluginInstances();
+
+    foreach(QObject* pluginObject, *plugins) {
+        NmDataPluginInterface *plugin =
+            mPluginFactory->interfaceInstance(pluginObject);
+        if (plugin) {
+            plugin->listMailboxes(mailboxes);
+        }
+
+        // Add the indicators
+        // Must be made in reverse order to show them properly in
+        // HbIndicator menu
+        QListIterator<NmMailbox *> i(mailboxes);
+        i.toBack();
+        while (i.hasPrevious()) {
+            const NmMailbox *mailbox = i.previous();
+            if (mailbox) {
+                NmMailboxInfo *mailboxInfo = createMailboxInfo(*mailbox,plugin);
+                if (mailboxInfo) {
+                    mailboxInfo->mUnreadMails = getUnreadCount(mailbox->id(),NmAgentMaxUnreadCount);
+                    mailboxInfo->mOutboxMails = getOutboxCount(mailbox->id());
+
+                    // Create indicator for visible mailboxes
+                    updateMailboxState(mailbox->id(),
+                        isMailboxActive(*mailboxInfo),
+                        false);
+                }
             }
         }
+        qDeleteAll(mailboxes);
     }
-    qDeleteAll(mailboxes);
 }
 
 /*!
@@ -135,109 +164,115 @@
     NMLOG("NmMailAgent::getUnreadCount");
     int count(0);
 
-    // get inbox folder ID
-    NmId inboxId = mAdapter->getStandardFolderId(
-            mailboxId, NmFolderInbox );
+    NmDataPluginInterface *plugin = mPluginFactory->interfaceInstance(mailboxId);
 
-    // get list of messages in inbox
-    QList<NmMessageEnvelope*> messageList;
-    mAdapter->listMessages(mailboxId, inboxId, messageList);
+    if (plugin) {
+		// get inbox folder ID
+		NmId inboxId = plugin->getStandardFolderId(
+				mailboxId, NmFolderInbox );
+
+		// get list of messages in inbox
+		QList<NmMessageEnvelope*> messageList;
+		plugin->listMessages(mailboxId, inboxId, messageList);
 
-    foreach (const NmMessageEnvelope* envelope, messageList) {
-        // if the message is not read, it is "unread"
-        if (!envelope->isRead()) {
-            count++;
+		foreach (const NmMessageEnvelope* envelope, messageList) {
+			// if the message is not read, it is "unread"
+			if (!envelope->isRead()) {
+				count++;
 
-            // No more unread mails are needed
-            if (count >= maxCount) {
-                break;
-            }
-        }
+				// No more unread mails are needed
+				if (count >= maxCount) {
+					break;
+				}
+			}
+		}
+		qDeleteAll(messageList);
     }
-	qDeleteAll(messageList);
 	NMLOG(QString("NmMailAgent::getUnreadCount count=%1").arg(count));
 
     return count;
 }
 
 /*!
-    Load NmFrameworkAdapter from plugins.
-    \return true if adapter is loaded succesfully.
+    Get mailbox count in outbox folder
+    \param mailboxId id of the mailbox
+    \param maxCount max number of outbox mails that is needed
+    \return number of mails in the outbox
 */
-bool NmMailAgent::loadAdapter()
+int NmMailAgent::getOutboxCount(const NmId &mailboxId)
 {
-    QStringList directories(pluginFolders());
+    NMLOG("NmMailAgent::getOutboxCount");
+    int count(0);
+
+    NmDataPluginInterface *plugin = mPluginFactory->interfaceInstance(mailboxId);
 
-     foreach (const QString &pluginPath, directories) {
-         QPluginLoader *loader =
-             new QPluginLoader(pluginPath + "/nmframeworkadapter.qtplugin");
-         if (loader) {
-             mAdapter = static_cast<NmFrameworkAdapter *>(loader->instance());
-             if (mAdapter) {
-                 return true;
-             }
-         }
-     }
-     NMLOG("NmMailAgent::loadAdapter failed");
-     return false;
+    if (plugin) {
+		// get outbox folder ID
+		NmId outboxId = plugin->getStandardFolderId( mailboxId, NmFolderOutbox );
+
+		// get list of messages in outbox
+		QList<NmMessageEnvelope*> messageList;
+		plugin->listMessages(mailboxId, outboxId, messageList);
+		count = messageList.count();
+		qDeleteAll(messageList);
+    }
+    NMLOG(QString("NmMailAgent::getOutboxCount count=%1").arg(count));
+
+    return count;
 }
 
 /*!
-    Update the mailbox visibility
+    Update the mailbox visibility and status
     \param mailboxId id of the mailbox
     \param active visibility state of the mailbox
+    \param refreshAlways true when the indicator should be always updated
     \return true if the mailbox state was changed
 */
-bool NmMailAgent::updateMailboxActivity(const NmId &mailboxId, bool active)
+bool NmMailAgent::updateMailboxState(const NmId &mailboxId,
+    bool active, bool refreshAlways)
 {
+    // Update the global sending state
+    mSendingState = false;
+    foreach (NmMailboxInfo *mailboxInfo, mMailboxes) {
+        if (mailboxInfo->mOutboxMails>0) {
+            mSendingState = true;
+            break;
+        }
+    }
+
     NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
     bool changed = false;
-    if (mailboxInfo->mActive != active) {
+    if (mailboxInfo->mActive != active ||
+        refreshAlways) {
         mailboxInfo->mActive = active;
         changed = true;
         if (active) {
-            // Mailbox becomes active again. Move to the bottom of the list.
-            mMailboxes.removeAll(mailboxInfo);
-            mMailboxes.append(mailboxInfo);
+            // Mailbox is not yet assigned to any indicator
+            if (mailboxInfo->mIndicatorIndex < 0) {
+                mailboxInfo->mIndicatorIndex = getIndicatorIndex();
+            }
+
+            updateIndicator(true,*mailboxInfo);
+        }
+        else {
+            // Indicator not anymore active. Release it.
+            if (mailboxInfo->mIndicatorIndex>=0) {
+                updateIndicator(false,*mailboxInfo);
+                mailboxInfo->mIndicatorIndex = NmAgentIndicatorNotSet;
+            }
         }
     }
     return changed;
 }
 
 /*!
-    Updates status according to current information
-*/
-void NmMailAgent::updateStatus()
-{
-    NMLOG("NmMailAgent::updateStatus");
-
-    int activeIndicators = 0;
-
-    // Update the indicators
-    foreach (NmMailboxInfo *mailboxInfo, mMailboxes) {
-        // Show only active mailboxes
-        if (mailboxInfo->mActive) {
-            updateIndicator(activeIndicators,true,*mailboxInfo);
-            activeIndicators++;
-        }
-    }
-
-    // Hide the indicator that are not needed anymore
-    for (int i=activeIndicators;i<mActiveIndicators;i++) {
-        NmMailboxInfo mailboxInfo;
-        updateIndicator(i,false,mailboxInfo);
-    }
-    mActiveIndicators = activeIndicators;
-}
-
-/*!
     Check if the mailbox indicator should be active, according to current state
     \param mailboxInfo information of the mailbox
     \return true if indicator should be now active
 */
 bool NmMailAgent::isMailboxActive(const NmMailboxInfo& mailboxInfo)
 {
-    if (mailboxInfo.mUnreadMails>0) {
+    if (mailboxInfo.mUnreadMails>0 || mailboxInfo.mOutboxMails>0) {
         return true;
     }
     return false;
@@ -250,14 +285,15 @@
     \param mailboxInfo information of the mailbox
     \return true if indicator was updated with no errors
 */
-bool NmMailAgent::updateIndicator(int mailboxIndex, bool active,
+bool NmMailAgent::updateIndicator(bool active,
     const NmMailboxInfo& mailboxInfo)
 {
     NMLOG(QString("NmMailAgent::updateIndicator index=%1 active=%2 unread=%3").
-        arg(mailboxIndex).arg(active).arg(mailboxInfo.mUnreadMails));
+        arg(mailboxInfo.mIndicatorIndex).arg(active).arg(mailboxInfo.mUnreadMails));
 
     bool ok = false;
-    QString name = QString("com.nokia.nmail.indicatorplugin_")+mailboxIndex+"/1.0";
+    QString name = QString("com.nokia.nmail.indicatorplugin_%1/1.0").
+        arg(mailboxInfo.mIndicatorIndex);
 
     QList<QVariant> list;
     list.append(mailboxInfo.mId.id());
@@ -265,6 +301,8 @@
     list.append(mailboxInfo.mUnreadMails);
     list.append(mailboxInfo.mSyncState);
     list.append(mailboxInfo.mConnectState);
+    list.append(mailboxInfo.mOutboxMails);
+    list.append(mSendingState);
 
     HbIndicator indicator;
     if (active) {
@@ -277,31 +315,59 @@
 }
 
 /*!
+    Get next free indicator index, starting from 0
+    @return index of the indicator that is available
+ */
+int NmMailAgent::getIndicatorIndex()
+{
+    int index = 0;
+    bool found(false);
+    do {
+        found = false;
+        foreach (NmMailboxInfo *mailbox, mMailboxes) {
+            if (mailbox->mIndicatorIndex == index &&
+                mailbox->mActive) {
+                found = true;
+                index++;
+            }
+        }
+    }
+    while( found );
+    return index;
+}
+
+/*!
     Received from NmFrameworkAdapter mailboxEvent signal
     \sa NmFrameworkAdapter
 */
 void NmMailAgent::handleMailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds)
 {
     NMLOG(QString("NmMailAgent::handleMailboxEvent %1").arg(event));
-    bool updateNeeded(false);
 
     switch(event) {
         case NmMailboxCreated:
             foreach (NmId mailboxId, mailboxIds) {
                 getMailboxInfo(mailboxId); // create a new mailbox if needed
-                updateNeeded = true;
             }
             break;
         case NmMailboxChanged:
+
             // Mailbox name may have been changed
             foreach (NmId mailboxId, mailboxIds) {
                 NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
                 NmMailbox *mailbox(NULL);
-                mAdapter->getMailboxById(mailboxId,mailbox);
+                NmDataPluginInterface *plugin = mPluginFactory->interfaceInstance(mailboxId);
+                if (plugin) {
+					plugin->getMailboxById(mailboxId,mailbox);
+                }
                 if (mailbox && mailboxInfo) {
                     if(mailbox->name() != mailboxInfo->mName) {
                         mailboxInfo->mName = mailbox->name();
-                        updateNeeded = true;
+
+                        if (mailboxInfo->mActive) {
+                            // Update the status of the mailbox
+                            updateMailboxState(mailboxId, true, true);
+                        }
                     }
                 }
                 delete mailbox;
@@ -309,23 +375,18 @@
             break;
         case NmMailboxDeleted:
             foreach (NmId mailboxId, mailboxIds) {
-                if (removeMailboxInfo(mailboxId)) {
-                    updateNeeded = true;
-                }
+                // Will hide also the indicator
+                removeMailboxInfo(mailboxId);
             }
             break;
         default:
             break;
     }
-
-    if (updateNeeded) {
-        updateStatus();
-    }
 }
 
 /*!
     Received from NmFrameworkAdapter messageEvent signal
-    \sa NmFrameWorkAdapter
+    \sa NmFrameworkAdapter
 */
 void NmMailAgent::handleMessageEvent(
             NmMessageEvent event,
@@ -334,56 +395,114 @@
             const NmId& mailboxId)
 {
     NMLOG(QString("NmMailAgent::handleMessageEvent %1 %2").arg(event).arg(mailboxId.id()));
-    Q_UNUSED(folderId);
-    Q_UNUSED(messageIds);
+    bool updateNeeded = false;
 
     switch (event) {
+        case NmMessageCreated: {
+            NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
+            
+            if (folderId==mailboxInfo->mInboxFolderId) {
+                mailboxInfo->mInboxCreatedMessages++;
+            }
+            
+            // When created a new mail in the outbox, we are in sending state
+            if (mailboxInfo->mOutboxFolderId == folderId) {
+                // The first mail created in the outbox
+                if (mailboxInfo->mOutboxMails <= 0) {
+                    updateNeeded = true;
+                }
+                mailboxInfo->mOutboxMails += messageIds.count();
+            }
+            break;
+        }
         case NmMessageChanged: {
             NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
+            
+            if (folderId==mailboxInfo->mInboxFolderId) {
+                mailboxInfo->mInboxChangedMessages++;
+            }
+            
             // If not currently syncronizing the mailbox, this may mean
             // that a message was read/unread
             if (mailboxInfo && mailboxInfo->mSyncState==SyncComplete) {
-                // check the unread status here again
-                mailboxInfo->mUnreadMails = getUnreadCount(mailboxId,maxUnreadCount);
-                if(updateMailboxActivity(mailboxId, isMailboxActive(*mailboxInfo))) {
-                    updateStatus();
-                }
+                // check the unread status again
+                mailboxInfo->mUnreadMails = getUnreadCount(mailboxId,NmAgentMaxUnreadCount);
+                updateNeeded = true;
             }
 			break;
 		}
+        case NmMessageDeleted: {
+            NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
+
+            if (folderId==mailboxInfo->mInboxFolderId) {
+                mailboxInfo->mInboxDeletedMessages++;
+            }
+            
+            // Deleted mails from the outbox
+            if (mailboxInfo->mOutboxFolderId == folderId) {
+                mailboxInfo->mOutboxMails -= messageIds.count();
+
+                // Sanity check for the outbox count
+                if (mailboxInfo->mOutboxMails < 0) {
+                    mailboxInfo->mOutboxMails = 0;
+                }
+
+                // The last mail was now deleted
+                if (mailboxInfo->mOutboxMails == 0) {
+                    updateNeeded = true;
+                }
+            }
+            break;
+        }
         default:
             break;
     }
 
-    // Do not perform an update here, just in handleSyncState
+    if (updateNeeded) {
+        NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId);
+        updateMailboxState(mailboxId,
+            isMailboxActive(*mailboxInfo), true /* force refresh */);
+    }
 }
 
 /*!
     Received from NmFrameworkAdapter syncStateEvent signal
-    \sa NmFrameWorkAdapter
+    \sa NmFrameworkAdapter
 */
 void NmMailAgent::handleSyncStateEvent(
             NmSyncState state,
-            const NmId mailboxId)
+            const NmOperationCompletionEvent &event)
 {
-    NMLOG(QString("NmMailAgent::handleSyncStateEvent %1 %2").arg(state).arg(mailboxId.id()));
-    NmMailboxInfo *info = getMailboxInfo(mailboxId);
+    NMLOG(QString("NmMailAgent::handleSyncStateEvent %1 %2").arg(state).arg(event.mMailboxId.id()));
+    NmMailboxInfo *info = getMailboxInfo(event.mMailboxId);
     if (info) {
         info->mSyncState = state;
+        
+        if (state==Synchronizing) {
+            // Reset counters when sync is started
+            info->mInboxCreatedMessages = 0;
+            info->mInboxChangedMessages = 0;
+            info->mInboxDeletedMessages = 0;
+        } 
+        else if (state==SyncComplete) {
+            // Check the unread status here again
+            info->mUnreadMails = getUnreadCount(event.mMailboxId,NmAgentMaxUnreadCount);
 
-        if (state==SyncComplete) {
-            // check the unread status here again
-            info->mUnreadMails = getUnreadCount(mailboxId,maxUnreadCount);
-            if(updateMailboxActivity(mailboxId, isMailboxActive(*info))) {
-                updateStatus();
-            }
+            // Refresh the indicator if messages created or changed
+            NMLOG(QString(" created=%1, changed=%1, deleted=%1").
+                arg(info->mInboxCreatedMessages).
+                arg(info->mInboxChangedMessages).
+                arg(info->mInboxDeletedMessages));
+            bool refresh = (info->mInboxCreatedMessages > 0) || (info->mInboxChangedMessages > 0);
+
+            updateMailboxState(event.mMailboxId, isMailboxActive(*info), refresh);
         }
     }
 }
 
 /*!
     Received from NmFrameworkAdapter connectionState signal
-    \sa NmFrameWorkAdapter
+    \sa NmFrameworkAdapter
 */
 void NmMailAgent::handleConnectionEvent(NmConnectState state, const NmId mailboxId)
 {
@@ -393,7 +512,6 @@
         // Connecting, Connected, Disconnecting, Disconnected
         mailboxInfo->mConnectState = state;
     }
-    updateStatus();
 }
 
 /*!
@@ -405,6 +523,11 @@
     bool found = false;
     foreach (NmMailboxInfo *mailbox, mMailboxes) {
         if (mailbox->mId == id) {
+            // Hide the indicator too
+            if(mailbox->mIndicatorIndex>=0) {
+                updateIndicator(false,*mailbox);
+            }
+
             found = true;
             mMailboxes.removeAll(mailbox);
         }
@@ -420,18 +543,23 @@
 {
     // get information of the mailbox
     NmMailbox *mailbox = NULL;
-    mAdapter->getMailboxById(id, mailbox);
-    if (mailbox) {
-        return createMailboxInfo(*mailbox);
+    NmMailboxInfo *info = NULL;
+    NmDataPluginInterface *plugin = mPluginFactory->interfaceInstance(id);
+    if (plugin) {
+        plugin->getMailboxById(id, mailbox);
+        if (mailbox) {
+            info = createMailboxInfo(*mailbox,plugin);
+        }
     }
-    return NULL;
+
+    return info;
 }
 
 /*!
     Create a new mailbox info with given parameters
     \return new mailbox info object
 */
-NmMailboxInfo *NmMailAgent::createMailboxInfo(const NmMailbox& mailbox)
+NmMailboxInfo *NmMailAgent::createMailboxInfo(const NmMailbox& mailbox,NmDataPluginInterface *plugin)
 {
     NmMailboxInfo *mailboxInfo = new NmMailboxInfo();
     mailboxInfo->mId = mailbox.id();
@@ -440,7 +568,16 @@
     mMailboxes.append(mailboxInfo);
 
     // Subscribe to get all mailbox events
-    mAdapter->subscribeMailboxEvents(mailboxInfo->mId);
+    plugin->subscribeMailboxEvents(mailboxInfo->mId);
+
+    // get inbox folder ID
+    mailboxInfo->mInboxFolderId = plugin->getStandardFolderId(
+        mailbox.id(), NmFolderInbox );
+
+    // get outbox folder ID
+    mailboxInfo->mOutboxFolderId = plugin->getStandardFolderId(
+        mailbox.id(), NmFolderOutbox );
+
     return mailboxInfo;
 }
 
--- a/emailservices/nmailbase/bwins/nmailbaseu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/bwins/nmailbaseu.def	Mon May 03 12:23:15 2010 +0300
@@ -5,172 +5,175 @@
 	?lastUpdated@NmFolder@@QBE?AVQDateTime@@XZ @ 4 NONAME ; class QDateTime NmFolder::lastUpdated(void) const
 	?messageCount@NmFolder@@QBEIXZ @ 5 NONAME ; unsigned int NmFolder::messageCount(void) const
 	?clearCcRecipients@NmMessageEnvelope@@QAEXXZ @ 6 NONAME ; void NmMessageEnvelope::clearCcRecipients(void)
-	?attachmentList@NmMessage@@QAEXAAV?$QList@PAVNmMessagePart@@@@@Z @ 7 NONAME ; void NmMessage::attachmentList(class QList<class NmMessagePart *> &)
-	?subFolderCount@NmFolder@@QBEIXZ @ 8 NONAME ; unsigned int NmFolder::subFolderCount(void) const
-	?isMessage@NmMessagePart@@QBE_NXZ @ 9 NONAME ; bool NmMessagePart::isMessage(void) const
-	?setSender@NmMessageEnvelope@@QAEXABVNmAddress@@@Z @ 10 NONAME ; void NmMessageEnvelope::setSender(class NmAddress const &)
-	?priority@NmMessageEnvelope@@QBE?AW4NmMessagePriority@@XZ @ 11 NONAME ; enum NmMessagePriority NmMessageEnvelope::priority(void) const
-	?attachmentName@NmMessagePart@@QBE?AVQString@@XZ @ 12 NONAME ; class QString NmMessagePart::attachmentName(void) const
-	??1NmFolder@@UAE@XZ @ 13 NONAME ; NmFolder::~NmFolder(void)
-	??4NmFolder@@QAEAAV0@ABV0@@Z @ 14 NONAME ; class NmFolder & NmFolder::operator=(class NmFolder const &)
-	?setMailboxId@NmMessagePart@@QAEXABVNmId@@@Z @ 15 NONAME ; void NmMessagePart::setMailboxId(class NmId const &)
-	?setContentType@NmMessagePart@@QAEXABVQString@@@Z @ 16 NONAME ; void NmMessagePart::setContentType(class QString const &)
-	?setParentId@NmMessagePart@@QAEXABVNmId@@@Z @ 17 NONAME ; void NmMessagePart::setParentId(class NmId const &)
-	??_ENmMessageEnvelopePrivate@@UAE@I@Z @ 18 NONAME ; NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate(unsigned int)
-	?setFlag@NmMessageEnvelopePrivate@@QAEXW4NmMessageFlag@@_N@Z @ 19 NONAME ; void NmMessageEnvelopePrivate::setFlag(enum NmMessageFlag, bool)
-	?setLastUpdated@NmFolder@@QAEXVQDateTime@@@Z @ 20 NONAME ; void NmFolder::setLastUpdated(class QDateTime)
-	?setCcRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 21 NONAME ; void NmMessageEnvelope::setCcRecipients(class QList<class NmAddress>)
-	?binaryContent@NmMessagePart@@QBEABVQByteArray@@XZ @ 22 NONAME ; class QByteArray const & NmMessagePart::binaryContent(void) const
-	?flags@NmMessageEnvelopePrivate@@QBE?AV?$QFlags@W4NmMessageFlag@@@@XZ @ 23 NONAME ; class QFlags<enum NmMessageFlag> NmMessageEnvelopePrivate::flags(void) const
-	?toRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 24 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::toRecipients(void) const
-	??0NmAddress@@QAE@XZ @ 25 NONAME ; NmAddress::NmAddress(void)
-	?setSubject@NmMessageEnvelope@@QAEXABVQString@@@Z @ 26 NONAME ; void NmMessageEnvelope::setSubject(class QString const &)
-	?envelope@NmMessage@@QBEABVNmMessageEnvelope@@XZ @ 27 NONAME ; class NmMessageEnvelope const & NmMessage::envelope(void) const
-	??0NmMessagePart@@QAE@ABVNmId@@@Z @ 28 NONAME ; NmMessagePart::NmMessagePart(class NmId const &)
-	?textContent@NmMessagePart@@QBEABVQString@@XZ @ 29 NONAME ; class QString const & NmMessagePart::textContent(void) const
-	?clearToRecipients@NmMessageEnvelope@@QAEXXZ @ 30 NONAME ; void NmMessageEnvelope::clearToRecipients(void)
-	?address@NmMailbox@@QAE?AVNmAddress@@XZ @ 31 NONAME ; class NmAddress NmMailbox::address(void)
-	??0NmMessageEnvelopePrivate@@QAE@XZ @ 32 NONAME ; NmMessageEnvelopePrivate::NmMessageEnvelopePrivate(void)
-	??4NmAddress@@QAEAAV0@ABV0@@Z @ 33 NONAME ; class NmAddress & NmAddress::operator=(class NmAddress const &)
-	??0NmMessage@@QAE@ABVNmMessagePart@@@Z @ 34 NONAME ; NmMessage::NmMessage(class NmMessagePart const &)
-	??1NmMailboxPrivate@@UAE@XZ @ 35 NONAME ; NmMailboxPrivate::~NmMailboxPrivate(void)
-	??_ENmAddress@@UAE@I@Z @ 36 NONAME ; NmAddress::~NmAddress(unsigned int)
-	?setFolderId@NmFolder@@QAEXVNmId@@@Z @ 37 NONAME ; void NmFolder::setFolderId(class NmId)
-	?unreadMessageCount@NmFolder@@QBEIXZ @ 38 NONAME ; unsigned int NmFolder::unreadMessageCount(void) const
-	?removeChildPart@NmMessagePart@@QAEXABVNmId@@@Z @ 39 NONAME ; void NmMessagePart::removeChildPart(class NmId const &)
-	?setId@NmMailbox@@QAEXABVNmId@@@Z @ 40 NONAME ; void NmMailbox::setId(class NmId const &)
-	?fetchedSize@NmMessagePart@@QBEIXZ @ 41 NONAME ; unsigned int NmMessagePart::fetchedSize(void) const
-	?setMailboxId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 42 NONAME ; void NmMessageEnvelope::setMailboxId(class NmId const &)
-	?setTextContent@NmMessagePart@@QAEXABVQString@@0@Z @ 43 NONAME ; void NmMessagePart::setTextContent(class QString const &, class QString const &)
-	?isTextContent@NmMessagePartPrivate@@QBE_NXZ @ 44 NONAME ; bool NmMessagePartPrivate::isTextContent(void) const
-	??0NmMessage@@QAE@ABVNmMessageEnvelope@@@Z @ 45 NONAME ; NmMessage::NmMessage(class NmMessageEnvelope const &)
-	?setDisplayName@NmAddress@@QAEXABVQString@@@Z @ 46 NONAME ; void NmAddress::setDisplayName(class QString const &)
-	?id@NmMessagePart@@UBE?AVNmId@@XZ @ 47 NONAME ; class NmId NmMessagePart::id(void) const
-	?folderType@NmFolder@@QBE?AW4NmFolderType@@XZ @ 48 NONAME ; enum NmFolderType NmFolder::folderType(void) const
-	??_ENmAddressPrivate@@UAE@I@Z @ 49 NONAME ; NmAddressPrivate::~NmAddressPrivate(unsigned int)
-	??0NmMessageEnvelope@@QAE@V?$QExplicitlySharedDataPointer@VNmMessageEnvelopePrivate@@@@@Z @ 50 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class QExplicitlySharedDataPointer<class NmMessageEnvelopePrivate>)
-	??0NmMessage@@QAE@ABV0@@Z @ 51 NONAME ; NmMessage::NmMessage(class NmMessage const &)
-	?setBccRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 52 NONAME ; void NmMessageEnvelope::setBccRecipients(class QList<class NmAddress>)
-	??1NmMessageEnvelope@@UAE@XZ @ 53 NONAME ; NmMessageEnvelope::~NmMessageEnvelope(void)
-	?plainTextBodyPart@NmMessage@@QAEPAVNmMessagePart@@XZ @ 54 NONAME ; class NmMessagePart * NmMessage::plainTextBodyPart(void)
-	??0NmMessagePart@@QAE@XZ @ 55 NONAME ; NmMessagePart::NmMessagePart(void)
-	?id@NmMailbox@@QBE?AVNmId@@XZ @ 56 NONAME ; class NmId NmMailbox::id(void) const
-	??0NmMessagePartPrivate@@QAE@XZ @ 57 NONAME ; NmMessagePartPrivate::NmMessagePartPrivate(void)
-	??0NmFolderPrivate@@QAE@XZ @ 58 NONAME ; NmFolderPrivate::NmFolderPrivate(void)
-	?setUnseenCount@NmFolder@@QAEXI@Z @ 59 NONAME ; void NmFolder::setUnseenCount(unsigned int)
-	??9NmAddress@@QBE_NABV0@@Z @ 60 NONAME ; bool NmAddress::operator!=(class NmAddress const &) const
-	?setFlags@NmMessageEnvelopePrivate@@QAEXV?$QFlags@W4NmMessageFlag@@@@_N@Z @ 61 NONAME ; void NmMessageEnvelopePrivate::setFlags(class QFlags<enum NmMessageFlag>, bool)
-	??1NmMailbox@@UAE@XZ @ 62 NONAME ; NmMailbox::~NmMailbox(void)
-	??_ENmFolder@@UAE@I@Z @ 63 NONAME ; NmFolder::~NmFolder(unsigned int)
-	?isRead@NmMessageEnvelope@@QBE_NXZ @ 64 NONAME ; bool NmMessageEnvelope::isRead(void) const
-	?mailboxId@NmFolder@@QBE?AVNmId@@XZ @ 65 NONAME ; class NmId NmFolder::mailboxId(void) const
-	?clearBccRecipients@NmMessageEnvelope@@QAEXXZ @ 66 NONAME ; void NmMessageEnvelope::clearBccRecipients(void)
-	??0NmAddress@@QAE@ABV0@@Z @ 67 NONAME ; NmAddress::NmAddress(class NmAddress const &)
-	?address@NmAddress@@QBE?AVQString@@XZ @ 68 NONAME ; class QString NmAddress::address(void) const
-	?setRead@NmMessageEnvelope@@QAEX_N@Z @ 69 NONAME ; void NmMessageEnvelope::setRead(bool)
-	?setPriority@NmMessageEnvelope@@QAEXW4NmMessagePriority@@@Z @ 70 NONAME ; void NmMessageEnvelope::setPriority(enum NmMessagePriority)
-	?parentId@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 71 NONAME ; class NmId NmMessageEnvelope::parentId(void) const
-	??4NmMessage@@AAEAAV0@ABV0@@Z @ 72 NONAME ; class NmMessage & NmMessage::operator=(class NmMessage const &)
-	??_ENmMessagePartPrivate@@UAE@I@Z @ 73 NONAME ; NmMessagePartPrivate::~NmMessagePartPrivate(unsigned int)
-	?setUnreadMessageCount@NmFolder@@QAEXI@Z @ 74 NONAME ; void NmFolder::setUnreadMessageCount(unsigned int)
-	?hasAttachments@NmMessageEnvelope@@QBE_NXZ @ 75 NONAME ; bool NmMessageEnvelope::hasAttachments(void) const
-	?contentDescription@NmMessagePart@@QBE?AVQString@@XZ @ 76 NONAME ; class QString NmMessagePart::contentDescription(void) const
-	?flags@NmMessageEnvelope@@QBE?AV?$QFlags@W4NmMessageFlag@@@@XZ @ 77 NONAME ; class QFlags<enum NmMessageFlag> NmMessageEnvelope::flags(void) const
-	?isReplied@NmMessageEnvelope@@QBE_NXZ @ 78 NONAME ; bool NmMessageEnvelope::isReplied(void) const
-	?displayName@NmAddress@@QBE?AVQString@@XZ @ 79 NONAME ; class QString NmAddress::displayName(void) const
-	?setSubFolderCount@NmFolder@@QAEXI@Z @ 80 NONAME ; void NmFolder::setSubFolderCount(unsigned int)
-	?subject@NmMessageEnvelope@@QBE?AVQString@@XZ @ 81 NONAME ; class QString NmMessageEnvelope::subject(void) const
-	?setSize@NmMessagePart@@QAEXI@Z @ 82 NONAME ; void NmMessagePart::setSize(unsigned int)
-	?contentId@NmMessagePart@@QAE?AVQString@@XZ @ 83 NONAME ; class QString NmMessagePart::contentId(void)
-	??_ENmMessagePart@@UAE@I@Z @ 84 NONAME ; NmMessagePart::~NmMessagePart(unsigned int)
-	?setBinaryContent@NmMessagePart@@QAEXABVQByteArray@@ABVQString@@@Z @ 85 NONAME ; void NmMessagePart::setBinaryContent(class QByteArray const &, class QString const &)
-	??_ENmMailbox@@UAE@I@Z @ 86 NONAME ; NmMailbox::~NmMailbox(unsigned int)
-	?setForwarded@NmMessageEnvelope@@QAEX_N@Z @ 87 NONAME ; void NmMessageEnvelope::setForwarded(bool)
-	??0NmMessage@@QAE@ABVNmId@@00@Z @ 88 NONAME ; NmMessage::NmMessage(class NmId const &, class NmId const &, class NmId const &)
-	??1NmFolderPrivate@@UAE@XZ @ 89 NONAME ; NmFolderPrivate::~NmFolderPrivate(void)
-	?setId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 90 NONAME ; void NmMessageEnvelope::setId(class NmId const &)
-	?findContentPart@NmMessagePart@@IAEPAV1@ABVQString@@@Z @ 91 NONAME ; class NmMessagePart * NmMessagePart::findContentPart(class QString const &)
-	?name@NmMailbox@@QBE?AVQString@@XZ @ 92 NONAME ; class QString NmMailbox::name(void) const
-	?isMessage@NmMessagePartPrivate@@QBE_NXZ @ 93 NONAME ; bool NmMessagePartPrivate::isMessage(void) const
-	?appendAttachments@NmMessagePart@@QBEXAAV?$QList@PAVNmMessagePart@@@@@Z @ 94 NONAME ; void NmMessagePart::appendAttachments(class QList<class NmMessagePart *> &) const
-	?bccRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 95 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::bccRecipients(void) const
-	?setChildParts@NmMessagePart@@QAEXV?$QList@PAVNmMessagePart@@@@@Z @ 96 NONAME ; void NmMessagePart::setChildParts(class QList<class NmMessagePart *>)
-	??0NmMailbox@@QAE@XZ @ 97 NONAME ; NmMailbox::NmMailbox(void)
-	?setName@NmMailbox@@QAEXABVQString@@@Z @ 98 NONAME ; void NmMailbox::setName(class QString const &)
-	??0NmAddressPrivate@@QAE@XZ @ 99 NONAME ; NmAddressPrivate::NmAddressPrivate(void)
-	?setContentId@NmMessagePart@@QAEXABVQString@@@Z @ 100 NONAME ; void NmMessagePart::setContentId(class QString const &)
-	?setMessageCount@NmFolder@@QAEXI@Z @ 101 NONAME ; void NmFolder::setMessageCount(unsigned int)
-	??0NmMessagePart@@QAE@ABVNmId@@00@Z @ 102 NONAME ; NmMessagePart::NmMessagePart(class NmId const &, class NmId const &, class NmId const &)
-	??0NmMessage@@QAE@ABVNmId@@0@Z @ 103 NONAME ; NmMessage::NmMessage(class NmId const &, class NmId const &)
-	??0NmAddress@@QAE@ABVQString@@0@Z @ 104 NONAME ; NmAddress::NmAddress(class QString const &, class QString const &)
-	??8NmMessageEnvelope@@QBE_NABV0@@Z @ 105 NONAME ; bool NmMessageEnvelope::operator==(class NmMessageEnvelope const &) const
-	?setAttachmentName@NmMessagePart@@QAEXABVQString@@@Z @ 106 NONAME ; void NmMessagePart::setAttachmentName(class QString const &)
-	?setId@NmMessage@@UAEXABVNmId@@@Z @ 107 NONAME ; void NmMessage::setId(class NmId const &)
-	?setName@NmFolder@@QAEXVQString@@@Z @ 108 NONAME ; void NmFolder::setName(class QString)
-	??0NmFolder@@QAE@V?$QExplicitlySharedDataPointer@VNmFolderPrivate@@@@@Z @ 109 NONAME ; NmFolder::NmFolder(class QExplicitlySharedDataPointer<class NmFolderPrivate>)
-	?setSentTime@NmMessageEnvelope@@QAEXABVQDateTime@@@Z @ 110 NONAME ; void NmMessageEnvelope::setSentTime(class QDateTime const &)
-	??0NmMessageEnvelope@@QAE@ABV0@@Z @ 111 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class NmMessageEnvelope const &)
-	??0NmMessage@@QAE@ABVNmId@@@Z @ 112 NONAME ; NmMessage::NmMessage(class NmId const &)
-	??0NmAddress@@QAE@ABVQString@@@Z @ 113 NONAME ; NmAddress::NmAddress(class QString const &)
-	?htmlBodyPart@NmMessage@@QAEPAVNmMessagePart@@XZ @ 114 NONAME ; class NmMessagePart * NmMessage::htmlBodyPart(void)
-	??_ENmFolderPrivate@@UAE@I@Z @ 115 NONAME ; NmFolderPrivate::~NmFolderPrivate(unsigned int)
-	?name@NmFolder@@QBE?AVQString@@XZ @ 116 NONAME ; class QString NmFolder::name(void) const
-	?setAddress@NmMailbox@@QAEXAAVNmAddress@@@Z @ 117 NONAME ; void NmMailbox::setAddress(class NmAddress &)
-	??4NmMailbox@@QAEAAV0@ABV0@@Z @ 118 NONAME ; class NmMailbox & NmMailbox::operator=(class NmMailbox const &)
-	??0NmFolder@@QAE@VNmId@@@Z @ 119 NONAME ; NmFolder::NmFolder(class NmId)
-	?mailboxId@NmMessagePart@@QBE?AVNmId@@XZ @ 120 NONAME ; class NmId NmMessagePart::mailboxId(void) const
-	?setHasAttachments@NmMessageEnvelope@@QAEX_N@Z @ 121 NONAME ; void NmMessageEnvelope::setHasAttachments(bool)
-	?setParentId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 122 NONAME ; void NmMessageEnvelope::setParentId(class NmId const &)
-	?setMailboxId@NmFolder@@QAEXVNmId@@@Z @ 123 NONAME ; void NmFolder::setMailboxId(class NmId)
-	?envelope@NmMessage@@QAEAAVNmMessageEnvelope@@XZ @ 124 NONAME ; class NmMessageEnvelope & NmMessage::envelope(void)
-	?setFolderType@NmFolder@@QAEXW4NmFolderType@@@Z @ 125 NONAME ; void NmFolder::setFolderType(enum NmFolderType)
-	?id@NmMessage@@UBE?AVNmId@@XZ @ 126 NONAME ; class NmId NmMessage::id(void) const
-	??8NmAddress@@QBE_NABV0@@Z @ 127 NONAME ; bool NmAddress::operator==(class NmAddress const &) const
-	??9NmMessageEnvelope@@QBE_NABV0@@Z @ 128 NONAME ; bool NmMessageEnvelope::operator!=(class NmMessageEnvelope const &) const
+	?htmlBodyPart@NmMessage@@QBEPBVNmMessagePart@@XZ @ 7 NONAME ; class NmMessagePart const * NmMessage::htmlBodyPart(void) const
+	?findContentPart@NmMessagePart@@IBEPBV1@ABVQString@@@Z @ 8 NONAME ; class NmMessagePart const * NmMessagePart::findContentPart(class QString const &) const
+	?subFolderCount@NmFolder@@QBEIXZ @ 9 NONAME ; unsigned int NmFolder::subFolderCount(void) const
+	?isMessage@NmMessagePart@@QBE_NXZ @ 10 NONAME ; bool NmMessagePart::isMessage(void) const
+	?setSender@NmMessageEnvelope@@QAEXABVNmAddress@@@Z @ 11 NONAME ; void NmMessageEnvelope::setSender(class NmAddress const &)
+	?priority@NmMessageEnvelope@@QBE?AW4NmMessagePriority@@XZ @ 12 NONAME ; enum NmMessagePriority NmMessageEnvelope::priority(void) const
+	?attachmentName@NmMessagePart@@QBE?AVQString@@XZ @ 13 NONAME ; class QString NmMessagePart::attachmentName(void) const
+	??1NmFolder@@UAE@XZ @ 14 NONAME ; NmFolder::~NmFolder(void)
+	??4NmFolder@@QAEAAV0@ABV0@@Z @ 15 NONAME ; class NmFolder & NmFolder::operator=(class NmFolder const &)
+	?setMailboxId@NmMessagePart@@QAEXABVNmId@@@Z @ 16 NONAME ; void NmMessagePart::setMailboxId(class NmId const &)
+	?setContentType@NmMessagePart@@QAEXABVQString@@@Z @ 17 NONAME ; void NmMessagePart::setContentType(class QString const &)
+	?setParentId@NmMessagePart@@QAEXABVNmId@@@Z @ 18 NONAME ; void NmMessagePart::setParentId(class NmId const &)
+	??_ENmMessageEnvelopePrivate@@UAE@I@Z @ 19 NONAME ; NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate(unsigned int)
+	?setFlag@NmMessageEnvelopePrivate@@QAEXW4NmMessageFlag@@_N@Z @ 20 NONAME ; void NmMessageEnvelopePrivate::setFlag(enum NmMessageFlag, bool)
+	?setLastUpdated@NmFolder@@QAEXVQDateTime@@@Z @ 21 NONAME ; void NmFolder::setLastUpdated(class QDateTime)
+	?setCcRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 22 NONAME ; void NmMessageEnvelope::setCcRecipients(class QList<class NmAddress>)
+	?binaryContent@NmMessagePart@@QBEABVQByteArray@@XZ @ 23 NONAME ; class QByteArray const & NmMessagePart::binaryContent(void) const
+	?flags@NmMessageEnvelopePrivate@@QBE?AV?$QFlags@W4NmMessageFlag@@@@XZ @ 24 NONAME ; class QFlags<enum NmMessageFlag> NmMessageEnvelopePrivate::flags(void) const
+	?toRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 25 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::toRecipients(void) const
+	??0NmAddress@@QAE@XZ @ 26 NONAME ; NmAddress::NmAddress(void)
+	?setSubject@NmMessageEnvelope@@QAEXABVQString@@@Z @ 27 NONAME ; void NmMessageEnvelope::setSubject(class QString const &)
+	?envelope@NmMessage@@QBEABVNmMessageEnvelope@@XZ @ 28 NONAME ; class NmMessageEnvelope const & NmMessage::envelope(void) const
+	??0NmMessagePart@@QAE@ABVNmId@@@Z @ 29 NONAME ; NmMessagePart::NmMessagePart(class NmId const &)
+	?textContent@NmMessagePart@@QBEABVQString@@XZ @ 30 NONAME ; class QString const & NmMessagePart::textContent(void) const
+	?clearToRecipients@NmMessageEnvelope@@QAEXXZ @ 31 NONAME ; void NmMessageEnvelope::clearToRecipients(void)
+	?address@NmMailbox@@QAE?AVNmAddress@@XZ @ 32 NONAME ; class NmAddress NmMailbox::address(void)
+	??0NmMessageEnvelopePrivate@@QAE@XZ @ 33 NONAME ; NmMessageEnvelopePrivate::NmMessageEnvelopePrivate(void)
+	??4NmAddress@@QAEAAV0@ABV0@@Z @ 34 NONAME ; class NmAddress & NmAddress::operator=(class NmAddress const &)
+	??0NmMessage@@QAE@ABVNmMessagePart@@@Z @ 35 NONAME ; NmMessage::NmMessage(class NmMessagePart const &)
+	??1NmMailboxPrivate@@UAE@XZ @ 36 NONAME ; NmMailboxPrivate::~NmMailboxPrivate(void)
+	??_ENmAddress@@UAE@I@Z @ 37 NONAME ; NmAddress::~NmAddress(unsigned int)
+	?setFolderId@NmFolder@@QAEXVNmId@@@Z @ 38 NONAME ; void NmFolder::setFolderId(class NmId)
+	?unreadMessageCount@NmFolder@@QBEIXZ @ 39 NONAME ; unsigned int NmFolder::unreadMessageCount(void) const
+	?removeChildPart@NmMessagePart@@QAEXABVNmId@@@Z @ 40 NONAME ; void NmMessagePart::removeChildPart(class NmId const &)
+	?setId@NmMailbox@@QAEXABVNmId@@@Z @ 41 NONAME ; void NmMailbox::setId(class NmId const &)
+	?fetchedSize@NmMessagePart@@QBEIXZ @ 42 NONAME ; unsigned int NmMessagePart::fetchedSize(void) const
+	?setMailboxId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 43 NONAME ; void NmMessageEnvelope::setMailboxId(class NmId const &)
+	?setTextContent@NmMessagePart@@QAEXABVQString@@0@Z @ 44 NONAME ; void NmMessagePart::setTextContent(class QString const &, class QString const &)
+	?isTextContent@NmMessagePartPrivate@@QBE_NXZ @ 45 NONAME ; bool NmMessagePartPrivate::isTextContent(void) const
+	??0NmMessage@@QAE@ABVNmMessageEnvelope@@@Z @ 46 NONAME ; NmMessage::NmMessage(class NmMessageEnvelope const &)
+	?setDisplayName@NmAddress@@QAEXABVQString@@@Z @ 47 NONAME ; void NmAddress::setDisplayName(class QString const &)
+	?id@NmMessagePart@@UBE?AVNmId@@XZ @ 48 NONAME ; class NmId NmMessagePart::id(void) const
+	?folderType@NmFolder@@QBE?AW4NmFolderType@@XZ @ 49 NONAME ; enum NmFolderType NmFolder::folderType(void) const
+	??_ENmAddressPrivate@@UAE@I@Z @ 50 NONAME ; NmAddressPrivate::~NmAddressPrivate(unsigned int)
+	??0NmMessageEnvelope@@QAE@V?$QExplicitlySharedDataPointer@VNmMessageEnvelopePrivate@@@@@Z @ 51 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class QExplicitlySharedDataPointer<class NmMessageEnvelopePrivate>)
+	??0NmMessage@@QAE@ABV0@@Z @ 52 NONAME ; NmMessage::NmMessage(class NmMessage const &)
+	?setBccRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 53 NONAME ; void NmMessageEnvelope::setBccRecipients(class QList<class NmAddress>)
+	??1NmMessageEnvelope@@UAE@XZ @ 54 NONAME ; NmMessageEnvelope::~NmMessageEnvelope(void)
+	?plainTextBodyPart@NmMessage@@QAEPAVNmMessagePart@@XZ @ 55 NONAME ; class NmMessagePart * NmMessage::plainTextBodyPart(void)
+	??0NmMessagePart@@QAE@XZ @ 56 NONAME ; NmMessagePart::NmMessagePart(void)
+	?id@NmMailbox@@QBE?AVNmId@@XZ @ 57 NONAME ; class NmId NmMailbox::id(void) const
+	??0NmMessagePartPrivate@@QAE@XZ @ 58 NONAME ; NmMessagePartPrivate::NmMessagePartPrivate(void)
+	??0NmFolderPrivate@@QAE@XZ @ 59 NONAME ; NmFolderPrivate::NmFolderPrivate(void)
+	?setUnseenCount@NmFolder@@QAEXI@Z @ 60 NONAME ; void NmFolder::setUnseenCount(unsigned int)
+	??9NmAddress@@QBE_NABV0@@Z @ 61 NONAME ; bool NmAddress::operator!=(class NmAddress const &) const
+	?setFlags@NmMessageEnvelopePrivate@@QAEXV?$QFlags@W4NmMessageFlag@@@@_N@Z @ 62 NONAME ; void NmMessageEnvelopePrivate::setFlags(class QFlags<enum NmMessageFlag>, bool)
+	??1NmMailbox@@UAE@XZ @ 63 NONAME ; NmMailbox::~NmMailbox(void)
+	??_ENmFolder@@UAE@I@Z @ 64 NONAME ; NmFolder::~NmFolder(unsigned int)
+	?isRead@NmMessageEnvelope@@QBE_NXZ @ 65 NONAME ; bool NmMessageEnvelope::isRead(void) const
+	?mailboxId@NmFolder@@QBE?AVNmId@@XZ @ 66 NONAME ; class NmId NmFolder::mailboxId(void) const
+	?clearBccRecipients@NmMessageEnvelope@@QAEXXZ @ 67 NONAME ; void NmMessageEnvelope::clearBccRecipients(void)
+	??0NmAddress@@QAE@ABV0@@Z @ 68 NONAME ; NmAddress::NmAddress(class NmAddress const &)
+	?address@NmAddress@@QBE?AVQString@@XZ @ 69 NONAME ; class QString NmAddress::address(void) const
+	?setRead@NmMessageEnvelope@@QAEX_N@Z @ 70 NONAME ; void NmMessageEnvelope::setRead(bool)
+	?setPriority@NmMessageEnvelope@@QAEXW4NmMessagePriority@@@Z @ 71 NONAME ; void NmMessageEnvelope::setPriority(enum NmMessagePriority)
+	?parentId@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 72 NONAME ; class NmId NmMessageEnvelope::parentId(void) const
+	??4NmMessage@@AAEAAV0@ABV0@@Z @ 73 NONAME ; class NmMessage & NmMessage::operator=(class NmMessage const &)
+	??_ENmMessagePartPrivate@@UAE@I@Z @ 74 NONAME ; NmMessagePartPrivate::~NmMessagePartPrivate(unsigned int)
+	?setUnreadMessageCount@NmFolder@@QAEXI@Z @ 75 NONAME ; void NmFolder::setUnreadMessageCount(unsigned int)
+	?hasAttachments@NmMessageEnvelope@@QBE_NXZ @ 76 NONAME ; bool NmMessageEnvelope::hasAttachments(void) const
+	?contentDescription@NmMessagePart@@QBE?AVQString@@XZ @ 77 NONAME ; class QString NmMessagePart::contentDescription(void) const
+	?flags@NmMessageEnvelope@@QBE?AV?$QFlags@W4NmMessageFlag@@@@XZ @ 78 NONAME ; class QFlags<enum NmMessageFlag> NmMessageEnvelope::flags(void) const
+	?isReplied@NmMessageEnvelope@@QBE_NXZ @ 79 NONAME ; bool NmMessageEnvelope::isReplied(void) const
+	?displayName@NmAddress@@QBE?AVQString@@XZ @ 80 NONAME ; class QString NmAddress::displayName(void) const
+	?setSubFolderCount@NmFolder@@QAEXI@Z @ 81 NONAME ; void NmFolder::setSubFolderCount(unsigned int)
+	?subject@NmMessageEnvelope@@QBE?AVQString@@XZ @ 82 NONAME ; class QString NmMessageEnvelope::subject(void) const
+	?setSize@NmMessagePart@@QAEXI@Z @ 83 NONAME ; void NmMessagePart::setSize(unsigned int)
+	?contentId@NmMessagePart@@QAE?AVQString@@XZ @ 84 NONAME ; class QString NmMessagePart::contentId(void)
+	??_ENmMessagePart@@UAE@I@Z @ 85 NONAME ; NmMessagePart::~NmMessagePart(unsigned int)
+	?setBinaryContent@NmMessagePart@@QAEXABVQByteArray@@ABVQString@@@Z @ 86 NONAME ; void NmMessagePart::setBinaryContent(class QByteArray const &, class QString const &)
+	??_ENmMailbox@@UAE@I@Z @ 87 NONAME ; NmMailbox::~NmMailbox(unsigned int)
+	?setForwarded@NmMessageEnvelope@@QAEX_N@Z @ 88 NONAME ; void NmMessageEnvelope::setForwarded(bool)
+	??0NmMessage@@QAE@ABVNmId@@00@Z @ 89 NONAME ; NmMessage::NmMessage(class NmId const &, class NmId const &, class NmId const &)
+	??1NmFolderPrivate@@UAE@XZ @ 90 NONAME ; NmFolderPrivate::~NmFolderPrivate(void)
+	?setId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 91 NONAME ; void NmMessageEnvelope::setId(class NmId const &)
+	?findContentPart@NmMessagePart@@IAEPAV1@ABVQString@@@Z @ 92 NONAME ; class NmMessagePart * NmMessagePart::findContentPart(class QString const &)
+	?name@NmMailbox@@QBE?AVQString@@XZ @ 93 NONAME ; class QString NmMailbox::name(void) const
+	?isMessage@NmMessagePartPrivate@@QBE_NXZ @ 94 NONAME ; bool NmMessagePartPrivate::isMessage(void) const
+	?setChildParts@NmMessagePart@@QAEXV?$QList@PAVNmMessagePart@@@@@Z @ 95 NONAME ; void NmMessagePart::setChildParts(class QList<class NmMessagePart *>)
+	?appendAttachments@NmMessagePart@@QBEXAAV?$QList@PAVNmMessagePart@@@@@Z @ 96 NONAME ; void NmMessagePart::appendAttachments(class QList<class NmMessagePart *> &) const
+	?bccRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 97 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::bccRecipients(void) const
+	??0NmMailbox@@QAE@XZ @ 98 NONAME ; NmMailbox::NmMailbox(void)
+	?setName@NmMailbox@@QAEXABVQString@@@Z @ 99 NONAME ; void NmMailbox::setName(class QString const &)
+	??0NmAddressPrivate@@QAE@XZ @ 100 NONAME ; NmAddressPrivate::NmAddressPrivate(void)
+	?setContentId@NmMessagePart@@QAEXABVQString@@@Z @ 101 NONAME ; void NmMessagePart::setContentId(class QString const &)
+	?setMessageCount@NmFolder@@QAEXI@Z @ 102 NONAME ; void NmFolder::setMessageCount(unsigned int)
+	??0NmMessagePart@@QAE@ABVNmId@@00@Z @ 103 NONAME ; NmMessagePart::NmMessagePart(class NmId const &, class NmId const &, class NmId const &)
+	??0NmMessage@@QAE@ABVNmId@@0@Z @ 104 NONAME ; NmMessage::NmMessage(class NmId const &, class NmId const &)
+	??0NmAddress@@QAE@ABVQString@@0@Z @ 105 NONAME ; NmAddress::NmAddress(class QString const &, class QString const &)
+	??8NmMessageEnvelope@@QBE_NABV0@@Z @ 106 NONAME ; bool NmMessageEnvelope::operator==(class NmMessageEnvelope const &) const
+	?setAttachmentName@NmMessagePart@@QAEXABVQString@@@Z @ 107 NONAME ; void NmMessagePart::setAttachmentName(class QString const &)
+	?setId@NmMessage@@UAEXABVNmId@@@Z @ 108 NONAME ; void NmMessage::setId(class NmId const &)
+	?setName@NmFolder@@QAEXVQString@@@Z @ 109 NONAME ; void NmFolder::setName(class QString)
+	??0NmFolder@@QAE@V?$QExplicitlySharedDataPointer@VNmFolderPrivate@@@@@Z @ 110 NONAME ; NmFolder::NmFolder(class QExplicitlySharedDataPointer<class NmFolderPrivate>)
+	?setSentTime@NmMessageEnvelope@@QAEXABVQDateTime@@@Z @ 111 NONAME ; void NmMessageEnvelope::setSentTime(class QDateTime const &)
+	??0NmMessageEnvelope@@QAE@ABV0@@Z @ 112 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class NmMessageEnvelope const &)
+	??0NmMessage@@QAE@ABVNmId@@@Z @ 113 NONAME ; NmMessage::NmMessage(class NmId const &)
+	??0NmAddress@@QAE@ABVQString@@@Z @ 114 NONAME ; NmAddress::NmAddress(class QString const &)
+	?htmlBodyPart@NmMessage@@QAEPAVNmMessagePart@@XZ @ 115 NONAME ; class NmMessagePart * NmMessage::htmlBodyPart(void)
+	??_ENmFolderPrivate@@UAE@I@Z @ 116 NONAME ; NmFolderPrivate::~NmFolderPrivate(unsigned int)
+	?name@NmFolder@@QBE?AVQString@@XZ @ 117 NONAME ; class QString NmFolder::name(void) const
+	?setAddress@NmMailbox@@QAEXAAVNmAddress@@@Z @ 118 NONAME ; void NmMailbox::setAddress(class NmAddress &)
+	??4NmMailbox@@QAEAAV0@ABV0@@Z @ 119 NONAME ; class NmMailbox & NmMailbox::operator=(class NmMailbox const &)
+	??0NmFolder@@QAE@VNmId@@@Z @ 120 NONAME ; NmFolder::NmFolder(class NmId)
+	?mailboxId@NmMessagePart@@QBE?AVNmId@@XZ @ 121 NONAME ; class NmId NmMessagePart::mailboxId(void) const
+	?setHasAttachments@NmMessageEnvelope@@QAEX_N@Z @ 122 NONAME ; void NmMessageEnvelope::setHasAttachments(bool)
+	?setParentId@NmMessageEnvelope@@QAEXABVNmId@@@Z @ 123 NONAME ; void NmMessageEnvelope::setParentId(class NmId const &)
+	?setMailboxId@NmFolder@@QAEXVNmId@@@Z @ 124 NONAME ; void NmFolder::setMailboxId(class NmId)
+	?envelope@NmMessage@@QAEAAVNmMessageEnvelope@@XZ @ 125 NONAME ; class NmMessageEnvelope & NmMessage::envelope(void)
+	?plainTextBodyPart@NmMessage@@QBEPBVNmMessagePart@@XZ @ 126 NONAME ; class NmMessagePart const * NmMessage::plainTextBodyPart(void) const
+	?setFolderType@NmFolder@@QAEXW4NmFolderType@@@Z @ 127 NONAME ; void NmFolder::setFolderType(enum NmFolderType)
+	?id@NmMessage@@UBE?AVNmId@@XZ @ 128 NONAME ; class NmId NmMessage::id(void) const
 	?setContentDescription@NmMessagePart@@QAEXABVQString@@@Z @ 129 NONAME ; void NmMessagePart::setContentDescription(class QString const &)
-	?mailboxId@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 130 NONAME ; class NmId NmMessageEnvelope::mailboxId(void) const
-	?setToRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 131 NONAME ; void NmMessageEnvelope::setToRecipients(class QList<class NmAddress>)
-	??1NmMessage@@UAE@XZ @ 132 NONAME ; NmMessage::~NmMessage(void)
-	?size@NmMessagePart@@QBEIXZ @ 133 NONAME ; unsigned int NmMessagePart::size(void) const
-	??1NmAddressPrivate@@UAE@XZ @ 134 NONAME ; NmAddressPrivate::~NmAddressPrivate(void)
-	?sentTime@NmMessageEnvelope@@QBE?AVQDateTime@@XZ @ 135 NONAME ; class QDateTime NmMessageEnvelope::sentTime(void) const
-	?childParts@NmMessagePart@@QBEAAV?$QList@PAVNmMessagePart@@@@XZ @ 136 NONAME ; class QList<class NmMessagePart *> & NmMessagePart::childParts(void) const
-	??0NmMailbox@@QAE@ABV0@@Z @ 137 NONAME ; NmMailbox::NmMailbox(class NmMailbox const &)
-	??4NmMessageEnvelope@@QAEAAV0@ABV0@@Z @ 138 NONAME ; class NmMessageEnvelope & NmMessageEnvelope::operator=(class NmMessageEnvelope const &)
-	??1NmMessagePartPrivate@@UAE@XZ @ 139 NONAME ; NmMessagePartPrivate::~NmMessagePartPrivate(void)
-	??8NmMailbox@@QBE_NABV0@@Z @ 140 NONAME ; bool NmMailbox::operator==(class NmMailbox const &) const
-	??0NmMailbox@@QAE@V?$QExplicitlySharedDataPointer@VNmMailboxPrivate@@@@@Z @ 141 NONAME ; NmMailbox::NmMailbox(class QExplicitlySharedDataPointer<class NmMailboxPrivate>)
-	?unseenCount@NmFolder@@QBEIXZ @ 142 NONAME ; unsigned int NmFolder::unseenCount(void) const
-	?setEnvelope@NmMessage@@QAEXABVNmMessageEnvelope@@@Z @ 143 NONAME ; void NmMessage::setEnvelope(class NmMessageEnvelope const &)
-	?setId@NmMessagePart@@UAEXABVNmId@@@Z @ 144 NONAME ; void NmMessagePart::setId(class NmId const &)
-	?ccRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 145 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::ccRecipients(void) const
-	?sender@NmMessageEnvelope@@QBE?AVNmAddress@@XZ @ 146 NONAME ; class NmAddress NmMessageEnvelope::sender(void) const
-	?setContentDisposition@NmMessagePart@@QAEXABVQString@@@Z @ 147 NONAME ; void NmMessagePart::setContentDisposition(class QString const &)
-	?removeAllChildParts@NmMessagePart@@QAEXXZ @ 148 NONAME ; void NmMessagePart::removeAllChildParts(void)
-	?contentDisposition@NmMessagePart@@QBE?AVQString@@XZ @ 149 NONAME ; class QString NmMessagePart::contentDisposition(void) const
-	??_ENmMailboxPrivate@@UAE@I@Z @ 150 NONAME ; NmMailboxPrivate::~NmMailboxPrivate(unsigned int)
-	?parentId@NmFolder@@QBE?AVNmId@@XZ @ 151 NONAME ; class NmId NmFolder::parentId(void) const
-	?folderId@NmFolder@@QBE?AVNmId@@XZ @ 152 NONAME ; class NmId NmFolder::folderId(void) const
-	??1NmMessagePart@@UAE@XZ @ 153 NONAME ; NmMessagePart::~NmMessagePart(void)
-	??0NmMessagePart@@IAE@ABV0@@Z @ 154 NONAME ; NmMessagePart::NmMessagePart(class NmMessagePart const &)
-	??0NmAddress@@QAE@V?$QExplicitlySharedDataPointer@VNmAddressPrivate@@@@@Z @ 155 NONAME ; NmAddress::NmAddress(class QExplicitlySharedDataPointer<class NmAddressPrivate>)
-	?addChildPart@NmMessagePart@@QAEXPAV1@@Z @ 156 NONAME ; void NmMessagePart::addChildPart(class NmMessagePart *)
-	?isFlagSet@NmMessageEnvelopePrivate@@QBE_NW4NmMessageFlag@@@Z @ 157 NONAME ; bool NmMessageEnvelopePrivate::isFlagSet(enum NmMessageFlag) const
-	??_ENmMessageEnvelope@@UAE@I@Z @ 158 NONAME ; NmMessageEnvelope::~NmMessageEnvelope(unsigned int)
-	??_ENmMessage@@UAE@I@Z @ 159 NONAME ; NmMessage::~NmMessage(unsigned int)
-	?parentId@NmMessagePart@@QBE?AVNmId@@XZ @ 160 NONAME ; class NmId NmMessagePart::parentId(void) const
-	?contentType@NmMessagePart@@QBE?AVQString@@XZ @ 161 NONAME ; class QString NmMessagePart::contentType(void) const
-	?id@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 162 NONAME ; class NmId NmMessageEnvelope::id(void) const
-	??1NmMessageEnvelopePrivate@@UAE@XZ @ 163 NONAME ; NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate(void)
-	?setAddress@NmAddress@@QAEXABVQString@@@Z @ 164 NONAME ; void NmAddress::setAddress(class QString const &)
-	?isForwarded@NmMessageEnvelope@@QBE_NXZ @ 165 NONAME ; bool NmMessageEnvelope::isForwarded(void) const
-	??1NmAddress@@UAE@XZ @ 166 NONAME ; NmAddress::~NmAddress(void)
-	?setReplied@NmMessageEnvelope@@QAEX_N@Z @ 167 NONAME ; void NmMessageEnvelope::setReplied(bool)
-	??0NmMessageEnvelope@@QAE@ABVNmId@@@Z @ 168 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class NmId const &)
-	??0NmFolder@@QAE@ABV0@@Z @ 169 NONAME ; NmFolder::NmFolder(class NmFolder const &)
-	??0NmMessage@@QAE@XZ @ 170 NONAME ; NmMessage::NmMessage(void)
-	??0NmMessagePart@@QAE@ABVNmId@@0@Z @ 171 NONAME ; NmMessagePart::NmMessagePart(class NmId const &, class NmId const &)
-	??0NmMessageEnvelope@@QAE@XZ @ 172 NONAME ; NmMessageEnvelope::NmMessageEnvelope(void)
-	?setFetchedSize@NmMessagePart@@QAEXI@Z @ 173 NONAME ; void NmMessagePart::setFetchedSize(unsigned int)
-	??4NmMessagePart@@AAEAAV0@ABV0@@Z @ 174 NONAME ; class NmMessagePart & NmMessagePart::operator=(class NmMessagePart const &)
+	??8NmAddress@@QBE_NABV0@@Z @ 130 NONAME ; bool NmAddress::operator==(class NmAddress const &) const
+	??9NmMessageEnvelope@@QBE_NABV0@@Z @ 131 NONAME ; bool NmMessageEnvelope::operator!=(class NmMessageEnvelope const &) const
+	?mailboxId@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 132 NONAME ; class NmId NmMessageEnvelope::mailboxId(void) const
+	?setToRecipients@NmMessageEnvelope@@QAEXV?$QList@VNmAddress@@@@@Z @ 133 NONAME ; void NmMessageEnvelope::setToRecipients(class QList<class NmAddress>)
+	??1NmMessage@@UAE@XZ @ 134 NONAME ; NmMessage::~NmMessage(void)
+	?size@NmMessagePart@@QBEIXZ @ 135 NONAME ; unsigned int NmMessagePart::size(void) const
+	??1NmAddressPrivate@@UAE@XZ @ 136 NONAME ; NmAddressPrivate::~NmAddressPrivate(void)
+	?sentTime@NmMessageEnvelope@@QBE?AVQDateTime@@XZ @ 137 NONAME ; class QDateTime NmMessageEnvelope::sentTime(void) const
+	?childParts@NmMessagePart@@QBEAAV?$QList@PAVNmMessagePart@@@@XZ @ 138 NONAME ; class QList<class NmMessagePart *> & NmMessagePart::childParts(void) const
+	??0NmMailbox@@QAE@ABV0@@Z @ 139 NONAME ; NmMailbox::NmMailbox(class NmMailbox const &)
+	??4NmMessageEnvelope@@QAEAAV0@ABV0@@Z @ 140 NONAME ; class NmMessageEnvelope & NmMessageEnvelope::operator=(class NmMessageEnvelope const &)
+	??1NmMessagePartPrivate@@UAE@XZ @ 141 NONAME ; NmMessagePartPrivate::~NmMessagePartPrivate(void)
+	??8NmMailbox@@QBE_NABV0@@Z @ 142 NONAME ; bool NmMailbox::operator==(class NmMailbox const &) const
+	??0NmMailbox@@QAE@V?$QExplicitlySharedDataPointer@VNmMailboxPrivate@@@@@Z @ 143 NONAME ; NmMailbox::NmMailbox(class QExplicitlySharedDataPointer<class NmMailboxPrivate>)
+	?unseenCount@NmFolder@@QBEIXZ @ 144 NONAME ; unsigned int NmFolder::unseenCount(void) const
+	?setEnvelope@NmMessage@@QAEXABVNmMessageEnvelope@@@Z @ 145 NONAME ; void NmMessage::setEnvelope(class NmMessageEnvelope const &)
+	?setId@NmMessagePart@@UAEXABVNmId@@@Z @ 146 NONAME ; void NmMessagePart::setId(class NmId const &)
+	?ccRecipients@NmMessageEnvelope@@QBEAAV?$QList@VNmAddress@@@@XZ @ 147 NONAME ; class QList<class NmAddress> & NmMessageEnvelope::ccRecipients(void) const
+	?sender@NmMessageEnvelope@@QBE?AVNmAddress@@XZ @ 148 NONAME ; class NmAddress NmMessageEnvelope::sender(void) const
+	?setContentDisposition@NmMessagePart@@QAEXABVQString@@@Z @ 149 NONAME ; void NmMessagePart::setContentDisposition(class QString const &)
+	?removeAllChildParts@NmMessagePart@@QAEXXZ @ 150 NONAME ; void NmMessagePart::removeAllChildParts(void)
+	?contentDisposition@NmMessagePart@@QBE?AVQString@@XZ @ 151 NONAME ; class QString NmMessagePart::contentDisposition(void) const
+	??_ENmMailboxPrivate@@UAE@I@Z @ 152 NONAME ; NmMailboxPrivate::~NmMailboxPrivate(unsigned int)
+	?parentId@NmFolder@@QBE?AVNmId@@XZ @ 153 NONAME ; class NmId NmFolder::parentId(void) const
+	?folderId@NmFolder@@QBE?AVNmId@@XZ @ 154 NONAME ; class NmId NmFolder::folderId(void) const
+	??1NmMessagePart@@UAE@XZ @ 155 NONAME ; NmMessagePart::~NmMessagePart(void)
+	??0NmMessagePart@@IAE@ABV0@@Z @ 156 NONAME ; NmMessagePart::NmMessagePart(class NmMessagePart const &)
+	??0NmAddress@@QAE@V?$QExplicitlySharedDataPointer@VNmAddressPrivate@@@@@Z @ 157 NONAME ; NmAddress::NmAddress(class QExplicitlySharedDataPointer<class NmAddressPrivate>)
+	?addChildPart@NmMessagePart@@QAEXPAV1@@Z @ 158 NONAME ; void NmMessagePart::addChildPart(class NmMessagePart *)
+	?isFlagSet@NmMessageEnvelopePrivate@@QBE_NW4NmMessageFlag@@@Z @ 159 NONAME ; bool NmMessageEnvelopePrivate::isFlagSet(enum NmMessageFlag) const
+	??_ENmMessageEnvelope@@UAE@I@Z @ 160 NONAME ; NmMessageEnvelope::~NmMessageEnvelope(unsigned int)
+	??_ENmMessage@@UAE@I@Z @ 161 NONAME ; NmMessage::~NmMessage(unsigned int)
+	?parentId@NmMessagePart@@QBE?AVNmId@@XZ @ 162 NONAME ; class NmId NmMessagePart::parentId(void) const
+	?contentType@NmMessagePart@@QBE?AVQString@@XZ @ 163 NONAME ; class QString NmMessagePart::contentType(void) const
+	?id@NmMessageEnvelope@@QBE?AVNmId@@XZ @ 164 NONAME ; class NmId NmMessageEnvelope::id(void) const
+	??1NmMessageEnvelopePrivate@@UAE@XZ @ 165 NONAME ; NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate(void)
+	?setAddress@NmAddress@@QAEXABVQString@@@Z @ 166 NONAME ; void NmAddress::setAddress(class QString const &)
+	?isForwarded@NmMessageEnvelope@@QBE_NXZ @ 167 NONAME ; bool NmMessageEnvelope::isForwarded(void) const
+	??1NmAddress@@UAE@XZ @ 168 NONAME ; NmAddress::~NmAddress(void)
+	?setReplied@NmMessageEnvelope@@QAEX_N@Z @ 169 NONAME ; void NmMessageEnvelope::setReplied(bool)
+	?attachmentList@NmMessage@@QBEXAAV?$QList@PAVNmMessagePart@@@@@Z @ 170 NONAME ; void NmMessage::attachmentList(class QList<class NmMessagePart *> &) const
+	??0NmMessageEnvelope@@QAE@ABVNmId@@@Z @ 171 NONAME ; NmMessageEnvelope::NmMessageEnvelope(class NmId const &)
+	??0NmFolder@@QAE@ABV0@@Z @ 172 NONAME ; NmFolder::NmFolder(class NmFolder const &)
+	??0NmMessage@@QAE@XZ @ 173 NONAME ; NmMessage::NmMessage(void)
+	??0NmMessagePart@@QAE@ABVNmId@@0@Z @ 174 NONAME ; NmMessagePart::NmMessagePart(class NmId const &, class NmId const &)
+	?setFetchedSize@NmMessagePart@@QAEXI@Z @ 175 NONAME ; void NmMessagePart::setFetchedSize(unsigned int)
+	??0NmMessageEnvelope@@QAE@XZ @ 176 NONAME ; NmMessageEnvelope::NmMessageEnvelope(void)
+	??4NmMessagePart@@AAEAAV0@ABV0@@Z @ 177 NONAME ; class NmMessagePart & NmMessagePart::operator=(class NmMessagePart const &)
 
--- a/emailservices/nmailbase/eabi/nmailbaseu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/eabi/nmailbaseu.def	Mon May 03 12:23:15 2010 +0300
@@ -141,34 +141,34 @@
 	_ZN9NmMailboxaSERKS_ @ 140 NONAME
 	_ZN9NmMessage11setEnvelopeERK17NmMessageEnvelope @ 141 NONAME
 	_ZN9NmMessage12htmlBodyPartEv @ 142 NONAME
-	_ZN9NmMessage14attachmentListER5QListIP13NmMessagePartE @ 143 NONAME
-	_ZN9NmMessage17plainTextBodyPartEv @ 144 NONAME
-	_ZN9NmMessage5setIdERK4NmId @ 145 NONAME
-	_ZN9NmMessage8envelopeEv @ 146 NONAME
-	_ZN9NmMessageC1ERK13NmMessagePart @ 147 NONAME
-	_ZN9NmMessageC1ERK17NmMessageEnvelope @ 148 NONAME
-	_ZN9NmMessageC1ERK4NmId @ 149 NONAME
-	_ZN9NmMessageC1ERK4NmIdS2_ @ 150 NONAME
-	_ZN9NmMessageC1ERK4NmIdS2_S2_ @ 151 NONAME
-	_ZN9NmMessageC1ERKS_ @ 152 NONAME
-	_ZN9NmMessageC1Ev @ 153 NONAME
-	_ZN9NmMessageC2ERK13NmMessagePart @ 154 NONAME
-	_ZN9NmMessageC2ERK17NmMessageEnvelope @ 155 NONAME
-	_ZN9NmMessageC2ERK4NmId @ 156 NONAME
-	_ZN9NmMessageC2ERK4NmIdS2_ @ 157 NONAME
-	_ZN9NmMessageC2ERK4NmIdS2_S2_ @ 158 NONAME
-	_ZN9NmMessageC2ERKS_ @ 159 NONAME
-	_ZN9NmMessageC2Ev @ 160 NONAME
-	_ZN9NmMessageD0Ev @ 161 NONAME
-	_ZN9NmMessageD1Ev @ 162 NONAME
-	_ZN9NmMessageD2Ev @ 163 NONAME
-	_ZN9NmMessageaSERKS_ @ 164 NONAME
-	_ZNK13NmMessagePart10childPartsEv @ 165 NONAME
-	_ZNK13NmMessagePart11contentTypeEv @ 166 NONAME
-	_ZNK13NmMessagePart11fetchedSizeEv @ 167 NONAME
-	_ZNK13NmMessagePart11textContentEv @ 168 NONAME
-	_ZNK13NmMessagePart13binaryContentEv @ 169 NONAME
-	_ZNK13NmMessagePart14attachmentNameEv @ 170 NONAME
+	_ZN9NmMessage17plainTextBodyPartEv @ 143 NONAME
+	_ZN9NmMessage5setIdERK4NmId @ 144 NONAME
+	_ZN9NmMessage8envelopeEv @ 145 NONAME
+	_ZN9NmMessageC1ERK13NmMessagePart @ 146 NONAME
+	_ZN9NmMessageC1ERK17NmMessageEnvelope @ 147 NONAME
+	_ZN9NmMessageC1ERK4NmId @ 148 NONAME
+	_ZN9NmMessageC1ERK4NmIdS2_ @ 149 NONAME
+	_ZN9NmMessageC1ERK4NmIdS2_S2_ @ 150 NONAME
+	_ZN9NmMessageC1ERKS_ @ 151 NONAME
+	_ZN9NmMessageC1Ev @ 152 NONAME
+	_ZN9NmMessageC2ERK13NmMessagePart @ 153 NONAME
+	_ZN9NmMessageC2ERK17NmMessageEnvelope @ 154 NONAME
+	_ZN9NmMessageC2ERK4NmId @ 155 NONAME
+	_ZN9NmMessageC2ERK4NmIdS2_ @ 156 NONAME
+	_ZN9NmMessageC2ERK4NmIdS2_S2_ @ 157 NONAME
+	_ZN9NmMessageC2ERKS_ @ 158 NONAME
+	_ZN9NmMessageC2Ev @ 159 NONAME
+	_ZN9NmMessageD0Ev @ 160 NONAME
+	_ZN9NmMessageD1Ev @ 161 NONAME
+	_ZN9NmMessageD2Ev @ 162 NONAME
+	_ZN9NmMessageaSERKS_ @ 163 NONAME
+	_ZNK13NmMessagePart10childPartsEv @ 164 NONAME
+	_ZNK13NmMessagePart11contentTypeEv @ 165 NONAME
+	_ZNK13NmMessagePart11fetchedSizeEv @ 166 NONAME
+	_ZNK13NmMessagePart11textContentEv @ 167 NONAME
+	_ZNK13NmMessagePart13binaryContentEv @ 168 NONAME
+	_ZNK13NmMessagePart14attachmentNameEv @ 169 NONAME
+	_ZNK13NmMessagePart15findContentPartERK7QString @ 170 NONAME
 	_ZNK13NmMessagePart17appendAttachmentsER5QListIPS_E @ 171 NONAME
 	_ZNK13NmMessagePart18contentDescriptionEv @ 172 NONAME
 	_ZNK13NmMessagePart18contentDispositionEv @ 173 NONAME
@@ -215,28 +215,31 @@
 	_ZNK9NmMailbox2idEv @ 214 NONAME
 	_ZNK9NmMailbox4nameEv @ 215 NONAME
 	_ZNK9NmMailboxeqERKS_ @ 216 NONAME
-	_ZNK9NmMessage2idEv @ 217 NONAME
-	_ZNK9NmMessage8envelopeEv @ 218 NONAME
-	_ZTI13NmMessagePart @ 219 NONAME
-	_ZTI15NmFolderPrivate @ 220 NONAME
-	_ZTI16NmAddressPrivate @ 221 NONAME
-	_ZTI16NmMailboxPrivate @ 222 NONAME
-	_ZTI17NmMessageEnvelope @ 223 NONAME
-	_ZTI20NmMessagePartPrivate @ 224 NONAME
-	_ZTI24NmMessageEnvelopePrivate @ 225 NONAME
-	_ZTI8NmFolder @ 226 NONAME
-	_ZTI9NmAddress @ 227 NONAME
-	_ZTI9NmMailbox @ 228 NONAME
-	_ZTI9NmMessage @ 229 NONAME
-	_ZTV13NmMessagePart @ 230 NONAME
-	_ZTV15NmFolderPrivate @ 231 NONAME
-	_ZTV16NmAddressPrivate @ 232 NONAME
-	_ZTV16NmMailboxPrivate @ 233 NONAME
-	_ZTV17NmMessageEnvelope @ 234 NONAME
-	_ZTV20NmMessagePartPrivate @ 235 NONAME
-	_ZTV24NmMessageEnvelopePrivate @ 236 NONAME
-	_ZTV8NmFolder @ 237 NONAME
-	_ZTV9NmAddress @ 238 NONAME
-	_ZTV9NmMailbox @ 239 NONAME
-	_ZTV9NmMessage @ 240 NONAME
+	_ZNK9NmMessage12htmlBodyPartEv @ 217 NONAME
+	_ZNK9NmMessage14attachmentListER5QListIP13NmMessagePartE @ 218 NONAME
+	_ZNK9NmMessage17plainTextBodyPartEv @ 219 NONAME
+	_ZNK9NmMessage2idEv @ 220 NONAME
+	_ZNK9NmMessage8envelopeEv @ 221 NONAME
+	_ZTI13NmMessagePart @ 222 NONAME
+	_ZTI15NmFolderPrivate @ 223 NONAME
+	_ZTI16NmAddressPrivate @ 224 NONAME
+	_ZTI16NmMailboxPrivate @ 225 NONAME
+	_ZTI17NmMessageEnvelope @ 226 NONAME
+	_ZTI20NmMessagePartPrivate @ 227 NONAME
+	_ZTI24NmMessageEnvelopePrivate @ 228 NONAME
+	_ZTI8NmFolder @ 229 NONAME
+	_ZTI9NmAddress @ 230 NONAME
+	_ZTI9NmMailbox @ 231 NONAME
+	_ZTI9NmMessage @ 232 NONAME
+	_ZTV13NmMessagePart @ 233 NONAME
+	_ZTV15NmFolderPrivate @ 234 NONAME
+	_ZTV16NmAddressPrivate @ 235 NONAME
+	_ZTV16NmMailboxPrivate @ 236 NONAME
+	_ZTV17NmMessageEnvelope @ 237 NONAME
+	_ZTV20NmMessagePartPrivate @ 238 NONAME
+	_ZTV24NmMessageEnvelopePrivate @ 239 NONAME
+	_ZTV8NmFolder @ 240 NONAME
+	_ZTV9NmAddress @ 241 NONAME
+	_ZTV9NmMailbox @ 242 NONAME
+	_ZTV9NmMessage @ 243 NONAME
 
--- a/emailservices/nmailbase/inc/nmcommon.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/inc/nmcommon.h	Mon May 03 12:23:15 2010 +0300
@@ -151,6 +151,8 @@
 const int NmNotFoundError = -1;
 const int NmGeneralError = -2;
 const int NmCancelError = -3;
+const int NmAuthenticationError = -200;
+const int NmServerConnectionError = -201;
 
 /*!
 	Predefined constants for ContentTypes and parameters
@@ -295,7 +297,7 @@
 #include <QDateTime>
 
 static void printToFileAndConsole(QString str, QString filename)
-{
+{    
     // Print to file
     QFile debugFile(filename);
     QIODevice::OpenMode openMode = QIODevice::Text;
@@ -314,10 +316,10 @@
         debugFile.close();
     }
     // Print to console
-    qDebug() << d << str << endl;
- }
+    qDebug() << d << str << endl; 
+}
 
-//
+// 
 // NMLOG is used to log QStrings to text file. For example:
 //
 // NMLOG("nmailui: application opened successfully");
@@ -326,7 +328,12 @@
 // int error = -12;
 // NMLOG(QString("### cannot open file: err=%1  file='%2' ###").arg(error).arg(fileName));
 //
+#ifdef _DEBUG
 #define NMLOG(a) { printToFileAndConsole(a, "c:/logs/nmail.log"); }
+#else
+#define NMLOG(a)
+#endif
+
 
 /*! email list sort criteria definition */
 class NmMailSortCriteria
@@ -336,6 +343,20 @@
     NmMailSortOrder mOrder;
 };
 
+/*!
+    \class NmOperationCompletionEvent
+    \brief Generic wrapper for information related to asynchronous operations
+ */
+class NmOperationCompletionEvent
+{
+public:
+    int  mOperationType;
+    int  mCompletionCode;
+    NmId mMailboxId;
+    NmId mFolderId;
+    NmId mMessageId;
+};
+Q_DECLARE_METATYPE(NmOperationCompletionEvent)
 
 #endif /* NMCOMMON_H_ */
 
--- a/emailservices/nmailbase/inc/nmmessage.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/inc/nmmessage.h	Mon May 03 12:23:15 2010 +0300
@@ -41,7 +41,9 @@
     virtual NmId id() const;
     virtual void setId(const NmId &id);
 
+    const NmMessagePart *plainTextBodyPart() const;
     NmMessagePart *plainTextBodyPart();
+    const NmMessagePart *htmlBodyPart() const;
     NmMessagePart *htmlBodyPart();
 
     void setEnvelope(const NmMessageEnvelope &envelope);
@@ -50,7 +52,7 @@
 
     CFSMailMessage* getCFSMailMessage();
 
-    void attachmentList(QList<NmMessagePart*> &parts);
+    void attachmentList(QList<NmMessagePart*> &parts) const;
     
 private:
     NmMessage &operator=(const NmMessage &message);
--- a/emailservices/nmailbase/inc/nmmessagepart.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/inc/nmmessagepart.h	Mon May 03 12:23:15 2010 +0300
@@ -111,6 +111,7 @@
 
 protected:
 
+	const NmMessagePart *findContentPart(const QString &contentType) const;
 	NmMessagePart *findContentPart(const QString &contentType);
 	// this cannot be private, must be usable from derived class
     NmMessagePart(const NmMessagePart &part);
--- a/emailservices/nmailbase/nmailbase.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/nmailbase.pro	Mon May 03 12:23:15 2010 +0300
@@ -40,6 +40,8 @@
     src/nmfolder.cpp \
     src/nmaddress.cpp
 
+LIBS += -leuser
+
 symbian*: { 
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = ALL \
--- a/emailservices/nmailbase/src/nmmessage.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/src/nmmessage.cpp	Mon May 03 12:23:15 2010 +0300
@@ -123,6 +123,18 @@
 /*!
     Returns pointer to plain text body, if plain text body is not found
     returns null pointer. Ownership of message part object is not transferred.
+    Do not delete returned pointer. Non-modifying version.
+ */
+const NmMessagePart *NmMessage::plainTextBodyPart() const
+{
+    const NmMessagePart *ret = NULL;
+    ret = findContentPart(NmContentTypeTextPlain);
+    return ret;
+}
+
+/*!
+    Returns pointer to plain text body, if plain text body is not found
+    returns null pointer. Ownership of message part object is not transferred.
     Do not delete returned pointer.
  */
 NmMessagePart *NmMessage::plainTextBodyPart()
@@ -135,6 +147,18 @@
 /*!
     Returns pointer to html body, if html body is not found
     returns null pointer. Ownership of message part object is not transferred.
+    Do not delete returned pointer. Non-modifying version.
+ */
+const NmMessagePart *NmMessage::htmlBodyPart() const
+{
+    const NmMessagePart *ret = NULL;
+    ret = findContentPart(NmContentTypeTextHtml);
+    return ret;
+}
+
+/*!
+    Returns pointer to html body, if html body is not found
+    returns null pointer. Ownership of message part object is not transferred.
     Do not delete returned pointer.
  */
 NmMessagePart *NmMessage::htmlBodyPart()
@@ -181,7 +205,7 @@
 * 
 * @param flat list of attachments to be filled
 */        
-void NmMessage::attachmentList(QList<NmMessagePart*> &parts)
+void NmMessage::attachmentList(QList<NmMessagePart*> &parts) const
 {
     parts.clear();
     appendAttachments(parts);
@@ -193,23 +217,23 @@
     }
     else {
         // find plain text body part from the list
-        NmMessagePart* txtPart = findContentPart(NmContentTypeTextPlain);
+        const NmMessagePart* txtPart = findContentPart(NmContentTypeTextPlain);
         if ( txtPart ) {
             // remove plain text body part from attachment list
-            for ( int ii = parts.count() - 1; ii >= 0; --ii ) {
-                if ( parts.at(ii)->id() == txtPart->id() ) {
-                    parts.removeAt(ii);
+            for ( int i = parts.count() - 1; i >= 0; --i ) {
+                if ( parts.at(i)->id() == txtPart->id() ) {
+                    parts.removeAt(i);
                     break;
                 }
             }
         }
         // find  html body part from the list
-        NmMessagePart* htmlPart = findContentPart(NmContentTypeTextHtml);
+        const NmMessagePart* htmlPart = findContentPart(NmContentTypeTextHtml);
         if ( htmlPart ) {
             // remove html body part from attachment list
-            for ( int ii = parts.count() - 1; ii >= 0; --ii ) {
-                if ( parts.at(ii)->id() == htmlPart->id() ) {
-                    parts.removeAt(ii);
+            for ( int i = parts.count() - 1; i >= 0; --i ) {
+                if ( parts.at(i)->id() == htmlPart->id() ) {
+                    parts.removeAt(i);
                     break;
                 }
             }
--- a/emailservices/nmailbase/src/nmmessagepart.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmailbase/src/nmmessagepart.cpp	Mon May 03 12:23:15 2010 +0300
@@ -462,6 +462,23 @@
 }
 
 /*!
+    Recursive child part finder for NmMessage class (non-modifying).
+ */
+const NmMessagePart *NmMessagePart::findContentPart(const QString &contentType) const
+{
+    const NmMessagePart *ret = NULL;
+
+    if (!d->mContentType.isEmpty() && d->mContentType.startsWith(contentType)) {
+        ret = this;
+    } else {
+        for (int i = 0; !ret && i < d->mChildParts.count(); i++) {
+            ret = d->mChildParts[i]->findContentPart(contentType);
+        }
+    }
+    return ret;
+}
+
+/*!
     Recursive child part finder for NmMessage class
  */
 NmMessagePart *NmMessagePart::findContentPart(const QString &contentType)
--- a/emailservices/nmclientapi/bwins/nmailclientapiu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/bwins/nmailclientapiu.def	Mon May 03 12:23:15 2010 +0300
@@ -1,96 +1,96 @@
 EXPORTS
-	?setId@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 1 NONAME ; void EmailClientApi::NmMessageEnvelope::setId(unsigned long long)
-	?qt_metacall@NmEnvelopeListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int EmailClientApi::NmEnvelopeListing::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?metaObject@NmEnvelopeListing@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * EmailClientApi::NmEnvelopeListing::metaObject(void) const
-	?trUtf8@NmMailboxListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 4 NONAME ; class QString EmailClientApi::NmMailboxListing::trUtf8(char const *, char const *)
-	?trUtf8@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 5 NONAME ; class QString EmailClientApi::NmFolderListing::trUtf8(char const *, char const *)
-	?uninitialise@NmEmailService@EmailClientApi@@QAEXXZ @ 6 NONAME ; void EmailClientApi::NmEmailService::uninitialise(void)
-	?trUtf8@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 7 NONAME ; class QString EmailClientApi::NmEnvelopeListing::trUtf8(char const *, char const *, int)
-	?plainTextBody@NmMessageEnvelope@EmailClientApi@@QAEXAAVNmMessageBody@2@@Z @ 8 NONAME ; void EmailClientApi::NmMessageEnvelope::plainTextBody(class EmailClientApi::NmMessageBody &)
-	?foldersListed@NmFolderListing@EmailClientApi@@IAEXH@Z @ 9 NONAME ; void EmailClientApi::NmFolderListing::foldersListed(int)
-	?start@NmFolderListing@EmailClientApi@@UAE_NXZ @ 10 NONAME ; bool EmailClientApi::NmFolderListing::start(void)
-	?qt_metacall@NmEmailService@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11 NONAME ; int EmailClientApi::NmEmailService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0NmFolder@EmailClientApi@@QAE@ABV01@@Z @ 12 NONAME ; EmailClientApi::NmFolder::NmFolder(class EmailClientApi::NmFolder const &)
-	?isReplied@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 13 NONAME ; bool EmailClientApi::NmMessageEnvelope::isReplied(void) const
-	?setName@NmMailbox@EmailClientApi@@QAEXABVQString@@@Z @ 14 NONAME ; void EmailClientApi::NmMailbox::setName(class QString const &)
-	?isRead@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 15 NONAME ; bool EmailClientApi::NmMessageEnvelope::isRead(void) const
-	?qt_metacall@NmEventNotifier@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 16 NONAME ; int EmailClientApi::NmEventNotifier::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?cancel@NmEnvelopeListing@EmailClientApi@@UAEXXZ @ 17 NONAME ; void EmailClientApi::NmEnvelopeListing::cancel(void)
-	?setHasAttachments@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 18 NONAME ; void EmailClientApi::NmMessageEnvelope::setHasAttachments(bool)
-	??0NmMailboxListing@EmailClientApi@@QAE@PAVQObject@@@Z @ 19 NONAME ; EmailClientApi::NmMailboxListing::NmMailboxListing(class QObject *)
-	?sendEventsFromBuffer@NmEventNotifier@EmailClientApi@@QAEXXZ @ 20 NONAME ; void EmailClientApi::NmEventNotifier::sendEventsFromBuffer(void)
-	?mailboxEvent@NmEventNotifier@EmailClientApi@@IAEXW4MailboxEvent@@V?$QList@_K@@@Z @ 21 NONAME ; void EmailClientApi::NmEventNotifier::mailboxEvent(enum MailboxEvent, class QList<unsigned long long>)
-	?hasAttachments@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 22 NONAME ; bool EmailClientApi::NmMessageEnvelope::hasAttachments(void) const
-	??_ENmEventNotifier@EmailClientApi@@UAE@I@Z @ 23 NONAME ; EmailClientApi::NmEventNotifier::~NmEventNotifier(unsigned int)
-	??0NmMessageEnvelope@EmailClientApi@@QAE@XZ @ 24 NONAME ; EmailClientApi::NmMessageEnvelope::NmMessageEnvelope(void)
-	?setSender@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 25 NONAME ; void EmailClientApi::NmMessageEnvelope::setSender(class QString const &)
-	?qt_metacast@NmMessageTask@@UAEPAXPBD@Z @ 26 NONAME ; void * NmMessageTask::qt_metacast(char const *)
-	?qt_metacast@NmEmailService@EmailClientApi@@UAEPAXPBD@Z @ 27 NONAME ; void * EmailClientApi::NmEmailService::qt_metacast(char const *)
-	??0NmMessageEnvelope@EmailClientApi@@QAE@ABV01@@Z @ 28 NONAME ; EmailClientApi::NmMessageEnvelope::NmMessageEnvelope(class EmailClientApi::NmMessageEnvelope const &)
-	?totalSize@NmMessageBody@EmailClientApi@@QBE_KXZ @ 29 NONAME ; unsigned long long EmailClientApi::NmMessageBody::totalSize(void) const
-	?qt_metacast@NmFolderListing@EmailClientApi@@UAEPAXPBD@Z @ 30 NONAME ; void * EmailClientApi::NmFolderListing::qt_metacast(char const *)
-	?trUtf8@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString EmailClientApi::NmEventNotifier::trUtf8(char const *, char const *)
-	?initialized@NmEmailService@EmailClientApi@@IAEX_N@Z @ 32 NONAME ; void EmailClientApi::NmEmailService::initialized(bool)
-	??0NmMessageTask@@IAE@PAVQObject@@@Z @ 33 NONAME ; NmMessageTask::NmMessageTask(class QObject *)
-	??0NmFolderListing@EmailClientApi@@QAE@PAVQObject@@AB_K@Z @ 34 NONAME ; EmailClientApi::NmFolderListing::NmFolderListing(class QObject *, unsigned long long const &)
-	?cancel@NmMailboxListing@EmailClientApi@@UAEXXZ @ 35 NONAME ; void EmailClientApi::NmMailboxListing::cancel(void)
-	?staticMetaObject@NmFolderListing@EmailClientApi@@2UQMetaObject@@B @ 36 NONAME ; struct QMetaObject const EmailClientApi::NmFolderListing::staticMetaObject
-	??1NmEmailService@EmailClientApi@@UAE@XZ @ 37 NONAME ; EmailClientApi::NmEmailService::~NmEmailService(void)
-	?setDisplayName@NmEmailAddress@EmailClientApi@@QAEXABVQString@@@Z @ 38 NONAME ; void EmailClientApi::NmEmailAddress::setDisplayName(class QString const &)
-	??4NmMessageEnvelope@EmailClientApi@@QAEAAV01@ABV01@@Z @ 39 NONAME ; class EmailClientApi::NmMessageEnvelope & EmailClientApi::NmMessageEnvelope::operator=(class EmailClientApi::NmMessageEnvelope const &)
-	?getStaticMetaObject@NmMailboxListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 40 NONAME ; struct QMetaObject const & EmailClientApi::NmMailboxListing::getStaticMetaObject(void)
-	?setIsForwarded@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 41 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsForwarded(bool)
-	??_ENmEnvelopeListing@EmailClientApi@@UAE@I@Z @ 42 NONAME ; EmailClientApi::NmEnvelopeListing::~NmEnvelopeListing(unsigned int)
-	?tr@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString EmailClientApi::NmEnvelopeListing::tr(char const *, char const *)
-	??_ENmMailboxListing@EmailClientApi@@UAE@I@Z @ 44 NONAME ; EmailClientApi::NmMailboxListing::~NmMailboxListing(unsigned int)
-	?isForwarded@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 45 NONAME ; bool EmailClientApi::NmMessageEnvelope::isForwarded(void) const
-	?envelope@NmEmailService@EmailClientApi@@QAE_N_K00AAVNmMessageEnvelope@2@@Z @ 46 NONAME ; bool EmailClientApi::NmEmailService::envelope(unsigned long long, unsigned long long, unsigned long long, class EmailClientApi::NmMessageEnvelope &)
-	?getStaticMetaObject@NmEnvelopeListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const & EmailClientApi::NmEnvelopeListing::getStaticMetaObject(void)
-	?staticMetaObject@NmMessageTask@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const NmMessageTask::staticMetaObject
-	?trUtf8@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0@Z @ 49 NONAME ; class QString EmailClientApi::NmEmailService::trUtf8(char const *, char const *)
-	??0NmEnvelopeListing@EmailClientApi@@QAE@PAVQObject@@_K1@Z @ 50 NONAME ; EmailClientApi::NmEnvelopeListing::NmEnvelopeListing(class QObject *, unsigned long long, unsigned long long)
-	?setAddress@NmEmailAddress@EmailClientApi@@QAEXABVQString@@@Z @ 51 NONAME ; void EmailClientApi::NmEmailAddress::setAddress(class QString const &)
-	?parentFolderId@NmFolder@EmailClientApi@@QBE_KXZ @ 52 NONAME ; unsigned long long EmailClientApi::NmFolder::parentFolderId(void) const
-	?setParentFolderId@NmFolder@EmailClientApi@@QAEX_K@Z @ 53 NONAME ; void EmailClientApi::NmFolder::setParentFolderId(unsigned long long)
-	?id@NmFolder@EmailClientApi@@QBE_KXZ @ 54 NONAME ; unsigned long long EmailClientApi::NmFolder::id(void) const
-	?qt_metacall@NmMessageTask@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 55 NONAME ; int NmMessageTask::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 56 NONAME ; class QString EmailClientApi::NmEnvelopeListing::trUtf8(char const *, char const *)
-	?mailboxes@NmMailboxListing@EmailClientApi@@QAE_NAAV?$QList@VNmMailbox@EmailClientApi@@@@@Z @ 57 NONAME ; bool EmailClientApi::NmMailboxListing::mailboxes(class QList<class EmailClientApi::NmMailbox> &)
-	?setFetchedSize@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 58 NONAME ; void EmailClientApi::NmMessageEnvelope::setFetchedSize(unsigned long long)
-	?name@NmMailbox@EmailClientApi@@QBE?AVQString@@XZ @ 59 NONAME ; class QString EmailClientApi::NmMailbox::name(void) const
-	?getStaticMetaObject@NmMessageTask@@SAABUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const & NmMessageTask::getStaticMetaObject(void)
-	?initialise@NmEmailService@EmailClientApi@@QAEXXZ @ 61 NONAME ; void EmailClientApi::NmEmailService::initialise(void)
-	?id@NmMessageEnvelope@EmailClientApi@@QBE_KXZ @ 62 NONAME ; unsigned long long EmailClientApi::NmMessageEnvelope::id(void) const
-	?setIsReplied@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 63 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsReplied(bool)
-	??_ENmMessageEnvelope@EmailClientApi@@UAE@I@Z @ 64 NONAME ; EmailClientApi::NmMessageEnvelope::~NmMessageEnvelope(unsigned int)
-	?isRunning@NmEnvelopeListing@EmailClientApi@@QBE_NXZ @ 65 NONAME ; bool EmailClientApi::NmEnvelopeListing::isRunning(void) const
-	?tr@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 66 NONAME ; class QString EmailClientApi::NmFolderListing::tr(char const *, char const *)
-	?sender@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 67 NONAME ; class QString EmailClientApi::NmMessageEnvelope::sender(void) const
-	?canceled@NmMessageTask@@IAEXXZ @ 68 NONAME ; void NmMessageTask::canceled(void)
-	?isRunning@NmMailboxListing@EmailClientApi@@QBE_NXZ @ 69 NONAME ; bool EmailClientApi::NmMailboxListing::isRunning(void) const
-	?address@NmEmailAddress@EmailClientApi@@QBE?AVQString@@XZ @ 70 NONAME ; class QString EmailClientApi::NmEmailAddress::address(void) const
-	?staticMetaObject@NmMailboxListing@EmailClientApi@@2UQMetaObject@@B @ 71 NONAME ; struct QMetaObject const EmailClientApi::NmMailboxListing::staticMetaObject
-	?tr@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString EmailClientApi::NmFolderListing::tr(char const *, char const *, int)
-	??1NmMessageEnvelope@EmailClientApi@@UAE@XZ @ 73 NONAME ; EmailClientApi::NmMessageEnvelope::~NmMessageEnvelope(void)
-	?setContent@NmMessageBody@EmailClientApi@@QAEXABVQString@@@Z @ 74 NONAME ; void EmailClientApi::NmMessageBody::setContent(class QString const &)
-	?getStaticMetaObject@NmEmailService@EmailClientApi@@SAABUQMetaObject@@XZ @ 75 NONAME ; struct QMetaObject const & EmailClientApi::NmEmailService::getStaticMetaObject(void)
-	?tr@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 76 NONAME ; class QString EmailClientApi::NmEnvelopeListing::tr(char const *, char const *, int)
-	?folderType@NmFolder@EmailClientApi@@QBE?AW4EmailFolderType@2@XZ @ 77 NONAME ; enum EmailClientApi::EmailFolderType EmailClientApi::NmFolder::folderType(void) const
-	?tr@NmMailboxListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 78 NONAME ; class QString EmailClientApi::NmMailboxListing::tr(char const *, char const *, int)
-	??4NmMailbox@EmailClientApi@@QAEAAV01@ABV01@@Z @ 79 NONAME ; class EmailClientApi::NmMailbox & EmailClientApi::NmMailbox::operator=(class EmailClientApi::NmMailbox const &)
-	??_ENmMessageBody@EmailClientApi@@UAE@I@Z @ 80 NONAME ; EmailClientApi::NmMessageBody::~NmMessageBody(unsigned int)
-	?tr@NmMessageTask@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString NmMessageTask::tr(char const *, char const *)
-	?setId@NmMailbox@EmailClientApi@@QAEX_K@Z @ 82 NONAME ; void EmailClientApi::NmMailbox::setId(unsigned long long)
-	?qt_metacast@NmEnvelopeListing@EmailClientApi@@UAEPAXPBD@Z @ 83 NONAME ; void * EmailClientApi::NmEnvelopeListing::qt_metacast(char const *)
-	?trUtf8@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 84 NONAME ; class QString EmailClientApi::NmEmailService::trUtf8(char const *, char const *, int)
-	?tr@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString EmailClientApi::NmEventNotifier::tr(char const *, char const *, int)
-	??1NmMailboxListing@EmailClientApi@@UAE@XZ @ 86 NONAME ; EmailClientApi::NmMailboxListing::~NmMailboxListing(void)
-	??1NmEmailAddress@EmailClientApi@@UAE@XZ @ 87 NONAME ; EmailClientApi::NmEmailAddress::~NmEmailAddress(void)
-	??_ENmFolderListing@EmailClientApi@@UAE@I@Z @ 88 NONAME ; EmailClientApi::NmFolderListing::~NmFolderListing(unsigned int)
-	??1NmMailbox@EmailClientApi@@UAE@XZ @ 89 NONAME ; EmailClientApi::NmMailbox::~NmMailbox(void)
-	?failed@NmMessageTask@@IAEXH@Z @ 90 NONAME ; void NmMessageTask::failed(int)
-	?setGetCcRecipients@NmMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 91 NONAME ; void EmailClientApi::NmMessageEnvelope::setGetCcRecipients(class QList<class EmailClientApi::NmEmailAddress> const &)
-	?folders@NmFolderListing@EmailClientApi@@QAE_NAAV?$QList@VNmFolder@EmailClientApi@@@@@Z @ 92 NONAME ; bool EmailClientApi::NmFolderListing::folders(class QList<class EmailClientApi::NmFolder> &)
+	?getFolders@NmFolderListing@EmailClientApi@@QAE_NAAV?$QList@VNmFolder@EmailClientApi@@@@@Z @ 1 NONAME ; bool EmailClientApi::NmFolderListing::getFolders(class QList<class EmailClientApi::NmFolder> &)
+	?setId@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 2 NONAME ; void EmailClientApi::NmMessageEnvelope::setId(unsigned long long)
+	?qt_metacall@NmEnvelopeListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3 NONAME ; int EmailClientApi::NmEnvelopeListing::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?metaObject@NmEnvelopeListing@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const * EmailClientApi::NmEnvelopeListing::metaObject(void) const
+	?setCcRecipients@NmMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 5 NONAME ; void EmailClientApi::NmMessageEnvelope::setCcRecipients(class QList<class EmailClientApi::NmEmailAddress> const &)
+	?trUtf8@NmMailboxListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString EmailClientApi::NmMailboxListing::trUtf8(char const *, char const *)
+	?trUtf8@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString EmailClientApi::NmFolderListing::trUtf8(char const *, char const *)
+	?uninitialise@NmEmailService@EmailClientApi@@QAEXXZ @ 8 NONAME ; void EmailClientApi::NmEmailService::uninitialise(void)
+	?trUtf8@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString EmailClientApi::NmEnvelopeListing::trUtf8(char const *, char const *, int)
+	?foldersListed@NmFolderListing@EmailClientApi@@IAEXH@Z @ 10 NONAME ; void EmailClientApi::NmFolderListing::foldersListed(int)
+	?start@NmFolderListing@EmailClientApi@@UAE_NXZ @ 11 NONAME ; bool EmailClientApi::NmFolderListing::start(void)
+	?qt_metacall@NmEmailService@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int EmailClientApi::NmEmailService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0NmFolder@EmailClientApi@@QAE@ABV01@@Z @ 13 NONAME ; EmailClientApi::NmFolder::NmFolder(class EmailClientApi::NmFolder const &)
+	?isReplied@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 14 NONAME ; bool EmailClientApi::NmMessageEnvelope::isReplied(void) const
+	?setName@NmMailbox@EmailClientApi@@QAEXABVQString@@@Z @ 15 NONAME ; void EmailClientApi::NmMailbox::setName(class QString const &)
+	?isRead@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 16 NONAME ; bool EmailClientApi::NmMessageEnvelope::isRead(void) const
+	?qt_metacall@NmEventNotifier@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 17 NONAME ; int EmailClientApi::NmEventNotifier::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?cancel@NmEnvelopeListing@EmailClientApi@@UAEXXZ @ 18 NONAME ; void EmailClientApi::NmEnvelopeListing::cancel(void)
+	?setHasAttachments@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 19 NONAME ; void EmailClientApi::NmMessageEnvelope::setHasAttachments(bool)
+	??0NmMailboxListing@EmailClientApi@@QAE@PAVQObject@@@Z @ 20 NONAME ; EmailClientApi::NmMailboxListing::NmMailboxListing(class QObject *)
+	?sendEventsFromBuffer@NmEventNotifier@EmailClientApi@@QAEXXZ @ 21 NONAME ; void EmailClientApi::NmEventNotifier::sendEventsFromBuffer(void)
+	?mailboxEvent@NmEventNotifier@EmailClientApi@@IAEXW4MailboxEvent@@V?$QList@_K@@@Z @ 22 NONAME ; void EmailClientApi::NmEventNotifier::mailboxEvent(enum MailboxEvent, class QList<unsigned long long>)
+	?hasAttachments@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 23 NONAME ; bool EmailClientApi::NmMessageEnvelope::hasAttachments(void) const
+	??_ENmEventNotifier@EmailClientApi@@UAE@I@Z @ 24 NONAME ; EmailClientApi::NmEventNotifier::~NmEventNotifier(unsigned int)
+	??0NmMessageEnvelope@EmailClientApi@@QAE@XZ @ 25 NONAME ; EmailClientApi::NmMessageEnvelope::NmMessageEnvelope(void)
+	?setSender@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 26 NONAME ; void EmailClientApi::NmMessageEnvelope::setSender(class QString const &)
+	?qt_metacast@NmMessageTask@@UAEPAXPBD@Z @ 27 NONAME ; void * NmMessageTask::qt_metacast(char const *)
+	?qt_metacast@NmEmailService@EmailClientApi@@UAEPAXPBD@Z @ 28 NONAME ; void * EmailClientApi::NmEmailService::qt_metacast(char const *)
+	??0NmMessageEnvelope@EmailClientApi@@QAE@ABV01@@Z @ 29 NONAME ; EmailClientApi::NmMessageEnvelope::NmMessageEnvelope(class EmailClientApi::NmMessageEnvelope const &)
+	?totalSize@NmMessageBody@EmailClientApi@@QBE_KXZ @ 30 NONAME ; unsigned long long EmailClientApi::NmMessageBody::totalSize(void) const
+	?qt_metacast@NmFolderListing@EmailClientApi@@UAEPAXPBD@Z @ 31 NONAME ; void * EmailClientApi::NmFolderListing::qt_metacast(char const *)
+	?trUtf8@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0@Z @ 32 NONAME ; class QString EmailClientApi::NmEventNotifier::trUtf8(char const *, char const *)
+	?initialized@NmEmailService@EmailClientApi@@IAEX_N@Z @ 33 NONAME ; void EmailClientApi::NmEmailService::initialized(bool)
+	??0NmMessageTask@@IAE@PAVQObject@@@Z @ 34 NONAME ; NmMessageTask::NmMessageTask(class QObject *)
+	??0NmFolderListing@EmailClientApi@@QAE@PAVQObject@@AB_K@Z @ 35 NONAME ; EmailClientApi::NmFolderListing::NmFolderListing(class QObject *, unsigned long long const &)
+	?setToRecipients@NmMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 36 NONAME ; void EmailClientApi::NmMessageEnvelope::setToRecipients(class QList<class EmailClientApi::NmEmailAddress> const &)
+	?cancel@NmMailboxListing@EmailClientApi@@UAEXXZ @ 37 NONAME ; void EmailClientApi::NmMailboxListing::cancel(void)
+	?staticMetaObject@NmFolderListing@EmailClientApi@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const EmailClientApi::NmFolderListing::staticMetaObject
+	??1NmEmailService@EmailClientApi@@UAE@XZ @ 39 NONAME ; EmailClientApi::NmEmailService::~NmEmailService(void)
+	?setDisplayName@NmEmailAddress@EmailClientApi@@QAEXABVQString@@@Z @ 40 NONAME ; void EmailClientApi::NmEmailAddress::setDisplayName(class QString const &)
+	??4NmMessageEnvelope@EmailClientApi@@QAEAAV01@ABV01@@Z @ 41 NONAME ; class EmailClientApi::NmMessageEnvelope & EmailClientApi::NmMessageEnvelope::operator=(class EmailClientApi::NmMessageEnvelope const &)
+	?getStaticMetaObject@NmMailboxListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const & EmailClientApi::NmMailboxListing::getStaticMetaObject(void)
+	?setIsForwarded@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 43 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsForwarded(bool)
+	?getEnvelope@NmEmailService@EmailClientApi@@QAE_N_K00AAVNmMessageEnvelope@2@@Z @ 44 NONAME ; bool EmailClientApi::NmEmailService::getEnvelope(unsigned long long, unsigned long long, unsigned long long, class EmailClientApi::NmMessageEnvelope &)
+	??_ENmEnvelopeListing@EmailClientApi@@UAE@I@Z @ 45 NONAME ; EmailClientApi::NmEnvelopeListing::~NmEnvelopeListing(unsigned int)
+	?tr@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString EmailClientApi::NmEnvelopeListing::tr(char const *, char const *)
+	??_ENmMailboxListing@EmailClientApi@@UAE@I@Z @ 47 NONAME ; EmailClientApi::NmMailboxListing::~NmMailboxListing(unsigned int)
+	?isForwarded@NmMessageEnvelope@EmailClientApi@@QBE_NXZ @ 48 NONAME ; bool EmailClientApi::NmMessageEnvelope::isForwarded(void) const
+	?getStaticMetaObject@NmEnvelopeListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 49 NONAME ; struct QMetaObject const & EmailClientApi::NmEnvelopeListing::getStaticMetaObject(void)
+	?staticMetaObject@NmMessageTask@@2UQMetaObject@@B @ 50 NONAME ; struct QMetaObject const NmMessageTask::staticMetaObject
+	?trUtf8@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0@Z @ 51 NONAME ; class QString EmailClientApi::NmEmailService::trUtf8(char const *, char const *)
+	??0NmEnvelopeListing@EmailClientApi@@QAE@PAVQObject@@_K1@Z @ 52 NONAME ; EmailClientApi::NmEnvelopeListing::NmEnvelopeListing(class QObject *, unsigned long long, unsigned long long)
+	?setAddress@NmEmailAddress@EmailClientApi@@QAEXABVQString@@@Z @ 53 NONAME ; void EmailClientApi::NmEmailAddress::setAddress(class QString const &)
+	?parentFolderId@NmFolder@EmailClientApi@@QBE_KXZ @ 54 NONAME ; unsigned long long EmailClientApi::NmFolder::parentFolderId(void) const
+	?getMailboxes@NmMailboxListing@EmailClientApi@@QAE_NAAV?$QList@VNmMailbox@EmailClientApi@@@@@Z @ 55 NONAME ; bool EmailClientApi::NmMailboxListing::getMailboxes(class QList<class EmailClientApi::NmMailbox> &)
+	?setParentFolderId@NmFolder@EmailClientApi@@QAEX_K@Z @ 56 NONAME ; void EmailClientApi::NmFolder::setParentFolderId(unsigned long long)
+	?id@NmFolder@EmailClientApi@@QBE_KXZ @ 57 NONAME ; unsigned long long EmailClientApi::NmFolder::id(void) const
+	?qt_metacall@NmMessageTask@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 58 NONAME ; int NmMessageTask::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 59 NONAME ; class QString EmailClientApi::NmEnvelopeListing::trUtf8(char const *, char const *)
+	?setFetchedSize@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 60 NONAME ; void EmailClientApi::NmMessageEnvelope::setFetchedSize(unsigned long long)
+	?name@NmMailbox@EmailClientApi@@QBE?AVQString@@XZ @ 61 NONAME ; class QString EmailClientApi::NmMailbox::name(void) const
+	?getStaticMetaObject@NmMessageTask@@SAABUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const & NmMessageTask::getStaticMetaObject(void)
+	?initialise@NmEmailService@EmailClientApi@@QAEXXZ @ 63 NONAME ; void EmailClientApi::NmEmailService::initialise(void)
+	?id@NmMessageEnvelope@EmailClientApi@@QBE_KXZ @ 64 NONAME ; unsigned long long EmailClientApi::NmMessageEnvelope::id(void) const
+	?setIsReplied@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 65 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsReplied(bool)
+	??_ENmMessageEnvelope@EmailClientApi@@UAE@I@Z @ 66 NONAME ; EmailClientApi::NmMessageEnvelope::~NmMessageEnvelope(unsigned int)
+	?isRunning@NmEnvelopeListing@EmailClientApi@@QBE_NXZ @ 67 NONAME ; bool EmailClientApi::NmEnvelopeListing::isRunning(void) const
+	?tr@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0@Z @ 68 NONAME ; class QString EmailClientApi::NmFolderListing::tr(char const *, char const *)
+	?sender@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 69 NONAME ; class QString EmailClientApi::NmMessageEnvelope::sender(void) const
+	?canceled@NmMessageTask@@IAEXXZ @ 70 NONAME ; void NmMessageTask::canceled(void)
+	?isRunning@NmMailboxListing@EmailClientApi@@QBE_NXZ @ 71 NONAME ; bool EmailClientApi::NmMailboxListing::isRunning(void) const
+	?address@NmEmailAddress@EmailClientApi@@QBE?AVQString@@XZ @ 72 NONAME ; class QString EmailClientApi::NmEmailAddress::address(void) const
+	?staticMetaObject@NmMailboxListing@EmailClientApi@@2UQMetaObject@@B @ 73 NONAME ; struct QMetaObject const EmailClientApi::NmMailboxListing::staticMetaObject
+	?tr@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 74 NONAME ; class QString EmailClientApi::NmFolderListing::tr(char const *, char const *, int)
+	??1NmMessageEnvelope@EmailClientApi@@UAE@XZ @ 75 NONAME ; EmailClientApi::NmMessageEnvelope::~NmMessageEnvelope(void)
+	?setContent@NmMessageBody@EmailClientApi@@QAEXABVQString@@@Z @ 76 NONAME ; void EmailClientApi::NmMessageBody::setContent(class QString const &)
+	?getStaticMetaObject@NmEmailService@EmailClientApi@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & EmailClientApi::NmEmailService::getStaticMetaObject(void)
+	?tr@NmEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 78 NONAME ; class QString EmailClientApi::NmEnvelopeListing::tr(char const *, char const *, int)
+	?folderType@NmFolder@EmailClientApi@@QBE?AW4EmailFolderType@2@XZ @ 79 NONAME ; enum EmailClientApi::EmailFolderType EmailClientApi::NmFolder::folderType(void) const
+	?tr@NmMailboxListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 80 NONAME ; class QString EmailClientApi::NmMailboxListing::tr(char const *, char const *, int)
+	??4NmMailbox@EmailClientApi@@QAEAAV01@ABV01@@Z @ 81 NONAME ; class EmailClientApi::NmMailbox & EmailClientApi::NmMailbox::operator=(class EmailClientApi::NmMailbox const &)
+	??_ENmMessageBody@EmailClientApi@@UAE@I@Z @ 82 NONAME ; EmailClientApi::NmMessageBody::~NmMessageBody(unsigned int)
+	?tr@NmMessageTask@@SA?AVQString@@PBD0@Z @ 83 NONAME ; class QString NmMessageTask::tr(char const *, char const *)
+	?setId@NmMailbox@EmailClientApi@@QAEX_K@Z @ 84 NONAME ; void EmailClientApi::NmMailbox::setId(unsigned long long)
+	?qt_metacast@NmEnvelopeListing@EmailClientApi@@UAEPAXPBD@Z @ 85 NONAME ; void * EmailClientApi::NmEnvelopeListing::qt_metacast(char const *)
+	?trUtf8@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString EmailClientApi::NmEmailService::trUtf8(char const *, char const *, int)
+	?tr@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 87 NONAME ; class QString EmailClientApi::NmEventNotifier::tr(char const *, char const *, int)
+	??1NmMailboxListing@EmailClientApi@@UAE@XZ @ 88 NONAME ; EmailClientApi::NmMailboxListing::~NmMailboxListing(void)
+	??1NmEmailAddress@EmailClientApi@@UAE@XZ @ 89 NONAME ; EmailClientApi::NmEmailAddress::~NmEmailAddress(void)
+	??_ENmFolderListing@EmailClientApi@@UAE@I@Z @ 90 NONAME ; EmailClientApi::NmFolderListing::~NmFolderListing(unsigned int)
+	??1NmMailbox@EmailClientApi@@UAE@XZ @ 91 NONAME ; EmailClientApi::NmMailbox::~NmMailbox(void)
+	?failed@NmMessageTask@@IAEXH@Z @ 92 NONAME ; void NmMessageTask::failed(int)
 	?messageEvent@NmEventNotifier@EmailClientApi@@IAEXW4MessageEvent@@_K1V?$QList@_K@@@Z @ 93 NONAME ; void EmailClientApi::NmEventNotifier::messageEvent(enum MessageEvent, unsigned long long, unsigned long long, class QList<unsigned long long>)
 	?tr@NmMessageTask@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString NmMessageTask::tr(char const *, char const *, int)
 	??0NmEmailAddress@EmailClientApi@@QAE@ABV01@@Z @ 95 NONAME ; EmailClientApi::NmEmailAddress::NmEmailAddress(class EmailClientApi::NmEmailAddress const &)
@@ -106,8 +106,8 @@
 	?metaObject@NmFolderListing@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * EmailClientApi::NmFolderListing::metaObject(void) const
 	?tr@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0@Z @ 106 NONAME ; class QString EmailClientApi::NmEmailService::tr(char const *, char const *)
 	?staticMetaObject@NmEnvelopeListing@EmailClientApi@@2UQMetaObject@@B @ 107 NONAME ; struct QMetaObject const EmailClientApi::NmEnvelopeListing::staticMetaObject
-	?envelopes@NmEnvelopeListing@EmailClientApi@@QAE_NAAV?$QList@VNmMessageEnvelope@EmailClientApi@@@@@Z @ 108 NONAME ; bool EmailClientApi::NmEnvelopeListing::envelopes(class QList<class EmailClientApi::NmMessageEnvelope> &)
-	?displayName@NmEmailAddress@EmailClientApi@@QBE?AVQString@@XZ @ 109 NONAME ; class QString EmailClientApi::NmEmailAddress::displayName(void) const
+	?displayName@NmEmailAddress@EmailClientApi@@QBE?AVQString@@XZ @ 108 NONAME ; class QString EmailClientApi::NmEmailAddress::displayName(void) const
+	?getMailbox@NmEmailService@EmailClientApi@@QAE_N_KAAVNmMailbox@2@@Z @ 109 NONAME ; bool EmailClientApi::NmEmailService::getMailbox(unsigned long long, class EmailClientApi::NmMailbox &)
 	?id@NmMailbox@EmailClientApi@@QBE_KXZ @ 110 NONAME ; unsigned long long EmailClientApi::NmMailbox::id(void) const
 	?plainText@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 111 NONAME ; class QString EmailClientApi::NmMessageEnvelope::plainText(void) const
 	??_ENmFolder@EmailClientApi@@QAE@I@Z @ 112 NONAME ; EmailClientApi::NmFolder::~NmFolder(unsigned int)
@@ -123,59 +123,59 @@
 	??_ENmMessageTask@@UAE@I@Z @ 122 NONAME ; NmMessageTask::~NmMessageTask(unsigned int)
 	?metaObject@NmEventNotifier@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 123 NONAME ; struct QMetaObject const * EmailClientApi::NmEventNotifier::metaObject(void) const
 	??0NmEmailService@EmailClientApi@@QAE@PAVQObject@@@Z @ 124 NONAME ; EmailClientApi::NmEmailService::NmEmailService(class QObject *)
-	?childFolderIds@NmFolder@EmailClientApi@@QAEXAAV?$QList@_K@@@Z @ 125 NONAME ; void EmailClientApi::NmFolder::childFolderIds(class QList<unsigned long long> &)
-	??1NmMessageBody@EmailClientApi@@UAE@XZ @ 126 NONAME ; EmailClientApi::NmMessageBody::~NmMessageBody(void)
-	?subject@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 127 NONAME ; class QString EmailClientApi::NmMessageEnvelope::subject(void) const
-	??0NmMessageBody@EmailClientApi@@QAE@XZ @ 128 NONAME ; EmailClientApi::NmMessageBody::NmMessageBody(void)
-	?getStaticMetaObject@NmFolderListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 129 NONAME ; struct QMetaObject const & EmailClientApi::NmFolderListing::getStaticMetaObject(void)
-	?setContentType@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 130 NONAME ; void EmailClientApi::NmMessageEnvelope::setContentType(class QString const &)
-	?setFolderType@NmFolder@EmailClientApi@@QAEXW4EmailFolderType@2@@Z @ 131 NONAME ; void EmailClientApi::NmFolder::setFolderType(enum EmailClientApi::EmailFolderType)
+	??1NmMessageBody@EmailClientApi@@UAE@XZ @ 125 NONAME ; EmailClientApi::NmMessageBody::~NmMessageBody(void)
+	?subject@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 126 NONAME ; class QString EmailClientApi::NmMessageEnvelope::subject(void) const
+	??0NmMessageBody@EmailClientApi@@QAE@XZ @ 127 NONAME ; EmailClientApi::NmMessageBody::NmMessageBody(void)
+	?getStaticMetaObject@NmFolderListing@EmailClientApi@@SAABUQMetaObject@@XZ @ 128 NONAME ; struct QMetaObject const & EmailClientApi::NmFolderListing::getStaticMetaObject(void)
+	?setContentType@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 129 NONAME ; void EmailClientApi::NmMessageEnvelope::setContentType(class QString const &)
+	?setFolderType@NmFolder@EmailClientApi@@QAEXW4EmailFolderType@2@@Z @ 130 NONAME ; void EmailClientApi::NmFolder::setFolderType(enum EmailClientApi::EmailFolderType)
+	?getEnvelopes@NmEnvelopeListing@EmailClientApi@@QAE_NAAV?$QList@VNmMessageEnvelope@EmailClientApi@@@@@Z @ 131 NONAME ; bool EmailClientApi::NmEnvelopeListing::getEnvelopes(class QList<class EmailClientApi::NmMessageEnvelope> &)
 	?name@NmFolder@EmailClientApi@@QBE?AVQString@@XZ @ 132 NONAME ; class QString EmailClientApi::NmFolder::name(void) const
 	?staticMetaObject@NmEventNotifier@EmailClientApi@@2UQMetaObject@@B @ 133 NONAME ; struct QMetaObject const EmailClientApi::NmEventNotifier::staticMetaObject
-	?setGetToRecipients@NmMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 134 NONAME ; void EmailClientApi::NmMessageEnvelope::setGetToRecipients(class QList<class EmailClientApi::NmEmailAddress> const &)
-	?setIsRead@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 135 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsRead(bool)
-	?envelopesListed@NmEnvelopeListing@EmailClientApi@@IAEXH@Z @ 136 NONAME ; void EmailClientApi::NmEnvelopeListing::envelopesListed(int)
-	?start@NmEventNotifier@EmailClientApi@@UAE_NXZ @ 137 NONAME ; bool EmailClientApi::NmEventNotifier::start(void)
-	??1NmFolder@EmailClientApi@@QAE@XZ @ 138 NONAME ; EmailClientApi::NmFolder::~NmFolder(void)
-	?trUtf8@NmMessageTask@@SA?AVQString@@PBD0H@Z @ 139 NONAME ; class QString NmMessageTask::trUtf8(char const *, char const *, int)
+	?setIsRead@NmMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 134 NONAME ; void EmailClientApi::NmMessageEnvelope::setIsRead(bool)
+	?envelopesListed@NmEnvelopeListing@EmailClientApi@@IAEXH@Z @ 135 NONAME ; void EmailClientApi::NmEnvelopeListing::envelopesListed(int)
+	?start@NmEventNotifier@EmailClientApi@@UAE_NXZ @ 136 NONAME ; bool EmailClientApi::NmEventNotifier::start(void)
+	??1NmFolder@EmailClientApi@@QAE@XZ @ 137 NONAME ; EmailClientApi::NmFolder::~NmFolder(void)
+	?trUtf8@NmMessageTask@@SA?AVQString@@PBD0H@Z @ 138 NONAME ; class QString NmMessageTask::trUtf8(char const *, char const *, int)
+	?getCcRecipients@NmMessageEnvelope@EmailClientApi@@QAEXAAV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 139 NONAME ; void EmailClientApi::NmMessageEnvelope::getCcRecipients(class QList<class EmailClientApi::NmEmailAddress> &)
 	?content@NmMessageBody@EmailClientApi@@QBE?AVQString@@XZ @ 140 NONAME ; class QString EmailClientApi::NmMessageBody::content(void) const
 	?metaObject@NmEmailService@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 141 NONAME ; struct QMetaObject const * EmailClientApi::NmEmailService::metaObject(void) const
 	?start@NmEnvelopeListing@EmailClientApi@@UAE_NXZ @ 142 NONAME ; bool EmailClientApi::NmEnvelopeListing::start(void)
-	?ccRecipients@NmMessageEnvelope@EmailClientApi@@QAEXAAV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 143 NONAME ; void EmailClientApi::NmMessageEnvelope::ccRecipients(class QList<class EmailClientApi::NmEmailAddress> &)
-	?qt_metacast@NmMailboxListing@EmailClientApi@@UAEPAXPBD@Z @ 144 NONAME ; void * EmailClientApi::NmMailboxListing::qt_metacast(char const *)
-	?setFetchedSize@NmMessageBody@EmailClientApi@@QAEX_K@Z @ 145 NONAME ; void EmailClientApi::NmMessageBody::setFetchedSize(unsigned long long)
-	??0NmMailbox@EmailClientApi@@QAE@XZ @ 146 NONAME ; EmailClientApi::NmMailbox::NmMailbox(void)
-	?trUtf8@NmMessageTask@@SA?AVQString@@PBD0@Z @ 147 NONAME ; class QString NmMessageTask::trUtf8(char const *, char const *)
-	?setSubject@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 148 NONAME ; void EmailClientApi::NmMessageEnvelope::setSubject(class QString const &)
-	?metaObject@NmMailboxListing@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 149 NONAME ; struct QMetaObject const * EmailClientApi::NmMailboxListing::metaObject(void) const
-	?getStaticMetaObject@NmEventNotifier@EmailClientApi@@SAABUQMetaObject@@XZ @ 150 NONAME ; struct QMetaObject const & EmailClientApi::NmEventNotifier::getStaticMetaObject(void)
-	?setAddress@NmMailbox@EmailClientApi@@QAEXABVQString@@@Z @ 151 NONAME ; void EmailClientApi::NmMailbox::setAddress(class QString const &)
-	?staticMetaObject@NmEmailService@EmailClientApi@@2UQMetaObject@@B @ 152 NONAME ; struct QMetaObject const EmailClientApi::NmEmailService::staticMetaObject
-	?setTotalSize@NmMessageBody@EmailClientApi@@QAEX_K@Z @ 153 NONAME ; void EmailClientApi::NmMessageBody::setTotalSize(unsigned long long)
-	?trUtf8@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString EmailClientApi::NmFolderListing::trUtf8(char const *, char const *, int)
-	?tr@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 155 NONAME ; class QString EmailClientApi::NmEmailService::tr(char const *, char const *, int)
-	?isRunning@NmEmailService@EmailClientApi@@QBE_NXZ @ 156 NONAME ; bool EmailClientApi::NmEmailService::isRunning(void) const
-	?qt_metacall@NmMailboxListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 157 NONAME ; int EmailClientApi::NmMailboxListing::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?cancel@NmFolderListing@EmailClientApi@@UAEXXZ @ 158 NONAME ; void EmailClientApi::NmFolderListing::cancel(void)
-	??1NmFolderListing@EmailClientApi@@UAE@XZ @ 159 NONAME ; EmailClientApi::NmFolderListing::~NmFolderListing(void)
-	??1NmMessageTask@@UAE@XZ @ 160 NONAME ; NmMessageTask::~NmMessageTask(void)
-	??0NmMailbox@EmailClientApi@@QAE@ABV01@@Z @ 161 NONAME ; EmailClientApi::NmMailbox::NmMailbox(class EmailClientApi::NmMailbox const &)
-	??0NmEmailAddress@EmailClientApi@@QAE@XZ @ 162 NONAME ; EmailClientApi::NmEmailAddress::NmEmailAddress(void)
-	?setId@NmFolder@EmailClientApi@@QAEX_K@Z @ 163 NONAME ; void EmailClientApi::NmFolder::setId(unsigned long long)
+	?qt_metacast@NmMailboxListing@EmailClientApi@@UAEPAXPBD@Z @ 143 NONAME ; void * EmailClientApi::NmMailboxListing::qt_metacast(char const *)
+	?setFetchedSize@NmMessageBody@EmailClientApi@@QAEX_K@Z @ 144 NONAME ; void EmailClientApi::NmMessageBody::setFetchedSize(unsigned long long)
+	??0NmMailbox@EmailClientApi@@QAE@XZ @ 145 NONAME ; EmailClientApi::NmMailbox::NmMailbox(void)
+	?trUtf8@NmMessageTask@@SA?AVQString@@PBD0@Z @ 146 NONAME ; class QString NmMessageTask::trUtf8(char const *, char const *)
+	?setSubject@NmMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 147 NONAME ; void EmailClientApi::NmMessageEnvelope::setSubject(class QString const &)
+	?metaObject@NmMailboxListing@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 148 NONAME ; struct QMetaObject const * EmailClientApi::NmMailboxListing::metaObject(void) const
+	?getStaticMetaObject@NmEventNotifier@EmailClientApi@@SAABUQMetaObject@@XZ @ 149 NONAME ; struct QMetaObject const & EmailClientApi::NmEventNotifier::getStaticMetaObject(void)
+	?setAddress@NmMailbox@EmailClientApi@@QAEXABVQString@@@Z @ 150 NONAME ; void EmailClientApi::NmMailbox::setAddress(class QString const &)
+	?staticMetaObject@NmEmailService@EmailClientApi@@2UQMetaObject@@B @ 151 NONAME ; struct QMetaObject const EmailClientApi::NmEmailService::staticMetaObject
+	?setTotalSize@NmMessageBody@EmailClientApi@@QAEX_K@Z @ 152 NONAME ; void EmailClientApi::NmMessageBody::setTotalSize(unsigned long long)
+	?trUtf8@NmFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 153 NONAME ; class QString EmailClientApi::NmFolderListing::trUtf8(char const *, char const *, int)
+	?tr@NmEmailService@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString EmailClientApi::NmEmailService::tr(char const *, char const *, int)
+	?isRunning@NmEmailService@EmailClientApi@@QBE_NXZ @ 155 NONAME ; bool EmailClientApi::NmEmailService::isRunning(void) const
+	?qt_metacall@NmMailboxListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 156 NONAME ; int EmailClientApi::NmMailboxListing::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?cancel@NmFolderListing@EmailClientApi@@UAEXXZ @ 157 NONAME ; void EmailClientApi::NmFolderListing::cancel(void)
+	??1NmFolderListing@EmailClientApi@@UAE@XZ @ 158 NONAME ; EmailClientApi::NmFolderListing::~NmFolderListing(void)
+	??1NmMessageTask@@UAE@XZ @ 159 NONAME ; NmMessageTask::~NmMessageTask(void)
+	??0NmMailbox@EmailClientApi@@QAE@ABV01@@Z @ 160 NONAME ; EmailClientApi::NmMailbox::NmMailbox(class EmailClientApi::NmMailbox const &)
+	??0NmEmailAddress@EmailClientApi@@QAE@XZ @ 161 NONAME ; EmailClientApi::NmEmailAddress::NmEmailAddress(void)
+	?setId@NmFolder@EmailClientApi@@QAEX_K@Z @ 162 NONAME ; void EmailClientApi::NmFolder::setId(unsigned long long)
+	?getPlainTextBody@NmMessageEnvelope@EmailClientApi@@QAEXAAVNmMessageBody@2@@Z @ 163 NONAME ; void EmailClientApi::NmMessageEnvelope::getPlainTextBody(class EmailClientApi::NmMessageBody &)
 	?qt_metacall@NmFolderListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 164 NONAME ; int EmailClientApi::NmFolderListing::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?contentType@NmMessageEnvelope@EmailClientApi@@QBE?AVQString@@XZ @ 165 NONAME ; class QString EmailClientApi::NmMessageEnvelope::contentType(void) const
 	??_ENmEmailService@EmailClientApi@@UAE@I@Z @ 166 NONAME ; EmailClientApi::NmEmailService::~NmEmailService(unsigned int)
 	??_ENmMailbox@EmailClientApi@@UAE@I@Z @ 167 NONAME ; EmailClientApi::NmMailbox::~NmMailbox(unsigned int)
 	?parentFolder@NmMessageEnvelope@EmailClientApi@@QBE_KXZ @ 168 NONAME ; unsigned long long EmailClientApi::NmMessageEnvelope::parentFolder(void) const
-	?setTotalSize@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 169 NONAME ; void EmailClientApi::NmMessageEnvelope::setTotalSize(unsigned long long)
-	?metaObject@NmMessageTask@@UBEPBUQMetaObject@@XZ @ 170 NONAME ; struct QMetaObject const * NmMessageTask::metaObject(void) const
-	?trUtf8@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 171 NONAME ; class QString EmailClientApi::NmEventNotifier::trUtf8(char const *, char const *, int)
-	?isRunning@NmFolderListing@EmailClientApi@@QBE_NXZ @ 172 NONAME ; bool EmailClientApi::NmFolderListing::isRunning(void) const
-	?fetchedSize@NmMessageEnvelope@EmailClientApi@@QBE_KXZ @ 173 NONAME ; unsigned long long EmailClientApi::NmMessageEnvelope::fetchedSize(void) const
-	?toRecipients@NmMessageEnvelope@EmailClientApi@@QAEXAAV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 174 NONAME ; void EmailClientApi::NmMessageEnvelope::toRecipients(class QList<class EmailClientApi::NmEmailAddress> &)
+	?getToRecipients@NmMessageEnvelope@EmailClientApi@@QAEXAAV?$QList@VNmEmailAddress@EmailClientApi@@@@@Z @ 169 NONAME ; void EmailClientApi::NmMessageEnvelope::getToRecipients(class QList<class EmailClientApi::NmEmailAddress> &)
+	?setTotalSize@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 170 NONAME ; void EmailClientApi::NmMessageEnvelope::setTotalSize(unsigned long long)
+	?metaObject@NmMessageTask@@UBEPBUQMetaObject@@XZ @ 171 NONAME ; struct QMetaObject const * NmMessageTask::metaObject(void) const
+	?trUtf8@NmEventNotifier@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 172 NONAME ; class QString EmailClientApi::NmEventNotifier::trUtf8(char const *, char const *, int)
+	?isRunning@NmFolderListing@EmailClientApi@@QBE_NXZ @ 173 NONAME ; bool EmailClientApi::NmFolderListing::isRunning(void) const
+	?fetchedSize@NmMessageEnvelope@EmailClientApi@@QBE_KXZ @ 174 NONAME ; unsigned long long EmailClientApi::NmMessageEnvelope::fetchedSize(void) const
 	??0NmEventNotifier@EmailClientApi@@QAE@PAVQObject@@@Z @ 175 NONAME ; EmailClientApi::NmEventNotifier::NmEventNotifier(class QObject *)
 	?setParentFolder@NmMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 176 NONAME ; void EmailClientApi::NmMessageEnvelope::setParentFolder(unsigned long long)
 	??1NmEnvelopeListing@EmailClientApi@@UAE@XZ @ 177 NONAME ; EmailClientApi::NmEnvelopeListing::~NmEnvelopeListing(void)
-	?setChildFolderIds@NmFolder@EmailClientApi@@QAEXAAV?$QList@_K@@@Z @ 178 NONAME ; void EmailClientApi::NmFolder::setChildFolderIds(class QList<unsigned long long> &)
-	?mailbox@NmEmailService@EmailClientApi@@QAE_N_KAAVNmMailbox@2@@Z @ 179 NONAME ; bool EmailClientApi::NmEmailService::mailbox(unsigned long long, class EmailClientApi::NmMailbox &)
+	?getChildFolderIds@NmFolder@EmailClientApi@@QAEXAAV?$QList@_K@@@Z @ 178 NONAME ; void EmailClientApi::NmFolder::getChildFolderIds(class QList<unsigned long long> &)
+	?setChildFolderIds@NmFolder@EmailClientApi@@QAEXAAV?$QList@_K@@@Z @ 179 NONAME ; void EmailClientApi::NmFolder::setChildFolderIds(class QList<unsigned long long> &)
 
--- a/emailservices/nmclientapi/eabi/nmailclientapiu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/eabi/nmailclientapiu.def	Mon May 03 12:23:15 2010 +0300
@@ -24,15 +24,15 @@
 	_ZN14EmailClientApi14NmEmailAddressD0Ev @ 23 NONAME
 	_ZN14EmailClientApi14NmEmailAddressD1Ev @ 24 NONAME
 	_ZN14EmailClientApi14NmEmailAddressD2Ev @ 25 NONAME
-	_ZN14EmailClientApi14NmEmailService10initialiseEv @ 26 NONAME
-	_ZN14EmailClientApi14NmEmailService11initializedEb @ 27 NONAME
-	_ZN14EmailClientApi14NmEmailService11qt_metacallEN11QMetaObject4CallEiPPv @ 28 NONAME
-	_ZN14EmailClientApi14NmEmailService11qt_metacastEPKc @ 29 NONAME
-	_ZN14EmailClientApi14NmEmailService12uninitialiseEv @ 30 NONAME
-	_ZN14EmailClientApi14NmEmailService16staticMetaObjectE @ 31 NONAME DATA 16
-	_ZN14EmailClientApi14NmEmailService19getStaticMetaObjectEv @ 32 NONAME
-	_ZN14EmailClientApi14NmEmailService7mailboxEyRNS_9NmMailboxE @ 33 NONAME
-	_ZN14EmailClientApi14NmEmailService8envelopeEyyyRNS_17NmMessageEnvelopeE @ 34 NONAME
+	_ZN14EmailClientApi14NmEmailService10getMailboxEyRNS_9NmMailboxE @ 26 NONAME
+	_ZN14EmailClientApi14NmEmailService10initialiseEv @ 27 NONAME
+	_ZN14EmailClientApi14NmEmailService11getEnvelopeEyyyRNS_17NmMessageEnvelopeE @ 28 NONAME
+	_ZN14EmailClientApi14NmEmailService11initializedEb @ 29 NONAME
+	_ZN14EmailClientApi14NmEmailService11qt_metacallEN11QMetaObject4CallEiPPv @ 30 NONAME
+	_ZN14EmailClientApi14NmEmailService11qt_metacastEPKc @ 31 NONAME
+	_ZN14EmailClientApi14NmEmailService12uninitialiseEv @ 32 NONAME
+	_ZN14EmailClientApi14NmEmailService16staticMetaObjectE @ 33 NONAME DATA 16
+	_ZN14EmailClientApi14NmEmailService19getStaticMetaObjectEv @ 34 NONAME
 	_ZN14EmailClientApi14NmEmailServiceC1EP7QObject @ 35 NONAME
 	_ZN14EmailClientApi14NmEmailServiceC2EP7QObject @ 36 NONAME
 	_ZN14EmailClientApi14NmEmailServiceD0Ev @ 37 NONAME
@@ -52,14 +52,14 @@
 	_ZN14EmailClientApi15NmEventNotifierD0Ev @ 51 NONAME
 	_ZN14EmailClientApi15NmEventNotifierD1Ev @ 52 NONAME
 	_ZN14EmailClientApi15NmEventNotifierD2Ev @ 53 NONAME
-	_ZN14EmailClientApi15NmFolderListing11qt_metacallEN11QMetaObject4CallEiPPv @ 54 NONAME
-	_ZN14EmailClientApi15NmFolderListing11qt_metacastEPKc @ 55 NONAME
-	_ZN14EmailClientApi15NmFolderListing13foldersListedEi @ 56 NONAME
-	_ZN14EmailClientApi15NmFolderListing16staticMetaObjectE @ 57 NONAME DATA 16
-	_ZN14EmailClientApi15NmFolderListing19getStaticMetaObjectEv @ 58 NONAME
-	_ZN14EmailClientApi15NmFolderListing5startEv @ 59 NONAME
-	_ZN14EmailClientApi15NmFolderListing6cancelEv @ 60 NONAME
-	_ZN14EmailClientApi15NmFolderListing7foldersER5QListINS_8NmFolderEE @ 61 NONAME
+	_ZN14EmailClientApi15NmFolderListing10getFoldersER5QListINS_8NmFolderEE @ 54 NONAME
+	_ZN14EmailClientApi15NmFolderListing11qt_metacallEN11QMetaObject4CallEiPPv @ 55 NONAME
+	_ZN14EmailClientApi15NmFolderListing11qt_metacastEPKc @ 56 NONAME
+	_ZN14EmailClientApi15NmFolderListing13foldersListedEi @ 57 NONAME
+	_ZN14EmailClientApi15NmFolderListing16staticMetaObjectE @ 58 NONAME DATA 16
+	_ZN14EmailClientApi15NmFolderListing19getStaticMetaObjectEv @ 59 NONAME
+	_ZN14EmailClientApi15NmFolderListing5startEv @ 60 NONAME
+	_ZN14EmailClientApi15NmFolderListing6cancelEv @ 61 NONAME
 	_ZN14EmailClientApi15NmFolderListingC1EP7QObjectRKy @ 62 NONAME
 	_ZN14EmailClientApi15NmFolderListingC2EP7QObjectRKy @ 63 NONAME
 	_ZN14EmailClientApi15NmFolderListingD0Ev @ 64 NONAME
@@ -67,12 +67,12 @@
 	_ZN14EmailClientApi15NmFolderListingD2Ev @ 66 NONAME
 	_ZN14EmailClientApi16NmMailboxListing11qt_metacallEN11QMetaObject4CallEiPPv @ 67 NONAME
 	_ZN14EmailClientApi16NmMailboxListing11qt_metacastEPKc @ 68 NONAME
-	_ZN14EmailClientApi16NmMailboxListing15mailboxesListedEi @ 69 NONAME
-	_ZN14EmailClientApi16NmMailboxListing16staticMetaObjectE @ 70 NONAME DATA 16
-	_ZN14EmailClientApi16NmMailboxListing19getStaticMetaObjectEv @ 71 NONAME
-	_ZN14EmailClientApi16NmMailboxListing5startEv @ 72 NONAME
-	_ZN14EmailClientApi16NmMailboxListing6cancelEv @ 73 NONAME
-	_ZN14EmailClientApi16NmMailboxListing9mailboxesER5QListINS_9NmMailboxEE @ 74 NONAME
+	_ZN14EmailClientApi16NmMailboxListing12getMailboxesER5QListINS_9NmMailboxEE @ 69 NONAME
+	_ZN14EmailClientApi16NmMailboxListing15mailboxesListedEi @ 70 NONAME
+	_ZN14EmailClientApi16NmMailboxListing16staticMetaObjectE @ 71 NONAME DATA 16
+	_ZN14EmailClientApi16NmMailboxListing19getStaticMetaObjectEv @ 72 NONAME
+	_ZN14EmailClientApi16NmMailboxListing5startEv @ 73 NONAME
+	_ZN14EmailClientApi16NmMailboxListing6cancelEv @ 74 NONAME
 	_ZN14EmailClientApi16NmMailboxListingC1EP7QObject @ 75 NONAME
 	_ZN14EmailClientApi16NmMailboxListingC2EP7QObject @ 76 NONAME
 	_ZN14EmailClientApi16NmMailboxListingD0Ev @ 77 NONAME
@@ -80,12 +80,12 @@
 	_ZN14EmailClientApi16NmMailboxListingD2Ev @ 79 NONAME
 	_ZN14EmailClientApi17NmEnvelopeListing11qt_metacallEN11QMetaObject4CallEiPPv @ 80 NONAME
 	_ZN14EmailClientApi17NmEnvelopeListing11qt_metacastEPKc @ 81 NONAME
-	_ZN14EmailClientApi17NmEnvelopeListing15envelopesListedEi @ 82 NONAME
-	_ZN14EmailClientApi17NmEnvelopeListing16staticMetaObjectE @ 83 NONAME DATA 16
-	_ZN14EmailClientApi17NmEnvelopeListing19getStaticMetaObjectEv @ 84 NONAME
-	_ZN14EmailClientApi17NmEnvelopeListing5startEv @ 85 NONAME
-	_ZN14EmailClientApi17NmEnvelopeListing6cancelEv @ 86 NONAME
-	_ZN14EmailClientApi17NmEnvelopeListing9envelopesER5QListINS_17NmMessageEnvelopeEE @ 87 NONAME
+	_ZN14EmailClientApi17NmEnvelopeListing12getEnvelopesER5QListINS_17NmMessageEnvelopeEE @ 82 NONAME
+	_ZN14EmailClientApi17NmEnvelopeListing15envelopesListedEi @ 83 NONAME
+	_ZN14EmailClientApi17NmEnvelopeListing16staticMetaObjectE @ 84 NONAME DATA 16
+	_ZN14EmailClientApi17NmEnvelopeListing19getStaticMetaObjectEv @ 85 NONAME
+	_ZN14EmailClientApi17NmEnvelopeListing5startEv @ 86 NONAME
+	_ZN14EmailClientApi17NmEnvelopeListing6cancelEv @ 87 NONAME
 	_ZN14EmailClientApi17NmEnvelopeListingC1EP7QObjectyy @ 88 NONAME
 	_ZN14EmailClientApi17NmEnvelopeListingC2EP7QObjectyy @ 89 NONAME
 	_ZN14EmailClientApi17NmEnvelopeListingD0Ev @ 90 NONAME
@@ -93,19 +93,19 @@
 	_ZN14EmailClientApi17NmEnvelopeListingD2Ev @ 92 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope10setSubjectERK7QString @ 93 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope11setSentTimeE9QDateTime @ 94 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope12ccRecipientsER5QListINS_14NmEmailAddressEE @ 95 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope12setIsRepliedEb @ 96 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope12setPlainTextERK7QString @ 97 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope12setTotalSizeEy @ 98 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope12toRecipientsER5QListINS_14NmEmailAddressEE @ 99 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope13plainTextBodyERNS_13NmMessageBodyE @ 100 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope14setContentTypeERK7QString @ 101 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope14setFetchedSizeEy @ 102 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope14setIsForwardedEb @ 103 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope12setIsRepliedEb @ 95 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope12setPlainTextERK7QString @ 96 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope12setTotalSizeEy @ 97 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope14setContentTypeERK7QString @ 98 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope14setFetchedSizeEy @ 99 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope14setIsForwardedEb @ 100 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope15getCcRecipientsER5QListINS_14NmEmailAddressEE @ 101 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope15getToRecipientsER5QListINS_14NmEmailAddressEE @ 102 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope15setCcRecipientsERK5QListINS_14NmEmailAddressEE @ 103 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope15setParentFolderEy @ 104 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope17setHasAttachmentsEb @ 105 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope18setGetCcRecipientsERK5QListINS_14NmEmailAddressEE @ 106 NONAME
-	_ZN14EmailClientApi17NmMessageEnvelope18setGetToRecipientsERK5QListINS_14NmEmailAddressEE @ 107 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope15setToRecipientsERK5QListINS_14NmEmailAddressEE @ 105 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope16getPlainTextBodyERNS_13NmMessageBodyE @ 106 NONAME
+	_ZN14EmailClientApi17NmMessageEnvelope17setHasAttachmentsEb @ 107 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope5setIdEy @ 108 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope9setIsReadEb @ 109 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelope9setSenderERK7QString @ 110 NONAME
@@ -116,7 +116,7 @@
 	_ZN14EmailClientApi17NmMessageEnvelopeD2Ev @ 115 NONAME
 	_ZN14EmailClientApi17NmMessageEnvelopeaSERKS0_ @ 116 NONAME
 	_ZN14EmailClientApi8NmFolder13setFolderTypeENS_15EmailFolderTypeE @ 117 NONAME
-	_ZN14EmailClientApi8NmFolder14childFolderIdsER5QListIyE @ 118 NONAME
+	_ZN14EmailClientApi8NmFolder17getChildFolderIdsER5QListIyE @ 118 NONAME
 	_ZN14EmailClientApi8NmFolder17setChildFolderIdsER5QListIyE @ 119 NONAME
 	_ZN14EmailClientApi8NmFolder17setParentFolderIdEy @ 120 NONAME
 	_ZN14EmailClientApi8NmFolder5setIdEy @ 121 NONAME
--- a/emailservices/nmclientapi/inc/nmapieventnotifier_p.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/inc/nmapieventnotifier_p.h	Mon May 03 12:23:15 2010 +0300
@@ -20,7 +20,8 @@
 
 #include "nmprivateclasses.h"
 #include "nmcommon_api.h"
-#include "nmapiengine.h"
+
+class NmEngine;
 
 namespace EmailClientApi
 {
--- a/emailservices/nmclientapi/nmclientapi.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/nmclientapi.pro	Mon May 03 12:23:15 2010 +0300
@@ -70,7 +70,8 @@
 	     nmapimessagebody.h \
 	     nmapimessageenvelope.h
 			 
-			
+LIBS += -leuser
+LIBS += -llibc			
 
 
 SOURCES   += nmapimessagetask.cpp \
--- a/emailservices/nmclientapi/src/nmapiemailservice.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapiemailservice.cpp	Mon May 03 12:23:15 2010 +0300
@@ -32,7 +32,7 @@
     }
 }
 
-bool NmEmailService::envelope(
+bool NmEmailService::getEnvelope(
     const quint64 mailboxId,
     const quint64 folderId,
     const quint64 envelopeId,
@@ -44,7 +44,7 @@
     return mEngine->envelopeById(mailboxId, folderId, envelopeId, envelope);
 }
 
-bool NmEmailService::mailbox(const quint64 mailboxId, NmMailbox &mailboxInfo)
+bool NmEmailService::getMailbox(const quint64 mailboxId, NmMailbox &mailboxInfo)
 {
     if (!mEngine) {
         return false;
--- a/emailservices/nmclientapi/src/nmapienvelopelisting.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapienvelopelisting.cpp	Mon May 03 12:23:15 2010 +0300
@@ -111,7 +111,7 @@
  *  It clears list of envelopes after be called.
  *  It also at start clear inputlist of NmMessageEnvelope.
  */
-bool NmEnvelopeListing::envelopes(QList<EmailClientApi::NmMessageEnvelope> &envelopes)
+bool NmEnvelopeListing::getEnvelopes(QList<EmailClientApi::NmMessageEnvelope> &envelopes)
 {
     envelopes.clear();
 
--- a/emailservices/nmclientapi/src/nmapieventnotifier.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapieventnotifier.cpp	Mon May 03 12:23:15 2010 +0300
@@ -19,9 +19,11 @@
 #include <QVariant>
 #include <QString>
 
+#include "nmapiengine.h"
 #include "nmapieventnotifier_p.h"
 #include "nmapieventnotifier.h"
 
+
 quint32 IntervalEmitingSignals = 10000;
 
 namespace EmailClientApi
--- a/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,6 +15,7 @@
  *
  */
 
+#include "nmapiengine.h"
 #include "nmapieventnotifier_p.h"
 
 namespace EmailClientApi
--- a/emailservices/nmclientapi/src/nmapifolder.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapifolder.cpp	Mon May 03 12:23:15 2010 +0300
@@ -113,7 +113,7 @@
  * Returns count of child folder ids.
  * to be implemented later when nmail functionality is available
  */
-void NmFolder::childFolderIds(QList<quint64> &childFolderIds)
+void NmFolder::getChildFolderIds(QList<quint64> &childFolderIds)
 {
     childFolderIds = d->childFolderIds;
 }
--- a/emailservices/nmclientapi/src/nmapifolderlisting.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapifolderlisting.cpp	Mon May 03 12:23:15 2010 +0300
@@ -54,7 +54,7 @@
  *  It clears list of folders after be called.
  *  It also at start clear inputlist of NmFolder.
  */
-bool NmFolderListing::folders(QList<EmailClientApi::NmFolder> &folders)
+bool NmFolderListing::getFolders(QList<EmailClientApi::NmFolder> &folders)
 {
     folders.clear();
     if (!mFolderListing->mIsRunning || mFolderListing->mFolders.isEmpty()) {
--- a/emailservices/nmclientapi/src/nmapimailboxlisting.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapimailboxlisting.cpp	Mon May 03 12:23:15 2010 +0300
@@ -56,7 +56,7 @@
  *  \return Return true if results were avaible
  *  \arg List of mailboxes to filled. On start is cleared. 
  */
-bool NmMailboxListing::mailboxes(QList<EmailClientApi::NmMailbox> &mailboxes)
+bool NmMailboxListing::getMailboxes(QList<EmailClientApi::NmMailbox> &mailboxes)
 {
     mailboxes.clear();
 
--- a/emailservices/nmclientapi/src/nmapimessageenvelope.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapimessageenvelope.cpp	Mon May 03 12:23:15 2010 +0300
@@ -91,7 +91,7 @@
 /*
  * getter for to recipients
  */
-void NmMessageEnvelope::toRecipients(QList<EmailClientApi::NmEmailAddress> &toRecipients)
+void NmMessageEnvelope::getToRecipients(QList<EmailClientApi::NmEmailAddress> &toRecipients)
 {
     toRecipients = d->toRecipients;
 }
@@ -99,7 +99,7 @@
 /*
  * getter for cc recipients
  */
-void NmMessageEnvelope::ccRecipients(QList<EmailClientApi::NmEmailAddress> &ccRecipients)
+void NmMessageEnvelope::getCcRecipients(QList<EmailClientApi::NmEmailAddress> &ccRecipients)
 {
     ccRecipients = d->ccRecipients;
 }
@@ -155,7 +155,7 @@
 /*
  * getter for plaintext body
  */
-void NmMessageEnvelope::plainTextBody(EmailClientApi::NmMessageBody &body)
+void NmMessageEnvelope::getPlainTextBody(EmailClientApi::NmMessageBody &body)
 {
     body.setContent(d->plainText);
     body.setFetchedSize(d->fetchedSize);
@@ -197,7 +197,7 @@
 /*
  * setter for to recipients 
  */
-void NmMessageEnvelope::setGetToRecipients(
+void NmMessageEnvelope::setToRecipients(
     const QList<EmailClientApi::NmEmailAddress>& toRecipients)
 {
     d->toRecipients = toRecipients;
@@ -206,7 +206,7 @@
 /*
  * setter for cc recipients 
  */
-void NmMessageEnvelope::setGetCcRecipients(
+void NmMessageEnvelope::setCcRecipients(
     const QList<EmailClientApi::NmEmailAddress> &ccRecipients)
 {
     d->ccRecipients = ccRecipients;
--- a/emailservices/nmclientapi/src/nmapitypesconverter.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapitypesconverter.cpp	Mon May 03 12:23:15 2010 +0300
@@ -59,8 +59,8 @@
     QList<EmailClientApi::NmEmailAddress> to_api = NmAddress2QString(to);
     QList<EmailClientApi::NmEmailAddress> cc_api = NmAddress2QString(cc);
 
-    api_env.setGetToRecipients(to_api);
-    api_env.setGetCcRecipients(cc_api);
+    api_env.setToRecipients(to_api);
+    api_env.setCcRecipients(cc_api);
 
     api_env.setHasAttachments(envelope.hasAttachments());
     api_env.setId(envelope.id().id());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/inc/nmmailboxregisterinterface.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail application mailbox registration.
+*              Adds mailbox to application library and to KQTI HS (as a widget)
+*
+*/
+
+#ifndef NMMAILBOXREGISTERINTERFACE_H_
+#define NMMAILBOXREGISTERINTERFACE_H_
+
+//  INCLUDES
+#include <QObject>
+#include <qmobilityglobal.h>
+#include <QVariant>
+
+class NmMailboxRegisterInterfacePrivate;
+
+class NmMailboxRegisterInterface : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit NmMailboxRegisterInterface(QObject *parent = 0);
+    ~NmMailboxRegisterInterface();
+    
+public slots:
+    /*!
+    \fn bool registerNewMailbox(quint64 accountId, QString accountName, QString accountIconName)
+    \param accountId The ID of the mailbox to register
+    \param accountName The name of the mailbox to register
+    \param accountIconName The icon of the mailbox to register 
+    \return true if mailbox registration succeed. false if failed.
+
+    This method registers mailbox to application library and to homescreen as an email widget.
+
+    Usage example:
+
+    QServiceManager manager;    
+    QServiceFilter filter("com.nokia.symbian.IEmailRegisterAccount");
+    QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);  
+    QObject *widgetObject = manager.loadInterface(interfaces.first());
+    
+    const QMetaObject *object = widgetObject->metaObject();       
+    QMetaMethod registerNewMailboxMethod;
+    int index = object->indexOfMethod(
+        QMetaObject::normalizedSignature("registerNewMailbox(quint64, QString, QString)"));
+    registerNewMailboxMethod = object->method(index);   
+    registerNewMailboxMethod.invoke(widgetObject,
+            Q_ARG(quint64, accountId),
+            Q_ARG(QString, accountName),
+            Q_ARG(QString, accountIconName));
+     */
+    bool registerNewMailbox(quint64 accountId, QString accountName, QString accountIconName);
+    
+    /*!
+    \fn bool updateMailboxName (quint64 accountId, QString newName)
+    \param accountId The ID of the mailbox to register
+    \param accountName The name of the mailbox to register
+    \return true if mailbox name updated succesfully. false if failed.
+
+    This method updates mailbox name to application library.
+
+    Usage example:
+
+    QServiceManager manager;   
+    QServiceFilter filter("com.nokia.symbian.IEmailRegisterAccount");
+    QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);  
+    QObject *widgetObject = manager.loadInterface(interfaces.first());
+    
+    const QMetaObject *object = widgetObject->metaObject();       
+    QMetaMethod updateMailboxNameMethod;
+    int index = object->indexOfMethod(
+        QMetaObject::normalizedSignature("updateMailboxName(quint64, QString)"));
+    updateMailboxNameMethod = object->method(index);   
+    updateMailboxNameMethod.invoke(widgetObject,
+            Q_ARG(quint64, accountId),
+            Q_ARG(QString, accountName));
+     */
+    bool updateMailboxName (quint64 accountId, QString newName);
+        
+    /*!
+    \fn bool unregisterMailbox (quint64 accountId)
+    \param accountId The ID of the mailbox to unregister
+    \return true if mailbox unregistration succeed. false if failed.
+
+    This method unregisters mailbox from application library.
+
+    Usage example:
+
+    QServiceManager manager;    
+    QServiceFilter filter("com.nokia.symbian.IEmailRegisterAccount");
+    QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);  
+    QObject *widgetObject = manager.loadInterface(interfaces.first());
+
+    const QMetaObject *object = widgetObject->metaObject();       
+    QMetaMethod unregisterMailboxMethod;
+    int index = object->indexOfMethod(
+        QMetaObject::normalizedSignature("unregisterMailbox(quint64)"));
+    unregisterMailboxMethod = object->method(index);   
+    unregisterMailboxMethod.invoke(widgetObject,
+            Q_ARG(quint64, accountId));
+     */
+    bool unregisterMailbox (quint64 accountId);
+
+private: 
+    /**
+    * Pointer to a private implementation.
+    */
+    NmMailboxRegisterInterfacePrivate* const m_d;
+
+};
+
+#endif /* NMMAILBOXREGISTERINTERFACE_H_ */
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/inc/nmmailboxregisterinterface_p.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#ifndef NMMAILBOXREGISTERINTERFACEPRIVATE_H_
+#define NMMAILBOXREGISTERINTERFACEPRIVATE_H_
+
+//  INCLUDES
+#include <QObject>
+#include <qmobilityglobal.h>
+
+#ifdef Q_OS_SYMBIAN
+#include <xqserviceprovider.h>
+#else
+#include <QVariant>
+#endif
+
+
+//  FORWARD DECLARATIONS
+class QString;
+
+QTM_BEGIN_NAMESPACE
+class QServiceManager;
+QTM_END_NAMESPACE
+
+QTM_USE_NAMESPACE
+
+
+#ifdef Q_OS_SYMBIAN
+class NmMailboxRegisterInterfacePrivate : public XQServiceProvider
+#else
+class NmMailboxRegisterInterfacePrivate : public QObject
+#endif
+{
+    Q_OBJECT
+
+public:
+
+    explicit NmMailboxRegisterInterfacePrivate(QObject *parent = 0);
+    ~NmMailboxRegisterInterfacePrivate();
+
+
+public slots:
+
+    bool registerNewMailbox(quint64 accountId, QString accountName, QString accountIconName);
+
+    bool updateMailboxName(quint64 accountId, QString newName);
+    
+    bool unregisterMailbox(quint64 accountId);
+
+private:
+   
+    bool pushWidgetToHomescreen(quint64 a);
+
+private: 
+    QServiceManager* mManager;
+    QObject* mService;
+};
+
+#endif /* NMMAILBOXREGISTERINTERFACE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/inc/nmmailboxregisterinterfaceplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Plugin factory.
+*
+*/
+
+#ifndef NMMAILBOXREGISTERINTERFACEPLUGIN_H_
+#define NMMAILBOXREGISTERINTERFACEPLUGIN_H_
+
+#include <QObject>
+#include <qserviceplugininterface.h>
+
+QTM_USE_NAMESPACE
+
+class NmMailboxRegisterInterfacePlugin : public QObject, public QServicePluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(QtMobility::QServicePluginInterface)
+
+public:
+    QObject *createInstance(const QServiceInterfaceDescriptor &descriptor,
+                            QServiceContext *context,
+                            QAbstractSecuritySession *session);
+};
+
+#endif // NMMAILBOXREGISTERINTERFACEPLUGIN_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/nmregister.pro	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description:
+#
+#
+ 
+TEMPLATE = lib
+CONFIG += plugin hb mobility qtservice
+QTSERVICE.DESCRIPTOR = resource/nmregister.xml
+MOBILITY = serviceframework
+TARGET = nmregister
+QT += core
+#RESOURCES += nmregister.qrc
+LIBS += -lxqservice
+
+symbian: {
+TARGET.UID3=0x2002DD16
+TARGET.VID = VID_DEFAULT
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+load(data_caging_paths)
+pluginDep.sources = nmregister.dll
+pluginDep.path = $$QT_PLUGINS_BASE_DIR
+DEPLOYMENT += pluginDep
+
+#addFiles.sources += ./resources/nmregister.xml
+#addFiles.path = xmldata
+#DEPLOYMENT += addFiles
+
+BLD_INF_RULES.prj_exports += "resource/nmregister.xml 			z:/private/2002DD16/nmregister.xml"
+BLD_INF_RULES.prj_exports += "rom/nmregister.iby		CORE_APP_LAYER_IBY_EXPORT_PATH(nmregister.iby)"
+TARGET.EPOCALLOWDLLDATA = 1
+}
+
+TARGET.CAPABILITY = ALL -TCB
+    
+SOURCES += src/nmmailboxregisterinterface.cpp \
+           src/nmmailboxregisterinterfaceplugin.cpp
+
+HEADERS += inc/nmmailboxregisterinterface.h \
+					 inc/nmmailboxregisterinterface_p.h \
+					 inc/nmmailboxregisterinterfaceplugin.h
+
+LIBS += -leuser
+LIBS += -llibc
+
+INCLUDEPATH += 
+
+DEPENDPATH += .
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/resource/nmregister.xml	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service>
+    <name>nmregister</name>
+    <filepath>nmregister</filepath>
+    <description>nmregister.</description>
+    <interface>
+        <name>com.nokia.symbian.IEmailRegisterAccount</name>
+        <version>1.0</version>
+        <description>nmregister registers email account to hs and app list.</description>
+        <capabilities></capabilities>
+        <customproperty key="title">nmregister</customproperty>
+    </interface>
+</service>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/rom/nmregister.iby	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __NMREGISTER_IBY__
+#define __NMREGISTER_IBY__
+
+#include <bldvariant.hrh>
+
+file=ABI_DIR\BUILD_DIR\nmregister.dll                         SHARED_LIB_DIR\nmregister.dll
+data=\epoc32\data\z\resource\qt\plugins\nmregister.qtplugin   resource\qt\plugins\nmregister.qtplugin
+data=ZPRIVATE\2002DD16\nmregister.xml      					  private\2002DD16\nmregister.xml
+#endif  // __NMREGISTER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/src/nmmailboxregisterinterface.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,270 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include <qservicemanager.h>
+#include <qserviceinterfacedescriptor.h>
+#include "nmmailboxregisterinterface.h" 
+#include "nmmailboxregisterinterface_p.h" 
+
+//mandatory keys 
+const QString hsItemName          ("item:name"); 
+const QString hsitemLaunchUri     ("item:launchuri"); 
+const QString hsitemPublisherId   ("item:publisherId"); 
+//not mandatory 
+const QString hsItemWidgetUri     ("widget:uri"); 
+const QString hsItemDescription   ("item:description"); 
+//for icon - not mandatory 
+const QString hsIconFileName      ("icon:filename");//to display specific icon from file 
+const QString hsIconName          ("icon:name");// HbIcon 
+const QString hsIconApplicationId ("icon:applicationid"); // icon from associated application 
+
+//Custom for nmHsWidgets
+//NmHsWidgetParam is used to identify what email account will be monitored by 
+//the registered hs widget
+const QString NmHsWidgetParam     ("widgetparam:accountId");
+//same as above but for pushing the widget to homescreen
+const QString NmHsAccountId       ("accountId");
+//This is used to identify nmhswidget in homescreen
+const QString NmHsWidget          ("nmhswidget");
+
+//parameter values
+const QString NmPublisherName     ("NmMailboxRegisterInterface");
+const QString NmLaunchUri         ("application://0x2002DD17");
+//URI for the defined service
+const QLatin1String interfaceUri("com.nokia.symbian.IEmailRegisterAccount");
+
+
+
+/*!
+    Constructor
+*/
+NmMailboxRegisterInterface::NmMailboxRegisterInterface(QObject *parent) :
+    QObject(parent), m_d( new NmMailboxRegisterInterfacePrivate(this) )
+    {
+    }
+
+/*!
+    Destructor
+*/
+NmMailboxRegisterInterface::~NmMailboxRegisterInterface()
+    {
+    delete m_d;
+    }
+
+/*!
+    registerNewMailbox
+*/
+bool NmMailboxRegisterInterface::registerNewMailbox(quint64 accountId, 
+        QString accountName, QString accountIconName)
+    {
+    return m_d->registerNewMailbox( accountId, accountName, accountIconName );
+    }
+
+/*!
+    updateMailboxName
+*/
+bool NmMailboxRegisterInterface::updateMailboxName(quint64 accountId, 
+        QString newName)
+    {
+    return m_d->updateMailboxName( accountId, newName );
+    }
+
+
+/*!
+    unregisterMailbox
+*/
+bool NmMailboxRegisterInterface::unregisterMailbox(quint64 accountId)
+    {
+    return m_d->unregisterMailbox( accountId );
+    }
+
+
+
+
+
+/*!
+    Constructor
+*/
+NmMailboxRegisterInterfacePrivate::NmMailboxRegisterInterfacePrivate(QObject *parent) :
+    XQServiceProvider(interfaceUri, parent ), 
+    mManager(0),
+    mService(0)
+    {
+    mManager = new QServiceManager();
+    QServiceFilter filter("com.nokia.symbian.IMenuClient");
+    QList<QServiceInterfaceDescriptor> interfaces = mManager->findInterfaces(filter);
+    mService = mManager->loadInterface(interfaces.first()); 
+    }
+
+/*!
+    Destructor
+*/
+NmMailboxRegisterInterfacePrivate::~NmMailboxRegisterInterfacePrivate()
+    {
+    if (mService) 
+        {
+        delete mService;
+        }
+    if (mManager) 
+        {
+        delete mManager;
+        }
+    }
+
+
+bool NmMailboxRegisterInterfacePrivate::registerNewMailbox(quint64 accountId,
+        QString accountName, QString accountIconName)
+    {
+    QMap<QString, QVariant> map;
+    //------------------------------
+    map[hsItemName]        = accountName;
+    map[hsitemLaunchUri]   = NmLaunchUri;
+    map[hsitemPublisherId] = NmPublisherName;
+    map[hsItemWidgetUri]   = NmHsWidget;
+    map[hsItemDescription] = "test description for widget"; //TODO: Localization
+    map[hsIconFileName]    = accountIconName;
+    // to add widget params that are mapped to widgets properties
+    map[NmHsWidgetParam]   = QString::number(accountId);
+    //------------------------------
+    
+    bool retVal(false);
+    
+    bool ret = QMetaObject::invokeMethod(  mService,"add",
+                    Qt::DirectConnection,
+                    Q_RETURN_ARG(bool, retVal),
+                    Q_ARG(QVariantMap, map)); 
+
+    //Push the registered widget also to homescreen right away
+    bool pushRetVal = pushWidgetToHomescreen(accountId);
+    
+    return (retVal && ret && pushRetVal);
+    }
+
+bool NmMailboxRegisterInterfacePrivate::updateMailboxName(quint64 accountId,
+        QString newName)
+    {
+    QMap<QString, QVariant> map;
+     //------------------------------
+     map[hsitemLaunchUri]   = NmLaunchUri;
+     map[hsitemPublisherId] = NmPublisherName;
+     map[hsItemWidgetUri]   = NmHsWidget;
+     map[NmHsWidgetParam]   = QString::number(accountId);
+     //------------------------------
+     
+     QList<QVariantMap> list; //list of items that mach the query
+     bool retVal(false);
+     bool ret = QMetaObject::invokeMethod(  mService,"getList",
+                     Qt::DirectConnection,
+                     Q_RETURN_ARG(QList<QVariantMap>, list),
+                     Q_ARG(QVariantMap, map)); 
+
+     
+     //Normally there should be only one instance, but just in case
+     while( !list.isEmpty() ) 
+         {  
+         //update the account name
+         list.first()[hsItemName] = newName;
+         //commit changes
+         ret = QMetaObject::invokeMethod(  mService,"add",
+                         Qt::DirectConnection,
+                         Q_RETURN_ARG(bool, retVal),
+                         Q_ARG(QVariantMap, list.first()));  
+         list.removeFirst();
+         }
+     //if either invoke or "getList" or "add" return failure
+     return (retVal && ret);
+    }
+
+bool NmMailboxRegisterInterfacePrivate::unregisterMailbox(quint64 accountId)
+    {
+    
+    QMap<QString, QVariant> map;
+     //------------------------------
+     map[hsitemLaunchUri]   = NmLaunchUri;
+     map[hsitemPublisherId] = NmPublisherName;
+     map[hsItemWidgetUri]   = NmHsWidget;
+     map[NmHsWidgetParam]     = QString::number(accountId);
+     //------------------------------
+     
+     QList<QVariantMap> list; //list of items that mach the query
+     bool retVal(false);
+     bool ret = QMetaObject::invokeMethod(  mService,"getList",
+                     Qt::DirectConnection,
+                     Q_RETURN_ARG(QList<QVariantMap>, list),
+                     Q_ARG(QVariantMap, map)); 
+    
+    
+    //Normally there should be only one instance, but just in case
+    //Otherwise there will be ghost instances in the application list
+     while( !list.isEmpty() ) 
+         {  
+
+         //commit changes
+         ret = QMetaObject::invokeMethod(  mService,"remove",
+                         Qt::DirectConnection,
+                         Q_RETURN_ARG(bool, retVal),
+                         Q_ARG(QVariantMap, list.first()));  
+         list.removeFirst();
+         }
+
+     return (retVal && ret);
+    }
+
+bool NmMailboxRegisterInterfacePrivate::pushWidgetToHomescreen( quint64 accountId )
+    {
+    // load plugin
+    QServiceManager manager;
+    QServiceFilter filter("com.nokia.symbian.IHomeScreenClient");
+    filter.setServiceName("hshomescreenclientplugin");
+    QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);
+    
+    if(interfaces.isEmpty()) 
+        {
+        QServiceManager::Error errori = manager.error();
+        return false;
+        }
+    QObject* service = manager.loadInterface( interfaces.first() );
+    if(!service){qDebug() << "service is null ";}
+    
+    //--------------------------------
+    QVariantHash map;
+    map[NmHsAccountId] = QString::number(accountId);
+    //--------------------------------
+    
+    // invoke function synchronously
+    bool retVal(false);
+    bool ret = QMetaObject::invokeMethod(  service, "addWidget",
+                    Qt::DirectConnection,
+                    Q_RETURN_ARG(bool, retVal),
+                    Q_ARG(QString, NmHsWidget),
+                    Q_ARG(QVariantHash, map));
+   
+    if(!ret){
+        qDebug()<< "method invoke failed!";
+    }
+    if(!retVal){
+        qDebug() << "addWidget() failed!!";
+    }
+    
+    if(service)
+        {
+        delete service;
+        }
+    
+    return (retVal && ret);
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmregister/src/nmmailboxregisterinterfaceplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Plugin factory.
+*
+*/
+
+#include <qserviceinterfacedescriptor.h>
+#include <qabstractsecuritysession.h>
+#include <qservicecontext.h>
+
+#include "nmmailboxregisterinterfaceplugin.h"
+#include "nmmailboxregisterinterface.h"
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC SKIP
+#endif //COVERAGE_MEASUREMENT
+
+QObject *NmMailboxRegisterInterfacePlugin::createInstance(const QServiceInterfaceDescriptor &descriptor,
+                                                QServiceContext *context,
+                                                QAbstractSecuritySession *session)
+{
+    Q_UNUSED(context);
+    Q_UNUSED(session);
+
+    if (descriptor.interfaceName() == QLatin1String("com.nokia.symbian.IEmailRegisterAccount")) {
+        return new NmMailboxRegisterInterface(this);
+    } else {
+        return 0;
+    }
+}
+
+Q_EXPORT_PLUGIN2(hsmenucontentpublishplugin, NmMailboxRegisterInterfacePlugin)
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC ENDSKIP
+#endif //COVERAGE_MEASUREMENT
--- a/emailuis/nmailcpplugin/nmailcpplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailcpplugin/nmailcpplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -44,6 +44,8 @@
 LIBS += -lnmailuiengine
 LIBS += -lnmailbase
 LIBS += -lnmsettingui
+LIBS += -leuser
+LIBS += -llibc
 
 # Input
 HEADERS += inc/nmsettingsplugin.h
--- a/emailuis/nmailui/conf/nmviewerheader.widgetml	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/conf/nmviewerheader.widgetml	Mon May 03 12:23:15 2010 +0300
@@ -10,9 +10,9 @@
       
       <meshitem src="subject" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
       <meshitem src="subject" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/> 
+      <meshitem src="subject" srcEdge="TOP" dst="sent" dstEdge="BOTTOM" spacing="var(hb-param-margin-middle-vertical)"/>
       <meshitem src="subject" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
-      <meshitem src="subject" srcEdge="TOP" dst="sent" dstEdge="BOTTOM" spacing="var(hb-param-margin-middle-vertical)"/>
-
+      
       <meshitem src="prioicon" srcEdge="CENTERV" dst="sent" dstEdge="CENTERV"/>      
       <meshitem src="prioicon" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/> 
   </layout>
--- a/emailuis/nmailui/inc/nmactionresponse.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmactionresponse.h	Mon May 03 12:23:15 2010 +0300
@@ -40,7 +40,9 @@
     NmActionResponseCommandReplyAll,
     NmActionResponseCommandDeleteMail,
     NmActionResponseCommandUpdateMailboxName,
-    NmActionResponseCommandMailboxDeleted
+    NmActionResponseCommandMailboxDeleted,
+    NmActionResponseCommandRemoveAttachment,
+    NmActionResponseCommandOpenAttachment
 };
 
 
--- a/emailuis/nmailui/inc/nmapplication.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmapplication.h	Mon May 03 12:23:15 2010 +0300
@@ -33,6 +33,7 @@
 class NmMailboxServiceInterface;
 class NmViewerServiceInterface;
 class NmViewerViewNetManager;
+class NmUtilities;
 
 class NmApplication : public QObject
 {
@@ -43,7 +44,7 @@
     void enterNmUiView(NmUiStartParam *startParam);
     HbMainWindow* mainWindow();
     NmUiExtensionManager &extManager();
-    NmViewerViewNetManager* networkAccessManager();
+    NmViewerViewNetManager &networkAccessManager();
     QSize screenSize();
 
 
@@ -51,6 +52,7 @@
     void popView();
     void exitApplication();
     void delayedExitApplication();
+    void handleOperationCompleted(const NmOperationCompletionEvent &event);
 
 private:
     void createMainWindow();
@@ -65,11 +67,14 @@
     HbAction *mBackAction;                  // Owned
     NmUiExtensionManager *mExtensionManager;// Owned
     NmSendServiceInterface *mSendServiceInterface; // Owned
+    NmSendServiceInterface *mSendServiceInterface2; // Owned
     NmMailboxServiceInterface *mMailboxServiceInterface; // Owned
     NmViewerServiceInterface *mViewerServiceInterface; // Owned
     NmMailboxListModel *mMbListModel;       // Not owned
     NmUiViewId mServiceViewId;
-    NmViewerViewNetManager* mNetManager;     // Owned
+    NmViewerViewNetManager *mNetManager;     // Owned
+    bool mForegroundService;	
+    NmUtilities *mUtilities; // Owned
 };
 
 #endif // NMAPPLICATION_H
--- a/emailuis/nmailui/inc/nmattachmentlist.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmattachmentlist.h	Mon May 03 12:23:15 2010 +0300
@@ -28,7 +28,7 @@
 {
     Q_OBJECT
 public:
-    NmAttachmentList(NmAttachmentListWidget *listWidget);
+    NmAttachmentList(NmAttachmentListWidget &listWidget);
     ~NmAttachmentList();
     int insertAttachment(const QString &fullFileName,
                          const QString &fileSize,
@@ -38,15 +38,15 @@
     void removeAttachment(int arrayIndex);
     void removeAttachment(const QString &fullFileName);
     void removeAttachment(const NmId &attachmentPartId);
-    NmAttachmentListWidget *listWidget();
+    NmAttachmentListWidget &listWidget();
     void clearList();
     int count();
     NmId nmIdByIndex(int listIndex);
     int indexByNmId(const NmId &id);
+    QString getFullFileNameByIndex(int arrayIndex);
 
 private:
     QString fullNameToDisplayName(const QString &fullName);
-    QString createSizeString(const QString &sizeInBytes);
     void updateLayout();
     
 private slots:
@@ -56,7 +56,7 @@
     void attachmentListLayoutChanged();
     
 private:
-    NmAttachmentListWidget *mListWidget; // Not owned
+    NmAttachmentListWidget &mListWidget; // Not owned
     QStringList mFullFileName;
     QStringList mDisplayFileName;
     QStringList mFileSize;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/inc/nmattachmentpicker.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Utility class for launching different file pickers
+*
+*/
+
+#ifndef NMATTACHMENTPICKER_H_
+#define NMATTACHMENTPICKER_H_
+
+#include <QObject>
+#include <xqappmgr.h>
+
+#define IMAGE_FETCHER_INTERFACE "Image"
+#define AUDIO_FETCHER_INTERFACE "com.nokia.services.media.Music"
+
+#define IMAGE_FETCHER_OPERATION "fetch(QVariantMap,QVariant)"
+#define AUDIO_FETCHER_OPERATION "fetch(QString)"
+
+/**
+ * This class manages launching of different attachment pickers 
+ * 
+ */
+class  NmAttachmentPicker : public QObject
+{
+    Q_OBJECT
+
+public:
+    NmAttachmentPicker(QObject* parent = 0);
+    ~NmAttachmentPicker();
+        
+public slots:
+    void fetchImage();
+    void fetchAudio();    
+    void fetchVideo();
+    void fetchOther();       
+
+signals:
+    void attachmentsFetchOk(const QVariant& fileNames);
+    void attachmentsFetchError(int errorCode, const QString& errorMessage);
+    
+private:   
+    void fetch(const QString& interface, const QString& operation); 
+    
+private:
+    XQApplicationManager mAppmgr;
+    XQAiwRequest *mRequest;
+};
+
+#endif // NMATTACHMENTPICKER_H_
--- a/emailuis/nmailui/inc/nmeditorcontent.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmeditorcontent.h	Mon May 03 12:23:15 2010 +0300
@@ -19,6 +19,7 @@
 #define NMEDITORCONTENT_H_
 
 #include <hbwidget.h>
+#include "nmuiviewids.h"
 
 enum MessageBodyType { PlainText, HTMLText };
 
@@ -28,8 +29,10 @@
 class NmBaseViewScrollArea;
 class NmEditorView;
 class NmMessage;
+class NmMessageEnvelope;
 class NmEditorHeader;
 class NmEditorTextEdit;
+class QNetworkAccessManager;
 
 class NmEditorContent : public HbWidget
 {
@@ -38,10 +41,12 @@
 public:
     NmEditorContent(QGraphicsItem *parent,
                     NmEditorView *parentView,
-                    HbDocumentLoader *documentLoader);
+                    HbDocumentLoader *documentLoader,
+                    QNetworkAccessManager &manager);
     virtual ~NmEditorContent();
 
-    void setMessageData(NmMessage *message);
+    void setMessageData(const NmMessage &message, 
+                        NmMessageEnvelope *replyMsgEnvelope=0);
     NmEditorTextEdit* editor() const;
     NmEditorHeader* header() const;
 
@@ -59,7 +64,6 @@
     NmEditorHeader *mHeaderWidget;   // Owned
     NmEditorView *mParentView;       // Not owned
     HbAnchorLayout *mEditorLayout;   // Not owned
-    NmMessage *mMessage;             // Not Owned
     MessageBodyType mMessageBodyType;
     NmEditorTextEdit *mEditorWidget; // Not owned
     NmBaseViewScrollArea *mBackgroundScrollArea;
--- a/emailuis/nmailui/inc/nmeditorheader.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmeditorheader.h	Mon May 03 12:23:15 2010 +0300
@@ -57,6 +57,8 @@
     void setGroupBoxCollapsed( bool collapsed );
     void addAttachment(const QString &fileName, const QString &fileSize, const NmId &nmid);
     void removeAttachment(const QString &fileName);
+    void removeAttachment(const NmId &nmid);
+    void launchAttachment(const NmId &nmid);
     void setAttachmentParameters(
         const QString &fileName,
         const NmId &msgPartId,
@@ -72,13 +74,14 @@
 signals:
     void headerHeightChanged(int);
     void recipientFieldsHaveContent(bool recipientFieldsHaveContent);
-    void attachmentRemoved(const NmId);
+    void attachmentLongPressed(NmId attachmentPartId, QPointF point);
 
 public slots:
     void sendHeaderHeightChanged();
     void editorContentChanged();
     void groupBoxExpandCollapse();
-    void attachmentSelected(int, QPointF);
+    void attachmentActivated(int arrayIndex);
+    void attachmentLongPressed(int arrayIndex, QPointF point);
 
 private:
     HbDocumentLoader* mDocumentLoader;  // Not owned
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/inc/nmeditortextdocument.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef NMEDITORTEXTDOCUMENT_H_
+#define NMEDITORTEXTDOCUMENT_H_
+
+#include <qtextdocument>
+
+class QNetworkAccessManager;
+class QNetworkReply;
+
+class NmEditorTextDocument : public QTextDocument
+{
+    Q_OBJECT
+public:
+    NmEditorTextDocument(QNetworkAccessManager &manager);
+    ~NmEditorTextDocument();
+
+public slots:
+    void replyFinished(QNetworkReply *reply);
+
+protected:
+    virtual QVariant loadResource(int type, const QUrl &name);
+
+private:
+    QNetworkAccessManager &mManager; // not owned
+    QList<QNetworkReply*> mReplyList;
+};
+
+#endif /* NMEDITORTEXTDOCUMENT_H_ */
--- a/emailuis/nmailui/inc/nmeditorview.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmeditorview.h	Mon May 03 12:23:15 2010 +0300
@@ -25,6 +25,7 @@
 class QGraphicsLinearLayout;
 class HbTextEdit;
 class HbDocumentLoader;
+class HbProgressDialog;
 class HbWidget;
 class NmBaseViewScrollArea;
 class NmApplication;
@@ -39,6 +40,7 @@
 class NmMessageCreationOperation;
 class NmAddAttachmentsOperation;
 class NmCheckOutboxOperation;
+class NmAttachmentPicker;
 
 
 class NmEditorView : public NmBaseView, public NmActionObserver
@@ -62,12 +64,12 @@
     bool okToExitView();
     void aboutToExitView();
 
-
 public slots:
 
     void orientationChanged(Qt::Orientation orientation);
     void createOptionsMenu();
     void setButtonsDimming(bool enabled);
+    void attachmentLongPressed(NmId attachmentPartId, QPointF point);
 
 
 public: // From NmActionObserver
@@ -84,14 +86,12 @@
                             int result);
 
     void allAttachmentsAdded(int result);
+    void attachmentRemoved(int result);
     void outboxChecked(int result);
-    void removeAttachment(const NmId attachmentPartId);
-
-#ifdef Q_OS_SYMBIAN    
+    void removeAttachmentTriggered();
+    void handleSendOperationCompleted();
+    void openAttachmentTriggered();  
     void onAttachmentReqCompleted(const QVariant &value);
-    void attachImage();
-#endif    
-
 
 private:
 
@@ -110,6 +110,7 @@
     void setPriority(NmActionResponseCommand priority);
     QString addressListToString(const QList<NmAddress*> &list) const;
     QString addressListToString(const QList<NmAddress> &list) const;
+    void enableToolBarAttach(bool enable);
 
 
 public slots:
@@ -132,13 +133,18 @@
     NmEditorHeader *mHeaderWidget;      // Not owned
     NmMessage *mMessage;                // Owned
     NmEditorContent *mContentWidget;    // Owned
-    HbMenu  *mPrioritySubMenu;          // Owned
-    HbMenu *mAttachContextMenu;         // Owned
+    HbMenu *mPrioritySubMenu;           // Owned
+    HbMenu *mAttachmentListContextMenu; // Owned
+    NmId mSelectedAttachment;
 
     NmMessageCreationOperation *mMessageCreationOperation;  // Owned
     NmAddAttachmentsOperation *mAddAttachmentOperation;     // Owned
     NmOperation *mRemoveAttachmentOperation;                // Owned
     NmCheckOutboxOperation *mCheckOutboxOperation;          // Owned
+
+    HbProgressDialog *mWaitDialog; // Owned.
+    
+    NmAttachmentPicker* mAttachmentPicker;    // Owned    
 };
 
 
--- a/emailuis/nmailui/inc/nmmailboxlistviewitem.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmmailboxlistviewitem.h	Mon May 03 12:23:15 2010 +0300
@@ -21,13 +21,12 @@
 #include <hblistviewitem.h>
 
 class HbLabel;
-class HbDocumentLoader;
 class QGraphicsLinearLayout;
 
 class NmMailboxListViewItem : public HbListViewItem
 {
 public:
-    NmMailboxListViewItem(HbDocumentLoader *documentLoader);
+    NmMailboxListViewItem(QGraphicsItem * parent = 0);
     virtual ~NmMailboxListViewItem();
     enum { ItemType = Hb::ItemType_Last + 1 };
 
@@ -42,7 +41,6 @@
     void polishEvent();
 
 private:
-	HbDocumentLoader *mDocumentLoader;  // Not owned
     QGraphicsLinearLayout *mLayout;     // Not owned
 };
 
--- a/emailuis/nmailui/inc/nmmailboxserviceinterface.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmmailboxserviceinterface.h	Mon May 03 12:23:15 2010 +0300
@@ -1,21 +1,21 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail application service interface used for displaying the
- *              messages contained by the given mailbox. The service utilizes
- *              thr Qt highway framework.
- *
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail application service interface used for displaying the
+*              messages contained by the given mailbox. The service utilizes
+*              thr Qt highway framework.
+*
+*/
 
 #ifndef NMMAILBOXSERVICEINTERFACE_H_
 #define NMMAILBOXSERVICEINTERFACE_H_
--- a/emailuis/nmailui/inc/nmrecipientfield.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmrecipientfield.h	Mon May 03 12:23:15 2010 +0300
@@ -26,7 +26,7 @@
 class HbPushButton;
 class HbIconItem;
 #ifdef Q_OS_SYMBIAN
-class XQServiceRequest;
+class XQAiwRequest;
 #endif
 
 class NmRecipientField : public HbWidget
@@ -67,10 +67,6 @@
     HbPushButton *mLaunchContactsPickerButton;       
     HbIconItem *mAddButtonIcon;
     bool mOwned;
-
-#ifdef Q_OS_SYMBIAN
-    XQServiceRequest *mLaunchContactsPickerRequest;
-#endif
 };
 
 #endif   // NMRECIPIENTFIELD_H_
--- a/emailuis/nmailui/inc/nmsendserviceinterface.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmsendserviceinterface.h	Mon May 03 12:23:15 2010 +0300
@@ -1,20 +1,20 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail Application service interface used for interfacing between
- *              QT highway and other applications
- *
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail Application service interface used for interfacing between
+*              QT highway and other applications
+*
+*/
 
 #ifndef NMSENDSERVICEINTERFACE_H_
 #define NMSENDSERVICEINTERFACE_H_
@@ -48,7 +48,8 @@
 
 public:
 
-    NmSendServiceInterface(QObject *parent,
+    NmSendServiceInterface(QString interfaceName,
+                           QObject *parent,
                            NmUiEngine &mailboxListModel,
                            NmApplication* application);
 
--- a/emailuis/nmailui/inc/nmuiheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmuiheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -64,9 +64,11 @@
 #include <hbtoolbar.h>
 #include <hbgroupbox.h>
 #include <hbpushbutton.h>
+#include <hbprogressdialog.h>
 #include <hblistwidget.h>
 #include <hblistwidgetitem.h>
 #include <hbmessagebox.h>
+#include <hbnotificationdialog.h>
 #include <hbstyleloader.h>
 #include <hbiconitem.h>
 #include <hbextendedlocale.h>
@@ -75,6 +77,8 @@
 #include <hbdevicemessagebox.h>
 #include <hbtransparentwindow.h>
 #include <hbdialog.h>
+#include <hbmessagebox.h>
+#include <hbtoolbarextension.h>
 
 #ifdef Q_OS_SYMBIAN
 #include <cntservicescontact.h>
@@ -140,5 +144,7 @@
 #include "nmutilities.h"
 #include "nmattachmentlistwidget.h"
 #include "nmattachmentlist.h"
+#include "nmeditortextdocument.h"
+#include "nmattachmentpicker.h"
 
 #endif /* NMUIHEADERS_H_ */
--- a/emailuis/nmailui/inc/nmutilities.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmutilities.h	Mon May 03 12:23:15 2010 +0300
@@ -18,11 +18,22 @@
 #ifndef NMUTILITIES_H_
 #define NMUTILITIES_H_
 
+#include <QObject>
+
+class NmMessage;
+class NmMessageEnvelope;
+class NmAddress;
+class NmOperationCompletionEvent;
+class QFile;
+class XQSharableFile;
+class NmOperationCompletionEvent;
+
 /*!
 	UI utilities class
 */
-class NmUtilities
-{    
+class NmUtilities : public QObject
+{
+    Q_OBJECT
 public:
     enum NmAddressValidationType {
         ValidAddress,
@@ -44,9 +55,18 @@
 
     static int openFile(QFile &file);
     
-    static int openFile(RFile &file);
+    static int openFile(XQSharableFile &file);
     
     static QString truncate( const QString &string, int length );
+
+    static QString attachmentSizeString(const int sizeInBytes);
+
+    static void displayErrorNote(QString noteText); 
+
+    // note: this is not static function
+    void displayOperationCompletionNote(const NmOperationCompletionEvent &event);
+    
+    static QString createReplyHeader(const NmMessageEnvelope &env);
 };
 
 #endif /* NMUTILITIES_H_ */
--- a/emailuis/nmailui/inc/nmviewerserviceinterface.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmviewerserviceinterface.h	Mon May 03 12:23:15 2010 +0300
@@ -1,20 +1,20 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail application service interface used for viewing a mail
- *              according to given id. The service utilizes the Qt highway framework.
- *
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail application service interface used for viewing a mail
+*              according to given id. The service utilizes the Qt highway framework.
+*
+*/
 
 #ifndef NMVIEWERSERVICEINTERFACE_H_
 #define NMVIEWERSERVICEINTERFACE_H_
--- a/emailuis/nmailui/inc/nmviewerview.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/inc/nmviewerview.h	Mon May 03 12:23:15 2010 +0300
@@ -40,17 +40,19 @@
 class NmUiDocumentLoader;
 class NmOperation;
 class HbProgressDialog;
+class NmAttachmentListWidget;
 
 class NmViewerView : public NmBaseView, public NmActionObserver
 {
     Q_OBJECT
 public:
-    NmViewerView(
-            NmApplication &application,
-            NmUiStartParam* startParam,
-            NmUiEngine &uiEngine,
-            HbMainWindow *mainWindow,
-            QGraphicsItem *parent = NULL);
+    explicit NmViewerView(
+				NmApplication &application,
+				NmUiStartParam* startParam,
+				NmUiEngine &uiEngine,
+				HbMainWindow *mainWindow,
+				bool toolbar = false,
+				QGraphicsItem *parent = NULL);
     ~NmViewerView();
     void reloadViewContents(NmUiStartParam* startParam);
     NmUiViewId nmailViewId() const;
@@ -58,11 +60,16 @@
 
 public slots:
     void orientationChanged(Qt::Orientation orientation);
+    void adjustViewDimensions();
     void linkClicked(const QUrl& link);
     void contentScrollPositionChanged(const QPointF &newPosition);
     void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event);
     void handleMousePressEvent(QGraphicsSceneMouseEvent *event);
     void fetchMessage();
+    void openAttachment(int index);
+    void changeProgress(int progressValue);
+	void externalDelete(const NmId &messageId);
+	void createOptionsMenu();
     
 private slots: 
     void setMessageData();
@@ -71,29 +78,35 @@
     void webFrameLoaded(bool loaded);
     void scaleWebViewWhenLoading(const QSize &size);
     void scaleWebViewWhenLoaded();
+    void attachmentFetchCompleted(int result);
     
 public: // From NmActionObserver
     void handleActionCommand(NmActionResponse &menuResponse);
 
+signals:
+    void progressValueChanged(int index, int value);
+
 private:
     void loadMessage();
     void loadViewLayout();
     QString formatMessage();
     bool eventOnTopOfHeaderArea(QGraphicsSceneMouseEvent *event);
-    QString escapeSpecialCharacters(const QString text);
     void changeMessageReadStatus(bool read);
     void setMailboxName();
     void createToolBar();
+    void setAttachmentList();
 
 private:
     NmApplication &mApplication;
     NmUiEngine &mUiEngine;
     HbMainWindow *mMainWindow;               // Not owned
+    bool mToolbar;							  // is toolbar or options menu in use
     NmMessage* mMessage;                     // Owned
     NmBaseViewScrollArea *mScrollArea;     // Not owned
     HbWidget *mViewerContent;                // Not owned
     NmMailViewerWK *mWebView;                // Not owned
     NmViewerHeader *mHeaderWidget;           // Not owned
+    NmAttachmentListWidget *mAttaListWidget;  // Not owned
     QPointF mHeaderStartScenePos;
     QGraphicsLinearLayout *mViewerContentLayout; // Not owned
     NmOperation *mMessageFetchingOperation;   // Not owned
@@ -107,6 +120,10 @@
     HbProgressDialog *mWaitDialog;            // owned
     bool loadingCompleted;
     QSize mLatestLoadingSize;
+    QList<NmId> mAttaIdList; 
+    NmOperation *mFetchOperation;             // owned
+    int mAttaIndexUnderFetch;
+    NmAttachmentListWidget *mAttaWidget;      // Not owned
 };
 
 #endif /* NMVIEWERVIEW_H_ */
--- a/emailuis/nmailui/nmailui.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/nmailui.pro	Mon May 03 12:23:15 2010 +0300
@@ -27,6 +27,9 @@
 QT += network
 MOC_DIR = moc
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian*: {
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
     
@@ -96,7 +99,9 @@
     inc/nmmailboxserviceinterface.h \
     inc/nmviewerserviceinterface.h \
     inc/nmutilities.h \
-    inc/nmattachmentlist.h
+    inc/nmattachmentlist.h \
+    inc/nmeditortextdocument.h \
+    inc/nmattachmentpicker.h
 
 SOURCES += src/nmeditorcontent.cpp \
     src/nmeditorheader.cpp \
@@ -121,7 +126,9 @@
     src/nmmailboxserviceinterface.cpp \
     src/nmviewerserviceinterface.cpp \
     src/nmutilities.cpp \
-    src/nmattachmentlist.cpp
+    src/nmattachmentlist.cpp \
+    src/nmeditortextdocument.cpp \
+    src/nmattachmentpicker.cpp    
 
 RESOURCES += nmailui.qrc
 RESOURCES += nmmessagelistviewitem.qrc
--- a/emailuis/nmailui/service_conf.xml	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/service_conf.xml	Mon May 03 12:23:15 2010 +0300
@@ -13,6 +13,11 @@
     <customproperty key="aiw_action_icon">qtg_large_email</customproperty>
   </interface>
   <interface>
+    <name>IEmailMessageSend</name>
+    <version>1.0</version>
+    <description>Send interface</description>
+  </interface>
+  <interface>
     <name>IEmailInboxView</name>
     <version>1.0</version>
     <description>Email inbox interface</description>
--- a/emailuis/nmailui/src/main.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/main.cpp	Mon May 03 12:23:15 2010 +0300
@@ -34,7 +34,7 @@
     QString path = "Z:/resource/qt/translations/";
 #else
     QString lang;
-    QString appName = "nmailui";
+    QString appName = "mail";
     QString path = ":/translations";
 #endif
     translator.load(appName + lang, path);
--- a/emailuis/nmailui/src/nmapplication.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmapplication.cpp	Mon May 03 12:23:15 2010 +0300
@@ -17,12 +17,15 @@
 
 #include "nmuiheaders.h"
 #ifdef Q_OS_SYMBIAN
+#include <email_services_api.h>
 #include <e32base.h>
 #else
 #define NM_WINS_ENV
 #endif
 
 static const qreal nmCacheSize = 2097152;
+static const char *NMUI_CACHE_DIR = "cache";
+static const QString NmSendServiceName = "com.nokia.symbian.IMessage.Send";
 
 /*!
 	\class NmApplication
@@ -41,11 +44,14 @@
 mBackAction(NULL),
 mExtensionManager(NULL),
 mMbListModel(NULL),
-mServiceViewId(NmUiViewNone)
+mServiceViewId(NmUiViewNone),
+mForegroundService(false),
+mUtilities(NULL)
 {
     // Create network access manager and cache for application use.
     mNetManager = new NmViewerViewNetManager();
     QNetworkDiskCache *cache = new QNetworkDiskCache();
+    cache->setCacheDirectory(NMUI_CACHE_DIR);
     cache->setMaximumCacheSize(nmCacheSize);
     mNetManager->setCache(cache);
 
@@ -60,12 +66,15 @@
 
 #ifndef NM_WINS_ENV
     mSendServiceInterface =
-            new NmSendServiceInterface(NULL, *mUiEngine, this);
+            new NmSendServiceInterface(NmSendServiceName, NULL, *mUiEngine, this);
+    mSendServiceInterface2 =
+            new NmSendServiceInterface(emailInterfaceNameSend, NULL, *mUiEngine, this);
     mMailboxServiceInterface =
             new NmMailboxServiceInterface(NULL, *mUiEngine, this);
     mViewerServiceInterface =
             new NmViewerServiceInterface(NULL, this, *mUiEngine);
 #endif
+    mUtilities = new NmUtilities();
 }
 
 /*!
@@ -75,6 +84,7 @@
 {
 #ifndef NM_WINS_ENV
 	delete mSendServiceInterface;
+	delete mSendServiceInterface2;
 	delete mMailboxServiceInterface;
 	delete mViewerServiceInterface;
 #endif
@@ -93,6 +103,8 @@
     delete mNetManager;
     mNetManager=NULL;
     }
+    delete mUtilities;
+    delete mMainWindow;
 }
 
 /*!
@@ -121,7 +133,6 @@
 
     // Create main window
     mMainWindow = new HbMainWindow();
-    mMainWindow->show();
 
     // Create extension manager
     mExtensionManager = new NmUiExtensionManager();
@@ -133,8 +144,15 @@
     if (mMainWindow) {
         mBackAction = new HbAction(Hb::BackNaviAction,this);
         connect(mBackAction, SIGNAL(triggered()), this, SLOT(popView()));
+        // Show main window
+        mMainWindow->show();
     }
 
+    // async operation completion related notifications
+    connect(
+        mUiEngine, SIGNAL(operationCompleted(const NmOperationCompletionEvent &)),
+        this, SLOT(handleOperationCompleted(const NmOperationCompletionEvent &)));
+
     mMbListModel = &mUiEngine->mailboxListModel();
 
     // Start application to mailbox view
@@ -193,6 +211,17 @@
             // Remove view from stack.
             mMainWindow->removeView(view);
 
+            // if we were in editor and sent a message, pop viewer from stack first
+            // so we can go straight to mail list
+            if (!mViewStack->isEmpty() && topViewId == NmUiViewMessageEditor &&
+                mUiEngine->isSendingMessage() &&
+                mViewStack->top()->nmailViewId() == NmUiViewMessageViewer) {
+                NmBaseView *tmpView = mViewStack->pop();
+                mMainWindow->removeView(tmpView);
+                delete tmpView;
+                tmpView = NULL;
+            }
+
             if (!mViewStack->isEmpty()) {
                 // Activate next view in stack
                 NmBaseView *showView = mViewStack->top();
@@ -205,12 +234,15 @@
             view = NULL;
 
 #ifndef NM_WINS_ENV
-            // If view was started as service, move the app now to the background
+            // If view was started as service, move the app now
+            // to the background, unless it was started when the app
+            // was already in foreground..
             if (mServiceViewId == topViewId) {
                 mServiceViewId = NmUiViewNone;
 
                 // if started as embedded, do not hide the app
-		        if (!XQServiceUtil::isEmbedded()) {
+		        if (!XQServiceUtil::isEmbedded() &&
+		            !mForegroundService) {
 		            XQServiceUtil::toBackground(true);
                 }
             }
@@ -253,10 +285,34 @@
     // Check the validity of start parameter object
     if (startParam) {
 
+        if (startParam->service() && mMainWindow) {
+			// Store the visibility state when the service was launched
+			mForegroundService = mMainWindow->isVisible();
+
+			// When the message list is started as a service previous views are removed
+			// from the stack. Open editors are not closed.
+			// Also if the view is same than the new one, keep it open (reload the content).
+			
+		    // at least one view must remain in the stack
+			while (mViewStack->count()>1) { 
+			    NmUiViewId topId = mViewStack->top()->nmailViewId();
+			    if (topId!=NmUiViewMessageEditor && 
+			        topId!=NmUiViewMailboxList &&
+			        topId!=startParam->viewId()) {
+			        popView();
+			    }
+			    else {
+			        // Editor or mailbox list in the top. Stop the loop.
+			        break;
+			    }
+			}
+        }
+        
         // Check whether requested view is already active
         // and if so, ask it to reload contents with new start parameter data
-        // Do not reuse the view if started as service (ShareUI or Launch API)
-        if (mActiveViewId==startParam->viewId() && !startParam->service()) {
+        // Do not reuse the view if started as service to editor view (ShareUI)
+        if (mActiveViewId==startParam->viewId() &&
+        	(!startParam->service() || mActiveViewId!=NmUiViewMessageEditor)) {
             mViewStack->top()->reloadViewContents(startParam);
         }
         else {
@@ -271,6 +327,12 @@
                 break;
                 case NmUiViewMessageList:
                 {
+                    // Check the topmost view. If it is an editor, do not open
+                    // a new mail list view
+                    if (startParam->service() && !mViewStack->isEmpty() && 
+                        mViewStack->top()->nmailViewId()==NmUiViewMessageEditor) {
+                        break;
+                    }
                     NmMessageListModel &messageListModel = mUiEngine->messageListModel(
                                                 startParam->mailboxId(), startParam->folderId());
                     NmMessageListView *msgList =new NmMessageListView(
@@ -288,11 +350,12 @@
                 default:
                     // Reset view stack and exit application
                     delete startParam;
+                    startParam=NULL;
                     resetViewStack();
                     break;
             }
 
-            if (startParam->service()) {
+            if (startParam && startParam->service()) {
 				// Store the view id that was launched as service
         		mServiceViewId = mActiveViewId;
 			}
@@ -311,6 +374,8 @@
 #ifndef NM_WINS_ENV
     delete mSendServiceInterface;
     mSendServiceInterface = NULL;
+    delete mSendServiceInterface2;
+    mSendServiceInterface2 = NULL;
     delete mMailboxServiceInterface;
     mMailboxServiceInterface = NULL;
     delete mViewerServiceInterface;
@@ -350,9 +415,9 @@
 /*!
     Getter for network access manager
 */
-NmViewerViewNetManager* NmApplication::networkAccessManager()
+NmViewerViewNetManager& NmApplication::networkAccessManager()
 {
-    return mNetManager;
+    return *mNetManager;
 }
 
 /*!
@@ -387,3 +452,11 @@
     }
     return ret;
 }
+
+/*!
+    handles all asynchronous operation's completions at UI level
+*/
+void NmApplication::handleOperationCompleted(const NmOperationCompletionEvent &event)
+{
+    mUtilities->displayOperationCompletionNote(event);
+}
--- a/emailuis/nmailui/src/nmattachmentlist.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmattachmentlist.cpp	Mon May 03 12:23:15 2010 +0300
@@ -17,6 +17,8 @@
 
 #include "nmuiheaders.h"
 
+#define AttachmentFileNameMaxLength 17
+
 /*!
 	\class NmAttachmentList
 	\brief Class for handling the attachment list
@@ -25,7 +27,7 @@
 /*!
     Constructor
 */
-NmAttachmentList::NmAttachmentList(NmAttachmentListWidget *listWidget)
+NmAttachmentList::NmAttachmentList(NmAttachmentListWidget &listWidget)
 : mListWidget(listWidget)
 {
     updateLayout();
@@ -52,7 +54,10 @@
     mDisplayFileName.append(displayName);
     mAttachmentPartId.append(attachmentPartId);
     mFileSize.append(fileSize);
-    mListWidget->insertAttachment(count() - 1, displayName, createSizeString(fileSize));
+    mListWidget.insertAttachment(
+        count() - 1,
+        NmUtilities::truncate(displayName, AttachmentFileNameMaxLength), 
+        NmUtilities::attachmentSizeString(fileSize.toDouble()));  
     updateLayout();
     return count() - 1;
 }
@@ -61,7 +66,8 @@
     Set attachmentPartId of the list item. Because there can be several attachments with
     same filename, function will search the one which nmid is not set.
 */
-void NmAttachmentList::setAttachmentPartId(const QString fullFileName, const NmId &attachmentPartId)
+void NmAttachmentList::setAttachmentPartId(const QString fullFileName, 
+                                           const NmId &attachmentPartId)
 {
     for (int i=0; i<count(); ++i) {
         if (mFullFileName.at(i) == fullFileName && mAttachmentPartId.at(i).id() == 0) {
@@ -78,6 +84,7 @@
     for (int i=0; i<count(); ++i) {
         if (mAttachmentPartId.at(i) == attachmentPartId) {
             mFileSize.replace(i, size);
+            mListWidget.setAttachmentSize(i, NmUtilities::attachmentSizeString(size.toDouble()));
         }
     }
 }
@@ -89,7 +96,7 @@
 {
     if (arrayIndex < count()) {
         // Remove UI
-        mListWidget->removeAttachment(arrayIndex);
+        mListWidget.removeAttachment(arrayIndex);
         // Remove from data structure
         mFullFileName.removeAt(arrayIndex);
         mDisplayFileName.removeAt(arrayIndex);
@@ -99,6 +106,19 @@
 }
 
 /*!
+    Return full filename of the list item
+*/
+QString NmAttachmentList::getFullFileNameByIndex(int arrayIndex)
+{
+	QString result;
+	
+    if ( arrayIndex >= 0 && arrayIndex < mFullFileName.count() ) {
+        result.append(mFullFileName.at(arrayIndex));
+    }
+    return result;
+}
+
+/*!
     Remove attachment which have same fullFileName from list
 */
 void NmAttachmentList::removeAttachment(const QString &fullFileName)
@@ -129,7 +149,7 @@
 {
     for (int i=count()-1; i>=0; --i) {
         // Remove from UI
-        mListWidget->removeAttachment(i);
+        mListWidget.removeAttachment(i);
         // Remove from data structure
         mFullFileName.removeAt(i);
         mDisplayFileName.removeAt(i);
@@ -141,7 +161,7 @@
 /*!
     Return attachment list widget
 */
-NmAttachmentListWidget* NmAttachmentList::listWidget()
+NmAttachmentListWidget& NmAttachmentList::listWidget()
 {
     return mListWidget;
 }
@@ -184,25 +204,12 @@
 }
 
 /*!
-    Create string for showing the size information
-*/
-QString NmAttachmentList::createSizeString(const QString &sizeInBytes)
-{
-    double sizeMb = sizeInBytes.toDouble() / 1000000;
-    if (sizeMb < 0.1) {
-        // 0.1 Mb is the minimum size shown for attachment
-        sizeMb = 0.1;
-    }
-    return QString().sprintf("(%.1f Mb)", sizeMb); // Use loc string when available
-}
-
-/*!
     Update the list layout height
 */
 void NmAttachmentList::updateLayout()
 {
     // Fix this when progress bar is used
-    mListWidget->setMaximumHeight(count() * 29); 
+    mListWidget.setMaximumHeight(count() * 56); 
     QTimer::singleShot(1, this, SLOT(delayedLayoutChangeInfo()));
 }
 
@@ -213,3 +220,4 @@
 {
     emit attachmentListLayoutChanged();
 }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/src/nmattachmentpicker.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Utility class for launching different file pickers
+*
+*/
+
+#include "nmuiheaders.h"
+
+
+/*!
+    \class NmAttachmentPicker
+    \brief Attachment picker for mail editor
+*/
+
+/*!
+    Constructor
+*/
+NmAttachmentPicker::NmAttachmentPicker(QObject* parent):
+    QObject(parent),
+    mRequest(NULL)
+{
+}
+
+/*!
+    Destructor
+*/
+NmAttachmentPicker::~NmAttachmentPicker()
+{
+    delete mRequest;
+}
+
+/*!
+    Send request to start Photo picker 
+*/
+void NmAttachmentPicker::fetchImage()
+{
+    fetch(IMAGE_FETCHER_INTERFACE, IMAGE_FETCHER_OPERATION);
+}
+
+/*!
+    Send request to start Music picker 
+*/
+void NmAttachmentPicker::fetchAudio()
+{
+    fetch(AUDIO_FETCHER_INTERFACE, AUDIO_FETCHER_OPERATION);    
+}
+
+/*!
+    Send request to start Video picker 
+*/
+void NmAttachmentPicker::fetchVideo()
+{
+
+}
+
+/*!
+    Send request to start general file picker 
+*/
+void NmAttachmentPicker::fetchOther()
+{
+
+}
+
+/*!
+    Construct & send appmgr request to start appropriate picker   
+*/
+void NmAttachmentPicker::fetch(const QString& interface, 
+    const QString& operation)
+{
+    if (mRequest) {
+        delete mRequest;
+        mRequest = NULL;
+    }	
+    mRequest = mAppmgr.create(interface, operation, true);
+
+    if (mRequest) {
+        mRequest->setSynchronous(false);
+        connect(mRequest, SIGNAL(requestOk(const QVariant&)),
+                this, SIGNAL(attachmentsFetchOk(const QVariant&)));
+
+        connect(mRequest, SIGNAL(requestError(int, const QString&)),
+                this, SIGNAL(attachmentsFetchError(int, const QString&)));
+        
+        if (!(mRequest)->send()) {
+            //sending request failed
+            NMLOG("appmgr: send request failed");
+        }
+    }
+    else {
+        //create request failed
+        NMLOG("appmgr: create request failed");
+    }      	  
+}
--- a/emailuis/nmailui/src/nmeditorcontent.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmeditorcontent.cpp	Mon May 03 12:23:15 2010 +0300
@@ -28,12 +28,12 @@
 */
 NmEditorContent::NmEditorContent(QGraphicsItem *parent,
                                  NmEditorView *parentView,
-                                 HbDocumentLoader *documentLoader) :
+                                 HbDocumentLoader *documentLoader,
+                                 QNetworkAccessManager &manager) :
     HbWidget(parent),
     mHeaderWidget(NULL),
     mParentView(parentView),
     mEditorLayout(NULL),
-    mMessage(NULL),
     mMessageBodyType(PlainText),
     mEditorWidget(NULL),
     mBackgroundScrollArea((NmBaseViewScrollArea*)parent)
@@ -45,6 +45,12 @@
 
     // Get pointer to body text area handling widget
     mEditorWidget = qobject_cast<NmEditorTextEdit *>(documentLoader->findWidget(NMUI_EDITOR_BODY));
+
+    // Set body editor to use NmEditorTextDocument
+    NmEditorTextDocument *textDocument = new NmEditorTextDocument(manager);
+    mEditorWidget->setDocument(textDocument); 
+    textDocument->setParent(mEditorWidget); // ownership changes
+
     mEditorWidget->init(this, mBackgroundScrollArea);
     
     // Remove the comment to enable style picker menu item.
@@ -63,47 +69,53 @@
 }
 
 /*!
-    Fill message data into header and body fileds
+    Fill message data into header and body fileds. If reply envelopw is
+    present, reply header is generated and set to editor. Reply
+    envelope ownership is not transferred here.
  */
-void NmEditorContent::setMessageData(NmMessage *message)
+void NmEditorContent::setMessageData(const NmMessage &message,
+                                     NmMessageEnvelope *replyMsgEnvelope)
 {
-    if(message)	{
-        mMessage = message;
-        // Check which part is present. Html or plain text part
-        NmMessagePart *htmlPart = mMessage->htmlBodyPart();
-        NmMessagePart *plainPart = mMessage->plainTextBodyPart();
+    // Check which part is present. Html or plain text part
+    const NmMessagePart *htmlPart = message.htmlBodyPart();
+    const NmMessagePart *plainPart = message.plainTextBodyPart();
 
-        QList<NmMessagePart*> parts;
-        mMessage->attachmentList(parts);
-        NmMessagePart* attachmentHtml = NULL;
+    QList<NmMessagePart*> parts;
+    message.attachmentList(parts);
+    NmMessagePart* attachmentHtml = NULL;
 
-        foreach(NmMessagePart* part, parts) {
-            if (part->contentDescription().startsWith( NmContentDescrAttachmentHtml )) {
-                    attachmentHtml = part;
-                }
+    foreach(NmMessagePart* part, parts) {
+        if (part->contentDescription().startsWith( NmContentDescrAttachmentHtml )) {
+                attachmentHtml = part;
             }
-        
-        if (htmlPart) {	    
-            // Html part was present, set it to HbTextEdit
-            // This will generate contentsChanged() event which is used to
-            // set new height for the editor widget and content.
-            if(attachmentHtml){
-                QString htmlText = htmlPart->textContent() + attachmentHtml->textContent();
-                emit setHtml(htmlText);
-            }
-            else{
-                emit setHtml(htmlPart->textContent());    
-            }
-
-            mMessageBodyType = HTMLText;
+        }
+    
+    if (htmlPart) {	    
+        // Html part was present, set it to HbTextEdit
+        // This will generate contentsChanged() event which is used to
+        // set new height for the editor widget and content.
+        if(attachmentHtml){
+            QString htmlText = htmlPart->textContent() + attachmentHtml->textContent();
+            emit setHtml(htmlText);
+        } 
+        else{
+            emit setHtml(htmlPart->textContent());    
         }
-        else if (plainPart) {
-            // Plain text part was present, set it to HbTextEdit
-            emit setPlainText(plainPart->textContent());
-            mMessageBodyType = PlainText;
-        }
+        mMessageBodyType = HTMLText;
+    }
+    else if (plainPart) {
+        // Plain text part was present, set it to HbTextEdit
+        emit setPlainText(plainPart->textContent());
+        mMessageBodyType = PlainText;
     }
-}
+    
+    // Original message text to editor content fiel
+    if (replyMsgEnvelope && mEditorWidget) {          
+        QTextCursor cursor = mEditorWidget->textCursor();
+        cursor.setPosition(1);
+        cursor.insertHtml(NmUtilities::createReplyHeader(*replyMsgEnvelope));
+    }
+}  
 
 /*!
    This method set new height for the editor content when header or body field
--- a/emailuis/nmailui/src/nmeditorheader.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmeditorheader.cpp	Mon May 03 12:23:15 2010 +0300
@@ -102,7 +102,7 @@
     NmAttachmentListWidget *attachmentList = qobject_cast<NmAttachmentListWidget *>
         (mDocumentLoader->findWidget(NMUI_EDITOR_ATTACHMENT_LIST));
     // Create attachment list handling object
-    mAttachmentList = new NmAttachmentList(attachmentList);
+    mAttachmentList = new NmAttachmentList(*attachmentList);
 
     mPriorityIconLabel = qobject_cast<HbLabel *>
         (mDocumentLoader->findWidget(NMUI_EDITOR_PRIORITY_ICON));
@@ -135,8 +135,10 @@
             this, SLOT(groupBoxExpandCollapse()));
 
     // Signals for handling the attachment list
-    connect(mAttachmentList->listWidget(), SIGNAL(longPressed(int, QPointF)),
-            this, SLOT(attachmentSelected(int, QPointF)));
+    connect(&mAttachmentList->listWidget(), SIGNAL(itemActivated(int)),
+            this, SLOT(attachmentActivated(int)));
+    connect(&mAttachmentList->listWidget(), SIGNAL(longPressed(int, QPointF)),
+            this, SLOT(attachmentLongPressed(int, QPointF)));
     connect(mAttachmentList ,SIGNAL(attachmentListLayoutChanged()),
             this, SLOT(sendHeaderHeightChanged()));
 }
@@ -172,7 +174,7 @@
 
     qreal attHeight = 0;
     if (mAttachmentList && mAttachmentList->count() > 0) {
-        attHeight = mAttachmentList->listWidget()->geometry().height();
+        attHeight = mAttachmentList->listWidget().geometry().height();
     }
 
     return (int)(toHeight + recipientGroupBoxHeight + subjectHeight + attHeight);
@@ -374,8 +376,8 @@
 }
 
 /*!
-   Remove attachment from the list. This function is used when attachment adding has failed
-   and attachment id is not known.
+   Remove attachment from the list. This function is used when
+   attachment adding has failed and attachment id is not known.
  */
 void NmEditorHeader::removeAttachment(const QString &fileName)
 {
@@ -384,6 +386,16 @@
 }
 
 /*!
+   Remove attachment from the list. This function is used when
+   attachment has been selected for remove.
+ */
+void NmEditorHeader::removeAttachment(const NmId &nmid)
+{
+    mAttachmentList->removeAttachment(nmid);
+    sendHeaderHeightChanged();
+}
+
+/*!
     This function set messagePartId and fileSize for attachment.
  */
 void NmEditorHeader::setAttachmentParameters(
@@ -400,13 +412,33 @@
 }
 
 /*!
+   Attachment launched from attachment list by "open" menu item.
+ */
+void NmEditorHeader::launchAttachment(const NmId &itemId)
+{
+    attachmentActivated(mAttachmentList->indexByNmId(itemId));
+}
+
+/*!
+   Slot attachment activated from attachment list by short tap.
+ */
+void NmEditorHeader::attachmentActivated(int arrayIndex)
+{
+    const char *engineerText="Unable to open. Attachment file type not supported";
+    const char *localizedText="txt_mail_dialog_unable_to_open_attachment_file_ty";
+	
+    QFile launchFile(mAttachmentList->getFullFileNameByIndex(arrayIndex));
+    if (NmUtilities::openFile( launchFile ) == NmNotFoundError) {
+        NmUtilities::displayErrorNote( QObject::tr(engineerText, localizedText) ); 
+    }
+}
+
+/*!
    Slot attachment selected from attachment list by longtap.
  */
-void NmEditorHeader::attachmentSelected(int arrayIndex, QPointF point)
+void NmEditorHeader::attachmentLongPressed(int arrayIndex, QPointF point)
 {
-    Q_UNUSED(point);
     // Remove selected attachment
-    emit attachmentRemoved(mAttachmentList->nmIdByIndex(arrayIndex));
-    mAttachmentList->removeAttachment(arrayIndex);
+    emit attachmentLongPressed(mAttachmentList->nmIdByIndex(arrayIndex), point);
 }
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/src/nmeditortextdocument.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include "nmuiheaders.h"
+
+static const char *NMUI_DOC_DEFAULT_IMAGE = ":/trolltech/styles/commonstyle/images/file-16.png";
+
+/*!
+    \class NmEditorTextDocument
+    \brief Text document with URL image fetching support
+*/
+
+/*!
+    Constructor. Caller needs to ensure manager is valid reference.
+*/
+NmEditorTextDocument::NmEditorTextDocument(QNetworkAccessManager &manager) :
+    mManager(manager)
+{
+    connect(&mManager, SIGNAL(finished(QNetworkReply*)),
+        this, SLOT(replyFinished(QNetworkReply*)));
+}
+
+/*!
+    Destructor
+*/
+NmEditorTextDocument::~NmEditorTextDocument()
+{
+    for(int i = 0; i < mReplyList.count(); i++) {
+        mReplyList.at(i)->abort();
+        mReplyList.at(i)->deleteLater();
+    }
+}
+
+/*!
+    replyFinished. Signaled when the image has been loaded from Internet.
+*/
+void NmEditorTextDocument::replyFinished(QNetworkReply *reply)
+{
+    if(reply->error() == QNetworkReply::NoError) {
+        QPixmap image;
+        if(image.loadFromData(reply->readAll())) { 
+            addResource(QTextDocument::ImageResource, reply->url(), QVariant(image));
+            emit documentLayoutChanged();
+        }
+    }
+    mReplyList.removeAll(reply);
+    reply->deleteLater();
+}
+
+/*!
+    loadResource. Starts fetching image from given URL.
+*/
+QVariant NmEditorTextDocument::loadResource(int type, const QUrl &name)
+{
+    QVariant retVal;
+    
+    if(type == QTextDocument::ImageResource) {    
+        // Load image data from the cache if it exists
+        if(mManager.cache()) {
+            QIODevice *ioDevice = mManager.cache()->data(name);
+            if(ioDevice) {
+                QPixmap image;
+                if(image.loadFromData(ioDevice->readAll())) {
+                    addResource(QTextDocument::ImageResource, name, QVariant(image));
+                    retVal = QVariant(image);
+                }
+                delete ioDevice;
+            }
+        }
+        
+        // Loading from cache failed, try from internet.
+        if(retVal.isNull()) {
+            // Make a request to load the image from Internet. Store the reply
+            // to be able to abort it if necessary.
+            QNetworkRequest request(name);
+            mReplyList.append(mManager.get(request));
+            
+            // Load Qt's default image to prevent multiple calls to loadResource.
+            // This function keeps on getting called repeatedly until 
+            // resource is added. 
+            QPixmap image = QPixmap(QLatin1String(NMUI_DOC_DEFAULT_IMAGE));
+            addResource(QTextDocument::ImageResource, name, QVariant(image));
+            retVal = image;
+        }
+    }
+    
+    // Could not find the resource -> try Qt implementation
+    if(retVal.isNull()) {
+        retVal = QTextDocument::loadResource(type, name);
+    }
+    return retVal;
+}
--- a/emailuis/nmailui/src/nmeditorview.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmeditorview.cpp	Mon May 03 12:23:15 2010 +0300
@@ -25,8 +25,6 @@
 static const int nmOrientationTimer=100;
 
 static const QString Delimiter("; ");
-#define IMAGE_FETCHER_INTERFACE "Image"
-#define FETCHER_OPERATION "fetch(QVariantMap,QVariant)"
 
 /*!
 	\class NmEditorView
@@ -41,20 +39,22 @@
     NmUiStartParam* startParam,
     NmUiEngine &uiEngine,
     QGraphicsItem *parent)
-: NmBaseView(startParam, parent),
-mApplication(application),
-mUiEngine(uiEngine),
-mDocumentLoader(NULL),
-mScrollArea(NULL),
-mEditWidget(NULL),
-mHeaderWidget(NULL),
-mMessage(NULL),
-mContentWidget(NULL),
-mAttachContextMenu(NULL),
-mMessageCreationOperation(NULL),
-mAddAttachmentOperation(NULL),
-mRemoveAttachmentOperation(NULL),
-mCheckOutboxOperation(NULL)
+    : NmBaseView(startParam, parent),
+      mApplication(application),
+      mUiEngine(uiEngine),
+      mDocumentLoader(NULL),
+      mScrollArea(NULL),
+      mEditWidget(NULL),
+      mHeaderWidget(NULL),
+      mMessage(NULL),
+      mContentWidget(NULL),
+      mAttachmentListContextMenu(NULL),
+      mMessageCreationOperation(NULL),
+      mAddAttachmentOperation(NULL),
+      mRemoveAttachmentOperation(NULL),
+      mCheckOutboxOperation(NULL),
+      mWaitDialog(NULL),
+      mAttachmentPicker(NULL)
 {
     mDocumentLoader	= new HbDocumentLoader();
     // Set object name
@@ -72,18 +72,24 @@
 */
 NmEditorView::~NmEditorView()
 {
+    // It is clearer that the operations are not owned by parent QObject as
+    // they are not allocated in the constructor.
+    delete mRemoveAttachmentOperation;
+    delete mAddAttachmentOperation;
     delete mMessageCreationOperation;
     delete mCheckOutboxOperation;
-
     delete mMessage;
-
     mWidgetList.clear();
     delete mDocumentLoader;
-
     delete mContentWidget;
-
     delete mPrioritySubMenu;
-    delete mAttachContextMenu;
+    
+    if (mAttachmentListContextMenu) {
+        mAttachmentListContextMenu->clearActions();
+        delete mAttachmentListContextMenu;
+    }
+    delete mWaitDialog;
+    delete mAttachmentPicker;    
 }
 
 /*!
@@ -109,7 +115,8 @@
         mScrollAreaContents = qobject_cast<HbWidget *>
              (mDocumentLoader->findObject(NMUI_EDITOR_SCROLL_AREA_CONTENTS));
 
-        mContentWidget = new NmEditorContent(mScrollArea, this, mDocumentLoader);
+        mContentWidget = new NmEditorContent(mScrollArea, this, mDocumentLoader, 
+            mApplication.networkAccessManager());
         mEditWidget = mContentWidget->editor();
         mHeaderWidget = mContentWidget->header();
 
@@ -151,8 +158,8 @@
     connect(mApplication.mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)),
             this, SLOT(orientationChanged(Qt::Orientation)));
     // Signal for handling the attachment list selection
-    connect(mHeaderWidget, SIGNAL(attachmentRemoved(const NmId)),
-            this, SLOT(removeAttachment(const NmId)));
+    connect(mHeaderWidget, SIGNAL(attachmentLongPressed(NmId, QPointF)),
+            this, SLOT(attachmentLongPressed(NmId, QPointF)));
 }
 
 /*!
@@ -193,6 +200,7 @@
     Q_UNUSED(orientation);
     // Adjust content height
     QTimer::singleShot(nmOrientationTimer, this, SLOT(adjustViewDimensions()));
+    QTimer::singleShot(nmOrientationTimer, mHeaderWidget, SLOT(sendHeaderHeightChanged()));
 }
 
 /*!
@@ -225,7 +233,7 @@
 
 /*
    Query user if we want to exit the editor
- */
+*/
 bool NmEditorView::okToExitView()
 {
     bool okToExit = true;
@@ -280,9 +288,42 @@
 */
 void NmEditorView::aboutToExitView()
 {
+    if (mStartParam && mStartParam->service() && mUiEngine.isSendingMessage()) {
+        // The application was started as a service and is about to close.
+        // A message is still being sent and in order to make sure that the
+        // send operation is not cancelled, let us display a modal wait dialog.
+
+        // When the send operation is completed, the dialog is automatically
+        // closed.
+        connect(&mUiEngine, SIGNAL(sendOperationCompleted()),
+                this, SLOT(handleSendOperationCompleted()));
+
+        // Close and delete the previous wait dialog if one exists.
+        if (mWaitDialog) {
+            mWaitDialog->close();
+            delete mWaitDialog;
+        }
+
+        // Construct and setup the wait dialog.
+        mWaitDialog = new HbProgressDialog();
+        mWaitDialog->setText(hbTrId("txt_mail_shareui_sending_please_wait"));
+
+        if (!XQServiceUtil::isEmbedded()) {
+            // Hide the application.
+            XQServiceUtil::toBackground(true);
+        }
+
+        // Display the wait dialog.
+        mWaitDialog->exec();
+        delete mWaitDialog;
+        mWaitDialog = NULL;
+    }
+
     // These operations need to be stopped before message can be deleted
     delete mAddAttachmentOperation;
+    mAddAttachmentOperation = NULL;
     delete mRemoveAttachmentOperation;
+    mRemoveAttachmentOperation = NULL;
 
     if (mMessage) { // this is NULL if sending is started
         // Delete message from drafts
@@ -297,14 +338,14 @@
     Find message data based on start parameters.  Method is called
     when editor is started. If message data is found it means that
     operation is forward or reply message.
- */
+*/
 void NmEditorView::setMessageData()
 {
     // Check the outbox.
     delete mCheckOutboxOperation;
-	mCheckOutboxOperation = NULL;
+    mCheckOutboxOperation = NULL;
 	
-	mCheckOutboxOperation = mUiEngine.checkOutbox(mStartParam->mailboxId());
+    mCheckOutboxOperation = mUiEngine.checkOutbox(mStartParam->mailboxId());
     
     if (mCheckOutboxOperation) {
         connect(mCheckOutboxOperation, SIGNAL(operationCompleted(int)),
@@ -316,7 +357,7 @@
 }
 
 /*!
- */
+*/
 void NmEditorView::startMessageCreation(NmUiEditorStartMode startMode)
 {
     NmId mailboxId = mStartParam->mailboxId();
@@ -324,9 +365,9 @@
     NmId msgId = mStartParam->messageId();
     
     delete mMessageCreationOperation;
-	mMessageCreationOperation = NULL;
+    mMessageCreationOperation = NULL;
 	
-	// original message is now fetched so start message creation
+    // original message is now fetched so start message creation
     if (startMode == NmUiEditorForward) {
         mMessageCreationOperation = mUiEngine.createForwardMessage(mailboxId, msgId);
     }
@@ -350,7 +391,7 @@
 
 /*!
     Starting the message sending is handled here.
- */
+*/
 void NmEditorView::startSending()
 {
     // The message contents should be verified
@@ -358,7 +399,9 @@
     
     // verify addresses before sending
     QList<NmAddress> invalidAddresses;
-    NmUtilities::getRecipientsFromMessage(*mMessage, invalidAddresses, NmUtilities::InvalidAddress);
+    if (mMessage) {
+        NmUtilities::getRecipientsFromMessage(*mMessage, invalidAddresses, NmUtilities::InvalidAddress);
+    }
     
     bool okToSend = true;
     if (invalidAddresses.count() > 0) {
@@ -377,9 +420,16 @@
     }
     
     if (okToSend) {
-        // ownership of mMessage changes
-        mUiEngine.sendMessage(mMessage);
+        QList<NmOperation *> preliminaryOperations;
+        preliminaryOperations.append(mAddAttachmentOperation);
+        preliminaryOperations.append(mRemoveAttachmentOperation);
+        // ownership of mMessage is transferred
+        // ownerships of NmOperations in preliminaryOperations are transferred
+        mUiEngine.sendMessage(mMessage, preliminaryOperations);
         mMessage = NULL;
+        mAddAttachmentOperation = NULL;
+        mRemoveAttachmentOperation = NULL;
+        preliminaryOperations.clear();
         // sending animation should be shown here, then exit
         QTimer::singleShot(1000, &mApplication, SLOT(popView()));
     }
@@ -387,7 +437,7 @@
 
 /*!
     This is signalled by mMessageCreationOperation when message is created.
- */
+*/
 void NmEditorView::messageCreated(int result)
 {
     delete mMessage;
@@ -408,7 +458,7 @@
 
 /*!
    Updates the message with the editor contents.
- */
+*/
 void NmEditorView::updateMessageWithEditorContents()
 {
     if (mMessage) {
@@ -461,7 +511,7 @@
 /*!
     Updates the message with the editor contents. Called only once when the
     editor is launched.
- */
+*/
 void NmEditorView::fillEditorWithMessageContents()
 {
     if (!mMessage || !mContentWidget) {
@@ -571,7 +621,21 @@
                                        *attachmentHtml);
     }
 
-    mContentWidget->setMessageData(mMessage);
+    // Set content data
+    if (editorStartMode==NmUiEditorReply||
+        editorStartMode==NmUiEditorReplyAll||
+        editorStartMode==NmUiEditorForward){
+        // Pass envelope ptr only when needed for reaply header creation
+        NmMessage *originalMessage = mUiEngine.message(mStartParam->mailboxId(), 
+                                                       mStartParam->folderId(), 
+                                                       mStartParam->messageId());
+        mContentWidget->setMessageData(*mMessage, &originalMessage->envelope()); 
+        delete originalMessage;
+    }
+    else{
+        // Reply header not needed, do not pass envelope ptr
+        mContentWidget->setMessageData(*mMessage);     
+    }
     
     // Get list of attachments from the message and set those into UI attachment list
     QList<NmMessagePart*> attachments;
@@ -620,7 +684,33 @@
             if( list[i]->availabilityCondition() == NmAction::NmSendable ) {
                 list[i]->setEnabled(false);
             }
-        }
+            //object name set in NmBaseClientPlugin::createEditorViewCommands
+            //temporary solution
+            else if (list[i]->objectName() == "baseclientplugin_attachaction") {
+                HbToolBarExtension* extension = new HbToolBarExtension();
+                mAttachmentPicker = new NmAttachmentPicker(this);
+                
+                if (extension && mAttachmentPicker) {
+                    connect(mAttachmentPicker, SIGNAL(attachmentsFetchOk(const QVariant &)),
+                        this, SLOT(onAttachmentReqCompleted(const QVariant &)));            
+                                                
+                    HbAction* actionPhoto = 
+                        extension->addAction(hbTrId("txt_mail_list_photo"), extension, SLOT(close()));
+                    connect(actionPhoto, SIGNAL(triggered()), mAttachmentPicker, SLOT(fetchImage()));
+                    
+                    HbAction* actionMusic = 
+                        extension->addAction(hbTrId("txt_mail_list_music"), extension, SLOT(close()));
+                    connect(actionMusic, SIGNAL(triggered()), mAttachmentPicker, SLOT(fetchAudio()));
+                    
+                    HbAction* actionVideo = 
+                        extension->addAction(hbTrId("txt_mail_list_video"), extension, SLOT(close()));                
+                    HbAction* actionOther = 
+                        extension->addAction(hbTrId("txt_mail_list_other"), extension, SLOT(close()));
+            
+                    list[i]->setToolBarExtension(extension);
+                }
+            }            
+        }        
     }
 }
 
@@ -663,36 +753,31 @@
     }
     else if (actionResponse.menuType() == NmActionToolbar) {
         switch (responseCommand) {
-            case NmActionResponseCommandSendMail: {
+        case NmActionResponseCommandSendMail: {
+            // Just in case send mail would be somehow accessible during message creation or
+            // outobox checking
+            if (!mCheckOutboxOperation->isRunning()
+                && (!mMessageCreationOperation || !mMessageCreationOperation->isRunning())) {
                 startSending();
-                break;
             }
-            case NmActionResponseCommandAttach : {
-                // Do nothing if previous addAttachment operation is still ongoing.
-                if(!mAddAttachmentOperation || !mAddAttachmentOperation->isRunning()) {
-                    //will be replaced by toolbar extension                                
-                    if (!mAttachContextMenu) {
-                        QList<NmAction *> actionList;
-                        NmAction* actionPhoto = new NmAction(0);
-                        actionPhoto->setText(QObject::tr("Photo", "txt_nmailui_photo_attach"));
-                        actionList.append(actionPhoto);
-                        connect(actionPhoto, SIGNAL(triggered()), this, SLOT(attachImage()));
-                                
-                        mAttachContextMenu = new HbMenu();
-                        mAttachContextMenu->clearActions();
-
-                        for (int i=0;i<actionList.count();i++) {
-                            mAttachContextMenu->addAction(actionList[i]);
-                        }
-                    }
-                
-                    QPointF menuPos(qreal(20),qreal(520));
-                    mAttachContextMenu->exec(menuPos);
-                }
-                break;
-            }
-            default:
-                break;
+            break;
+        }
+        default:
+            break;
+        }
+    }
+    else if (actionResponse.menuType() == NmActionContextMenu) {
+        switch (responseCommand) {
+        case NmActionResponseCommandRemoveAttachment: {
+            removeAttachmentTriggered();
+            break;
+        }
+        case NmActionResponseCommandOpenAttachment: {
+            openAttachmentTriggered();
+            break;
+        }
+        default:
+        	break;
         }
     }
 }
@@ -700,7 +785,7 @@
 /*!
     This function converts background scroll area coordinate point into
     body text editor coordinate point.
- */
+*/
 QPointF NmEditorView::viewCoordinateToEditCoordinate(QPointF orgPoint)
 {
     QPointF contentWidgetPos = mScrollAreaContents->pos();
@@ -845,7 +930,7 @@
 /*!
    Adds a prefix to the subject for reply or forward. 
    Strips other occurrences of the prefix from the beginning.
- */
+*/
 QString NmEditorView::addSubjectPrefix( NmUiEditorStartMode startMode, const QString &subject )
 {
     QString newSubject(subject.trimmed());
@@ -886,29 +971,6 @@
     return newSubject;
 }
 
-#ifdef Q_OS_SYMBIAN
-
-void NmEditorView::attachImage()
-{      
-    XQAiwRequest *request;
-    XQApplicationManager mAppmgr;
-    request = mAppmgr.create(IMAGE_FETCHER_INTERFACE, FETCHER_OPERATION, true);
-        
-    if (request) {
-        connect(request, SIGNAL(requestOk(const QVariant&)), this, SLOT(onAttachmentReqCompleted(const QVariant&)));
-    }
-    else {
-        //create request failed
-        NMLOG("appmgr: create request failed");
-        return;
-    }               
-
-    if (!(request)->send()) {
-        //sending request failed
-        NMLOG("appmgr: send request failed");
-    }
-    delete request;
-}
 
 /*!
     This slot is called when 'attachment picker' request has been performed succesfully
@@ -921,7 +983,21 @@
     }
 }
 
-#endif
+
+/*!
+    Closes the wait dialog if one exists.
+    
+    This slot is called if the mail application has been started as a service
+    and is about to close. Closing the application while still sending a message
+    may cause unwanted cancelling of the operation.
+*/
+void NmEditorView::handleSendOperationCompleted()
+{
+    if (mWaitDialog) {
+        mWaitDialog->close();
+    }
+}
+
 
 /*!
     Add list of attachments
@@ -937,9 +1013,7 @@
         NMLOG(fileName);
     }
 
-    // Start operation to attach file or list of files into mail message
-    // This will also copy files into message store
-    // Delete previous operation
+    // Delete previous operation if it's not running.
     if (mAddAttachmentOperation) {
         if (!mAddAttachmentOperation->isRunning()) {
             delete mAddAttachmentOperation;
@@ -947,9 +1021,12 @@
         }
     }
     if (!mAddAttachmentOperation) {
+        // Start operation to attach file or list of files into mail message.
+        // This will also copy files into message store.
         mAddAttachmentOperation = mUiEngine.addAttachments(*mMessage, fileNames);
 
         if (mAddAttachmentOperation) {
+            enableToolBarAttach(false);
             // Signal to inform completion of one attachment
             connect(mAddAttachmentOperation,
                     SIGNAL(operationPartCompleted(const QString &, const NmId &, int)),
@@ -966,31 +1043,69 @@
 }
 
 /*!
-    This slot is called when attachment has been deleted from UI
+    This slot is called to create context menu when attachment has been selected
+    from UI by longpress.
 */
-void NmEditorView::removeAttachment(const NmId attachmentPartId)
+void NmEditorView::attachmentLongPressed(NmId attachmentPartId, QPointF point)
 {
-    // Delete previous operation
-    if (mRemoveAttachmentOperation) {
-        if (!mRemoveAttachmentOperation->isRunning()) {
-            delete mRemoveAttachmentOperation;
-            mRemoveAttachmentOperation = NULL;
+    // Store id of the attachment to be removed into member.
+    // It is used by removeAttachmentTriggered later if 'remove' selected.
+    mSelectedAttachment = attachmentPartId;
+	
+    if (!mAttachmentListContextMenu) {
+        mAttachmentListContextMenu = new HbMenu();
+    }
+    mAttachmentListContextMenu->clearActions();
+    NmActionRequest request(this, NmActionContextMenu, NmActionContextViewEditor,
+        NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(),
+        mStartParam->messageId());
+    NmUiExtensionManager &extensionManager = mApplication.extManager();
+    if (&extensionManager) {
+        QList<NmAction*> actionList;
+        extensionManager.getActions(request, actionList);
+        for (int i = 0; i < actionList.count(); ++i) {
+            mAttachmentListContextMenu->addAction(actionList[i]);
         }
     }
-    if (!mRemoveAttachmentOperation) {
-        mRemoveAttachmentOperation = mUiEngine.removeAttachment(*mMessage, attachmentPartId);
-    }
+
+    // Add menu position check here, so that it does not go outside of the screen
+    QPointF menuPos(point.x(),point.y());
+    mAttachmentListContextMenu->exec(menuPos);
 }
 
 /*!
     This is signalled by mAddAttachmentOperation when the operation is
     completed for one attachment.
- */
+*/
 void NmEditorView::oneAttachmentAdded(const QString &fileName, const NmId &msgPartId, int result)
 {
-    if (result == NmNoError) {
-        // Get file size from the message when it works
-        mHeaderWidget->setAttachmentParameters(fileName, msgPartId, QString("0"), result);
+    if (result == NmNoError && mMessage) {
+        // Need to get the message again because new attachment part has been added.
+        NmId mailboxId = mMessage->mailboxId();
+        NmId folderId = mMessage->parentId();
+        NmId msgId = mMessage->envelope().id();
+
+        delete mMessage;
+        mMessage = NULL;
+        
+        mMessage = mUiEngine.message(mailboxId, folderId, msgId);
+
+        if (mMessage) {
+            // Get attachment list from the message
+            QList<NmMessagePart*> attachmentList;
+            mMessage->attachmentList(attachmentList);
+        
+            // Search newly added attachment from the list
+            for (int i=0; i<attachmentList.count(); i++) {
+                if (attachmentList[i]->id() == msgPartId) {
+                    // Get attachment file size and set it into UI
+                    mHeaderWidget->setAttachmentParameters(fileName,
+                        msgPartId,
+                        QString().setNum(attachmentList[i]->size()),
+                        result);
+                }
+            }
+        }
     }
     else {
         // Attachment adding failed. Show an error note and remove from UI attachment list.
@@ -1002,9 +1117,10 @@
 /*!
     This is signalled by mAddAttachmentOperation when the operation is
     completed totally.
- */
+*/
 void NmEditorView::allAttachmentsAdded(int result)
 {
+    enableToolBarAttach(true);
     if (result != NmNoError) {
         HbMessageBox::warning(hbTrId("txt_mail_dialog_unable_to_add_attachment"));
     }
@@ -1012,7 +1128,7 @@
 
 /*!
     This is signalled by mCheckOutboxOperation when the operation is complete.
- */
+*/
 void NmEditorView::outboxChecked(int result)
 {
     bool messageInOutbox = false;
@@ -1120,5 +1236,82 @@
     return addressesString;
 }
 
+/*!
+    This slot is called when 'remove' is selected from attachment list context menu.
+*/
+void NmEditorView::removeAttachmentTriggered()
+{
+    // Delete previous operation
+    if (mRemoveAttachmentOperation) {
+        if (!mRemoveAttachmentOperation->isRunning()) {
+            delete mRemoveAttachmentOperation;
+            mRemoveAttachmentOperation = NULL;
+        }
+    }
+    if (!mRemoveAttachmentOperation) {
+        // Remove from UI
+        mHeaderWidget->removeAttachment(mSelectedAttachment);
+        // Remove from message store
+        mRemoveAttachmentOperation = mUiEngine.removeAttachment(*mMessage, mSelectedAttachment);
+        if (mRemoveAttachmentOperation) {
+            // Signal to inform the remove operation completion
+            connect(mRemoveAttachmentOperation,
+                    SIGNAL(operationCompleted(int)),
+                    this,
+                    SLOT(attachmentRemoved(int)));
+        }
+    }
+}
+
+/*!
+    This slot is called by mRemoveAttachmentOperation when the operation is
+    completed. There is no need to update UI because it was already updated.
+ */
+void NmEditorView::attachmentRemoved(int result)
+{
+    // It is not desided yet what to do if operation fails
+    Q_UNUSED(result);
+    
+    if (mMessage) {
+        // Reload message because one attachment has been removed
+        NmId mailboxId = mMessage->mailboxId();
+        NmId folderId = mMessage->parentId();
+        NmId msgId = mMessage->envelope().id();
+
+        delete mMessage;
+        mMessage = NULL;
+    
+        mMessage = mUiEngine.message(mailboxId, folderId, msgId);
+    }
+}
+
+/*!
+    This slot is called when 'open' is selected from attachment list context menu.
+*/
+void NmEditorView::openAttachmentTriggered()
+{
+    mHeaderWidget->launchAttachment(mSelectedAttachment);
+}
+
+/*!
+   Enables/disables toolbar extension for attach
+*/
+void NmEditorView::enableToolBarAttach(bool enable)
+{
+    HbToolBar *tb = toolBar();
+    if (tb) {
+        QList<QAction *> toolbarList = tb->actions();
+        int count = toolbarList.count();
+        for (int i = 0; i < count; i++) {
+            NmAction *action = static_cast<NmAction *>(toolbarList[i]);
+            //object name set in NmBaseClientPlugin::createEditorViewCommands
+            //temporary solution
+            if (action->objectName() == "baseclientplugin_attachaction") {
+                action->setEnabled(enable);
+            }
+        }
+    }
+}
+
 
 // End of file.
--- a/emailuis/nmailui/src/nmmailboxlistview.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmmailboxlistview.cpp	Mon May 03 12:23:15 2010 +0300
@@ -88,7 +88,7 @@
         if (mMailboxListWidget) {
             NMLOG("nmailui: mailboxlistview: List object loaded");
             // Set item prototype.
-            mMailboxListWidget->setItemPrototype(new NmMailboxListViewItem(mDocumentLoader));
+            mMailboxListWidget->setItemPrototype(new NmMailboxListViewItem(this));
             mMailboxListWidget->setItemRecycling(true);
             QObject::connect(mMailboxListWidget,
                     SIGNAL(activated(const QModelIndex &)),
--- a/emailuis/nmailui/src/nmmailboxlistviewitem.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmmailboxlistviewitem.cpp	Mon May 03 12:23:15 2010 +0300
@@ -25,9 +25,8 @@
 /*!
     Constructor
 */
-NmMailboxListViewItem::NmMailboxListViewItem(HbDocumentLoader *documentLoader)
-: HbListViewItem(),
-mDocumentLoader(documentLoader),
+NmMailboxListViewItem::NmMailboxListViewItem(QGraphicsItem *parent)
+: HbListViewItem(parent),
 mLayout(NULL)
 {
 }
@@ -44,7 +43,7 @@
 */
 HbListViewItem* NmMailboxListViewItem::createItem()
 {
-    return new NmMailboxListViewItem(mDocumentLoader);
+    return new NmMailboxListViewItem(*this);
 }
 
 /*!
--- a/emailuis/nmailui/src/nmmailboxserviceinterface.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmmailboxserviceinterface.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,20 +1,20 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail application service interface used for displaying the
- *              messages contained by the given mailbox. The service utilizes
- *              thr Qt highway framework.
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail application service interface used for displaying the
+*              messages contained by the given mailbox. The service utilizes
+*              thr Qt highway framework.
+*/
 
 //  INCLUDES
 #include "nmuiheaders.h" // Includes also the class header.
--- a/emailuis/nmailui/src/nmmessagelistview.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmmessagelistview.cpp	Mon May 03 12:23:15 2010 +0300
@@ -190,7 +190,11 @@
         mStartParam=NULL;
         // Store new start parameter data
         mStartParam=startParam;
+        // Update the model with new parameters
+        mUiEngine.messageListModel(startParam->mailboxId(), startParam->folderId());
         refreshList();
+        // Refresh the mailboxname 
+        setMailboxName();
     }
     else {
         NMLOG("nmailui: Invalid message list start parameter");
--- a/emailuis/nmailui/src/nmmessagelistviewitem.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmmessagelistviewitem.cpp	Mon May 03 12:23:15 2010 +0300
@@ -21,7 +21,7 @@
     \brief list view item for message list view
 */
 
-static const qreal NmItemLineOpacity = 0.3;
+static const qreal NmItemLineOpacity = 0.4;
 
 /*!
     Constructor
@@ -226,6 +226,7 @@
         drawer->setFillWholeRect(false);
         // Set drawer. Takes ownership of the drawer and deletes previous drawer.
         mNewMsgIcon->setFrameDrawer(drawer);
+        mNewMsgIcon->show();
     } else {
 
         setFontsRead();
@@ -234,6 +235,7 @@
         drawer->setFillWholeRect(false);
         // Set drawer. Takes ownership of the drawer and deletes previous drawer.
         mNewMsgIcon->setFrameDrawer(drawer);
+        mNewMsgIcon->hide();        
     }
 }
 
--- a/emailuis/nmailui/src/nmrecipientfield.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmrecipientfield.cpp	Mon May 03 12:23:15 2010 +0300
@@ -23,6 +23,9 @@
 static const double LabelFieldWidth = 10 * Un + Un;
 static const double ButtonWidth = 9.5 * Un;
 static const double FieldHeight = 5 * Un;
+static const char *ContactsServiceName = "com.nokia.services.phonebookservices";
+static const char *ContactsInterfaceName = "Fetch";
+static const char *ContactsOperationName = "fetch(QString,QString,QString)";
 
 /*!
    Constructor
@@ -37,9 +40,6 @@
     mRecipientsEditor(edit),
     mLaunchContactsPickerButton(button),
     mOwned(false)
-#ifdef Q_OS_SYMBIAN
-    ,mLaunchContactsPickerRequest(NULL)
-#endif
 {
     mLaunchContactsPickerButton->setIcon(NmIcons::getIcon(NmIcons::NmIconContacts));
     createConnections();
@@ -56,9 +56,6 @@
     mRecipientsEditor(NULL),
     mLaunchContactsPickerButton(NULL),
     mOwned(true)
-#ifdef Q_OS_SYMBIAN
-    ,mLaunchContactsPickerRequest(NULL)
-#endif
 {
     mLayoutHorizontal = new QGraphicsLinearLayout(Qt::Horizontal, this);
 
@@ -138,13 +135,6 @@
             mLabel = 0;
         }
     }
-
-#ifdef Q_OS_SYMBIAN
-    if (mLaunchContactsPickerRequest) {
-        delete mLaunchContactsPickerRequest;
-        mLaunchContactsPickerRequest = 0;
-    }
-#endif
 }
 
 /*!
@@ -191,23 +181,30 @@
 */
 void NmRecipientField::launchContactsPicker()
 {
-    if (mLaunchContactsPickerRequest) {
-        delete mLaunchContactsPickerRequest;
-        mLaunchContactsPickerRequest = 0;
+    XQApplicationManager mAppmgr;
+    XQAiwRequest *launchContactsPickerRequest;
+    
+    bool isEmbeded = true;
+    launchContactsPickerRequest = mAppmgr.create(ContactsServiceName, ContactsInterfaceName, 
+                                                 ContactsOperationName, isEmbeded);
+    
+    if (launchContactsPickerRequest) {
+        connect(launchContactsPickerRequest, SIGNAL(requestOk(QVariant)),
+                mRecipientsEditor, SLOT(insertSelectedContacts(QVariant)));
+    }
+    else {
+        // Failed creating request 
+        NMLOG("XQApplicationManager: failed creating fecth contactspicker request.");
+	    return;
     }
 
-    mLaunchContactsPickerRequest = new XQServiceRequest
-	                                   ("com.nokia.services.phonebookservices.Fetch",
-                                        "fetch(QString,QString,QString)", false);
-    connect(mLaunchContactsPickerRequest, SIGNAL(requestCompleted(QVariant)),
-            mRecipientsEditor, SLOT(insertSelectedContacts(QVariant)));
-
-    // "Contacts" will be replaced by a hbTrId when it is ready
-    *mLaunchContactsPickerRequest << tr("Contacts");
-    *mLaunchContactsPickerRequest << KCntActionAll;
-    *mLaunchContactsPickerRequest << KCntActionAll;
-
-    QVariant returnValue;
-    mLaunchContactsPickerRequest->send(returnValue);
+    // Send request
+    if (!launchContactsPickerRequest->send()) {
+       //Failed sending request 
+       NMLOG("XQApplicationManager: failed sending request.");
+    }
+        
+    delete launchContactsPickerRequest;
+    launchContactsPickerRequest = 0;
 }
 #endif
--- a/emailuis/nmailui/src/nmsendserviceinterface.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmsendserviceinterface.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,20 +1,20 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail Application Launcher interface used for interfacing between
- *              QT highway and other applications
- *
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail Application Launcher interface used for interfacing between
+*              QT highway and other applications
+*
+*/
 
 //  INCLUDES
 #include "nmuiheaders.h"
@@ -257,11 +257,12 @@
 /*!
     Class constructor.
 */
-NmSendServiceInterface::NmSendServiceInterface(QObject *parent,
+NmSendServiceInterface::NmSendServiceInterface(QString interfaceName, 
+                                               QObject *parent,
                                                NmUiEngine &uiEngine,
                                                NmApplication *application)
 #ifndef NM_WINS_ENV
-    : XQServiceProvider(QLatin1String("com.nokia.symbian.IMessage.Send"), parent),
+    : XQServiceProvider(interfaceName, parent),
 #else
     : QObject(parent),
 #endif
--- a/emailuis/nmailui/src/nmuidocumentloader.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmuidocumentloader.cpp	Mon May 03 12:23:15 2010 +0300
@@ -49,6 +49,10 @@
         res = new NmViewerHeader();
         res->setObjectName(name);
     }
+    if( type == NmAttachmentListWidget::staticMetaObject.className() ) {
+        res = new NmAttachmentListWidget();
+        res->setObjectName(name);
+    }    
     if (res == NULL) {
         res = HbDocumentLoader::createObject(type, name);
     }
--- a/emailuis/nmailui/src/nmuiextensionmanager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmuiextensionmanager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -62,7 +62,6 @@
 #ifdef Q_OS_SYMBIAN
     // Note: In Symbian the plugin stub files (.qtplugin) must be used whenever
     // a path to plugin is needed - Symbian platform security.
-    const QString KTestPluginExtensionName = "nmtestpluginextension.qtplugin";
     const QString KImapPluginExtensionName = "nmimapclientplugin.qtplugin";
     const QString KPopPluginExtensionName  = "nmpopclientplugin.qtplugin";
     const QString KEasPluginExtensionName = "nmeasclientplugin.qtplugin";
@@ -70,22 +69,11 @@
     QDir pluginDir = QDir(KPluginDirectory);
 #else
     #define NM_WINS_ENV
-    const QString KTestPluginExtensionName = "nmtestpluginextension.dll";
     const QString KImapPluginExtensionName = "nmimapclientplugin.dll";
     const QString KPopPluginExtensionName  = "nmpopclientplugin.dll";
     QDir pluginDir = QDir(QApplication::applicationDirPath());
 #endif
 
-    
-    // Each plugin should be mapped to separate QPluginLoader   
-    QPluginLoader *testPluginLoader = new QPluginLoader(
-            pluginDir.absoluteFilePath(KTestPluginExtensionName));
-    testPluginLoader->load();
-    QObject *testPluginInstance(NULL); 
-    if (testPluginLoader && testPluginLoader->isLoaded()){
-        testPluginInstance = testPluginLoader->instance();    
-    }
-
     QPluginLoader *imapPluginLoader = new QPluginLoader(
             pluginDir.absoluteFilePath(KImapPluginExtensionName));
     QObject *imapPluginInstance = imapPluginLoader->instance();
@@ -100,24 +88,6 @@
     QObject *easPluginInstance = easPluginLoader->instance();
 #endif
 
-    if(testPluginInstance) {
-        NmUiExtensionInterface *interface = qobject_cast<NmUiExtensionInterface*>(testPluginInstance);
-        if (interface) {
-            mExtensions.append(interface);
-        }
-
-        // Store QPluginLoader instances to keep plugins alive.
-        // If QPluginLoader instance for a plugin is deleted, then there
-        // is a risk that some component outside will load and unload
-        // plugin, which will lead into situation where plugin is deleted.
-        // This means that instance in mPluginArray will be invalid.
-        mPluginLoaders.append(testPluginLoader);
-    } else {
-        // We don't have proper plugin instance, so we don't need it's loader.
-        delete testPluginLoader;
-        testPluginLoader = NULL;
-    }
-    
     if(imapPluginInstance) {
         NmUiExtensionInterface *interface = qobject_cast<NmUiExtensionInterface*>(imapPluginInstance);
         if (interface) {
--- a/emailuis/nmailui/src/nmutilities.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmutilities.cpp	Mon May 03 12:23:15 2010 +0300
@@ -17,6 +17,8 @@
 
 #include "nmuiheaders.h"
 
+static const int NmMegabyte = 1048576;
+
 // taken from http://www.regular-expressions.info/email.html
 static const QRegExp EmailAddressPattern("[A-Za-z\\d!#$%&'*+/=?^_`{|}~-]+"
                                          "(?:"
@@ -188,20 +190,18 @@
   Opens file specified by RFile handle. Usually used by viewer
   for opening attachments from message store as RFiles
 */
-int NmUtilities::openFile(RFile &file)
+int NmUtilities::openFile(XQSharableFile &file)
 {
     int ret(NmNotFoundError);
-    XQSharableFile sf;
-    sf.setHandle(file);
     XQApplicationManager aiwMgr;
     XQAiwRequest *request(NULL);
-    request = aiwMgr.create(sf);  
+    request = aiwMgr.create(file);  
     // Create request for the sharable file
     if (request)
     {
         // Set request arguments
         QList<QVariant> args;
-        args << qVariantFromValue(sf);  
+        args << qVariantFromValue(file);  
         request->setArguments(args);
         // Send the request, ownership of request is transferred
         bool res = request->send();
@@ -228,3 +228,146 @@
     return string.mid(0, length - padding.length()) + padding;
 }
 
+/*!
+ * Shows an error note. Used by at least editor and viewer classes.
+ * 
+ */
+void NmUtilities::displayErrorNote(QString noteText)
+{
+	HbNotificationDialog *note = new HbNotificationDialog();
+	
+	note->setIcon(HbIcon(QLatin1String("note_warning")));
+	note->setTitle(noteText);
+	note->setTitleTextWrapping(Hb::TextWordWrap);
+	note->setDismissPolicy(HbPopup::TapAnywhere);
+	note->setAttribute(Qt::WA_DeleteOnClose);
+	note->setSequentialShow(false);
+
+	note->show();
+}
+
+/*!
+    Function returns localized attachment size string based
+    on attachment size in bytes
+ */
+QString NmUtilities::attachmentSizeString(const int sizeInBytes)
+{
+    qreal sizeMb = (qreal)sizeInBytes / (qreal)NmMegabyte;
+    if (sizeMb < 0.1) {
+        // 0.1 Mb is the minimum size shown for attachment
+        sizeMb = 0.1;
+    }
+    return QString().sprintf("(%.1f Mb)", sizeMb); // Use loc string when available    
+}
+
+/*!
+    takes care of necessary error/information note displaying
+*/
+void NmUtilities::displayOperationCompletionNote(const NmOperationCompletionEvent &event)
+{
+    if(event.mCompletionCode != NmNoError) {
+        if(event.mCompletionCode == NmAuthenticationError) {
+            HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeWarning);
+            messageBox->setText(hbTrId("txt_mail_dialog_mail_address_or_password_is_incorr"));
+            // using default timeout
+            HbAction *action = messageBox->exec();
+        }
+        if(event.mCompletionCode == NmServerConnectionError) {
+            HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeWarning);
+            messageBox->setText(hbTrId("txt_mail_dialog_server_settings_incorrect_link"));
+            messageBox->setTimeout(HbMessageBox::NoTimeout);
+            HbAction *action = messageBox->exec();
+            if(action == messageBox->primaryAction()) {
+                // Settings to be launched..
+            }
+        }
+    }
+}
+
+
+/*!
+    Function returns localized "Original message" header
+    in html format based on envelope
+*/
+QString NmUtilities::createReplyHeader(const NmMessageEnvelope &env)
+{
+    QString ret = "<html><body><br><br>";
+    // Append "----- Original message ----" text
+    ret+=hbTrId("txt_mail_editor_reply_original_msg");                  
+    // Append sender
+    ret+="<br>";
+    ret+=hbTrId("txt_mail_editor_reply_from");               
+    ret+=" ";        
+    if (env.sender().displayName().length()){
+        ret+=env.sender().displayName();
+    }
+    else{
+        ret+=env.sender().address();
+    }   
+    // Append sent time
+    ret+="<br>";
+    ret+=hbTrId("txt_mail_editor_reply_sent");   
+    ret+=" ";  
+    HbExtendedLocale locale = HbExtendedLocale::system();
+    QDate sentLocalDate = env.sentTime().toLocalTime().date();
+    ret+=locale.format(sentLocalDate, r_qtn_date_usual);   
+    // Append to recipients
+    const QList<NmAddress> &toList = env.toRecipients();
+    if (toList.count()){
+        ret+="<br>";
+        ret+=hbTrId("txt_mail_editor_reply_to"); 
+        ret+=" ";    
+        for (int i=0;i<toList.count();i++){
+            if (toList[i].displayName().length()){
+                ret+=toList[i].displayName();
+            }
+            else{
+                ret+=toList[i].address();
+            }
+            if (i!=toList.count()-1){
+                ret+=";";          
+            }
+        }    
+    }
+    // Append cc recipients
+    const QList<NmAddress> &ccList = env.ccRecipients();
+    if (ccList.count()){
+        ret+="<br>";
+        ret+=hbTrId("txt_mail_editor_reply_cc"); 
+        ret+=" ";         
+        for (int i=0;i<ccList.count();i++){
+            if (ccList[i].displayName().length()){
+                ret+=ccList[i].displayName();
+            }
+            else{
+                ret+=ccList[i].address();
+            }
+            if (i!=toList.count()-1){
+                ret+=";";          
+            }
+        }    
+    }
+    // Append subject if there is subject to display
+    if (env.subject().length()){
+        ret+="<br>";
+        ret+=hbTrId("txt_mail_editor_reply_subject"); 
+        ret+=" ";    
+        ret+=env.subject();    
+    }
+    // Append priority if it is other than normal  
+    if (env.priority()!=NmMessagePriorityNormal){   
+        ret+="<br>";
+        ret+=hbTrId("txt_mail_editor_reply_importance"); 
+        ret+=" ";    
+        if (env.priority()==NmMessagePriorityLow){
+            ret+=hbTrId("txt_mail_editor_reply_importance_low");         
+        }
+        else {
+            ret+=hbTrId("txt_mail_editor_reply_importance_high"); 
+        }
+    }    
+    ret+="<br></body></html>";
+    return ret;
+}
+
+
--- a/emailuis/nmailui/src/nmviewerheader.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmviewerheader.cpp	Mon May 03 12:23:15 2010 +0300
@@ -96,6 +96,7 @@
     }
 }
 
+
 /*!
     Reimplementation to do some extra painting
 */
@@ -129,6 +130,7 @@
     setHeaderData();
 }
 
+
 /*!
     Function updates data in already created objects. New message pointer
     comes from viewer view, ownership is not transferred.
@@ -232,8 +234,14 @@
     if (mHeaderBox) {        // Initialize recipient box
         if (!mRecipientsBox){
             mRecipientsBox = new HbTextEdit();
+            HbStyle::setItemName(mRecipientsBox, "recipients");
+            mRecipientsBox->setContextMenuFlags(0);
             mRecipientsBox->setReadOnly(true);
-            mRecipientsBox->setFontSpec(HbFontSpec(HbFontSpec::Secondary));        
+            mRecipientsBox->setFontSpec(HbFontSpec(HbFontSpec::Secondary)); 
+            // Set text wrapping for from/to/cc address fields using text document
+            QTextOption textOption = mRecipientsBox->document()->defaultTextOption();
+            textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+            mRecipientsBox->document()->setDefaultTextOption(textOption);
         }
         connect(mRecipientsBox, SIGNAL(cursorPositionChanged(int, int)),
                 this, SLOT(cursorPositionChanged(int, int)));
--- a/emailuis/nmailui/src/nmviewerserviceinterface.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmviewerserviceinterface.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,19 +1,19 @@
 /*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: NMail application service interface used for viewing a mail
- *              according to given id. The service utilizes the Qt highway framework.
- */
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: NMail application service interface used for viewing a mail
+*              according to given id. The service utilizes the Qt highway framework.
+*/
 
 //  INCLUDES
 #include "nmuiheaders.h" // Includes also the class header.
--- a/emailuis/nmailui/src/nmviewerview.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmviewerview.cpp	Mon May 03 12:23:15 2010 +0300
@@ -23,14 +23,18 @@
 static const char *NMUI_MESSAGE_VIEWER_SCROLL_AREA = "viewerScrollArea";
 static const char *NMUI_MESSAGE_VIEWER_SCROLL_AREA_CONTENTS = "viewerScrollAreaContents";
 static const char *NMUI_MESSAGE_VIEWER_HEADER = "viewerHeader";
+static const char *NMUI_MESSAGE_VIEWER_ATTALIST = "viewerAttaList";
 static const char *NMUI_MESSAGE_VIEWER_SCROLL_WEB_VIEW = "viewerWebView";
 
 static const int nmViewLoadTimer=10;
+static const int nmOrientationTimer=100;
+
+static const QString NmParamTextHeightSecondary = "hb-param-text-height-secondary";
 
 /*!
 	\class NmViewerView
 	\brief Mail viewer class
-*/
+*/ 
 
 /*!
     Constructor
@@ -40,11 +44,13 @@
     NmUiStartParam* startParam,
     NmUiEngine &uiEngine,
     HbMainWindow *mainWindow,
+    bool toolbar,
     QGraphicsItem *parent)
 :NmBaseView(startParam, parent),
 mApplication(application),
 mUiEngine(uiEngine),
 mMainWindow(mainWindow),
+mToolbar(toolbar),
 mMessage(NULL),
 mScrollArea(NULL),
 mViewerContent(NULL),
@@ -59,8 +65,11 @@
 mScreenSize(QSize(0,0)),
 mWaitDialog(NULL),
 loadingCompleted(false),
-mLatestLoadingSize(QSize(0,0)) 
-{
+mLatestLoadingSize(QSize(0,0)),
+mFetchOperation(NULL),
+mAttaIndexUnderFetch(NmNotFoundError),
+mAttaWidget(NULL)
+    {
     // Create documentloader
     mDocumentLoader = new NmUiDocumentLoader(mMainWindow);
     // Get screensize
@@ -87,6 +96,8 @@
     mWidgetList.clear();
     delete mWaitDialog;
     mWaitDialog = NULL;
+    delete mFetchOperation;
+    mFetchOperation = NULL;
 }
 
 /*!
@@ -160,14 +171,31 @@
                                                                       Qt::ScrollBarAlwaysOff);
                     mWebView->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, 
                                                                       Qt::ScrollBarAlwaysOff);         
-                    bool connectOk = connect(mWebView->page()->mainFrame(), SIGNAL(contentsSizeChanged(const QSize&)),
+                    bool connectOk = connect(mWebView->page()->mainFrame(), 
+                            SIGNAL(contentsSizeChanged(const QSize&)),
                         this, SLOT(scaleWebViewWhenLoading(const QSize&)));                                       
                 }
              }
         } 
+        if(!mToolbar) {
+			// Connect options menu about to show to create options menu function
+			QObject::connect(menu(), SIGNAL(aboutToShow()),
+					this, SLOT(createOptionsMenu()));
+			
+			// Menu needs one dummy item so that aboutToShow signal is emitted.
+			NmAction *dummy = new NmAction(0);
+			menu()->addAction(dummy);
+        }
     }
-    // call the createToolBar on load view layout
-    createToolBar();
+    if(mStartParam){
+        connect(&mUiEngine.messageListModel(mStartParam->mailboxId(), mStartParam->folderId()), 
+                SIGNAL(removeMessage(const NmId&)), this, SLOT(externalDelete(const NmId &)));
+    }
+    
+    if(mToolbar) {
+		// call the createToolBar on load view layout
+		createToolBar(); 
+    }
     // Set mailbox name to title
     setMailboxName();
 }
@@ -204,7 +232,7 @@
         NmId mailboxId = mStartParam->mailboxId();
         NmId folderId = mStartParam->folderId();
         NmId msgId = mStartParam->messageId();
-        NmMessagePart *body = mMessage->htmlBodyPart();
+        const NmMessagePart *body = mMessage->htmlBodyPart();
         if (!body) {
             // try plain to plain text part
             body = mMessage->plainTextBodyPart();
@@ -230,11 +258,13 @@
                 
                 delete mWaitDialog;
                 mWaitDialog = NULL;
-                
+                // Create new wait dialog and set it to me modal with dimmed background
                 mWaitDialog = new HbProgressDialog(HbProgressDialog::WaitDialog);
                 mWaitDialog->setModal(true);
+                mWaitDialog->setBackgroundFaded(true);
                 connect(mWaitDialog, SIGNAL(cancelled()), this, SLOT(waitNoteCancelled()));
                 mWaitDialog->setText(hbTrId("txt_mail_dialog_loading_mail_content"));
+                // Display wait dialog
                 mWaitDialog->show();
             }
         }
@@ -309,11 +339,10 @@
     }
     if (page){
         // Set custom network access manager for embedded image handling
-        NmViewerViewNetManager* netMngr = mApplication.networkAccessManager();
-        if (netMngr){
-            netMngr->setView(this);
-            page->setNetworkAccessManager(netMngr);        
-        }    
+        NmViewerViewNetManager &netMngr = mApplication.networkAccessManager();
+        netMngr.setView(this);
+        page->setNetworkAccessManager(&netMngr);        
+            
         connect(page, SIGNAL(loadFinished(bool)),
                     this, SLOT(webFrameLoaded(bool)));
         page->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
@@ -331,6 +360,129 @@
         QObject::connect(page, SIGNAL(linkClicked(const QUrl&)),
                 this, SLOT(linkClicked(const QUrl&)));
         changeMessageReadStatus(true);
+        setAttachmentList();
+    }
+}
+
+/*!
+
+*/
+void NmViewerView::setAttachmentList()
+{
+    // Load headerwidget
+    mAttaWidget = qobject_cast<NmAttachmentListWidget *>(
+            mDocumentLoader->findObject(NMUI_MESSAGE_VIEWER_ATTALIST));
+    if (mMessage && mAttaWidget) {
+        // Set atta widget text color black since header has static white bg.
+        mAttaWidget->setTextColor(Qt::black);
+        // Set attawidget minimum & maximum size
+        mAttaWidget->setMinimumWidth(mScreenSize.width());
+        mAttaWidget->setMaximumWidth(mScreenSize.width());   
+        bool inserted = false; 
+        QList<NmMessagePart*> messageParts;
+        mMessage->attachmentList(messageParts);
+        for (int i = 0; i < messageParts.count();i++) {
+            NmMessagePart *part = messageParts[i];           
+            if (part && 
+                part->contentDisposition().compare("inline", Qt::CaseInsensitive) && 
+                !(part->contentType().startsWith("image", Qt::CaseInsensitive))) {
+                QString fileName = part->attachmentName();
+                // index starts from zero, next index is same as count
+                int attaIndex = mAttaWidget->count();
+                mAttaWidget->insertAttachment(attaIndex, fileName, 
+                                              NmUtilities::attachmentSizeString(part->size()));
+                mAttaIdList.insert(attaIndex, part->id());
+                inserted = true;
+            }
+        }
+        if (inserted) { 
+            QObject::connect(mAttaWidget, SIGNAL(itemActivated(int)),
+                    this, SLOT(openAttachment(int)));
+        }
+        else {
+            // No attachments, set height to 0
+            mAttaWidget->setMinimumHeight(0);
+            mAttaWidget->setMaximumHeight(0);             
+            }
+    }
+}
+
+/*!
+
+*/
+void NmViewerView::openAttachment(int index)
+{
+    // fetch operation should not be running
+    if (mAttaIndexUnderFetch == NmNotFoundError) {
+        NmId attaId = mAttaIdList.at(index);
+        // reload message to get updates part sizes
+        loadMessage();
+        QList<NmMessagePart*> messageParts;
+        mMessage->attachmentList(messageParts);
+        for (int i = 0; i < messageParts.count(); i++) {
+            // if message part found and its fetched size is smaller than size start part fetch
+            if (messageParts[i]->id() == attaId &&
+                messageParts[i]->size() > messageParts[i]->fetchedSize()) {
+                // delete old message fetch operation
+                if (mFetchOperation) {
+                    delete mFetchOperation;
+                    mFetchOperation = NULL;
+                }
+                // can return null
+                mFetchOperation = mUiEngine.fetchMessagePart(
+                        mMessage->mailboxId(),
+                        mMessage->parentId(),
+                        mMessage->envelope().id(),
+                        attaId);
+                if (mFetchOperation) {
+                    mAttaIndexUnderFetch = index;
+                    QObject::connect(mFetchOperation, SIGNAL(operationCompleted(int)),
+                            this, SLOT(attachmentFetchCompleted(int)));
+                    QObject::connect(mFetchOperation, SIGNAL(operationProgressChanged(int)),
+                            this, SLOT(changeProgress(int)));
+                    QObject::connect(this, SIGNAL(progressValueChanged(int, int)),
+                            mAttaWidget, SLOT(setProgressBarValue(int, int)));
+                    // emit signal, set progress to 5% when started
+                    progressValueChanged(index, 5);
+                }
+            }
+            // attachment is fetched, open file
+            else if (messageParts[i]->id() == attaId) {
+                XQSharableFile file = mUiEngine.messagePartFile(
+                        mMessage->mailboxId(),
+                        mMessage->parentId(),
+                        mMessage->envelope().id(),
+                        attaId);
+                NmUtilities::openFile(file);
+                file.close();
+            }
+        }
+    }
+}
+
+/*!
+
+*/
+void NmViewerView::changeProgress(int progressValue)
+{
+    // find running
+   if (mAttaIndexUnderFetch != NmNotFoundError) {
+       // emit signal
+       if (mAttaWidget && mAttaWidget->progressValue(mAttaIndexUnderFetch) < progressValue) {
+           progressValueChanged(mAttaIndexUnderFetch, progressValue);
+       }
+   }
+}
+
+/*!
+
+*/
+void NmViewerView::attachmentFetchCompleted(int result)
+{
+    Q_UNUSED(result);
+    if (mAttaWidget && mAttaIndexUnderFetch != NmNotFoundError) {
+        mAttaWidget->setProgressBarValue(mAttaIndexUnderFetch, 100);
+        mAttaIndexUnderFetch = NmNotFoundError;
     }
 }
 
@@ -340,7 +492,6 @@
 QString NmViewerView::formatMessage()
 {
     QString msg = "";
-    QString body = "";
     // null pointer check for mMessage is done before calling this function
     NmMessagePart *html = mMessage->htmlBodyPart();
     if (html) {
@@ -350,7 +501,10 @@
             NmMessagePart *child = parts[i];
             // Browse through embedded image parts and add those
             // the web view.
-            if (child->contentType().startsWith("image", Qt::CaseInsensitive)) {
+            quint32 fetchedSize = child->fetchedSize();
+            quint32 size = child->size();
+            if (fetchedSize >= size && 
+                    child->contentType().startsWith("image", Qt::CaseInsensitive)) {
                 QString contentId = child->contentId();
                 int ret = mUiEngine.contentToMessagePart(
                         mMessage->mailboxId(),
@@ -368,9 +522,8 @@
                 mMessage->envelope().id(),
                 *html);
         if (ret == NmNoError) {
-            body = html->textContent();
+            msg = html->textContent();
         }
-        msg = body;
     }
     else {
         NmMessagePart *plain = mMessage->plainTextBodyPart();
@@ -380,21 +533,37 @@
                     mMessage->parentId(),
                     mMessage->envelope().id(),
                     *plain);
-            if (ret == NmNoError) {
-                body += escapeSpecialCharacters(plain->textContent());
-            }
-            // Set plain text to viewer according to layout direction
-            if (qApp->layoutDirection()==Qt::LeftToRight){
-                // Define html start and end tags for plain text
-                QString start = "<html><body text=\"black\"><P align=\"left\">";
-                QString end = "</p></body></html>";
-                msg = start + body + end;
-            }
-            else {
-                // Define html start and end tags for plain text
-                QString start = "<html><body text=\"black\"><P align=\"right\">";
-                QString end = "</p></body></html>";
-                msg = start + body + end;
+            if (ret == NmNoError) {            
+                QTextDocument doku;
+                // set font
+                QFont currentFont = doku.defaultFont();
+                currentFont.setWeight(QFont::Normal);
+                qreal secondarySize;
+                HbStyle myStyle;
+                bool found = myStyle.parameter(NmParamTextHeightSecondary, secondarySize);
+                if (found) {                
+                    HbFontSpec fontSpec(HbFontSpec::Secondary);
+                    fontSpec.setTextHeight(secondarySize);
+                    currentFont.setPixelSize(fontSpec.font().pixelSize());                    
+                }
+                doku.setDefaultFont(currentFont);  
+                // convert to html
+                doku.setPlainText(plain->textContent());                                 
+                msg = doku.toHtml();
+
+                if (qApp->layoutDirection()==Qt::RightToLeft){                
+                    // add right alignment to document css section
+                    QRegExp rx("(<style type=\"text/css\">)(.+)(</style>)", Qt::CaseInsensitive);                   
+                    rx.setMinimal(true);
+                    int pos = rx.indexIn(msg);
+                    if (pos > -1) {
+                        QString newStr = rx.cap(1);
+                        newStr.append(rx.cap(2));
+                        newStr.append("p { text-align: right } ");
+                        newStr.append(rx.cap(3));
+                        msg.replace(rx, newStr);
+                    }
+                }
             }
             mDisplayingPlainText=true;
         }
@@ -524,20 +693,22 @@
 
 
 /*!
-   Screen orientation changed. Web view needs to be scaled when
-   landscape <-> portrait switch occurs because text needs to
-   be wrapped again.
+    Set new dimensions after orientation change.
 */
-void NmViewerView::orientationChanged(Qt::Orientation orientation)
+void NmViewerView::adjustViewDimensions()
 {
-    Q_UNUSED(orientation);
     // Update current screensize
     mScreenSize = mApplication.screenSize();
     // Scale header to screen width
     if (mHeaderWidget){
         mHeaderWidget->rescaleHeader(mScreenSize);
     }
-
+    if (mAttaWidget){
+        // Set attawidget minimum & maximum size
+        mAttaWidget->setMinimumWidth(mScreenSize.width());
+        mAttaWidget->setMaximumWidth(mScreenSize.width());   
+    }
+ 
     // Scale web view and its contens
     if (mWebView){
         if (mDisplayingPlainText){
@@ -562,8 +733,22 @@
         }
     }
 
-    // Re-create toolbar in orientation switch
-    createToolBar();
+    if(mToolbar) {
+		// Re-create toolbar in orientation switch
+		createToolBar();
+    }
+}
+
+
+/*!
+   Screen orientation changed. Web view needs to be scaled when
+   landscape <-> portrait switch occurs because text needs to
+   be wrapped again.
+*/
+void NmViewerView::orientationChanged(Qt::Orientation orientation)
+{
+    Q_UNUSED(orientation);
+    QTimer::singleShot(nmOrientationTimer, this, SLOT(adjustViewDimensions()));
 }
 
 /*!
@@ -660,30 +845,6 @@
 }
 
 /*!
-   Replace html special characters from plain text content.
-*/
-QString NmViewerView::escapeSpecialCharacters(const QString text)
-{
-    const QString amp("&");
-    const QString ampReplace("&amp;");
-    const QString lt("<");
-    const QString ltReplace("&lt;");
-    const QString gt(">");
-    const QString gtReplace("&gt;");
-    const QString quot("\"");
-    const QString quotReplace("&quot;");
-    const QString apos("'");
-    const QString aposReplace("&apos;");
-    QString ret = text;
-    ret.replace(amp, ampReplace);
-    ret.replace(lt, ltReplace);
-    ret.replace(gt, gtReplace);
-    ret.replace(quot, quotReplace);
-    ret.replace(apos, aposReplace);
-    return ret;
-}
-
-/*!
    Function to set message read status
 */
 void NmViewerView::changeMessageReadStatus(bool read)
@@ -752,6 +913,9 @@
             tr.translate(webViewRect.topLeft().x()+leftMovementThreshold ,0);
         }
         mHeaderWidget->setTransform(tr);
+        if (mAttaWidget){
+            mAttaWidget->setTransform(tr);
+        }
     }
     mLatestScrollPos = newPosition;
 }
@@ -777,6 +941,27 @@
 }
 
 /*!
+    createOptionsMenu. Functions asks menu commands from extension
+    to be added to options menu.
+*/
+void NmViewerView::createOptionsMenu()
+{
+	HbMenu *optionsMenu = menu(); 
+	NmUiExtensionManager &extMngr = mApplication.extManager();
+	if (optionsMenu && &extMngr && mStartParam) {
+		optionsMenu->clearActions();
+		NmActionRequest request(this, NmActionOptionsMenu, NmActionContextViewViewer,
+				NmActionContextDataNone, mStartParam->mailboxId(), mStartParam->folderId() );
+		
+		QList<NmAction*> list;
+		extMngr.getActions(request, list);
+		for (int i=0;i<list.count();i++) {
+			optionsMenu->addAction(list[i]);
+		}
+	}
+}
+
+/*!
     handleActionCommand. From NmActionObserver, extension manager calls this
     call to handle menu command in the UI.
 */
@@ -784,10 +969,9 @@
 {
     bool showSendInProgressNote = false;
     
-    // Handle options menu
-    if (actionResponse.menuType() == NmActionOptionsMenu) {
-    }
-    else if (actionResponse.menuType() == NmActionToolbar) {
+    // Handle options menu or toolbar
+    if (actionResponse.menuType() == NmActionOptionsMenu || 
+    	actionResponse.menuType() == NmActionToolbar) {
         switch (actionResponse.responseCommand()) {
             case NmActionResponseCommandReply: {
                 if (mUiEngine.isSendingMessage()) {
@@ -823,6 +1007,28 @@
             }
             break;
             case NmActionResponseCommandDeleteMail: {
+                HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+                messageBox->setText(hbTrId("txt_mail_dialog_delete_mail"));
+                messageBox->setTimeout(HbMessageBox::NoTimeout);
+                    
+                // Read user selection
+                HbAction *action = messageBox->exec(); 
+                if((action == messageBox->primaryAction())){
+                    QList<NmId> messageList;
+                    messageList.append(mStartParam->messageId());
+
+                    int err = mUiEngine.deleteMessages(mStartParam->mailboxId(),
+                                                       mStartParam->folderId(),
+                                                       messageList);
+                    
+                    messageList.clear();
+                    if (NmNoError != err) {
+                        // Failed to delete the messages!
+                        NMLOG(QString("NmViewerView::handleActionCommand(): failed err=%1").arg(err));
+                    }
+                }
+                delete messageBox;
+                messageBox = NULL;
             }
             break;
             default:
@@ -841,3 +1047,15 @@
         HbMessageBox::warning(noteText);
     }
 }
+
+/*!
+    externalDelete. From NmMessageListModel, handles viewer shutdown when current message is deleted. 
+*/
+void NmViewerView::externalDelete(const NmId &messageId)
+{
+    if ((mStartParam->viewId()==NmUiViewMessageViewer) && 
+        (mStartParam->messageId()==messageId)){
+        mApplication.popView();
+    }
+}
+
--- a/emailuis/nmailui/src/nmviewerviewnetreply.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailui/src/nmviewerviewnetreply.cpp	Mon May 03 12:23:15 2010 +0300
@@ -18,6 +18,8 @@
 
 #include "nmuiheaders.h"
 
+static const char *NMUI_NET_REPLY_CONTENT_ID = "cid";
+
 /*!
     \class NmViewerViewNetReply
     \brief Mail viewer network reply class
@@ -52,6 +54,23 @@
 */
 void NmViewerViewNetReply::signalReady()
 {
+    // Insert embedded images into cache manually
+    if(manager()) {
+        if(manager()->cache() && request().url().scheme() == NMUI_NET_REPLY_CONTENT_ID) {
+            // Metadata required for inserted data
+            QNetworkCacheMetaData metaData;
+            metaData.setUrl(request().url());
+            metaData.setSaveToDisk(true);
+            
+            // Insert data into cache
+            QIODevice *device = manager()->cache()->prepare(metaData);
+            if(device) {
+                device->write(mDataArray);
+                manager()->cache()->insert(device);
+            }
+        }
+    }
+    // Emit these signals to properly emulate downloading from URL
     emit readyRead();
     emit finished();
 }
Binary file emailuis/nmailui/translations/mail.qm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/translations/mail.ts	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,916 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="3.0" sourcelanguage="en_GB">
+<context>
+<message numerus="no" id="txt_mail_viewer_no_subject">
+    <comment>text for subject field if there is no subject in the mail message in Mail viewer. In the same field on the previous row the date and time of the message are displayed.</comment>        
+    <source>(No Subject)</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>dblist_3_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_mail_connection_error">
+    <comment>Error note. This is shown when the sending, receiving etc. occurs.</comment>        
+    <source>Mail connection error.</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_remove_all">
+    <comment>Item specific menu item for removing all attachments from the highlighted mail in mail editor</comment>        
+    <source>Remove all</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_to">
+    <comment>Original message header data in the editor. Followed by the name/mail address of the recipient of the message.</comment>        
+    <source>To:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_mail_address_or_password_is_incorr">
+    <comment></comment>        
+    <source>Mail address or password is incorrect, check the settings ( &lt;-link)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_you_can_not_send_more_than_l1_kb">
+    <comment>Information note. %L1 is the maximum size of all attachments the server allows to be sent at once. If the adds  attachments, which overall size exceeds the limit and presses send this note is shown and the mail is not sent. Maximum number of digits replacing the parameter is 4.</comment>        
+    <source>You can not send more than %L1 Mb as attachments </source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_add_priority_sub_normal">
+    <comment>Suboption for option &quot;Add priority&quot; to set mail as normal priority</comment>        
+    <source>Normal</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec_add</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_attach">
+    <comment>toolbar button for inserting attachments to the mail. Opens toolbar extension</comment>        
+    <source>Attach</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_2</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_photo">
+    <comment>Attach toolbar extension item in the viewer, opens images fetch for selecting image. Allows the user to attach an image to the message.</comment>        
+    <source>Photo</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_server_settings_incorrect_link">
+    <comment></comment>        
+    <source>Server settings are incorrect. (&lt;-link)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_cc">
+    <comment>Cc label in mail viewer</comment>        
+    <source>Cc:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_list_from</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_03</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_mark_as_read">
+    <comment>Item specific option for marking the highlighted mail as read</comment>        
+    <source>Mark as read</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_c</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_hide_cc_bcc">
+    <comment>Options menu command for hiding cc and bcc fields in the editor</comment>        
+    <source>Hide cc / bcc</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_a</extra-loc-viewid>
+    <extra-loc-positionid>opt</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_common_button_send">
+    <comment>Toolbar button for sending the mail</comment>        
+    <source>Send</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_2</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_cannot_download_attachment_1">
+    <comment>Error note. If the user tries to open / save an attachment but downloading it for server fails for some reason. %[]1 is replaced with the name of the attachment.</comment>        
+    <source>Cannot download attachment: %[]1 </source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_add_priority_sub_high">
+    <comment>Suboption for option &quot;Add priority&quot; to set mail as high priority.</comment>        
+    <source>High</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec_add</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dblist_no_messages">
+    <comment>Empty list text for Mail list view. Displayed in the Mail list view if there are no mails.</comment>        
+    <source>(No messages)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_view_empty_title_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01</extra-loc-viewid>
+    <extra-loc-positionid>dblist_2</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_importance_high">
+    <comment>Custom layout ID parent. Original message header data in the editor. Level of importance for the message: High.</comment>        
+    <source>High</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_importance_high</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_common_opt_settings">
+    <comment>Options menu item for opening settings.</comment>        
+    <source>Settings</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_a</extra-loc-viewid>
+    <extra-loc-positionid>opt</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_new_mail">
+    <comment>Toolbar button for creating a new mail.</comment>        
+    <source>New</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_2</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dpophead _1_deleted">
+    <comment>Confirmation note shown after the mailbox is deleted succesfully.</comment>        
+    <source>Mailbox deleted. </source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id> </extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_1_deleted">
+    <comment>Confirmation note shown after the mailbox is deleted succesfully. %[]1 is replaced with the name of the deleted mailbox.</comment>        
+    <source>%[]1 deleted.</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_still_sending">
+    <comment>The user cannot access the editor as long as the sending process is ongoing. This note is shown if the user tries to enter email editor. %[]1 is replaced with the name of mail being sent.</comment>        
+    <source>Still sending mail %[]1. Please wait operation to complete</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail </extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail </extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_you_can_not_send_more_than_l1_att">
+    <comment>Information note. %L1 is the maximum amount of attachments the server allows to be sent at once.  If the adds  attachments, which overall count exceeds the limit and presses send this note is shown and the mail is not sent. Maximum number of digits replacing the parameter is 3.</comment>        
+    <source>You can not send more than %L1 attachments at a time </source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_unable_to_complete_command">
+    <comment>Generic error note in mail application</comment>        
+    <source>Unable to complete the command</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_common_menu_delete">
+    <comment>Item specific option for deleting the highlighted mail</comment>        
+    <source>Delete</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_c</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_subject">
+    <comment>Original message header data in the editor. Followed by the subject of the message.</comment>        
+    <source>Subject:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_search_from_server">
+    <comment>Item specific command for searching number &amp;address from the service. IS THIS NEEDED?</comment>        
+    <source>search from server</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_re">
+    <comment>Prefix in subject field in the editor. This indicates that the mail is replyed</comment>        
+    <source>Re:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_list_fw</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_sending failed">
+    <comment>This is error note is shown if sending fails. %[]1 is replaced with the name of mail the sending of which failed.</comment>        
+    <source>Sending mail %[]1 failed. Try to send it again or press back to cancel</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_l1_mb">
+    <comment>the size of the attachment. Maximum number of digits replacing the parameter is 3. The file name truncates if needed. Displayed on the same row and after the name of the attachment.</comment>        
+    <source>(%L1 Mb)</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_send_mail">
+    <comment>Item specific command for sending mail to a contact</comment>        
+    <source>send mail</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_fw">
+    <comment>Custom layout ID parent. Prefix in subject field in the editor. This indicates that the mail is forwarded</comment>        
+    <source>Fw:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_list_fw</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_invalid_mail_address_send">
+    <comment>Note in editor when the user has typed incorrect mail address (e.g. without @-character). %[]1 is replaced with the name of the invalid mail address. Pressing yes sends the mail anyway</comment>        
+    <source>Invalid mail address: %[]1. Send anyway?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_open_contact_card">
+    <comment>Item specific command for opening contact card from mail viewer</comment>        
+    <source>open contact card</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_subject">
+    <comment>Subject label in mail editor</comment>        
+    <source>Subject:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_to</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_from">
+    <comment>Custom layout ID parent. From label in mail viewer </comment>        
+    <source>From:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_list_from</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_03</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_importance_low">
+    <comment>Original message header data in the editor. Level of importance for the message: Low.</comment>        
+    <source>Low</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_importance_high</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_cc">
+    <comment>Original message header data in the editor. Followed by the name(s)/mail address(es) of the receipients to whom a copy of the message is sent.</comment>        
+    <source>Cc:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_add_priority">
+    <comment>Options menu item for selecting the priority of the mail, opens sub menu with options High and Low.</comment>        
+    <source>Add priority</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>opt_1</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_loading_mail_content">
+    <comment>Wait note shown until the mail content is loaded </comment>        
+    <source>Loading mail content</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri3</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_attachments_should_be_smaller_than">
+    <comment>Information note. %L1 is the maximum size of one attachment the server allows. If the user adds bigger attachment and presses &quot;Send&quot; this note is shown and the mail is not sent. Maximum number of digits replacing the parameter is 4.</comment>        
+    <source>Attachments should be smaller than %L1 Mb</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_delete">
+    <comment>Toolbar button text in landscape: Shows &quot;Delete mail&quot; confirmation query</comment>        
+    <source>Delete</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_4</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_short_caption_mail">
+    <comment>Short caption text for Mail application. Name of the mail application.</comment>        
+    <source>Mail</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_grid_applications_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>grid</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_forward">
+    <comment>Toolbar button text in landscape: opens editor for forwarding</comment>        
+    <source>Forward</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_4</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_delete_message">
+    <comment>This conifrmation is shown if the user presses &quot;Back&quot; in the editor. Selecting yes deletes the composed message. &quot;No&quot; returns to the editor.</comment>        
+    <source>Delete message?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_new_video">
+    <comment>Attach toolbar extension item in the viewer, opens camera for taking a new video</comment>        
+    <source>New video</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_invalid_mail_address">
+    <comment>Note in editor when the user has typed incorrect mail address (e.g. without @-character). %[]1 is replaced with the name of the invalid mail address.</comment>        
+    <source>Invalid mail address: %[]1</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_common_menu_open">
+    <comment>Item specific option for opening the highlighted mail. </comment>        
+    <source>Open</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_c</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_title_control_panel">
+    <comment>Name of the Mail application in control panel under applications. Opens mail settings. </comment>        
+    <source>Mail</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri_graphic</extra-loc-layout_id>    
+    <extra-loc-viewid>Mail</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>Mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_deleting_mailbox">
+    <comment>Wait note for the case where the mailbox is beign deleted.</comment>        
+    <source>Deleting mailbox</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri3</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_to">
+    <comment>Custom layout ID parent. To label in mail editor</comment>        
+    <source>To:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_to</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_importance">
+    <comment>Original message header data in the editor. The user can select the level of importance for the message (High txt_mail_editor_reply_importance_high or Low txt_mail_editor_reply_importance_low).</comment>        
+    <source>Importance:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_to">
+    <comment>To label in mail viewer</comment>        
+    <source>To:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_list_from</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_03</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_data_has_been_deleted_to_protect_a">
+    <comment></comment>        
+    <source>Data has been deleted to protect against theft or loss. Contact you system administrator</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_cannot_open_the_attachment_deleted">
+    <comment></comment>        
+    <source>Cannot open the attachment deleted on the server</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_sent">
+    <comment>Original message header data in the editor. Followed by the date when the message was sent.</comment>        
+    <source>Sent:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_account_disabled_due_to_security_i">
+    <comment></comment>        
+    <source>Account disabled due to security issues. Contact your system administrator.</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_unable_to_open_attachment_file_ty">
+    <comment>Error note. If the user tries to open an attachment which cannot be viewed</comment>        
+    <source>Unable to open. Attachment file type not supported</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_send_via">
+    <comment>Title for send via dialog. This dialog lists all mailboxes the user has. Underneath the title, a list of mailboxes is displayed. </comment>        
+    <source>Send via</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri_heading</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_send_and_receive_now">
+    <comment>Options menu item for synchronize mail folders with the mail server content (sending and receiving mail)</comment>        
+    <source>Refresh</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_a</extra-loc-viewid>
+    <extra-loc-positionid>opt</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_add_priority_sub_low">
+    <comment>Suboption for option &quot;Add priority&quot; to set mail as low priority</comment>        
+    <source>Low</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec_add</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_original_msg">
+    <comment>Original message header data in the editor. Separates the original mail message from the edit area of the new message the user is typing.</comment>        
+    <source>---- Original message ----</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_common_menu_remove">
+    <comment>Item specific menu item for removing the focused attachment in mail editor</comment>        
+    <source>Remove</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_delete_mail">
+    <comment>Confirmation query after selecting delete in mail viewer</comment>        
+    <source>Delete mail?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_no_mailboxes_create_new">
+    <comment>Confirmation note. If the user opens &quot;Mail&quot; from Control Panel - Accounts and there are no Mail accounts created this note is shown to promote the functionality. Selecting Yes launches Mail Wizard</comment>        
+    <source>No mailboxes have been defined. Would you like to create a new mailbox?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_do_you_want_to_delete_the_mailbox">
+    <comment>Confirmation note for mailbox deleting. This is for POP/IMAP and Nokia Messaging protocols</comment>        
+    <source>Do you want to delete the mailbox and all mail messages?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dblist_val_no_subject">
+    <comment>No subject text for mail iten in Mail list view. Displayed in the Mail list view under the name of the sender if there is no subject in the received mail.</comment>        
+    <source>(No Subject)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_view_empty_title_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01</extra-loc-viewid>
+    <extra-loc-positionid>dblist_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_conversion_error_unable_to_show_t">
+    <comment></comment>        
+    <source>Conversion error. Unable to show the content properly</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_bcc">
+    <comment>Bcc: label in mail editor</comment>        
+    <source>Bcc:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_to</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_cc">
+    <comment>Cc: label in mail editor</comment>        
+    <source>Cc:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_to</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dpophead_loading_mail_content">
+    <comment>Discreet pop-up shown in case the loading of mail content takes more than 2 seconds</comment>        
+    <source>Loading mail content</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_notifdialog_pri2_medium_graphic</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>dpophead</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_unable_to_add_attachment">
+    <comment>Error note for the case where the selected file cannot be attached (it&apos;s deleted, moved etc. at the same time)</comment>        
+    <source>Unable to add attachment </source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_editor_reply_from">
+    <comment>Original message header data in the editor. Followed by the name/mail address of the sender of the message.</comment>        
+    <source>From:</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_editor_reply_sent</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_c</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_long_caption_mail">
+    <comment>Long caption text for Mail application. Name of the mail application.</comment>        
+    <source>Mail</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri_large_graphic</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_do_you_want_to_delete_mfe">
+    <comment>Confirmation note for mailbox deleting. This will delete also contacts, calendar and notes data, which has been synchronized via this account. This MfE protocol only</comment>        
+    <source>Do you want to delete all mail, calendar, contacts and notes data related to this account?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_title_mail">
+    <comment>Title for Mail application</comment>        
+    <source>Mail</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_titlebar</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_05</extra-loc-viewid>
+    <extra-loc-positionid>title</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_opt_show_cc_bcc">
+    <comment>Options menu command for showing cc and bcc fields in the editor</comment>        
+    <source>Show cc / bcc</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_a</extra-loc-viewid>
+    <extra-loc-positionid>opt</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_reply">
+    <comment>Toolbar button text in landscape: opens editor for replying</comment>        
+    <source>Reply</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_4</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_sending_mail">
+    <comment>Wait note for the case where sending takes some time. </comment>        
+    <source>Sending mail</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri3</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_other">
+    <comment>Attach toolbar extension item in the viewer, opens file fetch for selecting any type of file</comment>        
+    <source>Other</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_search_from_service">
+    <comment>Item specific command for searching number &amp;address from the service</comment>        
+    <source>search from service</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_menu_mark_as_unread">
+    <comment>Item specific option for marking the highlighted mail as unread </comment>        
+    <source>Mark as unread</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_menu_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01_c</extra-loc-viewid>
+    <extra-loc-positionid>menu</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_button_reply_all">
+    <comment>Toolbar button text in landscape: opens editor for replying to all</comment>        
+    <source>Reply all</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_toolbar_tiny_4</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_02</extra-loc-viewid>
+    <extra-loc-positionid>button</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_new_photo">
+    <comment>Attach toolbar extension item in the viewer, opens camera for taking a new photo</comment>        
+    <source>New photo</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_music">
+    <comment>Attach toolbar extension item in the viewer, opens music fetch for selecting music file. Allows the user to attach a music file to the message.</comment>        
+    <source>Music</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_opening_mail_editor">
+    <comment>Wait note for the case where opening an editor takes some time, this can happen when replying to or forwarding mail. </comment>        
+    <source>Opening mail editor</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dialog_pri3</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_list_video">
+    <comment>Attach toolbar extension item in the viewer, opens video fetch for selecting video file. Allows the user to attach a video file to the message.</comment>        
+    <source>Video</source>
+    <translation variants="yes" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_list_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_04_b</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_subhead_inbox">
+    <comment>Custom layout ID parent. Text for indicating the current folder in mail list view. Component is simple label</comment>        
+    <source>Inbox </source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>txt_mail_subhead_inbox</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_01</extra-loc-viewid>
+    <extra-loc-positionid>subhead</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_1_is_disabled_enable">
+    <comment></comment>        
+    <source>%1 is disabled, enable?</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mail_dialog_password_expired_new_security_cre">
+    <comment></comment>        
+    <source>Password expired. New security credentials must be created on your computer.</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>dialog</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+</context>
+</TS>
Binary file emailuis/nmailui/translations/nmailui.qm has changed
--- a/emailuis/nmailui/translations/nmailui.ts	Fri Apr 16 14:51:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,636 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="3.0" sourcelanguage="en_GB">
-<context>
-<message numerus="no" id="txt_mail_viewer_no_subject">
-    <comment>No subject text for subject field in Mail viewer (IS THIS REALLY NEEDED?)</comment>        
-    <source>(No Subject)</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_create_new_mailbox">
-    <comment>List item in Mail settings view</comment>        
-    <source>Create new mailbox</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_menu_open">
-    <comment>Item specific option for opening mail</comment>        
-    <source>Open</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>common</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>co</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_mail_address">
-    <comment>Setting item in Credentials</comment>        
-    <source>Mail address</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_7</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_notes">
-    <comment>Check box item for enabling /disabling the notes sync</comment>        
-    <source>Notes</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_password">
-    <comment>Setting item in Credentials</comment>        
-    <source>Password</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_10</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_editor_to">
-    <comment>To label in mail editor</comment>        
-    <source>To:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_tasks">
-    <comment>Check box item for enabling /disabling the tasks sync</comment>        
-    <source>Tasks</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_opt_add_priority_sub_normal">
-    <comment>to set mail as normal priority</comment>        
-    <source>Normal</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_attach">
-    <comment>toolbar button for attaching content to mail </comment>        
-    <source>Attach</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_to">
-    <comment>To label in mail viewer</comment>        
-    <source>To:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_outgoing_mail_server">
-    <comment>Setting item in server settings</comment>        
-    <source>Outgoing mail server</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_15</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_mail_account_in_use">
-    <comment>Check box item for enabling /disabling the mail account</comment>        
-    <source>Mail account in use</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_incoming_mail_server">
-    <comment>Setting item in server settings</comment>        
-    <source>Incoming mail server</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_14</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_delete_mailbox">
-    <comment>List item in Mail settings view</comment>        
-    <source>Delete mailbox</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_cc">
-    <comment>Cc label in mail viewer</comment>        
-    <source>Cc:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_mailbox_name">
-    <comment>Setting item in Preferences</comment>        
-    <source>Mailbox name</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_6</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_subhead_server_settings">
-    <comment>Group box for expanding/ collapsing Server settings in settings view</comment>        
-    <source>Server settings</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_mark_as_read">
-    <comment>Item specific option for marking mail as read</comment>        
-    <source>Mark as read</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_destination">
-    <comment>Setting item in server settings</comment>        
-    <source>Destination</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_18</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_button_send">
-    <comment>Toolbar button for sending the mail</comment>        
-    <source>Send</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>common</extra-loc-viewid>
-    <extra-loc-positionid>button</extra-loc-positionid>
-    <extra-loc-feature>co</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_opt_send_and_receive_now">
-    <comment>Options menu item for starting sending and receiving mails</comment>        
-    <source>Send and receive now</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>opt</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_opt_add_priority_sub_low">
-    <comment>to set mail as low priority</comment>        
-    <source>Low</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_inbox_path">
-    <comment>Setting item in server settings</comment>        
-    <source>Inbox path</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_19</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_menu_remove">
-    <comment>Item specific menu item for removing attachment in mail editor</comment>        
-    <source>Remove</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>common</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>co</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dialog_delete_mail">
-    <comment>Prompt after selecting delete in mail viewer</comment>        
-    <source>Delete mail?</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dialog</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_calendar">
-    <comment>Check box item for enabling /disabling the calendar sync</comment>        
-    <source>Calendar</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_secure_connection">
-    <comment>Setting item in server settings</comment>        
-    <source>Secure connection</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_16</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_opt_add_priority_sub_high">
-    <comment>to set mail as high priority</comment>        
-    <source>High</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>opt_1_sub</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_no_messages">
-    <comment>Empty text for Mail list view</comment>        
-    <source>(No messages)</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_val_no_subject">
-    <comment>No subject text for mail iten in Mail list view </comment>        
-    <source>(No Subject)</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_1_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_opt_settings">
-    <comment>Options menu item for opening settings</comment>        
-    <source>Settings</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>common</extra-loc-viewid>
-    <extra-loc-positionid>opt</extra-loc-positionid>
-    <extra-loc-feature>co</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_new_mail">
-    <comment>Toobar button for creating a new mail</comment>        
-    <source>New mail</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button_1</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_subhead_credentials">
-    <comment>Group box for expanding/ collapsing credential settings in settings view</comment>        
-    <source>Credentials</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_editor_bcc">
-    <comment>Bcc: label in mail editor</comment>        
-    <source>Bcc:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_editor_cc">
-    <comment>Cc: label in mail editor</comment>        
-    <source>Cc:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_subhead_preferences">
-    <comment>Group box for expanding/ collapsing preferences in settings view</comment>        
-    <source>Preferences</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_subhead_ccbcc">
-    <comment>Group box for expanding/ collapsing cc and bcc fields</comment>        
-    <source>Cc/Bcc</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_menu_delete">
-    <comment>Item specific option for deleting mail</comment>        
-    <source>Delete</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>common</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>co</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_subhead_synchronization">
-    <comment>Group box for expanding/ collapsing synchronization settings in settings view</comment>        
-    <source>Synchronization</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_port">
-    <comment>Setting item in server settings</comment>        
-    <source>Port</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_17</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_exchange_server">
-    <comment>Setting item in server settings</comment>        
-    <source>Exchange server</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_12</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_search_from_server">
-    <comment>Item specific command for searching number &amp;address from the service. IS THIS NEEDED?</comment>        
-    <source>search from server</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_l1_mb">
-    <comment>the size of the attachment. Takes as much space as needed. The file name truncates if needed OWN STRING FOR REAL NEEDED?</comment>        
-    <source>(L%1 Mb)</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_send_mail">
-    <comment>Item specific command for sending mail to a contact</comment>        
-    <source>send mail</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_my_name">
-    <comment>Setting item in Credentials</comment>        
-    <source>My name</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_11</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_username">
-    <comment>Setting item in Credentials</comment>        
-    <source>Username</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_9</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_inbox_path_sub_default">
-    <comment>Value for inbox path and port</comment>        
-    <source>Default</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_19_sub</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_contacts">
-    <comment>Check box item for enabling /disabling the contacts sync</comment>        
-    <source>Contacts</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_reply_to_address">
-    <comment>Setting item in Credentials</comment>        
-    <source>Reply to address</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_8</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_title_mail">
-    <comment>Title for Mail application</comment>        
-    <source>Mail</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>title</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_reply">
-    <comment>Toolbar button text in landscape: opens editor for replying</comment>        
-    <source>Reply</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_open_contact_card">
-    <comment>Item specific command for opening contact card from mail viewer</comment>        
-    <source>open contact card</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_editor_subject">
-    <comment>Subject label in mail editor</comment>        
-    <source>Subject:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_from">
-    <comment>From label in mail viewer </comment>        
-    <source>From:</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_dblist_domain">
-    <comment>Setting item in server settings</comment>        
-    <source>Domain</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>dblist_13</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_mark_as_unread">
-    <comment>Item specific option for marking mail as unread </comment>        
-    <source>Mark as unread</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_menu_search_from_service">
-    <comment>Item specific command for searching number &amp;address from the service</comment>        
-    <source>search from service</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>menu</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_reply_all">
-    <comment>Toolbar button text in landscape: opens editor for replying to all</comment>        
-    <source>Reply all</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_opt_add_priority">
-    <comment>Options menu item for selecting the priority of the mail, opens sub menu</comment>        
-    <source>Add priority</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>opt_1</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_delete">
-    <comment>Toolbar button text in landscape: Deletes mail</comment>        
-    <source>Delete</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_list_mail">
-    <comment>Check box item for enabling /disabling the mail sync</comment>        
-    <source>Mail</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mail_button_forward">
-    <comment>Toolbar button text in landscape: opens editor for forwarding</comment>        
-    <source>Forward</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id></extra-loc-layout_id>    
-    <extra-loc-viewid>mail</extra-loc-viewid>
-    <extra-loc-positionid>button_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-</context>
-</TS>
--- a/emailuis/nmailuiengine/bwins/nmailuiengineu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/bwins/nmailuiengineu.def	Mon May 03 12:23:15 2010 +0300
@@ -1,253 +1,266 @@
 EXPORTS
-	?loadPlugin@NmDataPluginFactory@@QAEPAVQObject@@ABVQDir@@ABVQString@@@Z @ 1 NONAME ; class QObject * NmDataPluginFactory::loadPlugin(class QDir const &, class QString const &)
-	?id@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 2 NONAME ; class NmId NmMailboxMetaData::id(void) const
-	??1NmUiEngine@@EAE@XZ @ 3 NONAME ; NmUiEngine::~NmUiEngine(void)
-	?doCompleteOperation@NmOperation@@MAEXXZ @ 4 NONAME ; void NmOperation::doCompleteOperation(void)
-	?releaseInstance@NmUiEngine@@SAXAAPAV1@@Z @ 5 NONAME ; void NmUiEngine::releaseInstance(class NmUiEngine * &)
-	?IconId@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 6 NONAME ; class NmId NmMailboxMetaData::IconId(void) const
-	??0NmOperation@@QAE@PAVQObject@@@Z @ 7 NONAME ; NmOperation::NmOperation(class QObject *)
-	?mReferenceCount@NmDataPluginFactory@@0HA @ 8 NONAME ; int NmDataPluginFactory::mReferenceCount
-	?dividerInsertionIndex@NmMessageListModel@@AAEHH@Z @ 9 NONAME ; int NmMessageListModel::dividerInsertionIndex(int)
-	??1NmDataPluginFactory@@EAE@XZ @ 10 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(void)
-	?name@NmFolderMetaData@@QBE?AVQString@@XZ @ 11 NONAME ; class QString NmFolderMetaData::name(void) const
-	?instance@NmUiEngine@@SAPAV1@XZ @ 12 NONAME ; class NmUiEngine * NmUiEngine::instance(void)
-	?envelope@NmMessageListModelItem@@QBEABVNmMessageEnvelope@@XZ @ 13 NONAME ; class NmMessageEnvelope const & NmMessageListModelItem::envelope(void) const
-	?refreshMailbox@NmUiEngine@@QAEHABVNmId@@@Z @ 14 NONAME ; int NmUiEngine::refreshMailbox(class NmId const &)
-	?envelopeById@NmDataManager@@QAEPAVNmMessageEnvelope@@ABVNmId@@00@Z @ 15 NONAME ; class NmMessageEnvelope * NmDataManager::envelopeById(class NmId const &, class NmId const &, class NmId const &)
-	?setPriorityNormal@NmBaseClientPlugin@@QAEXXZ @ 16 NONAME ; void NmBaseClientPlugin::setPriorityNormal(void)
-	?cancelOperation@NmOperation@@QAEXXZ @ 17 NONAME ; void NmOperation::cancelOperation(void)
-	?removeMessageFromModel@NmMessageListModel@@AAEXABVNmId@@@Z @ 18 NONAME ; void NmMessageListModel::removeMessageFromModel(class NmId const &)
-	?pluginInstances@NmDataPluginFactory@@QAEPAV?$QList@PAVQObject@@@@XZ @ 19 NONAME ; class QList<class QObject *> * NmDataPluginFactory::pluginInstances(void)
-	??1NmDataManager@@UAE@XZ @ 20 NONAME ; NmDataManager::~NmDataManager(void)
-	?updateEnvelopeProperty@NmBaseClientPlugin@@AAEXW4NmEnvelopeProperties@@@Z @ 21 NONAME ; void NmBaseClientPlugin::updateEnvelopeProperty(enum NmEnvelopeProperties)
-	?dividersActive@NmMessageListModel@@QAE_NXZ @ 22 NONAME ; bool NmMessageListModel::dividersActive(void)
-	?getStaticMetaObject@NmMailboxListModel@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & NmMailboxListModel::getStaticMetaObject(void)
-	?createForwardMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@0@Z @ 24 NONAME ; class NmMessageCreationOperation * NmUiEngine::createForwardMessage(class NmId const &, class NmId const &)
-	?getActions@NmBaseClientPlugin@@UAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 25 NONAME ; void NmBaseClientPlugin::getActions(class NmActionRequest const &, class QList<class NmAction *> &)
-	??_ENmDataPluginFactory@@UAE@I@Z @ 26 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(unsigned int)
-	?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *)
-	?metaObject@NmOperation@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * NmOperation::metaObject(void) const
-	?getStaticMetaObject@NmBaseClientPlugin@@SAABUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const & NmBaseClientPlugin::getStaticMetaObject(void)
-	?envelopePtr@NmMessageListModelItem@@QAEPAVNmMessageEnvelope@@XZ @ 30 NONAME ; class NmMessageEnvelope * NmMessageListModelItem::envelopePtr(void)
-	?updateEnvelope@NmMessageListModel@@AAEXW4NmEnvelopeProperties@@ABVNmId@@@Z @ 31 NONAME ; void NmMessageListModel::updateEnvelope(enum NmEnvelopeProperties, class NmId const &)
-	?createTitleDividerItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 32 NONAME ; class NmMessageListModelItem * NmMessageListModel::createTitleDividerItem(class NmMessageEnvelope *)
-	?forwardMail@NmBaseClientPlugin@@QAEXXZ @ 33 NONAME ; void NmBaseClientPlugin::forwardMail(void)
-	??_ENmMailboxMetaData@@UAE@I@Z @ 34 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(unsigned int)
-	?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *, int)
-	?trUtf8@NmDataManager@@SA?AVQString@@PBD0H@Z @ 36 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *, int)
-	?getStaticMetaObject@NmOperation@@SAABUQMetaObject@@XZ @ 37 NONAME ; struct QMetaObject const & NmOperation::getStaticMetaObject(void)
-	?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *)
-	?setName@NmMailboxMetaData@@QAEXABVQString@@@Z @ 39 NONAME ; void NmMailboxMetaData::setName(class QString const &)
-	?handleRequest@NmBaseClientPlugin@@AAEXW4NmActionResponseCommand@@ABVNmActionRequest@@@Z @ 40 NONAME ; void NmBaseClientPlugin::handleRequest(enum NmActionResponseCommand, class NmActionRequest const &)
-	?completeOperation@NmOperation@@QAEXH@Z @ 41 NONAME ; void NmOperation::completeOperation(int)
-	??0NmMailboxMetaData@@QAE@XZ @ 42 NONAME ; NmMailboxMetaData::NmMailboxMetaData(void)
-	?qt_metacall@NmMailboxListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 43 NONAME ; int NmMailboxListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?markAsRead@NmBaseClientPlugin@@QAEXXZ @ 44 NONAME ; void NmBaseClientPlugin::markAsRead(void)
-	?completeOperationPart@NmAddAttachmentsOperation@@QAEXABVQString@@ABVNmId@@H@Z @ 45 NONAME ; void NmAddAttachmentsOperation::completeOperationPart(class QString const &, class NmId const &, int)
-	?tr@NmOperation@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString NmOperation::tr(char const *, char const *, int)
-	??0NmBaseClientPlugin@@QAE@XZ @ 47 NONAME ; NmBaseClientPlugin::NmBaseClientPlugin(void)
-	?mPluginLoaderArray@NmDataPluginFactory@@0V?$QList@PAVQPluginLoader@@@@A @ 48 NONAME ; class QList<class QPluginLoader *> NmDataPluginFactory::mPluginLoaderArray
-	?setDividers@NmMessageListModel@@QAEX_N@Z @ 49 NONAME ; void NmMessageListModel::setDividers(bool)
-	?insertMessageIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H_N@Z @ 50 NONAME ; void NmMessageListModel::insertMessageIntoModel(class NmMessageEnvelope *, int, bool)
-	?trUtf8@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *, int)
-	?mailboxPropertyChanged@NmBaseClientPlugin@@AAEXABVNmId@@VQVariant@@1@Z @ 52 NONAME ; void NmBaseClientPlugin::mailboxPropertyChanged(class NmId const &, class QVariant, class QVariant)
-	?tr@NmOperation@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString NmOperation::tr(char const *, char const *)
-	?metaObject@NmUiEngine@@UBEPBUQMetaObject@@XZ @ 54 NONAME ; struct QMetaObject const * NmUiEngine::metaObject(void) const
-	?name@NmMailboxMetaData@@QBE?AVQString@@XZ @ 55 NONAME ; class QString NmMailboxMetaData::name(void) const
-	?operationCancelled@NmOperation@@IAEXXZ @ 56 NONAME ; void NmOperation::operationCancelled(void)
-	?createNewMailViewerToolBar@NmBaseClientPlugin@@QAEXXZ @ 57 NONAME ; void NmBaseClientPlugin::createNewMailViewerToolBar(void)
-	?attach@NmBaseClientPlugin@@QAEXXZ @ 58 NONAME ; void NmBaseClientPlugin::attach(void)
-	??1NmFolderMetaData@@UAE@XZ @ 59 NONAME ; NmFolderMetaData::~NmFolderMetaData(void)
-	?createEditorViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 60 NONAME ; void NmBaseClientPlugin::createEditorViewCommands(class NmActionRequest const &, class QList<class NmAction *> &)
-	??0NmDataPluginFactory@@AAE@XZ @ 61 NONAME ; NmDataPluginFactory::NmDataPluginFactory(void)
-	?getStaticMetaObject@NmMessageListModel@@SAABUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const & NmMessageListModel::getStaticMetaObject(void)
-	?checkOutbox@NmUiEngine@@QAEPAVNmCheckOutboxOperation@@ABVNmId@@@Z @ 63 NONAME ; class NmCheckOutboxOperation * NmUiEngine::checkOutbox(class NmId const &)
-	?saveMessageWithSubparts@NmUiEngine@@QAEPAVNmOperation@@ABVNmMessage@@@Z @ 64 NONAME ; class NmOperation * NmUiEngine::saveMessageWithSubparts(class NmMessage const &)
-	?setPriorityHigh@NmBaseClientPlugin@@QAEXXZ @ 65 NONAME ; void NmBaseClientPlugin::setPriorityHigh(void)
-	?messageListModel@NmUiEngine@@QAEAAVNmMessageListModel@@ABVNmId@@0@Z @ 66 NONAME ; class NmMessageListModel & NmUiEngine::messageListModel(class NmId const &, class NmId const &)
-	?getStandardFolderId@NmDataManager@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 67 NONAME ; class NmId NmDataManager::getStandardFolderId(class NmId const &, enum NmFolderType)
-	?tr@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 68 NONAME ; class QString NmMessageListModel::tr(char const *, char const *, int)
-	??1NmBaseClientPlugin@@UAE@XZ @ 69 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(void)
+	?insertMessageIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H_N@Z @ 1 NONAME ; void NmMessageListModel::insertMessageIntoModel(class NmMessageEnvelope *, int, bool)
+	??0NmUiEngine@@AAE@XZ @ 2 NONAME ; NmUiEngine::NmUiEngine(void)
+	?insertDividerIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H@Z @ 3 NONAME ; void NmMessageListModel::insertDividerIntoModel(class NmMessageEnvelope *, int)
+	?goOnline@NmUiEngine@@QAEHABVNmId@@@Z @ 4 NONAME ; int NmUiEngine::goOnline(class NmId const &)
+	?currentMailboxId@NmMessageListModel@@QAE?AVNmId@@XZ @ 5 NONAME ; class NmId NmMessageListModel::currentMailboxId(void)
+	?folderById@NmDataManager@@QAEPAVNmFolderMetaData@@ABVNmId@@0@Z @ 6 NONAME ; class NmFolderMetaData * NmDataManager::folderById(class NmId const &, class NmId const &)
+	?completeOperationPart@NmAddAttachmentsOperation@@QAEXABVQString@@ABVNmId@@H@Z @ 7 NONAME ; void NmAddAttachmentsOperation::completeOperationPart(class QString const &, class NmId const &, int)
+	?createForwardMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@0@Z @ 8 NONAME ; class NmMessageCreationOperation * NmUiEngine::createForwardMessage(class NmId const &, class NmId const &)
+	?releaseInstance@NmUiEngine@@SAXAAPAV1@@Z @ 9 NONAME ; void NmUiEngine::releaseInstance(class NmUiEngine * &)
+	?id@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 10 NONAME ; class NmId NmMailboxMetaData::id(void) const
+	?qt_metacast@NmUiEngine@@UAEPAXPBD@Z @ 11 NONAME ; void * NmUiEngine::qt_metacast(char const *)
+	?setName@NmMailboxMetaData@@QAEXABVQString@@@Z @ 12 NONAME ; void NmMailboxMetaData::setName(class QString const &)
+	??1NmAddAttachmentsOperation@@UAE@XZ @ 13 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(void)
+	?fetchMessage@NmUiEngine@@QAEPAVNmOperation@@ABVNmId@@00@Z @ 14 NONAME ; class NmOperation * NmUiEngine::fetchMessage(class NmId const &, class NmId const &, class NmId const &)
+	?isRunning@NmOperation@@QBE_NXZ @ 15 NONAME ; bool NmOperation::isRunning(void) const
+	??0NmOperation@@QAE@PAVQObject@@@Z @ 16 NONAME ; NmOperation::NmOperation(class QObject *)
+	?setPriorityLow@NmBaseClientPlugin@@QAEXXZ @ 17 NONAME ; void NmBaseClientPlugin::setPriorityLow(void)
+	?openMessage@NmBaseClientPlugin@@QAEXXZ @ 18 NONAME ; void NmBaseClientPlugin::openMessage(void)
+	?getStaticMetaObject@NmMailboxListModel@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & NmMailboxListModel::getStaticMetaObject(void)
+	?envelope@NmMessageListModelItem@@QBEABVNmMessageEnvelope@@XZ @ 20 NONAME ; class NmMessageEnvelope const & NmMessageListModelItem::envelope(void) const
+	?qt_metacall@NmMailboxListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 21 NONAME ; int NmMailboxListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?listMailboxIds@NmDataManager@@QAEXAAV?$QList@VNmId@@@@@Z @ 22 NONAME ; void NmDataManager::listMailboxIds(class QList<class NmId> &)
+	??0NmDataManager@@QAE@XZ @ 23 NONAME ; NmDataManager::NmDataManager(void)
+	?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *, int)
+	?releaseMessageListModel@NmUiEngine@@QAEXABVNmId@@@Z @ 25 NONAME ; void NmUiEngine::releaseMessageListModel(class NmId const &)
+	?refresh@NmMailboxListModel@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 26 NONAME ; void NmMailboxListModel::refresh(class QList<class NmMailbox *> &)
+	?getStaticMetaObject@NmDataManager@@SAABUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const & NmDataManager::getStaticMetaObject(void)
+	??1NmMessageListModel@@UAE@XZ @ 28 NONAME ; NmMessageListModel::~NmMessageListModel(void)
+	?handleCompletedSendOperation@NmUiEngine@@QAEXXZ @ 29 NONAME ; void NmUiEngine::handleCompletedSendOperation(void)
+	??_ENmFolderListModel@@UAE@I@Z @ 30 NONAME ; NmFolderListModel::~NmFolderListModel(unsigned int)
+	?contentToMessagePart@NmDataManager@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 31 NONAME ; int NmDataManager::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &)
+	?setExpanded@NmMessageListModelItem@@QAEX_N@Z @ 32 NONAME ; void NmMessageListModelItem::setExpanded(bool)
+	?setPriorityHigh@NmBaseClientPlugin@@QAEXXZ @ 33 NONAME ; void NmBaseClientPlugin::setPriorityHigh(void)
+	?deleteMessage@NmBaseClientPlugin@@QAEXXZ @ 34 NONAME ; void NmBaseClientPlugin::deleteMessage(void)
+	?getStaticMetaObject@NmAddAttachmentsOperation@@SAABUQMetaObject@@XZ @ 35 NONAME ; struct QMetaObject const & NmAddAttachmentsOperation::getStaticMetaObject(void)
+	?standardFolderId@NmUiEngine@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 36 NONAME ; class NmId NmUiEngine::standardFolderId(class NmId const &, enum NmFolderType)
+	?settings@NmBaseClientPlugin@@QAEXXZ @ 37 NONAME ; void NmBaseClientPlugin::settings(void)
+	?staticMetaObject@NmUiEngine@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const NmUiEngine::staticMetaObject
+	?deleteMessageFromViewerView@NmBaseClientPlugin@@QAEXXZ @ 39 NONAME ; void NmBaseClientPlugin::deleteMessageFromViewerView(void)
+	?removeMessage@NmMessageListModel@@IAEXABVNmId@@@Z @ 40 NONAME ; void NmMessageListModel::removeMessage(class NmId const &)
+	?getIcon@NmIcons@@SAAAVHbIcon@@W4Icon@1@@Z @ 41 NONAME ; class HbIcon & NmIcons::getIcon(enum NmIcons::Icon)
+	?itemType@NmMessageListModelItem@@QBE?AW4NmMessageItemType@1@XZ @ 42 NONAME ; enum NmMessageListModelItem::NmMessageItemType NmMessageListModelItem::itemType(void) const
+	?removeAttachment@NmUiEngine@@QAEPAVNmOperation@@ABVNmMessage@@ABVNmId@@@Z @ 43 NONAME ; class NmOperation * NmUiEngine::removeAttachment(class NmMessage const &, class NmId const &)
+	?mInstance@NmDataPluginFactory@@0PAV1@A @ 44 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::mInstance
+	?data@NmFolderListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 45 NONAME ; class QVariant NmFolderListModel::data(class QModelIndex const &, int) const
+	?setName@NmFolderMetaData@@QAEXABVQString@@@Z @ 46 NONAME ; void NmFolderMetaData::setName(class QString const &)
+	?mReferenceCount@NmUiEngine@@0HA @ 47 NONAME ; int NmUiEngine::mReferenceCount
+	?listFolders@NmDataManager@@QAEXVNmId@@AAV?$QList@PAVNmFolder@@@@@Z @ 48 NONAME ; void NmDataManager::listFolders(class NmId, class QList<class NmFolder *> &)
+	?handleCompletedOperation@NmUiEngine@@QAEXXZ @ 49 NONAME ; void NmUiEngine::handleCompletedOperation(void)
+	?data@NmMailboxListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 50 NONAME ; class QVariant NmMailboxListModel::data(class QModelIndex const &, int) const
+	?handlePreliminaryOperationFinished@NmOperation@@MAEXXZ @ 51 NONAME ; void NmOperation::handlePreliminaryOperationFinished(void)
+	?releaseInstance@NmDataPluginFactory@@SAXAAPAV1@@Z @ 52 NONAME ; void NmDataPluginFactory::releaseInstance(class NmDataPluginFactory * &)
+	?createEditorViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 53 NONAME ; void NmBaseClientPlugin::createEditorViewCommands(class NmActionRequest const &, class QList<class NmAction *> &)
+	?operationCancelled@NmOperation@@IAEXXZ @ 54 NONAME ; void NmOperation::operationCancelled(void)
+	??0NmDataPluginFactory@@AAE@XZ @ 55 NONAME ; NmDataPluginFactory::NmDataPluginFactory(void)
+	?refresh@NmBaseClientPlugin@@QAEXXZ @ 56 NONAME ; void NmBaseClientPlugin::refresh(void)
+	??1NmFolderMetaData@@UAE@XZ @ 57 NONAME ; NmFolderMetaData::~NmFolderMetaData(void)
+	?name@NmFolderMetaData@@QBE?AVQString@@XZ @ 58 NONAME ; class QString NmFolderMetaData::name(void) const
+	?sendMail@NmBaseClientPlugin@@QAEXXZ @ 59 NONAME ; void NmBaseClientPlugin::sendMail(void)
+	?insertNewMessageIntoModel@NmMessageListModel@@AAEXABVNmId@@00@Z @ 60 NONAME ; void NmMessageListModel::insertNewMessageIntoModel(class NmId const &, class NmId const &, class NmId const &)
+	?getStaticMetaObject@NmUiEngine@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & NmUiEngine::getStaticMetaObject(void)
+	?metaObject@NmMessageListModel@@UBEPBUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const * NmMessageListModel::metaObject(void) const
+	?messageBeingSent@NmUiEngine@@QBEPBVNmMessage@@XZ @ 63 NONAME ; class NmMessage const * NmUiEngine::messageBeingSent(void) const
+	?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@VNmId@@@Z @ 64 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class NmId)
+	?goOffline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 65 NONAME ; void NmBaseClientPlugin::goOffline(class NmId const &)
+	?sendMessage@NmUiEngine@@QAEXPAVNmMessage@@ABV?$QList@PAVNmOperation@@@@@Z @ 66 NONAME ; void NmUiEngine::sendMessage(class NmMessage *, class QList<class NmOperation *> const &)
+	?tr@NmDataManager@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString NmDataManager::tr(char const *, char const *, int)
+	??0NmMailboxListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 68 NONAME ; NmMailboxListModel::NmMailboxListModel(class NmDataManager &, class QObject *)
+	?setPriorityNormal@NmBaseClientPlugin@@QAEXXZ @ 69 NONAME ; void NmBaseClientPlugin::setPriorityNormal(void)
 	?changed@NmMessageListModel@@AAE_NABVNmMessageEnvelope@@0@Z @ 70 NONAME ; bool NmMessageListModel::changed(class NmMessageEnvelope const &, class NmMessageEnvelope const &)
-	?refresh@NmMailboxListModel@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 71 NONAME ; void NmMailboxListModel::refresh(class QList<class NmMailbox *> &)
-	?staticMetaObject@NmDataManager@@2UQMetaObject@@B @ 72 NONAME ; struct QMetaObject const NmDataManager::staticMetaObject
-	?folderById@NmDataManager@@QAEPAVNmFolderMetaData@@ABVNmId@@0@Z @ 73 NONAME ; class NmFolderMetaData * NmDataManager::folderById(class NmId const &, class NmId const &)
-	?fetchMessage@NmUiEngine@@QAEPAVNmOperation@@ABVNmId@@00@Z @ 74 NONAME ; class NmOperation * NmUiEngine::fetchMessage(class NmId const &, class NmId const &, class NmId const &)
-	?itemFromModel@NmMessageListModel@@AAEPAVNmMessageListModelItem@@ABVNmId@@@Z @ 75 NONAME ; class NmMessageListModelItem * NmMessageListModel::itemFromModel(class NmId const &)
-	??0NmMessageListModelItem@@QAE@XZ @ 76 NONAME ; NmMessageListModelItem::NmMessageListModelItem(void)
-	?qt_metacall@NmOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 77 NONAME ; int NmOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?removeAttachment@NmUiEngine@@QAEPAVNmOperation@@ABVNmMessage@@ABVNmId@@@Z @ 78 NONAME ; class NmOperation * NmUiEngine::removeAttachment(class NmMessage const &, class NmId const &)
-	??0NmDataManager@@QAE@XZ @ 79 NONAME ; NmDataManager::NmDataManager(void)
-	?setItemType@NmMessageListModelItem@@QAEXW4NmMessageItemType@1@@Z @ 80 NONAME ; void NmMessageListModelItem::setItemType(enum NmMessageListModelItem::NmMessageItemType)
-	?setIconId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 81 NONAME ; void NmMailboxMetaData::setIconId(class NmId const &)
-	?setEnvelope@NmMessageListModelItem@@QAEXPAVNmMessageEnvelope@@@Z @ 82 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope *)
-	?qt_metacall@NmMessageListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 83 NONAME ; int NmMessageListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?updateMessageEnvelope@NmMessageListModel@@AAEXABVNmId@@00@Z @ 84 NONAME ; void NmMessageListModel::updateMessageEnvelope(class NmId const &, class NmId const &, class NmId const &)
-	?metaObject@NmDataManager@@UBEPBUQMetaObject@@XZ @ 85 NONAME ; struct QMetaObject const * NmDataManager::metaObject(void) const
-	?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@VNmId@@@Z @ 86 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class NmId)
-	??1NmMailboxListModel@@UAE@XZ @ 87 NONAME ; NmMailboxListModel::~NmMailboxListModel(void)
-	?tr@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 88 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *, int)
-	?removeItem@NmMessageListModel@@AAEXHAAVNmMessageListModelItem@@@Z @ 89 NONAME ; void NmMessageListModel::removeItem(int, class NmMessageListModelItem &)
-	?createMessageListCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 90 NONAME ; void NmBaseClientPlugin::createMessageListCommands(class NmActionRequest const &, class QList<class NmAction *> &)
-	?qt_metacast@NmMailboxListModel@@UAEPAXPBD@Z @ 91 NONAME ; void * NmMailboxListModel::qt_metacast(char const *)
-	?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 92 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *)
-	??_ENmOperation@@UAE@I@Z @ 93 NONAME ; NmOperation::~NmOperation(unsigned int)
-	??_ENmBaseClientPlugin@@UAE@I@Z @ 94 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(unsigned int)
-	?handleMessageEvent@NmMessageListModel@@QAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@@Z @ 95 NONAME ; void NmMessageListModel::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList<class NmId> const &)
-	?setExpanded@NmMessageListModelItem@@QAEX_N@Z @ 96 NONAME ; void NmMessageListModelItem::setExpanded(bool)
-	??0NmFolderListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 97 NONAME ; NmFolderListModel::NmFolderListModel(class NmDataManager &, class QObject *)
-	?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 98 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *, int)
-	?qt_metacast@NmBaseClientPlugin@@UAEPAXPBD@Z @ 99 NONAME ; void * NmBaseClientPlugin::qt_metacast(char const *)
-	?messagesBelongUnderSameDivider@NmMessageListModel@@ABE_NPBVNmMessageEnvelope@@0@Z @ 100 NONAME ; bool NmMessageListModel::messagesBelongUnderSameDivider(class NmMessageEnvelope const *, class NmMessageEnvelope const *) const
-	?refresh@NmMessageListModel@@QAEXVNmId@@0ABV?$QList@PAVNmMessageEnvelope@@@@@Z @ 101 NONAME ; void NmMessageListModel::refresh(class NmId, class NmId, class QList<class NmMessageEnvelope *> const &)
-	?message@NmDataManager@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 102 NONAME ; class NmMessage * NmDataManager::message(class NmId const &, class NmId const &, class NmId const &)
-	?data@NmFolderListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 103 NONAME ; class QVariant NmFolderListModel::data(class QModelIndex const &, int) const
-	?staticMetaObject@NmUiEngine@@2UQMetaObject@@B @ 104 NONAME ; struct QMetaObject const NmUiEngine::staticMetaObject
-	?metaObject@NmMessageListModel@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * NmMessageListModel::metaObject(void) const
-	?operationProgressChanged@NmOperation@@IAEXH@Z @ 106 NONAME ; void NmOperation::operationProgressChanged(int)
-	??1NmMessageListModel@@UAE@XZ @ 107 NONAME ; NmMessageListModel::~NmMessageListModel(void)
-	??1NmOperation@@UAE@XZ @ 108 NONAME ; NmOperation::~NmOperation(void)
-	??0NmFolderMetaData@@QAE@XZ @ 109 NONAME ; NmFolderMetaData::NmFolderMetaData(void)
-	?cleanupSendOperation@NmUiEngine@@QAEXXZ @ 110 NONAME ; void NmUiEngine::cleanupSendOperation(void)
-	?setEnvelope@NmMessageListModelItem@@QAEXABVNmMessageEnvelope@@@Z @ 111 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope const &)
-	?refresh@NmBaseClientPlugin@@QAEXXZ @ 112 NONAME ; void NmBaseClientPlugin::refresh(void)
-	?addAttachments@NmUiEngine@@QAEPAVNmAddAttachmentsOperation@@ABVNmMessage@@ABV?$QList@VQString@@@@@Z @ 113 NONAME ; class NmAddAttachmentsOperation * NmUiEngine::addAttachments(class NmMessage const &, class QList<class QString> const &)
-	?currentMailboxId@NmMessageListModel@@QAE?AVNmId@@XZ @ 114 NONAME ; class NmId NmMessageListModel::currentMailboxId(void)
-	?rowCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 115 NONAME ; int NmFolderListModel::rowCount(class QModelIndex const &) const
-	?createReplyMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@0_N@Z @ 116 NONAME ; class NmMessageCreationOperation * NmUiEngine::createReplyMessage(class NmId const &, class NmId const &, bool)
-	?syncState@NmUiEngine@@QAE?AW4NmSyncState@@ABVNmId@@@Z @ 117 NONAME ; enum NmSyncState NmUiEngine::syncState(class NmId const &)
-	?isRunning@NmOperation@@QBE_NXZ @ 118 NONAME ; bool NmOperation::isRunning(void) const
-	??_ENmMessageListModelItem@@UAE@I@Z @ 119 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(unsigned int)
-	?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 120 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *, int)
-	?trUtf8@NmUiEngine@@SA?AVQString@@PBD0@Z @ 121 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *)
-	?tr@NmDataManager@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString NmDataManager::tr(char const *, char const *, int)
-	?staticMetaObject@NmBaseClientPlugin@@2UQMetaObject@@B @ 123 NONAME ; struct QMetaObject const NmBaseClientPlugin::staticMetaObject
-	?insertNewMessageIntoModel@NmMessageListModel@@AAEXABVNmId@@00@Z @ 124 NONAME ; void NmMessageListModel::insertNewMessageIntoModel(class NmId const &, class NmId const &, class NmId const &)
-	?updateOperationProgress@NmOperation@@QAEXH@Z @ 125 NONAME ; void NmOperation::updateOperationProgress(int)
-	?trUtf8@NmOperation@@SA?AVQString@@PBD0@Z @ 126 NONAME ; class QString NmOperation::trUtf8(char const *, char const *)
-	?operationPartCompleted@NmAddAttachmentsOperation@@IAEXABVQString@@ABVNmId@@H@Z @ 127 NONAME ; void NmAddAttachmentsOperation::operationPartCompleted(class QString const &, class NmId const &, int)
-	?staticMetaObject@NmAddAttachmentsOperation@@2UQMetaObject@@B @ 128 NONAME ; struct QMetaObject const NmAddAttachmentsOperation::staticMetaObject
-	?listMailboxes@NmDataManager@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 129 NONAME ; void NmDataManager::listMailboxes(class QList<class NmMailbox *> &)
-	?trUtf8@NmOperation@@SA?AVQString@@PBD0H@Z @ 130 NONAME ; class QString NmOperation::trUtf8(char const *, char const *, int)
-	?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 131 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *)
-	?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 132 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *)
-	?tr@NmDataManager@@SA?AVQString@@PBD0@Z @ 133 NONAME ; class QString NmDataManager::tr(char const *, char const *)
-	?replyMail@NmBaseClientPlugin@@QAEXXZ @ 134 NONAME ; void NmBaseClientPlugin::replyMail(void)
-	?qt_metacall@NmDataManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 135 NONAME ; int NmDataManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??_ENmMessageListModel@@UAE@I@Z @ 136 NONAME ; NmMessageListModel::~NmMessageListModel(unsigned int)
-	?mInstance@NmUiEngine@@0PAV1@A @ 137 NONAME ; class NmUiEngine * NmUiEngine::mInstance
-	?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 138 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *, int)
-	?qt_metacast@NmOperation@@UAEPAXPBD@Z @ 139 NONAME ; void * NmOperation::qt_metacast(char const *)
-	??1NmFolderListModel@@UAE@XZ @ 140 NONAME ; NmFolderListModel::~NmFolderListModel(void)
-	?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 141 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *, int)
-	?qt_metacall@NmUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 142 NONAME ; int NmUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?getStaticMetaObject@NmAddAttachmentsOperation@@SAABUQMetaObject@@XZ @ 143 NONAME ; struct QMetaObject const & NmAddAttachmentsOperation::getStaticMetaObject(void)
-	?titleDivider@NmMessageListModelItem@@QBE?AVQString@@XZ @ 144 NONAME ; class QString NmMessageListModelItem::titleDivider(void) const
-	?metaObject@NmAddAttachmentsOperation@@UBEPBUQMetaObject@@XZ @ 145 NONAME ; struct QMetaObject const * NmAddAttachmentsOperation::metaObject(void) const
-	?handleCompletedOperation@NmUiEngine@@QAEXXZ @ 146 NONAME ; void NmUiEngine::handleCompletedOperation(void)
-	?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 147 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *)
-	?contentToMessagePart@NmDataManager@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 148 NONAME ; int NmDataManager::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &)
-	?handleCompletedSendOperation@NmUiEngine@@QAEXXZ @ 149 NONAME ; void NmUiEngine::handleCompletedSendOperation(void)
-	?doCancelOperation@NmOperation@@MAEXXZ @ 150 NONAME ; void NmOperation::doCancelOperation(void)
-	?callEmitDataChanged@NmMessageListModelItem@@QAEXXZ @ 151 NONAME ; void NmMessageListModelItem::callEmitDataChanged(void)
-	?id@NmFolderMetaData@@QBE?AVNmId@@XZ @ 152 NONAME ; class NmId NmFolderMetaData::id(void) const
-	??0NmMessageListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 153 NONAME ; NmMessageListModel::NmMessageListModel(class NmDataManager &, class QObject *)
-	?staticMetaObject@NmMailboxListModel@@2UQMetaObject@@B @ 154 NONAME ; struct QMetaObject const NmMailboxListModel::staticMetaObject
-	?settings@NmBaseClientPlugin@@QAEXXZ @ 155 NONAME ; void NmBaseClientPlugin::settings(void)
-	?deleteMessages@NmUiEngine@@QAEHABVNmId@@0ABV?$QList@VNmId@@@@@Z @ 156 NONAME ; int NmUiEngine::deleteMessages(class NmId const &, class NmId const &, class QList<class NmId> const &)
-	?operationCompleted@NmOperation@@IAEXH@Z @ 157 NONAME ; void NmOperation::operationCompleted(int)
-	?setName@NmFolderMetaData@@QAEXABVQString@@@Z @ 158 NONAME ; void NmFolderMetaData::setName(class QString const &)
-	?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@PAVQObject@@@Z @ 159 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class QObject *)
-	?folder@NmDataManager@@QAEPAVNmFolder@@ABVNmId@@0@Z @ 160 NONAME ; class NmFolder * NmDataManager::folder(class NmId const &, class NmId const &)
-	?sendMessage@NmUiEngine@@QAEXPAVNmMessage@@@Z @ 161 NONAME ; void NmUiEngine::sendMessage(class NmMessage *)
-	?messageBeingSent@NmUiEngine@@QAEPBVNmMessage@@XZ @ 162 NONAME ; class NmMessage const * NmUiEngine::messageBeingSent(void)
-	?createMessageItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 163 NONAME ; class NmMessageListModelItem * NmMessageListModel::createMessageItem(class NmMessageEnvelope *)
-	??_ENmDataManager@@UAE@I@Z @ 164 NONAME ; NmDataManager::~NmDataManager(unsigned int)
-	?getInsertionIndex@NmMessageListModel@@ABEHABVNmMessageEnvelope@@@Z @ 165 NONAME ; int NmMessageListModel::getInsertionIndex(class NmMessageEnvelope const &) const
-	?handleCompletedSaveOperation@NmUiEngine@@QAEXH@Z @ 166 NONAME ; void NmUiEngine::handleCompletedSaveOperation(int)
-	?mReferenceCount@NmUiEngine@@0HA @ 167 NONAME ; int NmUiEngine::mReferenceCount
-	?mailbox@NmDataManager@@QAEPAVNmMailbox@@ABVNmId@@@Z @ 168 NONAME ; class NmMailbox * NmDataManager::mailbox(class NmId const &)
-	??1NmAddAttachmentsOperation@@UAE@XZ @ 169 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(void)
-	?setId@NmFolderMetaData@@QAEXABVNmId@@@Z @ 170 NONAME ; void NmFolderMetaData::setId(class NmId const &)
-	??0NmMailboxListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 171 NONAME ; NmMailboxListModel::NmMailboxListModel(class NmDataManager &, class QObject *)
-	?getIcon@NmIcons@@SAAAVHbIcon@@W4Icon@1@@Z @ 172 NONAME ; class HbIcon & NmIcons::getIcon(enum NmIcons::Icon)
-	?removeMessage@NmUiEngine@@QAEHABVNmId@@00@Z @ 173 NONAME ; int NmUiEngine::removeMessage(class NmId const &, class NmId const &, class NmId const &)
-	?connectionEvent@NmUiEngine@@IAEXW4NmConnectState@@ABVNmId@@@Z @ 174 NONAME ; void NmUiEngine::connectionEvent(enum NmConnectState, class NmId const &)
-	?listFolders@NmDataManager@@QAEXVNmId@@AAV?$QList@PAVNmFolder@@@@@Z @ 175 NONAME ; void NmDataManager::listFolders(class NmId, class QList<class NmFolder *> &)
-	?contentToMessagePart@NmUiEngine@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 176 NONAME ; int NmUiEngine::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &)
-	?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 177 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *, int)
-	?setNewParam@NmMessageListModel@@IAEXPAVNmUiStartParam@@@Z @ 178 NONAME ; void NmMessageListModel::setNewParam(class NmUiStartParam *)
-	?itemType@NmMessageListModelItem@@QBE?AW4NmMessageItemType@1@XZ @ 179 NONAME ; enum NmMessageListModelItem::NmMessageItemType NmMessageListModelItem::itemType(void) const
-	?tr@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 180 NONAME ; class QString NmMessageListModel::tr(char const *, char const *)
-	?doUpdateOperationProgress@NmOperation@@MAEXXZ @ 181 NONAME ; void NmOperation::doUpdateOperationProgress(void)
-	??1NmMailboxMetaData@@UAE@XZ @ 182 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(void)
-	?createNewMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@@Z @ 183 NONAME ; class NmMessageCreationOperation * NmUiEngine::createNewMessage(class NmId const &)
-	?setPriorityLow@NmBaseClientPlugin@@QAEXXZ @ 184 NONAME ; void NmBaseClientPlugin::setPriorityLow(void)
-	?mailboxById@NmDataManager@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 185 NONAME ; class NmMailboxMetaData * NmDataManager::mailboxById(class NmId const &)
-	?freeIcons@NmIcons@@SAXXZ @ 186 NONAME ; void NmIcons::freeIcons(void)
-	?setId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 187 NONAME ; void NmMailboxMetaData::setId(class NmId const &)
-	?createViewerViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 188 NONAME ; void NmBaseClientPlugin::createViewerViewCommands(class NmActionRequest const &, class QList<class NmAction *> &)
-	?data@NmMessageListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 189 NONAME ; class QVariant NmMessageListModel::data(class QModelIndex const &, int) const
-	??_ENmUiEngine@@UAE@I@Z @ 190 NONAME ; NmUiEngine::~NmUiEngine(unsigned int)
-	?isSendingMessage@NmUiEngine@@QBE_NXZ @ 191 NONAME ; bool NmUiEngine::isSendingMessage(void) const
-	?openMessage@NmBaseClientPlugin@@QAEXXZ @ 192 NONAME ; void NmBaseClientPlugin::openMessage(void)
-	?tr@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 193 NONAME ; class QString NmUiEngine::tr(char const *, char const *, int)
-	?releaseMessageListModel@NmUiEngine@@QAEXABVNmId@@@Z @ 194 NONAME ; void NmUiEngine::releaseMessageListModel(class NmId const &)
-	?qt_metacast@NmDataManager@@UAEPAXPBD@Z @ 195 NONAME ; void * NmDataManager::qt_metacast(char const *)
-	?parent@NmFolderListModel@@UBE?AVQModelIndex@@ABV2@@Z @ 196 NONAME ; class QModelIndex NmFolderListModel::parent(class QModelIndex const &) const
-	??_ENmAddAttachmentsOperation@@UAE@I@Z @ 197 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(unsigned int)
-	?qt_metacast@NmMessageListModel@@UAEPAXPBD@Z @ 198 NONAME ; void * NmMessageListModel::qt_metacast(char const *)
-	?expanded@NmMessageListModelItem@@QBE_NXZ @ 199 NONAME ; bool NmMessageListModelItem::expanded(void) const
-	?tr@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 200 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *)
-	?insertDividerIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H@Z @ 201 NONAME ; void NmMessageListModel::insertDividerIntoModel(class NmMessageEnvelope *, int)
-	?qt_metacall@NmAddAttachmentsOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 202 NONAME ; int NmAddAttachmentsOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?replyAllMail@NmBaseClientPlugin@@QAEXXZ @ 203 NONAME ; void NmBaseClientPlugin::replyAllMail(void)
-	??_ENmFolderListModel@@UAE@I@Z @ 204 NONAME ; NmFolderListModel::~NmFolderListModel(unsigned int)
-	?getStaticMetaObject@NmUiEngine@@SAABUQMetaObject@@XZ @ 205 NONAME ; struct QMetaObject const & NmUiEngine::getStaticMetaObject(void)
-	??1NmMessageListModelItem@@UAE@XZ @ 206 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(void)
-	?data@NmMailboxListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 207 NONAME ; class QVariant NmMailboxListModel::data(class QModelIndex const &, int) const
-	?listMailboxIds@NmDataManager@@QAEXAAV?$QList@VNmId@@@@@Z @ 208 NONAME ; void NmDataManager::listMailboxIds(class QList<class NmId> &)
-	?connectionState@NmUiEngine@@QAE?AW4NmConnectState@@ABVNmId@@@Z @ 209 NONAME ; enum NmConnectState NmUiEngine::connectionState(class NmId const &)
-	?markAsUnread@NmBaseClientPlugin@@QAEXXZ @ 210 NONAME ; void NmBaseClientPlugin::markAsUnread(void)
-	?sendMail@NmBaseClientPlugin@@QAEXXZ @ 211 NONAME ; void NmBaseClientPlugin::sendMail(void)
-	?refresh@NmFolderListModel@@QAEXAAV?$QList@PAVNmFolder@@@@@Z @ 212 NONAME ; void NmFolderListModel::refresh(class QList<class NmFolder *> &)
-	?metaObject@NmBaseClientPlugin@@UBEPBUQMetaObject@@XZ @ 213 NONAME ; struct QMetaObject const * NmBaseClientPlugin::metaObject(void) const
-	?mailboxListChanged@NmBaseClientPlugin@@AAEXABVNmId@@W4MailboxEventType@NmSettings@@@Z @ 214 NONAME ; void NmBaseClientPlugin::mailboxListChanged(class NmId const &, enum NmSettings::MailboxEventType)
-	?releaseInstance@NmDataPluginFactory@@SAXAAPAV1@@Z @ 215 NONAME ; void NmDataPluginFactory::releaseInstance(class NmDataPluginFactory * &)
-	?instance@NmDataPluginFactory@@SAPAV1@XZ @ 216 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::instance(void)
-	?mPluginArray@NmDataPluginFactory@@0PAV?$QList@PAVQObject@@@@A @ 217 NONAME ; class QList<class QObject *> * NmDataPluginFactory::mPluginArray
-	?qt_metacast@NmAddAttachmentsOperation@@UAEPAXPBD@Z @ 218 NONAME ; void * NmAddAttachmentsOperation::qt_metacast(char const *)
-	?refreshModelItem@NmMailboxListModel@@QAEXABVNmId@@_N@Z @ 219 NONAME ; void NmMailboxListModel::refreshModelItem(class NmId const &, bool)
-	?listMessages@NmDataManager@@QAEXABVNmId@@0AAV?$QList@PAVNmMessageEnvelope@@@@@Z @ 220 NONAME ; void NmDataManager::listMessages(class NmId const &, class NmId const &, class QList<class NmMessageEnvelope *> &)
-	?setEnvelopes@NmUiEngine@@QAEPAVNmStoreEnvelopesOperation@@ABVNmId@@0W4NmEnvelopeProperties@@ABV?$QList@PB$$CBVNmMessageEnvelope@@@@@Z @ 221 NONAME ; class NmStoreEnvelopesOperation * NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList<class NmMessageEnvelope const *> const &)
-	?setEnvelopeProperties@NmMessageListModel@@QAEXW4NmEnvelopeProperties@@ABV?$QList@VNmId@@@@@Z @ 222 NONAME ; void NmMessageListModel::setEnvelopeProperties(enum NmEnvelopeProperties, class QList<class NmId> const &)
-	?message@NmUiEngine@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 223 NONAME ; class NmMessage * NmUiEngine::message(class NmId const &, class NmId const &, class NmId const &)
-	?createNewMail@NmBaseClientPlugin@@QAEXXZ @ 224 NONAME ; void NmBaseClientPlugin::createNewMail(void)
-	?columnCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 225 NONAME ; int NmFolderListModel::columnCount(class QModelIndex const &) const
-	?staticMetaObject@NmMessageListModel@@2UQMetaObject@@B @ 226 NONAME ; struct QMetaObject const NmMessageListModel::staticMetaObject
-	?metaObject@NmMailboxListModel@@UBEPBUQMetaObject@@XZ @ 227 NONAME ; struct QMetaObject const * NmMailboxListModel::metaObject(void) const
-	?syncStateEvent@NmUiEngine@@IAEXW4NmSyncState@@ABVNmId@@@Z @ 228 NONAME ; void NmUiEngine::syncStateEvent(enum NmSyncState, class NmId const &)
-	?setTitleDivider@NmMessageListModelItem@@QAEXABVQString@@@Z @ 229 NONAME ; void NmMessageListModelItem::setTitleDivider(class QString const &)
-	?tr@NmUiEngine@@SA?AVQString@@PBD0@Z @ 230 NONAME ; class QString NmUiEngine::tr(char const *, char const *)
-	?staticMetaObject@NmOperation@@2UQMetaObject@@B @ 231 NONAME ; struct QMetaObject const NmOperation::staticMetaObject
-	?refreshMailboxListModel@NmUiEngine@@QAEXXZ @ 232 NONAME ; void NmUiEngine::refreshMailboxListModel(void)
-	??0NmAddAttachmentsOperation@@QAE@PAVQObject@@@Z @ 233 NONAME ; NmAddAttachmentsOperation::NmAddAttachmentsOperation(class QObject *)
-	?qt_metacast@NmUiEngine@@UAEPAXPBD@Z @ 234 NONAME ; void * NmUiEngine::qt_metacast(char const *)
-	?deleteMessageFromViewerViewToolbar@NmBaseClientPlugin@@QAEXXZ @ 235 NONAME ; void NmBaseClientPlugin::deleteMessageFromViewerViewToolbar(void)
-	?standardFolderId@NmUiEngine@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 236 NONAME ; class NmId NmUiEngine::standardFolderId(class NmId const &, enum NmFolderType)
-	?storeOperation@NmUiEngine@@QAEXPAVNmOperation@@@Z @ 237 NONAME ; void NmUiEngine::storeOperation(class NmOperation *)
-	?pluginInstance@NmDataPluginFactory@@QAEPAVQObject@@VNmId@@@Z @ 238 NONAME ; class QObject * NmDataPluginFactory::pluginInstance(class NmId)
-	?mInstance@NmDataPluginFactory@@0PAV1@A @ 239 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::mInstance
-	?mailboxById@NmUiEngine@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 240 NONAME ; class NmMailboxMetaData * NmUiEngine::mailboxById(class NmId const &)
-	?qt_metacall@NmBaseClientPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 241 NONAME ; int NmBaseClientPlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??_ENmFolderMetaData@@UAE@I@Z @ 242 NONAME ; NmFolderMetaData::~NmFolderMetaData(unsigned int)
-	?mailboxListModel@NmUiEngine@@QAEAAVNmMailboxListModel@@XZ @ 243 NONAME ; class NmMailboxListModel & NmUiEngine::mailboxListModel(void)
-	?createMailboxItem@NmMailboxListModel@@AAEPAVNmMailboxListModelItem@@PBVNmMailbox@@@Z @ 244 NONAME ; class NmMailboxListModelItem * NmMailboxListModel::createMailboxItem(class NmMailbox const *)
-	?handleMailboxEvent@NmMailboxListModel@@QAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 245 NONAME ; void NmMailboxListModel::handleMailboxEvent(enum NmMailboxEvent, class QList<class NmId> const &)
-	?trUtf8@NmDataManager@@SA?AVQString@@PBD0@Z @ 246 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *)
-	??_ENmMailboxListModel@@UAE@I@Z @ 247 NONAME ; NmMailboxListModel::~NmMailboxListModel(unsigned int)
-	??0NmUiEngine@@AAE@XZ @ 248 NONAME ; NmUiEngine::NmUiEngine(void)
-	?saveMessage@NmUiEngine@@QAEHABVNmMessage@@@Z @ 249 NONAME ; int NmUiEngine::saveMessage(class NmMessage const &)
-	?deleteMessage@NmBaseClientPlugin@@QAEXXZ @ 250 NONAME ; void NmBaseClientPlugin::deleteMessage(void)
-	?getStaticMetaObject@NmDataManager@@SAABUQMetaObject@@XZ @ 251 NONAME ; struct QMetaObject const & NmDataManager::getStaticMetaObject(void)
+	?handleMailboxEvent@NmMailboxListModel@@QAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 71 NONAME ; void NmMailboxListModel::handleMailboxEvent(enum NmMailboxEvent, class QList<class NmId> const &)
+	?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *, int)
+	?mPluginArray@NmDataPluginFactory@@0PAV?$QList@PAVQObject@@@@A @ 73 NONAME ; class QList<class QObject *> * NmDataPluginFactory::mPluginArray
+	?getStaticMetaObject@NmMessageListModel@@SAABUQMetaObject@@XZ @ 74 NONAME ; struct QMetaObject const & NmMessageListModel::getStaticMetaObject(void)
+	?instance@NmDataPluginFactory@@SAPAV1@XZ @ 75 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::instance(void)
+	?tr@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 76 NONAME ; class QString NmUiEngine::tr(char const *, char const *, int)
+	?refresh@NmMessageListModel@@QAEXVNmId@@0ABV?$QList@PAVNmMessageEnvelope@@@@@Z @ 77 NONAME ; void NmMessageListModel::refresh(class NmId, class NmId, class QList<class NmMessageEnvelope *> const &)
+	?mailboxById@NmUiEngine@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 78 NONAME ; class NmMailboxMetaData * NmUiEngine::mailboxById(class NmId const &)
+	??_ENmMessageListModelItem@@UAE@I@Z @ 79 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(unsigned int)
+	?replyAllMail@NmBaseClientPlugin@@QAEXXZ @ 80 NONAME ; void NmBaseClientPlugin::replyAllMail(void)
+	?syncStateEvent@NmUiEngine@@IAEXW4NmSyncState@@ABVNmId@@@Z @ 81 NONAME ; void NmUiEngine::syncStateEvent(enum NmSyncState, class NmId const &)
+	?trUtf8@NmDataManager@@SA?AVQString@@PBD0@Z @ 82 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *)
+	?setEnvelopeProperties@NmMessageListModel@@QAEXW4NmEnvelopeProperties@@ABV?$QList@VNmId@@@@@Z @ 83 NONAME ; void NmMessageListModel::setEnvelopeProperties(enum NmEnvelopeProperties, class QList<class NmId> const &)
+	?tr@NmUiEngine@@SA?AVQString@@PBD0@Z @ 84 NONAME ; class QString NmUiEngine::tr(char const *, char const *)
+	?mPluginLoaderArray@NmDataPluginFactory@@0V?$QList@PAVQPluginLoader@@@@A @ 85 NONAME ; class QList<class QPluginLoader *> NmDataPluginFactory::mPluginLoaderArray
+	?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 86 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *)
+	?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 87 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *, int)
+	?createViewerViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 88 NONAME ; void NmBaseClientPlugin::createViewerViewCommands(class NmActionRequest const &, class QList<class NmAction *> &)
+	??1NmOperation@@UAE@XZ @ 89 NONAME ; NmOperation::~NmOperation(void)
+	?tr@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 90 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *, int)
+	?trUtf8@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 91 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *, int)
+	?createMailboxItem@NmMailboxListModel@@AAEPAVNmMailboxListModelItem@@PBVNmMailbox@@@Z @ 92 NONAME ; class NmMailboxListModelItem * NmMailboxListModel::createMailboxItem(class NmMailbox const *)
+	?setTitleDivider@NmMessageListModelItem@@QAEXABVQString@@@Z @ 93 NONAME ; void NmMessageListModelItem::setTitleDivider(class QString const &)
+	?markAsRead@NmBaseClientPlugin@@QAEXXZ @ 94 NONAME ; void NmBaseClientPlugin::markAsRead(void)
+	?getInsertionIndex@NmMessageListModel@@ABEHABVNmMessageEnvelope@@@Z @ 95 NONAME ; int NmMessageListModel::getInsertionIndex(class NmMessageEnvelope const &) const
+	?updateOperationProgress@NmOperation@@QAEXH@Z @ 96 NONAME ; void NmOperation::updateOperationProgress(int)
+	?cleanupSendOperation@NmUiEngine@@QAEXXZ @ 97 NONAME ; void NmUiEngine::cleanupSendOperation(void)
+	??1NmFolderListModel@@UAE@XZ @ 98 NONAME ; NmFolderListModel::~NmFolderListModel(void)
+	??1NmDataManager@@UAE@XZ @ 99 NONAME ; NmDataManager::~NmDataManager(void)
+	?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 100 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *)
+	?name@NmMailboxMetaData@@QBE?AVQString@@XZ @ 101 NONAME ; class QString NmMailboxMetaData::name(void) const
+	?qt_metacall@NmDataManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 102 NONAME ; int NmDataManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?runAsyncOperation@NmOperation@@MAEXXZ @ 103 NONAME ; void NmOperation::runAsyncOperation(void)
+	??0NmFolderListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 104 NONAME ; NmFolderListModel::NmFolderListModel(class NmDataManager &, class QObject *)
+	?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 105 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *, int)
+	??0NmMailboxMetaData@@QAE@XZ @ 106 NONAME ; NmMailboxMetaData::NmMailboxMetaData(void)
+	?setEnvelope@NmMessageListModelItem@@QAEXPAVNmMessageEnvelope@@@Z @ 107 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope *)
+	?saveMessage@NmUiEngine@@QAEHABVNmMessage@@@Z @ 108 NONAME ; int NmUiEngine::saveMessage(class NmMessage const &)
+	?setId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 109 NONAME ; void NmMailboxMetaData::setId(class NmId const &)
+	?mReferenceCount@NmDataPluginFactory@@0HA @ 110 NONAME ; int NmDataPluginFactory::mReferenceCount
+	?tr@NmOperation@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString NmOperation::tr(char const *, char const *)
+	?updateMessageEnvelope@NmMessageListModel@@AAEXABVNmId@@00@Z @ 112 NONAME ; void NmMessageListModel::updateMessageEnvelope(class NmId const &, class NmId const &, class NmId const &)
+	?messagesBelongUnderSameDivider@NmMessageListModel@@ABE_NPBVNmMessageEnvelope@@0@Z @ 113 NONAME ; bool NmMessageListModel::messagesBelongUnderSameDivider(class NmMessageEnvelope const *, class NmMessageEnvelope const *) const
+	?metaObject@NmDataManager@@UBEPBUQMetaObject@@XZ @ 114 NONAME ; struct QMetaObject const * NmDataManager::metaObject(void) const
+	?freeIcons@NmIcons@@SAXXZ @ 115 NONAME ; void NmIcons::freeIcons(void)
+	?isSendingMessage@NmUiEngine@@QBE_NXZ @ 116 NONAME ; bool NmUiEngine::isSendingMessage(void) const
+	?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 117 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *)
+	?instance@NmUiEngine@@SAPAV1@XZ @ 118 NONAME ; class NmUiEngine * NmUiEngine::instance(void)
+	?itemFromModel@NmMessageListModel@@AAEPAVNmMessageListModelItem@@ABVNmId@@@Z @ 119 NONAME ; class NmMessageListModelItem * NmMessageListModel::itemFromModel(class NmId const &)
+	?createMessageListCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 120 NONAME ; void NmBaseClientPlugin::createMessageListCommands(class NmActionRequest const &, class QList<class NmAction *> &)
+	?updateEnvelopeProperty@NmBaseClientPlugin@@AAEXW4NmEnvelopeProperties@@@Z @ 121 NONAME ; void NmBaseClientPlugin::updateEnvelopeProperty(enum NmEnvelopeProperties)
+	?goOffline@NmUiEngine@@QAEHABVNmId@@@Z @ 122 NONAME ; int NmUiEngine::goOffline(class NmId const &)
+	?staticMetaObject@NmDataManager@@2UQMetaObject@@B @ 123 NONAME ; struct QMetaObject const NmDataManager::staticMetaObject
+	?mInstance@NmUiEngine@@0PAV1@A @ 124 NONAME ; class NmUiEngine * NmUiEngine::mInstance
+	?attach@NmBaseClientPlugin@@QAEXXZ @ 125 NONAME ; void NmBaseClientPlugin::attach(void)
+	?metaObject@NmAddAttachmentsOperation@@UBEPBUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const * NmAddAttachmentsOperation::metaObject(void) const
+	?refresh@NmFolderListModel@@QAEXAAV?$QList@PAVNmFolder@@@@@Z @ 127 NONAME ; void NmFolderListModel::refresh(class QList<class NmFolder *> &)
+	?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 128 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *)
+	?envelopeById@NmDataManager@@QAEPAVNmMessageEnvelope@@ABVNmId@@00@Z @ 129 NONAME ; class NmMessageEnvelope * NmDataManager::envelopeById(class NmId const &, class NmId const &, class NmId const &)
+	?getStaticMetaObject@NmOperation@@SAABUQMetaObject@@XZ @ 130 NONAME ; struct QMetaObject const & NmOperation::getStaticMetaObject(void)
+	?trUtf8@NmOperation@@SA?AVQString@@PBD0@Z @ 131 NONAME ; class QString NmOperation::trUtf8(char const *, char const *)
+	?doCancelOperation@NmOperation@@MAEXXZ @ 132 NONAME ; void NmOperation::doCancelOperation(void)
+	?tr@NmOperation@@SA?AVQString@@PBD0H@Z @ 133 NONAME ; class QString NmOperation::tr(char const *, char const *, int)
+	??_ENmOperation@@UAE@I@Z @ 134 NONAME ; NmOperation::~NmOperation(unsigned int)
+	?qt_metacall@NmMessageListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 135 NONAME ; int NmMessageListModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@NmOperation@@2UQMetaObject@@B @ 136 NONAME ; struct QMetaObject const NmOperation::staticMetaObject
+	??1NmUiEngine@@EAE@XZ @ 137 NONAME ; NmUiEngine::~NmUiEngine(void)
+	?messagePartFile@NmUiEngine@@QAE?AVXQSharableFile@@ABVNmId@@000@Z @ 138 NONAME ; class XQSharableFile NmUiEngine::messagePartFile(class NmId const &, class NmId const &, class NmId const &, class NmId const &)
+	??_ENmMessageListModel@@UAE@I@Z @ 139 NONAME ; NmMessageListModel::~NmMessageListModel(unsigned int)
+	?addPreliminaryOperation@NmOperation@@QAEXPAV1@@Z @ 140 NONAME ; void NmOperation::addPreliminaryOperation(class NmOperation *)
+	?deleteMessages@NmUiEngine@@QAEHABVNmId@@0ABV?$QList@VNmId@@@@@Z @ 141 NONAME ; int NmUiEngine::deleteMessages(class NmId const &, class NmId const &, class QList<class NmId> const &)
+	?mailboxById@NmDataManager@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 142 NONAME ; class NmMailboxMetaData * NmDataManager::mailboxById(class NmId const &)
+	?pluginInstances@NmDataPluginFactory@@QAEPAV?$QList@PAVQObject@@@@XZ @ 143 NONAME ; class QList<class QObject *> * NmDataPluginFactory::pluginInstances(void)
+	?addAttachments@NmUiEngine@@QAEPAVNmAddAttachmentsOperation@@ABVNmMessage@@ABV?$QList@VQString@@@@@Z @ 144 NONAME ; class NmAddAttachmentsOperation * NmUiEngine::addAttachments(class NmMessage const &, class QList<class QString> const &)
+	?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 145 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *)
+	??0NmAddAttachmentsOperation@@QAE@PAVQObject@@@Z @ 146 NONAME ; NmAddAttachmentsOperation::NmAddAttachmentsOperation(class QObject *)
+	?listMessages@NmDataManager@@QAEXABVNmId@@0AAV?$QList@PAVNmMessageEnvelope@@@@@Z @ 147 NONAME ; void NmDataManager::listMessages(class NmId const &, class NmId const &, class QList<class NmMessageEnvelope *> &)
+	??1NmBaseClientPlugin@@UAE@XZ @ 148 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(void)
+	?qt_metacast@NmDataManager@@UAEPAXPBD@Z @ 149 NONAME ; void * NmDataManager::qt_metacast(char const *)
+	?qt_metacall@NmBaseClientPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 150 NONAME ; int NmBaseClientPlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?envelopePtr@NmMessageListModelItem@@QAEPAVNmMessageEnvelope@@XZ @ 151 NONAME ; class NmMessageEnvelope * NmMessageListModelItem::envelopePtr(void)
+	?messageListModel@NmUiEngine@@QAEAAVNmMessageListModel@@ABVNmId@@0@Z @ 152 NONAME ; class NmMessageListModel & NmUiEngine::messageListModel(class NmId const &, class NmId const &)
+	??1NmMailboxMetaData@@UAE@XZ @ 153 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(void)
+	?connectionEvent@NmUiEngine@@IAEXW4NmConnectState@@ABVNmId@@@Z @ 154 NONAME ; void NmUiEngine::connectionEvent(enum NmConnectState, class NmId const &)
+	?mailbox@NmDataManager@@QAEPAVNmMailbox@@ABVNmId@@@Z @ 155 NONAME ; class NmMailbox * NmDataManager::mailbox(class NmId const &)
+	?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@PAVQObject@@@Z @ 156 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class QObject *)
+	?refreshModelItem@NmMailboxListModel@@QAEXABVNmId@@_N@Z @ 157 NONAME ; void NmMailboxListModel::refreshModelItem(class NmId const &, bool)
+	?metaObject@NmMailboxListModel@@UBEPBUQMetaObject@@XZ @ 158 NONAME ; struct QMetaObject const * NmMailboxListModel::metaObject(void) const
+	?IconId@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 159 NONAME ; class NmId NmMailboxMetaData::IconId(void) const
+	??0NmFolderMetaData@@QAE@XZ @ 160 NONAME ; NmFolderMetaData::NmFolderMetaData(void)
+	?createNewMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@@Z @ 161 NONAME ; class NmMessageCreationOperation * NmUiEngine::createNewMessage(class NmId const &)
+	?staticMetaObject@NmAddAttachmentsOperation@@2UQMetaObject@@B @ 162 NONAME ; struct QMetaObject const NmAddAttachmentsOperation::staticMetaObject
+	?connectionState@NmUiEngine@@QAE?AW4NmConnectState@@ABVNmId@@@Z @ 163 NONAME ; enum NmConnectState NmUiEngine::connectionState(class NmId const &)
+	?createTitleDividerItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 164 NONAME ; class NmMessageListModelItem * NmMessageListModel::createTitleDividerItem(class NmMessageEnvelope *)
+	?setId@NmFolderMetaData@@QAEXABVNmId@@@Z @ 165 NONAME ; void NmFolderMetaData::setId(class NmId const &)
+	?cancelOperation@NmOperation@@QAEXXZ @ 166 NONAME ; void NmOperation::cancelOperation(void)
+	??_ENmFolderMetaData@@UAE@I@Z @ 167 NONAME ; NmFolderMetaData::~NmFolderMetaData(unsigned int)
+	?qt_metacast@NmMessageListModel@@UAEPAXPBD@Z @ 168 NONAME ; void * NmMessageListModel::qt_metacast(char const *)
+	?operationProgressChanged@NmOperation@@IAEXH@Z @ 169 NONAME ; void NmOperation::operationProgressChanged(int)
+	?trUtf8@NmOperation@@SA?AVQString@@PBD0H@Z @ 170 NONAME ; class QString NmOperation::trUtf8(char const *, char const *, int)
+	??_ENmMailboxListModel@@UAE@I@Z @ 171 NONAME ; NmMailboxListModel::~NmMailboxListModel(unsigned int)
+	?metaObject@NmUiEngine@@UBEPBUQMetaObject@@XZ @ 172 NONAME ; struct QMetaObject const * NmUiEngine::metaObject(void) const
+	??_ENmBaseClientPlugin@@UAE@I@Z @ 173 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(unsigned int)
+	?markAsUnread@NmBaseClientPlugin@@QAEXXZ @ 174 NONAME ; void NmBaseClientPlugin::markAsUnread(void)
+	?metaObject@NmBaseClientPlugin@@UBEPBUQMetaObject@@XZ @ 175 NONAME ; struct QMetaObject const * NmBaseClientPlugin::metaObject(void) const
+	?mailboxListModel@NmUiEngine@@QAEAAVNmMailboxListModel@@XZ @ 176 NONAME ; class NmMailboxListModel & NmUiEngine::mailboxListModel(void)
+	?tr@NmDataManager@@SA?AVQString@@PBD0@Z @ 177 NONAME ; class QString NmDataManager::tr(char const *, char const *)
+	?setIconId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 178 NONAME ; void NmMailboxMetaData::setIconId(class NmId const &)
+	??1NmDataPluginFactory@@EAE@XZ @ 179 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(void)
+	?refreshMailboxListModel@NmUiEngine@@QAEXXZ @ 180 NONAME ; void NmUiEngine::refreshMailboxListModel(void)
+	?rowCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 181 NONAME ; int NmFolderListModel::rowCount(class QModelIndex const &) const
+	?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 182 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *)
+	?doUpdateOperationProgress@NmOperation@@MAEXXZ @ 183 NONAME ; void NmOperation::doUpdateOperationProgress(void)
+	?tr@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 184 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *)
+	?removeMessage@NmUiEngine@@QAEHABVNmId@@00@Z @ 185 NONAME ; int NmUiEngine::removeMessage(class NmId const &, class NmId const &, class NmId const &)
+	??_ENmUiEngine@@UAE@I@Z @ 186 NONAME ; NmUiEngine::~NmUiEngine(unsigned int)
+	?operationCompleted@NmOperation@@IAEXH@Z @ 187 NONAME ; void NmOperation::operationCompleted(int)
+	?storeOperation@NmUiEngine@@QAEXPAVNmOperation@@@Z @ 188 NONAME ; void NmUiEngine::storeOperation(class NmOperation *)
+	?callEmitDataChanged@NmMessageListModelItem@@QAEXXZ @ 189 NONAME ; void NmMessageListModelItem::callEmitDataChanged(void)
+	??0NmMessageListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 190 NONAME ; NmMessageListModel::NmMessageListModel(class NmDataManager &, class QObject *)
+	??_ENmAddAttachmentsOperation@@UAE@I@Z @ 191 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(unsigned int)
+	?syncState@NmUiEngine@@QAE?AW4NmSyncState@@ABVNmId@@@Z @ 192 NONAME ; enum NmSyncState NmUiEngine::syncState(class NmId const &)
+	?checkOutbox@NmUiEngine@@QAEPAVNmCheckOutboxOperation@@ABVNmId@@@Z @ 193 NONAME ; class NmCheckOutboxOperation * NmUiEngine::checkOutbox(class NmId const &)
+	?listMailboxes@NmDataManager@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 194 NONAME ; void NmDataManager::listMailboxes(class QList<class NmMailbox *> &)
+	?message@NmUiEngine@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 195 NONAME ; class NmMessage * NmUiEngine::message(class NmId const &, class NmId const &, class NmId const &)
+	?refreshMailbox@NmUiEngine@@QAEHABVNmId@@@Z @ 196 NONAME ; int NmUiEngine::refreshMailbox(class NmId const &)
+	?trUtf8@NmUiEngine@@SA?AVQString@@PBD0@Z @ 197 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *)
+	?contentToMessagePart@NmUiEngine@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 198 NONAME ; int NmUiEngine::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &)
+	?removeItem@NmMessageListModel@@AAEXHAAVNmMessageListModelItem@@@Z @ 199 NONAME ; void NmMessageListModel::removeItem(int, class NmMessageListModelItem &)
+	??1NmMailboxListModel@@UAE@XZ @ 200 NONAME ; NmMailboxListModel::~NmMailboxListModel(void)
+	??0NmBaseClientPlugin@@QAE@XZ @ 201 NONAME ; NmBaseClientPlugin::NmBaseClientPlugin(void)
+	?forwardMail@NmBaseClientPlugin@@QAEXXZ @ 202 NONAME ; void NmBaseClientPlugin::forwardMail(void)
+	?createReplyMessage@NmUiEngine@@QAEPAVNmMessageCreationOperation@@ABVNmId@@0_N@Z @ 203 NONAME ; class NmMessageCreationOperation * NmUiEngine::createReplyMessage(class NmId const &, class NmId const &, bool)
+	?setItemType@NmMessageListModelItem@@QAEXW4NmMessageItemType@1@@Z @ 204 NONAME ; void NmMessageListModelItem::setItemType(enum NmMessageListModelItem::NmMessageItemType)
+	??_ENmDataPluginFactory@@UAE@I@Z @ 205 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(unsigned int)
+	?mailboxListChanged@NmBaseClientPlugin@@AAEXABVNmId@@W4MailboxEventType@NmSettings@@@Z @ 206 NONAME ; void NmBaseClientPlugin::mailboxListChanged(class NmId const &, enum NmSettings::MailboxEventType)
+	?expanded@NmMessageListModelItem@@QBE_NXZ @ 207 NONAME ; bool NmMessageListModelItem::expanded(void) const
+	?columnCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 208 NONAME ; int NmFolderListModel::columnCount(class QModelIndex const &) const
+	?pluginInstance@NmDataPluginFactory@@QAEPAVQObject@@VNmId@@@Z @ 209 NONAME ; class QObject * NmDataPluginFactory::pluginInstance(class NmId)
+	?setNewParam@NmMessageListModel@@IAEXPAVNmUiStartParam@@@Z @ 210 NONAME ; void NmMessageListModel::setNewParam(class NmUiStartParam *)
+	?data@NmMessageListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 211 NONAME ; class QVariant NmMessageListModel::data(class QModelIndex const &, int) const
+	?goOnline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 212 NONAME ; void NmBaseClientPlugin::goOnline(class NmId const &)
+	?createNewMail@NmBaseClientPlugin@@QAEXXZ @ 213 NONAME ; void NmBaseClientPlugin::createNewMail(void)
+	?qt_metacast@NmBaseClientPlugin@@UAEPAXPBD@Z @ 214 NONAME ; void * NmBaseClientPlugin::qt_metacast(char const *)
+	?staticMetaObject@NmBaseClientPlugin@@2UQMetaObject@@B @ 215 NONAME ; struct QMetaObject const NmBaseClientPlugin::staticMetaObject
+	?setEnvelope@NmMessageListModelItem@@QAEXABVNmMessageEnvelope@@@Z @ 216 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope const &)
+	?qt_metacast@NmAddAttachmentsOperation@@UAEPAXPBD@Z @ 217 NONAME ; void * NmAddAttachmentsOperation::qt_metacast(char const *)
+	?createNewMailViewerToolBar@NmBaseClientPlugin@@QAEXXZ @ 218 NONAME ; void NmBaseClientPlugin::createNewMailViewerToolBar(void)
+	?setEnvelopes@NmUiEngine@@QAEPAVNmStoreEnvelopesOperation@@ABVNmId@@0W4NmEnvelopeProperties@@ABV?$QList@PB$$CBVNmMessageEnvelope@@@@@Z @ 219 NONAME ; class NmStoreEnvelopesOperation * NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList<class NmMessageEnvelope const *> const &)
+	?staticMetaObject@NmMailboxListModel@@2UQMetaObject@@B @ 220 NONAME ; struct QMetaObject const NmMailboxListModel::staticMetaObject
+	?trUtf8@NmDataManager@@SA?AVQString@@PBD0H@Z @ 221 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *, int)
+	?fetchMessagePart@NmUiEngine@@QAEPAVNmOperation@@ABVNmId@@000@Z @ 222 NONAME ; class NmOperation * NmUiEngine::fetchMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmId const &)
+	?completeOperation@NmOperation@@QAEXH@Z @ 223 NONAME ; void NmOperation::completeOperation(int)
+	?parent@NmFolderListModel@@UBE?AVQModelIndex@@ABV2@@Z @ 224 NONAME ; class QModelIndex NmFolderListModel::parent(class QModelIndex const &) const
+	?folder@NmDataManager@@QAEPAVNmFolder@@ABVNmId@@0@Z @ 225 NONAME ; class NmFolder * NmDataManager::folder(class NmId const &, class NmId const &)
+	?replyMail@NmBaseClientPlugin@@QAEXXZ @ 226 NONAME ; void NmBaseClientPlugin::replyMail(void)
+	??1NmMessageListModelItem@@UAE@XZ @ 227 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(void)
+	?mailboxPropertyChanged@NmBaseClientPlugin@@AAEXABVNmId@@VQVariant@@1@Z @ 228 NONAME ; void NmBaseClientPlugin::mailboxPropertyChanged(class NmId const &, class QVariant, class QVariant)
+	?qt_metacall@NmOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 229 NONAME ; int NmOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?removeMessageFromModel@NmMessageListModel@@AAEXABVNmId@@@Z @ 230 NONAME ; void NmMessageListModel::removeMessageFromModel(class NmId const &)
+	?handleRequest@NmBaseClientPlugin@@AAEXW4NmActionResponseCommand@@ABVNmActionRequest@@@Z @ 231 NONAME ; void NmBaseClientPlugin::handleRequest(enum NmActionResponseCommand, class NmActionRequest const &)
+	?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 232 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *, int)
+	?operationPartCompleted@NmAddAttachmentsOperation@@IAEXABVQString@@ABVNmId@@H@Z @ 233 NONAME ; void NmAddAttachmentsOperation::operationPartCompleted(class QString const &, class NmId const &, int)
+	?tr@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 234 NONAME ; class QString NmMessageListModel::tr(char const *, char const *)
+	?doCompleteOperation@NmOperation@@MAEXXZ @ 235 NONAME ; void NmOperation::doCompleteOperation(void)
+	?dividerInsertionIndex@NmMessageListModel@@AAEHH@Z @ 236 NONAME ; int NmMessageListModel::dividerInsertionIndex(int)
+	?id@NmFolderMetaData@@QBE?AVNmId@@XZ @ 237 NONAME ; class NmId NmFolderMetaData::id(void) const
+	?createMessageItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 238 NONAME ; class NmMessageListModelItem * NmMessageListModel::createMessageItem(class NmMessageEnvelope *)
+	?getStandardFolderId@NmDataManager@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 239 NONAME ; class NmId NmDataManager::getStandardFolderId(class NmId const &, enum NmFolderType)
+	?dividersActive@NmMessageListModel@@QAE_NXZ @ 240 NONAME ; bool NmMessageListModel::dividersActive(void)
+	?getStaticMetaObject@NmBaseClientPlugin@@SAABUQMetaObject@@XZ @ 241 NONAME ; struct QMetaObject const & NmBaseClientPlugin::getStaticMetaObject(void)
+	?titleDivider@NmMessageListModelItem@@QBE?AVQString@@XZ @ 242 NONAME ; class QString NmMessageListModelItem::titleDivider(void) const
+	??_ENmDataManager@@UAE@I@Z @ 243 NONAME ; NmDataManager::~NmDataManager(unsigned int)
+	?qt_metacast@NmMailboxListModel@@UAEPAXPBD@Z @ 244 NONAME ; void * NmMailboxListModel::qt_metacast(char const *)
+	?updateEnvelope@NmMessageListModel@@AAEXW4NmEnvelopeProperties@@ABVNmId@@@Z @ 245 NONAME ; void NmMessageListModel::updateEnvelope(enum NmEnvelopeProperties, class NmId const &)
+	?getActions@NmBaseClientPlugin@@UAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 246 NONAME ; void NmBaseClientPlugin::getActions(class NmActionRequest const &, class QList<class NmAction *> &)
+	?handleMessageEvent@NmMessageListModel@@QAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@@Z @ 247 NONAME ; void NmMessageListModel::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList<class NmId> const &)
+	??_ENmMailboxMetaData@@UAE@I@Z @ 248 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(unsigned int)
+	??0NmMessageListModelItem@@QAE@XZ @ 249 NONAME ; NmMessageListModelItem::NmMessageListModelItem(void)
+	?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 250 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *, int)
+	?setDividers@NmMessageListModel@@QAEX_N@Z @ 251 NONAME ; void NmMessageListModel::setDividers(bool)
+	?loadPlugin@NmDataPluginFactory@@QAEPAVQObject@@ABVQDir@@ABVQString@@@Z @ 252 NONAME ; class QObject * NmDataPluginFactory::loadPlugin(class QDir const &, class QString const &)
+	?qt_metacast@NmOperation@@UAEPAXPBD@Z @ 253 NONAME ; void * NmOperation::qt_metacast(char const *)
+	?tr@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 254 NONAME ; class QString NmMessageListModel::tr(char const *, char const *, int)
+	?qt_metacall@NmAddAttachmentsOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 255 NONAME ; int NmAddAttachmentsOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@NmUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 256 NONAME ; int NmUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@NmMessageListModel@@2UQMetaObject@@B @ 257 NONAME ; struct QMetaObject const NmMessageListModel::staticMetaObject
+	?message@NmDataManager@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 258 NONAME ; class NmMessage * NmDataManager::message(class NmId const &, class NmId const &, class NmId const &)
+	?metaObject@NmOperation@@UBEPBUQMetaObject@@XZ @ 259 NONAME ; struct QMetaObject const * NmOperation::metaObject(void) const
+	?sendOperationCompleted@NmUiEngine@@IAEXXZ @ 260 NONAME ; void NmUiEngine::sendOperationCompleted(void)
+	?removeAttachment@NmBaseClientPlugin@@QAEXXZ @ 261 NONAME ; void NmBaseClientPlugin::removeAttachment(void)
+	?openAttachment@NmBaseClientPlugin@@QAEXXZ @ 262 NONAME ; void NmBaseClientPlugin::openAttachment(void)
+	?operationCompleted@NmUiEngine@@IAEXABVNmOperationCompletionEvent@@@Z @ 263 NONAME ; void NmUiEngine::operationCompleted(class NmOperationCompletionEvent const &)
+	?handleSyncStateEvent@NmUiEngine@@QAEXW4NmSyncState@@ABVNmOperationCompletionEvent@@@Z @ 264 NONAME ; void NmUiEngine::handleSyncStateEvent(enum NmSyncState, class NmOperationCompletionEvent const &)
 
--- a/emailuis/nmailuiengine/eabi/nmailuiengineu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/eabi/nmailuiengineu.def	Mon May 03 12:23:15 2010 +0300
@@ -4,7 +4,7 @@
 	_ZN10NmUiEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
 	_ZN10NmUiEngine11qt_metacastEPKc @ 4 NONAME
 	_ZN10NmUiEngine11saveMessageERK9NmMessage @ 5 NONAME
-	_ZN10NmUiEngine11sendMessageEP9NmMessage @ 6 NONAME
+	_ZN10NmUiEngine11sendMessageEP9NmMessageRK5QListIP11NmOperationE @ 6 NONAME
 	_ZN10NmUiEngine12fetchMessageERK4NmIdS2_S2_ @ 7 NONAME
 	_ZN10NmUiEngine12setEnvelopesERK4NmIdS2_20NmEnvelopePropertiesRK5QListIPK17NmMessageEnvelopeE @ 8 NONAME
 	_ZN10NmUiEngine13removeMessageERK4NmIdS2_S2_ @ 9 NONAME
@@ -16,259 +16,271 @@
 	_ZN10NmUiEngine15connectionEventE14NmConnectStateRK4NmId @ 15 NONAME
 	_ZN10NmUiEngine15connectionStateERK4NmId @ 16 NONAME
 	_ZN10NmUiEngine15mReferenceCountE @ 17 NONAME DATA 4
-	_ZN10NmUiEngine15releaseInstanceERPS_ @ 18 NONAME
-	_ZN10NmUiEngine16createNewMessageERK4NmId @ 19 NONAME
-	_ZN10NmUiEngine16mailboxListModelEv @ 20 NONAME
-	_ZN10NmUiEngine16messageBeingSentEv @ 21 NONAME
-	_ZN10NmUiEngine16messageListModelERK4NmIdS2_ @ 22 NONAME
-	_ZN10NmUiEngine16removeAttachmentERK9NmMessageRK4NmId @ 23 NONAME
-	_ZN10NmUiEngine16standardFolderIdERK4NmId12NmFolderType @ 24 NONAME
-	_ZN10NmUiEngine16staticMetaObjectE @ 25 NONAME DATA 16
-	_ZN10NmUiEngine18createReplyMessageERK4NmIdS2_b @ 26 NONAME
-	_ZN10NmUiEngine19getStaticMetaObjectEv @ 27 NONAME
-	_ZN10NmUiEngine20cleanupSendOperationEv @ 28 NONAME
-	_ZN10NmUiEngine20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 29 NONAME
-	_ZN10NmUiEngine20createForwardMessageERK4NmIdS2_ @ 30 NONAME
-	_ZN10NmUiEngine23refreshMailboxListModelEv @ 31 NONAME
-	_ZN10NmUiEngine23releaseMessageListModelERK4NmId @ 32 NONAME
-	_ZN10NmUiEngine23saveMessageWithSubpartsERK9NmMessage @ 33 NONAME
+	_ZN10NmUiEngine15messagePartFileERK4NmIdS2_S2_S2_ @ 18 NONAME
+	_ZN10NmUiEngine15releaseInstanceERPS_ @ 19 NONAME
+	_ZN10NmUiEngine16createNewMessageERK4NmId @ 20 NONAME
+	_ZN10NmUiEngine16fetchMessagePartERK4NmIdS2_S2_S2_ @ 21 NONAME
+	_ZN10NmUiEngine16mailboxListModelEv @ 22 NONAME
+	_ZN10NmUiEngine16messageListModelERK4NmIdS2_ @ 23 NONAME
+	_ZN10NmUiEngine16removeAttachmentERK9NmMessageRK4NmId @ 24 NONAME
+	_ZN10NmUiEngine16standardFolderIdERK4NmId12NmFolderType @ 25 NONAME
+	_ZN10NmUiEngine16staticMetaObjectE @ 26 NONAME DATA 16
+	_ZN10NmUiEngine18createReplyMessageERK4NmIdS2_b @ 27 NONAME
+	_ZN10NmUiEngine19getStaticMetaObjectEv @ 28 NONAME
+	_ZN10NmUiEngine20cleanupSendOperationEv @ 29 NONAME
+	_ZN10NmUiEngine20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 30 NONAME
+	_ZN10NmUiEngine20createForwardMessageERK4NmIdS2_ @ 31 NONAME
+	_ZN10NmUiEngine23refreshMailboxListModelEv @ 32 NONAME
+	_ZN10NmUiEngine23releaseMessageListModelERK4NmId @ 33 NONAME
 	_ZN10NmUiEngine24handleCompletedOperationEv @ 34 NONAME
-	_ZN10NmUiEngine28handleCompletedSaveOperationEi @ 35 NONAME
-	_ZN10NmUiEngine28handleCompletedSendOperationEv @ 36 NONAME
-	_ZN10NmUiEngine7messageERK4NmIdS2_S2_ @ 37 NONAME
+	_ZN10NmUiEngine28handleCompletedSendOperationEv @ 35 NONAME
+	_ZN10NmUiEngine7messageERK4NmIdS2_S2_ @ 36 NONAME
+	_ZN10NmUiEngine8goOnlineERK4NmId @ 37 NONAME
 	_ZN10NmUiEngine8instanceEv @ 38 NONAME
-	_ZN10NmUiEngine9mInstanceE @ 39 NONAME DATA 4
-	_ZN10NmUiEngine9syncStateERK4NmId @ 40 NONAME
-	_ZN10NmUiEngineC1Ev @ 41 NONAME
-	_ZN10NmUiEngineC2Ev @ 42 NONAME
-	_ZN10NmUiEngineD0Ev @ 43 NONAME
-	_ZN10NmUiEngineD1Ev @ 44 NONAME
-	_ZN10NmUiEngineD2Ev @ 45 NONAME
-	_ZN11NmOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 46 NONAME
-	_ZN11NmOperation11qt_metacastEPKc @ 47 NONAME
-	_ZN11NmOperation15cancelOperationEv @ 48 NONAME
-	_ZN11NmOperation16staticMetaObjectE @ 49 NONAME DATA 16
-	_ZN11NmOperation17completeOperationEi @ 50 NONAME
-	_ZN11NmOperation17doCancelOperationEv @ 51 NONAME
-	_ZN11NmOperation18operationCancelledEv @ 52 NONAME
-	_ZN11NmOperation18operationCompletedEi @ 53 NONAME
-	_ZN11NmOperation19doCompleteOperationEv @ 54 NONAME
-	_ZN11NmOperation19getStaticMetaObjectEv @ 55 NONAME
-	_ZN11NmOperation23updateOperationProgressEi @ 56 NONAME
-	_ZN11NmOperation24operationProgressChangedEi @ 57 NONAME
-	_ZN11NmOperation25doUpdateOperationProgressEv @ 58 NONAME
-	_ZN11NmOperationC2EP7QObject @ 59 NONAME
-	_ZN11NmOperationD0Ev @ 60 NONAME
-	_ZN11NmOperationD1Ev @ 61 NONAME
-	_ZN11NmOperationD2Ev @ 62 NONAME
-	_ZN13NmDataManager10folderByIdERK4NmIdS2_ @ 63 NONAME
-	_ZN13NmDataManager11listFoldersE4NmIdR5QListIP8NmFolderE @ 64 NONAME
-	_ZN13NmDataManager11mailboxByIdERK4NmId @ 65 NONAME
-	_ZN13NmDataManager11qt_metacallEN11QMetaObject4CallEiPPv @ 66 NONAME
-	_ZN13NmDataManager11qt_metacastEPKc @ 67 NONAME
-	_ZN13NmDataManager12envelopeByIdERK4NmIdS2_S2_ @ 68 NONAME
-	_ZN13NmDataManager12listMessagesERK4NmIdS2_R5QListIP17NmMessageEnvelopeE @ 69 NONAME
-	_ZN13NmDataManager13listMailboxesER5QListIP9NmMailboxE @ 70 NONAME
-	_ZN13NmDataManager14listMailboxIdsER5QListI4NmIdE @ 71 NONAME
-	_ZN13NmDataManager16staticMetaObjectE @ 72 NONAME DATA 16
-	_ZN13NmDataManager19getStandardFolderIdERK4NmId12NmFolderType @ 73 NONAME
-	_ZN13NmDataManager19getStaticMetaObjectEv @ 74 NONAME
-	_ZN13NmDataManager20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 75 NONAME
-	_ZN13NmDataManager6folderERK4NmIdS2_ @ 76 NONAME
-	_ZN13NmDataManager7mailboxERK4NmId @ 77 NONAME
-	_ZN13NmDataManager7messageERK4NmIdS2_S2_ @ 78 NONAME
-	_ZN13NmDataManagerC1Ev @ 79 NONAME
-	_ZN13NmDataManagerC2Ev @ 80 NONAME
-	_ZN13NmDataManagerD0Ev @ 81 NONAME
-	_ZN13NmDataManagerD1Ev @ 82 NONAME
-	_ZN13NmDataManagerD2Ev @ 83 NONAME
-	_ZN16NmFolderMetaData5setIdERK4NmId @ 84 NONAME
-	_ZN16NmFolderMetaData7setNameERK7QString @ 85 NONAME
-	_ZN16NmFolderMetaDataC1Ev @ 86 NONAME
-	_ZN16NmFolderMetaDataC2Ev @ 87 NONAME
-	_ZN16NmFolderMetaDataD0Ev @ 88 NONAME
-	_ZN16NmFolderMetaDataD1Ev @ 89 NONAME
-	_ZN16NmFolderMetaDataD2Ev @ 90 NONAME
-	_ZN17NmFolderListModel7refreshER5QListIP8NmFolderE @ 91 NONAME
-	_ZN17NmFolderListModelC1ER13NmDataManagerP7QObject @ 92 NONAME
-	_ZN17NmFolderListModelC2ER13NmDataManagerP7QObject @ 93 NONAME
-	_ZN17NmFolderListModelD0Ev @ 94 NONAME
-	_ZN17NmFolderListModelD1Ev @ 95 NONAME
-	_ZN17NmFolderListModelD2Ev @ 96 NONAME
-	_ZN17NmMailboxMetaData5setIdERK4NmId @ 97 NONAME
-	_ZN17NmMailboxMetaData7setNameERK7QString @ 98 NONAME
-	_ZN17NmMailboxMetaData9setIconIdERK4NmId @ 99 NONAME
-	_ZN17NmMailboxMetaDataC1Ev @ 100 NONAME
-	_ZN17NmMailboxMetaDataC2Ev @ 101 NONAME
-	_ZN17NmMailboxMetaDataD0Ev @ 102 NONAME
-	_ZN17NmMailboxMetaDataD1Ev @ 103 NONAME
-	_ZN17NmMailboxMetaDataD2Ev @ 104 NONAME
-	_ZN18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 105 NONAME
-	_ZN18NmBaseClientPlugin10markAsReadEv @ 106 NONAME
-	_ZN18NmBaseClientPlugin11forwardMailEv @ 107 NONAME
-	_ZN18NmBaseClientPlugin11openMessageEv @ 108 NONAME
-	_ZN18NmBaseClientPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 109 NONAME
-	_ZN18NmBaseClientPlugin11qt_metacastEPKc @ 110 NONAME
-	_ZN18NmBaseClientPlugin12markAsUnreadEv @ 111 NONAME
-	_ZN18NmBaseClientPlugin12replyAllMailEv @ 112 NONAME
-	_ZN18NmBaseClientPlugin13createNewMailEv @ 113 NONAME
-	_ZN18NmBaseClientPlugin13deleteMessageEv @ 114 NONAME
-	_ZN18NmBaseClientPlugin13handleRequestE23NmActionResponseCommandRK15NmActionRequest @ 115 NONAME
-	_ZN18NmBaseClientPlugin14setPriorityLowEv @ 116 NONAME
-	_ZN18NmBaseClientPlugin15setPriorityHighEv @ 117 NONAME
-	_ZN18NmBaseClientPlugin16staticMetaObjectE @ 118 NONAME DATA 16
-	_ZN18NmBaseClientPlugin17setPriorityNormalEv @ 119 NONAME
-	_ZN18NmBaseClientPlugin18mailboxListChangedERK4NmIdN10NmSettings16MailboxEventTypeE @ 120 NONAME
-	_ZN18NmBaseClientPlugin19getStaticMetaObjectEv @ 121 NONAME
-	_ZN18NmBaseClientPlugin22mailboxPropertyChangedERK4NmId8QVariantS3_ @ 122 NONAME
-	_ZN18NmBaseClientPlugin22updateEnvelopePropertyE20NmEnvelopeProperties @ 123 NONAME
-	_ZN18NmBaseClientPlugin24createEditorViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 124 NONAME
-	_ZN18NmBaseClientPlugin24createViewerViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 125 NONAME
-	_ZN18NmBaseClientPlugin25createMessageListCommandsERK15NmActionRequestR5QListIP8NmActionE @ 126 NONAME
-	_ZN18NmBaseClientPlugin26createNewMailViewerToolBarEv @ 127 NONAME
-	_ZN18NmBaseClientPlugin34deleteMessageFromViewerViewToolbarEv @ 128 NONAME
-	_ZN18NmBaseClientPlugin6attachEv @ 129 NONAME
-	_ZN18NmBaseClientPlugin7refreshEv @ 130 NONAME
-	_ZN18NmBaseClientPlugin8sendMailEv @ 131 NONAME
-	_ZN18NmBaseClientPlugin8settingsEv @ 132 NONAME
-	_ZN18NmBaseClientPlugin9replyMailEv @ 133 NONAME
-	_ZN18NmBaseClientPluginC2Ev @ 134 NONAME
-	_ZN18NmBaseClientPluginD0Ev @ 135 NONAME
-	_ZN18NmBaseClientPluginD1Ev @ 136 NONAME
-	_ZN18NmBaseClientPluginD2Ev @ 137 NONAME
-	_ZN18NmMailboxListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 138 NONAME
-	_ZN18NmMailboxListModel11qt_metacastEPKc @ 139 NONAME
-	_ZN18NmMailboxListModel16refreshModelItemERK4NmIdb @ 140 NONAME
-	_ZN18NmMailboxListModel16staticMetaObjectE @ 141 NONAME DATA 16
-	_ZN18NmMailboxListModel17createMailboxItemEPK9NmMailbox @ 142 NONAME
-	_ZN18NmMailboxListModel18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 143 NONAME
-	_ZN18NmMailboxListModel19getStaticMetaObjectEv @ 144 NONAME
-	_ZN18NmMailboxListModel7refreshER5QListIP9NmMailboxE @ 145 NONAME
-	_ZN18NmMailboxListModelC1ER13NmDataManagerP7QObject @ 146 NONAME
-	_ZN18NmMailboxListModelC2ER13NmDataManagerP7QObject @ 147 NONAME
-	_ZN18NmMailboxListModelD0Ev @ 148 NONAME
-	_ZN18NmMailboxListModelD1Ev @ 149 NONAME
-	_ZN18NmMailboxListModelD2Ev @ 150 NONAME
-	_ZN18NmMessageListModel10removeItemEiR22NmMessageListModelItem @ 151 NONAME
-	_ZN18NmMessageListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 152 NONAME
-	_ZN18NmMessageListModel11qt_metacastEPKc @ 153 NONAME
-	_ZN18NmMessageListModel11setDividersEb @ 154 NONAME
-	_ZN18NmMessageListModel11setNewParamEP14NmUiStartParam @ 155 NONAME
-	_ZN18NmMessageListModel13itemFromModelERK4NmId @ 156 NONAME
-	_ZN18NmMessageListModel14dividersActiveEv @ 157 NONAME
-	_ZN18NmMessageListModel14updateEnvelopeE20NmEnvelopePropertiesRK4NmId @ 158 NONAME
-	_ZN18NmMessageListModel16currentMailboxIdEv @ 159 NONAME
-	_ZN18NmMessageListModel16staticMetaObjectE @ 160 NONAME DATA 16
-	_ZN18NmMessageListModel17createMessageItemEP17NmMessageEnvelope @ 161 NONAME
-	_ZN18NmMessageListModel18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_E @ 162 NONAME
-	_ZN18NmMessageListModel19getStaticMetaObjectEv @ 163 NONAME
-	_ZN18NmMessageListModel21dividerInsertionIndexEi @ 164 NONAME
-	_ZN18NmMessageListModel21setEnvelopePropertiesE20NmEnvelopePropertiesRK5QListI4NmIdE @ 165 NONAME
-	_ZN18NmMessageListModel21updateMessageEnvelopeERK4NmIdS2_S2_ @ 166 NONAME
-	_ZN18NmMessageListModel22createTitleDividerItemEP17NmMessageEnvelope @ 167 NONAME
-	_ZN18NmMessageListModel22insertDividerIntoModelEP17NmMessageEnvelopei @ 168 NONAME
-	_ZN18NmMessageListModel22insertMessageIntoModelEP17NmMessageEnvelopeib @ 169 NONAME
-	_ZN18NmMessageListModel22removeMessageFromModelERK4NmId @ 170 NONAME
-	_ZN18NmMessageListModel25insertNewMessageIntoModelERK4NmIdS2_S2_ @ 171 NONAME
-	_ZN18NmMessageListModel7changedERK17NmMessageEnvelopeS2_ @ 172 NONAME
-	_ZN18NmMessageListModel7refreshE4NmIdS0_RK5QListIP17NmMessageEnvelopeE @ 173 NONAME
-	_ZN18NmMessageListModelC1ER13NmDataManagerP7QObject @ 174 NONAME
-	_ZN18NmMessageListModelC2ER13NmDataManagerP7QObject @ 175 NONAME
-	_ZN18NmMessageListModelD0Ev @ 176 NONAME
-	_ZN18NmMessageListModelD1Ev @ 177 NONAME
-	_ZN18NmMessageListModelD2Ev @ 178 NONAME
-	_ZN19NmDataPluginFactory10loadPluginERK4QDirRK7QString @ 179 NONAME
-	_ZN19NmDataPluginFactory12mPluginArrayE @ 180 NONAME DATA 4
-	_ZN19NmDataPluginFactory14pluginInstanceE4NmId @ 181 NONAME
-	_ZN19NmDataPluginFactory15mReferenceCountE @ 182 NONAME DATA 4
-	_ZN19NmDataPluginFactory15pluginInstancesEv @ 183 NONAME
-	_ZN19NmDataPluginFactory15releaseInstanceERPS_ @ 184 NONAME
-	_ZN19NmDataPluginFactory17interfaceInstanceE4NmId @ 185 NONAME
-	_ZN19NmDataPluginFactory17interfaceInstanceEP7QObject @ 186 NONAME
-	_ZN19NmDataPluginFactory18mPluginLoaderArrayE @ 187 NONAME DATA 4
-	_ZN19NmDataPluginFactory8instanceEv @ 188 NONAME
-	_ZN19NmDataPluginFactory9mInstanceE @ 189 NONAME DATA 4
-	_ZN19NmDataPluginFactoryC1Ev @ 190 NONAME
-	_ZN19NmDataPluginFactoryC2Ev @ 191 NONAME
-	_ZN19NmDataPluginFactoryD0Ev @ 192 NONAME
-	_ZN19NmDataPluginFactoryD1Ev @ 193 NONAME
-	_ZN19NmDataPluginFactoryD2Ev @ 194 NONAME
-	_ZN22NmMessageListModelItem11envelopePtrEv @ 195 NONAME
-	_ZN22NmMessageListModelItem11setEnvelopeEP17NmMessageEnvelope @ 196 NONAME
-	_ZN22NmMessageListModelItem11setEnvelopeERK17NmMessageEnvelope @ 197 NONAME
-	_ZN22NmMessageListModelItem11setExpandedEb @ 198 NONAME
-	_ZN22NmMessageListModelItem11setItemTypeENS_17NmMessageItemTypeE @ 199 NONAME
-	_ZN22NmMessageListModelItem15setTitleDividerERK7QString @ 200 NONAME
-	_ZN22NmMessageListModelItem19callEmitDataChangedEv @ 201 NONAME
-	_ZN22NmMessageListModelItemC1Ev @ 202 NONAME
-	_ZN22NmMessageListModelItemC2Ev @ 203 NONAME
-	_ZN22NmMessageListModelItemD0Ev @ 204 NONAME
-	_ZN22NmMessageListModelItemD1Ev @ 205 NONAME
-	_ZN22NmMessageListModelItemD2Ev @ 206 NONAME
-	_ZN25NmAddAttachmentsOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 207 NONAME
-	_ZN25NmAddAttachmentsOperation11qt_metacastEPKc @ 208 NONAME
-	_ZN25NmAddAttachmentsOperation16staticMetaObjectE @ 209 NONAME DATA 16
-	_ZN25NmAddAttachmentsOperation19getStaticMetaObjectEv @ 210 NONAME
-	_ZN25NmAddAttachmentsOperation21completeOperationPartERK7QStringRK4NmIdi @ 211 NONAME
-	_ZN25NmAddAttachmentsOperation22operationPartCompletedERK7QStringRK4NmIdi @ 212 NONAME
-	_ZN25NmAddAttachmentsOperationC2EP7QObject @ 213 NONAME
-	_ZN25NmAddAttachmentsOperationD0Ev @ 214 NONAME
-	_ZN25NmAddAttachmentsOperationD1Ev @ 215 NONAME
-	_ZN25NmAddAttachmentsOperationD2Ev @ 216 NONAME
-	_ZN7NmIcons7getIconENS_4IconE @ 217 NONAME
-	_ZN7NmIcons9freeIconsEv @ 218 NONAME
-	_ZNK10NmUiEngine10metaObjectEv @ 219 NONAME
-	_ZNK10NmUiEngine16isSendingMessageEv @ 220 NONAME
-	_ZNK11NmOperation10metaObjectEv @ 221 NONAME
-	_ZNK11NmOperation9isRunningEv @ 222 NONAME
-	_ZNK13NmDataManager10metaObjectEv @ 223 NONAME
-	_ZNK16NmFolderMetaData2idEv @ 224 NONAME
-	_ZNK16NmFolderMetaData4nameEv @ 225 NONAME
-	_ZNK17NmFolderListModel11columnCountERK11QModelIndex @ 226 NONAME
-	_ZNK17NmFolderListModel4dataERK11QModelIndexi @ 227 NONAME
-	_ZNK17NmFolderListModel6parentERK11QModelIndex @ 228 NONAME
-	_ZNK17NmFolderListModel8rowCountERK11QModelIndex @ 229 NONAME
-	_ZNK17NmMailboxMetaData2idEv @ 230 NONAME
-	_ZNK17NmMailboxMetaData4nameEv @ 231 NONAME
-	_ZNK17NmMailboxMetaData6IconIdEv @ 232 NONAME
-	_ZNK18NmBaseClientPlugin10metaObjectEv @ 233 NONAME
-	_ZNK18NmMailboxListModel10metaObjectEv @ 234 NONAME
-	_ZNK18NmMailboxListModel4dataERK11QModelIndexi @ 235 NONAME
-	_ZNK18NmMessageListModel10metaObjectEv @ 236 NONAME
-	_ZNK18NmMessageListModel17getInsertionIndexERK17NmMessageEnvelope @ 237 NONAME
-	_ZNK18NmMessageListModel30messagesBelongUnderSameDividerEPK17NmMessageEnvelopeS2_ @ 238 NONAME
-	_ZNK18NmMessageListModel4dataERK11QModelIndexi @ 239 NONAME
-	_ZNK22NmMessageListModelItem12titleDividerEv @ 240 NONAME
-	_ZNK22NmMessageListModelItem8envelopeEv @ 241 NONAME
-	_ZNK22NmMessageListModelItem8expandedEv @ 242 NONAME
-	_ZNK22NmMessageListModelItem8itemTypeEv @ 243 NONAME
-	_ZNK25NmAddAttachmentsOperation10metaObjectEv @ 244 NONAME
-	_ZTI10NmUiEngine @ 245 NONAME
-	_ZTI11NmOperation @ 246 NONAME
-	_ZTI13NmDataManager @ 247 NONAME
-	_ZTI16NmFolderMetaData @ 248 NONAME
-	_ZTI17NmFolderListModel @ 249 NONAME
-	_ZTI17NmMailboxMetaData @ 250 NONAME
-	_ZTI18NmBaseClientPlugin @ 251 NONAME
-	_ZTI18NmMailboxListModel @ 252 NONAME
-	_ZTI18NmMessageListModel @ 253 NONAME
-	_ZTI19NmDataPluginFactory @ 254 NONAME
-	_ZTI22NmMessageListModelItem @ 255 NONAME
-	_ZTI25NmAddAttachmentsOperation @ 256 NONAME
-	_ZTV10NmUiEngine @ 257 NONAME
-	_ZTV11NmOperation @ 258 NONAME
-	_ZTV13NmDataManager @ 259 NONAME
-	_ZTV16NmFolderMetaData @ 260 NONAME
-	_ZTV17NmFolderListModel @ 261 NONAME
-	_ZTV17NmMailboxMetaData @ 262 NONAME
-	_ZTV18NmBaseClientPlugin @ 263 NONAME
-	_ZTV18NmMailboxListModel @ 264 NONAME
-	_ZTV18NmMessageListModel @ 265 NONAME
-	_ZTV19NmDataPluginFactory @ 266 NONAME
-	_ZTV22NmMessageListModelItem @ 267 NONAME
-	_ZTV25NmAddAttachmentsOperation @ 268 NONAME
-	_ZThn8_N18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 269 NONAME
-	_ZThn8_N18NmBaseClientPluginD0Ev @ 270 NONAME
-	_ZThn8_N18NmBaseClientPluginD1Ev @ 271 NONAME
-	_ZN10NmUiEngine16fetchMessagePartERK4NmIdS2_S2_S2_ @ 272 NONAME
+	_ZN10NmUiEngine9goOfflineERK4NmId @ 39 NONAME
+	_ZN10NmUiEngine9mInstanceE @ 40 NONAME DATA 4
+	_ZN10NmUiEngine9syncStateERK4NmId @ 41 NONAME
+	_ZN10NmUiEngineC1Ev @ 42 NONAME
+	_ZN10NmUiEngineC2Ev @ 43 NONAME
+	_ZN10NmUiEngineD0Ev @ 44 NONAME
+	_ZN10NmUiEngineD1Ev @ 45 NONAME
+	_ZN10NmUiEngineD2Ev @ 46 NONAME
+	_ZN11NmOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 47 NONAME
+	_ZN11NmOperation11qt_metacastEPKc @ 48 NONAME
+	_ZN11NmOperation15cancelOperationEv @ 49 NONAME
+	_ZN11NmOperation16staticMetaObjectE @ 50 NONAME DATA 16
+	_ZN11NmOperation17completeOperationEi @ 51 NONAME
+	_ZN11NmOperation17doCancelOperationEv @ 52 NONAME
+	_ZN11NmOperation17runAsyncOperationEv @ 53 NONAME
+	_ZN11NmOperation18operationCancelledEv @ 54 NONAME
+	_ZN11NmOperation18operationCompletedEi @ 55 NONAME
+	_ZN11NmOperation19doCompleteOperationEv @ 56 NONAME
+	_ZN11NmOperation19getStaticMetaObjectEv @ 57 NONAME
+	_ZN11NmOperation23addPreliminaryOperationEPS_ @ 58 NONAME
+	_ZN11NmOperation23updateOperationProgressEi @ 59 NONAME
+	_ZN11NmOperation24operationProgressChangedEi @ 60 NONAME
+	_ZN11NmOperation25doUpdateOperationProgressEv @ 61 NONAME
+	_ZN11NmOperation34handlePreliminaryOperationFinishedEv @ 62 NONAME
+	_ZN11NmOperationC2EP7QObject @ 63 NONAME
+	_ZN11NmOperationD0Ev @ 64 NONAME
+	_ZN11NmOperationD1Ev @ 65 NONAME
+	_ZN11NmOperationD2Ev @ 66 NONAME
+	_ZN13NmDataManager10folderByIdERK4NmIdS2_ @ 67 NONAME
+	_ZN13NmDataManager11listFoldersE4NmIdR5QListIP8NmFolderE @ 68 NONAME
+	_ZN13NmDataManager11mailboxByIdERK4NmId @ 69 NONAME
+	_ZN13NmDataManager11qt_metacallEN11QMetaObject4CallEiPPv @ 70 NONAME
+	_ZN13NmDataManager11qt_metacastEPKc @ 71 NONAME
+	_ZN13NmDataManager12envelopeByIdERK4NmIdS2_S2_ @ 72 NONAME
+	_ZN13NmDataManager12listMessagesERK4NmIdS2_R5QListIP17NmMessageEnvelopeE @ 73 NONAME
+	_ZN13NmDataManager13listMailboxesER5QListIP9NmMailboxE @ 74 NONAME
+	_ZN13NmDataManager14listMailboxIdsER5QListI4NmIdE @ 75 NONAME
+	_ZN13NmDataManager16staticMetaObjectE @ 76 NONAME DATA 16
+	_ZN13NmDataManager19getStandardFolderIdERK4NmId12NmFolderType @ 77 NONAME
+	_ZN13NmDataManager19getStaticMetaObjectEv @ 78 NONAME
+	_ZN13NmDataManager20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 79 NONAME
+	_ZN13NmDataManager6folderERK4NmIdS2_ @ 80 NONAME
+	_ZN13NmDataManager7mailboxERK4NmId @ 81 NONAME
+	_ZN13NmDataManager7messageERK4NmIdS2_S2_ @ 82 NONAME
+	_ZN13NmDataManagerC1Ev @ 83 NONAME
+	_ZN13NmDataManagerC2Ev @ 84 NONAME
+	_ZN13NmDataManagerD0Ev @ 85 NONAME
+	_ZN13NmDataManagerD1Ev @ 86 NONAME
+	_ZN13NmDataManagerD2Ev @ 87 NONAME
+	_ZN16NmFolderMetaData5setIdERK4NmId @ 88 NONAME
+	_ZN16NmFolderMetaData7setNameERK7QString @ 89 NONAME
+	_ZN16NmFolderMetaDataC1Ev @ 90 NONAME
+	_ZN16NmFolderMetaDataC2Ev @ 91 NONAME
+	_ZN16NmFolderMetaDataD0Ev @ 92 NONAME
+	_ZN16NmFolderMetaDataD1Ev @ 93 NONAME
+	_ZN16NmFolderMetaDataD2Ev @ 94 NONAME
+	_ZN17NmFolderListModel7refreshER5QListIP8NmFolderE @ 95 NONAME
+	_ZN17NmFolderListModelC1ER13NmDataManagerP7QObject @ 96 NONAME
+	_ZN17NmFolderListModelC2ER13NmDataManagerP7QObject @ 97 NONAME
+	_ZN17NmFolderListModelD0Ev @ 98 NONAME
+	_ZN17NmFolderListModelD1Ev @ 99 NONAME
+	_ZN17NmFolderListModelD2Ev @ 100 NONAME
+	_ZN17NmMailboxMetaData5setIdERK4NmId @ 101 NONAME
+	_ZN17NmMailboxMetaData7setNameERK7QString @ 102 NONAME
+	_ZN17NmMailboxMetaData9setIconIdERK4NmId @ 103 NONAME
+	_ZN17NmMailboxMetaDataC1Ev @ 104 NONAME
+	_ZN17NmMailboxMetaDataC2Ev @ 105 NONAME
+	_ZN17NmMailboxMetaDataD0Ev @ 106 NONAME
+	_ZN17NmMailboxMetaDataD1Ev @ 107 NONAME
+	_ZN17NmMailboxMetaDataD2Ev @ 108 NONAME
+	_ZN18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 109 NONAME
+	_ZN18NmBaseClientPlugin10markAsReadEv @ 110 NONAME
+	_ZN18NmBaseClientPlugin11forwardMailEv @ 111 NONAME
+	_ZN18NmBaseClientPlugin11openMessageEv @ 112 NONAME
+	_ZN18NmBaseClientPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 113 NONAME
+	_ZN18NmBaseClientPlugin11qt_metacastEPKc @ 114 NONAME
+	_ZN18NmBaseClientPlugin12markAsUnreadEv @ 115 NONAME
+	_ZN18NmBaseClientPlugin12replyAllMailEv @ 116 NONAME
+	_ZN18NmBaseClientPlugin13createNewMailEv @ 117 NONAME
+	_ZN18NmBaseClientPlugin13deleteMessageEv @ 118 NONAME
+	_ZN18NmBaseClientPlugin13handleRequestE23NmActionResponseCommandRK15NmActionRequest @ 119 NONAME
+	_ZN18NmBaseClientPlugin14setPriorityLowEv @ 120 NONAME
+	_ZN18NmBaseClientPlugin15setPriorityHighEv @ 121 NONAME
+	_ZN18NmBaseClientPlugin16staticMetaObjectE @ 122 NONAME DATA 16
+	_ZN18NmBaseClientPlugin17setPriorityNormalEv @ 123 NONAME
+	_ZN18NmBaseClientPlugin18mailboxListChangedERK4NmIdN10NmSettings16MailboxEventTypeE @ 124 NONAME
+	_ZN18NmBaseClientPlugin19getStaticMetaObjectEv @ 125 NONAME
+	_ZN18NmBaseClientPlugin22mailboxPropertyChangedERK4NmId8QVariantS3_ @ 126 NONAME
+	_ZN18NmBaseClientPlugin22updateEnvelopePropertyE20NmEnvelopeProperties @ 127 NONAME
+	_ZN18NmBaseClientPlugin24createEditorViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 128 NONAME
+	_ZN18NmBaseClientPlugin24createViewerViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 129 NONAME
+	_ZN18NmBaseClientPlugin25createMessageListCommandsERK15NmActionRequestR5QListIP8NmActionE @ 130 NONAME
+	_ZN18NmBaseClientPlugin26createNewMailViewerToolBarEv @ 131 NONAME
+	_ZN18NmBaseClientPlugin27deleteMessageFromViewerViewEv @ 132 NONAME
+	_ZN18NmBaseClientPlugin6attachEv @ 133 NONAME
+	_ZN18NmBaseClientPlugin7refreshEv @ 134 NONAME
+	_ZN18NmBaseClientPlugin8goOnlineERK4NmId @ 135 NONAME
+	_ZN18NmBaseClientPlugin8sendMailEv @ 136 NONAME
+	_ZN18NmBaseClientPlugin8settingsEv @ 137 NONAME
+	_ZN18NmBaseClientPlugin9goOfflineERK4NmId @ 138 NONAME
+	_ZN18NmBaseClientPlugin9replyMailEv @ 139 NONAME
+	_ZN18NmBaseClientPluginC2Ev @ 140 NONAME
+	_ZN18NmBaseClientPluginD0Ev @ 141 NONAME
+	_ZN18NmBaseClientPluginD1Ev @ 142 NONAME
+	_ZN18NmBaseClientPluginD2Ev @ 143 NONAME
+	_ZN18NmMailboxListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 144 NONAME
+	_ZN18NmMailboxListModel11qt_metacastEPKc @ 145 NONAME
+	_ZN18NmMailboxListModel16refreshModelItemERK4NmIdb @ 146 NONAME
+	_ZN18NmMailboxListModel16staticMetaObjectE @ 147 NONAME DATA 16
+	_ZN18NmMailboxListModel17createMailboxItemEPK9NmMailbox @ 148 NONAME
+	_ZN18NmMailboxListModel18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 149 NONAME
+	_ZN18NmMailboxListModel19getStaticMetaObjectEv @ 150 NONAME
+	_ZN18NmMailboxListModel7refreshER5QListIP9NmMailboxE @ 151 NONAME
+	_ZN18NmMailboxListModelC1ER13NmDataManagerP7QObject @ 152 NONAME
+	_ZN18NmMailboxListModelC2ER13NmDataManagerP7QObject @ 153 NONAME
+	_ZN18NmMailboxListModelD0Ev @ 154 NONAME
+	_ZN18NmMailboxListModelD1Ev @ 155 NONAME
+	_ZN18NmMailboxListModelD2Ev @ 156 NONAME
+	_ZN18NmMessageListModel10removeItemEiR22NmMessageListModelItem @ 157 NONAME
+	_ZN18NmMessageListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 158 NONAME
+	_ZN18NmMessageListModel11qt_metacastEPKc @ 159 NONAME
+	_ZN18NmMessageListModel11setDividersEb @ 160 NONAME
+	_ZN18NmMessageListModel11setNewParamEP14NmUiStartParam @ 161 NONAME
+	_ZN18NmMessageListModel13itemFromModelERK4NmId @ 162 NONAME
+	_ZN18NmMessageListModel13removeMessageERK4NmId @ 163 NONAME
+	_ZN18NmMessageListModel14dividersActiveEv @ 164 NONAME
+	_ZN18NmMessageListModel14updateEnvelopeE20NmEnvelopePropertiesRK4NmId @ 165 NONAME
+	_ZN18NmMessageListModel16currentMailboxIdEv @ 166 NONAME
+	_ZN18NmMessageListModel16staticMetaObjectE @ 167 NONAME DATA 16
+	_ZN18NmMessageListModel17createMessageItemEP17NmMessageEnvelope @ 168 NONAME
+	_ZN18NmMessageListModel18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_E @ 169 NONAME
+	_ZN18NmMessageListModel19getStaticMetaObjectEv @ 170 NONAME
+	_ZN18NmMessageListModel21dividerInsertionIndexEi @ 171 NONAME
+	_ZN18NmMessageListModel21setEnvelopePropertiesE20NmEnvelopePropertiesRK5QListI4NmIdE @ 172 NONAME
+	_ZN18NmMessageListModel21updateMessageEnvelopeERK4NmIdS2_S2_ @ 173 NONAME
+	_ZN18NmMessageListModel22createTitleDividerItemEP17NmMessageEnvelope @ 174 NONAME
+	_ZN18NmMessageListModel22insertDividerIntoModelEP17NmMessageEnvelopei @ 175 NONAME
+	_ZN18NmMessageListModel22insertMessageIntoModelEP17NmMessageEnvelopeib @ 176 NONAME
+	_ZN18NmMessageListModel22removeMessageFromModelERK4NmId @ 177 NONAME
+	_ZN18NmMessageListModel25insertNewMessageIntoModelERK4NmIdS2_S2_ @ 178 NONAME
+	_ZN18NmMessageListModel7changedERK17NmMessageEnvelopeS2_ @ 179 NONAME
+	_ZN18NmMessageListModel7refreshE4NmIdS0_RK5QListIP17NmMessageEnvelopeE @ 180 NONAME
+	_ZN18NmMessageListModelC1ER13NmDataManagerP7QObject @ 181 NONAME
+	_ZN18NmMessageListModelC2ER13NmDataManagerP7QObject @ 182 NONAME
+	_ZN18NmMessageListModelD0Ev @ 183 NONAME
+	_ZN18NmMessageListModelD1Ev @ 184 NONAME
+	_ZN18NmMessageListModelD2Ev @ 185 NONAME
+	_ZN19NmDataPluginFactory10loadPluginERK4QDirRK7QString @ 186 NONAME
+	_ZN19NmDataPluginFactory12mPluginArrayE @ 187 NONAME DATA 4
+	_ZN19NmDataPluginFactory14pluginInstanceE4NmId @ 188 NONAME
+	_ZN19NmDataPluginFactory15mReferenceCountE @ 189 NONAME DATA 4
+	_ZN19NmDataPluginFactory15pluginInstancesEv @ 190 NONAME
+	_ZN19NmDataPluginFactory15releaseInstanceERPS_ @ 191 NONAME
+	_ZN19NmDataPluginFactory17interfaceInstanceE4NmId @ 192 NONAME
+	_ZN19NmDataPluginFactory17interfaceInstanceEP7QObject @ 193 NONAME
+	_ZN19NmDataPluginFactory18mPluginLoaderArrayE @ 194 NONAME DATA 4
+	_ZN19NmDataPluginFactory8instanceEv @ 195 NONAME
+	_ZN19NmDataPluginFactory9mInstanceE @ 196 NONAME DATA 4
+	_ZN19NmDataPluginFactoryC1Ev @ 197 NONAME
+	_ZN19NmDataPluginFactoryC2Ev @ 198 NONAME
+	_ZN19NmDataPluginFactoryD0Ev @ 199 NONAME
+	_ZN19NmDataPluginFactoryD1Ev @ 200 NONAME
+	_ZN19NmDataPluginFactoryD2Ev @ 201 NONAME
+	_ZN22NmMessageListModelItem11envelopePtrEv @ 202 NONAME
+	_ZN22NmMessageListModelItem11setEnvelopeEP17NmMessageEnvelope @ 203 NONAME
+	_ZN22NmMessageListModelItem11setEnvelopeERK17NmMessageEnvelope @ 204 NONAME
+	_ZN22NmMessageListModelItem11setExpandedEb @ 205 NONAME
+	_ZN22NmMessageListModelItem11setItemTypeENS_17NmMessageItemTypeE @ 206 NONAME
+	_ZN22NmMessageListModelItem15setTitleDividerERK7QString @ 207 NONAME
+	_ZN22NmMessageListModelItem19callEmitDataChangedEv @ 208 NONAME
+	_ZN22NmMessageListModelItemC1Ev @ 209 NONAME
+	_ZN22NmMessageListModelItemC2Ev @ 210 NONAME
+	_ZN22NmMessageListModelItemD0Ev @ 211 NONAME
+	_ZN22NmMessageListModelItemD1Ev @ 212 NONAME
+	_ZN22NmMessageListModelItemD2Ev @ 213 NONAME
+	_ZN25NmAddAttachmentsOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 214 NONAME
+	_ZN25NmAddAttachmentsOperation11qt_metacastEPKc @ 215 NONAME
+	_ZN25NmAddAttachmentsOperation16staticMetaObjectE @ 216 NONAME DATA 16
+	_ZN25NmAddAttachmentsOperation19getStaticMetaObjectEv @ 217 NONAME
+	_ZN25NmAddAttachmentsOperation21completeOperationPartERK7QStringRK4NmIdi @ 218 NONAME
+	_ZN25NmAddAttachmentsOperation22operationPartCompletedERK7QStringRK4NmIdi @ 219 NONAME
+	_ZN25NmAddAttachmentsOperationC2EP7QObject @ 220 NONAME
+	_ZN25NmAddAttachmentsOperationD0Ev @ 221 NONAME
+	_ZN25NmAddAttachmentsOperationD1Ev @ 222 NONAME
+	_ZN25NmAddAttachmentsOperationD2Ev @ 223 NONAME
+	_ZN7NmIcons7getIconENS_4IconE @ 224 NONAME
+	_ZN7NmIcons9freeIconsEv @ 225 NONAME
+	_ZNK10NmUiEngine10metaObjectEv @ 226 NONAME
+	_ZNK10NmUiEngine16isSendingMessageEv @ 227 NONAME
+	_ZNK10NmUiEngine16messageBeingSentEv @ 228 NONAME
+	_ZNK11NmOperation10metaObjectEv @ 229 NONAME
+	_ZNK11NmOperation9isRunningEv @ 230 NONAME
+	_ZNK13NmDataManager10metaObjectEv @ 231 NONAME
+	_ZNK16NmFolderMetaData2idEv @ 232 NONAME
+	_ZNK16NmFolderMetaData4nameEv @ 233 NONAME
+	_ZNK17NmFolderListModel11columnCountERK11QModelIndex @ 234 NONAME
+	_ZNK17NmFolderListModel4dataERK11QModelIndexi @ 235 NONAME
+	_ZNK17NmFolderListModel6parentERK11QModelIndex @ 236 NONAME
+	_ZNK17NmFolderListModel8rowCountERK11QModelIndex @ 237 NONAME
+	_ZNK17NmMailboxMetaData2idEv @ 238 NONAME
+	_ZNK17NmMailboxMetaData4nameEv @ 239 NONAME
+	_ZNK17NmMailboxMetaData6IconIdEv @ 240 NONAME
+	_ZNK18NmBaseClientPlugin10metaObjectEv @ 241 NONAME
+	_ZNK18NmMailboxListModel10metaObjectEv @ 242 NONAME
+	_ZNK18NmMailboxListModel4dataERK11QModelIndexi @ 243 NONAME
+	_ZNK18NmMessageListModel10metaObjectEv @ 244 NONAME
+	_ZNK18NmMessageListModel17getInsertionIndexERK17NmMessageEnvelope @ 245 NONAME
+	_ZNK18NmMessageListModel30messagesBelongUnderSameDividerEPK17NmMessageEnvelopeS2_ @ 246 NONAME
+	_ZNK18NmMessageListModel4dataERK11QModelIndexi @ 247 NONAME
+	_ZNK22NmMessageListModelItem12titleDividerEv @ 248 NONAME
+	_ZNK22NmMessageListModelItem8envelopeEv @ 249 NONAME
+	_ZNK22NmMessageListModelItem8expandedEv @ 250 NONAME
+	_ZNK22NmMessageListModelItem8itemTypeEv @ 251 NONAME
+	_ZNK25NmAddAttachmentsOperation10metaObjectEv @ 252 NONAME
+	_ZTI10NmUiEngine @ 253 NONAME
+	_ZTI11NmOperation @ 254 NONAME
+	_ZTI13NmDataManager @ 255 NONAME
+	_ZTI16NmFolderMetaData @ 256 NONAME
+	_ZTI17NmFolderListModel @ 257 NONAME
+	_ZTI17NmMailboxMetaData @ 258 NONAME
+	_ZTI18NmBaseClientPlugin @ 259 NONAME
+	_ZTI18NmMailboxListModel @ 260 NONAME
+	_ZTI18NmMessageListModel @ 261 NONAME
+	_ZTI19NmDataPluginFactory @ 262 NONAME
+	_ZTI22NmMessageListModelItem @ 263 NONAME
+	_ZTI25NmAddAttachmentsOperation @ 264 NONAME
+	_ZTV10NmUiEngine @ 265 NONAME
+	_ZTV11NmOperation @ 266 NONAME
+	_ZTV13NmDataManager @ 267 NONAME
+	_ZTV16NmFolderMetaData @ 268 NONAME
+	_ZTV17NmFolderListModel @ 269 NONAME
+	_ZTV17NmMailboxMetaData @ 270 NONAME
+	_ZTV18NmBaseClientPlugin @ 271 NONAME
+	_ZTV18NmMailboxListModel @ 272 NONAME
+	_ZTV18NmMessageListModel @ 273 NONAME
+	_ZTV19NmDataPluginFactory @ 274 NONAME
+	_ZTV22NmMessageListModelItem @ 275 NONAME
+	_ZTV25NmAddAttachmentsOperation @ 276 NONAME
+	_ZThn8_N18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 277 NONAME
+	_ZThn8_N18NmBaseClientPluginD0Ev @ 278 NONAME
+	_ZThn8_N18NmBaseClientPluginD1Ev @ 279 NONAME
+	_ZN10NmUiEngine22sendOperationCompletedEv @ 280 NONAME
+	_ZN18NmBaseClientPlugin14openAttachmentEv @ 281 NONAME
+	_ZN18NmBaseClientPlugin16removeAttachmentEv @ 282 NONAME
+	_ZN10NmUiEngine18operationCompletedERK26NmOperationCompletionEvent @ 283 NONAME
+	_ZN10NmUiEngine20handleSyncStateEventE11NmSyncStateRK26NmOperationCompletionEvent @ 284 NONAME
 
--- a/emailuis/nmailuiengine/inc/nmbaseclientplugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmbaseclientplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -49,7 +49,7 @@
     void refresh();
     void openMessage();
     void deleteMessage();
-    void deleteMessageFromViewerViewToolbar();
+    void deleteMessageFromViewerView();
     void createNewMailViewerToolBar();
     void createNewMail();
     void settings();
@@ -63,10 +63,14 @@
     void markAsRead();
     void markAsUnread();
     void attach();
+    void removeAttachment();
+    void openAttachment();
 
 private slots:
     void mailboxListChanged(const NmId &mailboxId, NmSettings::MailboxEventType type);
     void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value);
+    void goOnline(const NmId &mailboxId);
+    void goOffline(const NmId &mailboxId);
 
 protected:
     virtual quint32 pluginId() = 0;
@@ -82,7 +86,7 @@
     NmActionRequest mMenuRequest;
     NmActionRequest mEditorToolBarRequest;
     NmActionRequest mViewerToolBarRequest;
-    NmActionRequest mViewerViewToolbarRequest;
+    NmActionRequest mViewerViewRequest;
     NmUiEngine *mUiEngine; // Singleton instance
     NmSettingsViewLauncher *mSettingsViewLauncher; // owned
 };
--- a/emailuis/nmailuiengine/inc/nmdataplugininterface.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmdataplugininterface.h	Mon May 03 12:23:15 2010 +0300
@@ -19,8 +19,12 @@
 #define NMDATAPLUGININTERFACE_H_
 
 #include <QList>
+#ifdef Q_OS_SYMBIAN
+#include <xqsharablefile.h>
+#endif
 #include "nmcommon.h"
 
+
 class NmMailbox;
 class NmMessage;
 class NmMessagePart;
@@ -64,6 +68,11 @@
         const NmId &folderId,
         const NmId &messageId,
         NmMessage *&message) = 0;
+		
+    virtual int getFolderById(
+            const NmId& mailboxId, 
+            const NmId& folderId, 
+            NmFolder*& folder ) = 0;
     
     virtual int listFolders(
         const NmId &mailboxId,
@@ -74,6 +83,12 @@
         const NmId &folderId,
         QList<NmMessageEnvelope*> &messageEnvelopeList) = 0;  
     
+virtual int listMessages(
+        const NmId &mailboxId,
+        const NmId &folderId,
+        QList<NmMessageEnvelope*> &messageEnvelopeList, 
+		const int maxAmountOfEnvelopes ) = 0;
+    
     virtual NmOperation *fetchMessage( 
         const NmId &mailboxId, 
         const NmId &folderId,
@@ -86,12 +101,22 @@
         const NmId &messageId,
         const NmId &messagePartId) = 0;
     
+    virtual XQSharableFile messagePartFile(
+            const NmId &mailboxId,
+            const NmId &folderId,
+            const NmId &messageId,
+            const NmId &messagePartId) = 0;
+    
     virtual NmId getStandardFolderId(
         const NmId &mailbox,
         NmFolderType folderType ) = 0;
     
     virtual int refreshMailbox(NmId mailboxId) = 0;
     
+    virtual int goOnline(const NmId &mailboxId) = 0;
+    
+    virtual int goOffline(const NmId &mailboxId) = 0;
+    
     virtual int contentToMessagePart(
         const NmId &mailboxId,
         const NmId &folderId,
--- a/emailuis/nmailuiengine/inc/nmmessagelistmodel.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmmessagelistmodel.h	Mon May 03 12:23:15 2010 +0300
@@ -90,6 +90,7 @@
 
 signals:
     void setNewParam(NmUiStartParam *startParam);
+    void removeMessage(const NmId &messageId);
     
 private:
     NmDataManager &mDataManager;         // not owned
--- a/emailuis/nmailuiengine/inc/nmmessagesendingoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmmessagesendingoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -25,7 +25,7 @@
 class NmMessageSendingOperation : public NmOperation
 {
 public:
-    virtual const NmMessage *getMessage() = 0;
+    virtual const NmMessage *getMessage() const = 0;
 };
 
 #endif /* NMMESSAGESENDINGOPERATION_H_ */
--- a/emailuis/nmailuiengine/inc/nmoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -32,10 +32,11 @@
     NmOperation(QObject *parent = 0);
     virtual ~NmOperation();    
     bool isRunning() const;
+    void addPreliminaryOperation(NmOperation *operation);
     
 signals:
     void operationProgressChanged(int progress);
-    void operationCompleted(int result);
+    void operationCompleted(int result = 0);
     void operationCancelled();
 
 public slots:
@@ -44,17 +45,22 @@
     void updateOperationProgress(int progress);
 
 protected slots:
-    virtual void runAsyncOperation() = 0;
+    virtual void runAsyncOperation();
+    virtual void handlePreliminaryOperationFinished();
 
 protected:
     virtual void doCompleteOperation();
     virtual void doCancelOperation();
     virtual void doUpdateOperationProgress();
+    virtual void doRunAsyncOperation() = 0;
 
+protected:
+    QTimer *mTimer;
+    
 private:
-    QTimer *mTimer;
     int mProgress;
     bool mIsRunning;
+    QList<NmOperation *> mPreliminaryOperations;
 };
 
 #endif /* NMOPERATION_H_ */
--- a/emailuis/nmailuiengine/inc/nmuiengine.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmuiengine.h	Mon May 03 12:23:15 2010 +0300
@@ -20,6 +20,10 @@
 
 #include <QObject>
 #include <QList>
+#ifdef Q_OS_SYMBIAN
+#include <xqsharablefile.h>
+#endif
+
 #include "nmcommon.h"
 #include "nmuienginedef.h"
 
@@ -70,7 +74,13 @@
         const NmId &mailboxId,
         const NmId &folderId,
         const NmId &messageId,
-        const NmId& messagePartId);
+        const NmId &messagePartId);
+    
+    XQSharableFile messagePartFile(
+            const NmId &mailboxId,
+            const NmId &folderId,
+            const NmId &messageId,
+            const NmId &messagePartId);
     
     NmMailboxMetaData *mailboxById(const NmId &mailboxId);
 
@@ -109,10 +119,12 @@
 
     int saveMessage(const NmMessage &message);
 
-    NmOperation *saveMessageWithSubparts(const NmMessage &message);
-
     int refreshMailbox(const NmId &mailboxId);
 
+    int goOnline(const NmId &mailboxId);
+    
+    int goOffline(const NmId &mailboxId);
+    
     int removeMessage(
                 const NmId &mailboxId,
                 const NmId &folderId,
@@ -120,11 +132,11 @@
 
     void storeOperation(NmOperation *op);
 
-    void sendMessage(NmMessage *message);
+    void sendMessage(NmMessage *message, const QList<NmOperation *> &preliminaryOperations);
 
     bool isSendingMessage() const;
 
-    const NmMessage *messageBeingSent();
+    const NmMessage *messageBeingSent() const;
     NmAddAttachmentsOperation *addAttachments(
             const NmMessage &message,
             const QList<QString> &fileList);
@@ -138,15 +150,15 @@
 
 public slots:
     void handleCompletedOperation();
-
     void handleCompletedSendOperation();
-    void handleCompletedSaveOperation(int error);
-
+    void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event);
     void cleanupSendOperation();
     
 signals:
     void syncStateEvent(NmSyncState, const NmId &);
     void connectionEvent(NmConnectState, const NmId &);
+    void operationCompleted(const NmOperationCompletionEvent &event);
+    void sendOperationCompleted();
 
 private:
 
@@ -165,12 +177,6 @@
     QList<NmOperation*> mOperations;			// Owned
 
     NmMessageSendingOperation *mSendOperation;  // Owned
-    NmOperation *mSaveOperation;                // Owned
-
-    // Flag that idicates if the message should be sent after storing
-    bool mMessageToBeSent;
-
-	NmMessage *mMessage;                        // Owned
 };
 
 
--- a/emailuis/nmailuiengine/inc/nmuiengineheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmuiengineheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -25,13 +25,16 @@
 #include <QApplication>
 #include <QLocale>
 #include <QTimer>
-
+#ifdef Q_OS_SYMBIAN
+#include <xqsharablefile.h>
+#endif
 
 // Orbit
 #include <hbapplication.h>
 #include <hbmainwindow.h>
 #include <hbnamespace.h>
 #include <hbicon.h>
+#include <hbiconanimationmanager.h>
 
 
 // nmailuiengine
--- a/emailuis/nmailuiengine/nmailuiengine.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/nmailuiengine.pro	Mon May 03 12:23:15 2010 +0300
@@ -50,13 +50,18 @@
     src/nmbaseclientplugin.cpp \
     src/nmaddattachmentoperation.cpp \
     src/nmoperation.cpp
+    
+LIBS += -leuser
+LIBS += -llibc
+    
 symbian*: { 
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.UID2 = 0x1000008D
     TARGET.UID3 = 0x20026763
     LIBS += -lnmailbase \
-        -lnmsettingui
+        -lnmsettingui \
+        -lxqserviceutil 
 	
 	defBlock = \      
       "$${LITERAL_HASH}if defined(MARM)" \
--- a/emailuis/nmailuiengine/src/nmbaseclientplugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/src/nmbaseclientplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -100,7 +100,7 @@
 :mMenuRequest(NULL),
 mEditorToolBarRequest(NULL),
 mViewerToolBarRequest(NULL),
-mViewerViewToolbarRequest(NULL),
+mViewerViewRequest(NULL),
 mUiEngine(NULL),
 mSettingsViewLauncher(NULL)
 {
@@ -212,9 +212,9 @@
     Public slot connected to triggered() signal of delete action instance.
     The method sends a delete mail command to the action observer.
 */
-void NmBaseClientPlugin::deleteMessageFromViewerViewToolbar()
+void NmBaseClientPlugin::deleteMessageFromViewerView()
 {
-    handleRequest(NmActionResponseCommandDeleteMail, mViewerViewToolbarRequest);
+    handleRequest(NmActionResponseCommandDeleteMail, mViewerViewRequest);
 }
 
 /*!
@@ -258,6 +258,14 @@
             connect(mSettingsViewLauncher,
                 SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)),
                 this, SLOT(mailboxPropertyChanged(const NmId &, QVariant, QVariant)));
+
+            connect(mSettingsViewLauncher,
+            	SIGNAL(goOnline(const NmId &)),
+                this, SLOT(goOnline(const NmId &)));
+
+            connect(mSettingsViewLauncher,
+            	SIGNAL(goOffline(const NmId &)),
+                this, SLOT(goOffline(const NmId &)));
         }
 
         mSettingsViewLauncher->launchSettingsView(id, mailbox->name());
@@ -283,7 +291,7 @@
 
 void NmBaseClientPlugin::replyMail()
 {
-    handleRequest(NmActionResponseCommandReply, mViewerViewToolbarRequest);
+    handleRequest(NmActionResponseCommandReply, mViewerViewRequest);
 }
 
 /*!
@@ -293,7 +301,7 @@
 
 void NmBaseClientPlugin::replyAllMail()
 {
-    handleRequest(NmActionResponseCommandReplyAll, mViewerViewToolbarRequest);
+    handleRequest(NmActionResponseCommandReplyAll, mViewerViewRequest);
 }
 
 /*!
@@ -302,7 +310,7 @@
 */
 void NmBaseClientPlugin::forwardMail()
 {
-    handleRequest(NmActionResponseCommandForward, mViewerViewToolbarRequest);
+    handleRequest(NmActionResponseCommandForward, mViewerViewRequest);
 }
 
 /*!
@@ -338,6 +346,22 @@
 }
 
 /*!
+    Public slot connected to remove attachment context menu action
+*/
+void NmBaseClientPlugin::removeAttachment()
+{
+    handleRequest(NmActionResponseCommandRemoveAttachment, mMenuRequest);
+}
+
+/*!
+    Public slot connected to open attachment context menu action
+*/
+void NmBaseClientPlugin::openAttachment()
+{
+    handleRequest(NmActionResponseCommandOpenAttachment, mMenuRequest);
+}
+
+/*!
     Private slot connected to settings view launcher.
 
     \param mailboxId Id of mailbox.
@@ -378,6 +402,23 @@
 }
 
 /*!
+    Private slot connected to settings view launcher.
+    \param mailboxId Id of mailbox.
+*/
+void NmBaseClientPlugin::goOnline(const NmId &mailboxId)
+{
+        mUiEngine->goOnline(mailboxId);
+}
+/*!
+    Private slot connected to settings view launcher.
+    \param mailboxId Id of mailbox.
+*/
+void NmBaseClientPlugin::goOffline(const NmId &mailboxId)
+{
+        mUiEngine->goOffline(mailboxId);
+}
+
+/*!
     Create messagelist command actions.
     Internal helper method.
     Parameter \a request is used to identify requested menu type.
@@ -494,9 +535,43 @@
     NMLOG("NmBaseClientPlugin::createViewerViewCommands()-->");
 
     switch (request.menuType()) {
+    	case NmActionOptionsMenu:
+		{
+			mViewerViewRequest = request;
+
+			// Options menu Reply action
+			NmAction *replyAction = new NmAction(0);
+			replyAction->setObjectName("baseclientplugin_reply");
+			replyAction->setText(hbTrId("txt_mail_viewer_opt_reply"));
+			connect(replyAction, SIGNAL(triggered()), this, SLOT(replyMail()));
+			actionList.append(replyAction);
+
+			// Options menu Reply all action
+			NmAction *replyAllAction = new NmAction(0);
+			replyAllAction->setObjectName("baseclientplugin_reply_all");
+			replyAllAction->setText(hbTrId("txt_mail_viewer_opt_reply_all"));
+			connect(replyAllAction, SIGNAL(triggered()), this, SLOT(replyAllMail()));
+			actionList.append(replyAllAction);
+
+			// Options menu Forward action
+			NmAction *forwardAction = new NmAction(0);
+			forwardAction->setObjectName("baseclientplugin_forward");
+			forwardAction->setText(hbTrId("txt_mail_viewer_opt_forward"));
+			connect(forwardAction, SIGNAL(triggered()), this, SLOT(forwardMail()));
+			actionList.append(forwardAction);
+
+			// Options menu Delete action
+			NmAction *deleteAction = new NmAction(0);
+			deleteAction->setObjectName("baseclientplugin_delete");
+			deleteAction->setText(hbTrId("txt_mail_viewer_opt_delete"));
+			connect(deleteAction, SIGNAL(triggered()),
+					this, SLOT(deleteMessageFromViewerView()));
+			actionList.append(deleteAction);
+			break;
+		}
         case NmActionToolbar:
         {
-            mViewerViewToolbarRequest = request;
+            mViewerViewRequest = request;
 			Qt::Orientation orientation = Qt::Horizontal;
 			HbMainWindow *mainWindow = static_cast<HbMainWindow*>(HbApplication::activeWindow());
 			if( mainWindow ) {
@@ -545,7 +620,7 @@
             deleteAction->setIcon(NmIcons::getIcon(NmIcons::NmIconDelete));
             deleteAction->setObjectName("baseclientplugin_delete");
             connect(deleteAction, SIGNAL(triggered()),
-                    this, SLOT(deleteMessageFromViewerViewToolbar()));
+                    this, SLOT(deleteMessageFromViewerView()));
             actionList.append(deleteAction);
             break;
         }
@@ -618,6 +693,23 @@
             actionList.append(action);
             break;
         }
+        case NmActionContextMenu:
+        {
+            mMenuRequest = request;
+
+            NmAction *action = new NmAction(0);
+            action->setObjectName("baseclientplugin_removeattachmentaction");
+            action->setText(hbTrId("txt_common_menu_remove"));
+            connect(action, SIGNAL(triggered()), this, SLOT(removeAttachment()));
+            actionList.append(action);
+
+            action = new NmAction(0);
+            action->setObjectName("baseclientplugin_openattachmentaction");
+            action->setText(hbTrId("txt_common_menu_open"));
+            connect(action, SIGNAL(triggered()), this, SLOT(openAttachment()));
+            actionList.append(action);
+            break;	
+        }
         case NmActionVKB:
         {
             mMenuRequest = request;
--- a/emailuis/nmailuiengine/src/nmicons.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/src/nmicons.cpp	Mon May 03 12:23:15 2010 +0300
@@ -26,30 +26,31 @@
 struct IconRes {
     NmIcons::Icon id;
     QString resName;
+    QString animXmlName;
 };
 
 /*!
     Icon array
 */
 static IconRes icon_res[] = {
-    {NmIcons::NmIconDefaultMailbox, "qtg_large_email"},
-    {NmIcons::NmIconPlusSign, "qtg_small_expand"},
-    {NmIcons::NmIconMinusSign, "qtg_small_collapse"},
-    {NmIcons::NmIconAttachment, "qtg_small_attachment"},
-    {NmIcons::NmIconPriorityHigh, "qtg_small_priority_high"},
-    {NmIcons::NmIconPriorityLow, "qtg_small_priority_low"},
-    {NmIcons::NmIconAttach, "qtg_mono_attach"},
-    {NmIcons::NmIconSend, "qtg_mono_send"},
-    {NmIcons::NmIconContacts, "qtg_mono_contacts"},
-    {NmIcons::NmIconNewEmail, "qtg_mono_create_email"},
-    {NmIcons::NmIconDelete, "qtg_mono_delete"},
-    {NmIcons::NmIconForward, "qtg_mono_forward"},
-    {NmIcons::NmIconReply, "qtg_mono_reply"},
-    {NmIcons::NmIconReplyAll, "qtg_mono_reply_all"},
-    {NmIcons::NmIconSynching, "qtg_small_attachment"},
-    {NmIcons::NmIconOnline, "qtg_small_priority_low"},
-    {NmIcons::NmIconDisconnected, "qtg_small_priority_high"},
-    {NmIcons::NmIconOffline, "qtg_small_fail"},
+    {NmIcons::NmIconDefaultMailbox, "qtg_large_email", ""},
+    {NmIcons::NmIconPlusSign, "qtg_small_expand", ""},
+    {NmIcons::NmIconMinusSign, "qtg_small_collapse", ""},
+    {NmIcons::NmIconAttachment, "qtg_small_attachment", ""},
+    {NmIcons::NmIconPriorityHigh, "qtg_small_priority_high", ""},
+    {NmIcons::NmIconPriorityLow, "qtg_small_priority_low", ""},
+    {NmIcons::NmIconAttach, "qtg_mono_attach", ""},
+    {NmIcons::NmIconSend, "qtg_mono_send", ""},
+    {NmIcons::NmIconContacts, "qtg_mono_contacts", ""},
+    {NmIcons::NmIconNewEmail, "qtg_mono_create_email", ""},
+    {NmIcons::NmIconDelete, "qtg_mono_delete", ""},
+    {NmIcons::NmIconForward, "qtg_mono_forward", ""},
+    {NmIcons::NmIconReply, "qtg_mono_reply", ""},
+    {NmIcons::NmIconReplyAll, "qtg_mono_reply_all", ""},
+    {NmIcons::NmIconSynching, "qtg_anim_small_loading", "qtg_anim_small_loading.axml"},
+    {NmIcons::NmIconOnline, "qtg_small_connected", ""},
+    {NmIcons::NmIconDisconnected, "qtg_small_disconnected", ""},
+    {NmIcons::NmIconOffline, "qtg_small_fail", ""},
     {NmIcons::NmLastItem, ""} // Last item definion.
 };
 
@@ -70,6 +71,10 @@
             if (icon_res[i].id == icon) {
                 // Branding icon check here. If branded icon is not found
                 // default icon is to be loaded.
+            
+                if (icon_res[i].animXmlName.length() > 0) {
+                    HbIconAnimationManager::global()->addDefinitionFile(icon_res[i].animXmlName);
+                }
                 icons[icon] = new HbIcon(icon_res[i].resName);
                 break;
             }
--- a/emailuis/nmailuiengine/src/nmmessagelistmodel.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/src/nmmessagelistmodel.cpp	Mon May 03 12:23:15 2010 +0300
@@ -192,6 +192,7 @@
         } else {
             for (int a(0); a < messageIds.count(); a++) {
                 removeMessageFromModel(messageIds[a]);
+                emit removeMessage(messageIds[a]);
             }
         }
     }
--- a/emailuis/nmailuiengine/src/nmoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/src/nmoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -30,18 +30,21 @@
 mIsRunning(true)
 {
     // operation is started immediately
-    mTimer = new QTimer(this);
-    mTimer->setSingleShot(TRUE);
+    mTimer = new QTimer(this); // QObject takes care of deleting
+    mTimer->setSingleShot(true);
     connect(mTimer, SIGNAL(timeout()), this, SLOT(runAsyncOperation()));
     mTimer->start(1);
 }
 
 /*!
     \brief Destructor
-    Does nothing
  */
 NmOperation::~NmOperation()
 {
+    // Delete items from the mPreliminaryOperations list.
+    qDeleteAll(mPreliminaryOperations.begin(), mPreliminaryOperations.end());
+    // Remove the items.
+    mPreliminaryOperations.clear();
 }
 
 /*!
@@ -53,6 +56,21 @@
 }
 
 /*!
+    \brief Adds a "preliminary operation" which needs to end until this operation can start.
+    Ownership of the operation is transferred to this.
+ */
+void NmOperation::addPreliminaryOperation(NmOperation *operation)
+{
+    connect(operation, SIGNAL(operationCompleted()), this,
+        SLOT(handlePreliminaryOperationFinished()));
+
+    connect(operation, SIGNAL(operationCancelled()), this,
+        SLOT(handlePreliminaryOperationFinished()));
+
+    mPreliminaryOperations.append(operation);
+}
+
+/*!
     \brief Slot, complete
     The performer of the asynchronous function call should use this slot when
     the operation is completed, this will emit the actionCompleted signal * 
@@ -92,6 +110,39 @@
 }
 
 /*!
+    \brief Slot, run the operation if no preliminary operations are running.
+    Calls the pure virtual doRunAsyncOperation() of the derived class if there are no preliminary
+    operations running.
+ */
+void NmOperation::runAsyncOperation()
+{
+    // cleanup the preliminary operations
+    int count = mPreliminaryOperations.count();
+    for (int i = 0; i < count; ++i) {
+        if (!mPreliminaryOperations[i] || !mPreliminaryOperations[i]->isRunning()) {
+            delete mPreliminaryOperations.takeAt(i);
+            --i;
+            --count;
+        }
+    }
+
+    if (mPreliminaryOperations.count() == 0) {
+        doRunAsyncOperation();
+    }
+}
+
+/*!
+    \brief Slot, update progress
+    This is signalled by a preliminary operation when its operation is completed or cancelled. 
+    Do not call runAsyncOperation immediately but let the signal be handled by other slots first. 
+ */
+void NmOperation::handlePreliminaryOperationFinished()
+{
+    mTimer->stop();
+    mTimer->start(1);
+}
+
+/*!
     \brief Virtual function to be implemented by subclasses
     This function is called from the completeAction before the signal is
     emitted. Derived class can override this is some special actions
--- a/emailuis/nmailuiengine/src/nmuiengine.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiengine/src/nmuiengine.cpp	Mon May 03 12:23:15 2010 +0300
@@ -33,10 +33,7 @@
 NmUiEngine::NmUiEngine() 
 :mMailboxListModel(NULL),
 mMessageListModel(NULL),
-mSendOperation(NULL),
-mSaveOperation(NULL),
-mMessageToBeSent(false),
-mMessage(NULL)
+mSendOperation(NULL)
 {
     mPluginFactory = NmDataPluginFactory::instance();
     mDataManager = new NmDataManager();
@@ -64,7 +61,6 @@
     }
     
     delete mSendOperation;
-    delete mSaveOperation;
 }
 
 /*!
@@ -160,11 +156,10 @@
         mMessageListModel,
             SLOT(handleMessageEvent(NmMessageEvent, const NmId &, const QList<NmId> &)),
             Qt::UniqueConnection );
-        
-        QObject::connect(plugin,
-            SIGNAL(syncStateEvent(NmSyncState, const NmId &)),
-            this,
-            SIGNAL(syncStateEvent(NmSyncState, const NmId &)),
+
+        QObject::connect(
+            plugin, SIGNAL(syncStateEvent(NmSyncState, const NmOperationCompletionEvent &)),
+            this, SLOT(handleSyncStateEvent(NmSyncState, const NmOperationCompletionEvent &)),
             Qt::UniqueConnection);
         
         QObject::connect(plugin,
@@ -255,7 +250,7 @@
     const NmId &mailboxId,
     const NmId &folderId,
     const NmId &messageId,
-    const NmId& messagePartId)
+    const NmId &messagePartId)
 {
     NmOperation *value(NULL);
     NmDataPluginInterface *plugin =
@@ -267,6 +262,25 @@
 }
 
 /*!
+
+*/
+XQSharableFile NmUiEngine::messagePartFile(
+        const NmId &mailboxId,
+        const NmId &folderId,
+        const NmId &messageId,
+        const NmId &messagePartId)
+{
+    NmDataPluginInterface *plugin =
+        mPluginFactory->interfaceInstance(mailboxId);
+    if (plugin) {
+        return plugin->messagePartFile(mailboxId, folderId, messageId, messagePartId);
+    }
+    else {
+        // empty file handle
+        return XQSharableFile();
+    }
+}
+/*!
     Get content to message part
 */
 int NmUiEngine::contentToMessagePart(
@@ -424,24 +438,6 @@
 }
 
 /*!
-    Saves a message with its subparts (into message store).
-    Ownership of operation object is transferred to the caller.
-*/
-NmOperation *NmUiEngine::saveMessageWithSubparts(const NmMessage &message)
-{
-    NmOperation *value(NULL);
-    const NmId &mailboxId = message.mailboxId();
-    
-    NmDataPluginInterface *plugin =
-        mPluginFactory->interfaceInstance(mailboxId);
-
-    if (plugin) {
-        value = plugin->saveMessageWithSubparts(message);
-    }
-    return value;
-}
-
-/*!
     Refreshes mailbox.
 */
 int NmUiEngine::refreshMailbox(const NmId &mailboxId )
@@ -456,6 +452,34 @@
 }
 
 /*!
+    Online mailbox.
+*/
+int NmUiEngine::goOnline(const NmId &mailboxId )
+{
+    int ret(NmNotFoundError);
+    NmDataPluginInterface *plugin =
+        mPluginFactory->interfaceInstance(mailboxId);
+    if (plugin) {
+        ret = plugin->goOnline(mailboxId);
+    }
+    return ret;
+}
+
+/*!
+    Offline mailbox.
+*/
+int NmUiEngine::goOffline(const NmId &mailboxId )
+{
+    int ret(NmNotFoundError);
+    NmDataPluginInterface *plugin =
+        mPluginFactory->interfaceInstance(mailboxId);
+    if (plugin) {
+        ret = plugin->goOffline(mailboxId);
+    }
+    return ret;
+}
+
+/*!
     Removes message from given mailbox and folder
     - routes call to plugin
 */
@@ -490,28 +514,34 @@
 /*!
     Sends the given message.
  */
-void NmUiEngine::sendMessage(NmMessage *message)
+void NmUiEngine::sendMessage(NmMessage *message, const QList<NmOperation *> &preliminaryOperations)
 {
     //First trigger message storing
     if (message) {
-
-        if (mMessage) {
-            delete mMessage;
-            mMessage = NULL;
+        NmDataPluginInterface *plugin =
+            mPluginFactory->interfaceInstance(message->mailboxId());
+        
+        if (plugin) {
+            // to be on the safer side:
+            // we shouldn't even be here if mSendOperation != NULL
+            delete mSendOperation;
+            mSendOperation = NULL;
+            // ownership of message changes
+            mSendOperation = plugin->sendMessage(message);
+            // don't put this to mOperations as we need to handle this
+            // operation separately
+            if (mSendOperation) {
+                foreach (NmOperation *op, preliminaryOperations) {
+                    // ownership is transferred
+                    mSendOperation->addPreliminaryOperation(op);
+                }
+                
+                connect(mSendOperation, 
+                        SIGNAL(operationCompleted(int)), 
+                        this, 
+                        SLOT(handleCompletedSendOperation()));
+            }
         }
-        mMessage = message;
-
-        if (mSaveOperation) {
-            delete mSaveOperation;
-            mSaveOperation = NULL;
-        }
-        mSaveOperation = this->saveMessageWithSubparts(*message);
-
-        if (mSaveOperation) {
-            connect(mSaveOperation, SIGNAL(operationCompleted(int)), this,
-                SLOT(handleCompletedSaveOperation(int)));
-        }
-        mMessageToBeSent = true;
     }
 }
 
@@ -530,7 +560,7 @@
 /*!
    Returns a pointer to the message that is being sent. Returns NULL if not sending.
  */
-const NmMessage *NmUiEngine::messageBeingSent()
+const NmMessage *NmUiEngine::messageBeingSent() const
 {
     const NmMessage *message = NULL;
     
@@ -648,16 +678,18 @@
 }
     
 /*!
-    Handle completed send operation
- */
+    Handle completed send operation.
+*/
 void NmUiEngine::handleCompletedSendOperation()
-{ // let the callback method finish until cleaning the operation
+{
+    // Let the callback method finish until cleaning the operation.
     QTimer::singleShot(1, this, SLOT(cleanupSendOperation()));
+    emit sendOperationCompleted();
 }
 
 /*!
     Cleanup the send operation
- */
+*/
 void NmUiEngine::cleanupSendOperation()
 {
     delete mSendOperation;
@@ -665,35 +697,21 @@
     // delete the sent messages from the store if necessary
     // ...
 }
- 
+
 /*!
-    Handle completed store message operation
+    Handles synch operation related events
  */
-void NmUiEngine::handleCompletedSaveOperation(int error)
+void NmUiEngine::handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event)
 {
-	if (mMessage && mMessageToBeSent && error == NmNoError)
-	{
-	    mMessageToBeSent = false;
-	    
-	    NmDataPluginInterface *plugin =
-            mPluginFactory->interfaceInstance(mMessage->mailboxId());
-        
-        if (plugin) {
-            // to be on the safer side:
-            // we shouldn't even be here if mSendOperation != NULL
-			delete mSendOperation;
-            mSendOperation = NULL;
-            // ownership of mMessage changes
-            mSendOperation = plugin->sendMessage(mMessage);
-            mMessage = NULL;
-            // don't put this to mOperations as we need to handle this
-            // operation separately
-			if (mSendOperation) {
-			    connect(mSendOperation, 
-			            SIGNAL(operationCompleted(int)), 
-			            this, 
-			            SLOT(handleCompletedSendOperation()));
-			}
-        }
-	}
+    NMLOG("NmUiEngine::handleSyncStateEvent()");
+
+    if ( syncState == SyncComplete ) {
+        // signal for reporting about (sync) operation completion status
+        emit operationCompleted(event);
+    }
+
+    // signal for handling sync state icons
+    emit syncStateEvent(syncState, event.mMailboxId);
 }
+
+
--- a/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def	Mon May 03 12:23:15 2010 +0300
@@ -1,138 +1,142 @@
 EXPORTS
-	?handleLongPressGesture@NmBaseViewScrollArea@@IAEXABVQPointF@@@Z @ 1 NONAME ; void NmBaseViewScrollArea::handleLongPressGesture(class QPointF const &)
-	?updateScrollPosition@NmEditorTextEdit@@QAEXABVQPointF@@@Z @ 2 NONAME ; void NmEditorTextEdit::updateScrollPosition(class QPointF const &)
-	?qt_metacast@NmEditorTextEdit@@UAEPAXPBD@Z @ 3 NONAME ; void * NmEditorTextEdit::qt_metacast(char const *)
-	?itemActivated@NmAttachmentListWidget@@IAEXH@Z @ 4 NONAME ; void NmAttachmentListWidget::itemActivated(int)
-	?contentHeight@NmEditorTextEdit@@QBEMXZ @ 5 NONAME ; float NmEditorTextEdit::contentHeight(void) const
-	?mouseMoveEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 6 NONAME ; void NmBaseViewScrollArea::mouseMoveEvent(class QGraphicsSceneMouseEvent *)
-	?textCursor@NmHtmlLineEdit@@QBE?AVQTextCursor@@XZ @ 7 NONAME ; class QTextCursor NmHtmlLineEdit::textCursor(void) const
-	?keyPressEvent@NmRecipientLineEdit@@MAEXPAVQKeyEvent@@@Z @ 8 NONAME ; void NmRecipientLineEdit::keyPressEvent(class QKeyEvent *)
-	?handleLongPressed@NmAttachmentListWidget@@AAEXVQPointF@@@Z @ 9 NONAME ; void NmAttachmentListWidget::handleLongPressed(class QPointF)
-	?staticMetaObject@NmBaseViewScrollArea@@2UQMetaObject@@B @ 10 NONAME ; struct QMetaObject const NmBaseViewScrollArea::staticMetaObject
-	?setHeaderHeight@NmEditorTextEdit@@QAEXH@Z @ 11 NONAME ; void NmEditorTextEdit::setHeaderHeight(int)
-	?sendMouseReleaseEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12 NONAME ; void NmEditorTextEdit::sendMouseReleaseEvent(class QGraphicsSceneMouseEvent *)
-	?tr@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *, int)
-	?init@NmAttachmentListWidget@@AAEXXZ @ 14 NONAME ; void NmAttachmentListWidget::init(void)
-	?rearrangeLayout@NmAttachmentListWidget@@AAEXXZ @ 15 NONAME ; void NmAttachmentListWidget::rearrangeLayout(void)
-	?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *)
-	?toHtml@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 17 NONAME ; class QString NmHtmlLineEdit::toHtml(void) const
-	?metaObject@NmRecipientLineEdit@@UBEPBUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const * NmRecipientLineEdit::metaObject(void) const
-	?metaObject@NmBaseViewScrollArea@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * NmBaseViewScrollArea::metaObject(void) const
-	?emailAddressList@NmRecipientLineEdit@@QAE?AV?$QList@VNmAddress@@@@XZ @ 20 NONAME ; class QList<class NmAddress> NmRecipientLineEdit::emailAddressList(void)
-	?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0@Z @ 21 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *)
-	?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0@Z @ 22 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *)
-	?getStaticMetaObject@NmBaseViewScrollArea@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & NmBaseViewScrollArea::getStaticMetaObject(void)
-	?getStaticMetaObject@NmAttachmentListWidget@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & NmAttachmentListWidget::getStaticMetaObject(void)
-	?sendMouseMoveEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 25 NONAME ; void NmEditorTextEdit::sendMouseMoveEvent(class QGraphicsSceneMouseEvent *)
-	?updateEditorHeight@NmEditorTextEdit@@QAEXXZ @ 26 NONAME ; void NmEditorTextEdit::updateEditorHeight(void)
-	?qt_metacast@NmHtmlLineEdit@@UAEPAXPBD@Z @ 27 NONAME ; void * NmHtmlLineEdit::qt_metacast(char const *)
-	?metaObject@NmEditorTextEdit@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * NmEditorTextEdit::metaObject(void) const
-	?init@NmEditorTextEdit@@QAEXPAVNmEditorContent@@PAVNmBaseViewScrollArea@@@Z @ 29 NONAME ; void NmEditorTextEdit::init(class NmEditorContent *, class NmBaseViewScrollArea *)
-	?staticMetaObject@NmHtmlLineEdit@@2UQMetaObject@@B @ 30 NONAME ; struct QMetaObject const NmHtmlLineEdit::staticMetaObject
-	?customTextColor@NmEditorTextEdit@@QBE?AU?$QPair@_NVQColor@@@@XZ @ 31 NONAME ; struct QPair<bool, class QColor> NmEditorTextEdit::customTextColor(void) const
-	?qt_metacast@NmBaseViewScrollArea@@UAEPAXPBD@Z @ 32 NONAME ; void * NmBaseViewScrollArea::qt_metacast(char const *)
-	?inputMethodEvent@NmRecipientLineEdit@@MAEXPAVQInputMethodEvent@@@Z @ 33 NONAME ; void NmRecipientLineEdit::inputMethodEvent(class QInputMethodEvent *)
-	?mouseReleaseEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 34 NONAME ; void NmBaseViewScrollArea::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
-	?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *, int)
-	?qt_metacall@NmAttachmentListWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 36 NONAME ; int NmAttachmentListWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *, int)
-	?insertText@NmRecipientLineEdit@@QAEXABVQString@@@Z @ 38 NONAME ; void NmRecipientLineEdit::insertText(class QString const &)
-	?constructUi@NmAttachmentListWidget@@AAEXXZ @ 39 NONAME ; void NmAttachmentListWidget::constructUi(void)
-	?qt_metacall@NmRecipientLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 40 NONAME ; int NmRecipientLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?toPlainText@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 41 NONAME ; class QString NmHtmlLineEdit::toPlainText(void) const
-	?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 42 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *, int)
-	?tr@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *)
-	?setScrollPosition@NmEditorTextEdit@@QAEXHH@Z @ 44 NONAME ; void NmEditorTextEdit::setScrollPosition(int, int)
-	?getStaticMetaObject@NmEditorTextEdit@@SAABUQMetaObject@@XZ @ 45 NONAME ; struct QMetaObject const & NmEditorTextEdit::getStaticMetaObject(void)
-	??1NmHtmlLineEdit@@UAE@XZ @ 46 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(void)
-	?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *)
-	??_ENmBaseViewScrollArea@@UAE@I@Z @ 48 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(unsigned int)
-	?setEditorContentHeight@NmEditorTextEdit@@IAEXXZ @ 49 NONAME ; void NmEditorTextEdit::setEditorContentHeight(void)
-	?setCustomTextColor@NmEditorTextEdit@@QAEX_NABVQColor@@@Z @ 50 NONAME ; void NmEditorTextEdit::setCustomTextColor(bool, class QColor const &)
-	??0NmRecipientLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 51 NONAME ; NmRecipientLineEdit::NmRecipientLineEdit(class QGraphicsItem *)
-	??0NmHtmlLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 52 NONAME ; NmHtmlLineEdit::NmHtmlLineEdit(class QGraphicsItem *)
-	?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *)
-	?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 54 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *, int)
-	?setPlainText@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 55 NONAME ; void NmHtmlLineEdit::setPlainText(class QString const &)
-	?longPressGesture@NmBaseViewScrollArea@@MAEXABVQPointF@@@Z @ 56 NONAME ; void NmBaseViewScrollArea::longPressGesture(class QPointF const &)
-	?updateCustomTextColor@NmEditorTextEdit@@QAEXXZ @ 57 NONAME ; void NmEditorTextEdit::updateCustomTextColor(void)
-	?orientationChanged@NmAttachmentListWidget@@AAEXW4Orientation@Qt@@@Z @ 58 NONAME ; void NmAttachmentListWidget::orientationChanged(enum Qt::Orientation)
-	?insertSelectedContacts@NmRecipientLineEdit@@QAEXABVQVariant@@@Z @ 59 NONAME ; void NmRecipientLineEdit::insertSelectedContacts(class QVariant const &)
-	?qt_metacast@NmAttachmentListWidget@@UAEPAXPBD@Z @ 60 NONAME ; void * NmAttachmentListWidget::qt_metacast(char const *)
-	?getStaticMetaObject@NmHtmlLineEdit@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & NmHtmlLineEdit::getStaticMetaObject(void)
-	??1NmEditorTextEdit@@UAE@XZ @ 62 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(void)
-	?qt_metacall@NmEditorTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 63 NONAME ; int NmEditorTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?generateEmailAddressList@NmRecipientLineEdit@@AAEXXZ @ 64 NONAME ; void NmRecipientLineEdit::generateEmailAddressList(void)
-	?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *)
-	??1NmAttachmentListWidget@@UAE@XZ @ 66 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(void)
-	??_ENmRecipientLineEdit@@UAE@I@Z @ 67 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(unsigned int)
-	?mousePressEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 68 NONAME ; void NmBaseViewScrollArea::mousePressEvent(class QGraphicsSceneMouseEvent *)
-	?qt_metacast@NmRecipientLineEdit@@UAEPAXPBD@Z @ 69 NONAME ; void * NmRecipientLineEdit::qt_metacast(char const *)
-	?setCustomTextColor@NmEditorTextEdit@@QAEXABU?$QPair@_NVQColor@@@@@Z @ 70 NONAME ; void NmEditorTextEdit::setCustomTextColor(struct QPair<bool, class QColor> const &)
-	?setDocument@NmHtmlLineEdit@@QAEXPAVQTextDocument@@@Z @ 71 NONAME ; void NmHtmlLineEdit::setDocument(class QTextDocument *)
-	?handleItemActivated@NmAttachmentListWidget@@AAEXXZ @ 72 NONAME ; void NmAttachmentListWidget::handleItemActivated(void)
-	?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *)
-	??0NmBaseViewScrollArea@@QAE@PAVQGraphicsItem@@@Z @ 74 NONAME ; NmBaseViewScrollArea::NmBaseViewScrollArea(class QGraphicsItem *)
-	?metaObject@NmAttachmentListWidget@@UBEPBUQMetaObject@@XZ @ 75 NONAME ; struct QMetaObject const * NmAttachmentListWidget::metaObject(void) const
-	?longPressed@NmAttachmentListWidget@@IAEXHVQPointF@@@Z @ 76 NONAME ; void NmAttachmentListWidget::longPressed(int, class QPointF)
-	?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 77 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *, int)
-	?staticMetaObject@NmEditorTextEdit@@2UQMetaObject@@B @ 78 NONAME ; struct QMetaObject const NmEditorTextEdit::staticMetaObject
-	??0NmEditorTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 79 NONAME ; NmEditorTextEdit::NmEditorTextEdit(class QGraphicsItem *)
-	?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 80 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *, int)
-	?setHtml@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 81 NONAME ; void NmHtmlLineEdit::setHtml(class QString const &)
-	??_ENmEditorTextEdit@@UAE@I@Z @ 82 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(unsigned int)
-	?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 83 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *)
-	?sendLongPressEvent@NmEditorTextEdit@@QAEXABVQPointF@@@Z @ 84 NONAME ; void NmEditorTextEdit::sendLongPressEvent(class QPointF const &)
-	?getStaticMetaObject@NmRecipientLineEdit@@SAABUQMetaObject@@XZ @ 85 NONAME ; struct QMetaObject const & NmRecipientLineEdit::getStaticMetaObject(void)
-	?findItem@NmAttachmentListWidget@@AAEHPBVQObject@@@Z @ 86 NONAME ; int NmAttachmentListWidget::findItem(class QObject const *)
-	?removeAttachment@NmAttachmentListWidget@@QAEXH@Z @ 87 NONAME ; void NmAttachmentListWidget::removeAttachment(int)
-	??1NmRecipientLineEdit@@UAE@XZ @ 88 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(void)
-	?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *, int)
-	?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 90 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *, int)
-	?progressValue@NmAttachmentListWidget@@QBEHH@Z @ 91 NONAME ; int NmAttachmentListWidget::progressValue(int) const
-	?staticMetaObject@NmAttachmentListWidget@@2UQMetaObject@@B @ 92 NONAME ; struct QMetaObject const NmAttachmentListWidget::staticMetaObject
-	??_ENmAttachmentListWidget@@UAE@I@Z @ 93 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(unsigned int)
-	?setTextCursor@NmHtmlLineEdit@@QAEXABVQTextCursor@@@Z @ 94 NONAME ; void NmHtmlLineEdit::setTextCursor(class QTextCursor const &)
-	?handleMouseMoveEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 95 NONAME ; void NmBaseViewScrollArea::handleMouseMoveEvent(class QGraphicsSceneMouseEvent *)
-	?staticMetaObject@NmRecipientLineEdit@@2UQMetaObject@@B @ 96 NONAME ; struct QMetaObject const NmRecipientLineEdit::staticMetaObject
-	?setProgressBarValue@NmAttachmentListWidget@@QAEXHH@Z @ 97 NONAME ; void NmAttachmentListWidget::setProgressBarValue(int, int)
-	?handleMouseReleaseEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 98 NONAME ; void NmBaseViewScrollArea::handleMouseReleaseEvent(class QGraphicsSceneMouseEvent *)
-	?insertAttachment@NmAttachmentListWidget@@QAEXHABVQString@@0@Z @ 99 NONAME ; void NmAttachmentListWidget::insertAttachment(int, class QString const &, class QString const &)
-	??1NmBaseViewScrollArea@@UAE@XZ @ 100 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(void)
-	?sendMousePressEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 101 NONAME ; void NmEditorTextEdit::sendMousePressEvent(class QGraphicsSceneMouseEvent *)
-	??0NmAttachmentListWidget@@QAE@PAVQGraphicsItem@@@Z @ 102 NONAME ; NmAttachmentListWidget::NmAttachmentListWidget(class QGraphicsItem *)
-	??_ENmHtmlLineEdit@@UAE@I@Z @ 103 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(unsigned int)
-	?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 104 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *, int)
-	?handleMousePressEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 105 NONAME ; void NmBaseViewScrollArea::handleMousePressEvent(class QGraphicsSceneMouseEvent *)
-	?insertItemToLayout@NmAttachmentListWidget@@AAEXPAVNmAttachmentListItem@@@Z @ 106 NONAME ; void NmAttachmentListWidget::insertItemToLayout(class NmAttachmentListItem *)
-	?metaObject@NmHtmlLineEdit@@UBEPBUQMetaObject@@XZ @ 107 NONAME ; struct QMetaObject const * NmHtmlLineEdit::metaObject(void) const
-	?count@NmAttachmentListWidget@@QBEHXZ @ 108 NONAME ; int NmAttachmentListWidget::count(void) const
-	?handleTextChanged@NmRecipientLineEdit@@AAEXABVQString@@@Z @ 109 NONAME ; void NmRecipientLineEdit::handleTextChanged(class QString const &)
-	?document@NmHtmlLineEdit@@QBEPAVQTextDocument@@XZ @ 110 NONAME ; class QTextDocument * NmHtmlLineEdit::document(void) const
-	?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *)
-	?qt_metacall@NmBaseViewScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 112 NONAME ; int NmBaseViewScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@NmHtmlLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 113 NONAME ; int NmHtmlLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@NmAttachmentListItem@@SA?AVQString@@PBD0H@Z @ 114 NONAME ; class QString NmAttachmentListItem::trUtf8(char const *, char const *, int)
-	?getStaticMetaObject@NmAttachmentListItem@@SAABUQMetaObject@@XZ @ 115 NONAME ; struct QMetaObject const & NmAttachmentListItem::getStaticMetaObject(void)
-	??_ENmAttachmentListItem@@UAE@I@Z @ 116 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(unsigned int)
-	??0NmAttachmentListItem@@QAE@PAVQGraphicsItem@@@Z @ 117 NONAME ; NmAttachmentListItem::NmAttachmentListItem(class QGraphicsItem *)
-	?setProgressBarValue@NmAttachmentListItem@@QAEXH@Z @ 118 NONAME ; void NmAttachmentListItem::setProgressBarValue(int)
-	?qt_metacast@NmAttachmentListItem@@UAEPAXPBD@Z @ 119 NONAME ; void * NmAttachmentListItem::qt_metacast(char const *)
-	?setTextItems@NmAttachmentListItem@@QAEXABVQString@@0@Z @ 120 NONAME ; void NmAttachmentListItem::setTextItems(class QString const &, class QString const &)
-	?removeProgressBar@NmAttachmentListItem@@AAEXXZ @ 121 NONAME ; void NmAttachmentListItem::removeProgressBar(void)
-	??1NmAttachmentListItem@@UAE@XZ @ 122 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(void)
-	?longPressedActivated@NmAttachmentListItem@@AAEXXZ @ 123 NONAME ; void NmAttachmentListItem::longPressedActivated(void)
-	?qt_metacall@NmAttachmentListItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 124 NONAME ; int NmAttachmentListItem::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?tr@NmAttachmentListItem@@SA?AVQString@@PBD0@Z @ 125 NONAME ; class QString NmAttachmentListItem::tr(char const *, char const *)
-	?trUtf8@NmAttachmentListItem@@SA?AVQString@@PBD0@Z @ 126 NONAME ; class QString NmAttachmentListItem::trUtf8(char const *, char const *)
-	?staticMetaObject@NmAttachmentListItem@@2UQMetaObject@@B @ 127 NONAME ; struct QMetaObject const NmAttachmentListItem::staticMetaObject
-	?itemLongPressed@NmAttachmentListItem@@IAEXVQPointF@@@Z @ 128 NONAME ; void NmAttachmentListItem::itemLongPressed(class QPointF)
-	?progressBarValue@NmAttachmentListItem@@QBEHXZ @ 129 NONAME ; int NmAttachmentListItem::progressBarValue(void) const
-	?init@NmAttachmentListItem@@AAEXXZ @ 130 NONAME ; void NmAttachmentListItem::init(void)
-	?constructUi@NmAttachmentListItem@@AAEXXZ @ 131 NONAME ; void NmAttachmentListItem::constructUi(void)
-	?itemActivated@NmAttachmentListItem@@IAEXXZ @ 132 NONAME ; void NmAttachmentListItem::itemActivated(void)
-	?mouseReleaseEvent@NmAttachmentListItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 133 NONAME ; void NmAttachmentListItem::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
-	?metaObject@NmAttachmentListItem@@UBEPBUQMetaObject@@XZ @ 134 NONAME ; struct QMetaObject const * NmAttachmentListItem::metaObject(void) const
+	?trUtf8@NmAttachmentListItem@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString NmAttachmentListItem::trUtf8(char const *, char const *, int)
+	?itemActivated@NmAttachmentListWidget@@IAEXH@Z @ 2 NONAME ; void NmAttachmentListWidget::itemActivated(int)
+	?textCursor@NmHtmlLineEdit@@QBE?AVQTextCursor@@XZ @ 3 NONAME ; class QTextCursor NmHtmlLineEdit::textCursor(void) const
+	?keyPressEvent@NmRecipientLineEdit@@MAEXPAVQKeyEvent@@@Z @ 4 NONAME ; void NmRecipientLineEdit::keyPressEvent(class QKeyEvent *)
+	?sendMouseReleaseEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 5 NONAME ; void NmEditorTextEdit::sendMouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?paint@NmAttachmentListWidget@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 6 NONAME ; void NmAttachmentListWidget::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
+	?tr@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 7 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *, int)
+	?toHtml@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 8 NONAME ; class QString NmHtmlLineEdit::toHtml(void) const
+	?metaObject@NmBaseViewScrollArea@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * NmBaseViewScrollArea::metaObject(void) const
+	?emailAddressList@NmRecipientLineEdit@@QAE?AV?$QList@VNmAddress@@@@XZ @ 10 NONAME ; class QList<class NmAddress> NmRecipientLineEdit::emailAddressList(void)
+	?getStaticMetaObject@NmAttachmentListItem@@SAABUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const & NmAttachmentListItem::getStaticMetaObject(void)
+	?getStaticMetaObject@NmBaseViewScrollArea@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & NmBaseViewScrollArea::getStaticMetaObject(void)
+	?getStaticMetaObject@NmAttachmentListWidget@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & NmAttachmentListWidget::getStaticMetaObject(void)
+	??_ENmAttachmentListItem@@UAE@I@Z @ 14 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(unsigned int)
+	?sendMouseMoveEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 15 NONAME ; void NmEditorTextEdit::sendMouseMoveEvent(class QGraphicsSceneMouseEvent *)
+	?updateEditorHeight@NmEditorTextEdit@@QAEXXZ @ 16 NONAME ; void NmEditorTextEdit::updateEditorHeight(void)
+	?qt_metacast@NmHtmlLineEdit@@UAEPAXPBD@Z @ 17 NONAME ; void * NmHtmlLineEdit::qt_metacast(char const *)
+	?metaObject@NmEditorTextEdit@@UBEPBUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const * NmEditorTextEdit::metaObject(void) const
+	?init@NmEditorTextEdit@@QAEXPAVNmEditorContent@@PAVNmBaseViewScrollArea@@@Z @ 19 NONAME ; void NmEditorTextEdit::init(class NmEditorContent *, class NmBaseViewScrollArea *)
+	?setFileNameText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 20 NONAME ; void NmAttachmentListItem::setFileNameText(class QString const &)
+	?qt_metacast@NmBaseViewScrollArea@@UAEPAXPBD@Z @ 21 NONAME ; void * NmBaseViewScrollArea::qt_metacast(char const *)
+	?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *, int)
+	?qt_metacall@NmAttachmentListWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 23 NONAME ; int NmAttachmentListWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *, int)
+	?qt_metacall@NmRecipientLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int NmRecipientLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0NmAttachmentListItem@@QAE@PAVQGraphicsItem@@@Z @ 26 NONAME ; NmAttachmentListItem::NmAttachmentListItem(class QGraphicsItem *)
+	?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *, int)
+	??1NmHtmlLineEdit@@UAE@XZ @ 28 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(void)
+	?setProgressBarValue@NmAttachmentListItem@@QAEXH@Z @ 29 NONAME ; void NmAttachmentListItem::setProgressBarValue(int)
+	?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *)
+	??0NmRecipientLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 31 NONAME ; NmRecipientLineEdit::NmRecipientLineEdit(class QGraphicsItem *)
+	?setAttachmentSize@NmAttachmentListWidget@@QAEXHABVQString@@@Z @ 32 NONAME ; void NmAttachmentListWidget::setAttachmentSize(int, class QString const &)
+	?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 33 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *, int)
+	?setPlainText@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 34 NONAME ; void NmHtmlLineEdit::setPlainText(class QString const &)
+	?longPressGesture@NmBaseViewScrollArea@@MAEXABVQPointF@@@Z @ 35 NONAME ; void NmBaseViewScrollArea::longPressGesture(class QPointF const &)
+	?updateCustomTextColor@NmEditorTextEdit@@QAEXXZ @ 36 NONAME ; void NmEditorTextEdit::updateCustomTextColor(void)
+	?orientationChanged@NmAttachmentListWidget@@AAEXW4Orientation@Qt@@@Z @ 37 NONAME ; void NmAttachmentListWidget::orientationChanged(enum Qt::Orientation)
+	?insertSelectedContacts@NmRecipientLineEdit@@QAEXABVQVariant@@@Z @ 38 NONAME ; void NmRecipientLineEdit::insertSelectedContacts(class QVariant const &)
+	?qt_metacast@NmAttachmentListWidget@@UAEPAXPBD@Z @ 39 NONAME ; void * NmAttachmentListWidget::qt_metacast(char const *)
+	?getStaticMetaObject@NmHtmlLineEdit@@SAABUQMetaObject@@XZ @ 40 NONAME ; struct QMetaObject const & NmHtmlLineEdit::getStaticMetaObject(void)
+	?qt_metacall@NmEditorTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 41 NONAME ; int NmEditorTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??1NmAttachmentListWidget@@UAE@XZ @ 42 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(void)
+	??_ENmRecipientLineEdit@@UAE@I@Z @ 43 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(unsigned int)
+	?qt_metacast@NmRecipientLineEdit@@UAEPAXPBD@Z @ 44 NONAME ; void * NmRecipientLineEdit::qt_metacast(char const *)
+	?setCustomTextColor@NmEditorTextEdit@@QAEXABU?$QPair@_NVQColor@@@@@Z @ 45 NONAME ; void NmEditorTextEdit::setCustomTextColor(struct QPair<bool, class QColor> const &)
+	?setDocument@NmHtmlLineEdit@@QAEXPAVQTextDocument@@@Z @ 46 NONAME ; void NmHtmlLineEdit::setDocument(class QTextDocument *)
+	?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *)
+	??0NmBaseViewScrollArea@@QAE@PAVQGraphicsItem@@@Z @ 48 NONAME ; NmBaseViewScrollArea::NmBaseViewScrollArea(class QGraphicsItem *)
+	?longPressed@NmAttachmentListWidget@@IAEXHVQPointF@@@Z @ 49 NONAME ; void NmAttachmentListWidget::longPressed(int, class QPointF)
+	?staticMetaObject@NmEditorTextEdit@@2UQMetaObject@@B @ 50 NONAME ; struct QMetaObject const NmEditorTextEdit::staticMetaObject
+	??0NmEditorTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 51 NONAME ; NmEditorTextEdit::NmEditorTextEdit(class QGraphicsItem *)
+	??_ENmEditorTextEdit@@UAE@I@Z @ 52 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(unsigned int)
+	?sendLongPressEvent@NmEditorTextEdit@@QAEXABVQPointF@@@Z @ 53 NONAME ; void NmEditorTextEdit::sendLongPressEvent(class QPointF const &)
+	?qt_metacast@NmAttachmentListItem@@UAEPAXPBD@Z @ 54 NONAME ; void * NmAttachmentListItem::qt_metacast(char const *)
+	?handleMouseReleaseEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 55 NONAME ; void NmBaseViewScrollArea::handleMouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?removeProgressBar@NmAttachmentListItem@@AAEXXZ @ 56 NONAME ; void NmAttachmentListItem::removeProgressBar(void)
+	??1NmBaseViewScrollArea@@UAE@XZ @ 57 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(void)
+	?sendMousePressEvent@NmEditorTextEdit@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 58 NONAME ; void NmEditorTextEdit::sendMousePressEvent(class QGraphicsSceneMouseEvent *)
+	??_ENmHtmlLineEdit@@UAE@I@Z @ 59 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(unsigned int)
+	?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 60 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *, int)
+	?handleMousePressEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 61 NONAME ; void NmBaseViewScrollArea::handleMousePressEvent(class QGraphicsSceneMouseEvent *)
+	?insertItemToLayout@NmAttachmentListWidget@@AAEXPAVNmAttachmentListItem@@@Z @ 62 NONAME ; void NmAttachmentListWidget::insertItemToLayout(class NmAttachmentListItem *)
+	?metaObject@NmHtmlLineEdit@@UBEPBUQMetaObject@@XZ @ 63 NONAME ; struct QMetaObject const * NmHtmlLineEdit::metaObject(void) const
+	?setTextColor@NmAttachmentListItem@@QAEXVQColor@@@Z @ 64 NONAME ; void NmAttachmentListItem::setTextColor(class QColor)
+	??1NmAttachmentListItem@@UAE@XZ @ 65 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(void)
+	?count@NmAttachmentListWidget@@QBEHXZ @ 66 NONAME ; int NmAttachmentListWidget::count(void) const
+	?handleTextChanged@NmRecipientLineEdit@@AAEXABVQString@@@Z @ 67 NONAME ; void NmRecipientLineEdit::handleTextChanged(class QString const &)
+	?longPressedActivated@NmAttachmentListItem@@AAEXXZ @ 68 NONAME ; void NmAttachmentListItem::longPressedActivated(void)
+	?handleLongPressGesture@NmBaseViewScrollArea@@IAEXABVQPointF@@@Z @ 69 NONAME ; void NmBaseViewScrollArea::handleLongPressGesture(class QPointF const &)
+	?updateScrollPosition@NmEditorTextEdit@@QAEXABVQPointF@@@Z @ 70 NONAME ; void NmEditorTextEdit::updateScrollPosition(class QPointF const &)
+	?contentHeight@NmEditorTextEdit@@QBEMXZ @ 71 NONAME ; float NmEditorTextEdit::contentHeight(void) const
+	?qt_metacast@NmEditorTextEdit@@UAEPAXPBD@Z @ 72 NONAME ; void * NmEditorTextEdit::qt_metacast(char const *)
+	?mouseMoveEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 73 NONAME ; void NmBaseViewScrollArea::mouseMoveEvent(class QGraphicsSceneMouseEvent *)
+	?qt_metacall@NmAttachmentListItem@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 74 NONAME ; int NmAttachmentListItem::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?handleLongPressed@NmAttachmentListWidget@@AAEXVQPointF@@@Z @ 75 NONAME ; void NmAttachmentListWidget::handleLongPressed(class QPointF)
+	?staticMetaObject@NmBaseViewScrollArea@@2UQMetaObject@@B @ 76 NONAME ; struct QMetaObject const NmBaseViewScrollArea::staticMetaObject
+	?setHeaderHeight@NmEditorTextEdit@@QAEXH@Z @ 77 NONAME ; void NmEditorTextEdit::setHeaderHeight(int)
+	?init@NmAttachmentListWidget@@AAEXXZ @ 78 NONAME ; void NmAttachmentListWidget::init(void)
+	?rearrangeLayout@NmAttachmentListWidget@@AAEXXZ @ 79 NONAME ; void NmAttachmentListWidget::rearrangeLayout(void)
+	?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *)
+	?metaObject@NmRecipientLineEdit@@UBEPBUQMetaObject@@XZ @ 81 NONAME ; struct QMetaObject const * NmRecipientLineEdit::metaObject(void) const
+	?tr@NmAttachmentListItem@@SA?AVQString@@PBD0@Z @ 82 NONAME ; class QString NmAttachmentListItem::tr(char const *, char const *)
+	?trUtf8@NmAttachmentListItem@@SA?AVQString@@PBD0@Z @ 83 NONAME ; class QString NmAttachmentListItem::trUtf8(char const *, char const *)
+	?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0@Z @ 84 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *)
+	?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0@Z @ 85 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *)
+	?setFileSizeText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 86 NONAME ; void NmAttachmentListItem::setFileSizeText(class QString const &)
+	?customTextColor@NmEditorTextEdit@@QBE?AU?$QPair@_NVQColor@@@@XZ @ 87 NONAME ; struct QPair<bool, class QColor> NmEditorTextEdit::customTextColor(void) const
+	?staticMetaObject@NmHtmlLineEdit@@2UQMetaObject@@B @ 88 NONAME ; struct QMetaObject const NmHtmlLineEdit::staticMetaObject
+	?inputMethodEvent@NmRecipientLineEdit@@MAEXPAVQInputMethodEvent@@@Z @ 89 NONAME ; void NmRecipientLineEdit::inputMethodEvent(class QInputMethodEvent *)
+	?mouseReleaseEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 90 NONAME ; void NmBaseViewScrollArea::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?constructUi@NmAttachmentListWidget@@AAEXXZ @ 91 NONAME ; void NmAttachmentListWidget::constructUi(void)
+	?toPlainText@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 92 NONAME ; class QString NmHtmlLineEdit::toPlainText(void) const
+	?getStaticMetaObject@NmEditorTextEdit@@SAABUQMetaObject@@XZ @ 93 NONAME ; struct QMetaObject const & NmEditorTextEdit::getStaticMetaObject(void)
+	?setScrollPosition@NmEditorTextEdit@@QAEXHH@Z @ 94 NONAME ; void NmEditorTextEdit::setScrollPosition(int, int)
+	?tr@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 95 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *)
+	?staticMetaObject@NmAttachmentListItem@@2UQMetaObject@@B @ 96 NONAME ; struct QMetaObject const NmAttachmentListItem::staticMetaObject
+	??_ENmBaseViewScrollArea@@UAE@I@Z @ 97 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(unsigned int)
+	?itemLongPressed@NmAttachmentListItem@@IAEXVQPointF@@@Z @ 98 NONAME ; void NmAttachmentListItem::itemLongPressed(class QPointF)
+	?progressBarValue@NmAttachmentListItem@@QBEHXZ @ 99 NONAME ; int NmAttachmentListItem::progressBarValue(void) const
+	?setCustomTextColor@NmEditorTextEdit@@QAEX_NABVQColor@@@Z @ 100 NONAME ; void NmEditorTextEdit::setCustomTextColor(bool, class QColor const &)
+	?setEditorContentHeight@NmEditorTextEdit@@IAEXXZ @ 101 NONAME ; void NmEditorTextEdit::setEditorContentHeight(void)
+	??0NmHtmlLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 102 NONAME ; NmHtmlLineEdit::NmHtmlLineEdit(class QGraphicsItem *)
+	?init@NmAttachmentListItem@@AAEXXZ @ 103 NONAME ; void NmAttachmentListItem::init(void)
+	?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 104 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *)
+	??1NmEditorTextEdit@@UAE@XZ @ 105 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(void)
+	?generateEmailAddressList@NmRecipientLineEdit@@AAEXXZ @ 106 NONAME ; void NmRecipientLineEdit::generateEmailAddressList(void)
+	?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 107 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *)
+	?mousePressEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 108 NONAME ; void NmBaseViewScrollArea::mousePressEvent(class QGraphicsSceneMouseEvent *)
+	?handleItemActivated@NmAttachmentListWidget@@AAEXXZ @ 109 NONAME ; void NmAttachmentListWidget::handleItemActivated(void)
+	?metaObject@NmAttachmentListWidget@@UBEPBUQMetaObject@@XZ @ 110 NONAME ; struct QMetaObject const * NmAttachmentListWidget::metaObject(void) const
+	?constructUi@NmAttachmentListItem@@AAEXXZ @ 111 NONAME ; void NmAttachmentListItem::constructUi(void)
+	?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 112 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *, int)
+	?setHtml@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 113 NONAME ; void NmHtmlLineEdit::setHtml(class QString const &)
+	?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 114 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *, int)
+	?mouseReleaseEvent@NmAttachmentListItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 115 NONAME ; void NmAttachmentListItem::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?itemActivated@NmAttachmentListItem@@IAEXXZ @ 116 NONAME ; void NmAttachmentListItem::itemActivated(void)
+	?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 117 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *)
+	?getStaticMetaObject@NmRecipientLineEdit@@SAABUQMetaObject@@XZ @ 118 NONAME ; struct QMetaObject const & NmRecipientLineEdit::getStaticMetaObject(void)
+	?findItem@NmAttachmentListWidget@@AAEHPBVQObject@@@Z @ 119 NONAME ; int NmAttachmentListWidget::findItem(class QObject const *)
+	??1NmRecipientLineEdit@@UAE@XZ @ 120 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(void)
+	?removeAttachment@NmAttachmentListWidget@@QAEXH@Z @ 121 NONAME ; void NmAttachmentListWidget::removeAttachment(int)
+	?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *, int)
+	?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 123 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *, int)
+	?progressValue@NmAttachmentListWidget@@QBEHH@Z @ 124 NONAME ; int NmAttachmentListWidget::progressValue(int) const
+	?staticMetaObject@NmAttachmentListWidget@@2UQMetaObject@@B @ 125 NONAME ; struct QMetaObject const NmAttachmentListWidget::staticMetaObject
+	??_ENmAttachmentListWidget@@UAE@I@Z @ 126 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(unsigned int)
+	?setTextColor@NmAttachmentListWidget@@QAEXVQColor@@@Z @ 127 NONAME ; void NmAttachmentListWidget::setTextColor(class QColor)
+	?setTextCursor@NmHtmlLineEdit@@QAEXABVQTextCursor@@@Z @ 128 NONAME ; void NmHtmlLineEdit::setTextCursor(class QTextCursor const &)
+	?handleMouseMoveEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 129 NONAME ; void NmBaseViewScrollArea::handleMouseMoveEvent(class QGraphicsSceneMouseEvent *)
+	?staticMetaObject@NmRecipientLineEdit@@2UQMetaObject@@B @ 130 NONAME ; struct QMetaObject const NmRecipientLineEdit::staticMetaObject
+	?setProgressBarValue@NmAttachmentListWidget@@QAEXHH@Z @ 131 NONAME ; void NmAttachmentListWidget::setProgressBarValue(int, int)
+	?metaObject@NmAttachmentListItem@@UBEPBUQMetaObject@@XZ @ 132 NONAME ; struct QMetaObject const * NmAttachmentListItem::metaObject(void) const
+	?insertAttachment@NmAttachmentListWidget@@QAEXHABVQString@@0@Z @ 133 NONAME ; void NmAttachmentListWidget::insertAttachment(int, class QString const &, class QString const &)
+	??0NmAttachmentListWidget@@QAE@PAVQGraphicsItem@@@Z @ 134 NONAME ; NmAttachmentListWidget::NmAttachmentListWidget(class QGraphicsItem *)
 	?mousePressEvent@NmAttachmentListItem@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 135 NONAME ; void NmAttachmentListItem::mousePressEvent(class QGraphicsSceneMouseEvent *)
 	?tr@NmAttachmentListItem@@SA?AVQString@@PBD0H@Z @ 136 NONAME ; class QString NmAttachmentListItem::tr(char const *, char const *, int)
+	?document@NmHtmlLineEdit@@QBEPAVQTextDocument@@XZ @ 137 NONAME ; class QTextDocument * NmHtmlLineEdit::document(void) const
+	?qt_metacall@NmBaseViewScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 138 NONAME ; int NmBaseViewScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@NmHtmlLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 139 NONAME ; int NmHtmlLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 140 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *)
 
--- a/emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def	Mon May 03 12:23:15 2010 +0300
@@ -19,21 +19,21 @@
 	_ZN16NmEditorTextEdit17setScrollPositionEii @ 18 NONAME
 	_ZN16NmEditorTextEdit18sendLongPressEventERK7QPointF @ 19 NONAME
 	_ZN16NmEditorTextEdit18sendMouseMoveEventEP24QGraphicsSceneMouseEvent @ 20 NONAME
-	_ZN16NmEditorTextEdit18setCustomTextColorEbRK6QColor @ 21 NONAME
-	_ZN16NmEditorTextEdit18updateEditorHeightEv @ 22 NONAME
-	_ZN16NmEditorTextEdit19getStaticMetaObjectEv @ 23 NONAME
-	_ZN16NmEditorTextEdit19sendMousePressEventEP24QGraphicsSceneMouseEvent @ 24 NONAME
-	_ZN16NmEditorTextEdit20updateScrollPositionERK7QPointF @ 25 NONAME
-	_ZN16NmEditorTextEdit21sendMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 26 NONAME
-	_ZN16NmEditorTextEdit21updateCustomTextColorEv @ 27 NONAME
-	_ZN16NmEditorTextEdit22setEditorContentHeightEv @ 28 NONAME
-	_ZN16NmEditorTextEdit4initEP15NmEditorContentP20NmBaseViewScrollArea @ 29 NONAME
-	_ZN16NmEditorTextEditC1EP13QGraphicsItem @ 30 NONAME
-	_ZN16NmEditorTextEditC2EP13QGraphicsItem @ 31 NONAME
-	_ZN16NmEditorTextEditD0Ev @ 32 NONAME
-	_ZN16NmEditorTextEditD1Ev @ 33 NONAME
-	_ZN16NmEditorTextEditD2Ev @ 34 NONAME
-	_ZN19NmRecipientLineEdit10insertTextERK7QString @ 35 NONAME
+	_ZN16NmEditorTextEdit18setCustomTextColorERK5QPairIb6QColorE @ 21 NONAME
+	_ZN16NmEditorTextEdit18setCustomTextColorEbRK6QColor @ 22 NONAME
+	_ZN16NmEditorTextEdit18updateEditorHeightEv @ 23 NONAME
+	_ZN16NmEditorTextEdit19getStaticMetaObjectEv @ 24 NONAME
+	_ZN16NmEditorTextEdit19sendMousePressEventEP24QGraphicsSceneMouseEvent @ 25 NONAME
+	_ZN16NmEditorTextEdit20updateScrollPositionERK7QPointF @ 26 NONAME
+	_ZN16NmEditorTextEdit21sendMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 27 NONAME
+	_ZN16NmEditorTextEdit21updateCustomTextColorEv @ 28 NONAME
+	_ZN16NmEditorTextEdit22setEditorContentHeightEv @ 29 NONAME
+	_ZN16NmEditorTextEdit4initEP15NmEditorContentP20NmBaseViewScrollArea @ 30 NONAME
+	_ZN16NmEditorTextEditC1EP13QGraphicsItem @ 31 NONAME
+	_ZN16NmEditorTextEditC2EP13QGraphicsItem @ 32 NONAME
+	_ZN16NmEditorTextEditD0Ev @ 33 NONAME
+	_ZN16NmEditorTextEditD1Ev @ 34 NONAME
+	_ZN16NmEditorTextEditD2Ev @ 35 NONAME
 	_ZN19NmRecipientLineEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 36 NONAME
 	_ZN19NmRecipientLineEdit11qt_metacastEPKc @ 37 NONAME
 	_ZN19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 38 NONAME
@@ -49,121 +49,126 @@
 	_ZN19NmRecipientLineEditD0Ev @ 48 NONAME
 	_ZN19NmRecipientLineEditD1Ev @ 49 NONAME
 	_ZN19NmRecipientLineEditD2Ev @ 50 NONAME
-	_ZN20NmBaseViewScrollArea11qt_metacallEN11QMetaObject4CallEiPPv @ 51 NONAME
-	_ZN20NmBaseViewScrollArea11qt_metacastEPKc @ 52 NONAME
-	_ZN20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 53 NONAME
-	_ZN20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 54 NONAME
-	_ZN20NmBaseViewScrollArea16longPressGestureERK7QPointF @ 55 NONAME
-	_ZN20NmBaseViewScrollArea16staticMetaObjectE @ 56 NONAME DATA 16
-	_ZN20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 57 NONAME
-	_ZN20NmBaseViewScrollArea19getStaticMetaObjectEv @ 58 NONAME
-	_ZN20NmBaseViewScrollArea20handleMouseMoveEventEP24QGraphicsSceneMouseEvent @ 59 NONAME
-	_ZN20NmBaseViewScrollArea21handleMousePressEventEP24QGraphicsSceneMouseEvent @ 60 NONAME
-	_ZN20NmBaseViewScrollArea22handleLongPressGestureERK7QPointF @ 61 NONAME
-	_ZN20NmBaseViewScrollArea23handleMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 62 NONAME
-	_ZN20NmBaseViewScrollAreaC1EP13QGraphicsItem @ 63 NONAME
-	_ZN20NmBaseViewScrollAreaC2EP13QGraphicsItem @ 64 NONAME
-	_ZN20NmBaseViewScrollAreaD0Ev @ 65 NONAME
-	_ZN20NmBaseViewScrollAreaD1Ev @ 66 NONAME
-	_ZN20NmBaseViewScrollAreaD2Ev @ 67 NONAME
-	_ZN22NmAttachmentListWidget11constructUiEv @ 68 NONAME
-	_ZN22NmAttachmentListWidget11longPressedEi7QPointF @ 69 NONAME
-	_ZN22NmAttachmentListWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 70 NONAME
-	_ZN22NmAttachmentListWidget11qt_metacastEPKc @ 71 NONAME
-	_ZN22NmAttachmentListWidget13itemActivatedEi @ 72 NONAME
-	_ZN22NmAttachmentListWidget15rearrangeLayoutEv @ 73 NONAME
-	_ZN22NmAttachmentListWidget16insertAttachmentEiRK7QStringS2_ @ 74 NONAME
-	_ZN22NmAttachmentListWidget16removeAttachmentEi @ 75 NONAME
-	_ZN22NmAttachmentListWidget16staticMetaObjectE @ 76 NONAME DATA 16
-	_ZN22NmAttachmentListWidget17handleLongPressedE7QPointF @ 77 NONAME
-	_ZN22NmAttachmentListWidget18insertItemToLayoutEP20NmAttachmentListItem @ 78 NONAME
-	_ZN22NmAttachmentListWidget18orientationChangedEN2Qt11OrientationE @ 79 NONAME
-	_ZN22NmAttachmentListWidget19getStaticMetaObjectEv @ 80 NONAME
-	_ZN22NmAttachmentListWidget19handleItemActivatedEv @ 81 NONAME
-	_ZN22NmAttachmentListWidget19setProgressBarValueEii @ 82 NONAME
-	_ZN22NmAttachmentListWidget4initEv @ 83 NONAME
-	_ZN22NmAttachmentListWidget8findItemEPK7QObject @ 84 NONAME
-	_ZN22NmAttachmentListWidgetC1EP13QGraphicsItem @ 85 NONAME
-	_ZN22NmAttachmentListWidgetC2EP13QGraphicsItem @ 86 NONAME
-	_ZN22NmAttachmentListWidgetD0Ev @ 87 NONAME
-	_ZN22NmAttachmentListWidgetD1Ev @ 88 NONAME
-	_ZN22NmAttachmentListWidgetD2Ev @ 89 NONAME
-	_ZNK14NmHtmlLineEdit10metaObjectEv @ 90 NONAME
-	_ZNK14NmHtmlLineEdit10textCursorEv @ 91 NONAME
-	_ZNK14NmHtmlLineEdit11toPlainTextEv @ 92 NONAME
-	_ZNK14NmHtmlLineEdit6toHtmlEv @ 93 NONAME
-	_ZNK14NmHtmlLineEdit8documentEv @ 94 NONAME
-	_ZNK16NmEditorTextEdit10metaObjectEv @ 95 NONAME
-	_ZNK16NmEditorTextEdit13contentHeightEv @ 96 NONAME
-	_ZNK19NmRecipientLineEdit10metaObjectEv @ 97 NONAME
-	_ZNK20NmBaseViewScrollArea10metaObjectEv @ 98 NONAME
-	_ZNK22NmAttachmentListWidget10metaObjectEv @ 99 NONAME
-	_ZNK22NmAttachmentListWidget13progressValueEi @ 100 NONAME
-	_ZNK22NmAttachmentListWidget5countEv @ 101 NONAME
-	_ZTI14NmHtmlLineEdit @ 102 NONAME
-	_ZTI16NmEditorTextEdit @ 103 NONAME
-	_ZTI19NmRecipientLineEdit @ 104 NONAME
-	_ZTI20NmBaseViewScrollArea @ 105 NONAME
-	_ZTI22NmAttachmentListWidget @ 106 NONAME
-	_ZTV14NmHtmlLineEdit @ 107 NONAME
-	_ZTV16NmEditorTextEdit @ 108 NONAME
-	_ZTV19NmRecipientLineEdit @ 109 NONAME
-	_ZTV20NmBaseViewScrollArea @ 110 NONAME
-	_ZTV22NmAttachmentListWidget @ 111 NONAME
-	_ZThn16_N14NmHtmlLineEditD0Ev @ 112 NONAME
-	_ZThn16_N14NmHtmlLineEditD1Ev @ 113 NONAME
-	_ZThn16_N16NmEditorTextEditD0Ev @ 114 NONAME
-	_ZThn16_N16NmEditorTextEditD1Ev @ 115 NONAME
-	_ZThn16_N19NmRecipientLineEditD0Ev @ 116 NONAME
-	_ZThn16_N19NmRecipientLineEditD1Ev @ 117 NONAME
-	_ZThn16_N20NmBaseViewScrollAreaD0Ev @ 118 NONAME
-	_ZThn16_N20NmBaseViewScrollAreaD1Ev @ 119 NONAME
-	_ZThn16_N22NmAttachmentListWidgetD0Ev @ 120 NONAME
-	_ZThn16_N22NmAttachmentListWidgetD1Ev @ 121 NONAME
-	_ZThn8_N14NmHtmlLineEditD0Ev @ 122 NONAME
-	_ZThn8_N14NmHtmlLineEditD1Ev @ 123 NONAME
-	_ZThn8_N16NmEditorTextEditD0Ev @ 124 NONAME
-	_ZThn8_N16NmEditorTextEditD1Ev @ 125 NONAME
-	_ZThn8_N19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 126 NONAME
-	_ZThn8_N19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 127 NONAME
-	_ZThn8_N19NmRecipientLineEditD0Ev @ 128 NONAME
-	_ZThn8_N19NmRecipientLineEditD1Ev @ 129 NONAME
-	_ZThn8_N20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 130 NONAME
-	_ZThn8_N20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 131 NONAME
-	_ZThn8_N20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 132 NONAME
-	_ZThn8_N20NmBaseViewScrollAreaD0Ev @ 133 NONAME
-	_ZThn8_N20NmBaseViewScrollAreaD1Ev @ 134 NONAME
-	_ZThn8_N22NmAttachmentListWidgetD0Ev @ 135 NONAME
-	_ZThn8_N22NmAttachmentListWidgetD1Ev @ 136 NONAME
-	_ZN16NmEditorTextEdit18setCustomTextColorERK5QPairIb6QColorE @ 137 NONAME
-	_ZNK16NmEditorTextEdit15customTextColorEv @ 138 NONAME
-	_ZN20NmAttachmentListItem11constructUiEv @ 139 NONAME
-	_ZN20NmAttachmentListItem11qt_metacallEN11QMetaObject4CallEiPPv @ 140 NONAME
-	_ZN20NmAttachmentListItem11qt_metacastEPKc @ 141 NONAME
-	_ZN20NmAttachmentListItem12setTextItemsERK7QStringS2_ @ 142 NONAME
-	_ZN20NmAttachmentListItem13itemActivatedEv @ 143 NONAME
-	_ZN20NmAttachmentListItem15itemLongPressedE7QPointF @ 144 NONAME
-	_ZN20NmAttachmentListItem15mousePressEventEP24QGraphicsSceneMouseEvent @ 145 NONAME
-	_ZN20NmAttachmentListItem16staticMetaObjectE @ 146 NONAME DATA 16
-	_ZN20NmAttachmentListItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 147 NONAME
-	_ZN20NmAttachmentListItem17removeProgressBarEv @ 148 NONAME
-	_ZN20NmAttachmentListItem19getStaticMetaObjectEv @ 149 NONAME
-	_ZN20NmAttachmentListItem19setProgressBarValueEi @ 150 NONAME
-	_ZN20NmAttachmentListItem20longPressedActivatedEv @ 151 NONAME
-	_ZN20NmAttachmentListItem4initEv @ 152 NONAME
-	_ZN20NmAttachmentListItemC1EP13QGraphicsItem @ 153 NONAME
-	_ZN20NmAttachmentListItemC2EP13QGraphicsItem @ 154 NONAME
-	_ZN20NmAttachmentListItemD0Ev @ 155 NONAME
-	_ZN20NmAttachmentListItemD1Ev @ 156 NONAME
-	_ZN20NmAttachmentListItemD2Ev @ 157 NONAME
-	_ZNK20NmAttachmentListItem10metaObjectEv @ 158 NONAME
-	_ZNK20NmAttachmentListItem16progressBarValueEv @ 159 NONAME
-	_ZTI20NmAttachmentListItem @ 160 NONAME
-	_ZTV20NmAttachmentListItem @ 161 NONAME
-	_ZThn16_N20NmAttachmentListItemD0Ev @ 162 NONAME
-	_ZThn16_N20NmAttachmentListItemD1Ev @ 163 NONAME
-	_ZThn8_N20NmAttachmentListItem15mousePressEventEP24QGraphicsSceneMouseEvent @ 164 NONAME
-	_ZThn8_N20NmAttachmentListItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 165 NONAME
-	_ZThn8_N20NmAttachmentListItemD0Ev @ 166 NONAME
-	_ZThn8_N20NmAttachmentListItemD1Ev @ 167 NONAME
+	_ZN20NmAttachmentListItem11constructUiEv @ 51 NONAME
+	_ZN20NmAttachmentListItem11qt_metacallEN11QMetaObject4CallEiPPv @ 52 NONAME
+	_ZN20NmAttachmentListItem11qt_metacastEPKc @ 53 NONAME
+	_ZN20NmAttachmentListItem12setTextColorE6QColor @ 54 NONAME
+	_ZN20NmAttachmentListItem13itemActivatedEv @ 55 NONAME
+	_ZN20NmAttachmentListItem15itemLongPressedE7QPointF @ 56 NONAME
+	_ZN20NmAttachmentListItem15mousePressEventEP24QGraphicsSceneMouseEvent @ 57 NONAME
+	_ZN20NmAttachmentListItem15setFileNameTextERK7QString @ 58 NONAME
+	_ZN20NmAttachmentListItem15setFileSizeTextERK7QString @ 59 NONAME
+	_ZN20NmAttachmentListItem16staticMetaObjectE @ 60 NONAME DATA 16
+	_ZN20NmAttachmentListItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 61 NONAME
+	_ZN20NmAttachmentListItem17removeProgressBarEv @ 62 NONAME
+	_ZN20NmAttachmentListItem19getStaticMetaObjectEv @ 63 NONAME
+	_ZN20NmAttachmentListItem19setProgressBarValueEi @ 64 NONAME
+	_ZN20NmAttachmentListItem20longPressedActivatedEv @ 65 NONAME
+	_ZN20NmAttachmentListItem4initEv @ 66 NONAME
+	_ZN20NmAttachmentListItemC1EP13QGraphicsItem @ 67 NONAME
+	_ZN20NmAttachmentListItemC2EP13QGraphicsItem @ 68 NONAME
+	_ZN20NmAttachmentListItemD0Ev @ 69 NONAME
+	_ZN20NmAttachmentListItemD1Ev @ 70 NONAME
+	_ZN20NmAttachmentListItemD2Ev @ 71 NONAME
+	_ZN20NmBaseViewScrollArea11qt_metacallEN11QMetaObject4CallEiPPv @ 72 NONAME
+	_ZN20NmBaseViewScrollArea11qt_metacastEPKc @ 73 NONAME
+	_ZN20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 74 NONAME
+	_ZN20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 75 NONAME
+	_ZN20NmBaseViewScrollArea16longPressGestureERK7QPointF @ 76 NONAME
+	_ZN20NmBaseViewScrollArea16staticMetaObjectE @ 77 NONAME DATA 16
+	_ZN20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 78 NONAME
+	_ZN20NmBaseViewScrollArea19getStaticMetaObjectEv @ 79 NONAME
+	_ZN20NmBaseViewScrollArea20handleMouseMoveEventEP24QGraphicsSceneMouseEvent @ 80 NONAME
+	_ZN20NmBaseViewScrollArea21handleMousePressEventEP24QGraphicsSceneMouseEvent @ 81 NONAME
+	_ZN20NmBaseViewScrollArea22handleLongPressGestureERK7QPointF @ 82 NONAME
+	_ZN20NmBaseViewScrollArea23handleMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 83 NONAME
+	_ZN20NmBaseViewScrollAreaC1EP13QGraphicsItem @ 84 NONAME
+	_ZN20NmBaseViewScrollAreaC2EP13QGraphicsItem @ 85 NONAME
+	_ZN20NmBaseViewScrollAreaD0Ev @ 86 NONAME
+	_ZN20NmBaseViewScrollAreaD1Ev @ 87 NONAME
+	_ZN20NmBaseViewScrollAreaD2Ev @ 88 NONAME
+	_ZN22NmAttachmentListWidget11constructUiEv @ 89 NONAME
+	_ZN22NmAttachmentListWidget11longPressedEi7QPointF @ 90 NONAME
+	_ZN22NmAttachmentListWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 91 NONAME
+	_ZN22NmAttachmentListWidget11qt_metacastEPKc @ 92 NONAME
+	_ZN22NmAttachmentListWidget12setTextColorE6QColor @ 93 NONAME
+	_ZN22NmAttachmentListWidget13itemActivatedEi @ 94 NONAME
+	_ZN22NmAttachmentListWidget15rearrangeLayoutEv @ 95 NONAME
+	_ZN22NmAttachmentListWidget16insertAttachmentEiRK7QStringS2_ @ 96 NONAME
+	_ZN22NmAttachmentListWidget16removeAttachmentEi @ 97 NONAME
+	_ZN22NmAttachmentListWidget16staticMetaObjectE @ 98 NONAME DATA 16
+	_ZN22NmAttachmentListWidget17handleLongPressedE7QPointF @ 99 NONAME
+	_ZN22NmAttachmentListWidget17setAttachmentSizeEiRK7QString @ 100 NONAME
+	_ZN22NmAttachmentListWidget18insertItemToLayoutEP20NmAttachmentListItem @ 101 NONAME
+	_ZN22NmAttachmentListWidget18orientationChangedEN2Qt11OrientationE @ 102 NONAME
+	_ZN22NmAttachmentListWidget19getStaticMetaObjectEv @ 103 NONAME
+	_ZN22NmAttachmentListWidget19handleItemActivatedEv @ 104 NONAME
+	_ZN22NmAttachmentListWidget19setProgressBarValueEii @ 105 NONAME
+	_ZN22NmAttachmentListWidget4initEv @ 106 NONAME
+	_ZN22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 107 NONAME
+	_ZN22NmAttachmentListWidget8findItemEPK7QObject @ 108 NONAME
+	_ZN22NmAttachmentListWidgetC1EP13QGraphicsItem @ 109 NONAME
+	_ZN22NmAttachmentListWidgetC2EP13QGraphicsItem @ 110 NONAME
+	_ZN22NmAttachmentListWidgetD0Ev @ 111 NONAME
+	_ZN22NmAttachmentListWidgetD1Ev @ 112 NONAME
+	_ZN22NmAttachmentListWidgetD2Ev @ 113 NONAME
+	_ZNK14NmHtmlLineEdit10metaObjectEv @ 114 NONAME
+	_ZNK14NmHtmlLineEdit10textCursorEv @ 115 NONAME
+	_ZNK14NmHtmlLineEdit11toPlainTextEv @ 116 NONAME
+	_ZNK14NmHtmlLineEdit6toHtmlEv @ 117 NONAME
+	_ZNK14NmHtmlLineEdit8documentEv @ 118 NONAME
+	_ZNK16NmEditorTextEdit10metaObjectEv @ 119 NONAME
+	_ZNK16NmEditorTextEdit13contentHeightEv @ 120 NONAME
+	_ZNK16NmEditorTextEdit15customTextColorEv @ 121 NONAME
+	_ZNK19NmRecipientLineEdit10metaObjectEv @ 122 NONAME
+	_ZNK20NmAttachmentListItem10metaObjectEv @ 123 NONAME
+	_ZNK20NmAttachmentListItem16progressBarValueEv @ 124 NONAME
+	_ZNK20NmBaseViewScrollArea10metaObjectEv @ 125 NONAME
+	_ZNK22NmAttachmentListWidget10metaObjectEv @ 126 NONAME
+	_ZNK22NmAttachmentListWidget13progressValueEi @ 127 NONAME
+	_ZNK22NmAttachmentListWidget5countEv @ 128 NONAME
+	_ZTI14NmHtmlLineEdit @ 129 NONAME
+	_ZTI16NmEditorTextEdit @ 130 NONAME
+	_ZTI19NmRecipientLineEdit @ 131 NONAME
+	_ZTI20NmAttachmentListItem @ 132 NONAME
+	_ZTI20NmBaseViewScrollArea @ 133 NONAME
+	_ZTI22NmAttachmentListWidget @ 134 NONAME
+	_ZTV14NmHtmlLineEdit @ 135 NONAME
+	_ZTV16NmEditorTextEdit @ 136 NONAME
+	_ZTV19NmRecipientLineEdit @ 137 NONAME
+	_ZTV20NmAttachmentListItem @ 138 NONAME
+	_ZTV20NmBaseViewScrollArea @ 139 NONAME
+	_ZTV22NmAttachmentListWidget @ 140 NONAME
+	_ZThn16_N14NmHtmlLineEditD0Ev @ 141 NONAME
+	_ZThn16_N14NmHtmlLineEditD1Ev @ 142 NONAME
+	_ZThn16_N16NmEditorTextEditD0Ev @ 143 NONAME
+	_ZThn16_N16NmEditorTextEditD1Ev @ 144 NONAME
+	_ZThn16_N19NmRecipientLineEditD0Ev @ 145 NONAME
+	_ZThn16_N19NmRecipientLineEditD1Ev @ 146 NONAME
+	_ZThn16_N20NmAttachmentListItemD0Ev @ 147 NONAME
+	_ZThn16_N20NmAttachmentListItemD1Ev @ 148 NONAME
+	_ZThn16_N20NmBaseViewScrollAreaD0Ev @ 149 NONAME
+	_ZThn16_N20NmBaseViewScrollAreaD1Ev @ 150 NONAME
+	_ZThn16_N22NmAttachmentListWidgetD0Ev @ 151 NONAME
+	_ZThn16_N22NmAttachmentListWidgetD1Ev @ 152 NONAME
+	_ZThn8_N14NmHtmlLineEditD0Ev @ 153 NONAME
+	_ZThn8_N14NmHtmlLineEditD1Ev @ 154 NONAME
+	_ZThn8_N16NmEditorTextEditD0Ev @ 155 NONAME
+	_ZThn8_N16NmEditorTextEditD1Ev @ 156 NONAME
+	_ZThn8_N19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 157 NONAME
+	_ZThn8_N19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 158 NONAME
+	_ZThn8_N19NmRecipientLineEditD0Ev @ 159 NONAME
+	_ZThn8_N19NmRecipientLineEditD1Ev @ 160 NONAME
+	_ZThn8_N20NmAttachmentListItem15mousePressEventEP24QGraphicsSceneMouseEvent @ 161 NONAME
+	_ZThn8_N20NmAttachmentListItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 162 NONAME
+	_ZThn8_N20NmAttachmentListItemD0Ev @ 163 NONAME
+	_ZThn8_N20NmAttachmentListItemD1Ev @ 164 NONAME
+	_ZThn8_N20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 165 NONAME
+	_ZThn8_N20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 166 NONAME
+	_ZThn8_N20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 167 NONAME
+	_ZThn8_N20NmBaseViewScrollAreaD0Ev @ 168 NONAME
+	_ZThn8_N20NmBaseViewScrollAreaD1Ev @ 169 NONAME
+	_ZThn8_N22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 170 NONAME
+	_ZThn8_N22NmAttachmentListWidgetD0Ev @ 171 NONAME
+	_ZThn8_N22NmAttachmentListWidgetD1Ev @ 172 NONAME
 
--- a/emailuis/nmailuiwidgets/inc/nmailuiwidgetsheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/inc/nmailuiwidgetsheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -41,6 +41,7 @@
 #include <hbprogressbar.h>
 #include <hbdocumentloader.h>
 #include <hbinstance.h>
+#include <hbcolorscheme.h>
 
 #include <nmaddress.h>
 #include <nmcommon.h>
--- a/emailuis/nmailuiwidgets/inc/nmattachmentlistitem.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/inc/nmattachmentlistitem.h	Mon May 03 12:23:15 2010 +0300
@@ -33,7 +33,9 @@
 public:
     explicit NmAttachmentListItem(QGraphicsItem *parent = 0);
     virtual ~NmAttachmentListItem();
-    void setTextItems(const QString &fileName, const QString &fileSize);
+    void setTextColor(const QColor color);
+    void setFileNameText(const QString &fileName);
+    void setFileSizeText(const QString &fileSize);
     void setProgressBarValue(const int value);
     int progressBarValue() const;
 
@@ -61,7 +63,7 @@
     QTimer *mTimer; //owned
     bool mButtonPressed;
     QPointF mLongPressedPoint;
-
+    QColor mTextColor;
 };
 
 #endif /* NMATTACHMENTLISTITEM_H_ */
--- a/emailuis/nmailuiwidgets/inc/nmattachmentlistwidget.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/inc/nmattachmentlistwidget.h	Mon May 03 12:23:15 2010 +0300
@@ -17,11 +17,15 @@
 #ifndef NMATTACHMENTLISTWIDGET_H_
 #define NMATTACHMENTLISTWIDGET_H_
 
+#include <QColor>
+
 #include <hbwidget.h>
 #include "nmailuiwidgetsdef.h"
 
 class NmAttachmentListItem;
 class QGraphicsGridLayout;
+class QStyleOptionGraphicsItem;
+class QPainter;
 
 class NMAILUIWIDGETS_EXPORT NmAttachmentListWidget : public HbWidget
 {
@@ -30,10 +34,13 @@
 public:
     NmAttachmentListWidget(QGraphicsItem *parent = 0);
     virtual ~NmAttachmentListWidget();
+    void setTextColor(const QColor color);
     void insertAttachment(const int index, const QString &fileName, const QString &fileSize);
     void removeAttachment(const int index);
+    void setAttachmentSize(int index, const QString &fileSize);
     int count() const;
     int progressValue(int index) const;
+    void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget);
 
 public slots:
     void setProgressBarValue(int index, int value); 
@@ -59,6 +66,7 @@
     QList<NmAttachmentListItem*> mItemList; //owned
     QGraphicsGridLayout *mLayout;
     Qt::Orientation mOrientation;
+    QColor mTextColor;
 };
 
 #endif // NMATTACHMENTLISTWIDGET_H_
--- a/emailuis/nmailuiwidgets/inc/nmrecipientlineedit.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/inc/nmrecipientlineedit.h	Mon May 03 12:23:15 2010 +0300
@@ -40,7 +40,6 @@
 #ifdef Q_OS_SYMBIAN
     void insertSelectedContacts(const QVariant &selectedContacts);
 #endif
-    void insertText(const QString &text);
 
 protected:	// from HbLineEdit
     void keyPressEvent(QKeyEvent *event);
--- a/emailuis/nmailuiwidgets/nmailuiwidgets.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/nmailuiwidgets.pro	Mon May 03 12:23:15 2010 +0300
@@ -36,6 +36,9 @@
            src/nmattachmentlistwidget.cpp \
            src/nmattachmentlistitem.cpp
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian*: {
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
     
--- a/emailuis/nmailuiwidgets/src/nmattachmentlistitem.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/src/nmattachmentlistitem.cpp	Mon May 03 12:23:15 2010 +0300
@@ -22,7 +22,7 @@
 
 static const int PROGRESSBAR_MIN = 0; 
 static const int PROGRESSBAR_MAX = 100;
-static const int PROGRESSBAR_HIDE_COUNTDOWN = 5000;
+static const int PROGRESSBAR_HIDE_COUNTDOWN = 500;
 static const int LONGPRESS_TIMER = 2000;
 
 
@@ -53,6 +53,14 @@
     init( );
 }
 
+/*!
+    Setter for items text color override. This fucntion can be used
+    if theme background is not used and text needs to be shown in diferent color.
+ */
+void NmAttachmentListItem::setTextColor(const QColor color)
+{
+    mTextColor=color;
+}
 
 /*!
     Destructor.
@@ -61,18 +69,38 @@
 {
     HbStyleLoader::unregisterFilePath(FILE_PATH_WIDGETML);
     HbStyleLoader::unregisterFilePath(FILE_PATH_CSS);
+    
+    delete mTimer;
+    mTimer = NULL; 
 }
 
 /*!
-    Set the texts to be displayed in the file name and file size items
-    
+    Set the text to be displayed in the file name item.
  */
-void NmAttachmentListItem::setTextItems(const QString &fileName, const QString &fileSize)
+void NmAttachmentListItem::setFileNameText(const QString &fileName)
 {
-    mFileNameText->setText(fileName);
-    mFileSizeText->setText(fileSize);    
+    if (mFileNameText){
+        if (mTextColor.isValid()){
+            mFileNameText->setTextColor(mTextColor);
+        }
+        mFileNameText->setTextWrapping(Hb::TextNoWrap);
+        mFileNameText->setText(fileName);    
+    }
 }
 
+/*!
+    Set the text to be displayed in the file size item
+ */
+void NmAttachmentListItem::setFileSizeText(const QString &fileSize)
+{
+    if (mFileSizeText){
+        if (mTextColor.isValid()){
+            mFileSizeText->setTextColor(mTextColor);
+        }
+        mFileSizeText->setTextWrapping(Hb::TextNoWrap);
+        mFileSizeText->setText(fileSize);  
+    } 
+}
 
 /*!
     Set the download progress bar value (0-100)%, if value is 0 progress bar is hidden
@@ -159,7 +187,9 @@
 
     mButtonPressed = true;
     mLongPressedPoint = event->scenePos();
-    mTimer->start(LONGPRESS_TIMER);
+    if(mTimer){
+        mTimer->start(LONGPRESS_TIMER);        
+    }
 }
 
 /*!
@@ -169,7 +199,7 @@
 {
     Q_UNUSED(event);
     NMLOG("NmAttachmentListItem::mouseReleasedEvent");
-    if ( mButtonPressed ){
+    if ( mTimer && mButtonPressed ){
         emit itemActivated();
         mButtonPressed = false;
         mTimer->stop();
@@ -199,7 +229,6 @@
         NMLOG("NmAttachmentListItem::longPressedActivated");
         emit itemLongPressed(mLongPressedPoint);
         mButtonPressed = false;
-        mTimer->stop();
     }
 }
 
--- a/emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp	Mon May 03 12:23:15 2010 +0300
@@ -20,6 +20,8 @@
 static const QString FILE_PATH_DOCML = ":nmattachmentlistwidget.docml";
 static const QString ATTACHMENT_WIDGET = "nmattachmentlistwidget";
 
+static const qreal NmItemLineOpacity = 0.4;
+
 /*!
  @nmailuiwidgets
  \class NmAttachmentListWidget
@@ -117,6 +119,16 @@
 }
 
 /*!
+    Setter for items text color override. This fucntion can be used
+    if theme background is not used and text needs to be shown in diferent color.
+ */
+void NmAttachmentListWidget::setTextColor(const QColor color)
+{
+    mTextColor=color;
+}
+
+
+/*!
     Inserts attachment to given index. If index already contains data,
     old one will be moved to next.
  */
@@ -133,7 +145,11 @@
     connect(item, SIGNAL(itemLongPressed(QPointF)), this, SLOT(handleLongPressed(QPointF)));
 
     //set texts
-    item->setTextItems(fileName,fileSize);
+    if (mTextColor.isValid()){
+        item->setTextColor(mTextColor);    
+    }
+    item->setFileNameText(fileName);
+    item->setFileSizeText(fileSize);
 
     //finally add item to item's list
     mItemList.insert(index,item);
@@ -167,6 +183,18 @@
 }
 
 /*!
+    Set attachment file size.
+ */
+void NmAttachmentListWidget::setAttachmentSize(
+        int index, 
+        const QString &fileSize)
+{
+	if (index>=0 && index<mItemList.count()) {
+	    mItemList.at(index)->setFileSizeText(fileSize);
+	}
+}
+
+/*!
     Returns attachment(s) count. 
  */
 int NmAttachmentListWidget::count() const
@@ -186,6 +214,45 @@
     return ret;
 }
 
+
+/*!
+    paint. Paint function for line painting.
+*/
+void NmAttachmentListWidget::paint(
+    QPainter *painter,
+    const QStyleOptionGraphicsItem *option,
+    QWidget *widget)
+{
+    Q_UNUSED(option);
+    Q_UNUSED(widget);
+    if (painter&&mLayout){
+        // Use text color as a line color if set, otherwise use theme
+        // normal list content color.
+        if (mTextColor.isValid()){
+            painter->setPen(mTextColor);
+        }
+        else{
+            QColor col = HbColorScheme::color("list_item_content_normal");
+            if (col.isValid()) {
+                painter->setPen(col);
+            }
+        }
+        painter->setOpacity(NmItemLineOpacity);
+        // Draw line after each item
+        int rowCount = mLayout->rowCount();
+        QRectF layoutRect = mLayout->geometry ();
+        for (int i=0;i<rowCount;i++){
+            QGraphicsLayoutItem *item = mLayout->itemAt(i,0);
+            if (item){
+                QRectF itemRect = item->geometry();      
+                QLineF line1( itemRect.topLeft().x(), itemRect.bottomRight().y(),
+                              layoutRect.bottomRight().x(), itemRect.bottomRight().y());
+                painter->drawLine(line1);                     
+            }     
+        }        
+    }
+}
+
 /*!
     Public slot connected to set items value. Shows progress bar when called
     with match index and positive value (1-100). Zero value hides progress bar.
@@ -239,6 +306,7 @@
     if(loadingOk && widgetCount){
         if(layout()){
             mLayout = dynamic_cast<QGraphicsGridLayout*>(layout());
+            mLayout->setContentsMargins(0,0,0,0);
         } else {
             NMLOG("NmAttachmentListWidget::constructUi: Widget doesn't have layout!");
         }
@@ -333,6 +401,9 @@
     if(Qt::Vertical == mOrientation){
         mLayout->addItem(item,layout_count,0);
     } else {
+        if (mLayout->contentsRect().width() > 0) {
+            item->setPreferredWidth(mLayout->contentsRect().width() / 2);
+        }
         mLayout->addItem(item,layout_count / 2, layout_count % 2);
     }
 
--- a/emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp	Mon May 03 12:23:15 2010 +0300
@@ -29,8 +29,7 @@
     : NmHtmlLineEdit(parent),
     mNeedToGenerateEmailAddressList(true)
 {
-    connect(this, SIGNAL(textChanged(const QString &)), 
-            this, SLOT(handleTextChanged(const QString &)));
+    connect(this, SIGNAL(textChanged(QString)), this, SLOT(handleTextChanged(QString)));
 }
 
 
@@ -61,33 +60,55 @@
 
 #ifdef Q_OS_SYMBIAN
 /*!
-   This Slot inserts the contacts selected from PhoneBook at the lineedit cursor position.
+   This Slot inserts the selected contacts from Contacts-picker into the lineedit cursor position.    
+   "You shouldn't be able to convert the parameter selectedContacts into a QStringlist or QString,
+   you need to convert selectedContacts into a CntServicesContactList." -- Comments from 
+   Contacts-picker author Erkinheimo Joonas (Nokia-D/Espoo)
+   Contacts-Picker should be working in TB 10.1 MCL wk16 release, 
+   Custom metatypes problem will be fixed in wk16 by QtHighway.
 */
 void NmRecipientLineEdit::insertSelectedContacts(const QVariant &selectedContacts)
 {
-    CntServicesContactList contactList;
-    contactList = qVariantValue<CntServicesContactList>(selectedContacts);
+    if (!selectedContacts.isNull()) {
+        CntServicesContactList contactList;
+        contactList = qVariantValue<CntServicesContactList>(selectedContacts);
 
-    if (contactList.count() == 0) {	
-// Using HbMessageBox or any other dialogs e.g HbNotificationDialog causes XQServiceRequest crash!
-//     // "No contact returned" will be replaced by a hbTrId.
-//     HbMessageBox note(tr("No contact returned"), HbMessageBox::MessageTypeInformation);
-//     note.setTimeout(HbMessageBox::NoTimeout);
-//     note.exec();
-    }
-    else {
-        // Loop through all the contacts selected from PhoneBook.
-        for (int i = 0; i < contactList.count(); ++i) {
-            QString contactEmailAddress = contactList[i].mEmailAddress;
-            QString contactName = contactList[i].mDisplayName;
+        if (contactList.count() == 0) {	
+            // String "No contact returned" will be replaced by a hbTrId.
+            HbMessageBox note(tr("No contact returned"), HbMessageBox::MessageTypeInformation);
+            note.setTimeout(HbMessageBox::NoTimeout);
+            note.exec();
+        }
+        else {
+            // Loop through all the contacts selected from Contacts application.
+            for (int i = 0; i < contactList.count(); ++i) {
+                QString contactEmailAddress = contactList[i].mEmailAddress;
+                QString contactName = contactList[i].mDisplayName;
 
             // If this contact has no name.
-            if(contactName.isEmpty()) {	
-            // Insert this contact's emailaddress.			
-            insertText(contactEmailAddress);
+            if(contactName.isEmpty()) {				
+                // Generate custom keyevent for this contact's emailaddress.
+                QKeyEvent contactEmailAddressKeyEvent(QEvent::KeyPress, Qt::Key_unknown, 
+                		                              Qt::NoModifier, contactEmailAddress);
+                // Forward this contactEmailAddressKeyEventt to base class to handle.
+                NmHtmlLineEdit::keyPressEvent(&contactEmailAddressKeyEvent);
             }
             else {
-                insertText(contactName); 
+                // Handle a rare case: there's another contact has same name 
+                // but has different emailaddress.
+                for (int i = 0; i != mContactsSelectedFromPhoneBook.count(); ++i) {
+                    if (mContactsSelectedFromPhoneBook.at(i).displayName() == contactName &&
+                    	mContactsSelectedFromPhoneBook.at(i).address() != contactEmailAddress) {
+                        // Differentiate this contact's name by adding a * mark
+                        contactName.append("*");
+                    }
+                }
+                
+                // Generate custom keyevent for this contact's name.
+                QKeyEvent contactNameKeyEvent(QEvent::KeyPress, Qt::Key_unknown, Qt::NoModifier,
+                                              contactName);
+                // Forward this contactNameKeyEvent to base class to handle.
+                NmHtmlLineEdit::keyPressEvent(&contactNameKeyEvent);
             }
 
             // Generate custom keyevent for Delimiter("; ").
@@ -102,8 +123,14 @@
             
             // Add this NmAddress formated contact into mContactsSelectedFromPhoneBook.
             mContactsSelectedFromPhoneBook.append(contact);
+            }
         }
     }
+    else {
+        //Request returned NULL 
+        NMLOG("Request returned NULL.");
+    }
+        
 }
 
 Q_IMPLEMENT_USER_METATYPE(CntServicesContact)
@@ -112,30 +139,14 @@
 
 
 /*!
-   This Slot inserts text at the lineedit cursor position 
-   In the future when underlining some recipient is requested, 
-   the implementation will be replaced with QTextCursor, QTextCharFormat, so on.
-*/
-void NmRecipientLineEdit::insertText(const QString &text)
-{
-    // Loop through all the characters from the text.
-    for (int i = 0; i != text.count(); ++i) {
-        QString character(text[i]);
-        // Generate custom keyevent for this character.
-        QKeyEvent charKeyEvent(QEvent::KeyPress, Qt::Key_unknown, Qt::NoModifier, character);
-        // Forward the charKeyEvent to base class to handle.
-        NmHtmlLineEdit::keyPressEvent(&charKeyEvent);
-    }
-}
-
-
-/*!
    keyPressEvent handles replacing user inputs "," or ";" from physical keyboard with "; "
    P.S. keyPressEvent can only catch QKeyEvent "," or ";" typed from physical keyboard,
    inputMethodEvent method handles user inputs "," or ";" from virtual keyboard.
 */
 void NmRecipientLineEdit::keyPressEvent(QKeyEvent *keyEvent)
 {
+	bool eventHandled = false;
+	
     if (keyEvent) {
         switch (keyEvent->key()) {    
         case Qt::Key_Comma:
@@ -148,23 +159,28 @@
                 if ((this->text()).isEmpty() || textBeforeCursor.endsWith(Delimiter)
                     || textBeforeCursor.endsWith(Semicolon)) {
                     keyEvent->ignore();
+                    eventHandled = true;
                 }
                 else {
                     // Generate custom keyevent for Delimiter("; ") and 
                     // forward to the base class to handle.
                     QKeyEvent delimiterKeyEvent(keyEvent->type(), keyEvent->key(),
-                    keyEvent->modifiers(), Delimiter);
+                                                keyEvent->modifiers(), Delimiter);
                     NmHtmlLineEdit::keyPressEvent(&delimiterKeyEvent);
+                    eventHandled = true;
                 }
             }
-        break;
+            break;
 
         default:
             NmHtmlLineEdit::keyPressEvent(keyEvent);
-        break;
+            eventHandled = true;
+            break;      
         }
     }
-    else {
+    
+    // If event is not handled, forward to the base class to handle.
+    if (!eventHandled) {
         NmHtmlLineEdit::keyPressEvent(keyEvent);
     }
 }
@@ -176,9 +192,11 @@
 */
 void NmRecipientLineEdit::inputMethodEvent(QInputMethodEvent *event)
 {
+	bool eventHandled = false;
+	
     if (event) {
         QString eventText = event->commitString();
-		
+
         if (!eventText.isEmpty() || event->replacementLength()) {
             // If typed charater from virtual keyboard is "," or ";"
             if (eventText.contains(CommaOrSemicolon)) {
@@ -189,23 +207,21 @@
                 if ((this->text()).isEmpty() || textBeforeCursor.endsWith(Delimiter)
                     || textBeforeCursor.endsWith(Semicolon)) {
                     event->ignore();
+                    eventHandled = true;
                 }
                 else {
                     // Modify event with Delimiter("; ") and forward to the base class to handle.
                     event->setCommitString(Delimiter, event->replacementStart(),
                                            event->replacementLength()); 
                     NmHtmlLineEdit::inputMethodEvent(event);
+                    eventHandled = true;
                 }
             }
-            else {  
-                NmHtmlLineEdit::inputMethodEvent(event);
-            }
         }
-        else { 
-            NmHtmlLineEdit::inputMethodEvent(event);
-        }
     }
-    else {   
+
+    // If event is not handled, forward to the base class to handle.
+    if (!eventHandled) {
         NmHtmlLineEdit::inputMethodEvent(event);
     }
 }
@@ -241,7 +257,8 @@
                     // Form the item into Qmail NmAddress format.
                     NmAddress recipient;
                     recipient.setAddress(itemInLineedit);
-                    recipient.setDisplayName(itemInLineedit);
+                    // no display name info available, so don't us it
+                    recipient.setDisplayName(QString()); 
                     // Add this NmAddress formated lineedit item into mEmailAddressList.
                     mEmailAddressList.append(recipient);  
                 }
@@ -251,7 +268,8 @@
             // Form the item into Qmail NmAddress format.
             NmAddress recipient;
             recipient.setAddress(itemInLineedit);
-            recipient.setDisplayName(itemInLineedit);           
+            // no display name info available, so don't us it
+            recipient.setDisplayName(QString()); 
             // Add this NmAddress formated lineedit item into mEmailAddressList.
             mEmailAddressList.append(recipient);  
         }
--- a/emailuis/nmailuiwidgetsplugin/nmailuiwidgetsplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmailuiwidgetsplugin/nmailuiwidgetsplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -25,6 +25,8 @@
 
 SOURCES += src/nmailuiwidgetsplugin.cpp
 
+LIBS += -leuser
+
 symbian*: {
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = ALL \
--- a/emailuis/nmframeworkadapter/inc/nmframeworkadapter.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmframeworkadapter.h	Mon May 03 12:23:15 2010 +0300
@@ -23,6 +23,9 @@
 #include <nmdataplugininterface.h>
 #include <CFSMailCommon.h>
 #include <MFSMailEventObserver.h>
+#ifdef Q_OS_SYMBIAN
+#include <xqsharablefile.h>
+#endif
 
 class NmMailbox;
 class NmMessage;
@@ -87,6 +90,12 @@
         const NmId &folderId,
         const NmId &messageId,
         const NmId &messagePartId);
+    
+    XQSharableFile messagePartFile(
+            const NmId &mailboxId,
+            const NmId &folderId,
+            const NmId &messageId,
+            const NmId &messagePartId);
            
     NmId getStandardFolderId(
             const NmId& mailbox,
@@ -94,6 +103,10 @@
 
     int refreshMailbox(NmId mailboxId);
 
+    int goOnline(const NmId& mailboxId);
+    
+    int goOffline(const NmId& mailboxId);
+
     int contentToMessagePart(
             const NmId &mailboxId,
             const NmId &folderId,
@@ -153,6 +166,17 @@
     
     NmConnectState connectionState(const NmId& mailboxId) const;
     
+    int getFolderById(
+            const NmId &mailboxId, 
+            const NmId &folderId, 
+            NmFolder *&folder );
+			
+	int listMessages(
+            const NmId& mailboxId,
+            const NmId& folderId,
+            QList<NmMessageEnvelope*> &messageMetaDataList,
+            const int maxAmountOfEnvelopes);
+			
 signals:
     void mailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds);
     void messageEvent(
@@ -162,8 +186,8 @@
             const NmId& mailboxId); //added to provide mailboxId
     
     void syncStateEvent(
-            NmSyncState state,
-            const NmId mailboxId);
+        NmSyncState state,
+        const NmOperationCompletionEvent &event );
     
     void connectionEvent(NmConnectState state, const NmId mailboxId);
 
@@ -184,7 +208,8 @@
     void listMessagesL(  
             const NmId &mailboxId,
             const NmId &folderId,
-            QList<NmMessageEnvelope*> &messageMetaDataList);
+            QList<NmMessageEnvelope*> &messageMetaDataList, 
+            const int maxAmountOfEnvelopes);
     
     NmId getMailboxIdByMailMsgId(TFSMailMsgId mailbox);
 
@@ -201,6 +226,10 @@
 
     int RefreshMailboxL(NmId mailboxId);
     
+    int GoOnlineL(const NmId& mailboxId);
+
+    int GoOfflineL(const NmId& mailboxId);
+
     void handleMailboxEvent(
             TFSMailMsgId mailbox,
             NmMailboxEvent event);
@@ -213,6 +242,11 @@
     
     void handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox);
     
+	void getFolderByIdL(
+            const NmId& mailboxId, 
+            const NmId& folderId, 
+            NmFolder*& unreadCount );		
+	
 private:
     CFSMailClient*  mFSfw;//singleton, not owned
 };
--- a/emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -21,6 +21,12 @@
 // Qt
 #include <QtPlugin>
 #include <QByteArray>
+#include <QTextCodec>
+#include <QRegExp>
+#include <QTimer>
+#ifdef Q_OS_SYMBIAN
+#include <xqsharablefile.h>
+#endif
 // Orbit
 
 // nmailuiengine
--- a/emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -40,8 +40,12 @@
 public: // from MFSMailRequestObserver
     virtual void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
     
-protected slots:
-    virtual void runAsyncOperation();
+protected:
+    virtual void doRunAsyncOperation();
+    virtual void doCancelOperation();
+
+private:
+    void doRunAsyncOperationL();	
 
 private:
     const NmMessage &mMessage;
--- a/emailuis/nmframeworkadapter/inc/nmfwacheckoutboxoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwacheckoutboxoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -35,11 +35,11 @@
     
     virtual bool getMessageId(NmId &messageId) const;
 
-private slots:
-    virtual void runAsyncOperation();
+private:
+    virtual void doRunAsyncOperation();
     
 private:
-    void runAsyncOperationL();
+    void doRunAsyncOperationL();
 
 private:
     NmId mMailboxId;
--- a/emailuis/nmframeworkadapter/inc/nmfwaforwardmessagecreationoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwaforwardmessagecreationoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -31,8 +31,8 @@
     
     ~NmFwaForwardMessageCreationOperation();
     
-protected slots:
-    void runAsyncOperation();
+protected:
+    void doRunAsyncOperation();
     
 private:
     NmId mOriginalMessageId;
--- a/emailuis/nmframeworkadapter/inc/nmfwamessagecreationoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwamessagecreationoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -45,8 +45,8 @@
 
     virtual void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
-protected slots:
-    virtual void runAsyncOperation();
+protected:
+    virtual void doRunAsyncOperation();
     
 protected:
     virtual void doCompleteOperation();
--- a/emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -40,8 +40,8 @@
     // from MFSMailRequestObserver
     void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
-protected slots:
-    virtual void runAsyncOperation();
+protected:
+    virtual void doRunAsyncOperation();
     
 protected:
     virtual void doCancelOperation();
--- a/emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -41,14 +41,14 @@
     // from MFSMailRequestObserver
     void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
-protected slots:
-    void runAsyncOperation();
+protected:
+    void doRunAsyncOperation();
     
 protected:
     void doCancelOperation();
     
 private:
-    void runAsyncOperationL();
+    void doRunAsyncOperationL();
 
 private:
     NmId mMailboxId;
--- a/emailuis/nmframeworkadapter/inc/nmfwamessagesendingoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwamessagesendingoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -25,6 +25,7 @@
 #include <MFSMailRequestObserver.h>
 
 class NmMessage;
+class NmDataPluginInterface;
 class CFSMailClient;
 
 class NmFwaMessageSendingOperation : public NmMessageSendingOperation,
@@ -32,31 +33,36 @@
 {
     Q_OBJECT
 public:
-    NmFwaMessageSendingOperation(NmMessage *message,
+    NmFwaMessageSendingOperation(NmDataPluginInterface &pluginInterface,
+                                 NmMessage *message,
                                  CFSMailClient &mailClient);
     
     ~NmFwaMessageSendingOperation();
 
-    const NmMessage *getMessage();
+    const NmMessage *getMessage() const;
 
     // from MFSMailRequestObserver
     void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
 protected slots:
-    void runAsyncOperation();
+    void handleCompletedSaveOperation(int error);
     
 protected:
+    void doRunAsyncOperation();
     void doCompleteOperation();
-
     void doCancelOperation();
 
 private:
-    void runAsyncOperationL();
+    int saveMessageWithSubparts();
+    int sendMessageL();
 
 private:
-    NmMessage *mMessage;
+    NmDataPluginInterface &mPluginInterface;
+    NmOperation *mSaveOperation;    // Owned
+    NmMessage *mMessage;            // Owned
     CFSMailClient &mMailClient;
     TInt mRequestId;
+    bool mSaved;
 };
 
 #endif /* NMFWAMESSAGESENDINGOPERATION_H_ */
--- a/emailuis/nmframeworkadapter/inc/nmfwaremoveattachmentoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwaremoveattachmentoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -21,11 +21,13 @@
 #include <QObject>
 #include <nmoperation.h>
 #include <nmcommon.h>
+#include <MFSMailRequestObserver.h>
 
 class NmMessage;
 class CFSMailClient;
 
-class NmFwaRemoveAttachmentOperation : public NmOperation
+class NmFwaRemoveAttachmentOperation : public NmOperation,
+                                       public MFSMailRequestObserver
 {
     Q_OBJECT
 public:
@@ -35,13 +37,23 @@
     
     virtual ~NmFwaRemoveAttachmentOperation();
 
-protected slots:
-    virtual void runAsyncOperation();
+public: // from MFSMailRequestObserver
+    virtual void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
+    
+protected:
+    virtual void doRunAsyncOperation();
 
+protected:
+    virtual void doCancelOperation();
+    
+private:
+	void doRunAsyncOperationL();
+    
 private:
     const NmMessage &mMessage;
     NmId mAttachmentPartId;
     CFSMailClient &mMailClient;
+    TInt mRequestId;
 };
 
 #endif /* NMFWAREMOVEATTACHMENTOPERATION_H_ */
--- a/emailuis/nmframeworkadapter/inc/nmfwareplymessagecreationoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwareplymessagecreationoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -32,8 +32,8 @@
     
     ~NmFwaReplyMessageCreationOperation();
     
-protected slots:
-    void runAsyncOperation();
+protected:
+    void doRunAsyncOperation();
     
 private:
     NmId mOriginalMessageId;
--- a/emailuis/nmframeworkadapter/inc/nmfwastoreenvelopesoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwastoreenvelopesoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -39,8 +39,8 @@
     // from MFSMailRequestObserver
     void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
-protected slots:
-    void runAsyncOperation();
+protected:
+    void doRunAsyncOperation();
     
 protected:
     void doCancelOperation();
--- a/emailuis/nmframeworkadapter/inc/nmfwastoremessageoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/inc/nmfwastoremessageoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -38,8 +38,8 @@
     
     virtual void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
 
-protected slots:
-    virtual void runAsyncOperation();
+protected:
+    virtual void doRunAsyncOperation();
     
 protected:
     virtual void doCompleteOperation();
--- a/emailuis/nmframeworkadapter/nmframeworkadapter.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/nmframeworkadapter.pro	Mon May 03 12:23:15 2010 +0300
@@ -13,7 +13,7 @@
 #
 # Description: 
 #
-# Version : %version: 22 %
+# Version : %version: 24 %
 TEMPLATE = lib
 TARGET = nmframeworkadapter
 
@@ -50,6 +50,10 @@
 
 RESOURCES +=
 
+LIBS += -leuser
+LIBS += -llibc
+LIBS += -lefsrv
+
 symbian*: {
     INCLUDEPATH += /epoc32/include/ecom \
     ../../emailservices/emailframework/inc \
@@ -72,6 +76,7 @@
 	LIBS += -lfsmailframework
 	LIBS += -lfsfwcommonlib
 	LIBS += -lcharconv
+    LIBS += -lxqserviceutil 
 
 	BLD_INF_RULES.prj_exports += \
     "../rom/nmframeworkadapter.iby             CORE_APP_LAYER_IBY_EXPORT_PATH(nmframeworkadapter.iby)"
--- a/emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp	Mon May 03 12:23:15 2010 +0300
@@ -153,6 +153,44 @@
 }
 
 /*!
+    Returns folder
+
+    \param mailboxId Id of the mailbox containing the folder.
+    \param folderId Id of the requested folder
+    \param message Pointer reference to receive a folder object, ownership is transferred.
+
+    \return Error code.
+ */
+int NmFrameworkAdapter::getFolderById( const NmId& mailboxId, const NmId& folderId, NmFolder*& folder )
+    {
+    TRAPD(err, getFolderByIdL( mailboxId, folderId, folder ) );
+    return err;
+    }
+
+/*!
+    Leaving version of getFolderById function
+ */
+void NmFrameworkAdapter::getFolderByIdL( const NmId& mailboxId, const NmId& folderId, NmFolder*& folder )
+    {
+    CFSMailFolder* fsFolder(NULL);
+	if (mFSfw)
+		{
+    	fsFolder = mFSfw->GetFolderByUidL(TFSMailMsgId(mailboxId), TFSMailMsgId(folderId)); 
+    	if (fsFolder)
+        	{
+        	folder = fsFolder->GetNmFolder();
+        	delete fsFolder;
+        	fsFolder = NULL;
+        	}
+    	else
+    	    {
+            User::Leave(KErrNotFound);
+    	    }
+		}
+    }
+
+
+/*!
     Returns message from the store together with whole message part structure
 
     \param mailboxId Id of the mailbox containing the folder.
@@ -243,21 +281,51 @@
     const NmId &folderId,
     QList<NmMessageEnvelope*> &messageEnvelopeList)
 {
-    TRAPD(err, listMessagesL(mailboxId,folderId,messageEnvelopeList));
+    TRAPD(err, listMessagesL(mailboxId,folderId,messageEnvelopeList, nmMaxItemsInMessageList));
     return err;
 }
 
+int NmFrameworkAdapter::listMessages(
+        const NmId& mailboxId,
+        const NmId& folderId,
+        QList<NmMessageEnvelope*> &messageEnvelopeList,
+        const int maxAmountOfEnvelopes)
+    {
+    TInt err = KErrNone;
+    TRAP(err, listMessagesL(mailboxId,folderId, messageEnvelopeList,maxAmountOfEnvelopes) );
+    return err;
+    }
+
 /*!
     Leaving version of list messages
  */
 void NmFrameworkAdapter::listMessagesL(
         const NmId &mailboxId,
         const NmId &folderId,
-        QList<NmMessageEnvelope*> &messageEnvelopeList)
+        QList<NmMessageEnvelope*> &messageEnvelopeList,
+        const int maxAmountOfEnvelopes)
 {
     CFSMailBox * currentMailbox(NULL);
     CFSMailFolder* folder(NULL);
 
+    //If we are requesting 0 or less mails so we can return
+    if( maxAmountOfEnvelopes <= 0)
+        {
+        return;
+        }
+
+    int blockSize = nmListMessagesBlock;
+    int maxLimit = nmMaxItemsInMessageList;
+    if( maxAmountOfEnvelopes < nmMaxItemsInMessageList )
+        {
+        maxLimit = maxAmountOfEnvelopes;
+        if(maxAmountOfEnvelopes < nmListMessagesBlock)
+            {
+            blockSize = maxAmountOfEnvelopes;
+            }
+        }
+   
+
     currentMailbox = mFSfw->GetMailBoxByUidL(mailboxId);
     if (!currentMailbox) {
         User::Leave(KErrNotFound);
@@ -292,12 +360,12 @@
             //Message list is fetched in blocks to prevent OOM in protocol plugin side
             bool moreMessagesToFollow(false);
             moreMessagesToFollow = iterator->NextL(
-                TFSMailMsgId(), nmListMessagesBlock, messages);
-            for ( int i = nmListMessagesBlock;
-                  i < nmMaxItemsInMessageList && moreMessagesToFollow ;
-                  i += nmListMessagesBlock ) {
+                TFSMailMsgId(), blockSize, messages);
+            for ( int i = blockSize;
+                  i < maxLimit && moreMessagesToFollow ;
+                  i += blockSize ) {
                 moreMessagesToFollow = iterator->NextL(
-                    messages[i-1]->GetMessageId(), nmListMessagesBlock, messages);
+                    messages[i-1]->GetMessageId(), blockSize, messages);
             }
 
             //Add all found emails to the result list
@@ -343,7 +411,7 @@
     \param mailboxId Id of the mailbox containing the folder.
     \param folderId Id of the folder containing the message.
     \param messageId Id of message containing the message parts
-    \param messagePartIds array of ids to be fetched
+    \param messagePartId id of message part
 
     \return An NmOperation object for the operation, ownership is transferred to caller
  */
@@ -359,6 +427,46 @@
 }
 
 /*!
+    Returns sharable file handle to message part content
+
+    \param mailboxId Id of the mailbox containing the folder.
+    \param folderId Id of the folder containing the message.
+    \param messageId Id of message containing the message parts
+    \param messagePartId id of message part
+
+    \return XQSharableFile, sharable file object
+ */
+XQSharableFile NmFrameworkAdapter::messagePartFile(
+        const NmId &mailboxId,
+        const NmId &folderId,
+        const NmId &messageId,
+        const NmId &messagePartId)
+{
+    XQSharableFile retFile;
+    TFSMailDetails details(EFSMsgDataEnvelope);
+    TFSMailMsgId fsMboxId(mailboxId);
+    TFSMailMsgId fsFolderId(folderId);
+    TFSMailMsgId fsMsgId(messageId);
+    TFSMailMsgId fsMsgPartId(messagePartId);
+    
+    CFSMailMessage* fsMessage = NULL;
+    int error = KErrNone;
+    TRAP(error, fsMessage = mFSfw->GetMessageByUidL(fsMboxId, fsFolderId,
+            fsMsgId, details) );
+    
+    CFSMailMessagePart* fsMessagePart = NULL;
+    if (fsMessage && error == KErrNone) {
+        TRAP(error, fsMessagePart = fsMessage->ChildPartL(fsMsgPartId) );
+        
+    }
+    if (fsMessagePart && error == KErrNone) {
+        RFile file = fsMessagePart->GetContentFileL();
+        retFile.setHandle(file);
+    }
+    return retFile;
+}
+
+/*!
     Get the id of a standard folder.
 
     \param mailboxId Id of the mailbox containing the folder.
@@ -424,6 +532,30 @@
 }
 
 /*!
+    Connect to mailbox if not already connected and refresh.
+
+    \param mailboxId Id of the mailbox.
+    \return Async request id or error code.
+ */
+int NmFrameworkAdapter::goOnline(const NmId& mailboxId)
+{
+    TRAPD(err, GoOnlineL(mailboxId)); // return value not used
+    return ( err == KErrNone ) ? NmNoError : NmGeneralError;
+}
+
+/*!
+    Disconnect to mailbox if not already disconnected.
+
+    \param mailboxId Id of the mailbox.
+    \return Async request id or error code.
+ */
+int NmFrameworkAdapter::goOffline(const NmId& mailboxId)
+{
+    TRAPD(err, GoOfflineL(mailboxId)); // return value not used
+    return ( err == KErrNone ) ? NmNoError : NmGeneralError;
+}
+
+/*!
     Sets content for the given message part. Client shouldn't create
     message part on its own. Instead it should be requested by calling
     e.g. getMessageById.
@@ -484,8 +616,19 @@
             }
 
             if (contentType.startsWith(NmContentTypeTextHtml) || contentType.contains( NmContentDescrAttachmentHtml )) {
-                messagePart.setTextContent( QString::fromUtf8(reinterpret_cast<const char*>(
-                        dataPtr.Ptr()), fileSize), contentType);
+                QRegExp rxlen("(?:charset=)(?:\"?)([\\-\\_a-zA-Z0-9]+)", Qt::CaseInsensitive);
+                QString charset;
+                int pos = rxlen.indexIn(contentType);
+                if (pos > -1) {
+                    charset = rxlen.cap(1);
+                }
+                QByteArray msgBytes = QByteArray(reinterpret_cast<const char*>(dataPtr.Ptr()), fileSize);
+                QTextCodec *codec = QTextCodec::codecForName(charset.toAscii());
+                if (!codec) {
+                    codec = QTextCodec::codecForName("iso-8859-1");
+                }
+                QString encodedStr = codec->toUnicode(msgBytes); 
+                messagePart.setTextContent(encodedStr, contentType);           
             }
             else {
                 messagePart.setBinaryContent(QByteArray(
@@ -824,7 +967,7 @@
 NmMessageSendingOperation *NmFrameworkAdapter::sendMessage(
     NmMessage *message)
 {
-    NmFwaMessageSendingOperation *oper = new NmFwaMessageSendingOperation(message, *mFSfw);
+    NmMessageSendingOperation *oper = new NmFwaMessageSendingOperation(*this, message, *mFSfw);
 	return oper;
 }
 
@@ -963,6 +1106,40 @@
 }
 
 /*!
+   Leaving Go Online function
+ */
+int NmFrameworkAdapter::GoOnlineL(const NmId& mailboxId)
+{
+    int result(KErrNotFound);
+    CFSMailBox *currentMailbox(NULL);
+    currentMailbox = mFSfw->GetMailBoxByUidL(mailboxId);
+    if(currentMailbox) {
+        CleanupStack::PushL(currentMailbox);
+        currentMailbox->GoOnlineL();
+        CleanupStack::PopAndDestroy(currentMailbox);
+        currentMailbox = NULL;
+    }
+    return result;
+}
+
+/*!
+   Leaving Go Offline function
+ */
+int NmFrameworkAdapter::GoOfflineL(const NmId& mailboxId)
+{
+	int result(KErrNotFound);
+    CFSMailBox *currentMailbox(NULL);
+    currentMailbox = mFSfw->GetMailBoxByUidL(mailboxId);
+    if(currentMailbox) {
+        CleanupStack::PushL(currentMailbox);
+		currentMailbox->GoOfflineL();
+        CleanupStack::PopAndDestroy(currentMailbox);
+        currentMailbox = NULL;
+    }
+    return result;
+}
+
+/*!
    handles mailbox related events
  */
 void NmFrameworkAdapter::handleMailboxEvent( TFSMailMsgId mailbox, NmMailboxEvent event)
@@ -1051,26 +1228,36 @@
 void NmFrameworkAdapter::handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox)
 {
     TSSMailSyncState* state = static_cast<TSSMailSyncState*>( param1 );
+    NmOperationCompletionEvent event;
+    event.mMailboxId = NmConverter::mailMsgIdToNmId(mailbox);
 
-    NmId id = NmConverter::mailMsgIdToNmId(mailbox);
     switch(*state)
         {
         case StartingSync:
             {
-            emit syncStateEvent(Synchronizing, id);
+            event.mCompletionCode = NmNoError;
+            emit syncStateEvent(Synchronizing, event);
+            break;
             }
-            break;
         case FinishedSuccessfully:
             {
-            emit syncStateEvent(SyncComplete, id);
+            event.mCompletionCode = NmNoError;
+            emit syncStateEvent(SyncComplete, event);
+            break;
             }
+        case PasswordNotVerified:
+            {
+            event.mCompletionCode = NmAuthenticationError;
+            emit syncStateEvent(SyncComplete, event);
             break;
+            }
         case SyncError:
         default:
             {
-            emit syncStateEvent(SyncComplete,id);
+            event.mCompletionCode = NmServerConnectionError;
+            emit syncStateEvent(SyncComplete, event);
+            break;
             }
-            break;
         };
 }
 Q_EXPORT_PLUGIN(NmFrameworkAdapter)
--- a/emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -52,30 +52,38 @@
  */
 NmFwaAddAttachmentsOperation::~NmFwaAddAttachmentsOperation()
 {
+    doCancelOperation();
     mFileList.clear();
     mRequestIds.clear();
-    doCancelOperation();
 }
 
 /*!
-    Slot, called after base object construction via timer event, runs the
+    Called after base object construction via timer event, runs the
     async operation.
     
     \sa NmOperation
  */
-void NmFwaAddAttachmentsOperation::runAsyncOperation()
+void NmFwaAddAttachmentsOperation::doRunAsyncOperation()
+{
+    TRAPD(err, doRunAsyncOperationL());
+    if (err != KErrNone) {
+        completeOperation(NmGeneralError);
+    }
+}
+
+/*!
+    Leaving version of doRunAsyncOperationL
+ */
+void NmFwaAddAttachmentsOperation::doRunAsyncOperationL()
 {
     CFSMailMessage *msg = NULL;
-
-    TRAPD(err, msg = CFSMailMessage::NewL(mMessage));
+    msg = CFSMailMessage::NewL(mMessage);
 
-    if (err == KErrNone) {
-        // Go through the attachment list and add those into mail message one by one.
-        for (int i=0; i<mFileList.count(); ++i) {
-            HBufC *fileName = NmConverter::qstringToHBufCLC(mFileList.at(i));
-            TRAP(err, mRequestIds.append(msg->AddNewAttachmentL(*fileName, *this)));
-            CleanupStack::PopAndDestroy(fileName);
-        }
+    // Go through the attachment list and add those into mail message one by one.
+    for (int i=0; i<mFileList.count(); ++i) {
+        HBufC *fileName = NmConverter::qstringToHBufCLC(mFileList.at(i));
+        mRequestIds.append(msg->AddNewAttachmentL(*fileName, *this));
+        CleanupStack::PopAndDestroy(fileName);
     }
     delete msg;
     msg = NULL;
@@ -129,12 +137,18 @@
                 mFileList.removeAt(i);
             }
             else if (status == TFSProgress::EFSStatus_RequestCancelled) {
+                completeOperationPart(mFileList.at(i),
+                                      NULL,
+                                      NmCancelError);
                 mFileList.clear();
                 mRequestIds.clear();
                 operationCancelled();
                 err = NmCancelError;
             }
             else {
+                completeOperationPart(mFileList.at(i),
+                                      NULL,
+                                      NmGeneralError);
                 mFileList.clear();
                 mRequestIds.clear();
                 err = NmGeneralError;
@@ -147,3 +161,16 @@
         completeOperation(err);
     }
 }
+
+/*!
+    Cancels the async operation. \sa NmOperation
+ */
+void NmFwaAddAttachmentsOperation::doCancelOperation()
+{
+    for (int i=0;i<mRequestIds.count();++i) {
+        if (mRequestIds[i] >= 0) {
+            TInt reqId = static_cast<TInt>(mRequestIds[i]);
+            TRAP_IGNORE(mMailClient.CancelL(reqId));
+        }
+    }
+}
--- a/emailuis/nmframeworkadapter/src/nmfwacheckoutboxoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwacheckoutboxoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -33,9 +33,9 @@
     doCancelOperation();
 }
 
-void NmFwaCheckOutboxOperation::runAsyncOperation()
+void NmFwaCheckOutboxOperation::doRunAsyncOperation()
 {
-    TRAPD(err, runAsyncOperationL());
+    TRAPD(err, doRunAsyncOperationL());
     
     if (err) {
         completeOperation(NmGeneralError);
@@ -53,7 +53,7 @@
     return mFound;
 }
 
-void NmFwaCheckOutboxOperation::runAsyncOperationL()
+void NmFwaCheckOutboxOperation::doRunAsyncOperationL()
 {
     int err = NmNotFoundError;
 
--- a/emailuis/nmframeworkadapter/src/nmfwaforwardmessagecreationoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwaforwardmessagecreationoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -30,7 +30,7 @@
 {
 }
 
-void NmFwaForwardMessageCreationOperation::runAsyncOperation()
+void NmFwaForwardMessageCreationOperation::doRunAsyncOperation()
 {
     const TFSMailMsgId mailMsgId(mMailboxId.pluginId32(), mMailboxId.id32());
 
--- a/emailuis/nmframeworkadapter/src/nmfwamessagecreationoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwamessagecreationoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -53,11 +53,11 @@
 }
 
 /*!
-    Slot, called after base object construction via timer event, runs the async operation.
+    Called after base object construction via timer event, runs the async operation.
     
     \sa NmOperation
  */
-void NmFwaMessageCreationOperation::runAsyncOperation()
+void NmFwaMessageCreationOperation::doRunAsyncOperation()
 {
     const TFSMailMsgId mailMsgId(mMailboxId.pluginId32(), mMailboxId.id32());
 
--- a/emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -39,7 +39,7 @@
     doCancelOperation();
 }
 
-void NmFwaMessageFetchingOperation::runAsyncOperation()
+void NmFwaMessageFetchingOperation::doRunAsyncOperation()
 {
     const TFSMailMsgId mailboxId(mMailboxId.pluginId32(), mMailboxId.id32());
     const TFSMailMsgId folderId(mFolderId.pluginId32(), mFolderId.id32());
--- a/emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -81,18 +81,18 @@
 /*!
 
  */
-void NmFwaMessagePartFetchingOperation::runAsyncOperation()
+void NmFwaMessagePartFetchingOperation::doRunAsyncOperation()
 {
-    TRAPD(err, runAsyncOperationL());
+    TRAPD(err, doRunAsyncOperationL());
     if (err != KErrNone) {
         completeOperation(NmGeneralError);
     }
 }
 
 /*!
-    Leaving version from runAsyncOperation
+    Leaving version from doRunAsyncOperation
  */
-void NmFwaMessagePartFetchingOperation::runAsyncOperationL()
+void NmFwaMessagePartFetchingOperation::doRunAsyncOperationL()
 {
     const TFSMailMsgId mailboxId(mMailboxId.pluginId32(), mMailboxId.id32());
     const TFSMailMsgId folderId(mFolderId.pluginId32(), mFolderId.id32());
--- a/emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwamessagesendingoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -33,12 +33,17 @@
     \param mailClient Reference to mail client object.
  */
 NmFwaMessageSendingOperation::NmFwaMessageSendingOperation(
+    NmDataPluginInterface &pluginInterface,
     NmMessage *message,
     CFSMailClient &mailClient) :
+        mPluginInterface(pluginInterface),
+        mSaveOperation(NULL),
         mMessage(message),
         mMailClient(mailClient),
-        mRequestId(NmNotFoundError)
+        mRequestId(NmNotFoundError),
+        mSaved(false)
 {
+    mMailClient.IncReferenceCount();
 }
 
 /*!
@@ -46,61 +51,49 @@
  */
 NmFwaMessageSendingOperation::~NmFwaMessageSendingOperation()
 {
+    delete mSaveOperation;
+
     doCancelOperation();
+    mMailClient.Close(); // decrease ref count
     delete mMessage;
 }
 
 /*!
     returns pointer to message, ownership is not transferred
  */
-const NmMessage *NmFwaMessageSendingOperation::getMessage()
+const NmMessage *NmFwaMessageSendingOperation::getMessage() const
 {
     return mMessage;
 }
 
 /*!
-    Slot, called after base object construction via timer event, runs the
+    Called after base object construction via timer event, runs the
     async operation.
     
     \sa NmOperation
  */
-void NmFwaMessageSendingOperation::runAsyncOperation()
+void NmFwaMessageSendingOperation::doRunAsyncOperation()
 {
-    TInt err (KErrNone);
-    TRAP(err, runAsyncOperationL());
-
-    if (err == KErrNotFound) {
-        completeOperation(NmNotFoundError);
-    }
-    else if (err != KErrNone){
-        completeOperation(NmGeneralError);
-    }
-    // err == KErrNone means everything went well and the operation is 
-    // proceeding
-}
+    int err = NmNoError;
+    
+    if (mSaved) {
+        TRAPD(trapped, err = sendMessageL());
 
-/*!
-    Leaving version of runAsyncOperation
- */
-void NmFwaMessageSendingOperation::runAsyncOperationL()
-{
-    CFSMailBox *currentMailbox( NULL );
-
-    if (!mMessage) {
-        User::Leave( KErrNotFound );
+        if (trapped == KErrNotFound) {
+            err = NmNotFoundError;
+        }
+        else if (trapped != KErrNone) {
+            err = NmGeneralError;
+        }
     }
-    TFSMailMsgId mailboxId = NmConverter::nmIdToMailMsgId(mMessage->mailboxId());
-    currentMailbox = mMailClient.GetMailBoxByUidL(mailboxId);
-    CleanupStack::PushL(currentMailbox);
-    if (!currentMailbox) {
-        User::Leave( KErrNotFound );
+    else {
+        err = saveMessageWithSubparts();
     }
 
-    CFSMailMessage *msg = CFSMailMessage::NewL(*mMessage); // no leave -> msg != NULL
-    CleanupStack::PushL(msg);
-	
-    mRequestId = currentMailbox->SendMessageL(*msg, *this);
-    CleanupStack::PopAndDestroy(2); // msg, currentMailbox
+    if (err != NmNoError) {
+        completeOperation(err);
+    }
+    // err == NmNoError means everything went well and the operation is proceeding
 }
 
 /*!
@@ -145,3 +138,73 @@
         }
     }
 }
+
+/*!
+    Handle completed store message operation
+ */
+void NmFwaMessageSendingOperation::handleCompletedSaveOperation(int error)
+{
+    if (error == NmNoError) {
+        mTimer->stop();
+        mTimer->start(1);
+        mSaved = true;
+    }
+    else {
+        completeOperation(NmGeneralError);
+    }
+}
+
+/*!
+    Saves a message with its subparts (into message store).
+*/
+int NmFwaMessageSendingOperation::saveMessageWithSubparts()
+{
+    int ret = NmNotFoundError;
+    
+    if (mMessage) {
+        delete mSaveOperation;
+        mSaveOperation = NULL;
+        
+        mSaveOperation = mPluginInterface.saveMessageWithSubparts(*mMessage);
+        
+        if (mSaveOperation) {
+            connect(mSaveOperation, SIGNAL(operationCompleted(int)), this,
+                SLOT(handleCompletedSaveOperation(int)));
+            ret = NmNoError;
+        }
+        else {
+            ret = NmGeneralError;
+        }
+            
+    }
+
+    return ret;
+}
+
+/*!
+    Sends the message.
+ */
+int NmFwaMessageSendingOperation::sendMessageL()
+{
+    int ret = NmNotFoundError;
+    
+    if (mMessage) {
+        TFSMailMsgId mailboxId = NmConverter::nmIdToMailMsgId(mMessage->mailboxId());
+        CFSMailBox *currentMailbox( NULL );
+        currentMailbox = mMailClient.GetMailBoxByUidL(mailboxId);
+        CleanupStack::PushL(currentMailbox);
+        if (!currentMailbox) {
+            User::Leave( KErrNotFound );
+        }
+    
+        CFSMailMessage *msg = CFSMailMessage::NewL(*mMessage); // no leave -> msg != NULL
+        CleanupStack::PushL(msg);
+        
+        mRequestId = currentMailbox->SendMessageL(*msg, *this);
+        CleanupStack::PopAndDestroy(2); // msg, currentMailbox
+        
+        ret = NmNoError;
+    }
+    
+    return ret;
+}
--- a/emailuis/nmframeworkadapter/src/nmfwaremoveattachmentoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwaremoveattachmentoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -53,50 +53,94 @@
 }
 
 /*!
-    Slot, called after base object construction via timer event, runs the
+    Called after base object construction via timer event, runs the
     async operation.
     
     \sa NmOperation
  */
-void NmFwaRemoveAttachmentOperation::runAsyncOperation()
+void NmFwaRemoveAttachmentOperation::doRunAsyncOperation()
+{
+    TRAPD(err, doRunAsyncOperationL());
+    if (err != KErrNone) {
+        completeOperation(NmGeneralError);
+    }
+}
+
+/*!
+    Leaving function for async operation
+    \sa NmOperation
+ */
+void NmFwaRemoveAttachmentOperation::doRunAsyncOperationL()
 {
     CFSMailMessage *msg = NULL;
 
-    TRAPD(err, msg = CFSMailMessage::NewL(mMessage));
-    
-    if (err == KErrNone) {
+    msg = CFSMailMessage::NewL(mMessage);
     
-        // Get attachment list from the message
-        RPointerArray<CFSMailMessagePart> attachments;
-        attachments.Reset();
-        TRAP(err, msg->AttachmentListL(attachments));
+    // Get attachment list from the message
+    RPointerArray<CFSMailMessagePart> attachments;
+    attachments.Reset();
+    msg->AttachmentListL(attachments);
         
-        if (err == KErrNone) {
-            err = KErrNotFound;
-            
-            // Search through all attachments from message and remove attachment
-            // if message part match.
-            for (int i=0; i<attachments.Count(); ++i) {
-                if (mAttachmentPartId.id() == attachments[i]->GetPartId().GetNmId().id()) {
-                    TRAP(err, msg->RemoveChildPartL(attachments[i]->GetPartId()));
-                    break;
-                }
-            }
+    // Search through all attachments from message and remove attachment
+    // if message part match.
+    for (int i=0; i<attachments.Count(); ++i) {
+        if (mAttachmentPartId.id() == attachments[i]->GetPartId().GetNmId().id()) {
+            mRequestId = msg->RemoveChildPartL(attachments[i]->GetPartId(),*this);
+            break;
         }
-        attachments.ResetAndDestroy();
     }
+    attachments.ResetAndDestroy();
     
     delete msg;
     msg = NULL;
+}
+
+/*!
+    Asynchronous request response message.
     
-    // Send signal for completion of the operation
-    if (err == KErrNone) {
-        completeOperation(NmNoError);
-    }
-    else if (err == KErrNotFound) {
-        completeOperation(NmNotFoundError);
+    \param aEvent Plugin event description.
+    \param aRequestId Request id of asyncronous operation.
+ */
+void NmFwaRemoveAttachmentOperation::RequestResponseL(TFSProgress aEvent,
+                                                      TInt aRequestId)
+{
+    if (aRequestId == mRequestId) {
+        TFSProgress::TFSProgressStatus status = aEvent.iProgressStatus;
+        if (status == TFSProgress::EFSStatus_RequestComplete) {
+            // Request completed. Let's check the result
+            switch (aEvent.iError) {
+                case KErrNone: {
+                    completeOperation(NmNoError);
+                    break;
+                }
+                case KErrNotFound:
+                    completeOperation(NmNotFoundError);
+                    break;
+                default:
+                    completeOperation(NmGeneralError);
+            }
+        }
+        else if (status == TFSProgress::EFSStatus_RequestCancelled) {
+            operationCancelled();
+            completeOperation(NmCancelError);
+        }
+        else {
+            completeOperation(NmGeneralError);
+        }
     }
     else {
         completeOperation(NmGeneralError);
     }
 }
+
+/*!
+    Cancels the async operation. \sa NmOperation
+ */
+void NmFwaRemoveAttachmentOperation::doCancelOperation()
+{
+    if (mRequestId >= 0) {
+        TRAP_IGNORE(mMailClient.CancelL(mRequestId));
+        mRequestId = KErrNotFound;
+    }
+}
+
--- a/emailuis/nmframeworkadapter/src/nmfwareplymessagecreationoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwareplymessagecreationoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -32,7 +32,7 @@
 {
 }
 
-void NmFwaReplyMessageCreationOperation::runAsyncOperation()
+void NmFwaReplyMessageCreationOperation::doRunAsyncOperation()
 {
     const TFSMailMsgId mailMsgId(mMailboxId.pluginId32(), mMailboxId.id32());
 
--- a/emailuis/nmframeworkadapter/src/nmfwastoreenvelopesoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwastoreenvelopesoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -36,9 +36,9 @@
     NMLOG("NmFwaStoreEnvelopesOperation::~NmFwaStoreEnvelopesOperation() --->");
 }
 
-void NmFwaStoreEnvelopesOperation::runAsyncOperation()
+void NmFwaStoreEnvelopesOperation::doRunAsyncOperation()
 {
-    NMLOG("NmFwaStoreEnvelopesOperation::runAsyncOperation() <---");
+    NMLOG("NmFwaStoreEnvelopesOperation::doRunAsyncOperation() <---");
     const TFSMailMsgId mailboxId(mMailboxId.pluginId32(), mMailboxId.id32());
     CFSMailBox *mailbox(NULL);
     TRAP_IGNORE( mailbox = mMailClient.GetMailBoxByUidL(mailboxId) );
@@ -57,7 +57,7 @@
         delete mailbox;
         mailbox = NULL;
     }
-    NMLOG("NmFwaStoreEnvelopesOperation::runAsyncOperation() --->");
+    NMLOG("NmFwaStoreEnvelopesOperation::doRunAsyncOperation() --->");
 }
 
 void NmFwaStoreEnvelopesOperation::doCancelOperation()
--- a/emailuis/nmframeworkadapter/src/nmfwastoremessageoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmframeworkadapter/src/nmfwastoremessageoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -33,7 +33,7 @@
     delete mMessage;
 }
 
-void NmFwaStoreMessageOperation::runAsyncOperation()
+void NmFwaStoreMessageOperation::doRunAsyncOperation()
 {
     TInt err = KErrNone;
 
--- a/emailuis/nmhswidget/inc/nmhswidget.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/inc/nmhswidget.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * All rights reserved.
  * This component and the accompanying materials are made available
  * under the terms of "Eclipse Public License v1.0"
@@ -19,6 +19,7 @@
 #define NMHSWIDGET_H
 
 #include <hbwidget.h>
+#include "nmcommon.h"
 
 class NmHsWidgetEmailEngine;
 class NmHsWidgetTitleRow;
@@ -28,6 +29,8 @@
 class NmHsWidget : public HbWidget
 {
     Q_OBJECT
+    
+    Q_PROPERTY(QString accountId READ accountId WRITE setAccountId)
   
 public:
     NmHsWidget(QGraphicsItem *parent = 0, Qt::WindowFlags flags = 0);
@@ -35,23 +38,28 @@
     
 public slots:
     void onInitialize();
+    void onShow();
+    void onHide();
     void onUninitialize();
     
-    void updateAccountName(const QString& accountName);
-    void updateUnreadCount(const int& unreadCount);
+
     void updateMailData();
+    void setAccountId(const QString &text);
+    QString accountId() const;
 
 protected:
     void updateMailRowsList(int mailCount);
     void paint(QPainter *painter, 
                const QStyleOptionGraphicsItem *option, 
                QWidget *widget);
+    void mousePressEvent(QGraphicsSceneMouseEvent *event);
     
 private:
     NmHsWidgetEmailEngine* mEngine;
     QGraphicsLinearLayout *mRowLayout;
     NmHsWidgetTitleRow* mTitleRow;
     QList<NmHsWidgetEmailRow*> mMailRows;
+    NmId mAccountId;
     
 public:    
     friend class TestNmHsWidget;     
--- a/emailuis/nmhswidget/inc/nmhswidgetconsts.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/inc/nmhswidgetconsts.h	Mon May 03 12:23:15 2010 +0300
@@ -61,6 +61,8 @@
 #define KNmHsWidgetMailRowMiddleIcon   "iconTwo"
 /** right status icon */
 #define KNmHsWidgetMailRowRightIcon   "iconThree"
+/** separator icon */
+#define KNmHsWidgetMailSeparatorIcon   "iconSeparator"
 
 
 #endif  // NMHSWIDGETCONSTS_H
--- a/emailuis/nmhswidget/inc/nmhswidgetemailengine.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/inc/nmhswidgetemailengine.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * All rights reserved.
  * This component and the accompanying materials are made available
  * under the terms of "Eclipse Public License v1.0"
@@ -19,8 +19,22 @@
 #define NMHSWIDGETEMAILENGINE_H_
 
 #include <QObject>
+#include "nmcommon.h"
+
 class NmMessageEnvelope;
-class NmFrameworkAdapter_stub;
+class NmDataPluginFactory;
+class NmDataPluginInterface;
+class QPluginLoader;
+
+
+
+enum NmHsWidgetEmailEngineErrorCode
+    {
+    NmEngineNoErr,
+    NmEngineErrNotFound,
+    NmEngineErrFailure
+    };
+
 //Maximum amount of envelopes that can be provided to client in getData function
 //This is also the amount of envelopes that is kept in mData all the time
 const int KMaxNumberOfEnvelopesProvided = 2;
@@ -32,7 +46,7 @@
     {
     Q_OBJECT
 public:
-    NmHsWidgetEmailEngine();
+    NmHsWidgetEmailEngine( const NmId& monitoredMailboxId );
     ~NmHsWidgetEmailEngine();
 
     int getEnvelopes(QList<NmMessageEnvelope> &list, int maxEnvelopeAmount);
@@ -40,26 +54,44 @@
     QString accountName();
         
 public slots:
-    void updateData(); 
-    void updateAccount();
+    void handleMessageEvent( 
+            NmMessageEvent event,
+            const NmId &folderId,
+            const QList<NmId> &messageIds,
+            const NmId& mailboxId);
 
+    void handleMailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds);
+   
+    //Activity control
+    void suspend();
+    void activate();
+    void launchMailAppInboxView();
+    void launchMailAppMailViewer(const NmId &messageId);
+    
 signals:
     void mailDataChanged();    
     void accountNameChanged(const QString& accountName);
     void unreadCountChanged(const int& unreadCount);
+    void errorOccured(NmHsWidgetEmailEngineErrorCode err);
     
 private:
-    int calculateUnreadCount(QList<NmMessageEnvelope*> envelopeList);
+    void constructNmPlugin();
+    void updateData(); 
+    void updateAccount();
     void resetEnvelopeList();
-    void shrinkEnvelopeList();
     
 private:
+    NmId mMailboxId;
+    NmId mFolderId;
     QString mAccountName;
     int mUnreadCount;
     QList<NmMessageEnvelope*> mEnvelopeList;
-    
-    NmFrameworkAdapter_stub* m_stub_adapter; 
-
+    NmDataPluginInterface *mEmailInterface;
+    NmDataPluginFactory* mFactory;
+    //suspension variables
+    bool mAccountEventReceivedWhenSuspended;
+    bool mMessageEventReceivedWhenSuspended;
+    bool mSuspended; 
     };
 
 #endif /* NMHSWIDGETEMAILENGINE_H_ */
--- a/emailuis/nmhswidget/inc/nmhswidgetemailrow.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/inc/nmhswidgetemailrow.h	Mon May 03 12:23:15 2010 +0300
@@ -20,6 +20,7 @@
 #define NMHSWIDGETEMAILROW_H_
 
 #include <hbwidget.h>
+#include "nmcommon.h"
 
 //FORWARD DECLARATIONS:
 class HbLabel;
@@ -32,6 +33,7 @@
 public:
     NmHsWidgetEmailRow(QGraphicsItem *parent = 0, Qt::WindowFlags flags = 0);
     ~NmHsWidgetEmailRow();
+    NmId messageId();
 
 public slots:
     void updateMailData( const NmMessageEnvelope& envelope );
@@ -46,6 +48,8 @@
     HbLabel *mSubjectLabel;
     HbLabel *mTimeLabel;
     HbLabel *mNewMailIcon;
+    HbLabel *mSeparatorIcon;
+    NmId mMessageId;
     QList <HbLabel*> mStatusIcons;  
     
 };
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmhswidget/inc/nmhswidgetplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  nmail widget plugin
+*
+*/
+
+
+#ifndef NMHSWIDGETPLUGIN_H
+#define NMHSWIDGETPLUGIN_H
+
+#include <QObject>
+#include <qserviceplugininterface.h>
+
+QTM_USE_NAMESPACE
+
+class NmHsWidgetPlugin : public QObject, public QServicePluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(QtMobility::QServicePluginInterface)
+
+public:
+    QObject *createInstance(const QServiceInterfaceDescriptor &descriptor,
+                            QServiceContext *context,
+                            QAbstractSecuritySession *session);
+};
+
+#endif //NMHSWIDGETPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmhswidget/nmhswidget.pro	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description:
+#
+#
+ 
+TEMPLATE = lib
+CONFIG += plugin hb mobility qtservice
+QTSERVICE.DESCRIPTOR = resources/nmhswidget.xml
+MOBILITY = serviceframework
+#win32: PLUGIN_SUBDIR = /hsresources/import/widgetregistry/2002DD15
+#symbian: PLUGIN_SUBDIR = /private/20022F35/import/widgetregistry/2002DD15
+TARGET = nmhswidget
+QT += core
+RESOURCES += nmhswidget.qrc
+LIBS += -lnmailbase \
+        -lnmailuiengine \
+        -lxqservice
+
+symbian: {
+TARGET.UID3=0x2002DD15
+TARGET.VID = VID_DEFAULT
+
+load(data_caging_paths)
+pluginDep.sources = nmhswidget.dll
+pluginDep.path = $$QT_PLUGINS_BASE_DIR
+DEPLOYMENT += pluginDep
+
+addFiles.sources += ./resources/nmhswidget.xml
+addFiles.path = xmldata
+DEPLOYMENT += addFiles
+
+BLD_INF_RULES.prj_exports += "resources/nmhswidget.xml 			z:/private/2002DD15/nmhswidget.xml"
+BLD_INF_RULES.prj_exports += "rom/nmhswidget.iby						CORE_APP_LAYER_IBY_EXPORT_PATH(nmhswidget.iby)"
+TARGET.EPOCALLOWDLLDATA = 1
+}
+
+TARGET.CAPABILITY = ALL -TCB
+    
+SOURCES += src/nmhswidget.cpp \
+    src/nmhswidgetemailengine.cpp \
+    src/nmhswidgetemailrow.cpp \
+    src/nmhswidgettitlerow.cpp \
+    src/nmhswidgetplugin.cpp
+
+HEADERS += inc/nmhswidget.h \
+    inc/nmhswidgetconsts.h \
+    inc/nmhswidgetemailengine.h \
+    inc/nmhswidgetemailrow.h \
+    inc/nmhswidgettitlerow.h \
+    inc/nmhswidgetplugin.h 
+
+INCLUDEPATH += ./inc \
+    ../../inc \
+    ./tsrc/nmhswidgettestapp/inc \
+    ../nmailuiengine/inc \
+    ../inc
+DEPENDPATH += .
+
+LIBS += -leuser
+LIBS += -llibc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmhswidget/resources/nmhswidget.xml	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service>
+    <name>nmhswidget</name>
+    <filepath>nmhswidget</filepath>
+    <description>nmhswidget.</description>
+    <interface>
+        <name>com.nokia.symbian.IHomeScreenWidget</name>
+        <version>1.0</version>
+        <description>The nmail widget displays emails.</description>
+        <capabilities></capabilities>
+        <customproperty key="title">nmhswidget</customproperty>
+    </interface>
+</service>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmhswidget/rom/nmhswidget.iby	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __NMHSWIDGET_IBY__
+#define __NMHSWIDGET_IBY__
+
+#include <bldvariant.hrh>
+
+file=ABI_DIR\BUILD_DIR\nmhswidget.dll                         SHARED_LIB_DIR\nmhswidget.dll
+data=\epoc32\data\z\resource\qt\plugins\nmhswidget.qtplugin   resource\qt\plugins\nmhswidget.qtplugin
+data=ZPRIVATE\2002DD15\nmhswidget.xml      					  private\2002DD15\nmhswidget.xml
+#endif  // __NMHSWIDGET_IBY__
--- a/emailuis/nmhswidget/src/nmhswidget.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/src/nmhswidget.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * All rights reserved.
  * This component and the accompanying materials are made available
  * under the terms of "Eclipse Public License v1.0"
@@ -18,6 +18,7 @@
 #include <QtGui>
 #include <QGraphicsLinearLayout>
 #include <hbcolorscheme.h>
+#include "nmcommon.h"
 #include "nmhswidget.h"
 #include "nmhswidgetemailengine.h"
 #include "nmmessageenvelope.h"
@@ -27,15 +28,15 @@
 
 NmHsWidget::NmHsWidget(QGraphicsItem *parent, Qt::WindowFlags flags)
     : HbWidget(parent, flags), 
-      mEngine( new NmHsWidgetEmailEngine() ),
+      mEngine(0),
       mRowLayout(0),
-      mTitleRow( new NmHsWidgetTitleRow() )
+      mTitleRow( new NmHsWidgetTitleRow() ),
+      mAccountId(0)
 {
     qDebug() << "NmHsWidget::NmHsWidget IN -->>";
-   
+
     this->setContentsMargins( KNmHsWidgetContentsMargin, KNmHsWidgetContentsMargin,
             KNmHsWidgetContentsMargin, KNmHsWidgetContentsMargin);
-    
     //Setup layout
     mRowLayout = new QGraphicsLinearLayout(Qt::Vertical);
     mRowLayout->setContentsMargins(KNmHsWidgetContentsMargin, KNmHsWidgetContentsMargin,
@@ -44,23 +45,6 @@
     mRowLayout->addItem(mTitleRow);
     setLayout(mRowLayout);
     
-    //Do the initial data setting
-    updateAccountName( mEngine->accountName() );
-    updateMailData();
-    updateUnreadCount( mEngine->unreadCount() );
-    
-    //Get signals about changes in mail data
-    connect(mEngine, SIGNAL( mailDataChanged() )
-            ,this, SLOT( updateMailData() ) );
-    
-    //Get Signals about changes in unread count
-    connect(mEngine, SIGNAL( unreadCountChanged(const int&) )
-            ,this, SLOT( updateUnreadCount(const int&) ) );
-    
-    //Get signals about account name changes
-    connect(mEngine, SIGNAL( accountNameChanged(const QString&) )
-            ,this, SLOT( updateAccountName(const QString&) ) );
-    
     qDebug() << "NmHsWidget::NmHsWidget OUT <<--";
 }
 
@@ -79,12 +63,61 @@
 }
 
 /*!
+    \fn void NmHsWidget::onShow()
+
+    Shows the widget
+*/
+void NmHsWidget::onShow()
+{
+    qDebug() << "NmHsWidget::onShow IN -->>";
+    if (mEngine)
+        {
+        mEngine->activate();
+        }
+    qDebug() << "NmHsWidget::onShow OUT <<--";
+}
+
+
+/*!
+    \fn void NmHsWidget::onHide()
+
+    Hides the widget
+*/
+void NmHsWidget::onHide()
+{
+    qDebug() << "NmHsWidget::onHide IN -->>";
+    if (mEngine)
+        {
+        mEngine->suspend();
+        }
+    qDebug() << "NmHsWidget::onHide OUT <<--";
+}
+
+
+/*!
     Initializes the widget.
 */
 void NmHsWidget::onInitialize()
 {
     qDebug() << "NmHsWidget::onInitialize IN -->>";
+
+    mEngine = new NmHsWidgetEmailEngine( mAccountId ); 
+    mTitleRow->updateAccountName(mEngine->accountName());
+    updateMailData();
+    mTitleRow->updateUnreadCount(mEngine->unreadCount());
     
+    //Get signals about changes in mail data
+    connect(mEngine, SIGNAL( mailDataChanged() )
+            ,this, SLOT( updateMailData() ) );
+    
+    //Get Signals about changes in unread count
+    connect(mEngine, SIGNAL( unreadCountChanged(const int&) )
+            ,mTitleRow, SLOT( updateUnreadCount(const int&) ) );
+    
+    //Get signals about account name changes
+    connect(mEngine, SIGNAL( accountNameChanged(const QString&) )
+            ,mTitleRow, SLOT( updateAccountName(const QString&) ) );
+
     qDebug() << "NmHsWidget::onInitialize OUT <<--";  
 }
 
@@ -119,32 +152,6 @@
 }
 
 /*!
-    updateAccountName slot 
-*/
-void NmHsWidget::updateAccountName(const QString& accountName)
-{
-    qDebug() << "NmHsWidget::updateAccountName IN -->>";
-    qDebug() << "New account name is: " << accountName;
-    
-    mTitleRow->updateAccountName(accountName);
-        
-    qDebug() << "NmHsWidget::updateAccountName OUT <<--"; 
-}
-
-/*!
-    updateUnreadCount slot
-*/
-void NmHsWidget::updateUnreadCount(const int& unreadCount )
-{
-    qDebug() << "NmHsWidget::updateUnreadCount IN -->>";
-    qDebug() << "New unread count is: " << QString::number(unreadCount);
-   
-    mTitleRow->updateUnreadCount(unreadCount);
-    
-    qDebug() << "NmHsWidget::updateUnreadCount OUT <<--"; 
-}
-
-/*!
     updateMailData slot
 */
 void NmHsWidget::updateMailData()
@@ -170,16 +177,51 @@
 }
 
 /*!
+    Sets monitored account id from given string
+    Needed for home screen framework thich supports only QString type properties
+*/
+void NmHsWidget::setAccountId(const QString &text)
+{
+    qDebug() << "NmHsWidget::setAccountId IN -->>"; 
+    bool ok;
+    quint64 id = text.toULongLong(&ok);
+    if (!ok)
+        {
+        // TODO: assert here if conversion failed?
+        qDebug() << "NmHsWidget::setAccountId: invalid account ID data!!!"; 
+        mAccountId.setId(0);
+        }
+    else
+        {
+        mAccountId.setId(id);
+        }
+    qDebug() << "NmHsWidget::setAccountId OUT <<--"; 
+}
+
+/*!
+    Returns monitored account id as a string
+    Needed for home screen framework which supports only QString type properties
+*/
+QString NmHsWidget::accountId() const
+{
+    qDebug() << "NmHsWidget::accountId()"; 
+    return QString::number(mAccountId.id());
+}
+
+/*!
     Updates list to include correct amount of mail row widgets
 */
 void NmHsWidget::updateMailRowsList(int mailCount)
 {
     qDebug() << "NmHsWidget::updateMailRowsList IN -->>";
+    qDebug() << "NmHsWidget - mMailRows.count() == " <<  mMailRows.count();
+    qDebug() << "NmHsWidget - ordered count == " <<  mailCount;
     while (mMailRows.count() != mailCount)
         {
         //more mails to show than rows
         if (mMailRows.count() < mailCount)
             {
+            qDebug() << "NmHsWidget - add new mail row";
             NmHsWidgetEmailRow *row = new NmHsWidgetEmailRow();
             mMailRows.append(row);
             mRowLayout->addItem(row);            
@@ -187,6 +229,7 @@
         //too many rows
         else if (mMailRows.count() > mailCount)
             {
+            qDebug() << "NmHsWidget - remove mail row";
             mRowLayout->removeItem(mMailRows.last());
             delete mMailRows.takeLast();
             }
@@ -194,3 +237,29 @@
     __ASSERT_ALWAYS( mMailRows.count() == mailCount, User::Panic(_L("Invalid"), 500) );
     qDebug() << "NmHsWidget::updateMailRowsList OUT <<--";
 }
+
+/*!
+    mousePressEvent(QGraphicsSceneMouseEvent *event)
+*/
+void NmHsWidget::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+    qDebug() << "NmHsWidget::mousePressEvent IN -->>";
+
+    if (mTitleRow->rect().contains(event->pos()))
+        {
+        mEngine->launchMailAppInboxView();
+        }
+    else
+        {
+        for (int i=0; i < mMailRows.count(); i++)
+            {
+            QRectF tmpRect = mMailRows.at(i)->geometry(); // rect();
+            if (tmpRect.contains(event->pos()))
+                {
+                mEngine->launchMailAppMailViewer(mMailRows.at(i)->messageId());
+                break;
+                }
+            }
+        }
+    qDebug() << "NmHsWidget::mousePressEvent OUT <<--";
+}
--- a/emailuis/nmhswidget/src/nmhswidgetemailengine.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/src/nmhswidgetemailengine.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * All rights reserved.
  * This component and the accompanying materials are made available
  * under the terms of "Eclipse Public License v1.0"
@@ -15,174 +15,354 @@
  *
  */
 
+#include <QDebug>
 #include <QTimer>
-
-#include "nmhswidgetemailengine.h"
+#include <QDir>
+#include <qpluginloader.h>
+#include <XQServiceRequest.h>
+#include "email_services_api.h"
+#include "nmcommon.h"
 #include "nmmessageenvelope.h"
-
-#include "nmframeworkadapter_stub.h" //Stub implementation for Sprint 2
-
+#include "nmhswidgetemailengine.h"
+#include "nmdataplugininterface.h"
+#include "nmmailbox.h"
+#include "nmfolder.h"
+#include "nmdatapluginfactory.h"
 
 /*!
-    Constructor
-*/
-NmHsWidgetEmailEngine::NmHsWidgetEmailEngine() :
-    mAccountName(0), 
-    mUnreadCount(0), 
-    m_stub_adapter(0)
+ Constructor
+ */
+NmHsWidgetEmailEngine::NmHsWidgetEmailEngine(const NmId& monitoredMailboxId) :
+    mMailboxId(monitoredMailboxId), mAccountName(0), mUnreadCount(0),
+            mEmailInterface(0), mFactory(0), mAccountEventReceivedWhenSuspended(false),
+            mMessageEventReceivedWhenSuspended(false), mSuspended(false) 
     {
-    m_stub_adapter = new NmFrameworkAdapter_stub();
-
+    qDebug()<<"NmHsWidgetEmailEngine() -- START";
+    constructNmPlugin();
     updateData();
     updateAccount();
-    
-    //TODO: To be removed in Sprint 3
-
-    connect( m_stub_adapter, SIGNAL( messageEvent() ) , this, SLOT( updateData() ) );
-    connect( m_stub_adapter, SIGNAL( mailboxEvent() ) , this, SLOT( updateAccount() ) );
-
-    //END
-    
-    }
-
-
-
-/*!
-    Reset envelope list
-    \post mEnvelopeList.isEmpty() == true && all contained objects are deleted
-*/
-void NmHsWidgetEmailEngine::resetEnvelopeList()
-    {
-    while (!mEnvelopeList.isEmpty())
-        {
-        delete mEnvelopeList.takeFirst();    
-        }
-    
-    }
-
-/*!
-    Destructor
-*/
-NmHsWidgetEmailEngine::~NmHsWidgetEmailEngine()
-    {
-    resetEnvelopeList();
-    delete m_stub_adapter;
+    qDebug()<<"NmHsWidgetEmailEngine() -- END";
     }
 
 
 /*!
-    Shrink envelope list
-    \post mEnvelopeList.count() <= KMaxNumberOfEnvelopesProvided, 
-    other objects are removed and freed.
-*/
-void NmHsWidgetEmailEngine::shrinkEnvelopeList()
+ constructNmPlugin
+ */
+void NmHsWidgetEmailEngine::constructNmPlugin()
     {
-    //remove & delete the last object from the list
-    //until we have shrinked the list to be small enough
-    while ( mEnvelopeList.count() > KMaxNumberOfEnvelopesProvided )
+    qDebug()<<"NmHsWidgetEmailEngine::constructNmPlugin() -- START";
+    
+    QObject* pluginInstance(0); 
+    //Get data plugin factory instance
+    mFactory = NmDataPluginFactory::instance();
+
+    if(mFactory)        
+        {
+        pluginInstance = mFactory->pluginInstance(mMailboxId);
+        }
+
+    if(pluginInstance)
+        { 
+        mEmailInterface = mFactory->interfaceInstance( pluginInstance );
+        mFolderId = mEmailInterface->getStandardFolderId(mMailboxId, NmFolderInbox);
+        //Subscription is needed - otherwise the signals will not be received
+        mEmailInterface->subscribeMailboxEvents(mMailboxId);
+        
+        //Connect to events
+        connect(pluginInstance,
+                SIGNAL( messageEvent(NmMessageEvent, const NmId&, 
+                        const QList<NmId>&, const NmId&) ),
+                this,
+                SLOT( handleMessageEvent(NmMessageEvent, const NmId&, 
+                        const QList<NmId>&, const NmId&) ));
+
+        connect(pluginInstance,
+                SIGNAL( mailboxEvent(NmMailboxEvent, const QList<NmId>& ) ),
+                this,
+                SLOT( handleMailboxEvent(NmMailboxEvent, const QList<NmId>&) ));
+        
+        qDebug()<<"NmHsWidgetEmailEngine::constructNmPlugin() -- OK";
+        }
+    else
         {
-        delete mEnvelopeList.takeLast();    
+        emit errorOccured(NmEngineErrFailure);
+        qDebug()<<"NmHsWidgetEmailEngine::constructNmPlugin() -- FAILED";
         }
+
+    qDebug()<<"NmHsWidgetEmailEngine::constructNmPlugin() -- END";
+    }
+
+/*!
+ Reset envelope list
+ \post mEnvelopeList.isEmpty() == true && all contained objects are deleted
+ */
+void NmHsWidgetEmailEngine::resetEnvelopeList()
+    {
+    qDebug()<<"NmHsWidgetEmailEngine::resetEnvelopeList() -- START";
+    
+    while (!mEnvelopeList.isEmpty())
+        {
+        delete mEnvelopeList.takeFirst();
+        }
+    
+    qDebug()<<"NmHsWidgetEmailEngine::resetEnvelopeList() -- END";
+    }
+
+/*!
+ Destructor
+ */
+NmHsWidgetEmailEngine::~NmHsWidgetEmailEngine()
+    {
+    qDebug()<<"~NmHsWidgetEmailEngine -- START";
+ 
+    resetEnvelopeList();
+    if  ( mFactory )
+        {        
+        NmDataPluginFactory::releaseInstance(mFactory);
+        }
+    qDebug()<<"~NmHsWidgetEmailEngine -- END";
     }
 
 
 /*!
-    getEnvelopes() provides message envelopes. 
-    Amount of message envelopes returned is the smallest of the following factors:
-    'KMaxNumberOfEnvelopesProvided', 'maxEnvelopeAmount', 'amount of available envelopes'. 
-    
-    \param list list to be filled with message envelopes
-    \param maxEnvelopeAmount Client side limit for amount of message envelope count. 
-    \return count of envelopes added to list
-*/
-int NmHsWidgetEmailEngine::getEnvelopes(QList<NmMessageEnvelope> &list, int maxEnvelopeAmount)
+ getEnvelopes() provides message envelopes as a list of stack objects
+ Amount of message envelopes in the list parameter is the smallest of the following factors:
+ 'KMaxNumberOfEnvelopesProvided', 'maxEnvelopeAmount', 'amount of available envelopes'. 
+  
+ \param list list to be filled with message envelopes
+ \param maxEnvelopeAmount Client side limit for amount of message envelope count. 
+ \return count of envelopes added to list
+ */
+int NmHsWidgetEmailEngine::getEnvelopes(QList<NmMessageEnvelope> &list,
+        int maxEnvelopeAmount)
     {
+    qDebug()<<"NmHsWidgetEmailEngine::getEnvelopes()";
+    list.clear(); //Reset the parameter list to avoid side effects
     int i = 0;
-    for (; i<mEnvelopeList.count() && i<maxEnvelopeAmount ; i++ )
+    for (; i < mEnvelopeList.count() && i < maxEnvelopeAmount; i++)
         {
-        NmMessageEnvelope env( *mEnvelopeList[i] );
+        NmMessageEnvelope env(*mEnvelopeList[i]);
         list.append(env);
         }
-    return i; 
+    return i;
     }
 
 /*!
-    UnreadCount
+ UnreadCount
 
-    \return count of unread mails
-*/
+ \return count of unread mails
+ */
 int NmHsWidgetEmailEngine::unreadCount()
     {
+    qDebug()<<"NmHsWidgetEmailEngine::unreadCount()";
     return mUnreadCount;
     }
 
 /*!
-    accountName
+ accountName
 
-    \return name of the monitored account
-*/
+ \return name of the monitored account
+ */
 QString NmHsWidgetEmailEngine::accountName()
     {
+    qDebug()<<"NmHsWidgetEmailEngine::accountName()";
     return mAccountName;
     }
 
 /*!
-    Refresh email data.
-    \post mData is refreshed with valid content so that it has
-    valid data with maximum of KMaxNumberOfEnvelopesProvided envelopes
-    
-    NOTE: THIS IS STUB IMPLEMENTATION UNTIL SPRINT 3
-*/
+ Refresh email data.
+ \post mEnvelopeList is refreshed with valid content so that it has
+ valid data with maximum of KMaxNumberOfEnvelopesProvided envelopes
+ 
+ */
 void NmHsWidgetEmailEngine::updateData()
     {
-    resetEnvelopeList();
-    //TODO Sprint 3: Get the list from the server
-    /* TEST DATA */
+    qDebug()<<"NmHsWidgetEmailEngine::updateData() -- START";
+    if(!mEmailInterface)
+        {
+        qDebug()<<"NmHsWidgetEmailEngine::updateData() -- Interface missing";
+        return; //if interface is missing there's nothing to do
+        }
+    //reset envelope list before retrieving new items
+    resetEnvelopeList(); 
+    //get messages from inbox
+    mEmailInterface->listMessages(mMailboxId, mFolderId, mEnvelopeList, KMaxNumberOfEnvelopesProvided);
+    Q_ASSERT_X(mEnvelopeList.count() <= KMaxNumberOfEnvelopesProvided, "nmhswidgetemailengine", "list max size exeeded");
+    //emit signal about new message data right away
+    emit mailDataChanged();
+    //retrieve new unread count to mUnreadCount
+    NmFolder* folder = NULL;
+    int err = mEmailInterface->getFolderById(mMailboxId, mFolderId, folder);
+ 
+    if(folder)
+        {
+        mUnreadCount = folder->unreadMessageCount();
+        delete folder;
+        folder = NULL;
+        //limit the unread count to KMaxUnreadCount
+        if( mUnreadCount > KMaxUnreadCount)
+            {
+            mUnreadCount = KMaxUnreadCount;
+            }
+        //emit signal about changed unread count
+        emit unreadCountChanged(mUnreadCount);
+        }
+
+
+
+    qDebug()<<"NmHsWidgetEmailEngine::updateData() -- END";
+    }
 
-    resetEnvelopeList();
-    m_stub_adapter->listMessages(mEnvelopeList);
-    
-    emit mailDataChanged();
-    mUnreadCount = calculateUnreadCount( mEnvelopeList );
-    emit unreadCountChanged( mUnreadCount );
-    /* TEST DATA END*/
-    
-    //TODO: Sprint3 at this point shrink the list to KMaxNumberOfEnvelopesProvided
-    shrinkEnvelopeList();
+/*!
+ handleMessageEvent slot.
+ */
+void NmHsWidgetEmailEngine::handleMessageEvent(NmMessageEvent event,
+        const NmId &folderId, const QList<NmId> &messageIds, const NmId& mailboxId)
+    {
+    qDebug()<<"NmHsWidgetEmailEngine::handleMessageEvent() -- START";
+    Q_UNUSED(event);
+    Q_UNUSED(messageIds);
+    if ( (folderId == mFolderId) && (mailboxId == mMailboxId) )
+        {
+        //Data is updated only if the engine is not suspended
+        if( mSuspended )
+            {
+            mMessageEventReceivedWhenSuspended = true;
+            }
+        else
+            {
+            updateData();
+            }   
+        }
+    qDebug()<<"NmHsWidgetEmailEngine::handleMessageEvent() -- END";
+    }
+
+/*!
+ handleMailboxEvent slot.
+ */
+void NmHsWidgetEmailEngine::handleMailboxEvent(NmMailboxEvent event,
+        const QList<NmId> &mailboxIds)
+    {
+    qDebug()<<"NmHsWidgetEmailEngine::handleMailboxEvent() -- START";
+    Q_UNUSED(mailboxIds);
+    //react only to NmMailboxChanged event
+    if (event == NmMailboxChanged)
+        {
+        if ( mSuspended )
+            {
+            mAccountEventReceivedWhenSuspended = true;
+            }
+        else
+            {
+            updateAccount();
+            }
+
+        }
+    qDebug()<<"NmHsWidgetEmailEngine::handleMailboxEvent() -- END";
     }
 
 /*!
-    Update Account data
-    \post mAccountName is valid
-    
-    NOTE: THIS IS STUB IMPLEMENTATION UNTIL SPRINT 3
-*/
+ Update Account data
+ \post if mEmailInterface exists, the mAccountName is refreshed from adapter 
+       and accountNameChanged signal is emitted.
+ */
 void NmHsWidgetEmailEngine::updateAccount()
     {
-    mAccountName = m_stub_adapter->mailboxName();
-    emit accountNameChanged (mAccountName);
+    qDebug()<<"NmHsWidgetEmailEngine::updateAccount() -- START";
+    
+    NmMailbox* box = NULL;
+    if(mEmailInterface)
+        {
+        mEmailInterface->getMailboxById(mMailboxId, box);
+        }
+    if (box)
+        {
+        mAccountName = box->name();
+        emit accountNameChanged(mAccountName);
+        delete box;
+        box = NULL;
+        }
+    qDebug()<<"NmHsWidgetEmailEngine::updateAccount() -- END";
+    }
+
+/*!
+  suspend slot.
+  \post engine will not emit signals or refresh its data during suspension.
+ */
+void NmHsWidgetEmailEngine::suspend()
+    {
+    qDebug()<<"NmHsWidgetEmailEngine::suspend() -- START";
+    mSuspended = true;
+    qDebug()<<"NmHsWidgetEmailEngine::suspend() -- END";
     }
 
 /*!
-    Calculate unread count from envelope list.
-    
-    \param envelopeList List of envelopes from which unread envelopes are to be count.
-    \return count of unreads in list 
-    if unread count is < KMaxUnreadCount, otherwise KMaxUnreadCount. 
-*/
-int NmHsWidgetEmailEngine::calculateUnreadCount(QList<NmMessageEnvelope*> envelopeList)
+  activate slot.
+  \post Engine will immediately refresh all the data that has been announced to
+  have changed during the suspension. Events are enabled.
+ */
+void NmHsWidgetEmailEngine::activate()
     {
-    int unreadCount = 0; 
+    qDebug()<<"NmHsWidgetEmailEngine::activate() -- START";
+    mSuspended = false; 
+    if ( mAccountEventReceivedWhenSuspended )
+        {
+        mAccountEventReceivedWhenSuspended = false;
+        updateAccount();
+        }
+    if (mMessageEventReceivedWhenSuspended)
+        {
+        mMessageEventReceivedWhenSuspended = false;
+        updateData();
+        }
+    qDebug()<<"NmHsWidgetEmailEngine::activate() -- END";
+    }
+
+/*!
+  launchMailAppInboxView slot.
+  \post Mail application is launched to inbox view corresponding widget's mailbox id
+ */
+void NmHsWidgetEmailEngine::launchMailAppInboxView()
+    {
+    qDebug()<<"NmHsWidgetEmailEngine::launchMailAppInboxView() -- START";
+
+    XQServiceRequest request(
+        emailInterfaceNameMailbox,
+        emailOperationViewInbox,
+        false);
     
-    QList<NmMessageEnvelope*>::const_iterator itEnd(envelopeList.constEnd());
-    QList<NmMessageEnvelope*>::const_iterator it = envelopeList.constBegin();
+    QList<QVariant> list;
+    list.append(QVariant(mMailboxId.id()));
+
+    request.setArguments(list);
+    QVariant returnValue;
+    bool rval = request.send(returnValue);
     
-    for ( ; (it != itEnd)&&(unreadCount < KMaxUnreadCount); ++it)
+    qDebug()<<"NmHsWidgetEmailEngine::launchMailAppInboxView() -- END";
+    }
+
+/*!
+  launchMailAppMailViewer slot.
+  \param messageId Defines the message opened to viewer
+  \post Mail application is launched and viewing mail specified by
+ */
+void NmHsWidgetEmailEngine::launchMailAppMailViewer(const NmId &messageId)
     {
-      if ( !(*it)->isRead() )
-          {
-          unreadCount++;
-          }
+    qDebug()<<"NmHsWidgetEmailEngine::launchMailAppMailViewer() -- START";
+
+    XQServiceRequest request(
+       emailInterfaceNameMessage,
+       emailOperationViewMessage,
+       false);
+    
+    QList<QVariant> list;
+    list.append(QVariant(mMailboxId.id()));
+    list.append(QVariant(mFolderId.id()));
+    list.append(QVariant(messageId.id()));
+    
+    request.setArguments(list);
+    QVariant returnValue;
+    bool rval = request.send(returnValue);
+    
+    qDebug()<<"NmHsWidgetEmailEngine::launchMailAppMailViewer() -- END";
     }
-    return unreadCount;
-    }
--- a/emailuis/nmhswidget/src/nmhswidgetemailrow.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmhswidget/src/nmhswidgetemailrow.cpp	Mon May 03 12:23:15 2010 +0300
@@ -31,7 +31,9 @@
       mSenderLabel(0),
       mSubjectLabel(0),
       mTimeLabel(0),
-      mNewMailIcon(0)
+      mNewMailIcon(0),
+      mSeparatorIcon(0),
+      mMessageId(0)
 {
     qDebug() << "NmHsWidgetEmailRow::NmHsWidgetEmailRow IN -->>";
     
@@ -49,7 +51,17 @@
 
     qDebug() << "NmHsWidgetEmailRow::~NmHsWidgetEmailRow OUT <<--";
 }
-    
+
+/*!
+    Returns id of message shown
+*/
+NmId NmHsWidgetEmailRow::messageId()
+{
+    qDebug() << "NmHsWidgetEmailRow::messageId()";
+    return mMessageId;
+
+}
+
 /*!
     Loads layout data and child items from docml file
 */
@@ -73,6 +85,11 @@
     Q_ASSERT_X((container != 0), "nmhswidget", "email container not found!");
     layout->addItem(container);
 
+    //separator
+    mSeparatorIcon = static_cast<HbLabel*>(loader.findWidget(KNmHsWidgetMailSeparatorIcon));
+    HbIcon separatorIcon("qtg_graf_divider_h_thin"); 
+    mSeparatorIcon->setIcon(separatorIcon);
+    
     //child items possible to update
     mSenderLabel = static_cast<HbLabel*>(loader.findWidget(KNmHsWidgetMailRowSenderLabel));
     mSubjectLabel = static_cast<HbLabel*>(loader.findWidget(KNmHsWidgetMailRowSubjectLabel));
@@ -80,6 +97,8 @@
 
     //Icons
     mNewMailIcon = static_cast<HbLabel*>(loader.findWidget(KNmHsWidgetMailRowNewMailIcon));
+    HbIcon newEmailIcon("qtg_fr_list_new_item_c"); 
+    mNewMailIcon->setIcon(newEmailIcon);
     // KNmHsWidgetMailRowLeftIcon is not yet used, because followup information is not shown in client side
     // and thus it is not wanted to be shown in widget side
     mStatusIcons.append( static_cast<HbLabel*>(loader.findWidget(KNmHsWidgetMailRowRightIcon)));
@@ -101,9 +120,11 @@
 void NmHsWidgetEmailRow::updateMailData( const NmMessageEnvelope& envelope )
     {
     qDebug() << "NmHsWidgetEmailRow::updateMailData IN -->>";
+
     //hide all icons, so no previous data is messing with the new
     hideIcons();
-    
+
+    mMessageId = envelope.id();
     //Show sender name if it is available, otherwise show email address
     QString senderDisplayName = envelope.sender().displayName();
     if ( !senderDisplayName.isNull() && !senderDisplayName.isEmpty()  )
@@ -199,7 +220,6 @@
     // Here we show icons added to the iconList in the order they have been added.
     for(int count = 0; count<iconList.count(); count++){
         mStatusIcons[count]->setIcon(iconList[count]);
-        mStatusIcons[count]->setAlignment(Qt::AlignRight);
         mStatusIcons[count]->show();
     }
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmhswidget/src/nmhswidgetplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Homescreen nmail widget plugin
+*
+*/
+
+#include <qserviceinterfacedescriptor.h>
+#include <qabstractsecuritysession.h>
+#include <qservicecontext.h>
+
+#include "nmhswidgetplugin.h"
+#include "nmhswidget.h"
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC SKIP
+#endif //COVERAGE_MEASUREMENT
+
+/*!
+  \class NmHsWidgetPlugin
+  \ingroup group_hsclockwidgetplugin
+  \brief Homescreen clock widget provider collects ready-made homescreen clock widget(s).
+ 
+  This library includes homescreen clock widgets implemented by homescreen scrum team.
+  This plugin provides widgets that are described in the  hsclockwidgetplugin.xml plugin
+  xml file.
+ 
+*/
+QObject *NmHsWidgetPlugin::createInstance(const QServiceInterfaceDescriptor &descriptor,
+                                             QServiceContext *context,
+                                             QAbstractSecuritySession *session)
+{
+    qDebug() << "NmHsWidgetPlugin::createInstance";
+    Q_UNUSED(context);
+    Q_UNUSED(session);
+
+    if (descriptor.interfaceName() == QLatin1String("com.nokia.symbian.IHomeScreenWidget")) {
+        return new NmHsWidget();
+    } else {
+        return 0;
+    }
+}
+
+Q_EXPORT_PLUGIN2(nmhswidgetplugin, NmHsWidgetPlugin)
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC ENDSKIP
+#endif //COVERAGE_MEASUREMENT
--- a/emailuis/nmindicatorplugin/inc/nmindicator.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmindicatorplugin/inc/nmindicator.h	Mon May 03 12:23:15 2010 +0300
@@ -26,17 +26,20 @@
 {
 public:
     NmMailboxInfo();
-    
+
 public:
     NmId mId;
     QString mName;
     NmSyncState mSyncState;
     NmConnectState mConnectState;
     int mUnreadMails;
+    int mOutboxMails;
 };
 
 class NmIndicator : public HbIndicatorInterface
 {
+    Q_OBJECT
+
 public:
 
     NmIndicator(const QString &indicatorType);
@@ -46,19 +49,37 @@
 
     bool handleInteraction(InteractionType type);
     QVariant indicatorData(int role) const;
+    HbIndicatorInterface::Category category() const;
+    bool acceptIcon(bool sending);
+    void updateGlobalStatus(bool sending);
 
 protected: // From HbIndicatorInterface
 
     bool handleClientRequest(RequestType type, const QVariant &parameter);
 
+signals:
+
+    void indicatorIconLost();
+    void globalStatusChanged(bool sending);
+    void mailboxLaunched(quint64 mailboxId);
+
+private slots:
+
+    void hideSendIndicator();
+    
 private:
 
-    bool showMailbox(quint64 mailboxId);
     void storeMailboxData(QVariant mailboxData);
+    void showSendProgress();
+    bool isSending() const;
 
 private:
 
 	NmMailboxInfo mMailbox;
+    bool mShowIndicator;
+    bool mSendingState;
+    bool mShowSendProgress;
+	bool mActive;
 };
 
 #endif // NMINDICATOR_H
--- a/emailuis/nmindicatorplugin/inc/nmindicatorplugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmindicatorplugin/inc/nmindicatorplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -26,6 +26,8 @@
 #include <hbindicatorplugininterface.h>
 #include <hbindicatorinterface.h>
 
+class NmIndicator;
+
 class NmIndicatorPlugin : public QObject, public HbIndicatorPluginInterface
 {
     Q_OBJECT
@@ -44,12 +46,22 @@
     HbIndicatorInterface* createIndicator(const QString &indicatorType);
     int error() const;
 
+public slots:
+
+    bool indicatorIconLost();
+    bool showMailbox(quint64 mailboxId);
+    void indicatorDeactivated(QObject *indicator);
+    void globalStatusChanged(bool sending);
+
 private:
     Q_DISABLE_COPY(NmIndicatorPlugin)
 
     int mError;
     QStringList mIndicatorTypes;
     QTranslator *mTranslator; // owned
+    QList<NmIndicator*> mIndicators;
+    NmIndicator *mStatusBarIndicator;
+    bool mSending;
 };
 
 #endif // NMINDICATORPLUGIN_H
--- a/emailuis/nmindicatorplugin/nmindicatorplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmindicatorplugin/nmindicatorplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -32,6 +32,9 @@
 SOURCES += src/nmindicatorplugin.cpp \
            src/nmindicator.cpp
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian {
     TARGET.EPOCALLOWDLLDATA=1
     TARGET.CAPABILITY = ALL -TCB
--- a/emailuis/nmindicatorplugin/src/nmindicator.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmindicatorplugin/src/nmindicator.cpp	Mon May 03 12:23:15 2010 +0300
@@ -14,18 +14,21 @@
  * Description:
  *
  */
-#include "NmIndicator.h"
+#include "nmindicator.h"
 
 #include <QThreadPool>
 #include <QRunnable>
 #include <QByteArray>
 #include <QProcess>
+#include <QTimer>
+#include <QVariant>
 #include <QCoreApplication>
 
-#include <xqservicerequest.h>
-#include <email_services_api.h>
+#include <HbStringUtil>
 
-const int mailboxInfoItemCount = 5;
+const int NmMailboxInfoItemCount = 7;
+const int NmSendingStateDelay = 2000; // delay for 'send in progress' indicator
+const int NmMaxOutboxCount = 99;
 
 /*!
     \class NmMailboxInfo
@@ -42,6 +45,7 @@
     mSyncState = SyncComplete;
     mConnectState = Disconnected;
     mUnreadMails = 0;
+    mOutboxMails = 0;
 }
 
 /*!
@@ -54,10 +58,14 @@
 */
 NmIndicator::NmIndicator(const QString &indicatorType)
 :HbIndicatorInterface(indicatorType,
-        HbIndicatorInterface::GroupPriorityHigh,
+        HbIndicatorInterface::NotificationCategory,
         InteractionActivated)
 {
     NMLOG("NmIndicator::NmIndicator");
+    mShowIndicator = false;
+    mSendingState = false;
+    mShowSendProgress = false;
+    mActive = false;
 }
 
 /*!
@@ -85,8 +93,20 @@
     NMLOG("NmIndicator::handleInteraction");
     bool handled = false;
     if (type == InteractionActivated) {
-        showMailbox(mMailbox.mId.id());
+        mActive = false;
         handled = true;
+
+        // This indicator is responsible showing the status bar icon
+        if (mShowIndicator) {
+            // Do not show any indicators anymore
+            mShowIndicator = false;
+            emit dataChanged();
+
+            // Notify that the icon will be lost now
+            emit indicatorIconLost();
+        }
+        emit mailboxLaunched(mMailbox.mId.id());
+        emit deactivate();
     }
     return handled;
 }
@@ -115,29 +135,74 @@
             }
         case SecondaryTextRole:
             {
-            // These states will be implemented later
-            //txt_mail_status_menu_waiting_connection
-            //txt_mail_status_menu_sending
-                
-            if (mMailbox.mUnreadMails>0)
+            if (mMailbox.mOutboxMails>0) {
+                int outboxCount = mMailbox.mOutboxMails;
+                if (outboxCount>NmMaxOutboxCount) {
+                    outboxCount = NmMaxOutboxCount;
+                }
+                QString text = QString(hbTrId("txt_mail_status_menu_waiting_to_send")).
+                    arg(HbStringUtil::convertDigits(QString::number(outboxCount)));
+                return text;
+		    }
+            else if (mMailbox.mUnreadMails>0) {
                 return hbTrId("txt_mail_status_menu_new_mail");
-            return QString();
+			}
+            break;
             }
         case DecorationNameRole:
             {
-			return QString("qtg_large_email");
+			// Icon for the mailbox in the menu
+            if (mActive) {
+                return QString("qtg_large_email");
+            }
+            break;
 		    }
-        case IconNameRole:
-            {
-            QString iconName("qtg_large_email");
-            return iconName;
-            }
+        case MonoDecorationNameRole:
+			if (mShowIndicator) {
+				return QString("qtg_status_new_email");
+			}
+			break;
         default:
-           return QVariant();
+        	break;
+    }
+    return QVariant();
+}
+
+/*!
+    Timer callback for hiding 'send in progress' indicator 
+*/
+void NmIndicator::hideSendIndicator() 
+{
+    if (mShowSendProgress) {
+        NMLOG("NmIndicator::hideSendIndicator - hide progress state");
+        mShowSendProgress = false;
+        emit dataChanged();
     }
 }
 
 /*!
+    Checks if any mailbox is in sending state at the moment
+    \return true if any mailbox is in sending state
+*/
+bool NmIndicator::isSending() const
+{
+	return mSendingState;
+}
+
+/*!
+    Return type of the indicator
+    \sa HbIndicatorInterface
+*/
+HbIndicatorInterface::Category NmIndicator::category() const
+{
+	NMLOG("NmIndicatorPlugin::Category");
+    if (mMailbox.mOutboxMails>0 && mShowSendProgress) {
+        return HbIndicatorInterface::ProgressCategory;
+    }
+    return HbIndicatorInterface::NotificationCategory;
+}
+
+/*!
     Handles the requests sent from the client
     \a type is a type of the request.
     \a parameter is extra parameter from the client. Can be invalid, if not given.
@@ -155,6 +220,7 @@
     switch (type) {
         case RequestActivate:
             {
+            mActive = true;
 			storeMailboxData(parameter);
             emit dataChanged();
             handled =  true;
@@ -162,6 +228,17 @@
             break;
         case RequestDeactivate:
             {
+            mActive = false;
+
+            // also the deactivation may give updated data
+			storeMailboxData(parameter);
+
+            // This indicator was responsible showing the status bar icon
+            if (mShowIndicator) {
+                // Notify that the icon will be lost now
+                emit indicatorIconLost();
+            }
+
             emit deactivate();
             }
             break;
@@ -172,34 +249,17 @@
 }
 
 /*!
-    Opens the mailbox that includes unread messages.
-    \return true if inbox is succesfully opened
-*/
-bool NmIndicator::showMailbox(quint64 mailboxId)
+    Start showing the 'send in progress' indicator
+ */
+void NmIndicator::showSendProgress()
 {
-    NMLOG("NmIndicator::showMailbox");
-    bool ok = false;
-    XQServiceRequest request(
-        emailInterfaceNameMailbox,
-        emailOperationViewInbox,
-        true);
-
-    QList<QVariant> list;
-    list.append(QVariant(mailboxId));
-
-    request.setArguments(list);
-
-    int returnValue(-1);
-    bool rval = request.send(returnValue);
-
-    if (!rval) {
-        NMLOG(QString("NmIndicator: showMailbox error: %1").arg(request.latestError()));
+    // Activate the progress indicator
+    if (!mShowSendProgress && mActive) {
+        mShowSendProgress = true;
+        
+        // Hide the progress state after some delay
+        QTimer::singleShot(NmSendingStateDelay, this, SLOT(hideSendIndicator()));
     }
-    else {
-        NMLOG(QString("NmIndicator: showMailbox succeeded: %1").arg(QString(returnValue)));
-        ok = true;
-    }
-    return ok;
 }
 
 /*!
@@ -210,11 +270,40 @@
     NMLOG("NmIndicator::storeMailboxData");
     QList<QVariant> infoList = mailboxData.toList();
 
-    if (infoList.count() == mailboxInfoItemCount) {
+    if (infoList.count() >= NmMailboxInfoItemCount) {
         mMailbox.mId.setId(infoList.at(0).value<quint64>());
         mMailbox.mName = infoList.at(1).toString();
         mMailbox.mUnreadMails = infoList.at(2).toInt();
         mMailbox.mSyncState = infoList.at(3).value<NmSyncState>();
         mMailbox.mConnectState = infoList.at(4).value<NmConnectState>();
+        mMailbox.mOutboxMails = infoList.at(5).toInt();
+        
+        bool oldSendingState = mSendingState;
+        mSendingState = infoList.at(6).toInt();
+        
+        // Sending state now activated
+        if (!oldSendingState && mSendingState) {
+            showSendProgress();
+        }
+
+        // Notify the global state
+        emit globalStatusChanged(mSendingState);
     }
 }
+
+/*!
+    Used for asking if this indicator can take status bar icon responsibility.
+    \param sending global sending state
+    \return true if the icon was accepted
+ */
+bool NmIndicator::acceptIcon(bool sending)
+{
+    mSendingState = sending;
+
+    if (mActive) {
+        mShowIndicator = true;
+        emit dataChanged();
+    }
+    return mActive;
+}
+
--- a/emailuis/nmindicatorplugin/src/nmindicatorplugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmindicatorplugin/src/nmindicatorplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,29 +15,31 @@
 *
 */
 
-#include "NmIndicatorPlugin.h"
-
+#include "nmindicatorplugin.h"
 #include "nmindicator.h"
 
-#include <QtPlugin>
 #include <QCoreApplication>
 #include <QLocale>
 #include <QVariant>
+#include <QTimer>
+
+#include <xqservicerequest.h>
+#include <email_services_api.h>
 
 Q_EXPORT_PLUGIN(NmIndicatorPlugin)
 
-const int maxIndicatorCount = 10;
+const int NmMaxIndicatorCount = 10;
 
 /*!
     \class NmIndicatorPlugin
-    \brief Mail indicator plugin class. 
+    \brief Mail indicator plugin class.
 */
 
 /*!
      Class constructor.
 */
-NmIndicatorPlugin::NmIndicatorPlugin() 
-: mError(0), mTranslator(0)
+NmIndicatorPlugin::NmIndicatorPlugin()
+: mError(0), mTranslator(0), mStatusBarIndicator(0), mSending(false)
 {
 }
 
@@ -46,6 +48,7 @@
 */
 NmIndicatorPlugin::~NmIndicatorPlugin()
 {
+    NMLOG("NmIndicatorPlugin::~NmIndicatorPlugin");
 	delete mTranslator;
 }
 
@@ -55,8 +58,8 @@
 QStringList NmIndicatorPlugin::indicatorTypes() const
 {
     QStringList types;
-    for (int i=0; i<maxIndicatorCount; i++) {
-		QString name = QString("com.nokia.nmail.indicatorplugin_")+i+"/1.0";
+    for (int i=0; i<NmMaxIndicatorCount; i++) {
+		QString name = QString("com.nokia.nmail.indicatorplugin_%1/1.0").arg(i);
 		types << name;
     }
     return types;
@@ -78,6 +81,23 @@
 }
 
 /*!
+    Called when any of the indicator receive updated status of the global status
+ */
+void NmIndicatorPlugin::globalStatusChanged(bool sending)
+{
+    mSending = sending;
+
+    // Pass the information to the indicator handling the status bar icon
+    if (mStatusBarIndicator) {
+        mStatusBarIndicator->acceptIcon(sending);
+    }
+    else {
+		// No indicator is showing the status now.
+		indicatorIconLost();
+	}
+}
+
+/*!
 	Creates an indicator of type indicatorType. Ownership is passed to the caller.
  */
 HbIndicatorInterface* NmIndicatorPlugin::createIndicator(
@@ -91,9 +111,14 @@
         mTranslator->load(appName + lang, path);
         QCoreApplication::installTranslator(mTranslator);
     }
-    
-    HbIndicatorInterface *indicator = 0;
-    indicator = new NmIndicator(indicatorType);
+
+    NmIndicator* indicator = new NmIndicator(indicatorType);
+    connect(indicator, SIGNAL(indicatorIconLost()), this, SLOT(indicatorIconLost()));
+    connect(indicator, SIGNAL(destroyed(QObject *)), this, SLOT(indicatorDeactivated(QObject *)));
+    connect(indicator, SIGNAL(globalStatusChanged(bool)), this, SLOT(globalStatusChanged(bool)));
+    connect(indicator, SIGNAL(mailboxLaunched(quint64)), this, SLOT(showMailbox(quint64)));
+    mIndicators.append(indicator);
+
     return indicator;
 }
 
@@ -105,6 +130,62 @@
     return mError;
 }
 
+/*!
+    Called when an indicator signals about lost indicator.
+    \param true if a new indicator was found
+ */
+bool NmIndicatorPlugin::indicatorIconLost()
+{
+    bool found(false);
+    mStatusBarIndicator = NULL;
+
+    foreach (NmIndicator* indicator, mIndicators) {
+        // Find a new candidate to handle the status bar icon
+        if (indicator->acceptIcon(mSending)) {
+			mStatusBarIndicator = indicator;
+			found = true;
+            break;
+        }
+    }
+    return found;
+}
+
+/*!
+    Remove destroyed indicators from the list.
+    \param indicator item that has been deleted
+ */
+void NmIndicatorPlugin::indicatorDeactivated(QObject *indObject)
+{
+    NMLOG(QString("NmIndicatorPlugin::indicatorDeactivated %1").arg((int)indObject));
+    NmIndicator *indicator = static_cast<NmIndicator*>(indObject);
+    mIndicators.removeAll(indicator);
+    if (mStatusBarIndicator == indicator) {
+		mStatusBarIndicator = NULL;
+
+		// Find new indicator to take care of the status bar icon
+		indicatorIconLost();
+	}
+}
+
+/*!
+    Opens inbox view to specific mailbox
+    \return true if inbox is succesfully opened
+*/
+bool NmIndicatorPlugin::showMailbox(quint64 mailboxId)
+{
+    NMLOG("NmIndicatorPlugin::showMailbox");
+    XQServiceRequest request(
+        emailInterfaceNameMailbox,
+        emailOperationViewInbox,
+        true);
+
+    QList<QVariant> list;
+    list.append(QVariant(mailboxId));
+
+    request.setArguments(list);
+
+    int returnValue(-1);
+    return request.send(returnValue);
+}
 
 
-
--- a/emailuis/nmsettingui/bwins/nmsettinguiu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/bwins/nmsettinguiu.def	Mon May 03 12:23:15 2010 +0300
@@ -30,3 +30,7 @@
 	?staticMetaObject@NmSettingsViewFactory@@2UQMetaObject@@B @ 29 NONAME ; struct QMetaObject const NmSettingsViewFactory::staticMetaObject
 	?mailboxListChanged@NmSettingsViewLauncher@@IAEXABVNmId@@W4MailboxEventType@NmSettings@@@Z @ 30 NONAME ; void NmSettingsViewLauncher::mailboxListChanged(class NmId const &, enum NmSettings::MailboxEventType)
 	?staticMetaObject@NmSettingsViewLauncher@@2UQMetaObject@@B @ 31 NONAME ; struct QMetaObject const NmSettingsViewLauncher::staticMetaObject
+	?goOnline@NmSettingsViewLauncher@@IAEXABVNmId@@@Z @ 32 NONAME ; void NmSettingsViewLauncher::goOnline(class NmId const &)
+	?aboutToClose@NmSettingsViewFactory@@IAEXXZ @ 33 NONAME ; void NmSettingsViewFactory::aboutToClose(void)
+	?goOffline@NmSettingsViewLauncher@@IAEXABVNmId@@@Z @ 34 NONAME ; void NmSettingsViewLauncher::goOffline(class NmId const &)
+
--- a/emailuis/nmsettingui/eabi/nmsettinguiu.def	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/eabi/nmsettinguiu.def	Mon May 03 12:23:15 2010 +0300
@@ -33,3 +33,7 @@
 	_ZTV22NmSettingsViewLauncher @ 32 NONAME
 	_ZThn8_N21NmSettingsViewFactoryD0Ev @ 33 NONAME
 	_ZThn8_N21NmSettingsViewFactoryD1Ev @ 34 NONAME
+	_ZN21NmSettingsViewFactory12aboutToCloseEv @ 35 NONAME
+	_ZN22NmSettingsViewLauncher8goOnlineERK4NmId @ 36 NONAME
+	_ZN22NmSettingsViewLauncher9goOfflineERK4NmId @ 37 NONAME
+
--- a/emailuis/nmsettingui/inc/nmmailboxsettingsmanager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmmailboxsettingsmanager.h	Mon May 03 12:23:15 2010 +0300
@@ -61,6 +61,12 @@
                                 QVariant property,
                                 QVariant value);
 
+    void goOnline(const NmId &mailboxId);
+
+    void goOffline(const NmId &mailboxId);
+
+    void aboutToClose();
+
 
 private:
 
--- a/emailuis/nmsettingui/inc/nmsettingsformcustomitems.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmsettingsformcustomitems.h	Mon May 03 12:23:15 2010 +0300
@@ -47,6 +47,9 @@
 
     virtual HbAbstractViewItem* createItem();
 
+public slots:
+
+    void restore();
 
 protected:
 
--- a/emailuis/nmsettingui/inc/nmsettingsplugininterface.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmsettingsplugininterface.h	Mon May 03 12:23:15 2010 +0300
@@ -63,7 +63,12 @@
 
     virtual void mailboxListChanged(const NmId &mailboxId, NmSettings::MailboxEventType type) = 0;
     virtual void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value) = 0;
+    virtual void goOnline(const NmId &mailboxId) = 0;
+    virtual void goOffline(const NmId &mailboxId) = 0;
 
+public slots:
+
+	virtual void aboutToClose() = 0;
 };
 
 Q_DECLARE_INTERFACE(NmSettingsPluginInterface, "sf.app.commonmail.emailuis.nmailsettingui.nmsettingsplugininterface/1.0");
--- a/emailuis/nmsettingui/inc/nmsettingsviewfactory.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmsettingsviewfactory.h	Mon May 03 12:23:15 2010 +0300
@@ -58,6 +58,10 @@
     void launchSettingView(const NmId &mailboxId,
                            const QString &mailboxName) const;
 
+signals:
+
+	void aboutToClose();
+	
 private slots:
 
     void backPress();
--- a/emailuis/nmsettingui/inc/nmsettingsviewlauncher.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmsettingsviewlauncher.h	Mon May 03 12:23:15 2010 +0300
@@ -58,6 +58,8 @@
     void mailboxPropertyChanged(const NmId &mailboxId,
                                 QVariant property,
                                 QVariant value);
+    void goOnline(const NmId &mailboxId);
+    void goOffline(const NmId &mailboxId);
 
 
 private:
--- a/emailuis/nmsettingui/inc/nmsettinguidef.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/inc/nmsettinguidef.h	Mon May 03 12:23:15 2010 +0300
@@ -21,15 +21,21 @@
 #include <QtGlobal>
 
 #if defined(Q_OS_WIN)
-#define NMAILSETTINGUI_EXPORT __declspec(dllexport)
+    #define NMAILSETTINGUI_EXPORT __declspec(dllexport)
 #else
-
-#if defined(BUILD_NMAILSETTINGUI_DLL)
-#define NMAILSETTINGUI_EXPORT Q_DECL_EXPORT
-#else
-#define NMAILSETTINGUI_EXPORT Q_DECL_IMPORT
+    #if defined(BUILD_NMAILSETTINGUI_DLL)
+        #define NMAILSETTINGUI_EXPORT Q_DECL_EXPORT
+    #else
+        #define NMAILSETTINGUI_EXPORT Q_DECL_IMPORT
+    #endif
 #endif
 
+#if defined(TEST_BUILD_NMAILSETTINGUI_DLL)
+    #ifdef NMAILSETTINGUI_EXPORT
+        #undef NMAILSETTINGUI_EXPORT
+    #endif
+
+    #define NMAILSETTINGUI_EXPORT
 #endif
 
 #endif // NMAILSETTINGUIDEF_H
--- a/emailuis/nmsettingui/nmsettingui.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/nmsettingui.pro	Mon May 03 12:23:15 2010 +0300
@@ -43,7 +43,8 @@
 LIBS += -lcpframework
 LIBS += -lnmailuiengine
 LIBS += -lnmailbase
-
+LIBS += -leuser
+LIBS += -llibc
 # Input
 HEADERS += inc/nmsettinguidef.h
 HEADERS += inc/nmsettingsviewfactory.h
--- a/emailuis/nmsettingui/src/nmmailboxsettingsmanager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/src/nmmailboxsettingsmanager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -143,6 +143,9 @@
             // correct object.
             pluginInstance->disconnect(SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)));
             pluginInstance->disconnect(SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)));
+            pluginInstance->disconnect(SIGNAL(goOnline(const NmId &)));
+            pluginInstance->disconnect(SIGNAL(goOffline(const NmId &)));
+            pluginInstance->disconnect(SIGNAL(aboutToClose()));
 
             connect(pluginInstance, SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)),
                 this, SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)));
@@ -150,6 +153,15 @@
             connect(pluginInstance, SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)),
                 this, SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)));
 
+            connect(pluginInstance, SIGNAL(goOnline(const NmId &)),
+                this, SIGNAL(goOnline(const NmId &)));
+
+            connect(pluginInstance, SIGNAL(goOffline(const NmId &)),
+                this, SIGNAL(goOffline(const NmId &)));
+
+            connect(this, SIGNAL(aboutToClose()),
+            	pluginInstance, SLOT(aboutToClose()));
+
             break;
         }
     }
--- a/emailuis/nmsettingui/src/nmsettingsformcustomitems.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/src/nmsettingsformcustomitems.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,9 +15,14 @@
 *
 */
 
-#include "nmsettingsformcustomitems.h"
+#include <QModelIndex>
+#include <HbPushButton>
+#include <HbAbstractViewItem>
+#include <HbDataFormModel>
+#include <HbDataFormModelItem>
+#include <HbAbstractItemView>
 
-#include <hbpushbutton.h>
+#include "nmsettingsformcustomitems.h"
 
 
 /*!
@@ -57,6 +62,29 @@
     return type==NmButtonItem;
 }
 
+/*!
+    Sets the custom widget's properties from the model item.
+*/
+void NmSettingsFormCustomItems::restore()
+{
+    HbDataFormModelItem::DataItemType itemType = static_cast<HbDataFormModelItem::DataItemType>(
+        modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
+     if (itemType==NmButtonItem) {
+
+         HbDataFormModel* model = static_cast<HbDataFormModel*>
+             (static_cast<HbAbstractViewItem*>(this)->itemView()->model());
+         HbDataFormModelItem* modelItem = model->itemFromIndex(modelIndex());
+         QHash<QString ,QVariant> properties =
+             modelItem->data(HbDataFormModelItem::PropertyRole).toHash();
+         QList <QString> propertyNames = properties.keys();
+
+         for (int index=0; index < propertyNames.count(); index++) {
+             QString propName = propertyNames.at(index);
+             dataItemContentWidget()->setProperty(propName.toAscii().data(),
+                                                  properties.value(propName));
+         }
+     }
+}
 
 /*!
     From HbDataFormViewItem.
@@ -72,8 +100,7 @@
     switch (itemType) {
       case NmButtonItem: {
             // Push button.
-            QString text = modelIndex().data(HbDataFormModelItem::KeyRole).toString();
-            widget = new HbPushButton(text);
+            widget = new HbPushButton();
         }
         default: {
             break;
--- a/emailuis/nmsettingui/src/nmsettingsviewfactory.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailuis/nmsettingui/src/nmsettingsviewfactory.cpp	Mon May 03 12:23:15 2010 +0300
@@ -20,7 +20,7 @@
 #include <QCoreApplication>
 #include <HbInstance>
 #include <HbAction>
-#include <HbMessagebox>
+#include <HbMessageBox>
 
 #include "nmsettingsviewfactory.h"
 #include "nmmailboxsettingsmanager.h"
@@ -212,6 +212,21 @@
             mSettingsViewLauncher,
             SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)));
 
+    connect(mSettingsManager,
+            SIGNAL(goOnline(const NmId &)),
+            mSettingsViewLauncher,
+            SIGNAL(goOnline(const NmId &)));
+
+    connect(mSettingsManager,
+            SIGNAL(goOffline(const NmId &)),
+            mSettingsViewLauncher,
+            SIGNAL(goOffline(const NmId &)));
+
+    connect(this,
+            SIGNAL(aboutToClose()),
+            mSettingsManager,
+            SIGNAL(aboutToClose()));
+
     // Create back navigation action for a view.
     HbAction *action = new HbAction(Hb::BackNaviAction, view);
     connect(action, SIGNAL(triggered()), this, SLOT(backPress()));
@@ -233,6 +248,7 @@
 {
     NMLOG(QString("NmSettingsViewFactory::backPress"));
 
+    emit aboutToClose();
     HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst();
     QList<HbView *> views = mainWindow->views();
     if (views.count() > 1) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/cemailextensionbase.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#include "../emailservices/emailcommon/inc/cemailextensionbase.h"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/cmrcalendarinfo.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Meeting Request calendar info mailbox extension
+*
+*/
+
+#include "../emailservices/emailcommon/inc/cmrcalendarinfo.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/emailshutdownconst.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Constant definitions for Email shutdown
+*
+*/
+
+#include "../emailservices/emailservermonitor/inc/emailshutdownconst.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/emailshutdownconst.hrh	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Constant definitions for Cmail shutdown
+*
+*/
+
+#include "../emailservices/emailservermonitor/inc/emailshutdownconst.hrh"
--- a/inc/fsmailserverconst.h	Fri Apr 16 14:51:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-#include "../emailservices/emailserver/inc/fsmailserverconst.h"
\ No newline at end of file
--- a/inc/fsmailserverconst.hrh	Fri Apr 16 14:51:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-#include "../emailservices/emailserver/inc/fsmailserverconst.hrh"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/nmsettingsplugininterface.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "../emailuis/nmsettingui/inc/nmsettingsplugininterface.h"
--- a/ipsservices/ipssosaoplugin/inc/IpsSosAOImapAgent.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosaoplugin/inc/IpsSosAOImapAgent.h	Mon May 03 12:23:15 2010 +0300
@@ -24,7 +24,7 @@
 #include <imapset.h>
 #include <mtclreg.h>
 //<cmail>
-#include "mfsmailrequestobserver.h"
+#include "MFSMailRequestObserver.h"
 //</cmail>
 
 #include "IpsSosAOBaseAgent.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssosaoplugin/inc/IpsSosAOSettingsHandler.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*     Class to handle imap/pop/smtp settings & cenrep
+*
+*/
+
+
+#ifndef IPSSOSAOSETTINGSHANDLER_H_
+#define IPSSOSAOSETTINGSHANDLER_H_
+
+#include <e32base.h> 
+#include <imapset.h>
+
+#include "ipsplgcommon.h"
+#include "nmipssettingitems.h"
+
+
+
+/**
+* class CIpsSosAOSettingsHandler
+*
+* @lib ipssosaoplugin.lib
+*/
+NONSHARABLE_CLASS (CIpsSosAOSettingsHandler) : public CBase
+    {
+    
+public:
+    
+    /*
+     * NewL
+     */
+    static CIpsSosAOSettingsHandler* NewL( TUid aProtocol );
+    
+    /*
+     * Destructor
+     */
+    virtual ~CIpsSosAOSettingsHandler();
+    
+    /**
+     * List folders subscribed to be synced.
+     */
+    void GetSubscribedImapFoldersL( 
+            TMsvId aServiceId, 
+            RArray<TMsvId>& aFoldersArray );
+    
+    /**
+     * 
+     */
+    void ConstructImapPartialFetchInfo( 
+            TImImap4GetPartialMailInfo& aInfo, 
+            CImImap4Settings& aImap4Settings );
+    
+    /**
+     * @return state of alwaysonline
+     */
+    IpsServices::TIpsSetDataAoStates AlwaysOnlineState() const;
+    
+    /**
+     * @param aAlwaysOnlineState, new state for alwaysonline
+     */
+    void SetAlwaysOnlineState(
+        const IpsServices::TIpsSetDataAoStates aAlwaysOnlineState,
+        TBool aIgnoreStateFlag=EFalse );
+    
+    /**
+     * Fetches the state of email notification -flag
+     * @return ETrue or EFalse, according to flag state
+     */
+    IpsServices::TIpsSetDataEmnStates EmailNotificationState() const;
+    
+    /**
+     * Sets the state of email notification -flag
+     */
+    void SetEmailNotificationState(
+        const IpsServices::TIpsSetDataEmnStates aEmnState );
+        
+    /**
+     * Returns flag which indicates has mailbox received 
+     * it's first OMA EMN. 
+     */
+    TBool FirstEmnReceived() const;
+    
+    /**
+     * Sets a flag when mailbox receives it's first OMA EMN.
+     * (email notification)
+     */
+    void SetFirstEmnReceived( TBool aValue );
+    
+    /**
+    *
+    */
+    TBool EmnReceivedButNotSyncedFlag() const;
+        
+    /**
+    *
+    */
+    void SetEmnReceivedButNotSyncedFlag( TBool aFlag );
+    
+    /**
+     * @return week days selected when sync is active
+     */
+    TUint SelectedWeekDays() const;
+    
+    /**
+     * @return 
+     */
+    TTime SelectedTimeStart() const;
+    
+    /**
+     * @return 
+     */
+    TTime SelectedTimeStop() const;
+    
+    /**
+     * @param aLastUpdateInfo
+     */
+    void SetLastUpdateInfo( const IpsServices::TAOInfo& aLastUpdateInfo );
+
+    /**
+     * @return
+     */
+    IpsServices::TAOInfo LastUpdateInfo() const;
+    
+    /**
+     * @return
+     */
+    TInt InboxRefreshTime() const;
+    
+    /**
+    * Are we allowed to sync only in home network
+    * @return true, if home only is selected
+    */
+    TBool RoamHomeOnlyFlag();
+    
+protected:
+    
+    /*
+     * Constructor 
+     */
+    CIpsSosAOSettingsHandler();
+    
+    
+private:
+    
+    /*
+     * 2nd phase constructor 
+     */
+    void ConstructL( TUid aProtocol );
+    
+    
+    /**
+     * Gets FS plugin id related to protocol
+     * @return FS plugin id
+     */
+    TInt GetFSPluginId() const;
+        
+private:
+    
+    TPckgBuf<TIpsPlgPropertyEvent>  iPropertyBuf;
+    TUid                            iMtmType;
+    
+    };
+
+#endif /*IPSSOSAOSETTINGSHANDLER_H_*/
--- a/ipsservices/ipssosaoplugin/ipssosaoplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosaoplugin/ipssosaoplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -41,7 +41,8 @@
 inc/IpsSosAOPopAgent.h \
 inc/IpsSosAOSchedulerUtils.h \
 inc/IpsSosAOSmtpAgent.h \
-inc/IpsSosAOSmtpSendWatcher.h
+inc/IpsSosAOSmtpSendWatcher.h \
+inc/IpsSosAOSettingsHandler.h
 
 
     
@@ -57,7 +58,8 @@
 src/IpsSosAOPopAgent.cpp \
 src/IpsSosAOSchedulerUtils.cpp \
 src/IpsSosAOSmtpAgent.cpp \
-src/IpsSosAOSmtpSendWatcher.cpp
+src/IpsSosAOSmtpSendWatcher.cpp \
+src/IpsSosAOSettingsHandler.cpp
 
 
 RESOURCES +=
--- a/ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp	Mon May 03 12:23:15 2010 +0300
@@ -25,7 +25,7 @@
 #include <msvapi.h>
 #include <AlwaysOnlineManagerCommon.h>
 //<cmail>
-#include "cfsmailcommon.h"
+#include "CFSMailCommon.h"
 //</cmail>
 
 
@@ -505,17 +505,16 @@
          TFSMailMsgId mbox( KIpsPlgImap4PluginUidValue, iServiceId );
          iStatus = KRequestPending;
          iOngoingOp = CIpsPlgImap4PopulateOp::NewL(
-                 iSession,
-                 this->iStatus,
-                 CActive::EPriorityLow,
-                 iServiceId,
-                 *dummy,
-                 info,
-                 *sel,
-                 mbox,
-                 *this,
-                 0,
-                 NULL );
+             iSession,
+             this->iStatus,
+             iServiceId,
+             *dummy,
+             info,
+             *sel,
+             mbox,
+             this,
+             0,
+             NULL );
          
          iFoldersArray.Remove( 0 );
          SetActive();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSettingsHandler.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*     
+*
+*/
+#include "IpsSosAOSettingsHandler.h"
+#include <SendUiConsts.h>
+
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+CIpsSosAOSettingsHandler* CIpsSosAOSettingsHandler::NewL( TUid aProtocol )
+    {
+    CIpsSosAOSettingsHandler* self = new(ELeave)CIpsSosAOSettingsHandler();
+    CleanupStack::PushL(self);
+    self->ConstructL( aProtocol );
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+CIpsSosAOSettingsHandler::CIpsSosAOSettingsHandler() 
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+CIpsSosAOSettingsHandler::~CIpsSosAOSettingsHandler()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::ConstructL( TUid aProtocol )
+    {
+    iMtmType = aProtocol;
+    }
+
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TInt CIpsSosAOSettingsHandler::GetFSPluginId() const
+    {
+    TInt pluginId = 0;
+    if ( iMtmType.iUid == KSenduiMtmImap4UidValue )
+        {
+        pluginId = IPSSOSIMAP4PLUGIN_IMPLEMENTATION_UID;
+        }
+    else if ( iMtmType.iUid == KSenduiMtmPop3UidValue )
+        {
+        pluginId = IPSSOSPOP3PLUGIN_IMPLEMENTATION_UID;
+        }
+    return pluginId;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::GetSubscribedImapFoldersL( 
+            TMsvId /*aServiceId*/, 
+            RArray<TMsvId>& /*aFoldersArray*/ )
+    {
+    
+    }
+    
+    
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::ConstructImapPartialFetchInfo( 
+        TImImap4GetPartialMailInfo& /*aInfo*/, 
+        CImImap4Settings& /*aImap4Settings*/ )
+    {
+    
+    }
+
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+IpsServices::TIpsSetDataAoStates 
+    CIpsSosAOSettingsHandler::AlwaysOnlineState() const
+    {
+    return IpsServices::EMailAoOff;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::SetAlwaysOnlineState(
+    const IpsServices::TIpsSetDataAoStates /*aAlwaysOnlineState*/,
+    TBool /*aIgnoreStateFlag*/ )
+    {
+    
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+IpsServices::TIpsSetDataEmnStates 
+    CIpsSosAOSettingsHandler::EmailNotificationState() const
+    {
+    return IpsServices::EMailEmnOff;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::SetEmailNotificationState(
+    const IpsServices::TIpsSetDataEmnStates /*aEmnState*/ )
+    {
+    
+    }
+    
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TBool CIpsSosAOSettingsHandler::FirstEmnReceived() const
+    {
+    return EFalse;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::SetFirstEmnReceived( TBool /*aValue*/ )
+    {
+    
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TBool CIpsSosAOSettingsHandler::EmnReceivedButNotSyncedFlag() const
+    {
+    return EFalse;
+    }
+    
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::SetEmnReceivedButNotSyncedFlag( TBool /*aFlag*/ )
+    {
+    
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TUint CIpsSosAOSettingsHandler::SelectedWeekDays() const
+    {
+    return 0;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TTime CIpsSosAOSettingsHandler::SelectedTimeStart() const
+    {
+    TTime t = TTime(); 
+    t.HomeTime();
+    return t;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TTime CIpsSosAOSettingsHandler::SelectedTimeStop() const
+    {
+    TTime t = TTime();
+    t.HomeTime();
+    return t;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsSosAOSettingsHandler::SetLastUpdateInfo( 
+        const IpsServices::TAOInfo& /*aLastUpdateInfo*/ )
+    {
+    
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+IpsServices::TAOInfo CIpsSosAOSettingsHandler::LastUpdateInfo() const
+    {
+    IpsServices::TAOInfo dummy;
+    return dummy;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TInt CIpsSosAOSettingsHandler::InboxRefreshTime() const
+    {
+    return 0;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+TBool CIpsSosAOSettingsHandler::RoamHomeOnlyFlag()
+    {
+    return EFalse;
+    }
+// End of file
+
--- a/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp	Mon May 03 12:23:15 2010 +0300
@@ -140,7 +140,7 @@
         {
 		//<QMail>
         iOperation = CIpsPlgSmtpOperation::NewL(
-            iSession, EPriorityStandard, iStatus  );
+            iSession, iStatus  );
         }
     /*
     if ( !iSettingsApi )
--- a/ipsservices/ipssosplugin/BWINS/IPSSOSPLUGINU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/BWINS/IPSSOSPLUGINU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -1,22 +1,21 @@
 EXPORTS
 	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
-	?NewL@CIpsPlgImap4PopulateOp@@SAPAV1@AAVCMsvSession@@AAVTRequestStatus@@HJAAVCIpsPlgTimerOperation@@ABVTImImap4GetPartialMailInfo@@ABVCMsvEntrySelection@@VTFSMailMsgId@@AAVMFSMailRequestObserver@@HPAVCIpsPlgEventHandler@@H@Z @ 2 NONAME ; class CIpsPlgImap4PopulateOp * CIpsPlgImap4PopulateOp::NewL(class CMsvSession &, class TRequestStatus &, int, long, class CIpsPlgTimerOperation &, class TImImap4GetPartialMailInfo const &, class CMsvEntrySelection const &, class TFSMailMsgId, class MFSMailRequestObserver &, int, class CIpsPlgEventHandler *, int)
-	?NewL@CIpsPlgConnectAndRefreshFolderList@@SAPAV1@AAVCMsvSession@@HAAVTRequestStatus@@JAAVTFSMailMsgId@@AAVCMsvEntrySelection@@AAVMFSMailRequestObserver@@AAVCIpsPlgTimerOperation@@@Z @ 3 NONAME ; class CIpsPlgConnectAndRefreshFolderList * CIpsPlgConnectAndRefreshFolderList::NewL(class CMsvSession &, int, class TRequestStatus &, long, class TFSMailMsgId &, class CMsvEntrySelection &, class MFSMailRequestObserver &, class CIpsPlgTimerOperation &)
-	??1CIpsPlgSingleOpWatcher@@UAE@XZ @ 4 NONAME ; CIpsPlgSingleOpWatcher::~CIpsPlgSingleOpWatcher(void)
-	?NewL@CIpsPlgImap4Plugin@@SAPAV1@XZ @ 5 NONAME ; class CIpsPlgImap4Plugin * CIpsPlgImap4Plugin::NewL(void)
-	?NewLC@CIpsPlgSmtpOperation@@SAPAV1@AAVCMsvSession@@HAAVTRequestStatus@@PAVMFSMailRequestObserver@@H@Z @ 6 NONAME ; class CIpsPlgSmtpOperation * CIpsPlgSmtpOperation::NewLC(class CMsvSession &, int, class TRequestStatus &, class MFSMailRequestObserver *, int)
-	??1CIpsPlgSosBasePlugin@@UAE@XZ @ 7 NONAME ; CIpsPlgSosBasePlugin::~CIpsPlgSosBasePlugin(void)
-	?GetOutboxChildrensL@CIpsPlgSmtpOperation@@QAEPAVCMsvEntrySelection@@XZ @ 8 NONAME ; class CMsvEntrySelection * CIpsPlgSmtpOperation::GetOutboxChildrensL(void)
-	?NewLC@CIpsPlgPop3Plugin@@SAPAV1@XZ @ 9 NONAME ; class CIpsPlgPop3Plugin * CIpsPlgPop3Plugin::NewLC(void)
-	?NewL@CIpsPlgSmtpOperation@@SAPAV1@AAVCMsvSession@@HAAVTRequestStatus@@PAVMFSMailRequestObserver@@H@Z @ 10 NONAME ; class CIpsPlgSmtpOperation * CIpsPlgSmtpOperation::NewL(class CMsvSession &, int, class TRequestStatus &, class MFSMailRequestObserver *, int)
-	?NewL@CIpsPlgSingleOpWatcher@@SAPAV1@AAVMIpsPlgSingleOpWatcher@@@Z @ 11 NONAME ; class CIpsPlgSingleOpWatcher * CIpsPlgSingleOpWatcher::NewL(class MIpsPlgSingleOpWatcher &)
-	?NewLC@CIpsPlgSmtpService@@SAPAV1@AAVCMsvSession@@AAVCIpsPlgSosBasePlugin@@@Z @ 12 NONAME ; class CIpsPlgSmtpService * CIpsPlgSmtpService::NewLC(class CMsvSession &, class CIpsPlgSosBasePlugin &)
-	?StartSendL@CIpsPlgSmtpOperation@@QAEXJ@Z @ 13 NONAME ; void CIpsPlgSmtpOperation::StartSendL(long)
-	?EmptyOutboxFromPendingMessagesL@CIpsPlgSmtpOperation@@QAEHJ@Z @ 14 NONAME ; int CIpsPlgSmtpOperation::EmptyOutboxFromPendingMessagesL(long)
-	?NewLC@CIpsPlgImap4Plugin@@SAPAV1@XZ @ 15 NONAME ; class CIpsPlgImap4Plugin * CIpsPlgImap4Plugin::NewLC(void)
-	?NewL@CIpsPlgPop3Plugin@@SAPAV1@XZ @ 16 NONAME ; class CIpsPlgPop3Plugin * CIpsPlgPop3Plugin::NewL(void)
-	?SetOperation@CIpsPlgSingleOpWatcher@@QAEXPAVCMsvOperation@@@Z @ 17 NONAME ; void CIpsPlgSingleOpWatcher::SetOperation(class CMsvOperation *)
-	?NewLC@CIpsPlgSingleOpWatcher@@SAPAV1@AAVMIpsPlgSingleOpWatcher@@@Z @ 18 NONAME ; class CIpsPlgSingleOpWatcher * CIpsPlgSingleOpWatcher::NewLC(class MIpsPlgSingleOpWatcher &)
-	?Operation@CIpsPlgSingleOpWatcher@@QBEAAVCMsvOperation@@XZ @ 19 NONAME ; class CMsvOperation & CIpsPlgSingleOpWatcher::Operation(void) const
-	?NewL@CIpsPlgSmtpService@@SAPAV1@AAVCMsvSession@@AAVCIpsPlgSosBasePlugin@@@Z @ 20 NONAME ; class CIpsPlgSmtpService * CIpsPlgSmtpService::NewL(class CMsvSession &, class CIpsPlgSosBasePlugin &)
+	??1CIpsPlgSingleOpWatcher@@UAE@XZ @ 2 NONAME ; CIpsPlgSingleOpWatcher::~CIpsPlgSingleOpWatcher(void)
+	?NewL@CIpsPlgImap4Plugin@@SAPAV1@XZ @ 3 NONAME ; class CIpsPlgImap4Plugin * CIpsPlgImap4Plugin::NewL(void)
+	??1CIpsPlgSosBasePlugin@@UAE@XZ @ 4 NONAME ; CIpsPlgSosBasePlugin::~CIpsPlgSosBasePlugin(void)
+	?GetOutboxChildrensL@CIpsPlgSmtpOperation@@QAEPAVCMsvEntrySelection@@XZ @ 5 NONAME ; class CMsvEntrySelection * CIpsPlgSmtpOperation::GetOutboxChildrensL(void)
+	?NewLC@CIpsPlgPop3Plugin@@SAPAV1@XZ @ 6 NONAME ; class CIpsPlgPop3Plugin * CIpsPlgPop3Plugin::NewLC(void)
+	?NewL@CIpsPlgSingleOpWatcher@@SAPAV1@AAVMIpsPlgSingleOpWatcher@@@Z @ 7 NONAME ; class CIpsPlgSingleOpWatcher * CIpsPlgSingleOpWatcher::NewL(class MIpsPlgSingleOpWatcher &)
+	?NewLC@CIpsPlgSmtpService@@SAPAV1@AAVCMsvSession@@AAVCIpsPlgSosBasePlugin@@@Z @ 8 NONAME ; class CIpsPlgSmtpService * CIpsPlgSmtpService::NewLC(class CMsvSession &, class CIpsPlgSosBasePlugin &)
+	?NewLC@CIpsPlgSmtpOperation@@SAPAV1@AAVCMsvSession@@AAVTRequestStatus@@PAVMFSMailRequestObserver@@H@Z @ 9 NONAME ; class CIpsPlgSmtpOperation * CIpsPlgSmtpOperation::NewLC(class CMsvSession &, class TRequestStatus &, class MFSMailRequestObserver *, int)
+	?NewL@CIpsPlgImap4PopulateOp@@SAPAV1@AAVCMsvSession@@AAVTRequestStatus@@JAAVCIpsPlgTimerOperation@@ABVTImImap4GetPartialMailInfo@@ABVCMsvEntrySelection@@VTFSMailMsgId@@PAVMFSMailRequestObserver@@HPAVCIpsPlgEventHandler@@H@Z @ 10 NONAME ; class CIpsPlgImap4PopulateOp * CIpsPlgImap4PopulateOp::NewL(class CMsvSession &, class TRequestStatus &, long, class CIpsPlgTimerOperation &, class TImImap4GetPartialMailInfo const &, class CMsvEntrySelection const &, class TFSMailMsgId, class MFSMailRequestObserver *, int, class CIpsPlgEventHandler *, int)
+	?StartSendL@CIpsPlgSmtpOperation@@QAEXJ@Z @ 11 NONAME ; void CIpsPlgSmtpOperation::StartSendL(long)
+	?EmptyOutboxFromPendingMessagesL@CIpsPlgSmtpOperation@@QAEHJ@Z @ 12 NONAME ; int CIpsPlgSmtpOperation::EmptyOutboxFromPendingMessagesL(long)
+	?NewLC@CIpsPlgImap4Plugin@@SAPAV1@XZ @ 13 NONAME ; class CIpsPlgImap4Plugin * CIpsPlgImap4Plugin::NewLC(void)
+	?NewL@CIpsPlgPop3Plugin@@SAPAV1@XZ @ 14 NONAME ; class CIpsPlgPop3Plugin * CIpsPlgPop3Plugin::NewL(void)
+	?NewL@CIpsPlgSmtpOperation@@SAPAV1@AAVCMsvSession@@AAVTRequestStatus@@PAVMFSMailRequestObserver@@H@Z @ 15 NONAME ; class CIpsPlgSmtpOperation * CIpsPlgSmtpOperation::NewL(class CMsvSession &, class TRequestStatus &, class MFSMailRequestObserver *, int)
+	?SetOperation@CIpsPlgSingleOpWatcher@@QAEXPAVCMsvOperation@@@Z @ 16 NONAME ; void CIpsPlgSingleOpWatcher::SetOperation(class CMsvOperation *)
+	?NewLC@CIpsPlgSingleOpWatcher@@SAPAV1@AAVMIpsPlgSingleOpWatcher@@@Z @ 17 NONAME ; class CIpsPlgSingleOpWatcher * CIpsPlgSingleOpWatcher::NewLC(class MIpsPlgSingleOpWatcher &)
+	?Operation@CIpsPlgSingleOpWatcher@@QBEAAVCMsvOperation@@XZ @ 18 NONAME ; class CMsvOperation & CIpsPlgSingleOpWatcher::Operation(void) const
+	?NewL@CIpsPlgSmtpService@@SAPAV1@AAVCMsvSession@@AAVCIpsPlgSosBasePlugin@@@Z @ 19 NONAME ; class CIpsPlgSmtpService * CIpsPlgSmtpService::NewL(class CMsvSession &, class CIpsPlgSosBasePlugin &)
 
--- a/ipsservices/ipssosplugin/EABI/IPSSOSPLUGINU.DEF	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/EABI/IPSSOSPLUGINU.DEF	Mon May 03 12:23:15 2010 +0300
@@ -9,15 +9,14 @@
 	_ZN20CIpsPlgSmtpOperation10StartSendLEl @ 8 NONAME
 	_ZN20CIpsPlgSmtpOperation19GetOutboxChildrensLEv @ 9 NONAME
 	_ZN20CIpsPlgSmtpOperation31EmptyOutboxFromPendingMessagesLEl @ 10 NONAME
-	_ZN20CIpsPlgSmtpOperation4NewLER11CMsvSessioniR14TRequestStatusP22MFSMailRequestObserveri @ 11 NONAME
-	_ZN20CIpsPlgSmtpOperation5NewLCER11CMsvSessioniR14TRequestStatusP22MFSMailRequestObserveri @ 12 NONAME
-	_ZN22CIpsPlgImap4PopulateOp4NewLER11CMsvSessionR14TRequestStatusilR21CIpsPlgTimerOperationRK26TImImap4GetPartialMailInfoRK18CMsvEntrySelection12TFSMailMsgIdR22MFSMailRequestObserveriP19CIpsPlgEventHandleri @ 13 NONAME
+	_ZN20CIpsPlgSmtpOperation4NewLER11CMsvSessionR14TRequestStatusP22MFSMailRequestObserveri @ 11 NONAME
+	_ZN20CIpsPlgSmtpOperation5NewLCER11CMsvSessionR14TRequestStatusP22MFSMailRequestObserveri @ 12 NONAME
+	_ZN22CIpsPlgImap4PopulateOp4NewLER11CMsvSessionR14TRequestStatuslR21CIpsPlgTimerOperationRK26TImImap4GetPartialMailInfoRK18CMsvEntrySelection12TFSMailMsgIdP22MFSMailRequestObserveriP19CIpsPlgEventHandleri @ 13 NONAME
 	_ZN22CIpsPlgSingleOpWatcher12SetOperationEP13CMsvOperation @ 14 NONAME
 	_ZN22CIpsPlgSingleOpWatcher4NewLER22MIpsPlgSingleOpWatcher @ 15 NONAME
 	_ZN22CIpsPlgSingleOpWatcher5NewLCER22MIpsPlgSingleOpWatcher @ 16 NONAME
 	_ZN22CIpsPlgSingleOpWatcherD0Ev @ 17 NONAME
 	_ZN22CIpsPlgSingleOpWatcherD1Ev @ 18 NONAME
 	_ZN22CIpsPlgSingleOpWatcherD2Ev @ 19 NONAME
-	_ZN34CIpsPlgConnectAndRefreshFolderList4NewLER11CMsvSessioniR14TRequestStatuslR12TFSMailMsgIdR18CMsvEntrySelectionR22MFSMailRequestObserverR21CIpsPlgTimerOperation @ 20 NONAME
-	_ZNK22CIpsPlgSingleOpWatcher9OperationEv @ 21 NONAME
+	_ZNK22CIpsPlgSingleOpWatcher9OperationEv @ 20 NONAME
 
--- a/ipsservices/ipssosplugin/inc/ipsplgbaseoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgbaseoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -18,86 +18,60 @@
 #ifndef IPSPLGBASEOPERATION_H
 #define IPSPLGBASEOPERATION_H
 
+class CMsvOperation;
 
-class CMsvOperation;
 /**
 * class CIpsPlgBaseOperation
-*
-* Common base class for email online operations.
+* Common base class for email operations
 */
 NONSHARABLE_CLASS ( CIpsPlgBaseOperation ) : public CMsvOperation
     {
 public:
-    /**
-    *
-    */
     virtual ~CIpsPlgBaseOperation();
 
     /**
-    *
-    */
-    virtual const TDesC8& ProgressL()=0;
-
-    /**
     * For reporting if DoRunL leaves
+    * All operations must implement this
     */
     virtual const TDesC8& GetErrorProgressL(TInt aError) = 0;
 
     /**
-    * 
+    * Returns pending asynchronous request status to caller
+    * All operations must implement this
     */
     virtual TFSProgress GetFSProgressL() const = 0;
 
     /**
-    *
+    * returns request id
+    * (given by caller during instantiation)
+    * @return request id
     */
 	TInt FSRequestId() const;
 	
 	/**
-	*
+	* returns mailbox id that this operation is related to
+	* (given by caller during instantiation)
 	*/
 	TFSMailMsgId FSMailboxId() const;
     
     /**
-    *
+    * All concrete derived classes must have a type identifier
+    * @return operation type
     */
-    virtual TInt IpsOpType() const;
+    virtual TIpsOpType IpsOpType() const = 0; // <qmail>
 	
 protected:
 
-    /**
-    * C++ constructor
-    */
-    // Construction.
+    // <qmail> priority parameter has been removed
     CIpsPlgBaseOperation(
         CMsvSession& aMsvSession,
-        TInt aPriority,
         TRequestStatus& aObserverRequestStatus,
         TInt aFSRequestId,
         TFSMailMsgId aFSMailboxId );
 
-
-    /**
-    * From CActive
-    */
-    virtual void DoCancel()=0;
-
-    /**
-    * From CActive
-    */
-    virtual void RunL()=0;
-
-    /**
-    * From CActive
-    */
-    virtual TInt RunError( TInt aError )=0;
-
-        
 protected:
-        
     TInt            iFSRequestId;
     TFSMailMsgId    iFSMailboxId;
-        
+    };
 
-    };
-#endif//IPSPLGBASEOPERATION_H
+#endif // IPSPLGBASEOPERATION_H
--- a/ipsservices/ipssosplugin/inc/ipsplgconnectandrefreshfolderlist.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgconnectandrefreshfolderlist.h	Mon May 03 12:23:15 2010 +0300
@@ -15,91 +15,74 @@
 *       folder refresh operation
 *
 */
-
-
-#if !defined(__IPSPLGCONNECTANDREFRESHFOLDERLIST_H__)
-#define __IPSPLGCONNECTANDREFRESHFOLDERLIST_H__
+#ifndef IPSPLGCONNECTANDREFRESHFOLDERLIST_H
+#define IPSPLGCONNECTANDREFRESHFOLDERLIST_H
 
-#include <AknWaitNoteWrapper.h>
-// <cmail>
 #include <imapset.h>
-// </cmail>
 
-// Specific includes
 #include "ipsplgonlineoperation.h"
 
-
 /**
-* Superoperation which wraps a UI around going online, updating
-* an IMAP service's folder list and disconnecting again.
+* Operation that 1) goes online, 2) updates mailbox's folder list, and 3) disconnects again
 */
-NONSHARABLE_CLASS ( CIpsPlgConnectAndRefreshFolderList ) : public CIpsPlgOnlineOperation,
-                                           public MAknBackgroundProcess
+NONSHARABLE_CLASS ( CIpsPlgConnectAndRefreshFolderList ) : public CIpsPlgOnlineOperation
     {
-    
-public: // from MAknBackgroundProcess
-
-    /**
-     * Completes one cycle of the process.
-     */
-    virtual void StepL();
-
-    /**
-     * Return true when the process is done.
-     */
-    virtual TBool IsProcessDone() const;
-    
-    virtual void DialogDismissedL( TInt aButtonId );
-    
+// <qmail> removed 3 functions from MAknBackgroundProcess
 public:
 
     /**
-    * NewL()
-    * @param CMsvSession&
-    * @param TInt
-    * @param TRequestStatus&
-    * @param TMsvId
-    * @return CImapConnectAndRefreshFolderList*
+    * Construction
+    * @param aSession session to the MsvServer
+    * @param aObserverRequestStatus caller's status
+    * @param aService service entry in use (related to mailbox)
+    * @param aMailboxId identifies the mailbox
+    * @param aSelection specifies selection (array) of entries that this op operates on
+    *        ownership is moved to the operation
+    * @param aFSObserver operation's observer
+    * @param aActivityTimer mailbox specific activity timer
+    * @return operation instance
     */
-    IMPORT_C static CIpsPlgConnectAndRefreshFolderList* NewL(
-        CMsvSession& aSession, TInt aPriority, TRequestStatus& aObserverRequestStatus,
-        TMsvId aService, TFSMailMsgId& aMailboxId, CMsvEntrySelection& aMsvEntry,
-        MFSMailRequestObserver& aFSObserver, CIpsPlgTimerOperation& aTimer );
+    // <qmail> priority parameter has been removed
+    // <qmail> rename selection parameter, and changed it to pointer
+    // <qmail> removed EXPORT from this function
+    static CIpsPlgConnectAndRefreshFolderList* NewL(
+        CMsvSession& aSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService, 
+        TFSMailMsgId& aMailboxId, 
+        CMsvEntrySelection* aSelection,
+        MFSMailRequestObserver* aFSObserver, 
+        CIpsPlgTimerOperation& aActivityTimer );
 
-    /**
-    * Destructor
-    * ~CIpsPlgConnectAndRefreshFolderList()
-    */
     virtual ~CIpsPlgConnectAndRefreshFolderList();
     
     /**
-    *
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
     */
     const TDesC8& ProgressL();
 
     /**
-    *
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
     */
     const TDesC8& GetErrorProgressL(TInt aError);
     
-    /**
-    * 
-    */
     TFSProgress GetFSProgressL() const;
 
-protected:
-
-
+    // <qmail> new func to this op
     /**
-    * From 
-    * DoRunL()
-    */
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
+
+protected: // From CActive
     virtual void DoRunL();
-
     virtual void DoCancel();
     
 private:
-
+    // internal states of this operation
     enum TIpsSetFolderRefreshStates
         {
         EIdle,
@@ -110,32 +93,24 @@
         ECompleted
         };
 
-    /**
-    * C++ constructor
-    * CIpsPlgConnectAndRefreshFolderList()
-    */
-    CIpsPlgConnectAndRefreshFolderList( CMsvSession& aSession, TInt aPriority,
-        TRequestStatus& aObserverRequestStatus, TMsvId aService, TFSMailMsgId& aMailboxId,
-        MFSMailRequestObserver& aFSObserver, CIpsPlgTimerOperation& aTimer );
-
-    /**
-    * ConstructL()
-    */
-    void ConstructL( CMsvEntrySelection& aMsvEntry );
+    // <qmail> priority parameter has been removed
+    CIpsPlgConnectAndRefreshFolderList( 
+        CMsvSession& aSession,
+        TRequestStatus& aObserverRequestStatus, 
+        TMsvId aService, 
+        TFSMailMsgId& aMailboxId,
+        CMsvEntrySelection* aSelection,
+        MFSMailRequestObserver* aFSObserver, 
+        CIpsPlgTimerOperation& aTimer );
 
-    //data
-private:
-    
-    TInt                                iState;
-    TFSMailMsgId 						iMailboxId;
-    CMsvSession&						iSession;
-    TMsvId								iService;
-    CMsvOperation* 						iOperation;
-    CIpsPlgTimerOperation*				iTimer;
-    CMsvEntrySelection*					iMsvEntry;
+    void ConstructL();
+
+private: // data
+    // <qmail> changes in members
+    TIpsSetFolderRefreshStates          iState;
+    CMsvEntrySelection*					iSelection; // owned
     TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
-    TRequestStatus						iObserverRequestStatus;
-    CAknWaitNoteWrapper*                iAsyncWaitNote;
+    // </qmail>
     };
 
-#endif
+#endif // IPSPLGCONNECTANDREFRESHFOLDERLIST_H
--- a/ipsservices/ipssosplugin/inc/ipsplgcreateforwardmessageoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgcreateforwardmessageoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -38,10 +38,10 @@
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         TMsvId aOriginalMessageId,
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
         
     /**
     * Destructor.
@@ -58,10 +58,10 @@
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         TMsvId aOriginalMessageId, 
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
 
     /**
     * From CActive
--- a/ipsservices/ipssosplugin/inc/ipsplgcreatemessageoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgcreatemessageoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -28,7 +28,7 @@
 *
 * Email operation to create a new message asynchronously.
 */
-NONSHARABLE_CLASS ( CIpsPlgCreateMessageOperation ) : public CMsvOperation
+NONSHARABLE_CLASS ( CIpsPlgCreateMessageOperation ) : public CIpsPlgBaseOperation
     {
 public:
     
@@ -41,9 +41,9 @@
         TRequestStatus& aObserverRequestStatus,
         TMsvId aSmtpServiceId, 
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
         
     /**
     * Destructor.
@@ -51,10 +51,26 @@
     virtual ~CIpsPlgCreateMessageOperation();
     
     /**
-    *
+    * From CMsvoperation
     */
     virtual const TDesC8& ProgressL();
 
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual const TDesC8& GetErrorProgressL(TInt aError);
+
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual TFSProgress GetFSProgressL() const;
+
+    /**
+     * From CIpsPlgBaseOperation
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;    
+
 protected:
 
     /**
@@ -66,9 +82,9 @@
         TRequestStatus& aObserverRequestStatus,
         TMsvId aSmtpServiceId, 
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
     
     /**
     * Constructor.
@@ -103,10 +119,8 @@
     CMsvOperation* iOperation;   // owned
     TMsvId iSmtpServiceId; 
     TMsvPartList iPartList;
-    TBuf8<1> iBlank;
-    TMsvId iMailBoxId;
     MFSMailRequestObserver& iOperationObserver;  // not owned
-    TInt iRequestId;
+    TFSProgress iFSProgress;
     };
 
 
--- a/ipsservices/ipssosplugin/inc/ipsplgcreatereplymessageoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgcreatereplymessageoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -38,10 +38,10 @@
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         TMsvId aOriginalMessageId,
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
         
     /**
     * Destructor.
@@ -58,10 +58,10 @@
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         TMsvPartList aPartList,
-        TMsvId aMailBoxId,
+        TFSMailMsgId aMailBoxId,
         TMsvId aOriginalMessageId, 
         MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
+        TInt aRequestId );
 
     /**
     * From CActive
--- a/ipsservices/ipssosplugin/inc/ipsplgdisconnectop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgdisconnectop.h	Mon May 03 12:23:15 2010 +0300
@@ -18,94 +18,87 @@
 #ifndef IPSPLGDISCONNECTOP_H
 #define IPSPLGDISCONNECTOP_H
 
-
 #include "ipsplgonlineoperation.h"
 
-
 /**
-* Disconnect operation.
-* 
+* Disconnect operation
+* Handles both POP and IMAP cases
 */
 NONSHARABLE_CLASS ( CIpsPlgDisconnectOp ) :
     public CIpsPlgOnlineOperation
     {
 public:
-
-        /**
-        *
-        */
-        static CIpsPlgDisconnectOp* NewL(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            TBool aDoRemoveAfterDisconnect = EFalse );
+    /**
+    * Construction
+    * @param aMsvSession client/server session to MsvServer
+    * @param aObserverRequestStatus caller's status
+    * @param aService serviceId of the mailbox
+    * @param aActivityTimer mailbox specific activity timer
+    * @param aFSMailBoxId specifies mailbox
+    * @param aFSOperationObserver observer of the operation
+    * @param aFSRequestId identifier for this request instance
+    * @param aDoRemoveAfterDisconnect
+    * @return instance of this operation class
+    */
+    // <qmail> parameter removed
+    static CIpsPlgDisconnectOp* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        /**
-        *
-        */
-        virtual ~CIpsPlgDisconnectOp();
-
-        /**
-        *
-        */
-        const TDesC8& ProgressL();
+    virtual ~CIpsPlgDisconnectOp();
 
-        /**
-        *
-        */
-        const TDesC8& GetErrorProgressL( TInt aError );
-        
-        /**
-        * 
-        */
-       TFSProgress GetFSProgressL() const;
-
-// <qmail> Connected() used from baseclass
-    protected:
+    /**
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
+    */
+    const TDesC8& ProgressL();
 
-        /**
-        * From CActive
-        */
-        void DoRunL();
-        
-    private:
+    /**
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
+    */
+    const TDesC8& GetErrorProgressL( TInt aError );
+    
+   TFSProgress GetFSProgressL() const;
 
-        /**
-        *
-        */
-        CIpsPlgDisconnectOp(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TMsvId aServiceId,
-            CIpsPlgTimerOperation& aActivityTimer,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            TBool aDoRemoveAfterDisconnect );
+   // <qmail> Connected() used from baseclass
+   
+   // <qmail> new function in this op
+   TIpsOpType IpsOpType() const;
+   
+protected: // From CActive
+    void DoRunL();
+    
+private:
 
-        /**
-        *
-        */
-        void ConstructL();
+    CIpsPlgDisconnectOp(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aServiceId,
+        CIpsPlgTimerOperation& aActivityTimer,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        /**
-        *
-        */
-        void DoDisconnectL();
+    void ConstructL();
 
-        
-    private: // Data
-        
-        TPckgBuf<TPop3Progress> iPopProgress;
-        TPckgBuf<TImap4CompoundProgress> iImapProgress;
-        TMsvEntry               iTEntry;
-        TBool                   iDisconnected;
-        TBool                   iDoRemoveAfterDisconnect;
-        
+    /**
+    * Sends the disconnect command to MsvServer
+    */
+    void DoDisconnectL();
+
+private: // Data
+    TPckgBuf<TPop3Progress>          iPopProgress;
+    TPckgBuf<TImap4CompoundProgress> iImapProgress;
+    TMsvEntry                        iTEntry;
+    // <qmail> iDisconnected; removed; using baseclass's Connected() instead
+    // <qmail> iDoRemoveAfterDisconnect removed; not a task for disconnect op
     };
 
 #endif //IPSPLGDISCONNECTOP_H
--- a/ipsservices/ipssosplugin/inc/ipsplgeventhandler.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgeventhandler.h	Mon May 03 12:23:15 2010 +0300
@@ -90,13 +90,13 @@
 NONSHARABLE_CLASS ( CIpsPlgEventHandler ) : public CBase,
                             public MMsvSessionObserver,
                             public MIpsPlgSettingsObserverCallback,
-                            public MIpsPlgPropertyObserver,
-                            public MFSMailExceptionEventCallback
+                            public MIpsPlgPropertyObserver
+// <qmail> not needed       public MFSMailExceptionEventCallback
     {
-
-public://from MFSMailExceptionEventCallback
-
-    void ExceptionEventCallbackL( TFSMailMsgId aMailboxId, TInt aEventType, TBool aResponse );
+//public://from MFSMailExceptionEventCallback
+//
+//    void ExceptionEventCallbackL( TFSMailMsgId aMailboxId, TInt aEventType, TBool aResponse );
+// </qmail>
 
 public: //from MIpsPlgPropertyObserver
     void HandlePropertyEventL(
@@ -196,28 +196,11 @@
      */
     void NotifyPropertyEventL( TIpsPlgPropertyEvent aEvent );
 
-    /**
-     * used to inform ui offline state if connection attempt
-     * was not successfull
-     * @param aAccount FS mailbox id
-     */
-    void SignalMailboxOfflineStateL( const TFSMailMsgId& aAccount );
-
-    /**
-     * Send user password query request to fs email ui
-     * @param aMbox entry id of mailbox service
-     * @param aCallback callback interface to connection operation, defaut NULL
-     */
-    void QueryUsrPassL( TMsvId aMbox, MIpsPlgConnectOpCallback* aCallback=NULL );
-
-    /**
-     * Send user password (=credentials) set signal to all plugin
-     * instances via p&s (property) mechanism
-     * @param aMailboxId entry id of mailbox
-     * @param aCancelled indicates is user cancelled password dialog
-     */
-    void SignalCredientialsSetL( TInt aMailboxId, TBool aCancelled );
-
+    // <qmail> removing unused functions
+    //    void SignalMailboxOfflineStateL( const TFSMailMsgId& aAccount );
+    //    void QueryUsrPassL( TMsvId aMbox, MIpsPlgConnectOpCallback* aCallback=NULL );
+    //    void SignalCredientialsSetL( TInt aMailboxId, TBool aCancelled );
+    // </qmail>
 private:
 
     /**
@@ -360,11 +343,8 @@
         TFSMailMsgId& aFSParent,
         RArray<TFSMailMsgId>& aFSDeletedArray );
 
-
-    /**
-    * Saves last signalled sync status to settings
-    */
-    void SaveSyncStatusL( TMsvId aMailboxId, TInt aState );
+    // <qmail> does nothing; removing
+    //    void SaveSyncStatusL( TMsvId aMailboxId, TInt aState );
 
     /**
     * Appends folder id to array if not already in there
@@ -412,6 +392,15 @@
             const CMsvEntrySelection* aSelection,
             TUint aMtmUid );
 
+    // <qmail> new function
+    /**
+     * Convert sync operation completion code to email framework's syncState
+     * @param aStatus
+     * @return syncstate
+     */
+    TSSMailSyncState ConvertCompletionCode( TInt aCompletionCode );
+    // </qmail>
+    
     CRepository*                            iCenRep;
 
     // not owned
@@ -441,8 +430,7 @@
     // base plugin id
     TUint                                   iPluginId;
 
-    //not owned
-    MIpsPlgConnectOpCallback*               iConnOpCallback;
+    // <qmail> MIpsPlgConnectOpCallback not used any more
 
     RArray<TMsvId>                          iImapFolderIds;
 
--- a/ipsservices/ipssosplugin/inc/ipsplgheaders.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgheaders.h	Mon May 03 12:23:15 2010 +0300
@@ -73,7 +73,6 @@
 #include <SendUiConsts.h>
 #include <SenduiMtmUids.h>
 
-#include "fsmailserverconst.h"
 // mfsmail
 #include "MFSMailBoxSearchObserver.h"
 #include "MFSMailEventObserver.h"
@@ -165,6 +164,9 @@
 #include "ipsplgcreateforwardmessageoperation.h"
 #include "ipsplgcreatereplymessageoperation.h"
 #include "ipsplgnewchildpartfromfileoperation.h"
+#include "ipsplgremovechildpartoperation.h"
+#include "ipsplgmailstoreroperation.h"
+#include "ipsplgmessagepartstoreroperation.h"
 // </qmail>
 #include "ipsplgdisconnectop.h"
 #include "ipsplgservicedeletionop.h"
--- a/ipsservices/ipssosplugin/inc/ipsplgimap4connectop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgimap4connectop.h	Mon May 03 12:23:15 2010 +0300
@@ -15,211 +15,180 @@
 *
 */
 
-#ifndef __IPSPLGIMAP4CONNECTOP_H__
-#define __IPSPLGIMAP4CONNECTOP_H__
-
+#ifndef IPSPLGIMAP4CONNECT_H
+#define IPSPLGIMAP4CONNECT_H
 
 #include "ipsplgonlineoperation.h"
 #include "imapconnectionobserver.h"
 
 class CIpsPlgEventHandler;
 
-const TInt KIpsAutoPopulateByteLimit = KMaxTInt32;
+// <qmail> KIpsAutoPopulateByteLimit not used
 
 /**
 * class CIpsPlgImap4ConnectionOp
-*
+* 
 */
-    
 NONSHARABLE_CLASS ( CIpsPlgImap4ConnectOp ) :
     public CIpsPlgOnlineOperation,
-    public MMsvImapConnectionObserver,
-    public MIpsPlgConnectOpCallback,
+    // <qmail> public MMsvImapConnectionObserver, not used any more
+    // <qmail> public MIpsPlgConnectOpCallback not used any more
     public MFSMailRequestObserver
     {
-    
-public://from MIpsPlgConnectOpCallback
-    
-    void CredientialsSetL( TInt aEvent );
-    
-    public:
+// <qmail> MIpsPlgConnectOpCallback not used any more
+public:
             
-        /**
-        * NewL()
-        * Basic factory function - creates dialog with standard title resource
-        * @param CMsvSession& CMsvSession reference
-        * @param TInt priority
-        * @param TRequestStatus& request status
-        * @param TMsvId service (mailbox) id
-        * @param TImapConnectionType connection type
-        * @param 
-        * @param 
-        * @return CIpsPlgImap4ConnectionOp* self pointer
-        */
-		static CIpsPlgImap4ConnectOp* NewL(
-			CMsvSession& aMsvSession,
-			TInt aPriority,
-            TRequestStatus& aObserverRequestStatus,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            CIpsPlgEventHandler* aEventHandler,
-            TBool aDoPlainConnect=EFalse,
-            TBool aSignallingAllowed=ETrue );
-            
-        /**
-        * ~CIpsPlgImap4ConnectionOp()
-        * destructor
-        */
-        ~CIpsPlgImap4ConnectOp();
+    /**
+    * NewL()
+    * @param aMsvSession reference to client/server session to MsvServer
+    * @param aObserverRequestStatus client's status
+    * @param aService service (mailbox) id
+    * @param aActivityTimer mailbox specific activity timer
+    * @param aFSMailBoxId specifies mailbox
+    * @param aFSOperationObserver observer of this operation
+    * @param aFSRequestId request identifier of this op (assigned by caller, and used when calling 
+    * back aFSOperationObserver
+    * @param aEventHandler used for signalling synchronisation statuses
+    * @param aDoPlainConnect whether just connect to mailbox, or synch messages also
+    * @return CIpsPlgImap4ConnectionOp* self pointer
+    */
+    // <qmail> priority parameter has been removed
+    static CIpsPlgImap4ConnectOp* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId,
+        CIpsPlgEventHandler* aEventHandler,
+        TBool aDoPlainConnect=EFalse );
+        
+    // <qmail> make destructor virtual
+    virtual ~CIpsPlgImap4ConnectOp();
 
 public: // from CIpsPlgBaseOperation
 
-        virtual const TDesC8& ProgressL();
+    /**
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
+    */
+    virtual const TDesC8& ProgressL();
 
-		/**
-        *
-        */
-        virtual const TDesC8& GetErrorProgressL( TInt aError );
-        
-        /**
-        * 
-        */
-        virtual TFSProgress GetFSProgressL() const;
-        
+    /**
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
+    */
+    virtual const TDesC8& GetErrorProgressL( TInt aError );
+    
+    virtual TFSProgress GetFSProgressL() const;
+    
+    // <qmail> change ret val type
+    /**
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
         
-        /**
-        *
-        */
-        virtual TInt IpsOpType() const;
-        
-public: // from MMsvImapConnectionObserver
-        
-        /**
-        * HandleImapConnectionEvent()
-        * From MMsvImapConnectionObserver
-        * @param TImapConnectionEvent, imap connection event
-        */
-        void HandleImapConnectionEvent(
-            TImapConnectionEvent aConnectionEvent);  
-        
-        
+    // <qmail> HandleImapConnectionEvent() not used any more
+
 public: // from MFSMailRequestObserver
     
-        void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
+    void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
         
 // <qmail> Connected() used from baseclass
-protected:
 
-		/**
-        * From CActive
-        */
-        void DoRunL();
-        
-        /**
-         * 
-         */
-        void DoCancel();
-        
-        /**
-        * From CIpsPlgOnlineoperation
-        */
-        //TInt GetOperationErrorCodeL( );
-        
-	private:
-		
-		enum TImapConnectionState 
-			{ 
-			EStateStartConnect,
-			EStateQueryingDetails, 
-			EStateConnectAndSync,
-			EStatePopulateAllCompleted,
-			EStateCompleted,
-			EStateIdle };
-		
-        /**
-        * CIpsPlgImap4ConnectionOp()
-        * @param CMsvSession&, CMsvSession reference
-        * @param TInt, priority
-        * @param TRequestStatus&, request status
-        * @param TMsvId, service ( mailbox ) id
-        * @param MMsvProgressReporter&, prog. reporter
-        * @param TImapConnectionType, connection type
-        */
-        CIpsPlgImap4ConnectOp(
-            CMsvSession& aMsvSession,
-			TInt aPriority,
-            TRequestStatus& aObserverRequestStatus,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            TBool aDoPlainConnect,
-            TBool aSignallingAllowed,
-            CIpsPlgEventHandler* aEventHandler );
+protected: // From CActive
+    void DoRunL();
+    void DoCancel();
+    
+private:
+    enum TImapConnectionState 
+        { 
+        EStateStartConnect,
+        // <qmail> removing EStateQueryingDetails, 
+        EStateConnectAndSync,
+        EStatePopulateAllCompleted,
+        EStateCompleted,
+        EStateIdle 
+        };
+    
+    // <qmail> priority parameter has been removed
+    CIpsPlgImap4ConnectOp(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId,
+        TBool aDoPlainConnect,
+        CIpsPlgEventHandler* aEventHandler );
 
-        /**
-        * ConstructL()
-        */
-        void ConstructL();
-        
-        /**
-        *
-        */        
-        void DoConnectOpL();
-        
-        /**
-        *
-        */       
-        void StartL();
-        
-        /**
-        *
-        */       
-        void DoPopulateAllL();
-        
-        /**
-        *
-        */
-        void QueryUserPwdL();
-        
-        
-        /**
-         * 
-         */
-        void SignalSyncStarted();
-        
-        /**
-         * 
-         */
-        void SignalSyncCompleted( TInt aError );
-        
-        // <qmail>
-        /**
-         * 
-         */
-        void ConstructImapPartialFetchInfo( 
-                TImImap4GetPartialMailInfo& aInfo, 
-                CImImap4Settings& aImap4Settings );
-        // </qmail>
-        
-        
-    private: //Data
+    void ConstructL();
+    
+    /**
+    * Handles one internal state 
+    */        
+    void DoConnectOpL();
+    
+    // <qmail> remove void StartL();
+    
+    /**
+    * Handles one internal state 
+    */       
+    void DoPopulateAllL();
+    
+    // <qmail> removed QueryUserPwdL();
+    
+    /**
+     * initiates sync state changed event
+     */
+    void SignalSyncStarted();
+    
+    /**
+     * initiates sync state changed event
+     * @param aError specifies completion status
+     */
+    void SignalSyncCompleted( TInt aError );
+    
+    // <qmail>
+    /**
+     * 
+     * @param aInfo is filled corretcly in this function
+     * @param aImap4Settings info is filled partly based on settings
+     */
+    void ConstructImapPartialFetchInfo(
+        TImImap4GetPartialMailInfo& aInfo, 
+        const CImImap4Settings& aImap4Settings );
 
-        TImapConnectionState                iState;
-        TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
-        CMsvEntrySelection* 				iSelection;
-        TBool                               iDoPlainConnect;
-        
-        
-        
-        // not owned
-        CIpsPlgEventHandler*                iEventHandler;
-        TBool                               iIsSyncStartedSignaled;
-
+    /**
+     * GetImapSettingsLC()
+     * constructs imap settings object with this account's settings (based on iService member)
+     * @return CImImap4Settings object as a pointer. Object is placed into CleanupStack.
+     */
+    CImImap4Settings* GetImapSettingsLC();
+    
+    /**
+     * Updates iSelection member to contain the message entries from inbox folder
+     * NOTE: all prior contents of iSelection will be deleted
+     * NOTE: takes care of only direct Inbox folder
+     */
+    void CreateInboxMessagesSelectionL();
+    
+    // </qmail>
+    
+private: //Data
+    // internal state of this operation
+    TImapConnectionState                iState;
+    TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
+    CMsvEntrySelection* 				iSelection;
+    // whether caller instantiated this op to do only connect or not
+    TBool                               iDoPlainConnect;
+    // pointer to event handler in order to signal sync status to client
+    CIpsPlgEventHandler*                iEventHandler; // not owned
+    // prevents signalling sync started for more than once
+    TBool                               iIsSyncStartedSignaled;
     };
 
-#endif
+#endif // IPSPLGIMAP4CONNECT_H
--- a/ipsservices/ipssosplugin/inc/ipsplgimap4fetchattachmentop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgimap4fetchattachmentop.h	Mon May 03 12:23:15 2010 +0300
@@ -15,223 +15,143 @@
 *
 */
 
-#ifndef __IPSPLGIMAP4FETCHATTACHMENTOP_H__
-#define __IPSPLGIMAP4FETCHATTACHMENTOP_H__
-
+#ifndef IPSPLGIMAP4FETCHATTACHMENTOP_H
+#define IPSPLGIMAP4FETCHATTACHMENTOP_H
 
 class CIpsPlgImap4FetchAttachmentOp;
 
 /**
-* class CIpsPlgImap4FetchAttachmentOp
-*
+* CIpsFetchProgReport
+* helper class for the operation
+* implements a timer which initiates periodical progress updating
 */
 NONSHARABLE_CLASS ( CIpsFetchProgReport ) : public CActive
     {
-    public:
-        /**
-        *
-        */
-        static CIpsFetchProgReport* NewL( 
-            CIpsPlgImap4FetchAttachmentOp& aAttaOp );
+public:
+    /**
+    * @param aAttaOp (callback) reference to fetch operation that created us
+    */
+    static CIpsFetchProgReport* NewL( CIpsPlgImap4FetchAttachmentOp& aAttaOp );
 
-        /**
-        *
-        */    
-        ~CIpsFetchProgReport();
-
-        /**
-        *
-        */    
-        virtual void DoCancel();
+    virtual ~CIpsFetchProgReport();
 
-        /**
-        *
-        */	
-	    virtual void RunL();
-	
-	private:
+protected: // From CActive
+    virtual void DoCancel();
+    virtual void RunL();
 
-        /**
-        *
-        */	
-	    CIpsFetchProgReport( 
-	        CIpsPlgImap4FetchAttachmentOp& aAttaOp );
-        
-        /**
-        *
-        */	    
-	    void ConstructL();
+private:
+    CIpsFetchProgReport( CIpsPlgImap4FetchAttachmentOp& aAttaOp );
+    void ConstructL();
+    void AdjustTimer();
 
-        /**
-        *
-        */	
-	    void AdjustTimer();
-	
-	private:
-	
-	    RTimer iTimer;
-	    
-	    CIpsPlgImap4FetchAttachmentOp& iAttaOp;
-	
+private: // members
+    RTimer iTimer;
+    // reference to our "parent" op
+    CIpsPlgImap4FetchAttachmentOp& iAttaOp; 
     };
 
 /**
 * class CIpsPlgImap4FetchAttachmentOp
-*
+* fetches messageparts
 */
 NONSHARABLE_CLASS ( CIpsPlgImap4FetchAttachmentOp ) :
     public CIpsPlgOnlineOperation
     {
-    public:
-
-        /**
-        * NewL()
-        * Basic factory function - creates dialog with standard title resource
-        * @param CMsvSession& 
-        *
-        *
-        *
-        *
-        *
-        *
-        * @return CIpsPlgImap4FetchAttachmentOp* self pointer
-        */
-
-        static CIpsPlgImap4FetchAttachmentOp* NewL(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aFunctionId,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetMailInfo& aGetMailInfo,
-            const CMsvEntrySelection& aSel,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId );
-
-        /**
-        * ~CIpsPlgImap4FetchAttachmentOp()
-        * destructor
-        */
+public:
 
-        virtual ~CIpsPlgImap4FetchAttachmentOp();
-
-        /**
-        *
-        */
-        const TDesC8& ProgressL();
+    /**
+    * NewL()
+    * @param CMsvSession& client/server session to MsvServer
+    * @param aObserverRequestStatus operation's observer's status
+    * @param aService serviceId of this mailbox
+    * @param aActivityTimer mailbox specific activity timer
+    * @param aSelection selection of message part ids, ownership moves
+    * @param aFSMailBoxId specifies mailbox
+    * @param aFSOperationObserver observes the progress of this operation
+    * @param aFSRequestId identifier for this instance of operation, assigned by the client
+    * @return CIpsPlgImap4FetchAttachmentOp* self pointer
+    */
+    static CIpsPlgImap4FetchAttachmentOp* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const CMsvEntrySelection* aSelection,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        
-        /**
-        *
-        */
-        const TDesC8& GetErrorProgressL( TInt aError );
-        
-        /**
-        * 
-        */
-        TFSProgress GetFSProgressL() const;
-        
-        
-    private:
+    virtual ~CIpsPlgImap4FetchAttachmentOp();
 
-
-        /**
-        * CIpsPlgImap4PopulateOp()
-        * @param 
-        *
-        *
-        *
-        *
-        *
-        *
-        
-        */
+    /**
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
+    */
+    const TDesC8& ProgressL();
 
-        CIpsPlgImap4FetchAttachmentOp(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aFunctionId,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetMailInfo& aGetMailInfo,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId );
+    /**
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
+    */
+    const TDesC8& GetErrorProgressL( TInt aError );
+    
+    TFSProgress GetFSProgressL() const;
+    
+private:
+    CIpsPlgImap4FetchAttachmentOp(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const CMsvEntrySelection* aSelection,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        /**
-        * ConstructL()
-        */
+    void ConstructL();
 
-        void ConstructL( const CMsvEntrySelection& aSel );
-
+    void RunL();
 
-        /**
-        * RunL()
-        */
-
-        void RunL();
+    void DoRunL();
 
-        /**
-        * DoRunL()
-        */
-
-        void DoRunL();
+    //virtual void DoCancel();
 
-        /**
-        * DoCancel()
-        */
-
-        //virtual void DoCancel();
-
-        /**
-        * Complete()
-        */
-
-        void Complete();
+    void Complete();
+    
+    void DoConnectL();
+    
+    /**
+     * Called periodically by CIpsFetchProgReport during active fetching
+     * Leads to sending progress report to plugin's client
+     */
+    void ReportProgressL();  
+    
+    // <qmail> new func to this op
+    /**
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
+    
+protected:
+    
+    void DoFetchAttachmentL( );
         
-        /**
-        *
-        */
-        void DoConnectL();
-        
-        /**
-        * 
-        */
-        void ReportProgressL();  
+private: //Data
+    friend class CIpsFetchProgReport;
 
-    protected:
-        
-        /**
-        * From CIpsPlgOnlineoperation
-        */
-        TInt GetEngineProgress( const TDesC8& aProgress );
+    // internal state of this statemachine
+    enum TFetchState {
+        EStateIdle,
+        EStateConnecting,
+        EStateFetching,
+        EStateDisconnecting };
+    TFetchState iState;
         
-        /**
-        *
-        */
-        void DoFetchAttachmentL( );
-        
-        enum TFetchState {
-            EStateIdle,
-            EStateConnecting,
-            EStateFetching,
-            EStateDisconnecting };
-        TFetchState iState;
-        
-    private: //Data
-    
-        // because use of ReportProgressL()
-        friend class CIpsFetchProgReport;
-            
-        CMsvEntrySelection*                     iSelection;
-        TDesC8*                                 iFetchErrorProgress;
-        TImImap4GetMailInfo                     iGetMailInfo;
-        TInt                                    iFunctionId;
-        TPckgBuf<TImap4CompoundProgress>        iProgress;
-        TMsvId                                  iService;
-        TBool                                   iPopulated;
-        CIpsFetchProgReport*                    iProgReport;
+    const CMsvEntrySelection*               iSelection;
+    TDesC8*                                 iFetchErrorProgress;
+    TPckgBuf<TImap4CompoundProgress>        iProgress;
+    CIpsFetchProgReport*                    iProgReport;
     };
 
-#endif //__IPSPLGIMAP4FETCHATTACHMENTOP_H__
+#endif // IPSPLGIMAP4FETCHATTACHMENTOP_H
--- a/ipsservices/ipssosplugin/inc/ipsplgimap4moveremoteop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgimap4moveremoteop.h	Mon May 03 12:23:15 2010 +0300
@@ -15,9 +15,8 @@
 *
 */
 
-#ifndef __IPSPLGIMAP4MOVEREMOTEOP_H__
-#define __IPSPLGIMAP4MOVEREMOTEOP_H__
-
+#ifndef IPSPLGIMAP4MOVEREMOTEOP_H
+#define IPSPLGIMAP4MOVEREMOTEOP_H
 
 #include "ipsplgonlineoperation.h"
 
@@ -28,128 +27,123 @@
 NONSHARABLE_CLASS ( CIpsPlgImap4MoveRemoteOp ) :
     public CIpsPlgOnlineOperation
     {
-    public:
-        /**
-        *
-        * @param aSession: Server session.
-        * @param aStatus: Observer completion status.
-        * @param aReporter: Progress reporter.
-        * @param aSel: The message ids to get.
-        * @param aTargetId: Where to fetch the messages to.
-        * @param aCopy: Copying or moving.
-        */
-        static CIpsPlgImap4MoveRemoteOp* NewL(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aFunctionId,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetMailInfo& aGetMailInfo,
-            const CMsvEntrySelection& aSel,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId );
-
-        /**
-        *
-        */
-        virtual ~CIpsPlgImap4MoveRemoteOp();
-        
-        /**
-        *
-        */
-        const TDesC8& ProgressL();
-        
-        /**
-        *
-        */
-        const TDesC8& GetErrorProgressL( TInt aError );
-        
-        /**
-        *
-        */
-        TFSProgress GetFSProgressL() const;
-        
-    private:
-
-        /**
-        * for explanation of parameters, see NewL
-        */
-        CIpsPlgImap4MoveRemoteOp(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aFunctionId,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetMailInfo& aGetMailInfo,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId );
+public:
+    /**
+    * NewL
+    * @param aMsvSession client/server session to MsvServer
+    * @param aObserverRequestStatus client's status
+    * @param aService serviceId of the mailbox
+    * @param aActivityTimer mailbox specific activity timer
+    * @param aDestinationFolder destination folder id to where the messages are to be moved
+    * @param aSelection selection of messages
+    * @param aFSMailBoxId identifies mailbox
+    * @param aFSOperationObserver observer of this operation
+    * @param aFSRequestId client assigned request identifier
+    * @return class instance
+    */
+    // <qmail> parameters changed
+    static CIpsPlgImap4MoveRemoteOp* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const TMsvId& aDestinationFolder,
+        const CMsvEntrySelection& aSelection,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        /**
-        *
-        */
-        void ConstructL(const CMsvEntrySelection& aSel);
-        
-        /**
-        * RunL()
-        */
-        void RunL();
-        
-        /**
-        *
-        */
-        void DoRunL();
-        
-        
-        /**
-        *
-        */
-        void DoConnectL();
-        
-        /**
-        *
-        * Sort messages into complete and incomplete.
-        */
-        void SortMessageSelectionL(const CMsvEntrySelection& aSel);
-        
-        /**
-        *
-        */
+    virtual ~CIpsPlgImap4MoveRemoteOp();
+    
+    /**
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
+    */
+    const TDesC8& ProgressL();
+    
+    /**
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
+    */
+    const TDesC8& GetErrorProgressL( TInt aError );
+    
+    TFSProgress GetFSProgressL() const;
+    
+    // <qmail> new func to this op
+    /**
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
+    
+private:
+    // <qmail> parameters changed
+    CIpsPlgImap4MoveRemoteOp(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const TMsvId& aDestinationFolder,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        void Complete();
-        
-        /**
-        *
-        */
-        void DoMoveLocalL();
-
-        /**
-        *
-        */
-        void DoMoveRemoteL();
-        
-    protected:
+    void ConstructL( const CMsvEntrySelection& aSelection );
+    
+    void RunL();
+    
+    /**
+     * actual implementation of RunL's functionality
+     * RunL wraps and traps this function
+     */
+    void DoRunL();
+    
+    void DoConnectL();
+    
+    /**
+    * Sort messages into complete and incomplete.
+    */
+    void SortMessageSelectionL(const CMsvEntrySelection& aSel);
+    
+    /**
+     * Completes client's status
+     */
+    void Complete();
     
-        /**
-        * From CIpsPlgOnlineoperation
-        */
-        TInt GetEngineProgress( const TDesC8& aProgress );
+    /**
+     * handles local moving
+     */
+    void DoMoveLocalL();
+
+    /**
+     * handles remote moving
+     */
+    void DoMoveRemoteL();
+    
+    // <qmail> removed TInt GetEngineProgress( const TDesC8& aProgress );
 
-    private:
-        enum TState { EIdle, EConnecting, ELocalMsgs, ERemoteMsgs };
-        TState                              iState;
-        TInt                                iFunctionId;
-        TDesC8*                             iMoveErrorProgress;
-        TImImap4GetMailInfo                 iGetMailInfo;
-        CMsvEntrySelection*                 iSelection;
-        CMsvEntrySelection*                 iLocalSel;      // Complete messages
-        CMsvEntrySelection*                 iRemoteSel;     // Incomplete messages to be fetched.
-        TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
-        TPckgBuf<TImap4SyncProgress>        iSyncProgress;
+private:
+    // internal state of this operation
+    enum TState 
+        { 
+        EIdle, 
+        EConnecting, 
+        ELocalMsgs, 
+        ERemoteMsgs 
+        };
+    TState                              iState;
+
+    // <qmail> iFunctionId; removed
+    // used in error situations
+    TDesC8*                             iMoveErrorProgress;
+    // <qmail> using destination folder Id instead of mailInfo struct
+    // specifies folder where to move
+    TMsvId                              iDestinationFolderId;
+    // <qmail> removed iSelection;
+    CMsvEntrySelection*                 iLocalSel;      // Complete messages
+    CMsvEntrySelection*                 iRemoteSel;     // Incomplete messages to be fetched.
+    TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
+    TPckgBuf<TImap4SyncProgress>        iSyncProgress;
     };
 
-
-#endif //__IPSPLGIMAP4MOVEREMOTEOP_H__
-
-// End of File
+#endif // IPSPLGIMAP4MOVEREMOTEOP_H
--- a/ipsservices/ipssosplugin/inc/ipsplgimap4populateop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgimap4populateop.h	Mon May 03 12:23:15 2010 +0300
@@ -15,8 +15,8 @@
 *
 */
 
-#ifndef __IPSPLGIMAP4POPULATEOP_H__
-#define __IPSPLGIMAP4POPULATEOP_H__
+#ifndef IPSPLGIMAP4POPULATEOP_H
+#define IPSPLGIMAP4POPULATEOP_H
 
 #include "ipsplgonlineoperation.h"
 
@@ -24,177 +24,142 @@
 
 /**
 * class CIpsPlgImap4PopulateOp
-*
+* loads message's actual content/ message parts
 */
-
 NONSHARABLE_CLASS ( CIpsPlgImap4PopulateOp ) :
     public CIpsPlgOnlineOperation
     {
-    public:
-
-        /**
-        * NewL()
-        * Basic factory function - creates dialog with standard title resource
-        * @param CMsvSession& 
-        *
-        *
-        *
-        *
-        *
-        *
-        * @return CIpsPlgImap4PopulateOperation* self pointer
-        */
-
-        IMPORT_C static CIpsPlgImap4PopulateOp* NewL(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aPriority,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetPartialMailInfo& aPartialMailInfo,
-            const CMsvEntrySelection& aSel,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            CIpsPlgEventHandler* aEventHandler,  
-            TBool aDoFilterSelection = ETrue );
-
-        /**
-        * ~CIpsPlgImap4PopulateOp()
-        * destructor
-        */
-
-        virtual ~CIpsPlgImap4PopulateOp();
+public:
 
-        /**
-        *
-        */
-        const TDesC8& ProgressL();
+    /**
+    * NewL()
+    * Basic factory function - creates dialog with standard title resource
+    * @param aMsvSession client/server session to msvServer 
+    * @param aObserverRequestStatus caller's status
+    * @param aService serviceId of the mailbox
+    * @param aActivityTimer mailbox specific activity timer
+    * @param aPartialMailInfo parameter struct for the service request to msvServer
+    * @param aSel selection of messages to populate (first entry contains service entry)
+    * @param aFSMailBoxId mailbox identifier
+    * @param aFSOperationObserver observer for this operation
+    * @param aFSRequestId client assigned request Id
+    * @param aEventHandler 
+    * @param aDoFilterSelection specifies whether a full populate is requested (i.e. refetch already fecthed or not)
+    * @return CIpsPlgImap4PopulateOperation* self pointer
+    */
+    // <qmail> priority parameter has been removed
+    IMPORT_C static CIpsPlgImap4PopulateOp* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const TImImap4GetPartialMailInfo& aPartialMailInfo,
+        const CMsvEntrySelection& aSel,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId,
+        CIpsPlgEventHandler* aEventHandler,  
+        TBool aDoFilterSelection = ETrue );
 
-        
-        /**
-        *
-        */
-        const TDesC8& GetErrorProgressL( TInt aError );
-        
-        /**
-        *
-        */        
-        TFSProgress GetFSProgressL() const;
-        
-        /**
-        *
-        */
-        virtual TInt IpsOpType() const;
-        
-    private:
-
-
-        /**
-        * CIpsPlgImap4PopulateOp()
-        * @param 
-        *
-        *
-        *
-        *
-        *
-        *
-        
-        */
+    virtual ~CIpsPlgImap4PopulateOp();
 
-        CIpsPlgImap4PopulateOp(
-            CMsvSession& aMsvSession,
-            TRequestStatus& aObserverRequestStatus,
-            TInt aPriority,
-            TMsvId aService,
-            CIpsPlgTimerOperation& aActivityTimer,
-            const TImImap4GetPartialMailInfo& aGetMailInfo,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            CIpsPlgEventHandler* aEventHandler );
-
-        /**
-        * 
-        */
-
-        void ConstructL( 
-                const CMsvEntrySelection& aSel, 
-                TBool aDoFilterSelection );
+    /**
+    * From MsvOperation
+    * Gets information on the progress of the operation
+    * (see MsvOperation header)
+    */
+    const TDesC8& ProgressL();
+    
+    /**
+    * From CIpsPlgBaseOperation
+    * For reporting if DoRunL leaves
+    */
+    const TDesC8& GetErrorProgressL( TInt aError );
+    
+    TFSProgress GetFSProgressL() const;
+     
+    // <qmail> change ret val type
+    /**
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
+    
+private:
+    // <qmail> priority parameter has been removed
+    CIpsPlgImap4PopulateOp(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        TMsvId aService,
+        CIpsPlgTimerOperation& aActivityTimer,
+        const TImImap4GetPartialMailInfo& aGetMailInfo,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId,
+        CIpsPlgEventHandler* aEventHandler );
 
+    void ConstructL( const CMsvEntrySelection& aSel, TBool aDoFilterSelection );
 
-        /**
-        * 
-        */
-
-        void RunL();
+    void RunL();
 
-        /**
-        * 
-        */
-        void DoRunL();
-        
-        /**
-        * 
-        */
-        void DoCancel();
-
-        /**
-        * 
-        */
+    void DoRunL();
+    
+    void DoCancel();
 
-        void Complete();
-        
-        /**
-        *
-        */
-        void DoConnectL();
-        
-        /**
-        *
-        */
-        void FilterSelectionL( const CMsvEntrySelection& aSelection );
-        
-        /**
-        *
-        */
-        TBool IsPartialPopulate( );
+    /**
+     * completes the status of the observer
+     */
+    void Complete();
+    
+    /**
+    * handle connecting state
+    */
+    void DoConnectL();
+    
+    /**
+    * Filters given selection of entries
+    * The result is set to internal iSelection member
+    * (filtering is done on basis of what is the current populate status of the particular message)
+    * @param aSelection list of entries to fetch
+    */
+    void FilterSelectionL( const CMsvEntrySelection& aSelection );
+    
+    /**
+    * helper for selection filtering
+    */
+    TBool IsPartialPopulate();
 
-    protected:
-        
-        /**
-        *
-        */
-        void DoPopulateL();
-        
-        /**
-        * From CIpsPlgOnlineoperation
-        */
-        TInt GetEngineProgress( const TDesC8& aProgress );
-        
-    protected:
-
-        enum TFetchState 
-            {
-            EStateIdle,
-            EStateConnecting,
-            EStateFetching,
-            EStateInfoEntryChange
-            };
-
-   
-    private: //Data
-        
-        TImImap4GetPartialMailInfo        iPartialMailInfo;
-        RArray<TMsvId>                    iSelection;
-        // not owned
-        CIpsPlgEventHandler*              iEventHandler;
-        CMsvEntrySelection*               iTempSelection;
-        TDesC8*                           iFetchErrorProgress;
-        TPckgBuf<TImap4SyncProgress>      iSyncProgress;
-        TMsvId                            iParent;
-        TFetchState                       iState;
-        
+protected:
+    
+    /**
+    * starts the actual populate command to msvserver
+    */
+    void DoPopulateL();
+    
+    // <qmail> remove GetEngineProgress( const TDesC8& aProgress );
+    
+private: //Data
+    // <qmail> members changed
+    // internal state of the operation
+    enum TFetchState 
+        {
+        EStateIdle,
+        EStateConnecting,
+        EStateFetching,
+        EStateInfoEntryChange
+        };
+    TFetchState                       iState;
+    
+    // parameter struct for the populate command to msvserver
+    TImImap4GetPartialMailInfo        iPartialMailInfo;
+    // contains full list of messages to fetch
+    CMsvEntrySelection*               iSelection;
+    // contains serviceId and one message entry id from iSelection list
+    // i.e. populate op loops through iSelection with this iTempSelection
+    CMsvEntrySelection*               iTempSelection;
+    // not owned
+    CIpsPlgEventHandler*              iEventHandler;
+    TDesC8*                           iFetchErrorProgress;
+    TPckgBuf<TImap4SyncProgress>      iSyncProgress;
     };
 
-#endif //__IPSPLGIMAP4POPULATEOP_H__
+#endif // IPSPLGIMAP4POPULATEOP_H
--- a/ipsservices/ipssosplugin/inc/ipsplgmailstoreroperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgmailstoreroperation.h	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -26,7 +26,7 @@
 class MFSMailRequestObserver;
 
 NONSHARABLE_CLASS( CIpsPlgMailStorerOperation ) :
-    public CMsvOperation
+    public CIpsPlgBaseOperation
     {
 public:
     /**
@@ -69,9 +69,27 @@
     void DoCancel();
 
     /**
-     * From CMsvOperation
+    * From CMsvoperation
+    */
+    virtual const TDesC8& ProgressL();
+
+    // <qmail>
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual const TDesC8& GetErrorProgressL(TInt aError);
+
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual TFSProgress GetFSProgressL() const;
+
+    /**
+     * From CIpsPlgBaseOperation
+     * Returns operation type
      */
-    virtual const TDesC8& ProgressL();
+    TIpsOpType IpsOpType() const;    
+    // </qmail>
 
 protected:
 
@@ -110,7 +128,9 @@
     CFSMailPlugin&              iPlugin;
     RPointerArray<CFSMailMessage>     &iMessages;
     MFSMailRequestObserver&     iFSOperationObserver;
-    const TInt                        iRequestId;
+    // <qmail>
+    TFSProgress                 iFSProgress;
+    // </qmail>
     };
 
 #endif //CIpsPlgMailStorerOperation_H
--- a/ipsservices/ipssosplugin/inc/ipsplgmessagepartstoreroperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgmessagepartstoreroperation.h	Mon May 03 12:23:15 2010 +0300
@@ -28,7 +28,7 @@
 class CFSMailMessagePart;
 class MFSMailRequestObserver;
 
-NONSHARABLE_CLASS( CIpsPlgMessagePartStorerOperation ) : public CMsvOperation
+NONSHARABLE_CLASS( CIpsPlgMessagePartStorerOperation ) : public CIpsPlgBaseOperation
     {
 public:
     /**
@@ -72,9 +72,27 @@
     void DoCancel();
 
     /**
-     * From CMsvOperation
+    * From CMsvoperation
+    */
+    virtual const TDesC8& ProgressL();
+
+    // <qmail>
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual const TDesC8& GetErrorProgressL(TInt aError);
+
+    /**
+    * From CIpsPlgBaseOperation
+    */
+    virtual TFSProgress GetFSProgressL() const;
+
+    /**
+     * From CIpsPlgBaseOperation
+     * Returns operation type
      */
-    virtual const TDesC8& ProgressL();
+    TIpsOpType IpsOpType() const;    
+    // </qmail>
 
 protected:
 
@@ -135,13 +153,16 @@
     RPointerArray<CFSMailMessagePart> iMessageParts;
 
     MFSMailRequestObserver& iFSOperationObserver;
-    const TInt iRequestId;
     
     // Execution index stores current progres
     TInt iExecutionIndex;
     
     // Data buffer for async operations
     HBufC8* iDataBuffer;
+
+    // <qmail>
+    TFSProgress iFSProgress;
+    // </qmail>
     };
 
 #endif /* IPSPLGMESSAGEPARTSTOREOPERATION_H_ */
--- a/ipsservices/ipssosplugin/inc/ipsplgnewchildpartfromfileoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgnewchildpartfromfileoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -21,13 +21,13 @@
 
 class MFSMailRequestObserver;
 
-NONSHARABLE_CLASS ( CCIpsPlgNewChildPartFromFileOperation ): public CMsvOperation
+NONSHARABLE_CLASS ( CIpsPlgNewChildPartFromFileOperation ): public CIpsPlgBaseOperation
 {
 public:
     /**
     * Constructor.
     */
-    static CCIpsPlgNewChildPartFromFileOperation* NewL(
+    static CIpsPlgNewChildPartFromFileOperation* NewL(
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         const TFSMailMsgId& aMailBoxId,
@@ -41,16 +41,23 @@
     /**
     * Destructor.
     */
-    virtual ~CCIpsPlgNewChildPartFromFileOperation();
+    virtual ~CIpsPlgNewChildPartFromFileOperation();
 
-public: // From CMsvOperation
+public: // From CIpsPlgBaseOperation
+    
     virtual const TDesC8& ProgressL();
     
+    virtual const TDesC8& GetErrorProgressL(TInt aError);
+
+    virtual TFSProgress GetFSProgressL() const;
+
+    TIpsOpType IpsOpType() const;   
+    
 protected:
     /**
     * Constructor.
     */
-    CCIpsPlgNewChildPartFromFileOperation(
+    CIpsPlgNewChildPartFromFileOperation(
         CMsvSession& aMsvSession,
         TRequestStatus& aObserverRequestStatus,
         const TFSMailMsgId& aMailBoxId,
@@ -88,16 +95,41 @@
                            CImEmailMessage*& aImEmailMessage );
     
     void CleanCachedMessageEntries();
+
+    /*
+     * Four different operation steps are needed
+     */
+    enum TOperationStep
+        {
+        EPrepareMsvEntry,
+        EPrepareStore,
+        EStoreMessagePart
+        };
     
-    enum TOperationStep {EStep1, EStep2, EStep3, EStep4} ;
+    /*
+     * Initializes attachment manager asynchronously
+     */
+    void InitAttachmentManagerL();
+    
+    /*
+     * Prepares Msv entry to be updated asynchronously
+     */
+    void PrepareMsvEntryL();
+    
+    /*
+     * Prepares message store asynchronously if needed
+     */
+    void PrepareStoreL();
+    
+    /*
+     * Stores message part and finishes the operation
+     */
+    void StoreMessagePartL();
     
 protected:
     CMsvOperation* iOperation;   // owned
-    TBuf8<1> iBlank;
-    TFSMailMsgId iMailBoxId;
     TFSMailMsgId iMessageId;
     MFSMailRequestObserver& iOperationObserver;  // not owned
-    TInt iRequestId;
     HBufC* iContentType;
     HBufC* iFilePath;
     CMsvEntry* iCachedEntry;
@@ -107,6 +139,7 @@
     CIpsPlgMsgMapper* iMsgMapper;
     TMsvId iNewAttachmentId;
     TOperationStep iStep;
+    TFSProgress iFSProgress;
 };
 
 #endif // IPSPLGNEWCHILDPARTFROMFILEOPERATION_H
--- a/ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -18,7 +18,6 @@
 #ifndef IPSPLGONLINEOPERATION_H
 #define IPSPLGONLINEOPERATION_H
 
-
 #include "ipsplgbaseoperation.h"
 
 class CMsvEntrySelection;
@@ -27,157 +26,127 @@
 class CIpsPlgTimerOperation;
 class CClientMtmRegistry;
 
-
-class MIpsPlgConnectOpCallback
-    {
-public:
-    virtual void CredientialsSetL( TInt aEvent )=0;
-    };
+// <qmail> removing class MIpsPlgConnectOpCallback
 
 /**
 * class CIpsPlgOnlineOperation
-*
 * Common base class for email online operations.
 */
 NONSHARABLE_CLASS ( CIpsPlgOnlineOperation ) : public CIpsPlgBaseOperation
     {
-    public:
-           
-        /**
-        *
-        */
-        virtual ~CIpsPlgOnlineOperation();
+public:
+    virtual ~CIpsPlgOnlineOperation();
 
-        /**
-        *
-        */
-        virtual const TDesC8& ProgressL() = 0;
+    // <qmail> removing virtual const TDesC8& ProgressL() = 0; as unnecessary (already in baseclass)
+    // <qmail> removing virtual const TDesC8& GetErrorProgressL(TInt aError) = 0; as unnecessary (already in baseclass)
+    
+    /**
+     * return progress information about ongoing operation
+     */
+    virtual TFSProgress GetFSProgressL() const = 0;
+    
+    // <qmail> removing IpsOpType() from here because this is abstract base class
+    
+protected:
 
-        /**
-        * For reporting if DoRunL leaves
-        */
-        virtual const TDesC8& GetErrorProgressL(TInt aError) = 0;
-        
-        /**
-        * 
-        */
-        virtual TFSProgress GetFSProgressL() const = 0;
-        
-        /**
-        *
-        */
-        virtual TInt IpsOpType() const;
-        
-		
-    protected:
-        /**
-        * C++ constructor
-        */
-        // Construction.
-        CIpsPlgOnlineOperation(
-            CMsvSession& aMsvSession,
-            TInt aPriority,
-            TRequestStatus& aObserverRequestStatus,
-            CIpsPlgTimerOperation& aActivityTimer,
-            TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
-            TInt aFSRequestId,
-            TBool aSignallingAllowed=ETrue );
+    /**
+     * constructor
+     * @param aMsvSession reference to existing client-server session to MessageServer
+     * @param aObserverRequestStatus client status
+     * @param aActivityTimer reference to mailbox's online activity timer
+     * @param aFSMailBoxId mailbox id
+     * @param aFSOperationObserver callback interface to caller for reporting progress (completion) statuses
+     * @param aFSRequestId id of the request
+     */
+    // <qmail> priority parameter has been removed
+    CIpsPlgOnlineOperation(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        CIpsPlgTimerOperation& aActivityTimer,
+        TFSMailMsgId aFSMailBoxId,
+        MFSMailRequestObserver* aFSOperationObserver,
+        TInt aFSRequestId );
 
-        /**
-        * Base constructor
-        */
-        void BaseConstructL(TUid aMtmType);
+    /**
+    * Base constructor
+    */
+    void BaseConstructL( TUid aMtmType );
 
-        /**
-        * From CActive
-        */
-        virtual void DoCancel();
+protected: // From CActive
+    virtual void DoCancel();
+    virtual void RunL();
 
-        /**
-        * From CActive
-        */
-        virtual void RunL();
-
-        /**
-        * From CActive
-        */
-        virtual void DoRunL() = 0;
+    /**
+     * All concrete classes must implement this
+     * It is called by OnlineOperation's RunL()
+     */
+    virtual void DoRunL() = 0;
+    // <qmail> removing virtual TInt RunError( TInt aError ); Not needed because RunL uses TRAP harness and never leaves
 
-        /**
-        * From CActive
-        */
-        virtual TInt RunError( TInt aError );
+    /**
+    * Completes observer with status aStatus
+    * @param aStatus: Status of the operation.
+    * Override if needed to complete with other status than KErrNone.
+    */
+    void CompleteObserver( TInt aStatus = KErrNone );
 
-        /**
-        * Completes observer with status aStatus
-        * @param aStatus: Status of the operation.
-        * Override if needed to complete with other status than KErrNone.
-        */
-        void CompleteObserver( TInt aStatus = KErrNone );
-
-        /**
-        *
-        */
-        void CompleteThis();
-
+    /**
+    * Completes "ourselves" not observer; used for starting a new round in statemachine.
+    */
+    void CompleteThis();
 
-        // REVIEW: is there any good reason for next two methods
-        /**
-        *
-        */
-        void InvokeClientMtmAsyncFunctionL(
-            TInt aFunctionId,
-            TMsvId aEntryId,
-            TMsvId aContextId,
-            const TDesC8& aParams=KNullDesC8);
+    /**
+    * Sends a command to MessageServer
+    * @param aFunctionId specifies the command
+    * @param aEntryId specifies the entry on which the command should be executed
+    * (e.g. which message entry to send)
+    * @param aParams specifies other parameters needed by particular command
+    */
+    void InvokeClientMtmAsyncFunctionL(
+        TInt aFunctionId,
+        TMsvId aEntryId,
+        const TDesC8& aParams=KNullDesC8);
 
-        /**
-        *
-        */
-        void InvokeClientMtmAsyncFunctionL(
-            TInt aFunctionId,
-            const CMsvEntrySelection& aSel,
-            TMsvId aContextId,
-            const TDesC8& aParams=KNullDesC8);
+    /**
+    * Sends a command to MessageServer
+    * @param aFunctionId specifies the command
+    * @param aSel specifies a selection of entries on which the command should be executed
+    * (e.g. which messages to send)
+    * @param aParams specifies other parameters needed by particular command
+    */
+    void InvokeClientMtmAsyncFunctionL(
+        TInt aFunctionId,
+        const CMsvEntrySelection& aSel,
+        const TDesC8& aParams=KNullDesC8);
 
-        // <qmail>
-        /**
-         * Finds out the current connection state of the mailbox
-         * @return true/false
-         */
-        virtual TBool Connected() const;
-        // </qmail>
-        
+    // <qmail>
     /**
-    *
+     * Finds out the current connection state of the mailbox
+     * @return true/false
+     */
+    virtual TBool Connected() const;
+    // </qmail>
+    
+    /**
+    * Signals observer of the operation if such exists
+    * @param aStatus completion status of the operation
     */
     void SignalFSObserver( TInt aStatus );
         
 protected:
-				// REVIEW: should tell whether the attributes are owned or not
-				// REVIEW: CMsvOperation already has similar attribute, change the name
+        // mailbox specific activity timer
         CIpsPlgTimerOperation&  iActivityTimer;
-        CBaseMtm*       iBaseMtm;
-        CClientMtmRegistry* iMtmReg;
-        // The sub-operation.
-        CMsvOperation*  iOperation;
+        CBaseMtm*               iBaseMtm;
+        CClientMtmRegistry*     iMtmReg;
+        // sub-operation that this operation is using currently
+        CMsvOperation*          iSubOperation;
         // Status of current operation
-        TInt            iError;
-        // Return this if iOperation==NULL.
-        TBuf8<1>        iDummyProg;
-        
+        TInt                    iError;
+        // Return this if iSubOperation==NULL.
+        TBuf8<1>                iDummyProg;
         
-        //we need to be able to prevent completion signal
-        //to framework, because online operations
-        //may be nested ( fetch uses connect operation )
-        //and we don't want sub operation to signal completion.
-        TBool           iSignallingAllowed;
-        //not owned
-        MFSMailRequestObserver& iFSOperationObserver;
-        
-        
+        // <qmail> removed: TBool           iSignallingAllowed;
+        MFSMailRequestObserver* iFSOperationObserver; //not owned
     };
 
-
-#endif//IPSPLGONLINEOPERATION_H
+#endif //IPSPLGONLINEOPERATION_H
--- a/ipsservices/ipssosplugin/inc/ipsplgpanic.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgpanic.h	Mon May 03 12:23:15 2010 +0300
@@ -15,7 +15,6 @@
 *
 */
 
-
 #ifndef IPSPLGPANIC_H
 #define IPSPLGPANIC_H
 
@@ -23,6 +22,7 @@
 #include <e32def.h>
 
 _LIT(KIpsPlgPanicCategory, "IpsPlgSos");
+_LIT( KIpsPlgIpsConnPanic, "IpsConn" ); 
 
 enum TIpsPlgPanic {
     EIpsPlgInvalidMessageIndex,
--- a/ipsservices/ipssosplugin/inc/ipsplgpop3connectop.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgpop3connectop.h	Mon May 03 12:23:15 2010 +0300
@@ -27,13 +27,11 @@
 * Encapsulates connection validation.
 */
 NONSHARABLE_CLASS ( CIpsPlgPop3ConnectOp ) :
-    public CIpsPlgOnlineOperation,
-    public MIpsPlgConnectOpCallback
+    public CIpsPlgOnlineOperation
+    // public MIpsPlgConnectOpCallback <qmail> not used any more
     {
-public://from MIpsPlgConnectOpCallback
-    
-    void CredientialsSetL( TInt aEvent );
-    public:
+    // <qmail> MIpsPlgConnectOpCallback not used any more
+public:
 
         /**
         *
@@ -45,10 +43,9 @@
             TBool aForcePopulate,
             CIpsPlgTimerOperation& aActivityTimer,
             TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
+            MFSMailRequestObserver* aFSOperationObserver,
             TInt aFSRequestId,
-            CIpsPlgEventHandler* aEventHandler=NULL,
-            TBool aSignallingAllowed=ETrue );
+            CIpsPlgEventHandler* aEventHandler=NULL );
 
         /**
         *
@@ -66,7 +63,12 @@
         TFSProgress GetFSProgressL() const;
 
 // <qmail> Connected() used from baseclass
-        virtual TInt IpsOpType() const;
+        
+        // <qmail> change ret val type
+        /**
+         * Returns operation type
+         */
+        TIpsOpType IpsOpType() const;
 
     protected:
 
@@ -102,10 +104,9 @@
             TBool aForcePopulate,
             CIpsPlgTimerOperation& aActivityTimer,
             TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
+            MFSMailRequestObserver* aFSOperationObserver,
             TInt aFSRequestId,
-            CIpsPlgEventHandler* aEventHandler,
-            TBool aSignallingAllowed );
+            CIpsPlgEventHandler* aEventHandler );
 
         /**
         *
--- a/ipsservices/ipssosplugin/inc/ipsplgpop3fetchoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgpop3fetchoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -43,7 +43,7 @@
             const TImPop3GetMailInfo& aGetMailInfo,
             const CMsvEntrySelection& aSel,
             TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
+            MFSMailRequestObserver* aFSOperationObserver,
             TInt aFSRequestId,
             CIpsPlgEventHandler* aEventHandler );
 
@@ -68,6 +68,12 @@
         */
         virtual TFSProgress GetFSProgressL() const;
         
+        // <qmail> new func to this op
+        /**
+         * Returns operation type
+         */
+        TIpsOpType IpsOpType() const;
+        
     protected:
 
         /**
@@ -81,7 +87,7 @@
             CIpsPlgTimerOperation& aActivityTimer,
             const TImPop3GetMailInfo& aGetMailInfo,
             TFSMailMsgId aFSMailBoxId,
-            MFSMailRequestObserver& aFSOperationObserver,
+            MFSMailRequestObserver* aFSOperationObserver,
             TInt aFSRequestId,
             CIpsPlgEventHandler* aEventHandler);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssosplugin/inc/ipsplgremovechildpartoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Remove child part operation
+*
+*/
+
+// <qmail>
+#ifndef IPSPLGREMOVECHILDPARTOPERATION_H
+#define IPSPLGREMOVECHILDPARTOPERATION_H
+
+class MFSMailRequestObserver;
+
+NONSHARABLE_CLASS ( CIpsPlgRemoveChildPartOperation ): public CIpsPlgBaseOperation
+{
+public:
+    /**
+    * Constructor.
+    */
+    static CIpsPlgRemoveChildPartOperation* NewL(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        const TFSMailMsgId& aMessageId,
+        const TFSMailMsgId& aPartId,
+        MFSMailRequestObserver& aOperationObserver,
+        const TInt aRequestId);
+
+    /**
+    * Destructor.
+    */
+    virtual ~CIpsPlgRemoveChildPartOperation();
+
+public: // From CIpsPlgBaseOperation
+    
+    virtual const TDesC8& ProgressL();
+    
+    virtual const TDesC8& GetErrorProgressL(TInt aError);
+
+    virtual TFSProgress GetFSProgressL() const;
+
+    TIpsOpType IpsOpType() const;
+    
+protected:
+    /**
+    * Constructor.
+    */
+    CIpsPlgRemoveChildPartOperation(
+        CMsvSession& aMsvSession,
+        TRequestStatus& aObserverRequestStatus,
+        const TFSMailMsgId& aMessageId,
+        const TFSMailMsgId& aPartId,
+        MFSMailRequestObserver& aOperationObserver,
+        const TInt aRequestId);
+    
+    /**
+    * Constructor.
+    */
+    void ConstructL();
+
+    /**
+    * From CActive
+    */
+    void RunL();
+
+    /**
+    * From CActive
+    */
+    void DoCancel();
+
+    /**
+    * From CActive
+    */
+    TInt RunError(TInt aError);
+    
+    void SignalFSObserver(TInt aStatus, CFSMailMessagePart* aMessagePart );
+
+private:
+    void GetMessageEntryL( TMsvId aId,
+                           CMsvEntry*& aMessageEntry,
+                           CImEmailMessage*& aImEmailMessage );
+    
+    void CleanCachedMessageEntries();
+    
+    void StartOperationL();
+    
+protected:
+    TFSMailMsgId iMessageId;
+    TFSMailMsgId iPartId;
+    MFSMailRequestObserver& iOperationObserver;  // not owned
+    CImEmailMessage* iMessage;
+    CMsvEntry* iCachedEntry;
+    CImEmailMessage* iCachedEmailMessage;
+    TFSProgress iFSProgress;
+};
+
+#endif // IPSPLGREMOVECHILDPARTOPERATION_H
+
+// </qmail>
+
--- a/ipsservices/ipssosplugin/inc/ipsplgsmtpoperation.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsmtpoperation.h	Mon May 03 12:23:15 2010 +0300
@@ -43,9 +43,9 @@
      * @since FS 1.0
      * @return None
      */
+    // <qmail> priority parameter has been removed
     IMPORT_C static CIpsPlgSmtpOperation* NewL( 
         CMsvSession& aMsvSession, 
-        TInt aPriority, 
         TRequestStatus& aObserverRequestStatus,
         MFSMailRequestObserver* aFSOperationObserver = NULL,
         TInt aFSRequestId = KErrNotFound );
@@ -56,9 +56,9 @@
      * @since FS 1.0
      * @return None
      */
+    // <qmail> priority parameter has been removed
     IMPORT_C static CIpsPlgSmtpOperation* NewLC(
         CMsvSession& aMsvSession, 
-        TInt aPriority, 
         TRequestStatus& aObserverRequestStatus,
         MFSMailRequestObserver* aOperationObserver = NULL,
         TInt aFSRequestId = KErrNotFound );
@@ -80,7 +80,11 @@
 
     virtual TFSProgress GetFSProgressL() const;
 
-    TInt IpsOpType() const;
+    // <qmail> change ret val type
+    /**
+     * Returns operation type
+     */
+    TIpsOpType IpsOpType() const;
 
     /**
      * Stard sending operation
@@ -103,9 +107,9 @@
      * @since FS 1.0
      * @return None
      */
+    // <qmail> priority parameter has been removed
     CIpsPlgSmtpOperation( 
         CMsvSession& aMsvSession, 
-        TInt aPriority, 
         TRequestStatus& aObserverRequestStatus,
         MFSMailRequestObserver* aFSOperationObserver,
         TInt aFSRequestId );
--- a/ipsservices/ipssosplugin/inc/ipsplgsmtpservice.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsmtpservice.h	Mon May 03 12:23:15 2010 +0300
@@ -33,10 +33,7 @@
  *  @since FS 1.0
  */
 NONSHARABLE_CLASS( CIpsPlgSmtpService ) : 
-    public CBase,
-// <qmail>
-    public MIpsPlgSingleOpWatcher
-// </qmail>
+    public CBase
     {
 
 public:
@@ -92,47 +89,16 @@
     CFSMailMessage* CreateNewSmtpMessageL(
         const TFSMailMsgId& aMailBoxId );
 
-// <qmail>
-    /**
-     * Creates new email message to message store asynchronously
-     *
-     * @param aMailBoxId msv entry id to mailbox which setting are used
-     * @param aOperationObserver Observer for the operation
-     * @param aRequestId Id of the operation
-     */
-    void CreateNewSmtpMessageL(
-        const TFSMailMsgId& aMailBoxId,
-        MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
-// </qmail>
-
     CFSMailMessage* CreateForwardSmtpMessageL(
         const TFSMailMsgId& aMailBoxId,
         const TFSMailMsgId& aOriginalMessageId );
 
-// <qmail>
-    void CreateForwardSmtpMessageL(
-        const TFSMailMsgId& aMailBoxId,
-        const TFSMailMsgId& aOriginalMessageId,
-        MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
-// </qmail>
-    
     CFSMailMessage* CreateReplySmtpMessageL(
         const TFSMailMsgId& aMailBoxId,
         const TFSMailMsgId& aOriginalMessageId,
         TBool aReplyToAll );
 
-// <qmail>
-    void CreateReplySmtpMessageL(
-        const TFSMailMsgId& aMailBoxId,
-        const TFSMailMsgId& aOriginalMessageId,
-        TBool aReplyToAll,
-        MFSMailRequestObserver& aOperationObserver,
-        const TInt aRequestId );
-// </qmail>
-
-// <qmail>
+// <qmail> moved for public access
     /**
      * Creates proper fs message object and set flags
      * to correspond orginal message flags
@@ -149,15 +115,17 @@
        TMsvId aOriginalMsgId, 
        TMsvId aMailboxId,
        TBool aCopyOriginalMsgProperties = EFalse );
+
+    /**
+     * Changes messages service id
+     *
+     * @since FS 1.0
+     * @param aEntry Original message entry 
+     * @return None
+     */
+    void ChangeServiceIdL( TMsvEntry& aEntry );    
 // </qmail>
 
-// <qmail>
-public: //from MIpsPlgSingleOpWatcher
-
-    void OpCompleted(
-        CIpsPlgSingleOpWatcher& aOpWatcher,
-        TInt aCompletionCode );
-// </qmail>
 protected:
 
     /**
@@ -192,15 +160,6 @@
                               const TDesC& aEmailName );
 
     /**
-     * Changes messages service id
-     *
-     * @since FS 1.0
-     * @param aEntry Original message entry 
-     * @return None
-     */
-    void ChangeServiceIdL( TMsvEntry& aEntry );
-    
-    /**
      * Gets MsvId from msv operations final progress 
      * descriptor, leaves if msvId is null entry
      *
@@ -223,14 +182,6 @@
      */
     void SetCharactersetL( CMsvEntry& aEntry, TUid aCharset );
 
-// <qmail>
-    /**
-    * Cancel, delete and remove operation from iOperations array.
-    * Send Sync Completed event to plugin if operation is sync op
-    */
-    void DeleteAndRemoveOperation( const TInt aOpArrayIndex );
-// </qmail>
-
 private: // data
 
     CIpsPlgSosBasePlugin& iPlugin;
@@ -238,10 +189,6 @@
     CMsvSession& iSession;
     
     CIpsPlgMsgMapper* iMsgMapper;
-
-// <qmail> array of operation watchers
-    RPointerArray<CIpsPlgSingleOpWatcher>   iOperations;
-// </qmail>
     };
 
 #endif /* IPSPLGSMTPSERVICE_H*/
--- a/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -174,6 +174,13 @@
         const TFSMailMsgId& aMailBoxId );
     
 // <qmail>
+    /**
+     * Creates new email message to message store asynchronously
+     *
+     * @param aMailBoxId msv entry id to mailbox which setting are used
+     * @param aOperationObserver Observer for the operation
+     * @param aRequestId Id of the operation
+     */
     virtual void CreateMessageToSendL(
 	    const TFSMailMsgId& aMailBoxId,
         MFSMailRequestObserver& aOperationObserver,
@@ -186,6 +193,14 @@
         const TDesC& aHeaderDescriptor );
 
 // <qmail>
+    /**
+     * Creates a forward email message to message store asynchronously
+     *
+     * @param aMailBoxId msv entry id to mailbox which setting are used
+     * @param aOriginalMessageId id of the forwarded message
+     * @param aOperationObserver Observer for the operation
+     * @param aRequestId Id of the operation
+     */
     virtual void CreateForwardMessageL( 
         const TFSMailMsgId& aMailBoxId,
         const TFSMailMsgId& aOriginalMessageId,
@@ -201,6 +216,15 @@
         const TDesC& aHeaderDescriptor );
 
 // <qmail>
+    /**
+     * Creates new reply message to message store asynchronously
+     *
+     * @param aMailBoxId msv entry id to mailbox which setting are used
+     * @param aOriginalMessageId id of the replied message
+     * @param aReplyToAll reply to all recipients
+     * @param aOperationObserver Observer for the operation
+     * @param aRequestId Id of the operation
+     */
     virtual void CreateReplyMessageL( 
         const TFSMailMsgId& aMailBoxId, 
         const TFSMailMsgId& aOriginalMessageId,
@@ -296,6 +320,17 @@
         const TFSMailMsgId& aMessageId,
         const TFSMailMsgId& aParentPartId,
         const TFSMailMsgId& aPartId);
+    
+    // <qmail>
+    virtual void RemoveChildPartL(
+        const TFSMailMsgId& aMailBoxId,
+        const TFSMailMsgId& aParentFolderId,
+        const TFSMailMsgId& aMessageId,
+        const TFSMailMsgId& aParentPartId,
+        const TFSMailMsgId& aPartId,
+        MFSMailRequestObserver& aOperationObserver,
+        const TInt aRequestId );
+    // </qmail>
         
     virtual CFSMailMessagePart* MessagePartL(  
         const TFSMailMsgId& aMailBoxId, 
--- a/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.hrh	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.hrh	Mon May 03 12:23:15 2010 +0300
@@ -68,8 +68,20 @@
     EIpsOpTypeUnknown,
     EIpsOpTypeImap4SyncOp,
     EIpsOpTypePop3SyncOp,
-    EIpsOpTypeOnlineOp,
     EIpsOpTypeImap4PopulateOp,
-    EIpsOpTypeSmtp
+    EIpsOpTypeSmtp,
+// <qmail> new op types
+    EIpsOpTypeImap4Disconnect,
+    EIpsOpTypePop3Disconnect,
+    EIpsOpTypeFetchAttachmentOp,
+    EIpsOpTypeMoveRemoteOp,
+    EIpsOpTypePop3FetchOp,
+    EIpsOpTypeConnectAndRefreshFolderListOp,
+    EIpsOpTypeCreateMessageOp,
+    EIpsOpTypeMailStorerOp,
+    EIpsOpTypeMessagePartStorerOp,
+    EIpsOpTypeNewChildPartFromFile,
+    EIpsOpTypeRemoveChildPart
+// </qmail>
     };
 #endif /*IPSSOSPLUGIN_HRH_*/
--- a/ipsservices/ipssosplugin/ipssosplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/ipssosplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -52,6 +52,7 @@
 inc/ipsplgcreateforwardmessageoperation.h \
 inc/ipsplgcreatereplymessageoperation.h \
 inc/ipsplgnewchildpartfromfileoperation.h \
+inc/ipsplgremovechildpartoperation.h \
 inc/ipsplgoperationwait.h \
 inc/ipsplgpop3connectop.h \
 inc/ipsplgpop3fetchoperation.h \
@@ -96,6 +97,7 @@
 src/ipsplgcreateforwardmessageoperation.cpp \
 src/ipsplgcreatereplymessageoperation.cpp \
 src/ipsplgnewchildpartfromfileoperation.cpp \
+src/ipsplgremovechildpartoperation.cpp \
 src/ipsplgoperationwait.cpp \
 src/ipsplgpop3connectop.cpp \
 src/ipsplgpop3fetchoperation.cpp \
--- a/ipsservices/ipssosplugin/src/ipsplgbaseoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgbaseoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,12 +15,9 @@
 *
 */
 
-
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-
 // ----------------------------------------------------------------------------
 // CIpsPlgBaseOperation::~CIpsPlgBaseOperation()
 // ----------------------------------------------------------------------------
@@ -30,21 +27,20 @@
     FUNC_LOG;
     // Cancel() should be called in deriving classes;
     }
-
         
 // ----------------------------------------------------------------------------
 // CIpsPlgBaseOperation::CIpsPlgBaseOperation()
 // ----------------------------------------------------------------------------
-//
+// <qmail> priority parameter has been removed
 CIpsPlgBaseOperation::CIpsPlgBaseOperation(
     CMsvSession& aMsvSession,
-    TInt aPriority,
     TRequestStatus& aObserverRequestStatus,
     TInt aFSRequestId,
     TFSMailMsgId aFSMailboxId )
     :
-    CMsvOperation( aMsvSession, aPriority, aObserverRequestStatus ),
-    iFSRequestId( aFSRequestId ), iFSMailboxId( aFSMailboxId )
+    CMsvOperation( aMsvSession, EPriorityStandard, aObserverRequestStatus ),
+    iFSRequestId( aFSRequestId ), 
+    iFSMailboxId( aFSMailboxId )
     {
     FUNC_LOG;
     }
@@ -68,13 +64,3 @@
     FUNC_LOG;
     return iFSMailboxId;
     }
-
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------    
-//   
-TInt CIpsPlgBaseOperation::IpsOpType() const
-    {
-    FUNC_LOG;
-    return EIpsOpTypeUnknown;
-    }
-
--- a/ipsservices/ipssosplugin/src/ipsplgconnectandrefreshfolderlist.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgconnectandrefreshfolderlist.cpp	Mon May 03 12:23:15 2010 +0300
@@ -16,82 +16,71 @@
 *
 */
 
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-EXPORT_C CIpsPlgConnectAndRefreshFolderList* 
-            CIpsPlgConnectAndRefreshFolderList::NewL(
-                    CMsvSession& aSession, 
-                    TInt aPriority, 
-                    TRequestStatus& aObserverRequestStatus,
-                    TMsvId aService, 
-                    TFSMailMsgId& aMailboxId, 
-                    CMsvEntrySelection& aMsvEntry, 
-                    MFSMailRequestObserver& aFSObserver, 
-                    CIpsPlgTimerOperation& aTimer )
+// <qmail> priority parameter has been removed
+// <qmail> rename selection parameter
+CIpsPlgConnectAndRefreshFolderList* CIpsPlgConnectAndRefreshFolderList::NewL(
+    CMsvSession& aSession, 
+    TRequestStatus& aObserverRequestStatus,
+    TMsvId aService, 
+    TFSMailMsgId& aMailboxId, 
+    CMsvEntrySelection* aSelection, 
+    MFSMailRequestObserver* aFSObserver, 
+    CIpsPlgTimerOperation& aTimer )
     {
     FUNC_LOG;
-    CIpsPlgConnectAndRefreshFolderList* self=
-        new (ELeave) CIpsPlgConnectAndRefreshFolderList( 
-                aSession, 
-                aPriority, 
-                aObserverRequestStatus, 
-                aService, 
-                aMailboxId, 
-                aFSObserver, 
-                aTimer );
+    CIpsPlgConnectAndRefreshFolderList* self = new (ELeave) CIpsPlgConnectAndRefreshFolderList( 
+        aSession, 
+        aObserverRequestStatus, 
+        aService, 
+        aMailboxId, 
+        aSelection,
+        aFSObserver, 
+        aTimer );
     CleanupStack::PushL( self );
-    self->ConstructL( aMsvEntry );
+    self->ConstructL();
     CleanupStack::Pop( self );
     return self;
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 CIpsPlgConnectAndRefreshFolderList::CIpsPlgConnectAndRefreshFolderList(
     CMsvSession& aSession, 
-    TInt aPriority, 
     TRequestStatus& aObserverRequestStatus,
     TMsvId aService, 
     TFSMailMsgId& aMailboxId, 
-    MFSMailRequestObserver& aFSObserver,
+    CMsvEntrySelection* aSelection,
+    MFSMailRequestObserver* aFSObserver,
     CIpsPlgTimerOperation& aTimer )
 	:
 	CIpsPlgOnlineOperation(
-	        aSession,
-	        aPriority,
-	        aObserverRequestStatus,
-	        aTimer,
-	        aMailboxId,
-	        aFSObserver,
-	        0, // FSRequestId
-	        EFalse), // SignallingAllowed
+        aSession,
+        aObserverRequestStatus,
+        aTimer,
+        aMailboxId,
+        aFSObserver,
+        0 ), // requestId
 	iState( EIdle ),
-	iMailboxId( aMailboxId ),
-    iSession( aSession ),
-    iService( aService ),
-    iOperation( NULL ),
-    iTimer( NULL ),
-    iMsvEntry( NULL ),
-    iObserverRequestStatus( aObserverRequestStatus )
+    iSelection( aSelection )
     {
+    iService = aService;
     FUNC_LOG;
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgConnectAndRefreshFolderList::ConstructL( 
-        CMsvEntrySelection& aMsvEntry )
+void CIpsPlgConnectAndRefreshFolderList::ConstructL()
     {
     FUNC_LOG;
     BaseConstructL( KSenduiMtmImap4Uid );
-    iMsvEntry = aMsvEntry.CopyL();    
     iState = EStartConnect;
     DoRunL();
-    
     }
 
 // ----------------------------------------------------------------------------
@@ -100,39 +89,10 @@
     {
     FUNC_LOG;
     Cancel();
-    delete iMsvEntry;
-    delete iOperation;
-    }
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgConnectAndRefreshFolderList::StepL()
-    {
-    FUNC_LOG;
+    delete iSelection;
     }
 
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-TBool CIpsPlgConnectAndRefreshFolderList::IsProcessDone() const
-    {
-    FUNC_LOG;
-    TBool ret = EFalse;
-    if ( iState == ECompleted )
-        {
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgConnectAndRefreshFolderList::DialogDismissedL(TInt /*aButtonId*/) 
-    {
-    FUNC_LOG;
-    }
+// <qmail> removed 3 functions from MAknBackgroundProcess
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -144,8 +104,7 @@
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-const TDesC8& CIpsPlgConnectAndRefreshFolderList::GetErrorProgressL( 
-        TInt aError )
+const TDesC8& CIpsPlgConnectAndRefreshFolderList::GetErrorProgressL( TInt aError )
     {
     FUNC_LOG;
     TImap4CompoundProgress& prog = iProgressBuf();
@@ -158,7 +117,6 @@
 TFSProgress CIpsPlgConnectAndRefreshFolderList::GetFSProgressL() const
     {
     FUNC_LOG;
-    // Hardly ever called
     return TFSProgress();
     }
     
@@ -167,7 +125,6 @@
 void CIpsPlgConnectAndRefreshFolderList::DoRunL()
     {
     FUNC_LOG;
-    MFSMailRequestObserver* observer = NULL;
     
     if( iStatus.Int() != KErrNone )
         {
@@ -179,20 +136,19 @@
     switch(iState)
         {
         case EStartConnect:
-            delete iOperation;
-            iOperation = NULL;
-            iOperation = CIpsPlgImap4ConnectOp::NewL(
-                            iSession,
-                            CActive::EPriorityStandard,
-                            iStatus,
-                            iService,
-                            *iTimer,
-                            iMailboxId,
-                            *observer,
-                            NULL, //FSRequestId
-                            NULL, // Event handler
-                            ETrue, // Plain connect
-                            EFalse ); // No signalling needed )
+            delete iSubOperation;
+            iSubOperation = NULL;
+            // <qmail> priority parameter has been removed
+            iSubOperation = CIpsPlgImap4ConnectOp::NewL(
+                iMsvSession,
+                iStatus,
+                iService,
+                iActivityTimer,
+                iFSMailboxId,
+                NULL, // no observer for suboperations
+                0, // no requestId needed
+                NULL, // Event handler
+                ETrue ); // Plain connect
             iState = EConnecting;
             SetActive();
             break;
@@ -200,29 +156,25 @@
 	        {
 	        //  We have successfully completed connecting
 	        TBuf8<1> dummyParam;
-	        delete iOperation;
-	        iOperation = NULL;
-	        InvokeClientMtmAsyncFunctionL( 
-	                    KIMAP4MTMSyncTree, 
-	                    *iMsvEntry,
-	                    iService,
-	                    dummyParam ); 
+	        delete iSubOperation;
+	        iSubOperation = NULL;
+	        InvokeClientMtmAsyncFunctionL( KIMAP4MTMSyncTree, *iSelection, dummyParam ); // <qmail> 1 param removed 
 	        iState = ERefreshing;
 	        SetActive();
 	        }
 	        break;
 	    case ERefreshing:
 	        //  We have successfully completed refreshing the folder list
-	        delete iOperation;
-	        iOperation = NULL;
-	        iOperation = CIpsPlgDisconnectOp::NewL( 
-	                        iSession, 
-	                        iStatus, 
-	                        iService, 
-	                        *iTimer,
-	                        iMailboxId, 
-	                        *observer, 
-	                        NULL );
+	        delete iSubOperation;
+	        iSubOperation = NULL;
+	        iSubOperation = CIpsPlgDisconnectOp::NewL( 
+                iMsvSession, 
+                iStatus, 
+                iService, 
+                iActivityTimer,
+                iFSMailboxId, 
+                NULL, // no observer for suboperations
+                0 ); // no requestId needed
 	        iState = EDisconnecting;
 	        SetActive();
 	        break;
@@ -237,19 +189,24 @@
     }
 
 // ----------------------------------------------------------------------------
-// CIpsPlgOnlineOperation::DoCancel()
 // ----------------------------------------------------------------------------
 //
 void CIpsPlgConnectAndRefreshFolderList::DoCancel()
     {
     FUNC_LOG;
-    if( iOperation )
+    if( iSubOperation )
         {
-        iOperation->Cancel();
+        iSubOperation->Cancel();
         }
     CompleteObserver( KErrCancel );
     iState = ECompleted;
     }
 
-// End of File
-
+// <qmail> new func to this op
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgConnectAndRefreshFolderList::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeConnectAndRefreshFolderListOp;
+    }
--- a/ipsservices/ipssosplugin/src/ipsplgcreateforwardmessageoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgcreateforwardmessageoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -35,10 +35,10 @@
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     TMsvId aOriginalMessageId, 
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId ) 
+    TInt aRequestId ) 
     :
     CIpsPlgCreateMessageOperation(
         aSmtpService,
@@ -64,10 +64,10 @@
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     TMsvId aOriginalMessageId, 
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
+    TInt aRequestId )
     {
     FUNC_LOG;
     CIpsPlgCreateForwardMessageOperation* self =
@@ -113,7 +113,7 @@
         if( err == KErrNone )
             {
             newMessage = iSmtpService->CreateFSMessageAndSetFlagsL( 
-                    msgId, iOriginalMessageId, iMailBoxId, ETrue );
+                    msgId, iOriginalMessageId, iFSMailboxId.Id(), ETrue );
             }
         
         // relay the created message (observer takes ownership)
--- a/ipsservices/ipssosplugin/src/ipsplgcreatemessageoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgcreatemessageoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -30,33 +30,31 @@
 // CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation
 // ----------------------------------------------------------------------------
 //
+// <qmail> priority parameter has been removed
 CIpsPlgCreateMessageOperation::CIpsPlgCreateMessageOperation(
     CIpsPlgSmtpService* aSmtpService,
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     TMsvId aSmtpServiceId, 
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId ) 
+    TInt aRequestId ) 
     :
-    CMsvOperation( 
+    CIpsPlgBaseOperation( 
         aMsvSession, 
-        CActive::EPriorityStandard, 
-        aObserverRequestStatus),
+        aObserverRequestStatus,
+        aRequestId,
+        aMailBoxId),
     iSmtpService(aSmtpService),
     iSmtpServiceId(aSmtpServiceId),
     iPartList(aPartList),
-    iBlank( KNullDesC8 ),
-    iMailBoxId(aMailBoxId),
-    iOperationObserver(aOperationObserver),
-    iRequestId(aRequestId)
+    iOperationObserver(aOperationObserver)
     {
     FUNC_LOG;
     CActiveScheduler::Add( this );
     }
 
-
 // ----------------------------------------------------------------------------
 // CIpsPlgCreateMessageOperation::ConstructL
 // ----------------------------------------------------------------------------
@@ -78,9 +76,9 @@
     TRequestStatus& aObserverRequestStatus,
     TMsvId aSmtpServiceId, 
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
+    TInt aRequestId )
     {
     FUNC_LOG;
     CIpsPlgCreateMessageOperation* self =
@@ -143,7 +141,7 @@
         if( err == KErrNone )
             {
             newMessage = iSmtpService->CreateFSMessageAndSetFlagsL( 
-                    msgId, KErrNotFound, iMailBoxId );
+                    msgId, KErrNotFound, iFSMailboxId.Id() );
             }
         
         // relay the created message (observer takes ownership)
@@ -202,21 +200,20 @@
 void CIpsPlgCreateMessageOperation::SignalFSObserver(
         TInt aStatus, CFSMailMessage* aMessage )
     {
-    TFSProgress result =
-        { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone, aMessage };
-    
     if ( aStatus == KErrCancel )
         {
-        result.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
-        result.iError = KErrCancel;
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+        iFSProgress.iError = KErrCancel;
+        iFSProgress.iParam = NULL;
         }
     else
         {
-        result.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
-        result.iError = aStatus;
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+        iFSProgress.iError = aStatus;
+        iFSProgress.iParam = aMessage;
         }
 
-    TRAP_IGNORE( iOperationObserver.RequestResponseL( result, iRequestId ) );
+    TRAP_IGNORE( iOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
     }
 
 // ----------------------------------------------------------------------------
@@ -236,7 +233,29 @@
             }
         }
 
-    return iBlank;
+    return KNullDesC8;
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgCreateMessageOperation::GetErrorProgressL
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgCreateMessageOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgCreateMessageOperation::GetFSProgressL
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgCreateMessageOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    
+    return iFSProgress;
     }
 
 // ----------------------------------------------------------------------------
@@ -281,6 +300,16 @@
         KUidMsgTypeSMTP);
     }
 
+
+// ----------------------------------------------------------------------------
+// CIpsPlgCreateMessageOperation::IpsOpType
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgCreateMessageOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeCreateMessageOp;
+    }
+
 //  End of File
 
 // </qmail>
--- a/ipsservices/ipssosplugin/src/ipsplgcreatereplymessageoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgcreatereplymessageoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -35,10 +35,10 @@
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     TMsvId aOriginalMessageId, 
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId ) 
+    TInt aRequestId ) 
     :
     CIpsPlgCreateMessageOperation(
         aSmtpService,
@@ -64,10 +64,10 @@
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     TMsvPartList aPartList,
-    TMsvId aMailBoxId,
+    TFSMailMsgId aMailBoxId,
     TMsvId aOriginalMessageId, 
     MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
+    TInt aRequestId )
     {
     FUNC_LOG;
     CIpsPlgCreateReplyMessageOperation* self =
@@ -114,7 +114,7 @@
             {
             //  ...so we can create an FS type message
             newMessage = iSmtpService->CreateFSMessageAndSetFlagsL( 
-                    msgId, iOriginalMessageId, iMailBoxId );
+                    msgId, iOriginalMessageId, iFSMailboxId.Id() );
             CleanupStack::PushL( newMessage ); // ***
         
             // dig out new reply message's header
--- a/ipsservices/ipssosplugin/src/ipsplgdisconnectop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgdisconnectop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,13 +15,10 @@
 *
 */
 
-
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-// Constants and defines
-const TInt KConnectOpPriority = CActive::EPriorityStandard;
+// <qmail> remove priority const
 
 // ----------------------------------------------------------------------------
 // CIpsPlgDisconnectOp::NewL()
@@ -29,23 +26,23 @@
 //
 CIpsPlgDisconnectOp* CIpsPlgDisconnectOp::NewL(
     CMsvSession& aMsvSession,
-                                           TRequestStatus& aObserverRequestStatus,
-                                           TMsvId aService,
-                                           CIpsPlgTimerOperation& aActivityTimer,
-                                           TFSMailMsgId aFSMailBoxId,
-                                           MFSMailRequestObserver& aFSOperationObserver,
-                                           TInt aFSRequestId,
-                                           TBool aDoRemoveAfterDisconnect )
+    TRequestStatus& aObserverRequestStatus,
+    TMsvId aService,
+    CIpsPlgTimerOperation& aActivityTimer,
+    TFSMailMsgId aFSMailBoxId,
+    MFSMailRequestObserver* aFSOperationObserver,
+    TInt aFSRequestId )
     {
     FUNC_LOG;
-    CIpsPlgDisconnectOp* op = new(ELeave) CIpsPlgDisconnectOp(aMsvSession,
+    // <qmail> aDoRemoveAfterDisconnect removed
+    CIpsPlgDisconnectOp* op = new(ELeave) CIpsPlgDisconnectOp(
+        aMsvSession,
         aObserverRequestStatus,
         aService,
         aActivityTimer,
         aFSMailBoxId,
         aFSOperationObserver,
-        aFSRequestId,
-        aDoRemoveAfterDisconnect );
+        aFSRequestId );
         
     CleanupStack::PushL(op);
     op->ConstructL();
@@ -87,9 +84,9 @@
     {
     FUNC_LOG;
     iError = aError;
-    if ( iOperation && iError == KErrNone )
+    if ( iSubOperation && iError == KErrNone )
         {
-        return iOperation->ProgressL();
+        return iSubOperation->ProgressL();
         }
     
     if ( iTEntry.iMtm == KUidMsgTypePOP3 )
@@ -133,20 +130,13 @@
 void CIpsPlgDisconnectOp::DoRunL()
     {
     FUNC_LOG;
-    if( !iDisconnected )
+    if( Connected() )
         {        
         DoDisconnectL();
-        iDisconnected = ETrue;
         }
     else
         {                
-        if ( iDoRemoveAfterDisconnect )
-            {
-            //CIpsSetDataApi* settings = CIpsSetDataApi::NewL( iMsvSession );
-            //CleanupStack::PushL( settings );
-            //settings->RemoveAccountL( iTEntry, iMsvSession );
-            //CleanupStack::PopAndDestroy( settings );
-            }
+        // <qmail> iDoRemoveAfterDisconnect feature from this op has been removed
         CompleteObserver( KErrNone );
         }
     }
@@ -161,19 +151,16 @@
     TMsvId aServiceId,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
-    TInt aFSRequestId,
-    TBool aDoRemoveAfterDisconnect )
+    MFSMailRequestObserver* aFSOperationObserver,
+    TInt aFSRequestId )
     :
     CIpsPlgOnlineOperation(
-    aMsvSession,
-    KConnectOpPriority,
-    aObserverRequestStatus,
-    aActivityTimer,
-    aFSMailBoxId,
-    aFSOperationObserver, 
-    aFSRequestId),
-    iDoRemoveAfterDisconnect( aDoRemoveAfterDisconnect )
+        aMsvSession,
+        aObserverRequestStatus,
+        aActivityTimer,
+        aFSMailBoxId,
+        aFSOperationObserver, 
+        aFSRequestId )
     {
     iService = aServiceId;
     }
@@ -185,9 +172,7 @@
 void CIpsPlgDisconnectOp::ConstructL()
     {    
     FUNC_LOG;
-    iDisconnected = EFalse;
     TMsvId service;
-    
     iMsvSession.GetEntry( iService, service, iTEntry );
     
     if ( iTEntry.iType.iUid == KUidMsvServiceEntryValue )
@@ -196,11 +181,10 @@
         }
     else
         {
-        //should we panic with own codes?
         User::Leave( KErrNotSupported );
         }
     
-    SetActive();
+    // <qmail> SetActive(); moved inside CompleteThis();
     CompleteThis();
     }
     
@@ -211,11 +195,24 @@
 void CIpsPlgDisconnectOp::DoDisconnectL()
     {
     FUNC_LOG;
-    iStatus = KRequestPending;
-    
     TInt cmd = (iTEntry.iMtm == KUidMsgTypePOP3) ? KPOP3MTMDisconnect : KIMAP4MTMDisconnect;
-    
-    InvokeClientMtmAsyncFunctionL(cmd, iService, iService);
+    InvokeClientMtmAsyncFunctionL( cmd, iService ); // <qmail> 1 param removed
     SetActive();
     }
 
+// <qmail> adding this func
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+//
+TIpsOpType CIpsPlgDisconnectOp::IpsOpType() const
+    {
+    FUNC_LOG;
+    if ( iTEntry.iMtm == KUidMsgTypePOP3 )
+        {
+        return EIpsOpTypePop3Disconnect;
+        }
+    else
+        {
+        return EIpsOpTypeImap4Disconnect;
+        }
+    }
--- a/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp	Mon May 03 12:23:15 2010 +0300
@@ -245,11 +245,11 @@
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::NotifyPropertyEventL(
-        TIpsPlgPropertyEvent aEvent )
+void CIpsPlgEventHandler::NotifyPropertyEventL( TIpsPlgPropertyEvent aEvent )
     {
     FUNC_LOG;
-    TBool doNotify = ETrue;
+    INFO_1("pluginid == 0x%x", iPluginId);
+   //<qmail> not used: TBool doNotify = ETrue;
     switch ( aEvent.iEvent )
         {
         case KIpsSosEmailSyncStarted:
@@ -265,8 +265,8 @@
         default:
             break;
         }
-
-    for ( TInt i = 0; doNotify && i < iPropertyObservers.Count(); i++ )
+    // <qmail> removed doNotify bool below
+    for ( TInt i = 0; i < iPropertyObservers.Count(); i++ )
         {
         TRAP_IGNORE( iPropertyObservers[i]->HandlePropertyEventL(
                 aEvent.iEvent,  aEvent.iMailbox,
@@ -1477,62 +1477,81 @@
 void CIpsPlgEventHandler::SignalStartSyncL( const TFSMailMsgId& aAccount )
     {
     FUNC_LOG;
-    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
-    TSSMailSyncState state = StartingSync;
+    // <qmail> no need to create event variable here
+    //    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
+    // <qmail> renamed variable
+    TSSMailSyncState syncState( StartingSync );
 
-    SaveSyncStatusL( aAccount.Id(), TInt( state ) );
+    // <qmail> remove SaveSyncStatusL as it does nothing
+    // SaveSyncStatusL( aAccount.Id(), TInt( syncState ) );
 
     SendDelayedEventL(
-        event,
+        TFSEventMailboxSyncStateChanged,
         aAccount,
-        &state,
+        &syncState,
         NULL,
         NULL );
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::SignalSyncCompletedL(
-    const TFSMailMsgId& aAccount,
-    TInt aError )
+void CIpsPlgEventHandler::SignalSyncCompletedL( const TFSMailMsgId& aAccount, TInt aError )
     {
     FUNC_LOG;
-    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
-
-    TSSMailSyncState state = FinishedSuccessfully;
+    // <qmail> no need to create event variable here
+    //    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
+    // <qmail> renamed variable, and setting value in new func
+    TSSMailSyncState syncState = ConvertCompletionCode( aError );
 
-    if ( aError == KErrCancel )
-        {
-        state = SyncCancelled;
-        }
-    else if ( aError != KErrNone && aError != KErrCancel )
-        {
-        state = SyncError;
-        }
-
-    SaveSyncStatusL( aAccount.Id(), TInt( state ) );
+    // <qmail> remove SaveSyncStatusL as it does nothing
+    //    SaveSyncStatusL( aAccount.Id(), TInt( syncState ) );
 
     SendDelayedEventL(
-        event,
+        TFSEventMailboxSyncStateChanged,
         aAccount,
-        &state,
+        &syncState,
         NULL,
         NULL );
     }
 
+// <qmail> new function
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::SignalMailboxOfflineStateL(
-    const TFSMailMsgId& aAccount )
+TSSMailSyncState CIpsPlgEventHandler::ConvertCompletionCode( TInt aCompletionCode )
     {
     FUNC_LOG;
-    SendDelayedEventL(
-        TFSEventMailboxOffline,
-        aAccount,
-        NULL,
-        NULL,
-        NULL );
+    switch ( aCompletionCode )
+        {
+        case KErrNone:
+            return FinishedSuccessfully;
+        case KErrCancel:
+            return SyncCancelled;
+        case KErrImapBadLogon:
+        case KPop3InvalidUser:
+        case KPop3InvalidLogin:
+        case KPop3InvalidApopLogin:
+            return PasswordNotVerified;
+        default:
+            return SyncError;
+        }
     }
+// </qmail>
+
+//<qmail> not used at all
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+//void CIpsPlgEventHandler::SignalMailboxOfflineStateL(
+//    const TFSMailMsgId& aAccount )
+//    {
+//    FUNC_LOG;
+//    SendDelayedEventL(
+//        TFSEventMailboxOffline,
+//        aAccount,
+//        NULL,
+//        NULL,
+//        NULL );
+//    }
+// </qmail>
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -1541,101 +1560,102 @@
     FUNC_LOG;
     }
 
+//<qmail> not used at all
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::SaveSyncStatusL( TMsvId aMailboxId, TInt /*aState*/ )
-    {
-    FUNC_LOG;
-    TMsvEntry tEntry;
-    TMsvId service;
-    if( !iSession )
-        {
-        User::Leave( KErrNotReady );
-        }
-    TInt err = iSession->GetEntry( aMailboxId, service, tEntry );
-
-    if( err == KErrNone )
-        {
-        }
-    }
+//void CIpsPlgEventHandler::SaveSyncStatusL( TMsvId aMailboxId, TInt /*aState*/ )
+//    {
+//    FUNC_LOG;
+//    TMsvEntry tEntry;
+//    TMsvId service;
+//    if( !iSession )
+//        {
+//        User::Leave( KErrNotReady );
+//        }
+//    TInt err = iSession->GetEntry( aMailboxId, service, tEntry );
+//
+//    if( err == KErrNone )
+//        {
+//        }
+//    }
+// </qmail>
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 void CIpsPlgEventHandler::HandlePropertyEventL(
-        TInt aEvent,
-        TInt aMailbox,
-        TInt /*aPluginId*/,
-        TInt aError )
+    TInt aEvent,
+    TInt aMailbox,
+    TInt /*aPluginId*/,
+    TInt /*aError*/ )
     {
     FUNC_LOG;
-    RProcess process;
-    if ( aEvent == EIPSSosPswErr && process.SecureId() == FREESTYLE_FSSERVER_SID )
-        {
-        TFSMailMsgId mbox = SymId2FsId( aMailbox,
-                        iBasePlugin.MtmId().iUid );
-        TFSMailEvent event = TFSEventException;
-        TFsEmailNotifierSystemMessageType msg = EFsEmailNotifErrLoginUnsuccesfull;
-        SendDelayedEventL( event, mbox, &msg, NULL , (MFSMailExceptionEventCallback*)this );
-        }
-    else if ( aEvent == EIPSSosCredientialsSet || aEvent == EIPSSosCredientialsCancelled )
-        {
-        if ( iConnOpCallback )
-            {
-            iConnOpCallback->CredientialsSetL( aEvent );
-
-            //Set to null after we have used this.
-            //don't delete, we don't own this.
-            iConnOpCallback=NULL;
-            }
-        //if password was changed, we need to send settings changed event also.
-        if( aEvent == EIPSSosCredientialsSet )
-            {
-            TFSMailMsgId mbox = SymId2FsId( aMailbox,
-                    iBasePlugin.MtmId().iUid );
-            TFSMailEvent event = TFSEventMailboxSettingsChanged;
-            SendDelayedEventL( event, mbox, NULL, NULL , NULL );
-            }
-        }
-    else if ( aEvent == EIPSSosSettingsChanged )
+//  <qmail> remove these events 
+//    RProcess process;
+//    if ( aEvent == EIPSSosPswErr && process.SecureId() == FREESTYLE_FSSERVER_SID )
+//        {
+//        TFSMailMsgId mbox = SymId2FsId( aMailbox,
+//                        iBasePlugin.MtmId().iUid );
+//        TFSMailEvent event = TFSEventException;
+//        TFsEmailNotifierSystemMessageType msg = EFsEmailNotifErrLoginUnsuccesfull;
+//        SendDelayedEventL( event, mbox, &msg, NULL , (MFSMailExceptionEventCallback*)this );
+//        }
+//    else if ( aEvent == EIPSSosCredientialsSet || aEvent == EIPSSosCredientialsCancelled )
+//        {
+//        if ( iConnOpCallback )
+//            {
+//            iConnOpCallback->CredientialsSetL( aEvent );
+//
+//            //Set to null after we have used this.
+//            //don't delete, we don't own this.
+//            iConnOpCallback=NULL;
+//            }
+//        //if password was changed, we need to send settings changed event also.
+//        if( aEvent == EIPSSosCredientialsSet )
+//            {
+//            TFSMailMsgId mbox = SymId2FsId( aMailbox,
+//                    iBasePlugin.MtmId().iUid );
+//            TFSMailEvent event = TFSEventMailboxSettingsChanged;
+//            SendDelayedEventL( event, mbox, NULL, NULL , NULL );
+//            }
+//        }
+//    else
+// </qmail>
+    if ( aEvent == EIPSSosSettingsChanged )
         {
         TFSMailMsgId mbox = SymId2FsId( aMailbox,
                 iBasePlugin.MtmId().iUid );
         TFSMailEvent event = TFSEventMailboxSettingsChanged;
         SendDelayedEventL( event, mbox, NULL, NULL , NULL );
         }
-    else if ( aEvent == KIpsSosEmailSyncCompleted &&
-            aError == KErrImapBadLogon )
-        {
-        TFSMailMsgId mbox = SymId2FsId( aMailbox,
-                        iBasePlugin.MtmId().iUid );
-        TFSMailEvent event = TFSEventException;
-        TFsEmailNotifierSystemMessageType msg = EFsEmailNotifErrLoginUnsuccesfull;
-        SendDelayedEventL( event, mbox, &msg, NULL , this );
-        }
+
+// <qmail> no need for KIpsSosEmailSyncCompleted event handling here,
+// because it has just been sent in NotifyPropertyEventL()
     }
 
+// <qmail> removing unused functions
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+//void CIpsPlgEventHandler::QueryUsrPassL( TMsvId aMbox, MIpsPlgConnectOpCallback* aCallback )
+//    {
+//    FUNC_LOG;
+//    iConnOpCallback = aCallback;//can be null, doesn't matter.
+//    SetNewPropertyEvent( aMbox, EIPSSosPswErr, 0 );
+//    }
+
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::QueryUsrPassL( TMsvId aMbox, MIpsPlgConnectOpCallback* aCallback )
-    {
-    FUNC_LOG;
-    iConnOpCallback = aCallback;//can be null, doesn't matter.
-    SetNewPropertyEvent( aMbox, EIPSSosPswErr, 0 );
-    }
-
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::SignalCredientialsSetL( TInt aMailboxId, TBool aCancelled )
-    {
-    FUNC_LOG;
-    TInt event = EIPSSosCredientialsSet;
-    if ( aCancelled )
-        {
-        event = EIPSSosCredientialsCancelled;
-        }
-
-    SetNewPropertyEvent( aMailboxId, event, 0 );
-    }
+//void CIpsPlgEventHandler::SignalCredientialsSetL( TInt aMailboxId, TBool aCancelled )
+//    {
+//    FUNC_LOG;
+//    TInt event = EIPSSosCredientialsSet;
+//    if ( aCancelled )
+//        {
+//        event = EIPSSosCredientialsCancelled;
+//        }
+//
+//    SetNewPropertyEvent( aMailboxId, event, 0 );
+//    }
+// </qmail>
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -1679,24 +1699,21 @@
 void CIpsPlgEventHandler::CollectSubscribedFoldersL( TMsvId /*aMailboxId*/ )
     {
     FUNC_LOG;
-    if ( iSession )
-        {
-        }
+// <qmail> code removed as it does nothing; keeping the func as it probably will be needed
     }
 
+// <qmail> not needed
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgEventHandler::ExceptionEventCallbackL(
-        TFSMailMsgId aMailboxId,
-        TInt /*aEventType*/,
-        TBool /*aResponse*/ )
-    {
-    FUNC_LOG;
-    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
-    TSSMailSyncState state = PasswordNotVerified;
-
-    SendDelayedEventL( event, aMailboxId, &state, NULL , NULL );
-    }
-
-// End of File
-
+//void CIpsPlgEventHandler::ExceptionEventCallbackL(
+//        TFSMailMsgId aMailboxId,
+//        TInt /*aEventType*/,
+//        TBool /*aResponse*/ )
+//    {
+//    FUNC_LOG;
+//    TFSMailEvent event = TFSEventMailboxSyncStateChanged;
+//    TSSMailSyncState state = PasswordNotVerified;
+//
+//    SendDelayedEventL( event, aMailboxId, &state, NULL , NULL );
+//    }
+// </qmail>
--- a/ipsservices/ipssosplugin/src/ipsplgimap4connectop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4connectop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -16,7 +16,6 @@
 *
 */
 
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
@@ -26,29 +25,24 @@
 const TInt KIpsSetDataFullBodyOnly          = -3;
 // </qmail>
 
-_LIT( KIpsPlgIpsConnPanic, "IpsConn" ); 
-
 // ----------------------------------------------------------------------------
-// CIpsPlgImap4ConnectOp::NewL()
+// CIpsPlgImap4ConnOp::NewL()
 // ----------------------------------------------------------------------------
-// 
+// <qmail> priority parameter has been removed
 CIpsPlgImap4ConnectOp* CIpsPlgImap4ConnectOp::NewL(
     CMsvSession& aMsvSession,
-	TInt aPriority,
     TRequestStatus& aObserverRequestStatus,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     CIpsPlgEventHandler* aEventHandler,
-    TBool aDoPlainConnect,
-    TBool aSignallingAllowed )
+    TBool aDoPlainConnect )
     {
     FUNC_LOG;
     CIpsPlgImap4ConnectOp* self = new (ELeave) CIpsPlgImap4ConnectOp(
         aMsvSession, 
-        aPriority, 
         aObserverRequestStatus,
         aService, 
         aActivityTimer,
@@ -56,7 +50,6 @@
         aFSOperationObserver,
         aFSRequestId,
         aDoPlainConnect,
-        aSignallingAllowed,
         aEventHandler );
         
     CleanupStack::PushL( self );
@@ -68,29 +61,27 @@
 // ----------------------------------------------------------------------------
 // CIpsPlgImap4ConnectOp::CIpsPlgImap4ConnectOp()
 // ----------------------------------------------------------------------------
-// 
+// <qmail> priority parameter has been removed
 CIpsPlgImap4ConnectOp::CIpsPlgImap4ConnectOp(
     CMsvSession& aMsvSession,
-	TInt aPriority,
     TRequestStatus& aObserverRequestStatus,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     TBool aDoPlainConnect,
-    TBool aSignallingAllowed,
     CIpsPlgEventHandler* aEventHandler)
     :
     CIpsPlgOnlineOperation(
 	    aMsvSession,
-	    aPriority,
 	    aObserverRequestStatus,
 	    aActivityTimer,
 	    aFSMailBoxId,
 	    aFSOperationObserver,
-	    aFSRequestId,
-    	aSignallingAllowed ),
+	    aFSRequestId ),
+    iState( EStateIdle ),
+    iSelection( NULL ),
     iDoPlainConnect( aDoPlainConnect ),
     iEventHandler( aEventHandler ),
     iIsSyncStartedSignaled( EFalse )
@@ -108,7 +99,7 @@
     FUNC_LOG;
     Cancel();
     delete iSelection;
-    iState = EStateIdle;
+    // <qmail> setting state in destructor makes no sense
     }
 
 // ----------------------------------------------------------------------------
@@ -130,9 +121,19 @@
         User::Panic( KIpsPlgIpsConnPanic, KErrNotSupported );
         }
     
-	iState = EStateStartConnect;
+    // <qmail> moved here from StartL which was removed
+    if ( Connected() && iDoPlainConnect )
+        {
+        // trivial case: connect requested, but already connected
+        // (sync is done automatically on background)
+        iState = EStateIdle;
+        }
+    else
+        {
+        iState = EStateStartConnect;
+        }
     iStatus = KRequestPending;    
-    SetActive();
+    // <qmail> SetActive(); moved inside CompleteThis();
     CompleteThis();
     }
 
@@ -147,9 +148,9 @@
         {
         return GetErrorProgressL( iError );
         }
-    else if(iOperation)
+    else if( iSubOperation )
         {
-        return iOperation->ProgressL();
+        return iSubOperation->ProgressL();
         }
         
     TImap4CompoundProgress& prog = iProgressBuf();
@@ -181,9 +182,7 @@
     result.iError = KErrNone;
     switch( iState )
         {
-        case EStateQueryingDetails:
-            result.iProgressStatus = TFSProgress::EFSStatus_Authenticating;
-            break;
+        // <qmail> case EStateQueryingDetails removed
         case EStateStartConnect:
             result.iProgressStatus = TFSProgress::EFSStatus_Started;
             break;
@@ -206,8 +205,8 @@
 // ----------------------------------------------------------------------------
 // CIpsPlgImap4ConnectOp::IpsOpType()
 // ----------------------------------------------------------------------------
-// 
-TInt CIpsPlgImap4ConnectOp::IpsOpType() const
+// <qmail> return type
+TIpsOpType CIpsPlgImap4ConnectOp::IpsOpType() const
     {
     FUNC_LOG;
     return EIpsOpTypeImap4SyncOp;
@@ -221,9 +220,9 @@
 void CIpsPlgImap4ConnectOp::DoCancel()
     {
     FUNC_LOG;
-    if( iOperation )
+    if( iSubOperation )
         {
-        iOperation->Cancel();
+        iSubOperation->Cancel();
         }
     SignalSyncCompleted( KErrCancel );
     CompleteObserver( KErrCancel );
@@ -236,48 +235,34 @@
 void CIpsPlgImap4ConnectOp::DoRunL()
     {
     FUNC_LOG;
-    TInt err = KErrNone;
-    __ASSERT_DEBUG( !(iOperation && iOperation->IsActive()), 
-            User::Panic( KIpsPlgPanicCategory, KErrGeneral ) );
-    if ( iOperation )
+    TInt err( KErrNone );
+    __ASSERT_DEBUG( !(iSubOperation && iSubOperation->IsActive()),
+        User::Panic( KIpsPlgPanicCategory, KErrGeneral ) );
+    if ( iSubOperation )
         {
-        err = iOperation->iStatus.Int();
-        delete iOperation;
-        iOperation = NULL;
+        err = iSubOperation->iStatus.Int();
+        delete iSubOperation;
+        iSubOperation = NULL;
         }
     
     switch( iState )
         {
-        case EStateQueryingDetails:
-            
-            if ( KErrNone != err )
-                {
-                // user might be cancelled query
-                // or it IS EMPTY
-                iError = err;
-                iState = EStateIdle;
-                }
-            else
-                {
-                // Retry connect.
-                DoConnectOpL();
-                }
+        // <qmail> removing case EStateQueryingDetails
+        case EStateStartConnect:
+            // <qmail> remove StartL() func and replace it directly with DoConnectOpL
+            DoConnectOpL();
             break;
-        case EStateStartConnect:
-        	StartL();
-        	break;
         case EStateConnectAndSync:
             // Connection completed
                 
-            if( err == KErrImapBadLogon )
+            // <qmail> all errors should fail the op
+            if( err )
                 {
-                // Login details are wrong.
-                QueryUserPwdL();
-                iState = EStateQueryingDetails;
-                
-                err = KErrNone;
+                iState = EStateIdle;
+                // <qmail> SetActive(); moved inside CompleteThis();
+                CompleteThis();
                 }
-            else if ( err == KErrNone )
+            else
                 {
                 // no errors in connection
                 if( !iDoPlainConnect )
@@ -288,29 +273,28 @@
                     {
                     // Get on with others using this class for connection only
                     iState = EStateIdle;
-                    SetActive();
+                    // <qmail> SetActive(); moved inside CompleteThis();
                     CompleteThis();
                     }
                 }
             break;
         case EStatePopulateAllCompleted:
-            CIpsPlgSyncStateHandler::SaveSuccessfulSyncTimeL(
-                    iMsvSession, iService );
+            CIpsPlgSyncStateHandler::SaveSuccessfulSyncTimeL( iMsvSession, iService );
             // break command is intentially left out
         case EStateCompleted:
             if ( err == KErrNone )
                 {
                 iState = EStateIdle;
-                SetActive();
+                // <qmail> SetActive(); moved inside CompleteThis();
                 CompleteThis();
                 }
             break;
         case EStateIdle:
         default:
-            if ( iOperation )
+            if ( iSubOperation )
                 {
-                delete iOperation;
-                iOperation = NULL;
+                delete iSubOperation;
+                iSubOperation = NULL;
                 }
             CompleteObserver();
             break;
@@ -324,15 +308,7 @@
         }
     }
 
-// ----------------------------------------------------------------------------
-// CIpsPlgImap4ConnectOp::HandleImapConnectionEvent()
-// ----------------------------------------------------------------------------
-// 
-void CIpsPlgImap4ConnectOp::HandleImapConnectionEvent(
-    TImapConnectionEvent /*aConnectionEvent*/ )
-    {
-    //not used at the moment
-    }
+// <qmail> CIpsPlgImap4ConnectOp::HandleImapConnectionEvent() removed
 
 // ----------------------------------------------------------------------------
 // CIpsPlgImap4ConnectOp::RequestResponseL()
@@ -355,44 +331,36 @@
 
     iSelection->ResizeL(0);
     iSelection->AppendL(iService);
-    
+
+    // <qmail>
+    iStatus = KRequestPending;
     if ( iDoPlainConnect && !Connected() )
         {
         TBuf8<1> parameter;
-        iStatus = KRequestPending;
         // connect and synchronise starts background sync or idle
-        iOperation = iBaseMtm->InvokeAsyncFunctionL(
-                KIMAP4MTMConnect, *iSelection, parameter, iStatus);
-        // also set sync started
-        SignalSyncStarted();
-        iState = EStateConnectAndSync;
-        SetActive();
+        iSubOperation = iBaseMtm->InvokeAsyncFunctionL(
+            KIMAP4MTMConnect, *iSelection, parameter, iStatus);
         }
     else if ( Connected() )
         {
         // in this point cant use "connect and do something" commands,
         // use regular sync, when new mails is populated elsewhere.
         TBuf8<1> parameter;
-        iStatus = KRequestPending;
-        iOperation = iBaseMtm->InvokeAsyncFunctionL(
-                KIMAP4MTMFullSync, *iSelection, parameter, iStatus);
-        // also set sync started
-        SignalSyncStarted();
-        iState = EStateConnectAndSync;
-        SetActive();
+        iSubOperation = iBaseMtm->InvokeAsyncFunctionL(
+            KIMAP4MTMFullSync, *iSelection, parameter, iStatus);
         }
     else
         {
-        TPckg<MMsvImapConnectionObserver*> parameter(this);
-        // connect and synchronise starts background sync or idle
-        iStatus = KRequestPending;
-        iOperation = iBaseMtm->InvokeAsyncFunctionL(
-                KIMAP4MTMConnectAndSyncCompleteAfterFullSync, 
-                *iSelection, parameter, iStatus);
-        SignalSyncStarted();
-        iState = EStateConnectAndSync;
-        SetActive();
+        // the used command requires an observer to be given even though we're not using it
+        TPckg<MMsvImapConnectionObserver*> parameter( NULL );
+        iSubOperation = iBaseMtm->InvokeAsyncFunctionL(
+            KIMAP4MTMConnectAndSyncCompleteAfterFullSync, 
+            *iSelection, parameter, iStatus );
         }
+    SignalSyncStarted();
+    iState = EStateConnectAndSync;
+    SetActive();
+    // </qmail>
 	}
 
 // ----------------------------------------------------------------------------
@@ -403,116 +371,53 @@
     FUNC_LOG;
     
     // construct partial fetch info according to imap settings
-    CImImap4Settings* settings = new ( ELeave ) CImImap4Settings();
-    CleanupStack::PushL( settings );
-    CEmailAccounts* accounts = CEmailAccounts::NewLC();
-    TImapAccount imapAcc;
-    accounts->GetImapAccountL(iService, imapAcc );
-    accounts->LoadImapSettingsL( imapAcc, *settings );
+    // <qmail> new function to wrap settings loading
+    CImImap4Settings* settings = GetImapSettingsLC();
     TImImap4GetPartialMailInfo info;
     ConstructImapPartialFetchInfo( info, *settings );
     TPckgBuf<TImImap4GetPartialMailInfo> package(info);
-    CleanupStack::PopAndDestroy( 2, settings );
+    CleanupStack::PopAndDestroy( settings );
+    settings = NULL;
     
+    // do populate operation unless only headers should be fetched
     if ( info.iTotalSizeLimit != KIpsSetDataHeadersOnly )
         {
-        SignalSyncStarted();
-        CMsvEntry* cEntry = iMsvSession.GetEntryL( iService );
-        CleanupStack::PushL( cEntry );
-        CMsvEntrySelection* childrenSelection = cEntry->ChildrenL();
-        CleanupStack::PushL( childrenSelection );
-        if ( childrenSelection->Count() )
-            {
-            // only inbox is set, do we have to populate other folders also
-            TMsvId id = (*childrenSelection)[0];
-            CMsvEntry* cEntry2 = iMsvSession.GetEntryL( id );
-            CleanupStack::PushL( cEntry2 );
-            delete iSelection;
-            iSelection = NULL;
-            iSelection = cEntry2->ChildrenWithTypeL( KUidMsvMessageEntry );
-            CleanupStack::PopAndDestroy( cEntry2 );
-            
-            }
-        CleanupStack::PopAndDestroy( childrenSelection );
-    
+        // Update iSelection (which will be given to populate op)
+        // <qmail> new function to wrap iSelection populating
+        CreateInboxMessagesSelectionL();
+        
         iStatus = KRequestPending;
-        CIpsPlgTimerOperation* dummy = NULL;
         iBaseMtm->SwitchCurrentEntryL( iService );
-        iOperation = CIpsPlgImap4PopulateOp::NewL(
-                iMsvSession,
-                this->iStatus,
-                CActive::EPriorityLow,
-                iService,
-                *dummy,
-                info,
-                *iSelection,
-                iFSMailboxId,
-                *this,
-                0,
-                iEventHandler );
+        // <qmail> priority parameter has been removed
+        iSubOperation = CIpsPlgImap4PopulateOp::NewL(
+            iMsvSession,
+            iStatus,
+            iService,
+            // <qmail> passing in activity timer; only place where NULL "reference" was used
+            // <qmail> -> can get rid of checking existence of a reference memeber...
+            iActivityTimer,
+            info,
+            *iSelection,
+            iFSMailboxId,
+            NULL, // no observer for suboperation
+            0, // requestId can be 0
+            iEventHandler );
         
         SetActive();
-        CleanupStack::PopAndDestroy( cEntry );
+        // <qmail> SignalSyncStarted signal moved to happen later in case something goes wrong
+        SignalSyncStarted();
         }
     else
         {
-        SetActive();
+        // <qmail> SetActive(); moved inside CompleteThis();
         CompleteThis();
         }
     iState = EStatePopulateAllCompleted;
     }
 
-// ----------------------------------------------------------------------------
-// CIpsPlgImap4ConnectOp::StartL()
-// ----------------------------------------------------------------------------    
-// 
-void CIpsPlgImap4ConnectOp::StartL()
-    {
-    FUNC_LOG;
-    if ( Connected() && iDoPlainConnect )
-        {
-        // sync is done background, no explicit supported
-        iState = EStateIdle;
-        SetActive();
-        CompleteThis();
-        }
-    else 
-        {
-        DoConnectOpL();
-        }
-    }    
-
-// ----------------------------------------------------------------------------
-// CIpsPlgImap4ConnectOp::QueryUserPwdL()
-// ----------------------------------------------------------------------------
-// 
-void CIpsPlgImap4ConnectOp::QueryUserPwdL()
-    {
-    iEventHandler->QueryUsrPassL( iService, this );
-    }
-
-    
-// ----------------------------------------------------------------------------
-// CIpsPlgImap4ConnectOp::GetOperationErrorCodeL()
-// ----------------------------------------------------------------------------    
-//     
-/*TInt CIpsPlgImap4ConnectOp::GetOperationErrorCodeL( )
-    {
-    if ( !iOperation )
-        {
-        return KErrNotFound;
-        }
-    if ( !iOperation->IsActive() && iOperation->iStatus.Int() != KErrNone )
-        {
-        return iOperation->iStatus.Int();
-        }
-     
-    TPckgBuf<TImap4CompoundProgress> paramPack;
-    paramPack.Copy( iOperation->ProgressL() );
-    const TImap4CompoundProgress& comProgg = paramPack();
-
-    return comProgg.iGenericProgress.iErrorCode;
-    }*/
+// <qmail> remove CIpsPlgImap4ConnectOp::StartL()
+// <qmail> remove CIpsPlgImap4ConnectOp::QueryUserPwdL()
+// <qmail> remove CIpsPlgImap4ConnectOp::GetOperationErrorCodeL()
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------       
@@ -524,8 +429,7 @@
         // mark that sync is signaled to prevent 
         // sending necessary event
         iIsSyncStartedSignaled = ETrue;
-        iEventHandler->SetNewPropertyEvent( 
-                iService, KIpsSosEmailSyncStarted, KErrNone );
+        iEventHandler->SetNewPropertyEvent( iService, KIpsSosEmailSyncStarted, KErrNone );
         }
     }
 
@@ -534,36 +438,22 @@
 void CIpsPlgImap4ConnectOp::SignalSyncCompleted( TInt aError )
     {
     FUNC_LOG;
-    if ( iEventHandler && aError == KErrImapBadLogon )
+    // <qmail> don't test for aError code; all situations should complete op
+    if ( iEventHandler )
         {
-        iEventHandler->SetNewPropertyEvent( 
-                iService, KIpsSosEmailSyncCompleted, aError );
+        iEventHandler->SetNewPropertyEvent( iService, KIpsSosEmailSyncCompleted, aError );
         iIsSyncStartedSignaled = EFalse;
         }
     }
 
-
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-void CIpsPlgImap4ConnectOp::CredientialsSetL( TInt aEvent )
-    {
-    FUNC_LOG;
-    if ( aEvent == EIPSSosCredientialsCancelled )
-        {
-        CompleteObserver( KErrCancel );
-        }
-    //password has been set, continue with operation
-    
-    SetActive();
-    CompleteThis();
-    }
+// <qmail> Removing CIpsPlgImap4ConnectOp::CredientialsSetL 
 
 // <qmail>
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 void CIpsPlgImap4ConnectOp::ConstructImapPartialFetchInfo( 
-        TImImap4GetPartialMailInfo& aInfo, CImImap4Settings& aImap4Settings )
-
+    TImImap4GetPartialMailInfo& aInfo, 
+    const CImImap4Settings& aImap4Settings )
     {
     FUNC_LOG;
     TInt sizeLimit = aImap4Settings.BodyTextSizeLimit();
@@ -593,7 +483,6 @@
     else
         {
         aInfo.iTotalSizeLimit = sizeLimit*1024; 
-        // set zero when it not documentated does total size overrides these 
         aInfo.iAttachmentSizeLimit = 0;
         aInfo.iMaxEmailSize = sizeLimit*1024;
         aInfo.iBodyTextSizeLimit = sizeLimit*1024;
@@ -601,6 +490,47 @@
         aInfo.iGetMailBodyParts = EGetImap4EmailBodyAlternativeText;
         }
     }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+CImImap4Settings* CIpsPlgImap4ConnectOp::GetImapSettingsLC()
+    {
+    FUNC_LOG;
+    CImImap4Settings* settings = new ( ELeave ) CImImap4Settings();
+    CleanupStack::PushL( settings );
+    CEmailAccounts* accounts = CEmailAccounts::NewLC();
+    TImapAccount imapAcc;
+    accounts->GetImapAccountL(iService, imapAcc );
+    accounts->LoadImapSettingsL( imapAcc, *settings );
+    CleanupStack::PopAndDestroy( accounts );
+    return settings;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+void CIpsPlgImap4ConnectOp::CreateInboxMessagesSelectionL()
+    {
+    FUNC_LOG;
+    // get children of service entry 
+    CMsvEntry* cEntry = iMsvSession.GetEntryL( iService );
+    CleanupStack::PushL( cEntry );
+    CMsvEntrySelection* childrenSelection = cEntry->ChildrenL();
+    CleanupStack::PopAndDestroy( cEntry );
+    cEntry = NULL;
+    CleanupStack::PushL( childrenSelection );
+
+    if ( childrenSelection->Count() )
+        {
+        TMsvId id = (*childrenSelection)[0]; // index 0 == inbox
+        cEntry = iMsvSession.GetEntryL( id ); // reusing cEntry pointer for Inbox entry
+        CleanupStack::PushL( cEntry );
+        delete iSelection;
+        iSelection = NULL;
+        // get message-type children of inbox
+        iSelection = cEntry->ChildrenWithTypeL( KUidMsvMessageEntry );
+        CleanupStack::PopAndDestroy( cEntry );
+        }
+    CleanupStack::PopAndDestroy( childrenSelection );
+    }
+
 // </qmail>
-// End of File
-
--- a/ipsservices/ipssosplugin/src/ipsplgimap4fetchattachmentop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4fetchattachmentop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -20,9 +20,8 @@
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-// Constants and defines
-const TInt KFetchOpPriority = CActive::EPriorityStandard;
-const TInt KIpsAttaFetchProgressReportInterval = 1000000; // 1 sec
+// <qmail> priority const has been removed
+const TInt KIpsAttaFetchProgressReportInterval = 200000; // 0.2 sec
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -97,17 +96,16 @@
     }
 
 // ----------------------------------------------------------------------------
+// CIpsPlgImap4FetchAttachmentOp
 // ----------------------------------------------------------------------------
 CIpsPlgImap4FetchAttachmentOp* CIpsPlgImap4FetchAttachmentOp::NewL(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aFunctionId,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
-    const TImImap4GetMailInfo& aGetMailInfo,
-    const CMsvEntrySelection& aSel,
+    const CMsvEntrySelection* aSelection,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId )
     {
     FUNC_LOG;
@@ -115,44 +113,40 @@
         ELeave) CIpsPlgImap4FetchAttachmentOp(
         aMsvSession,
         aObserverRequestStatus,
-        aFunctionId,
         aService,
         aActivityTimer,
-        aGetMailInfo,
+        aSelection,
         aFSMailBoxId,
         aFSOperationObserver,
         aFSRequestId );
         
     CleanupStack::PushL( op );
-    op->ConstructL( aSel );
+    op->ConstructL();
     CleanupStack::Pop( op );
     return op;
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 CIpsPlgImap4FetchAttachmentOp::CIpsPlgImap4FetchAttachmentOp(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aFunctionId,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
-    const TImImap4GetMailInfo& aGetMailInfo,
+    const CMsvEntrySelection* aSelection,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId )
     :
     CIpsPlgOnlineOperation(
-    aMsvSession,
-    KFetchOpPriority,
-    aObserverRequestStatus,
-    aActivityTimer,
-    aFSMailBoxId,
-    aFSOperationObserver,
-    aFSRequestId),
-    iSelection( NULL ),
-    iGetMailInfo(aGetMailInfo),
-    iFunctionId(aFunctionId)
+        aMsvSession,
+        aObserverRequestStatus,
+        aActivityTimer,
+        aFSMailBoxId,
+        aFSOperationObserver,
+        aFSRequestId ),
+    iSelection( aSelection )
     {
     FUNC_LOG;
     iService = aService;
@@ -165,15 +159,15 @@
     FUNC_LOG;
     delete iSelection;
     delete iProgReport;
+    delete iFetchErrorProgress;
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgImap4FetchAttachmentOp::ConstructL( const CMsvEntrySelection& aSel )
+void CIpsPlgImap4FetchAttachmentOp::ConstructL()
     {
     FUNC_LOG;
     BaseConstructL( KUidMsgTypeIMAP4 );
-    iSelection = aSel.CopyL();
     DoConnectL();
     }
 
@@ -185,21 +179,20 @@
     iState = EStateConnecting;
     iStatus = KRequestPending;
 
+    // <qmail> priority parameter has been removed
     CIpsPlgImap4ConnectOp* connOp = CIpsPlgImap4ConnectOp::NewL(
         iMsvSession,
-        KFetchOpPriority,
         iStatus, 
         iService,
         iActivityTimer,
         iFSMailboxId,
-        iFSOperationObserver,
-        iFSRequestId,
+        NULL, // no observer for subopertaion
+        0,    // no requestId needed
         NULL, // event handler not needed whin plain connect
-        ETrue,
-        EFalse );
+        ETrue );
         
-    delete iOperation;
-    iOperation = connOp;
+    delete iSubOperation;
+    iSubOperation = connOp;
 
     SetActive();
     }
@@ -240,11 +233,10 @@
             delete iProgReport;
             iProgReport = NULL;
             
-            TInt err = iStatus.Int();
-
-            if( err != KErrNone && iOperation )
+            TInt err( iStatus.Int() );
+            if( err != KErrNone && iSubOperation )
                 {
-                iFetchErrorProgress = iOperation->ProgressL().AllocL();
+                iFetchErrorProgress = iSubOperation->ProgressL().AllocL();
                 }
             
             iState = EStateIdle;
@@ -267,9 +259,9 @@
         return *iFetchErrorProgress;
         }
     
-    if ( iOperation )
+    if ( iSubOperation )
         {
-        iProgress.Copy( iOperation->ProgressL() );
+        iProgress.Copy( iSubOperation->ProgressL() );
         }
     else
         {
@@ -287,11 +279,11 @@
 void CIpsPlgImap4FetchAttachmentOp::ReportProgressL()
     {
     FUNC_LOG;
-    TInt error = KErrNone;
+    TInt error( KErrNone );
     TFSProgress fsProgress = { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone };
-    if ( iOperation && iState == EStateFetching )
+    if ( iSubOperation && iState == EStateFetching )
         {
-        TRAP(error, iProgress.Copy( iOperation->ProgressL() ) );
+        TRAP(error, iProgress.Copy( iSubOperation->ProgressL() ) );
         }
     
     if ( error == KErrNone )
@@ -316,7 +308,11 @@
         User::Leave( error );
         }
     
-    iFSOperationObserver.RequestResponseL( fsProgress, iFSRequestId );
+    // signal observer if it exists
+    if ( iFSOperationObserver )
+        {
+        iFSOperationObserver->RequestResponseL( fsProgress, iFSRequestId );
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -372,38 +368,28 @@
     iState = EStateFetching;
 
     // Switch operations.
-    delete iOperation;
-    iOperation = NULL;
-    iStatus = KRequestPending;
+    delete iSubOperation;
+    iSubOperation = NULL;
 
     iProgReport = CIpsFetchProgReport::NewL( *this );
 
     // Filters are not used when performing 'fetch' operation, 
     // use normal getmail info instead
-    TPckg<TImImap4GetMailInfo> param(iGetMailInfo);
-    InvokeClientMtmAsyncFunctionL( iFunctionId, *iSelection, iService, param );
+    TPckgBuf<TImImap4GetMailInfo> param;
+    TImImap4GetMailInfo& options = param();
+    options.iMaxEmailSize = KMaxTInt32;
+    options.iGetMailBodyParts = EGetImap4EmailAttachments;
+    options.iDestinationFolder = 0; // not used
+
+    InvokeClientMtmAsyncFunctionL( KIMAP4MTMPopulate, *iSelection, param ); // <qmail> 1 param removed
     SetActive();
     }
     
+// <qmail> new func to this op
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------    
-TInt CIpsPlgImap4FetchAttachmentOp::GetEngineProgress( const TDesC8& aProgress )
+TIpsOpType CIpsPlgImap4FetchAttachmentOp::IpsOpType() const
     {
     FUNC_LOG;
-    if( !aProgress.Length() )
-        {
-        return KErrNone;
-        }
-    else
-        {
-        TPckgBuf<TImap4CompoundProgress> paramPack;
-        paramPack.Copy( aProgress );
-        const TImap4GenericProgress& progress = paramPack().iGenericProgress;
-
-        return progress.iErrorCode;
-        }    
-    }        
-
-
-// End of File
-
+    return EIpsOpTypeFetchAttachmentOp;
+    }
--- a/ipsservices/ipssosplugin/src/ipsplgimap4moveremoteop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4moveremoteop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -16,70 +16,66 @@
 *
 */
 
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-const TInt KMoveRemoteOpPriority = CActive::EPriorityStandard;
+// <qmail> priority parameter has been removed
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 CIpsPlgImap4MoveRemoteOp* CIpsPlgImap4MoveRemoteOp::NewL(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aFunctionId,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
-    const TImImap4GetMailInfo& aGetMailInfo,
-    const CMsvEntrySelection& aSel,
+    const TMsvId& aDestinationFolderId,
+    const CMsvEntrySelection& aSelection,    
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId )
     {
     FUNC_LOG;
     CIpsPlgImap4MoveRemoteOp* op = new (ELeave) CIpsPlgImap4MoveRemoteOp(
         aMsvSession,
         aObserverRequestStatus,
-        aFunctionId,
         aService,
         aActivityTimer,
-        aGetMailInfo,
+        aDestinationFolderId,
         aFSMailBoxId,
         aFSOperationObserver,
         aFSRequestId );
         
     CleanupStack::PushL( op );
-    op->ConstructL( aSel );
+    op->ConstructL( aSelection );
     CleanupStack::Pop( op );
     return op;
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 CIpsPlgImap4MoveRemoteOp::CIpsPlgImap4MoveRemoteOp(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aFunctionId,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
-    const TImImap4GetMailInfo& aGetMailInfo,
+    const TMsvId& aDestinationFolderId,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId )
     :
     CIpsPlgOnlineOperation(
-    aMsvSession,
-    KMoveRemoteOpPriority,
-    aObserverRequestStatus,
-    aActivityTimer,
-    aFSMailBoxId,
-    aFSOperationObserver,
-    aFSRequestId ),
-    iFunctionId(aFunctionId),
-    iGetMailInfo(aGetMailInfo)
+        aMsvSession,
+        aObserverRequestStatus,
+        aActivityTimer,
+        aFSMailBoxId,
+        aFSOperationObserver,
+        aFSRequestId ),
+    iState( EIdle ),
+    iDestinationFolderId( aDestinationFolderId )
     {
     FUNC_LOG;
-    iService = aService;
+    iService = aService;    
     }
 
 // ----------------------------------------------------------------------------
@@ -89,6 +85,7 @@
     FUNC_LOG;
     delete iLocalSel;
     delete iRemoteSel;
+    delete iMoveErrorProgress;
     }
 
 // ----------------------------------------------------------------------------
@@ -109,21 +106,20 @@
     iState = EConnecting;
     iStatus = KRequestPending;
 
+    // <qmail> priority parameter has been removed
     CIpsPlgImap4ConnectOp* connOp = CIpsPlgImap4ConnectOp::NewL(
         iMsvSession,
-        KMoveRemoteOpPriority,
         iStatus, 
         iService,
         iActivityTimer,
         iFSMailboxId,
-        iFSOperationObserver,
-        iFSRequestId,
+        NULL, // no operationobserver for suboperation
+        0,    // no requestId needed
         NULL, // event handler not needed whin plain connect
-        ETrue,
-        EFalse );
+        ETrue ); // do only connect
         
-    delete iOperation;
-    iOperation = connOp;
+    delete iSubOperation;
+    iSubOperation = connOp;
 
     SetActive();
     }
@@ -137,7 +133,7 @@
         {
         // Completed, but with an error during move.
         return *iMoveErrorProgress;
-        }        
+        }
     TImap4SyncProgress progg;
     progg.iErrorCode = KErrNone;
     TPckgBuf<TImap4SyncProgress> param(progg);
@@ -154,8 +150,7 @@
     if(!iProgressBuf().iGenericProgress.iErrorCode)
         {
         TImap4CompoundProgress& prog = iProgressBuf();
-        prog.iGenericProgress.iOperation = 
-            TImap4GenericProgress::EMoveWithinService;
+        prog.iGenericProgress.iOperation = TImap4GenericProgress::EMoveWithinService;
         prog.iGenericProgress.iState = TImap4GenericProgress::EMoving;
         prog.iGenericProgress.iErrorCode = aError;
         }
@@ -227,9 +222,9 @@
             break;
         case ERemoteMsgs:
             // Remote move complete.
-            if( err != KErrNone && iOperation )
+            if( err != KErrNone && iSubOperation )
                 {
-                iMoveErrorProgress = iOperation->ProgressL().AllocL();
+                iMoveErrorProgress = iSubOperation->ProgressL().AllocL();
                 }
             iState = EIdle;
             // to be considered
@@ -278,10 +273,10 @@
                     iLocalSel->AppendL( id );
                     }
                 }
-                iRemoteSel->AppendL( id );
-                }
+            iRemoteSel->AppendL( id );
             }
         }
+    }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -309,17 +304,15 @@
         // and use it as a context
         cEntry->SetEntryL( parent );
 
-        delete iOperation;
-        iOperation = NULL;
-        iOperation = cEntry->MoveL( *iLocalSel, 
-                                    iGetMailInfo.iDestinationFolder, 
-                                    iStatus );
+        delete iSubOperation;
+        iSubOperation = NULL;
+        iSubOperation = cEntry->MoveL( *iLocalSel, iDestinationFolderId, iStatus );
         CleanupStack::PopAndDestroy( cEntry ); 
         SetActive();
         }
     else
         {
-        SetActive();
+        // <qmail> SetActive(); moved inside CompleteThis();
         CompleteThis();
         }
     }
@@ -330,44 +323,37 @@
     {
     FUNC_LOG;
     iState = ERemoteMsgs;
-    iStatus = KRequestPending;
     // first element of the CMsvEntrySelection is the service which is then
     // followed by any messages
     if( iRemoteSel->Count() > 1 )
         {
-        // Switch operations.
-        delete iOperation;
-        iOperation = NULL;
+        // <qmail> deletion of iSubOperation is done inside InvokeClientMtmAsyncFunctionL </qmail>
     
         // Filters are not used when performing 'move' operation, use normal 
         // getmail info instead
-        TPckg<TImImap4GetMailInfo> param( iGetMailInfo );
-        InvokeClientMtmAsyncFunctionL( iFunctionId, *iRemoteSel, iService, param );
+        TPckgBuf<TImImap4GetMailInfo> paramBuf;
+        TImImap4GetMailInfo& mailInfo = paramBuf();
+        mailInfo.iMaxEmailSize = KMaxTInt32;
+        mailInfo.iGetMailBodyParts = EGetImap4EmailBodyTextAndAttachments;
+        mailInfo.iDestinationFolder = iDestinationFolderId;
+
+        InvokeClientMtmAsyncFunctionL( KIMAP4MTMMoveMailSelectionWhenAlreadyConnected, *iRemoteSel, paramBuf );
         SetActive();
         }
     else
         {
-        SetActive();
+        // <qmail> SetActive(); moved inside CompleteThis();
         CompleteThis();        
         }    
     }
     
+// <qmail> removed CIpsPlgImap4MoveRemoteOp::GetEngineProgress( const TDesC8& aProgress )
+
+// <qmail> new func to this op
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------    
-TInt CIpsPlgImap4MoveRemoteOp::GetEngineProgress( const TDesC8& aProgress )
+TIpsOpType CIpsPlgImap4MoveRemoteOp::IpsOpType() const
     {
     FUNC_LOG;
-    if( !aProgress.Length() )
-        {
-        return KErrNone;
-        }
-    else
-        {
-        TPckgBuf<TImap4CompoundProgress> paramPack;
-        paramPack.Copy( aProgress );
-        const TImap4GenericProgress& progress = paramPack().iGenericProgress;
-        
-        return progress.iErrorCode;        
-        }    
-    }            
-
+    return EIpsOpTypeMoveRemoteOp;
+    }
--- a/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,12 +15,10 @@
 *
 */
 
-
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-const TInt KConnectOpPriority = CActive::EPriorityStandard;
+// <qmail> priority const has been removed
 
 // ---------------------------------------------------------------------------
 // CIpsPlgImap4Plugin::CIpsPlgImap4Plugin()
@@ -33,7 +31,6 @@
     // none
     }
 
-
 // ---------------------------------------------------------------------------
 // CIpsPlgImap4Plugin::ConstructL()
 // ---------------------------------------------------------------------------
@@ -44,7 +41,6 @@
     BaseConstructL();
     }
 
-
 // ---------------------------------------------------------------------------
 // CIpsPlgImap4Plugin::NewL()
 // ---------------------------------------------------------------------------
@@ -57,7 +53,6 @@
     return self;
     }
 
-
 // ---------------------------------------------------------------------------
 // CIpsPlgImap4Plugin::NewLC()
 // ---------------------------------------------------------------------------
@@ -151,14 +146,14 @@
     CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewL( *this );
     CleanupStack::PushL( watcher );
     
+    // <qmail> priority parameter has been removed
     CIpsPlgBaseOperation* op = CIpsPlgImap4ConnectOp::NewL(
     		*iSession,
-    		KConnectOpPriority, 
     		watcher->iStatus, 
     		service,
     		ActivityTimerL( aMailBoxId ),
           	aMailBoxId, 
-          	aOperationObserver,
+          	&aOperationObserver,
           	aRequestId,
           	iEventHandler );
     
@@ -297,16 +292,16 @@
     info.iAttachmentSizeLimit = 0;
     info.iDestinationFolder = aFolderId.Id();
     
+    // <qmail> priority parameter has been removed
     CIpsPlgBaseOperation* op = CIpsPlgImap4PopulateOp::NewL( 
         *iSession, 
         watcher->iStatus,
-        CActive::EPriorityStandard,
         aMailBoxId.Id(),
         ActivityTimerL( aMailBoxId ),
         info,
         *sel,
         aMailBoxId, 
-        aObserver,
+        &aObserver,
         aRequestId,
         iEventHandler, 
         EFalse ); // do not filter mail selection
@@ -354,35 +349,24 @@
             sel->AppendL( aMessageIds[i].Id() );
             }
     	
-    	TPckgBuf<TImImap4GetMailInfo> optionsBuf;
-        TImImap4GetMailInfo& options = optionsBuf();
-        options.iMaxEmailSize = KMaxTInt32;
-        options.iGetMailBodyParts = EGetImap4EmailBodyTextAndAttachments;
-        options.iDestinationFolder = aDestinationFolderId.Id();
-
-        MFSMailRequestObserver* observer = NULL;
         // Synchronous operation
+        // <qmail> following constructor's parameters have changed
     	CIpsPlgBaseOperation* op = CIpsPlgImap4MoveRemoteOp::NewL(
             *iSession, 
             watcher->iStatus,
-            KIMAP4MTMMoveMailSelectionWhenAlreadyConnected,
             service,
             ActivityTimerL( aMailBoxId ),
-            options,
+            aDestinationFolderId.Id(),
             *sel,
             aMailBoxId,
-            *observer, // async not supported
-            0 ); // async not supported
+            NULL, // no observer, async not supported
+            0 ); // no reqId, async not supported
             
         watcher->SetOperation( op );
         CleanupStack::PopAndDestroy( sel );
         iOperations.AppendL( watcher );
         CleanupStack::Pop( watcher );
         }
-     else
-        {
-        //do nothing
-        }
 	} 	
 
 // ---------------------------------------------------------------------------
@@ -448,21 +432,20 @@
             }
         
         }
-    
-    TPckgBuf<TImImap4GetMailInfo> optionsBuf;
-    TImImap4GetMailInfo& options = optionsBuf();
-    options.iMaxEmailSize = KMaxTInt32;
-    options.iGetMailBodyParts = EGetImap4EmailAttachments;
-    options.iDestinationFolder = 0; // not used
-    
+        
     CIpsPlgBaseOperation* op = CIpsPlgImap4FetchAttachmentOp::NewL( 
-        *iSession, watcher->iStatus, KIMAP4MTMPopulate, aMailBoxId.Id(),
-        ActivityTimerL( aMailBoxId ), options, *sel, aMailBoxId,
-        aOperationObserver, aRequestId );
+        *iSession, 
+        watcher->iStatus,
+        aMailBoxId.Id(),
+        ActivityTimerL( aMailBoxId ), 
+        sel, // ownership is transferred
+        aMailBoxId,
+        &aOperationObserver,
+        aRequestId );
     
     watcher->SetOperation( op );
-    CleanupStack::PopAndDestroy( sel );
     iOperations.AppendL( watcher );
+    CleanupStack::Pop( sel );
     CleanupStack::Pop( watcher );
     }
 
@@ -519,17 +502,17 @@
     sel->AppendL( aMailboxId.Id() );
     sel->AppendL( aNewId );
     
+    // <qmail> priority parameter has been removed
     CIpsPlgBaseOperation* op = CIpsPlgImap4PopulateOp::NewL( 
         *iSession, 
         watcher->iStatus,
-        KIMAP4MTMPopulateMailSelectionWhenAlreadyConnected,
         aMailboxId.Id(),
         ActivityTimerL( aMailboxId ),
         info,
         *sel,
         aMailboxId, 
-        *this,
-        KErrNotFound,
+        NULL, // no operation observer
+        0,    // no use for requestId
         iEventHandler,
         EFalse ); // do not block entry changed and created events
     
--- a/ipsservices/ipssosplugin/src/ipsplgimap4populateop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4populateop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -18,22 +18,18 @@
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-// Constants and defines
-const TInt KFetchOpPriority = CActive::EPriorityStandard;
-const TInt KIpsPlgSelectionGra = 16;
-
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 EXPORT_C CIpsPlgImap4PopulateOp* CIpsPlgImap4PopulateOp::NewL(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aPriority,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
     const TImImap4GetPartialMailInfo& aPartialMailInfo,
     const CMsvEntrySelection& aSel,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     CIpsPlgEventHandler* aEventHandler,
     TBool aDoFilterSelection )
@@ -42,7 +38,6 @@
     CIpsPlgImap4PopulateOp* op = new (ELeave) CIpsPlgImap4PopulateOp(
         aMsvSession,
         aObserverRequestStatus,
-        aPriority,
         aService,
         aActivityTimer,
         aPartialMailInfo,
@@ -59,29 +54,31 @@
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 CIpsPlgImap4PopulateOp::CIpsPlgImap4PopulateOp(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
-    TInt aPriority,
     TMsvId aService,
     CIpsPlgTimerOperation& aActivityTimer,
     const TImImap4GetPartialMailInfo& aPartialMailInfo,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     CIpsPlgEventHandler* aEventHandler )
     :
     CIpsPlgOnlineOperation(
-    aMsvSession,
-    aPriority,
-    aObserverRequestStatus,
-    aActivityTimer,
-    aFSMailBoxId,
-    aFSOperationObserver,
-    aFSRequestId),
+        aMsvSession,
+        aObserverRequestStatus,
+        aActivityTimer,
+        aFSMailBoxId,
+        aFSOperationObserver,
+        aFSRequestId ),
+    iState( EStateIdle ),
     iPartialMailInfo(aPartialMailInfo),
-    iSelection( KIpsPlgSelectionGra ),
-    iEventHandler( aEventHandler )
+    iSelection( NULL ),
+    iTempSelection( NULL ),
+    iEventHandler( aEventHandler ),
+    iFetchErrorProgress( NULL )
     {
     FUNC_LOG;
     iService = aService;
@@ -92,45 +89,43 @@
 CIpsPlgImap4PopulateOp::~CIpsPlgImap4PopulateOp()
     {
     FUNC_LOG;
-    iSelection.Close();
-
-    if ( iTempSelection )
-    	{
-    	iTempSelection->Reset();
+    delete iSelection;
    	delete iTempSelection;
-    	}
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgImap4PopulateOp::ConstructL( 
-        const CMsvEntrySelection& aSel,
-        TBool aDoFilterSelection )
+void CIpsPlgImap4PopulateOp::ConstructL( const CMsvEntrySelection& aSel, TBool aDoFilterSelection )
     {
     FUNC_LOG;
     BaseConstructL( KUidMsgTypeIMAP4 );
     
+    // <qmail> instantiation moved here
+    iSelection = new ( ELeave ) CMsvEntrySelection();
+    iTempSelection = new ( ELeave ) CMsvEntrySelection();
+
     if ( aDoFilterSelection )
         {
         FilterSelectionL( aSel );
         }
-    else
+    else // no filtering; populate all
         {
+        // first entry in selection is serviceId
         for ( TInt i = 1; i < aSel.Count(); i++ )
             {
             if ( aSel[i] != iService )
                 {
-                iSelection.AppendL( aSel.At(i) );
+                iSelection->AppendL( aSel.At(i) );
                 }
             }
         }
-    iTempSelection = new ( ELeave ) CMsvEntrySelection();
     DoConnectL();
     }
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-TInt CIpsPlgImap4PopulateOp::IpsOpType() const
+// <qmail> return type
+TIpsOpType CIpsPlgImap4PopulateOp::IpsOpType() const
     {
     FUNC_LOG;
     return EIpsOpTypeImap4PopulateOp;
@@ -144,21 +139,20 @@
     iState = EStateConnecting;
     iStatus = KRequestPending;
 
+    // <qmail> priority parameter has been removed
     CIpsPlgImap4ConnectOp* connOp = CIpsPlgImap4ConnectOp::NewL(
         iMsvSession,
-        KFetchOpPriority,
         iStatus, 
         iService,
         iActivityTimer,
         iFSMailboxId,
-        iFSOperationObserver,
-        iFSRequestId,
+        NULL, // no observer for suboperations
+        0,    // requestId not needed
         iEventHandler,
-        ETrue, // Do plain connect
-        EFalse );
+        ETrue ); // Do plain connect
         
-    delete iOperation;
-    iOperation = connOp;
+    delete iSubOperation;
+    iSubOperation = connOp;
 
     SetActive();
     }
@@ -182,8 +176,8 @@
     {
     FUNC_LOG;
     TInt err = iStatus.Int();
-    delete iOperation;
-    iOperation = NULL;
+    delete iSubOperation;
+    iSubOperation = NULL;
     
     switch( iState )
         {
@@ -191,7 +185,7 @@
             {
             TMsvEntry tentry;
             TMsvId service;
-            iMsvSession.GetEntry(iService, service, tentry );
+            iMsvSession.GetEntry( iService, service, tentry );
             if( !tentry.Connected() )
                 {
                 CompleteObserver( KErrCouldNotConnect );
@@ -202,16 +196,12 @@
             }
         case EStateFetching:         
             {
-            if( err != KErrNone && iOperation )
+            if( err != KErrNone && iSubOperation )
                 {
-                iFetchErrorProgress = iOperation->ProgressL().AllocL();
+                iFetchErrorProgress = iSubOperation->ProgressL().AllocL();
                 iState = EStateIdle;
                 Complete();
                 }
-            else
-                {
-                
-                }
             break;
             }
         case EStateInfoEntryChange:
@@ -230,9 +220,9 @@
 void CIpsPlgImap4PopulateOp::DoCancel()
     {
     FUNC_LOG;
-    if( iOperation )
+    if( iSubOperation )
         {
-        iOperation->Cancel();
+        iSubOperation->Cancel();
         }
     CompleteObserver( KErrCancel );
     }
@@ -246,12 +236,15 @@
         {
         // Completed, but with an error during fetch.
         return *iFetchErrorProgress;
-        }        
-    TImap4SyncProgress progg;
-    progg.iErrorCode = KErrNone;
-    TPckgBuf<TImap4SyncProgress> param(progg);
-    iSyncProgress.Copy(param);
-    return iSyncProgress; 
+        }
+    else
+        {
+        TImap4SyncProgress progg;
+        progg.iErrorCode = KErrNone;
+        TPckgBuf<TImap4SyncProgress> param(progg);
+        iSyncProgress.Copy(param);
+        return iSyncProgress;
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -289,23 +282,7 @@
     return result;
     }
 
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------    
-TInt CIpsPlgImap4PopulateOp::GetEngineProgress( const TDesC8& aProgress )
-    {
-    FUNC_LOG;
-    if( !aProgress.Length() )
-        {
-        return KErrNone;
-        }
-    else
-        {
-        TPckgBuf<TImap4CompoundProgress> paramPack;
-        paramPack.Copy( aProgress );
-        const TImap4GenericProgress& progress = paramPack().iGenericProgress;
-        return progress.iErrorCode;        
-        }    
-    }    
+// <qmail> removed CIpsPlgImap4PopulateOp::GetEngineProgress( const TDesC8& aProgress )
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -318,27 +295,22 @@
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-void CIpsPlgImap4PopulateOp::FilterSelectionL( 
-        const CMsvEntrySelection& aSelection )
+void CIpsPlgImap4PopulateOp::FilterSelectionL( const CMsvEntrySelection& aSelection )
     {
     FUNC_LOG;
-    iSelection.Reset();
+    iSelection->Reset();
     TMsvId messageId;
-    // NOTE: this code is taken from symbian os source IMPCMTM.CPP
-    // filter selection is in here because messages are
-    // fetched separately then we dont have to make unneccessery imap 
-    // client mtm calls
 
-    for (TInt i=0; i<aSelection.Count(); i++)
+    for ( TInt i = 0; i < aSelection.Count(); i++ )
         {
-        messageId = (aSelection)[i];
+        messageId  = (aSelection)[i];
         if ( messageId == iService )
             {
-            continue;
+            continue; // ignore serviceId
             }
         TMsvEmailEntry entry;
-        TMsvId service = KMsvNullIndexEntryId;          
-        User::LeaveIfError(iMsvSession.GetEntry(messageId, service, entry));
+        TMsvId service( KMsvNullIndexEntryId );          
+        User::LeaveIfError( iMsvSession.GetEntry( messageId, service, entry ) );
         
         TBool isComplete = !(   ( entry.Complete() && entry.PartialDownloaded() ) 
                              || ( !entry.Complete() && ( !entry.BodyTextComplete() 
@@ -347,18 +319,15 @@
 
         TBool isMsgEntry = entry.iType == KUidMsvMessageEntry;
         TBool isSizeUnderMax = entry.iSize <= iPartialMailInfo.iMaxEmailSize;
-        TBool isParentComp = entry.Parent() == 
-            iPartialMailInfo.iDestinationFolder && isComplete;
+        TBool isParentComp = entry.Parent() == iPartialMailInfo.iDestinationFolder && isComplete;
         
-        if( IsPartialPopulate( )
-              && !isComplete
-              && entry.iType == KUidMsvMessageEntry )
+        if( isMsgEntry && IsPartialPopulate() && !isComplete )
             {
-            iSelection.AppendL(messageId); 
+            iSelection->AppendL( messageId ); 
             }
         else if ( isMsgEntry && isSizeUnderMax && !isParentComp )
             {
-            iSelection.AppendL(messageId);
+            iSelection->AppendL( messageId );
             }
         }
     }
@@ -367,20 +336,13 @@
 // ----------------------------------------------------------------------------
 TBool CIpsPlgImap4PopulateOp::IsPartialPopulate( )
     {
+    // <qmail> cleaned up code and took one "always true" condition out from the if statement
     FUNC_LOG;
-    // NOTE: this code is taken from symbian os source IMPCMTM.CPP
-    // code is modified to this class purpose 
-    
-    TBool isPartialPopulate = EFalse;
-    if(iPartialMailInfo.iPartialMailOptions == ENoSizeLimits &&
-       iPartialMailInfo.iTotalSizeLimit == KMaxTInt &&
-       iPartialMailInfo.iBodyTextSizeLimit == KMaxTInt && 
-       iPartialMailInfo.iAttachmentSizeLimit == KMaxTInt && 
-        (iPartialMailInfo.iGetMailBodyParts == EGetImap4EmailHeaders || 
-         iPartialMailInfo.iGetMailBodyParts == EGetImap4EmailBodyText ||
-         iPartialMailInfo.iGetMailBodyParts == EGetImap4EmailBodyTextAndAttachments ||
-         iPartialMailInfo.iGetMailBodyParts == EGetImap4EmailAttachments ||
-         iPartialMailInfo.iGetMailBodyParts == EGetImap4EmailBodyAlternativeText) )
+    TBool isPartialPopulate( EFalse );
+    if ( iPartialMailInfo.iPartialMailOptions == ENoSizeLimits &&
+         iPartialMailInfo.iTotalSizeLimit == KMaxTInt &&
+         iPartialMailInfo.iBodyTextSizeLimit == KMaxTInt && 
+         iPartialMailInfo.iAttachmentSizeLimit == KMaxTInt )
         {
         isPartialPopulate = EFalse;
         }
@@ -388,7 +350,6 @@
         {
         isPartialPopulate = ETrue;
         }
-
     return isPartialPopulate;
     }
 
@@ -397,31 +358,27 @@
 void CIpsPlgImap4PopulateOp::DoPopulateL( )
     {
     FUNC_LOG;
-    if ( iSelection.Count() > 0 )
+    if ( iSelection->Count() > 0 )
         {
         TMsvEmailEntry tEntry;
         TMsvId dummy;
-        TInt lastIndex = iSelection.Count()-1;
-        User::LeaveIfError( iMsvSession.GetEntry(
-                iSelection[lastIndex], dummy, tEntry ) );
+        TInt lastIndex = iSelection->Count()-1;
+        User::LeaveIfError( iMsvSession.GetEntry( iSelection->At(lastIndex), dummy, tEntry ) );
         
         iState = EStateFetching;
 
         iTempSelection->Reset();
         iTempSelection->AppendL( iService );
-        iTempSelection->AppendL( iSelection[lastIndex] );
-        iSelection.Remove(lastIndex);
-        
-        
-        iStatus = KRequestPending;
-    
+        iTempSelection->AppendL( iSelection->At( lastIndex ) );
+        iSelection->Delete( lastIndex );
+            
         // Filters are not used when performing 'fetch'
         // operation, use normal getmail info instead
-        TPckg<TImImap4GetPartialMailInfo> param(iPartialMailInfo);
+        TPckg<TImImap4GetPartialMailInfo> param( iPartialMailInfo );
         iBaseMtm->SwitchCurrentEntryL( iService );
-        iOperation = iBaseMtm->InvokeAsyncFunctionL(
-                KIMAP4MTMPopulateMailSelectionWhenAlreadyConnected, 
-                *iTempSelection, param, this->iStatus);
+        iSubOperation = iBaseMtm->InvokeAsyncFunctionL(
+            KIMAP4MTMPopulateMailSelectionWhenAlreadyConnected, 
+            *iTempSelection, param, iStatus );
         iState = EStateInfoEntryChange;
         SetActive();
         }
@@ -431,5 +388,3 @@
         CompleteObserver();
         }
     }
-
-// End of File
--- a/ipsservices/ipssosplugin/src/ipsplgmailstoreroperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgmailstoreroperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,10 +15,8 @@
 *
 */
 
-#include "ipsplgmailstoreroperation.h"
-#include "CFSMailPlugin.h"
 #include "emailtrace.h"
-
+#include "ipsplgheaders.h"
 
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
@@ -80,6 +78,21 @@
 // ---------------------------------------------------------------------------
 void CIpsPlgMailStorerOperation::DoCancel()
     {
+    // <qmail>
+    TRequestStatus* status = &iObserverRequestStatus;
+    if ( status && status->Int() == KRequestPending )
+        {
+        if (&iFSOperationObserver)
+            {
+            iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+            iFSProgress.iError = KErrCancel;
+            iFSProgress.iParam = NULL;
+
+            TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+            }
+        User::RequestComplete( status, iStatus.Int() );
+        }
+    // </qmail>
     FUNC_LOG;
     }
 
@@ -90,6 +103,36 @@
     return KNullDesC8;
     }
 
+// <qmail>
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgMailStorerOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgMailStorerOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    
+    return iFSProgress;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgMailStorerOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeMailStorerOp;
+    }
+// </qmail>
+
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 CIpsPlgMailStorerOperation::CIpsPlgMailStorerOperation(
@@ -99,11 +142,12 @@
     RPointerArray<CFSMailMessage> &aMessages,
     MFSMailRequestObserver& aFSOperationObserver,
     const TInt aRequestId):
-    CMsvOperation(aMsvSession, CActive::EPriorityStandard, aObserverRequestStatus),
+// <qmail>
+    CIpsPlgBaseOperation(aMsvSession, aObserverRequestStatus, aRequestId, TFSMailMsgId()), 
     iPlugin(aPlugin),
     iMessages(aMessages),
-    iFSOperationObserver(aFSOperationObserver),
-    iRequestId(aRequestId)
+    iFSOperationObserver(aFSOperationObserver)
+// </qmail>
     {
     FUNC_LOG;
     }
@@ -158,12 +202,13 @@
         {
         if( &iFSOperationObserver )
             {
-            TFSProgress prog = { TFSProgress::EFSStatus_RequestComplete, 0, 0, 0 };
+            // <qmail>
+            iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+            iFSProgress.iError = KErrNone;
+            iFSProgress.iParam = NULL;
 
-            TRAP_IGNORE(
-                    iFSOperationObserver.RequestResponseL(
-                            prog,
-                            iRequestId ) );
+            TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+            // </qmail>
             }
 
         TRequestStatus* status = &iObserverRequestStatus;
--- a/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -17,9 +17,8 @@
 
 #include <utf.h>
 
-#include "ipsplgmessagepartstoreroperation.h"
-#include "CFSMailPlugin.h"
 #include "emailtrace.h"
+#include "ipsplgheaders.h"
 
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
@@ -78,6 +77,21 @@
 // ---------------------------------------------------------------------------
 void CIpsPlgMessagePartStorerOperation::DoCancel()
     {
+    // <qmail>
+    TRequestStatus* status = &iObserverRequestStatus;
+    if ( status && status->Int() == KRequestPending )
+        {
+        if (&iFSOperationObserver)
+            {
+            iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+            iFSProgress.iError = KErrCancel;
+            iFSProgress.iParam = NULL;
+
+            TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+            }
+        User::RequestComplete( status, iStatus.Int() );
+        }
+    // </qmail>
     FUNC_LOG;
     }
 
@@ -89,6 +103,36 @@
     return KNullDesC8;
     }
 
+// <qmail>
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgMessagePartStorerOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgMessagePartStorerOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    
+    return iFSProgress;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgMessagePartStorerOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeMessagePartStorerOp;
+    }
+// </qmail>
+
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 CIpsPlgMessagePartStorerOperation::CIpsPlgMessagePartStorerOperation(
@@ -96,10 +140,12 @@
         CFSMailPlugin& aPlugin,
         RPointerArray<CFSMailMessagePart> &aMessageParts,
         MFSMailRequestObserver& aFSOperationObserver, const TInt aRequestId) :
-    CMsvOperation(aMsvSession, CActive::EPriorityStandard,
-            aObserverRequestStatus), iPlugin(aPlugin), iMessageParts(
-            aMessageParts), iFSOperationObserver(aFSOperationObserver),
-            iRequestId(aRequestId), iExecutionIndex(0), iDataBuffer(NULL)
+    CIpsPlgBaseOperation(aMsvSession, aObserverRequestStatus, aRequestId, TFSMailMsgId()), 
+    iPlugin(aPlugin), 
+    iMessageParts(aMessageParts), 
+    iFSOperationObserver(aFSOperationObserver),
+    iExecutionIndex(0), 
+    iDataBuffer(NULL)
     {
     FUNC_LOG;
     }
@@ -133,11 +179,13 @@
 		{
 		if (&iFSOperationObserver)
 			{
-			TFSProgress prog =
-				{
-				TFSProgress::EFSStatus_RequestComplete, 0, 0, 0
-				};
-			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( prog, iRequestId ) );
+		    // <qmail>
+		    iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+	        iFSProgress.iError = KErrNone;
+	        iFSProgress.iParam = NULL;
+
+			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+			// </qmail>
 			}
 		TRequestStatus* status = &iObserverRequestStatus;
 		User::RequestComplete(status, KErrNone);
--- a/ipsservices/ipssosplugin/src/ipsplgnewchildpartfromfileoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgnewchildpartfromfileoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -26,6 +26,7 @@
 _LIT( KMimeTextCalRequest,  "text/calendar; method=REQUEST;" );
 _LIT( KMimeTextCalResponse, "text/calendar; method=RESPONSE;" );
 _LIT( KMimeTextCalCancel,   "text/calendar; method=CANCEL;" );
+_LIT( KFileExtensionICS, ".ics" );
 
 _LIT8( KMethod, "method" );
 _LIT8( KRequest, "REQUEST" );
@@ -35,10 +36,10 @@
 // ================= MEMBER FUNCTIONS =======================
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::CCIpsPlgNewChildPartFromFileOperation
+// CIpsPlgNewChildPartFromFileOperation::CIpsPlgNewChildPartFromFileOperation
 // ----------------------------------------------------------------------------
 //
-CCIpsPlgNewChildPartFromFileOperation::CCIpsPlgNewChildPartFromFileOperation(
+CIpsPlgNewChildPartFromFileOperation::CIpsPlgNewChildPartFromFileOperation(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     const TFSMailMsgId& aMailBoxId,
@@ -46,24 +47,23 @@
     MFSMailRequestObserver& aOperationObserver,
     const TInt aRequestId)
     :
-    CMsvOperation( 
-    aMsvSession, 
-    CActive::EPriorityStandard, 
-    aObserverRequestStatus),
-    iMailBoxId(aMailBoxId),
+    CIpsPlgBaseOperation( 
+        aMsvSession, 
+        aObserverRequestStatus,
+        aRequestId,
+        aMailBoxId),
     iMessageId(aMessageId),
-    iOperationObserver(aOperationObserver),
-    iRequestId(aRequestId)
+    iOperationObserver(aOperationObserver)
     {
     FUNC_LOG;
     CActiveScheduler::Add( this );
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::NewL
+// CIpsPlgNewChildPartFromFileOperation::NewL
 // ----------------------------------------------------------------------------
 //
-CCIpsPlgNewChildPartFromFileOperation* CCIpsPlgNewChildPartFromFileOperation::NewL(
+CIpsPlgNewChildPartFromFileOperation* CIpsPlgNewChildPartFromFileOperation::NewL(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
     const TFSMailMsgId& aMailBoxId,
@@ -75,8 +75,8 @@
     CIpsPlgMsgMapper *aMsgMapper)
     {
     FUNC_LOG;
-    CCIpsPlgNewChildPartFromFileOperation* self =
-        new (ELeave) CCIpsPlgNewChildPartFromFileOperation(
+    CIpsPlgNewChildPartFromFileOperation* self =
+        new (ELeave) CIpsPlgNewChildPartFromFileOperation(
             aMsvSession,
             aObserverRequestStatus,
             aMailBoxId,
@@ -90,55 +90,61 @@
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::ConstructL
+// CIpsPlgNewChildPartFromFileOperation::ConstructL
 // ----------------------------------------------------------------------------
 //
-void CCIpsPlgNewChildPartFromFileOperation::ConstructL(CIpsPlgMsgMapper *aMsgMapper,
+void CIpsPlgNewChildPartFromFileOperation::ConstructL(CIpsPlgMsgMapper *aMsgMapper,
     const TDesC& aContentType,
     const TDesC& aFilePath)
     {
     FUNC_LOG;
     iMsgMapper = aMsgMapper;
-    iStatus = KRequestPending;
     iContentType = aContentType.AllocL();
     iFilePath = aFilePath.AllocL();
 
-    // Start async request in RunL
-    iStep = EStep1; // First step
-    SetActive();
-    iStatus = KRequestPending;
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete(status,KErrNone);
+    // Start from attachment manager initialization
+    InitAttachmentManagerL();
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::~CCIpsPlgNewChildPartFromFileOperation
+// CIpsPlgNewChildPartFromFileOperation::~CIpsPlgNewChildPartFromFileOperation
 // ----------------------------------------------------------------------------
 //
-CCIpsPlgNewChildPartFromFileOperation::~CCIpsPlgNewChildPartFromFileOperation()
+CIpsPlgNewChildPartFromFileOperation::~CIpsPlgNewChildPartFromFileOperation()
     {
     FUNC_LOG;
     Cancel(); // Cancel any request, if outstanding
     delete iOperation;
+    iOperation = NULL;
     delete iContentType;
+    iContentType = NULL;
     delete iFilePath;
+    iFilePath = NULL;
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::DoCancel
+// CIpsPlgNewChildPartFromFileOperation::DoCancel
 // ----------------------------------------------------------------------------
 //
-void CCIpsPlgNewChildPartFromFileOperation::DoCancel()
+void CIpsPlgNewChildPartFromFileOperation::DoCancel()
     {
     FUNC_LOG;
+
     if (iOperation)
         {
         iOperation->Cancel();
         }
+
+    if (iMessage)
+        {
+        iMessage->AttachmentManager().CancelRequest();
+        iMessage->Cancel();
+        }
+
     TRequestStatus* status = &iObserverRequestStatus;
     if ( status && status->Int() == KRequestPending )
         {
-        SignalFSObserver( iStatus.Int(), NULL );
+        SignalFSObserver(iStatus.Int(),NULL);
         User::RequestComplete( status, iStatus.Int() );
         }
     }
@@ -148,7 +154,7 @@
 // Checks whether the requested message is already cached. If not, the cached 
 // objects are deleted and new objects are created.
 // ----------------------------------------------------------------------------
-void CCIpsPlgNewChildPartFromFileOperation::GetMessageEntryL( 
+void CIpsPlgNewChildPartFromFileOperation::GetMessageEntryL( 
     TMsvId aId, 
     CMsvEntry*& aMessageEntry,
     CImEmailMessage*& aImEmailMessage )
@@ -172,7 +178,7 @@
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 //
-void CCIpsPlgNewChildPartFromFileOperation::CleanCachedMessageEntries()
+void CIpsPlgNewChildPartFromFileOperation::CleanCachedMessageEntries()
     {
     FUNC_LOG;
     delete iCachedEmailMessage;
@@ -182,183 +188,218 @@
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::RunL
+// CIpsPlgNewChildPartFromFileOperation::RunL
 // ----------------------------------------------------------------------------
 //
-void CCIpsPlgNewChildPartFromFileOperation::RunL()
+void CIpsPlgNewChildPartFromFileOperation::RunL()
     {
     if( iStatus.Int() == KErrNone )
-        // divided to 4 steps, run asunchronously from 1 to 4
-        switch (iStep)
         {
-            case EStep1:
-                {
-                iEntry = NULL;
-                iMessage = NULL;
-                RFile file;
-                TInt fileSize( 0 );
-
-                // Read attachment size
-                TRAPD(err,file.Open( iMsvSession.FileSession(), iFilePath->Des(), EFileShareReadersOnly ));
-                if (err != KErrNone)
-                    {
-                    RunError(err);
-                    }
-             
-                //in rare case that file has disappeared while sending
-                //we just won't get the size for it
-                file.Size( fileSize );
-                file.Close();    
-
-                // Initialize CMsvAttachment instance for the attachment creation
-                CMsvAttachment* info = CMsvAttachment::NewL( CMsvAttachment::EMsvFile );
-                CleanupStack::PushL( info );
-
-                info->SetAttachmentNameL( iFilePath->Des() );
-                info->SetSize( fileSize );
-
-                // Create/acquire Symbian message entry objects
-                GetMessageEntryL( iMessageId.Id(), iEntry, iMessage );
-
-                // Start attachment creation
-                iStatus = KRequestPending;
-                iMessage->AttachmentManager().AddAttachmentL( 
-                    iFilePath->Des(), info, iStatus );
-                CleanupStack::Pop( info ); // attachment manager takes ownership
-                iStep = EStep2; // Next step
-                SetActive();
+            // Divided to 3 steps. Run asunchronously after InitAttachmentManagerL.
+            // PrepareMsvEntryL, PrepareStoreL and StoreMessagePartL respectively
+            switch (iStep)
+            {
+            case EPrepareMsvEntry:
+                PrepareMsvEntryL();
                 break;
-                }
-            case EStep2:
-                {
-                // Dig out the entry ID of the new attachment (unbelievable that
-                // there seems to be no better way to do this)
-                iMessage->GetAttachmentsListL( iEntry->Entry().Id( ), 
-                    CImEmailMessage::EAllAttachments, CImEmailMessage::EThisMessageOnly );
-                TKeyArrayFix key( 0, ECmpTInt32 );
-                CMsvEntrySelection* attachmentIds = iMessage->Selection().CopyLC();
-                attachmentIds->Sort( key );
-                if ( !attachmentIds->Count() )
-                    {
-                    User::Leave( KErrGeneral );
-                    }
-                iNewAttachmentId = (*attachmentIds)[ attachmentIds->Count()-1 ];
-                CleanupStack::PopAndDestroy( attachmentIds );
-                
-                CMsvEntry* cAtta = iMsvSession.GetEntryL( iNewAttachmentId );
-                CleanupStack::PushL( cAtta );
-                
-                // Set filename to iDetails
-                TMsvEntry tEntry = cAtta->Entry();
-                tEntry.iDetails.Set(iFilePath->Des());
-
-                // Do async
-                iStatus = KRequestPending;
-                cAtta->ChangeL( tEntry, iStatus );
-                CleanupStack::PopAndDestroy( cAtta );
-                iStep = EStep3; // Next step
-                SetActive();
+            case EPrepareStore:
+                PrepareStoreL();
                 break;
-                }
-            case EStep3:
-                {
-                CMsvEntry* cAtta = iMsvSession.GetEntryL( iNewAttachmentId );
-                CleanupStack::PushL( cAtta );
-                TBool parentToMultipartAlternative( EFalse );
-                if( cAtta->HasStoreL() )
-                    {
-                    CMsvStore* store = cAtta->EditStoreL();
-                    CleanupStack::PushL( store );
-                    CImMimeHeader* mimeHeader = CImMimeHeader::NewLC();
-                    
-                    if( store->IsPresentL( KUidMsgFileMimeHeader ) )
-                        {
-                        mimeHeader->RestoreL( *store );
-                        CDesC8Array& array = mimeHeader->ContentTypeParams();
-                        array.AppendL( KMethod );
-                        parentToMultipartAlternative = ETrue;
-                        
-                        if( iContentType->Des().Find( KMimeTextCalRequest ) != KErrNotFound )
-                            {    
-                            array.AppendL( KRequest );
-                            }
-                        else if( iContentType->Des().Find( KMimeTextCalResponse ) != KErrNotFound )
-                            {
-                            array.AppendL( KResponse );
-                            }
-                        else if( iContentType->Des().Find( KMimeTextCalCancel ) != KErrNotFound ) 
-                            {
-                            array.AppendL( KCancel );
-                            }
-                        else
-                            {
-                            parentToMultipartAlternative = EFalse;
-                            }
-                        mimeHeader->StoreWithoutCommitL( *store );
-                        store->CommitL();
-                        }
-                    
-                    CleanupStack::PopAndDestroy( 2, store );
-                    }
-            
-                if( parentToMultipartAlternative &&
-                    iFilePath->Find( _L(".ics")) != KErrNotFound )
-                    {        
-                    TMsvEntry tAttaEntry = cAtta->Entry();
-                    TMsvId id = tAttaEntry.Parent();
-                    CMsvEntry* cParent = iMsvSession.GetEntryL( id );
-                    CleanupStack::PushL( cParent );
-                    
-                    TMsvEmailEntry tEntry = cParent->Entry();
-                    tEntry.SetMessageFolderType( EFolderTypeAlternative );
-                    
-                    // Do async again if needed
-                    iStatus = KRequestPending;
-                    cParent->ChangeL( tEntry, iStatus );
-                    CleanupStack::PopAndDestroy( cParent );
-                    CleanupStack::PopAndDestroy( cAtta );
-                    iStep = EStep4; // Next step
-                    SetActive();
-                    break;
-                    }
-                CleanupStack::PopAndDestroy( cAtta );
-                iStep = EStep4; // Next step
-                // Continue to next step wihout break;
-                }
-            case EStep4:
-                {
-                // Delete the message entries to get all the changes to disk and 
-                // possible store locks released
-                CleanCachedMessageEntries();
-                
-                CFSMailMessagePart* result ( NULL );
-                // Create the FS message part object
-                result = iMsgMapper->GetMessagePartL( iNewAttachmentId, iMailBoxId, 
-                    iMessageId );
-                
-                // Set attachment name
-                result->SetAttachmentNameL(iFilePath->Des());
-            
-                // store message part
-                result->SaveL();
-                
-                // set flag
-                result->SetFlag(EFSMsgFlag_Attachments);
-                
-                SignalFSObserver(iStatus.Int(),result);
-                // nothing left to process, so complete the observer
-                TRequestStatus* status = &iObserverRequestStatus;
-                User::RequestComplete( status, iStatus.Int() );
+            case EStoreMessagePart:
+                StoreMessagePartL();
                 break;
-                }
+            }
+        }
+    else if (iStatus.Int() == KErrCancel) 
+        {
+        // Do Nothing
+        }
+    else
+        {
+        User::Leave(iStatus.Int());
         }
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::RunError
+// CIpsPlgNewChildPartFromFileOperation::InitAttachmentManagerL
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgNewChildPartFromFileOperation::InitAttachmentManagerL()
+    {
+    iEntry = NULL;
+    iMessage = NULL;
+    RFile file;
+    TInt fileSize( 0 );
+
+    // Read attachment size
+    User::LeaveIfError(
+        file.Open( iMsvSession.FileSession(), iFilePath->Des(), EFileShareReadersOnly )
+        );
+ 
+    //in rare case that file has disappeared while sending
+    //we just won't get the size for it
+    file.Size( fileSize );
+    file.Close();    
+
+    // Initialize CMsvAttachment instance for the attachment creation
+    CMsvAttachment* info = CMsvAttachment::NewL( CMsvAttachment::EMsvFile );
+    CleanupStack::PushL( info );
+
+    info->SetAttachmentNameL( iFilePath->Des() );
+    info->SetSize( fileSize );
+
+    // Create/acquire Symbian message entry objects
+    GetMessageEntryL( iMessageId.Id(), iEntry, iMessage );
+
+    // Start attachment creation
+    iMessage->AttachmentManager().AddAttachmentL( 
+        iFilePath->Des(), info, iStatus );
+    CleanupStack::Pop( info ); // attachment manager takes ownership
+    iStep = EPrepareMsvEntry; // Next step
+    SetActive();
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::PrepareMsvEntryL
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgNewChildPartFromFileOperation::PrepareMsvEntryL()
+    {
+    // Dig out the entry ID of the new attachment
+    iMessage->GetAttachmentsListL( iEntry->Entry().Id( ), 
+        CImEmailMessage::EAllAttachments, CImEmailMessage::EThisMessageOnly );
+    TKeyArrayFix key( 0, ECmpTInt32 );
+    CMsvEntrySelection* attachmentIds = iMessage->Selection().CopyLC();
+    attachmentIds->Sort( key );
+    if ( !attachmentIds->Count() )
+        {
+        User::Leave( KErrGeneral );
+        }
+    iNewAttachmentId = (*attachmentIds)[ attachmentIds->Count()-1 ];
+    CleanupStack::PopAndDestroy( attachmentIds );
+    
+    CMsvEntry* cAtta = iMsvSession.GetEntryL( iNewAttachmentId );
+    CleanupStack::PushL( cAtta );
+    
+    // Set filename to iDetails
+    TMsvEntry tEntry = cAtta->Entry();
+    tEntry.iDetails.Set(iFilePath->Des());
+
+    // Do async
+    iOperation = cAtta->ChangeL( tEntry, iStatus );
+    CleanupStack::PopAndDestroy( cAtta );
+    iStep = EPrepareStore; // Next step
+    SetActive();
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::PrepareStoreL
 // ----------------------------------------------------------------------------
 //
-TInt CCIpsPlgNewChildPartFromFileOperation::RunError(TInt aError)
+void CIpsPlgNewChildPartFromFileOperation::PrepareStoreL()
+    {
+    CMsvEntry* cAtta = iMsvSession.GetEntryL( iNewAttachmentId );
+    CleanupStack::PushL( cAtta );
+    TBool parentToMultipartAlternative( EFalse );
+    if( cAtta->HasStoreL() )
+        {
+        CMsvStore* store = cAtta->EditStoreL();
+        CleanupStack::PushL( store );
+        CImMimeHeader* mimeHeader = CImMimeHeader::NewLC();
+        
+        if( store->IsPresentL( KUidMsgFileMimeHeader ) )
+            {
+            mimeHeader->RestoreL( *store );
+            CDesC8Array& array = mimeHeader->ContentTypeParams();
+            array.AppendL( KMethod );
+            parentToMultipartAlternative = ETrue;
+            
+            if( iContentType->Des().Find( KMimeTextCalRequest ) != KErrNotFound )
+                {    
+                array.AppendL( KRequest );
+                }
+            else if( iContentType->Des().Find( KMimeTextCalResponse ) != KErrNotFound )
+                {
+                array.AppendL( KResponse );
+                }
+            else if( iContentType->Des().Find( KMimeTextCalCancel ) != KErrNotFound ) 
+                {
+                array.AppendL( KCancel );
+                }
+            else
+                {
+                parentToMultipartAlternative = EFalse;
+                }
+            mimeHeader->StoreWithoutCommitL( *store );
+            store->CommitL();
+            }
+        
+        CleanupStack::PopAndDestroy( 2, store );
+        }
+
+    if( parentToMultipartAlternative &&
+        iFilePath->Find( KFileExtensionICS ) != KErrNotFound )
+        {        
+        TMsvEntry tAttaEntry = cAtta->Entry();
+        TMsvId id = tAttaEntry.Parent();
+        CMsvEntry* cParent = iMsvSession.GetEntryL( id );
+        CleanupStack::PushL( cParent );
+        
+        TMsvEmailEntry tEntry = cParent->Entry();
+        tEntry.SetMessageFolderType( EFolderTypeAlternative );
+        
+        // Do async again if needed
+
+        iOperation = cParent->ChangeL( tEntry, iStatus );
+        CleanupStack::PopAndDestroy( cParent );
+        CleanupStack::PopAndDestroy( cAtta );
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy( cAtta );
+        iStatus = KRequestPending;
+        TRequestStatus* status = &iStatus;
+        User::RequestComplete(status,KErrNone);
+        }
+    iStep = EStoreMessagePart; // Next step
+    SetActive();
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::StoreMessagePartL
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgNewChildPartFromFileOperation::StoreMessagePartL()
+    {
+    // Delete the message entries to get all the changes to disk and 
+    // possible store locks released
+    CleanCachedMessageEntries();
+    
+    CFSMailMessagePart* result ( NULL );
+    // Create the FS message part object
+    result = iMsgMapper->GetMessagePartL( iNewAttachmentId, iFSMailboxId, 
+        iMessageId );
+
+    // Set attachment name
+    result->SetAttachmentNameL(iFilePath->Des());
+
+    // store message part
+    result->SaveL();
+    
+    // set flag
+    result->SetFlag(EFSMsgFlag_Attachments);
+    
+    SignalFSObserver(iStatus.Int(),result);
+    // nothing left to process, so complete the observer
+    TRequestStatus* status = &iObserverRequestStatus;
+    User::RequestComplete( status, iStatus.Int() );
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::RunError
+// ----------------------------------------------------------------------------
+//
+TInt CIpsPlgNewChildPartFromFileOperation::RunError(TInt aError)
     {
     FUNC_LOG;
     SignalFSObserver( aError, NULL );
@@ -369,47 +410,68 @@
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::SignalFSObserver
+// CIpsPlgNewChildPartFromFileOperation::SignalFSObserver
 // ----------------------------------------------------------------------------
 //
-void CCIpsPlgNewChildPartFromFileOperation::SignalFSObserver(
+void CIpsPlgNewChildPartFromFileOperation::SignalFSObserver(
         TInt aStatus, CFSMailMessagePart* aMessagePart )
     {
     FUNC_LOG;
-    TFSProgress result =
-        { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone, aMessagePart };
-    
     if ( aStatus == KErrCancel )
         {
-        result.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
-        result.iError = KErrCancel;
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+        iFSProgress.iError = KErrCancel;
+        iFSProgress.iParam = NULL;
         }
     else
         {
-        result.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
-        result.iError = aStatus;
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+        iFSProgress.iError = aStatus;
+        iFSProgress.iParam = aMessagePart;
         }
 
-    TRAP_IGNORE( iOperationObserver.RequestResponseL( result, iRequestId ) );
+    TRAP_IGNORE( iOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
     }
 
 // ----------------------------------------------------------------------------
-// CCIpsPlgNewChildPartFromFileOperation::ProgressL
+// CIpsPlgNewChildPartFromFileOperation::ProgressL
 // ----------------------------------------------------------------------------
 //
-const TDesC8& CCIpsPlgNewChildPartFromFileOperation::ProgressL()
+const TDesC8& CIpsPlgNewChildPartFromFileOperation::ProgressL()
     {
     FUNC_LOG;
     // Make sure that operation is active
-    if ( IsActive() )
-        {
-        // Get progress
-        if ( iOperation )
-            {
-            return iOperation->ProgressL();
-            }
-        }
-    return iBlank;
+    return (IsActive() && iOperation) ? 
+        iOperation->ProgressL() : KNullDesC8;
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::GetErrorProgressL
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgNewChildPartFromFileOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::GetFSProgressL
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgNewChildPartFromFileOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    return iFSProgress;
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::IpsOpType
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgNewChildPartFromFileOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeNewChildPartFromFile;
     }
 
 //  End of File
--- a/ipsservices/ipssosplugin/src/ipsplgonlineoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgonlineoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -26,7 +26,7 @@
     {
     FUNC_LOG;
     Cancel();   
-    delete iOperation;
+    delete iSubOperation;
     delete iBaseMtm;
     delete iMtmReg;
     }
@@ -34,26 +34,26 @@
 // ----------------------------------------------------------------------------
 // CIpsPlgOnlineOperation::CIpsPlgOnlineOperation()
 // ----------------------------------------------------------------------------
-//
+// <qmail> priority parameter has been removed
 CIpsPlgOnlineOperation::CIpsPlgOnlineOperation(
     CMsvSession& aMsvSession,
-    TInt aPriority,
     TRequestStatus& aObserverRequestStatus,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
-    TInt aFSRequestId,
-    TBool aSignallingAllowed )
+    MFSMailRequestObserver* aFSOperationObserver,
+    TInt aFSRequestId )
     :
-    CIpsPlgBaseOperation( aMsvSession, aPriority, aObserverRequestStatus,
-        aFSRequestId, aFSMailBoxId ), 
-        iActivityTimer( aActivityTimer ),
-        iBaseMtm( NULL ),
-        iMtmReg( NULL ), 
-        iOperation( NULL ),
-        iError( KErrNone ),
-        iSignallingAllowed( aSignallingAllowed ),
-        iFSOperationObserver( aFSOperationObserver )
+    CIpsPlgBaseOperation(
+        aMsvSession, 
+        aObserverRequestStatus,
+        aFSRequestId, 
+        aFSMailBoxId ), 
+    iActivityTimer( aActivityTimer ),
+    iBaseMtm( NULL ),
+    iMtmReg( NULL ), 
+    iSubOperation( NULL ),
+    iError( KErrNone ),
+    iFSOperationObserver( aFSOperationObserver )
     {
     FUNC_LOG;
     }
@@ -62,20 +62,16 @@
 // CIpsPlgOnlineOperation::BaseConstructL()
 // ----------------------------------------------------------------------------
 //
-void CIpsPlgOnlineOperation::BaseConstructL(TUid aMtmType)
+void CIpsPlgOnlineOperation::BaseConstructL( TUid aMtmType )
     {
     FUNC_LOG;
     // reset timer, if operation not completed after timer fires causes
     // disconnection
-    if( &iActivityTimer )
-        {
-        iActivityTimer.ResetTimerOperation();
-        }
+    // <qmail> remove cheking of existence of this reference member
+    iActivityTimer.ResetTimerOperation();
 
     iMtmReg = CClientMtmRegistry::NewL( iMsvSession );
-    
     iBaseMtm = iMtmReg->NewMtmL( aMtmType );
-    
     iObserverRequestStatus = KRequestPending;
     CActiveScheduler::Add(this);
     }
@@ -87,9 +83,9 @@
 void CIpsPlgOnlineOperation::DoCancel()
     {
     FUNC_LOG;
-    if( iOperation )
+    if( iSubOperation )
         {
-        iOperation->Cancel();
+        iSubOperation->Cancel();
         }
     CompleteObserver( KErrCancel );
     }
@@ -101,31 +97,21 @@
 void CIpsPlgOnlineOperation::RunL()
     {
     FUNC_LOG;
-    
-    TInt err = KErrNone;
+    TInt err( KErrNone );
     TRAP( err, DoRunL() );
     
     // Just end the operation, if something has gone wrong
-    if ( err != KErrNone )
+    if ( err )
         {
         CompleteObserver( err );
         }
-    else if ( iError != KErrNone )
+    else if ( iError )
         {
         CompleteObserver( iError );
         }
     }
 
-// ----------------------------------------------------------------------------
-// CIpsPlgOnlineOperation::RunError()
-// ----------------------------------------------------------------------------
-//
-TInt CIpsPlgOnlineOperation::RunError( TInt aError )
-    {
-    FUNC_LOG;
-    CompleteObserver( aError );
-    return KErrNone; // RunError must return KErrNone to active sheduler.
-    }
+// <qmail> removing TInt CIpsPlgOnlineOperation::RunError( TInt aError )
 
 // ----------------------------------------------------------------------------
 // CIpsPlgOnlineOperation::CompleteObserver()
@@ -140,17 +126,14 @@
         SignalFSObserver( aStatus );
         // <qmail>
         // removed checks to prevent unwanted disconnections
-        //if we're connected, reset activitytimer. if not, there is no reason to.
-        if( &iActivityTimer )
+        //if connected, reset activitytimer. if not, there is no reason to.
+        if ( Connected() )
             {
-            if ( Connected() )
-                {
-                iActivityTimer.ResetTimerOperation();
-                }
-            else
-                {
-                iActivityTimer.Cancel();
-                }
+            iActivityTimer.ResetTimerOperation();
+            }
+        else
+            {
+            iActivityTimer.Cancel();
             }
         // </qmail>
         User::RequestComplete(status, aStatus);
@@ -164,7 +147,7 @@
 void CIpsPlgOnlineOperation::CompleteThis()
     {
     FUNC_LOG;
-    
+    SetActive();
     TRequestStatus* status = &iStatus;
     User::RequestComplete(status, KErrNone);
     }
@@ -172,11 +155,10 @@
 // ----------------------------------------------------------------------------
 // CIpsPlgOnlineOperation::InvokeClientMtmAsyncFunctionL()
 // ----------------------------------------------------------------------------
-//
+// <qmail> remove contextId as not needed
 void CIpsPlgOnlineOperation::InvokeClientMtmAsyncFunctionL(
     TInt aFunctionId,
     TMsvId aEntryId,
-    TMsvId aContextId,
     const TDesC8& aParams)
     {
     FUNC_LOG;
@@ -184,19 +166,18 @@
     CMsvEntrySelection* sel = new(ELeave) CMsvEntrySelection;
     CleanupStack::PushL( sel );
     sel->AppendL( aEntryId );
-    InvokeClientMtmAsyncFunctionL(aFunctionId, *sel, aContextId, aParams);
+    InvokeClientMtmAsyncFunctionL(aFunctionId, *sel, aParams);
     CleanupStack::PopAndDestroy( sel ); 
     }
 
 // ----------------------------------------------------------------------------
 // CIpsPlgOnlineOperation::InvokeClientMtmAsyncFunctionL()
 // ----------------------------------------------------------------------------
-//
+// <qmail> remove contextId as not needed
 void CIpsPlgOnlineOperation::InvokeClientMtmAsyncFunctionL(
     TInt aFunctionId,
     const CMsvEntrySelection& aSel,
-    TMsvId aContextId,
-    const TDesC8& aParams)
+    const TDesC8& aParams )
     {
     FUNC_LOG;
     
@@ -207,24 +188,18 @@
         iMsvSession.GetEntry( aSel.At(0), service, tEntry );
         }
 
-    if( aContextId != tEntry.iServiceId )
-        {
-        // Client context must be service for FetchL().
-        iBaseMtm->SwitchCurrentEntryL( tEntry.iServiceId );
-        }
-    else
-        {                
-        iBaseMtm->SwitchCurrentEntryL( aContextId );
-        }
-    HBufC8* params = aParams.AllocLC();
+    // setting our context to serviceId
+    iBaseMtm->SwitchCurrentEntryL( tEntry.iServiceId );
+
+    HBufC8* params = aParams.AllocLC(); // can not pass const parameter to InvokeAsyncFunctionL
     TPtr8 ptr(params->Des());
     // Delete previous operation if it exist
-    if ( iOperation )
+    if ( iSubOperation )
         {
-        delete iOperation;
-        iOperation = NULL;
+        delete iSubOperation;
+        iSubOperation = NULL;
         }
-    iOperation = iBaseMtm->InvokeAsyncFunctionL(aFunctionId, aSel, ptr, iStatus);
+    iSubOperation = iBaseMtm->InvokeAsyncFunctionL( aFunctionId, aSel, ptr, iStatus );
     CleanupStack::PopAndDestroy( params ); 
     }
 
@@ -235,42 +210,24 @@
 void CIpsPlgOnlineOperation::SignalFSObserver( TInt aStatus )
     {
     FUNC_LOG;
-    if( iSignallingAllowed )
-        {        
-        TFSProgress prog = TFSProgress();
-        prog.iError = aStatus;
+    // <qmail> clean up this function
+    if( iFSOperationObserver )
+        {
         // Initialize the progress data
+        TFSProgress prog = { TFSProgress::EFSStatus_RequestComplete, 1, 1, aStatus, NULL };
         // it would be better to get fs progress from inherited class
         // by calling FSProgressL method??
-        if ( prog.iError == KErrCancel )
+        if ( aStatus == KErrCancel )
             {
             prog.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
             }
-        else
-            {
-            prog.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
-            }
-        // At least in the attachment download, FS UI assumes that
-        // the counter fields are greater than 0
-        prog.iMaxCount = 1;  
-        prog.iCounter = 1;
         
-        
-        //in case of autoconnect, we don't have valid observer
-        if( &iFSOperationObserver )
-            {            
-            TRAP_IGNORE( iFSOperationObserver.RequestResponseL( prog, iFSRequestId ) );
-            }
+        // do the actual signalling
+        TRAP_IGNORE( iFSOperationObserver->RequestResponseL( prog, iFSRequestId ) );
         }
     }
 
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-TInt CIpsPlgOnlineOperation::IpsOpType() const
-    {
-    FUNC_LOG;
-    return EIpsOpTypeOnlineOp;
-    }
+// <qmail> removed IpsOpType()
 
 // <qmail> makes more sence to have this method here in "base" online op than in every derived class
 // ----------------------------------------------------------------------------
--- a/ipsservices/ipssosplugin/src/ipsplgpop3connectop.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgpop3connectop.cpp	Mon May 03 12:23:15 2010 +0300
@@ -34,17 +34,16 @@
     TBool aForcePopulate,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
-    CIpsPlgEventHandler* aEventHandler,
-    TBool aSignallingAllowed )
+    CIpsPlgEventHandler* aEventHandler )
     {
     FUNC_LOG;
     CIpsPlgPop3ConnectOp* op = 
         new(ELeave) CIpsPlgPop3ConnectOp( aMsvSession, aObserverRequestStatus, 
             aService, aForcePopulate, aActivityTimer, aFSMailBoxId,
             aFSOperationObserver, aFSRequestId, 
-            aEventHandler, aSignallingAllowed );
+            aEventHandler );
         
     CleanupStack::PushL( op );
     op->ConstructL();
@@ -75,9 +74,9 @@
         {
         return GetErrorProgressL( iError );
         }
-    else if( iOperation )
+    else if( iSubOperation )
         {
-        return iOperation->ProgressL();
+        return iSubOperation->ProgressL();
         }
     
     iProgress().iErrorCode = KErrNone;
@@ -90,9 +89,9 @@
 void CIpsPlgPop3ConnectOp::DoCancel()
     {
     FUNC_LOG;
-    if( iOperation )
+    if( iSubOperation )
         {
-        iOperation->Cancel();
+        iSubOperation->Cancel();
         }
     CompleteObserver( KErrCancel );
     }
@@ -111,13 +110,13 @@
 // <qmail> remove EQueryingDetails state
     if ( iState == EStartConnect )
         {
-        if ( iOperation )
+        if ( iSubOperation )
             {
             // operation exist and it means 
             // disconnect operation was ongoing.
             // How handle errors
-            delete iOperation;
-            iOperation = NULL;
+            delete iSubOperation;
+            iSubOperation = NULL;
             }
         
         // Begin Connect.
@@ -184,9 +183,9 @@
     {
     FUNC_LOG;
     iError = aError;
-    if ( iOperation && iError == KErrNone )
+    if ( iSubOperation && iError == KErrNone )
         {
-        return iOperation->ProgressL();
+        return iSubOperation->ProgressL();
         }
     TPop3Progress& progress = iProgress();
     progress.iPop3Progress = TPop3Progress::EPopConnecting;
@@ -238,6 +237,7 @@
 // CIpsPlgPop3ConnectOp::CIpsPlgPop3ConnectOp
 // ----------------------------------------------------------------------------
 //
+// <qmail> priority parameter has been removed
 CIpsPlgPop3ConnectOp::CIpsPlgPop3ConnectOp(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
@@ -245,14 +245,17 @@
     TBool aForcePopulate,
     CIpsPlgTimerOperation& aActivityTimer,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
-    CIpsPlgEventHandler* aEventHandler,
-    TBool aSignallingAllowed )
+    CIpsPlgEventHandler* aEventHandler )
     :
-    CIpsPlgOnlineOperation( aMsvSession, CActive::EPriorityStandard,
-        aObserverRequestStatus, aActivityTimer, aFSMailBoxId,
-        aFSOperationObserver, aFSRequestId, aSignallingAllowed ),
+    CIpsPlgOnlineOperation(
+        aMsvSession,
+        aObserverRequestStatus, 
+        aActivityTimer, 
+        aFSMailBoxId,
+        aFSOperationObserver, 
+        aFSRequestId ),
     iState( EIdle ),
     iEntry( NULL ),
     iPopulateLimit( KIpsPlgPop3PopulateLimitInitValue ),
@@ -307,13 +310,13 @@
     if ( tentry.Connected() )
         {      
         iState = EConnected; 
-        SetActive();
+        // <qmail> SetActive(); moved inside CompleteThis();
         CompleteThis();
         }
     else
         {
         iState = EStartConnect; 
-        SetActive();
+        // <qmail> SetActive(); moved inside CompleteThis();
         CompleteThis();
         }    
     }
@@ -325,8 +328,8 @@
 void CIpsPlgPop3ConnectOp::DoConnectL()
     {
     FUNC_LOG;
-    iStatus = KRequestPending;
-    InvokeClientMtmAsyncFunctionL( KPOP3MTMConnect, iService, iService );
+    // <qmail> unnecessary: iStatus = KRequestPending;
+    InvokeClientMtmAsyncFunctionL( KPOP3MTMConnect, iService ); // <qmail> 1 param removed
     SetActive();
     
     if ( iEventHandler )
@@ -343,7 +346,7 @@
 void CIpsPlgPop3ConnectOp::DoPopulateL()
     {
     FUNC_LOG;
-    iStatus = KRequestPending;
+    // <qmail> unnecessary: iStatus = KRequestPending;
 
     // Prepare parameters and include filtering
     TImPop3PopulateOptions pop3GetMailInfo;
@@ -354,8 +357,7 @@
     iSelection->InsertL(0, iService);
     iBaseMtm->SwitchCurrentEntryL( iService );
     // Start the fetch operation
-    InvokeClientMtmAsyncFunctionL( KPOP3MTMPopulateAll, *iSelection,
-        iService, params);
+    InvokeClientMtmAsyncFunctionL( KPOP3MTMPopulateAll, *iSelection, params ); // <qmail> 1 param removed
 
     SetActive();
     }
@@ -363,8 +365,8 @@
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-// 
-TInt CIpsPlgPop3ConnectOp::IpsOpType() const
+// <qmail> return type
+TIpsOpType CIpsPlgPop3ConnectOp::IpsOpType() const
     {
     FUNC_LOG;
     return EIpsOpTypePop3SyncOp;
@@ -379,28 +381,23 @@
 TInt CIpsPlgPop3ConnectOp::GetOperationErrorCodeL( )
     {
     FUNC_LOG;
-    if ( !iOperation )
+    if ( !iSubOperation )
         {
         return KErrNotFound;
         }
-    if ( !iOperation->IsActive() && iOperation->iStatus.Int() != KErrNone )
+    if ( !iSubOperation->IsActive() && iSubOperation->iStatus.Int() != KErrNone )
         {
-        return iOperation->iStatus.Int();
+        return iSubOperation->iStatus.Int();
         }
     
     TPckgBuf<TPop3Progress> paramPack;
-    paramPack.Copy( iOperation->ProgressL() );
+    paramPack.Copy( iSubOperation->ProgressL() );
     const TPop3Progress& progress = paramPack();
     
     return progress.iErrorCode;
     }
 
-// ----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-void CIpsPlgPop3ConnectOp::CredientialsSetL( TInt /*aEvent*/ )
-    {
-//<qmail> to be removed
-    }
+// <qmail> Removing CIpsPlgImap4ConnectOp::CredientialsSetL 
 
 //<qmail> new state
 // ----------------------------------------------------------------------------
@@ -408,8 +405,8 @@
 void CIpsPlgPop3ConnectOp::DoDisconnect()
     {
     FUNC_LOG;
-    iStatus = KRequestPending;
-    InvokeClientMtmAsyncFunctionL( KPOP3MTMDisconnect, iService, iService );
+    // <qmail> unnecessary: iStatus = KRequestPending;
+    InvokeClientMtmAsyncFunctionL( KPOP3MTMDisconnect, iService ); // <qmail> 1 param removed
     SetActive();
     }
 //</qmail>
--- a/ipsservices/ipssosplugin/src/ipsplgpop3fetchoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgpop3fetchoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,13 +15,9 @@
 *
 */
 
-
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
 
-// Constants and defines
-const TInt KFetchOpPriority = CActive::EPriorityStandard;
-
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 CIpsPlgPop3FetchOperation* CIpsPlgPop3FetchOperation::NewL(
@@ -33,7 +29,7 @@
     const TImPop3GetMailInfo& aGetMailInfo,
     const CMsvEntrySelection& aSel,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     CIpsPlgEventHandler* aEventHandler )
     {
@@ -108,11 +104,18 @@
     // when connecting for the fetch operation, don't let connect operation to do fetch,
     // because we do it by ourself. That's why give 0 to connect operation.    
     CIpsPlgPop3ConnectOp* connOp = CIpsPlgPop3ConnectOp::NewL(
-        iMsvSession, iStatus, iService, EFalse, iActivityTimer,
-        iFSMailboxId, iFSOperationObserver, iFSRequestId, NULL,EFalse );
+        iMsvSession,
+        iStatus, 
+        iService, 
+        EFalse, 
+        iActivityTimer,
+        iFSMailboxId, 
+        iFSOperationObserver, 
+        iFSRequestId, 
+        NULL );
         
-    delete iOperation;
-    iOperation = connOp;
+    delete iSubOperation;
+    iSubOperation = connOp;
 
     SetActive();
     }
@@ -127,21 +130,19 @@
     iState = EStateFetching;
 
     // Switch operations.
-    delete iOperation;
-    iOperation = NULL;
-    iStatus = KRequestPending;
+    delete iSubOperation;
+    iSubOperation = NULL;
 
     // Filters are not used when performing 'fetch' operation, use normal 
     // getmail info instead
     TPckg<TImPop3GetMailInfo> param( iGetMailInfo );
-    InvokeClientMtmAsyncFunctionL( iFunctionId, *iSelection, iService, param );
+    InvokeClientMtmAsyncFunctionL( iFunctionId, *iSelection, param );
     SetActive();
     }
 
-
-
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
+// <qmail> priority parameter has been removed
 CIpsPlgPop3FetchOperation::CIpsPlgPop3FetchOperation(
     CMsvSession& aMsvSession,
     TRequestStatus& aObserverRequestStatus,
@@ -150,14 +151,20 @@
     CIpsPlgTimerOperation& aActivityTimer,
     const TImPop3GetMailInfo& aGetMailInfo,
     TFSMailMsgId aFSMailBoxId,
-    MFSMailRequestObserver& aFSOperationObserver,
+    MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId,
     CIpsPlgEventHandler* aEventHandler )
     : 
-    CIpsPlgOnlineOperation( aMsvSession, KFetchOpPriority,
-        aObserverRequestStatus, aActivityTimer, aFSMailBoxId,
-        aFSOperationObserver, aFSRequestId), iFunctionId( aFunctionId ),
-        iGetMailInfo( aGetMailInfo ), iEventHandler( aEventHandler )
+    CIpsPlgOnlineOperation(
+        aMsvSession,
+        aObserverRequestStatus, 
+        aActivityTimer, 
+        aFSMailBoxId,
+        aFSOperationObserver, 
+        aFSRequestId ),
+    iFunctionId( aFunctionId ),
+    iGetMailInfo( aGetMailInfo ), 
+    iEventHandler( aEventHandler )
     {
     FUNC_LOG;
     iService = aService;
@@ -171,7 +178,7 @@
 
     TRAP( iError, DoRunL() );
     
-    if(iError != KErrNone)
+    if( iError )
         {        
         // Notify observer we have finished.
         CompleteObserver();
@@ -226,9 +233,9 @@
             if( KErrNone != err )
                 {
                 TPckgBuf<TPop3Progress> paramPack;
-                if ( iOperation )
+                if ( iSubOperation )
                     {
-                paramPack.Copy( iOperation->ProgressL() );
+                paramPack.Copy( iSubOperation->ProgressL() );
                     }
                 TPop3Progress& progress = paramPack();
                 progress.iErrorCode = err;
@@ -288,5 +295,11 @@
     return result;
     }
 
-// EOF
-
+// <qmail> new func to this op
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgPop3FetchOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypePop3FetchOp;
+    }
--- a/ipsservices/ipssosplugin/src/ipsplgpop3plugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgpop3plugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -174,7 +174,7 @@
         forcePopulate,
         ActivityTimerL( aMailBoxId ),
         aMailBoxId, 
-        aOperationObserver,
+        &aOperationObserver,
         aRequestId,
         iEventHandler );
     
@@ -344,7 +344,7 @@
         info, 
         *sel, 
         aMailBoxId, 
-        aObserver, 
+        &aObserver, 
         aRequestId,
         iEventHandler );
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssosplugin/src/ipsplgremovechildpartoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -0,0 +1,298 @@
+/*
+* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This file implements class CCIpsPlgRemoveChildPartOperation.
+*
+*/
+
+// <qmail>
+// INCLUDE FILES
+
+#include "emailtrace.h"
+#include "ipsplgheaders.h"
+
+// LOCAL CONSTANTS AND MACROS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::CIpsPlgRemoveChildPartOperation
+// ----------------------------------------------------------------------------
+//
+CIpsPlgRemoveChildPartOperation::CIpsPlgRemoveChildPartOperation(
+    CMsvSession& aMsvSession,
+    TRequestStatus& aObserverRequestStatus,
+    const TFSMailMsgId& aMessageId,
+    const TFSMailMsgId& aPartId,
+    MFSMailRequestObserver& aOperationObserver,
+    const TInt aRequestId)
+    :
+    CIpsPlgBaseOperation( 
+        aMsvSession, 
+        aObserverRequestStatus,
+        aRequestId,
+        TFSMailMsgId()),
+    iMessageId(aMessageId),
+    iPartId(aPartId),
+    iOperationObserver(aOperationObserver)
+    {
+    FUNC_LOG;
+    CActiveScheduler::Add( this );
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::NewL
+// ----------------------------------------------------------------------------
+//
+CIpsPlgRemoveChildPartOperation* CIpsPlgRemoveChildPartOperation::NewL(
+    CMsvSession& aMsvSession,
+    TRequestStatus& aObserverRequestStatus,
+    const TFSMailMsgId& aMessageId,
+    const TFSMailMsgId& aPartId,
+    MFSMailRequestObserver& aOperationObserver,
+    const TInt aRequestId)
+    {
+    FUNC_LOG;
+    CIpsPlgRemoveChildPartOperation* self =
+        new (ELeave) CIpsPlgRemoveChildPartOperation(
+            aMsvSession,
+            aObserverRequestStatus,
+            aMessageId,
+            aPartId,
+            aOperationObserver,
+            aRequestId );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self ); 
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::ConstructL()
+    {
+    FUNC_LOG;
+    StartOperationL();
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::~CIpsPlgRemoveChildPartOperation
+// ----------------------------------------------------------------------------
+//
+CIpsPlgRemoveChildPartOperation::~CIpsPlgRemoveChildPartOperation()
+    {
+    FUNC_LOG;
+    Cancel(); // Cancel any request, if outstanding
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::DoCancel
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::DoCancel()
+    {
+    FUNC_LOG;
+    
+    if (iMessage)
+        {
+        iMessage->AttachmentManager().CancelRequest();
+        iMessage->Cancel();
+        }
+    
+    TRequestStatus* status = &iObserverRequestStatus;
+    if ( status && status->Int() == KRequestPending )
+        {
+        SignalFSObserver(iStatus.Int(),NULL);
+        User::RequestComplete( status, iStatus.Int() );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::StartOperation
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::StartOperationL()
+    {
+    TInt status( KErrNone );
+    CMsvEntry* cEntry( NULL );
+    TMsvEntry tEntry;
+    TMsvId serviceId;
+    status = iMsvSession.GetEntry( iPartId.Id(), serviceId, tEntry );
+    
+    if ( ( status == KErrNone ) && 
+         ( tEntry.iType == KUidMsvAttachmentEntry ) )
+        {
+        iMessage = NULL;
+        // We trust that the message ID really refers to a message
+        GetMessageEntryL( iMessageId.Id(), cEntry, iMessage );
+    
+        MMsvAttachmentManager& attachmentMgr( iMessage->AttachmentManager() ); 
+
+        // Start async request
+        attachmentMgr.RemoveAttachmentL( 
+            (TMsvAttachmentId) iPartId.Id(), iStatus );
+        SetActive();
+        }
+    else if ( ( status == KErrNone ) && 
+              ( tEntry.iType == KUidMsvFolderEntry ) )
+        {
+        cEntry = iMsvSession.GetEntryL( tEntry.Parent() );
+        CleanupStack::PushL( cEntry );
+        cEntry->DeleteL( tEntry.Id() );
+        CleanupStack::PopAndDestroy( cEntry );
+        }
+    }
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::RunL
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::RunL()
+    {
+    if (iStatus.Int() == KErrNone)
+        {
+        // Inform observer
+        SignalFSObserver(iStatus.Int(),NULL);
+        // Complete observer
+        TRequestStatus* observerStatus = &iObserverRequestStatus;
+        User::RequestComplete( observerStatus, iStatus.Int() );   
+        }
+    else if (iStatus.Int() == KErrCancel)
+        {
+        // Do Nothing   
+        }
+    else
+        {
+        User::Leave(iStatus.Int());
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::GetMessageEntryL( )
+// Checks whether the requested message is already cached. If not, the cached 
+// objects are deleted and new objects are created.
+// ----------------------------------------------------------------------------
+void CIpsPlgRemoveChildPartOperation::GetMessageEntryL( 
+    TMsvId aId, 
+    CMsvEntry*& aMessageEntry,
+    CImEmailMessage*& aImEmailMessage )
+    {
+    FUNC_LOG;
+    if ( !iCachedEntry || ( aId != iCachedEntry->Entry().Id() ) ||
+            iCachedEmailMessage->IsActive() )
+        {
+        CleanCachedMessageEntries();
+        
+        iCachedEntry = iMsvSession.GetEntryL( aId );
+        if ( iCachedEntry->Entry().iType == KUidMsvMessageEntry )
+            {
+            iCachedEmailMessage = CImEmailMessage::NewL( *iCachedEntry );
+            }
+        }
+    aMessageEntry = iCachedEntry;
+    aImEmailMessage = iCachedEmailMessage;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::CleanCachedMessageEntries()
+    {
+    FUNC_LOG;
+    delete iCachedEmailMessage;
+    iCachedEmailMessage = NULL;
+    delete iCachedEntry;
+    iCachedEntry = NULL;
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::RunError
+// ----------------------------------------------------------------------------
+//
+TInt CIpsPlgRemoveChildPartOperation::RunError(TInt aError)
+    {
+    FUNC_LOG;
+    SignalFSObserver( aError, NULL );
+    
+    TRequestStatus* status = &iObserverRequestStatus;
+    User::RequestComplete( status, aError );
+    return KErrNone; // RunError must return KErrNone to active sheduler.
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::SignalFSObserver
+// ----------------------------------------------------------------------------
+//
+void CIpsPlgRemoveChildPartOperation::SignalFSObserver(
+        TInt aStatus, CFSMailMessagePart* /*aMessagePart*/ )
+    {
+    FUNC_LOG;
+    if ( aStatus == KErrCancel )
+        {
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+        iFSProgress.iError = KErrCancel;
+        iFSProgress.iParam = NULL;
+        }
+    else
+        {
+        iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+        iFSProgress.iError = aStatus;
+        iFSProgress.iParam = NULL;
+        }
+
+    TRAP_IGNORE( iOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgRemoveChildPartOperation::ProgressL
+// ----------------------------------------------------------------------------
+//
+const TDesC8& CIpsPlgRemoveChildPartOperation::ProgressL()
+    {
+    FUNC_LOG;
+    return KNullDesC8;
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::GetErrorProgressL
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgRemoveChildPartOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::GetFSProgressL
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgRemoveChildPartOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    return iFSProgress;
+    }
+
+// ----------------------------------------------------------------------------
+// CIpsPlgNewChildPartFromFileOperation::IpsOpType
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgRemoveChildPartOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeNewChildPartFromFile;
+    }
+
+//  End of File
+
+// </qmail>
--- a/ipsservices/ipssosplugin/src/ipsplgsmtpoperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsmtpoperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -26,9 +26,9 @@
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 //
+// <qmail> priority parameter has been removed
 EXPORT_C CIpsPlgSmtpOperation* CIpsPlgSmtpOperation::NewL( 
     CMsvSession& aMsvSession, 
-    TInt aPriority,
     TRequestStatus& aObserverRequestStatus,
     MFSMailRequestObserver* aOperationObserver,
     TInt aRequestId )
@@ -36,7 +36,6 @@
     FUNC_LOG;
     CIpsPlgSmtpOperation* self = CIpsPlgSmtpOperation::NewLC(
         aMsvSession,
-        aPriority,
         aObserverRequestStatus,
         aOperationObserver,
         aRequestId );
@@ -47,9 +46,9 @@
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 //
+// <qmail> priority parameter has been removed
 EXPORT_C CIpsPlgSmtpOperation* CIpsPlgSmtpOperation::NewLC( 
     CMsvSession& aMsvSession, 
-    TInt aPriority, 
     TRequestStatus& aObserverRequestStatus,
     MFSMailRequestObserver* aOperationObserver,
     TInt aRequestId )
@@ -57,7 +56,6 @@
     FUNC_LOG;
     CIpsPlgSmtpOperation* self = new( ELeave ) CIpsPlgSmtpOperation(
         aMsvSession,
-        aPriority,
         aObserverRequestStatus,
         aOperationObserver,
         aRequestId );
@@ -68,15 +66,13 @@
    
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
-//
+// <qmail> priority parameter has been removed
 CIpsPlgSmtpOperation::CIpsPlgSmtpOperation( 
     CMsvSession& aMsvSession, 
-    TInt aPriority, 
     TRequestStatus& aObserverRequestStatus,
     MFSMailRequestObserver* aFSOperationObserver,
     TInt aFSRequestId ) :
-    CIpsPlgBaseOperation( aMsvSession, aPriority, aObserverRequestStatus, 
-        aFSRequestId, TFSMailMsgId() ),
+    CIpsPlgBaseOperation( aMsvSession, aObserverRequestStatus, aFSRequestId, TFSMailMsgId() ),
     iSmtpMtm( NULL ),
     iOperation( NULL ),
     iSelection( NULL ),  
@@ -224,10 +220,9 @@
     }
 
 // ---------------------------------------------------------------------------
-// CIpsPlgSmtpOperation::IpsOpType
 // ---------------------------------------------------------------------------    
-//   
-TInt CIpsPlgSmtpOperation::IpsOpType() const
+// <qmail> return type
+TIpsOpType CIpsPlgSmtpOperation::IpsOpType() const
     {
     FUNC_LOG;
     return EIpsOpTypeSmtp;
--- a/ipsservices/ipssosplugin/src/ipsplgsmtpservice.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsmtpservice.cpp	Mon May 03 12:23:15 2010 +0300
@@ -48,9 +48,6 @@
     {
     FUNC_LOG;
     delete iMsgMapper;
-// <qmail>
-    iOperations.ResetAndDestroy();
-// </qmail>
     }    
 
 // ---------------------------------------------------------------------------
@@ -94,46 +91,6 @@
     iMsgMapper = CIpsPlgMsgMapper::NewL( iSession, iPlugin );
     }
 
-// <qmail>
-// ----------------------------------------------------------------------------
-// CIpsPlgSmtpService::OpCompleted
-// ----------------------------------------------------------------------------
-void CIpsPlgSmtpService::OpCompleted(
-    CIpsPlgSingleOpWatcher& aOpWatcher,
-    TInt /*aCompletionCode*/ )
-    {
-    FUNC_LOG;
-    // Get valid operation count in each, some operations could have been
-    // deleted in array
-    TInt opId = aOpWatcher.Operation().Id();
-	
-	TInt count = iOperations.Count();
-	
-    for ( TInt i = count - 1; i >= 0; i-- )
-        {
-        CMsvOperation& oper = iOperations[i]->Operation();
-
-        if ( oper.Id() == opId )
-            {
-            DeleteAndRemoveOperation( i );
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CIpsPlgSmtpService::DeleteAndRemoveOperation
-// ---------------------------------------------------------------------------
-void CIpsPlgSmtpService::DeleteAndRemoveOperation( const TInt aOpArrayIndex )
-    {
-    FUNC_LOG;
-    CIpsPlgSingleOpWatcher* opWatcher = iOperations[aOpArrayIndex];
-
-    iOperations.Remove( aOpArrayIndex );
-    delete opWatcher;
-    opWatcher = NULL;
-    }
-// </qmail>
-
 // ---------------------------------------------------------------------------
 // CIpsPlgSmtpService::CreateDisplayStringLC
 // ---------------------------------------------------------------------------
@@ -299,40 +256,6 @@
             msgId, KErrNotFound, aMailBoxId.Id() );
     }
 
-// <qmail>
-// ---------------------------------------------------------------------------
-// CIpsPlgSmtpService::CreateNewSmtpMessageL
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgSmtpService::CreateNewSmtpMessageL(
-    const TFSMailMsgId& aMailBoxId,
-    MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
-    {
-    TMsvPartList partList( KMsvMessagePartBody );
-    
-    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
-    
-    TMsvEntry mboxEntry;
-    TMsvId service;
-    User::LeaveIfError(
-	    iSession.GetEntry( aMailBoxId.Id(), service, mboxEntry ) );
-
-    CIpsPlgCreateMessageOperation* op = CIpsPlgCreateMessageOperation::NewL( this, 
-        iSession,
-        watcher->iStatus,
-        mboxEntry.iRelatedId, 
-        partList, 
-        aMailBoxId.Id(), 
-        aOperationObserver, 
-        aRequestId );
-    watcher->SetOperation( op );
-
-    iOperations.AppendL( watcher ); 
-    CleanupStack::Pop( watcher );
-    }
-// </qmail>
-
 // ---------------------------------------------------------------------------
 // CIpsPlgSmtpService::CreateForwardSmtpMessageL
 // ---------------------------------------------------------------------------
@@ -382,56 +305,6 @@
     return CreateFSMessageAndSetFlagsL( msgId, orgMsg.Id(), aMailBoxId.Id() );
     }
 
-// <qmail>
-// ---------------------------------------------------------------------------
-// CIpsPlgSmtpService::CreateNewSmtpMessageL
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgSmtpService::CreateForwardSmtpMessageL(
-    const TFSMailMsgId& aMailBoxId,
-    const TFSMailMsgId& aOriginalMessageId,
-    MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
-    {
-    FUNC_LOG;
-    // 1. part of function checs that body text and all
-    // attachments are fetched
-    TMsvEntry orgMsg;
-    TMsvId service;
-    User::LeaveIfError( iSession.GetEntry( 
-            aOriginalMessageId.Id(), service, orgMsg ) );
-    
-    if ( orgMsg.Id() ==  KMsvNullIndexEntryIdValue )
-        {
-        User::Leave(KErrNotFound);
-        }
-    
-    if ( ( orgMsg.Parent() == KMsvSentEntryIdValue ) && 
-         ( orgMsg.iMtm == KSenduiMtmSmtpUid ) )
-        {
-        ChangeServiceIdL( orgMsg );
-        }
-    
-    TMsvPartList partList( KMsvMessagePartBody | KMsvMessagePartAttachments );
-    
-    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
-    
-    CIpsPlgCreateForwardMessageOperation* op = CIpsPlgCreateForwardMessageOperation::NewL( 
-        this, 
-        iSession,
-        watcher->iStatus,
-        partList, 
-        aMailBoxId.Id(), 
-        orgMsg.Id(), 
-        aOperationObserver, 
-        aRequestId );
-    watcher->SetOperation( op );
-
-    iOperations.AppendL( watcher ); 
-    CleanupStack::Pop( watcher );
-    }
-// </qmail>
-
 // ---------------------------------------------------------------------------
 // CIpsPlgSmtpService::CreateReplySmtpMessageL
 // ---------------------------------------------------------------------------
@@ -538,62 +411,6 @@
     return fsMsg;
     }
 
-// <qmail>
-// ---------------------------------------------------------------------------
-// CIpsPlgSmtpService::CreateReplySmtpMessageL
-// ---------------------------------------------------------------------------
-//
-void CIpsPlgSmtpService::CreateReplySmtpMessageL( 
-    const TFSMailMsgId& aMailBoxId,
-    const TFSMailMsgId& aOriginalMessageId,
-    TBool aReplyToAll,
-    MFSMailRequestObserver& aOperationObserver,
-    const TInt aRequestId )
-    {
-    FUNC_LOG;
-    // find orginal message header and check that body is fetched
-    TMsvEntry orgMsg;
-    TMsvId service;
-    User::LeaveIfError( 
-        iSession.GetEntry( aOriginalMessageId.Id(), service, orgMsg ) );
-    
-    if ( orgMsg.Id() ==  KMsvNullIndexEntryIdValue )
-        {
-        User::Leave(KErrNotFound);
-        }
-    
-    if ( ( orgMsg.Parent() == KMsvSentEntryIdValue ) && 
-         ( orgMsg.iMtm == KSenduiMtmSmtpUid ) )
-        {
-        ChangeServiceIdL( orgMsg );
-        }
-    
-    // partList flags control e.g. what kind of recipient set is created
-    TMsvPartList partList = KMsvMessagePartBody | KMsvMessagePartDescription
-    | KMsvMessagePartOriginator;        
-    if( aReplyToAll )
-        {
-        partList |= KMsvMessagePartRecipient;
-        }
-    
-    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
-    
-    CIpsPlgCreateReplyMessageOperation* op = CIpsPlgCreateReplyMessageOperation::NewL( 
-        this, 
-        iSession,
-        watcher->iStatus,
-        partList, 
-        aMailBoxId.Id(), 
-        orgMsg.Id(), 
-        aOperationObserver, 
-        aRequestId );
-    watcher->SetOperation( op );
-
-    iOperations.AppendL( watcher ); 
-    CleanupStack::Pop( watcher );
-    }
-// </qmail>
-
 // ---------------------------------------------------------------------------
 // CIpsPlgSmtpService::ChangeServiceIdL
 // ---------------------------------------------------------------------------
--- a/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -765,7 +765,29 @@
                                     const TInt aRequestId )
     {
     FUNC_LOG;
-    iSmtpService->CreateNewSmtpMessageL( aMailBoxId, aOperationObserver, aRequestId );
+    // asynchronous message creation is started here to enable canceling of the operation
+    TMsvPartList partList( KMsvMessagePartBody );
+    
+    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
+    
+    TMsvEntry mboxEntry;
+    TMsvId service;
+    User::LeaveIfError(
+        iSession->GetEntry( aMailBoxId.Id(), service, mboxEntry ) );
+
+    CIpsPlgCreateMessageOperation* op = CIpsPlgCreateMessageOperation::NewL( 
+        iSmtpService, 
+        *iSession,
+        watcher->iStatus,
+        mboxEntry.iRelatedId, 
+        partList, 
+        aMailBoxId, 
+        aOperationObserver, 
+        aRequestId );
+    watcher->SetOperation( op );
+
+    iOperations.AppendL( watcher ); 
+    CleanupStack::Pop( watcher );    
     }
 // </qmail> 
  
@@ -793,7 +815,43 @@
     const TDesC& /*aHeaderDescriptor*/ )
     {
     FUNC_LOG;
-    iSmtpService->CreateForwardSmtpMessageL( aMailBoxId, aOriginalMessageId, aOperationObserver, aRequestId );
+    // asynchronous message creation is started here to enable canceling of the operation
+    
+    // 1. part of function checs that body text and all
+    // attachments are fetched
+    TMsvEntry orgMsg;
+    TMsvId service;
+    User::LeaveIfError( iSession->GetEntry( 
+            aOriginalMessageId.Id(), service, orgMsg ) );
+    
+    if ( orgMsg.Id() ==  KMsvNullIndexEntryIdValue )
+        {
+        User::Leave(KErrNotFound);
+        }
+    
+    if ( ( orgMsg.Parent() == KMsvSentEntryIdValue ) && 
+         ( orgMsg.iMtm == KSenduiMtmSmtpUid ) )
+        {
+        iSmtpService->ChangeServiceIdL( orgMsg );
+        }
+    
+    TMsvPartList partList( KMsvMessagePartBody | KMsvMessagePartAttachments );
+    
+    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
+    
+    CIpsPlgCreateForwardMessageOperation* op = CIpsPlgCreateForwardMessageOperation::NewL( 
+        iSmtpService, 
+        *iSession,
+        watcher->iStatus,
+        partList, 
+        aMailBoxId, 
+        orgMsg.Id(), 
+        aOperationObserver, 
+        aRequestId );
+    watcher->SetOperation( op );
+
+    iOperations.AppendL( watcher ); 
+    CleanupStack::Pop( watcher );
     }
 // </qmail> 
 
@@ -823,8 +881,48 @@
     const TDesC& /* aHeaderDescriptor */ )
     {
     FUNC_LOG;
-    iSmtpService->CreateReplySmtpMessageL( 
-        aMailBoxId, aOriginalMessageId, aReplyToAll, aOperationObserver, aRequestId );
+    // asynchronous message creation is started here to enable canceling of the operation
+    
+    // find orginal message header and check that body is fetched
+    TMsvEntry orgMsg;
+    TMsvId service;
+    User::LeaveIfError( 
+        iSession->GetEntry( aOriginalMessageId.Id(), service, orgMsg ) );
+    
+    if ( orgMsg.Id() ==  KMsvNullIndexEntryIdValue )
+        {
+        User::Leave(KErrNotFound);
+        }
+    
+    if ( ( orgMsg.Parent() == KMsvSentEntryIdValue ) && 
+         ( orgMsg.iMtm == KSenduiMtmSmtpUid ) )
+        {
+        iSmtpService->ChangeServiceIdL( orgMsg );
+        }
+    
+    // partList flags control e.g. what kind of recipient set is created
+    TMsvPartList partList = KMsvMessagePartBody | KMsvMessagePartDescription
+    | KMsvMessagePartOriginator;        
+    if( aReplyToAll )
+        {
+        partList |= KMsvMessagePartRecipient;
+        }
+    
+    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
+    
+    CIpsPlgCreateReplyMessageOperation* op = CIpsPlgCreateReplyMessageOperation::NewL( 
+        iSmtpService, 
+        *iSession,
+        watcher->iStatus,
+        partList, 
+        aMailBoxId, 
+        orgMsg.Id(), 
+        aOperationObserver, 
+        aRequestId );
+    watcher->SetOperation( op );
+
+    iOperations.AppendL( watcher ); 
+    CleanupStack::Pop( watcher );
     }
 // </qmail>
 
@@ -1115,7 +1213,7 @@
     FUNC_LOG;
     CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
     
-    CCIpsPlgNewChildPartFromFileOperation* op = CCIpsPlgNewChildPartFromFileOperation::NewL(
+    CIpsPlgNewChildPartFromFileOperation* op = CIpsPlgNewChildPartFromFileOperation::NewL(
         *iSession, 
         watcher->iStatus,
         aMailBoxId,
@@ -1319,6 +1417,39 @@
         }
 	}
 
+// <qmail>
+// ----------------------------------------------------------------------------
+// Supports currently deletion of attachments and multipart structures 
+// which are represented as folders in Symbian store)
+// ----------------------------------------------------------------------------  
+//
+void CIpsPlgSosBasePlugin::RemoveChildPartL(
+    const TFSMailMsgId& /* aMailBoxId */,
+    const TFSMailMsgId& /* aParentFolderId */,
+    const TFSMailMsgId& aMessageId,
+    const TFSMailMsgId& /* aParentPartId */,
+    const TFSMailMsgId& aPartId,
+    MFSMailRequestObserver& aOperationObserver,
+    const TInt aRequestId )
+    {
+    FUNC_LOG;
+    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC(*this);
+    
+    CIpsPlgRemoveChildPartOperation* op = CIpsPlgRemoveChildPartOperation::NewL(
+        *iSession, 
+        watcher->iStatus,
+        aMessageId,
+        aPartId,
+        aOperationObserver, 
+        aRequestId);
+    watcher->SetOperation( op );
+
+    iOperations.AppendL( watcher ); 
+    CleanupStack::Pop( watcher );
+
+    }
+// </qmail>
+
 // ----------------------------------------------------------------------------
 // The implementation supoorts the atachment and body parts at the moment.
 // ----------------------------------------------------------------------------  
@@ -1618,9 +1749,10 @@
     //    {
         CIpsPlgSingleOpWatcher* watcher =
             CIpsPlgSingleOpWatcher::NewLC(*this);
+
+        // <qmail> priority parameter has been removed
         CIpsPlgSmtpOperation* op = CIpsPlgSmtpOperation::NewL(
             *iSession,
-            CActive::EPriorityStandard,
             watcher->iStatus,
             &aOperationObserver,
             aRequestId );
@@ -1834,32 +1966,35 @@
 // ----------------------------------------------------------------------------
 // method sets authentication popup data 
 // ----------------------------------------------------------------------------
-void CIpsPlgSosBasePlugin::SetCredentialsL( const TFSMailMsgId& aMailBoxId,
-	const TDesC& /*aUsername*/, const TDesC& aPassword )
+//
+void CIpsPlgSosBasePlugin::SetCredentialsL( const TFSMailMsgId& /*aMailBoxId*/,
+	const TDesC& /*aUsername*/, const TDesC& /*aPassword*/ )
 	{
-    FUNC_LOG;
-	TBool cancelled = EFalse;
-	
-	if ( aPassword.Length() > 0 )
-	    {
-    	//Set new password and signal (possible) ongoing connect operation
-    	//CIpsSetDataApi* api = CIpsSetDataApi::NewL( *iSession );
-        //CleanupStack::PushL( api );
-        
-        //CMsvEntry* cEntry = iSession->GetEntryL( aMailBoxId.Id() );
-        //CleanupStack::PushL( cEntry );
-        
-        //api->SetNewPasswordL( *cEntry, aPassword );
-        
-        //CleanupStack::PopAndDestroy( 2, api );//cEntry, api
-        
-        //now signal through eventhandler that credientials have been set       
-	    }
-	else
-	    {
-	    cancelled = ETrue;
-	    }
-	iEventHandler->SignalCredientialsSetL( aMailBoxId.Id(), cancelled );
+// <qmail> not used; should be removed
+//    FUNC_LOG;
+//	TBool cancelled = EFalse;
+//	
+//	if ( aPassword.Length() > 0 )
+//	    {
+//    	//Set new password and signal (possible) ongoing connect operation
+//    	//CIpsSetDataApi* api = CIpsSetDataApi::NewL( *iSession );
+//        //CleanupStack::PushL( api );
+//        
+//        //CMsvEntry* cEntry = iSession->GetEntryL( aMailBoxId.Id() );
+//        //CleanupStack::PushL( cEntry );
+//        
+//        //api->SetNewPasswordL( *cEntry, aPassword );
+//        
+//        //CleanupStack::PopAndDestroy( 2, api );//cEntry, api
+//        
+//        //now signal through eventhandler that credientials have been set       
+//	    }
+//	else
+//	    {
+//	    cancelled = ETrue;
+//	    }
+//	iEventHandler->SignalCredientialsSetL( aMailBoxId.Id(), cancelled );
+// </qmail>
 	}
 
 // ----------------------------------------------------------------------------
@@ -2035,7 +2170,7 @@
     const TFSMailMsgId& aMailBoxId, 
     MFSMailRequestObserver& aObserver,
     const TInt aRequestId,
-    TBool aRemoveAccountAlso )
+    TBool /*aRemoveAccountAlso*/ )
     {
     FUNC_LOG;
     TMsvId service = aMailBoxId.Id();
@@ -2055,10 +2190,14 @@
 
         sel->AppendL( service );
 
-        CIpsPlgBaseOperation* op = CIpsPlgDisconnectOp::NewL( *iSession,
-            watcher->iStatus, service, ActivityTimerL( aMailBoxId ),
-            aMailBoxId, aObserver, aRequestId, 
-            aRemoveAccountAlso );
+        CIpsPlgBaseOperation* op = CIpsPlgDisconnectOp::NewL(
+            *iSession,
+            watcher->iStatus, 
+            service, 
+            ActivityTimerL( aMailBoxId ),
+            aMailBoxId, 
+            &aObserver, 
+            aRequestId );
 
         watcher->SetOperation( op );
         CleanupStack::PopAndDestroy( sel );
@@ -2100,8 +2239,7 @@
     CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewL(*this);
  	CleanupStack::PushL(watcher);
  	// <qmail>
-    CIpsPlgSmtpOperation* op = CIpsPlgSmtpOperation::NewLC( 
-        *iSession, CActive::EPriorityStandard, watcher->iStatus );
+    CIpsPlgSmtpOperation* op = CIpsPlgSmtpOperation::NewLC( *iSession, watcher->iStatus );
  	// </qmail>
     watcher->SetOperation(op);
     op->EmptyOutboxFromPendingMessagesL( aMailBoxId.Id() );
@@ -2295,7 +2433,6 @@
        if ( baseOp && baseOp->FSMailboxId() == aMailBoxId &&
               ( baseOp->IpsOpType() == EIpsOpTypePop3SyncOp
                || baseOp->IpsOpType() == EIpsOpTypeImap4SyncOp
-               || baseOp->IpsOpType() == EIpsOpTypeOnlineOp
                || baseOp->IpsOpType() == EIpsOpTypeImap4PopulateOp ) )
            {
            return ETrue;
--- a/ipsservices/ipssosplugin/src/ipsplgsyncstatehandler.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsyncstatehandler.cpp	Mon May 03 12:23:15 2010 +0300
@@ -69,10 +69,9 @@
         TInt aEvent, TInt aMailbox, TInt aPluginId ,TInt /*aError*/ )
     {
     FUNC_LOG;
-    if ( iPlugin.PluginId() == aPluginId &&
-            ( aEvent == KIpsSosEmailSyncStarted || 
-            aEvent == KIpsSosEmailSyncCompleted ||
-            aEvent == KIpsSosEmailSyncOnHold ) )
+    // <qmail> removed sync-on-hold state
+    if ( ( iPlugin.PluginId() == aPluginId ) &&
+        ( aEvent == KIpsSosEmailSyncStarted || aEvent == KIpsSosEmailSyncCompleted ) )
         {
         AppendMailboxToSyncingMailbox( aMailbox, aEvent );
         }
--- a/ipsservices/nmimapclientplugin/nmimapclientplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmimapclientplugin/nmimapclientplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -28,6 +28,9 @@
 
 SOURCES += src/nmimapclientplugin.cpp
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian*: { 
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = ALL \
--- a/ipsservices/nmipssettings/inc/ipssettingkeys.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/ipssettingkeys.h	Mon May 03 12:23:15 2010 +0300
@@ -86,14 +86,14 @@
 
 // Inbox sync window in number of messages. 0 means all messages are synched
 // from the server. 
-// Value for each profile: KUTP(200),SE(100),FM(100), UD
+// Value for each profile: KUTP(500),SE(50),FM(50), UD
 // This key follows the profile offset.
 static const quint32 EmailKeyReceptionInboxSyncWindow = 5;
 
 // default values for each profile
-static const int DefaultValueKeepUpToDateInboxSyncWindow = 200;
-static const int DefaultValueSaveEnergyInboxSyncWindow = 100;
-static const int DefaultValueManualSyncInboxSyncWindow = 100;
+static const int DefaultValueKeepUpToDateInboxSyncWindow = 500;
+static const int DefaultValueSaveEnergyInboxSyncWindow = 50;
+static const int DefaultValueManualSyncInboxSyncWindow = 50;
 static const int DefaultUserDefinedInboxSyncWindow = -1;
 
 // Other folder sync window in number of messages. 0 means all messages are synched
--- a/ipsservices/nmipssettings/inc/nmipsextendedsettingsmanager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipsextendedsettingsmanager.h	Mon May 03 12:23:15 2010 +0300
@@ -33,13 +33,16 @@
     
     bool readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue) const;
     bool writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue);
+    bool writeSetting(int profileMode, IpsServices::SettingItem settingItem, const QVariant &settingValue);
     void deleteSettings();
 
 private:
+    bool writeSettingToCenRep(qint32 profileOffset, IpsServices::SettingItem settingItem, const QVariant &settingValue);
     QVariant readFromCenRep(quint32 key) const;
     bool writeToCenRep(quint32 key, const QVariant &value) const;
     void calculateMailboxOffset();
     void calculateActiveProfileOffset();
+    qint32 convertToProfileOffset(int profile);
 
 private: // data
     const NmId &mMailboxId;
--- a/ipsservices/nmipssettings/inc/nmipsimap4settingsmanager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipsimap4settingsmanager.h	Mon May 03 12:23:15 2010 +0300
@@ -38,8 +38,9 @@
     
     bool readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue);
     bool writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue);
-
-    int deleteMailbox();
+    
+    int deleteMailbox();    
+    int determineDefaultIncomingPort();
 
 private:    
 
--- a/ipsservices/nmipssettings/inc/nmipspop3settingsmanager.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipspop3settingsmanager.h	Mon May 03 12:23:15 2010 +0300
@@ -37,8 +37,9 @@
     
     bool readSetting(IpsServices::SettingItem settingItem, QVariant &value);
     bool writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue);
-
+    
     int deleteMailbox();
+    int determineDefaultIncomingPort();
 
 private:
 
--- a/ipsservices/nmipssettings/inc/nmipssettingitems.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingitems.h	Mon May 03 12:23:15 2010 +0300
@@ -24,8 +24,8 @@
          Enumeration for identifying mailbox settings.
      */
     enum SettingItem {
-        LoginName = 0,                          // String
-        Password,                               // String
+        IncomingLoginName = 0,                  // String
+        IncomingPassword,                       // String
         MailboxName,                            // String
         EmailAddress,                           // String
         ReplyAddress,                           // String
@@ -42,8 +42,82 @@
         ReceptionDayEndTime,                    // Integer: 0-23
         ReceptionRefreshPeriodDayTime,          // Integer: 5,15,60,240,0="When open mailbox"
         ReceptionRefreshPeriodOther,            // Integer: 5,15,60,240,0="When open mailbox"
-        UserNameHidden                          // Integer: 0=Off, 1=On
+        UserNameHidden,                         // Integer: 0=Off, 1=On
+        IncomingMailServer,                     // String
+        OutgoingMailServer,                     // String
+        IncomingPort,                           // Integer
+        OutgoingPort,                           // Integer
+        FolderPath,                             // String: Empty string means 'Default'
+        IncomingSecureSockets,                  // Boolean
+        IncomingSSLWrapper,                     // Boolean
+        OutgoingLoginName,                      // String
+        OutgoingPassword,                       // String
+        SMTPAuthentication,                     // Boolean
+        OutgoingSecureSockets,                  // Boolean
+        OutgoingSSLWrapper                      // Boolean
     }; 
+    
+    /**
+     * Utility structure TAOInfo.
+     * Contains info was last update successful ( TBool )
+     * and the date and time of last successful update ( TTime )     
+     */
+    struct TAOInfo
+        {
+        TBool iLastUpdateFailed; 
+        TTime iLastSuccessfulUpdate;
+        TBool iUpdateSuccessfulWithCurSettings;
+        };
+    
+    /**
+     * Supported always online states.
+     */
+    enum TIpsSetDataAoStates
+        {
+        EMailAoAlways = 0,
+        EMailAoHomeOnly,
+        EMailAoOff
+        };
+
+    /**
+     * Supported OMA EMN states
+     */
+    enum TIpsSetDataEmnStates
+        {
+        EMailEmnAutomatic = 0,
+        EMailEmnHomeOnly,
+        EMailEmnOff
+        };
+    
+    /** 
+     * Security types 
+     */
+    enum TIpsSetDataSecurityTypes
+        {
+        EMailStartTls = 0,
+        EMailSslTls,
+        EMailSecurityOff
+        };
+
+    /** 
+     * Account types 
+     */
+    enum TIpsSetAccountTypes
+        {
+        EMailPop = 0,
+        EMailImap
+        };
+    
+    const int standardPop3Port = 110;   // POP3 - port 110
+    const int standardImap4Port = 143;  // IMAP - port 143
+    const int standardSmtpPort = 25;    // SMTP - port 25
+    const int secureSmtpPort = 465;     // Secure SMTP (SSMTP) - port 465
+    const int secureImap4Port = 585;    // Secure IMAP (IMAP4-SSL) - port 585
+    const int imap4OverSslPort = 993;   // IMAP4 over SSL (IMAPS) - port 993
+    const int securePop3Port = 995;     // Secure POP3 (SSL-POP) - port 995
+    
+    const int NmIpsSettingsDefault = 0;         //Radio button list default index
+    const int NmIpsSettingsUserDefined = 1;     //Radio button list user defined index
 
 } // namespace
 
--- a/ipsservices/nmipssettings/inc/nmipssettingscustomitem.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingscustomitem.h	Mon May 03 12:23:15 2010 +0300
@@ -28,19 +28,30 @@
 
 class NmIpsSettingsCustomItem : public HbDataFormViewItem
 {
+    Q_OBJECT
+
 public:
 
-    enum { LabeledComboBox = HbDataFormModelItem::CustomItemBase + 10 };
+    enum { LabeledComboBox = HbDataFormModelItem::CustomItemBase + 10,
+           TimeEditor };
 
     explicit NmIpsSettingsCustomItem(QGraphicsItem *parent=0);
     virtual ~NmIpsSettingsCustomItem();
     virtual HbAbstractViewItem* createItem();
     virtual bool canSetModelIndex(const QModelIndex &index) const;
 
+public slots:
+
+    void restore();
+	
 protected:
 
     virtual HbWidget* createCustomWidget();
 
+private:
+
+    void setWidgetProperty(const QString &property, const QHash<QString, QVariant> &properties);
+
 };
 
 #endif // NMIPSSETTINGSCUSTOMITEM_H
--- a/ipsservices/nmipssettings/inc/nmipssettingshelper.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingshelper.h	Mon May 03 12:23:15 2010 +0300
@@ -25,21 +25,52 @@
 #include "nmsettingscommon.h"
 #include "nmipssettingitems.h"
 
+class QModelIndex;
+class HbDataFormModelItem;
+class HbDataFormModel;
+class HbDataForm;
+class HbAction;
 class CpSettingFormItemData;
 class NmIpsSettingsManagerBase;
 class NmId;
 
+
+// Constant for User Defined sync profile (EmailProfileOffsetUD)
+// \sa ipssettingkeys.h - Currently used sync profile
+const int NmIpsSettingsReceivingScheduleUserDefinedProfile = 3;
+
 class NmIpsSettingsHelper : public QObject
 {
     Q_OBJECT
 
 public:
 
-    NmIpsSettingsHelper(NmIpsSettingsManagerBase &settingsManager);
+    NmIpsSettingsHelper(NmIpsSettingsManagerBase &settingsManager, HbDataForm &dataForm,
+        HbDataFormModel &dataFormModel);
+
     ~NmIpsSettingsHelper();
 
-    void insertContentItem(IpsServices::SettingItem key, CpSettingFormItemData *value);
+    void insertContentItem(IpsServices::SettingItem key, HbDataFormModelItem *value);
+    HbDataFormModelItem *contentItem(IpsServices::SettingItem key) const;
+    bool isOffline();
+    
+    void setReceivingScheduleGroupItem(HbDataFormModelItem *item);
+    void createOrUpdateReceivingScheduleGroupDynamicItem(IpsServices::SettingItem item);
     
+    int getCorrectPortRadioButtonIndex(int currentPort);
+    int getCorrectSecureRadioButtonIndex(QVariant secureSockets, QVariant secureSSLWrapper);
+    int getCorrectInboxPathRadioButtonIndex(QVariant folderPath);
+    int getCorrectOutgoingPortRadioButtonIndex(int currentPort);
+    void handleReceivingScheduleSettingChange(IpsServices::SettingItem settingItem,
+        const QVariant &settingValue);
+    
+signals:
+
+    void mailboxListChanged(const NmId &mailboxId, NmSettings::MailboxEventType type);
+    void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value);
+    void goOffline(const NmId &mailboxId);
+    void createUserDefinedMode();
+
 public slots:
 
     void saveMyName();
@@ -55,22 +86,51 @@
     void replyToTextChange(const QString &text);
     void deleteButtonPress();
     void receivingScheduleChange(int index);
+    void saveIncomingMailServer();
+    void incomingMailServerTextChange(const QString &text);
+    void saveOutgoingMailServer();
+    void outgoingMailServerTextChange(const QString &text);
+    void incomingPortChange(int index);
+    void incomingPortPressed(const QModelIndex &index);
+    void incomingSecureConnectionItemChange(int index);
+    void incomingSecureConnectionPressed(const QModelIndex &index);
+    void inboxPathChange(int index);
+    void inboxPathPressed(const QModelIndex &index);
+    void outgoingPortChange(int index);
+    void outgoingPortPressed(const QModelIndex &index);
+    void outgoingSecureConnectionItemChange(int index);
+    void outgoingSecureConnectionPressed(const QModelIndex &index);
 
-signals:
+private slots:
 
-    void mailboxListChanged(const NmId &mailboxId, NmSettings::MailboxEventType type);
-    void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value);
+    void receivingWeekdaysModified(HbAction *action);
+    void startTimeModified();
+    void endTimeModified();
+    void refreshPeriodModified(int index);
+    
+private:
+
+    void updateShowMailInMailbox();
+    void deleteReceivingScheduleGroupDynamicItem(IpsServices::SettingItem item);
+    QString timeFormat();
+    int showIncomingPortInputDialog(int currentPort, bool &changed);
+    QString showFolderPathInputDialog(bool &changed);
+    int showOutgoingPortInputDialog(int currentPort, bool &changed);
+    void copyReceivingScheduleSettingsFromActiveProfile(int profileMode);
+
+    Q_DISABLE_COPY(NmIpsSettingsHelper)
 
 private: // data
 
     bool mCurrentLineEditChanged;
-    
+    bool mEmitOnline;
     NmIpsSettingsManagerBase &mSettingsManager;
-
-    QMap<IpsServices::SettingItem, CpSettingFormItemData *> mContentItems;
-    
-    Q_DISABLE_COPY(NmIpsSettingsHelper)
-
+    QMap<IpsServices::SettingItem, HbDataFormModelItem *> mContentItems;
+    HbDataFormModelItem *mReceivingScheduleGroupItem;   // Not owned.
+    HbDataForm &mDataForm;
+    HbDataFormModel &mDataFormModel;
+    bool mDynamicItemsVisible;
+    int mRadioButtonPreviousIndex;
 };
 
 #endif // NMIPSSETTINGSHELPER_H
--- a/ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h	Mon May 03 12:23:15 2010 +0300
@@ -18,6 +18,7 @@
 #ifndef NMIPSSETTINGSLABELEDCOMBOBOX_H
 #define NMIPSSETTINGSLABELEDCOMBOBOX_H
 
+#include <qstringlist.h>
 #include <hbwidget.h>
 #include <qhash.h>
 
@@ -30,13 +31,23 @@
 {
     Q_OBJECT
 
+    Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex)
+    Q_PROPERTY(QStringList comboItems READ comboItems WRITE setComboItems)
+    Q_PROPERTY(QStringList labelTexts READ labelTexts WRITE setLabelTexts)
+
 public:
 
     NmIpsSettingsLabeledComboBox(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
     virtual ~NmIpsSettingsLabeledComboBox();
 
+    int currentIndex() const;
     void setCurrentIndex(int index);
-    void setItems(QStringList comboBoxItems, QStringList texts);
+
+    QStringList comboItems() const;
+    void setComboItems(QStringList comboItems);
+
+    QStringList labelTexts() const;
+    void setLabelTexts(QStringList labelTexts);
 
 signals:
 
@@ -54,7 +65,6 @@
     HbComboBox *mComboBox;
 
     QHash<int, QString> mLabelTexts;
-
 };
 
 #endif // NMIPSSETTINGSLABELEDCOMBOBOX_H
--- a/ipsservices/nmipssettings/inc/nmipssettingsmanagerbase.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingsmanagerbase.h	Mon May 03 12:23:15 2010 +0300
@@ -33,24 +33,29 @@
 class NmIpsSettingsManagerBase
 {
 public:
-    NmIpsSettingsManagerBase(const NmId &mailboxId, CEmailAccounts *account);
+
+    NmIpsSettingsManagerBase(const NmId &mailboxId, CEmailAccounts *account, IpsServices::TIpsSetAccountTypes);
     virtual ~NmIpsSettingsManagerBase();
-
     virtual bool readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue);
     virtual bool writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue);
     virtual int deleteMailbox();
-    NmId& mailboxId();
+    IpsServices::TIpsSetAccountTypes accountType() const;
+    NmId mailboxId() const;
+    virtual int determineDefaultIncomingPort() = 0;
+    int determineDefaultOutgoingPort();
+    NmIpsExtendedSettingsManager &extendedSettingsManager() const;
+    
+private:
 
-private:
     bool saveSettings();
     
-protected:
+protected: // data.
+
     CEmailAccounts *mAccount;   // Owned.
     CImSmtpSettings *mSmtpSettings; // Owned.
-
     NmIpsExtendedSettingsManager *mExtendedSettingsManager; // Owned.
-
     TSmtpAccount mSmtpAccount;
+    IpsServices::TIpsSetAccountTypes mAccountType;
     NmId mMailboxId;
 };
 
--- a/ipsservices/nmipssettings/inc/nmipssettingsplugin.h	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/inc/nmipssettingsplugin.h	Mon May 03 12:23:15 2010 +0300
@@ -45,14 +45,21 @@
 
     bool populateModel(HbDataFormModel &model, HbDataForm &form, const NmId &mailboxId);
 
-public slots:
-
-    void itemShown(const QModelIndex& index);
-
 signals:
 
     void mailboxListChanged(const NmId &mailboxId, NmSettings::MailboxEventType type);
     void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value);
+    void goOnline(const NmId &mailboxId);
+    void goOffline(const NmId &mailboxId);
+
+public slots:
+
+    void aboutToClose();
+    
+private slots:
+
+    void createUserDefinedMode();
+    void showMailInInboxModified(int index);
 
 private:
 
@@ -72,9 +79,6 @@
     NmIpsSettingsManagerBase *mSettingsManager;
     // Owned.
     QTranslator *mTranslator;
-
-    // Not owned.
-    HbDataFormModelItem *mReceivingScheduleSelectedItem;
     // Not owned.
     HbDataFormModel *mModel;
     // Not owned.
--- a/ipsservices/nmipssettings/nmipssettings.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/nmipssettings.pro	Mon May 03 12:23:15 2010 +0300
@@ -61,6 +61,9 @@
            src/nmipssettingscustomitem.cpp \
            src/nmipssettingslabeledcombobox.cpp
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian: { 
     TARGET.EPOCALLOWDLLDATA = 1
     DEFINES += PLUGINUID3=0x2002C30D
@@ -70,6 +73,7 @@
     LIBS += -limcm
     LIBS += -lxqutils
     LIBS += -lxqsettingsmanager
+    LIBS += -leuser
 }
 symbian: plugin { # copy qtstub and manifest
 
@@ -90,6 +94,7 @@
                              "rom/nmipssettings.iby                 CORE_APP_LAYER_IBY_EXPORT_PATH(nmipssettings.iby)" \
                              "rom/nmipssettingslanguage.iby         LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(nmipssettingslanguage.iby)" \
                              "inc/ipssettingkeys.h                  |../../inc/ipssettingkeys.h" \
+                             "inc/nmipssettingitems.h               |../inc/nmipssettingitems.h" \
                              "conf/2000E53D.txt                     /epoc32/release/winscw/udeb/z/private/10202BE9/2000E53D.txt" \
                              "conf/2000E53D.txt                     /epoc32/release/winscw/urel/z/private/10202BE9/2000E53D.txt" \
                              "conf/2000E53D.txt                     /epoc32/data/z/private/10202BE9/2000E53D.txt" \
--- a/ipsservices/nmipssettings/src/nmipsextendedsettingsmanager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipsextendedsettingsmanager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -76,8 +76,7 @@
                 settingValue = readFromCenRep(IpsServices::EmailKeyReceptionActiveProfile);
                 break;
             case IpsServices::ReceptionUserDefinedProfile:
-                settingValue = readFromCenRep(mActiveProfileOffset +
-                                              IpsServices::EmailKeyReceptionUserDefinedProfile);
+                settingValue = readFromCenRep(IpsServices::EmailKeyReceptionUserDefinedProfile);
                 break;
             case IpsServices::ReceptionInboxSyncWindow:
                 settingValue = readFromCenRep(mActiveProfileOffset +
@@ -127,69 +126,20 @@
 bool NmIpsExtendedSettingsManager::writeSetting(IpsServices::SettingItem settingItem,
                                                 const QVariant &settingValue)
 {
-    bool ret(mMailboxOffset>=0);
-    if(ret) {
-        switch(settingItem) {
-            case IpsServices::DownloadPictures:
-                ret = writeToCenRep(IpsServices::EmailKeyPreferenceDownloadPictures, settingValue);
-                break;
-            case IpsServices::MessageDivider:
-                ret = writeToCenRep(IpsServices::EmailKeyPreferenceMessageDivider, settingValue);
-                break;
-            case IpsServices::ReceptionActiveProfile:
-                ret = writeToCenRep(IpsServices::EmailKeyReceptionActiveProfile, settingValue);
-                calculateActiveProfileOffset();
-                break;
-            case IpsServices::ReceptionUserDefinedProfile:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionUserDefinedProfile,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionInboxSyncWindow:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionInboxSyncWindow,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionGenericSyncWindowInMessages:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionGenericSyncWindowInMessages,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionWeekDays:
-                ret = writeToCenRep(mActiveProfileOffset + IpsServices::EmailKeyReceptionWeekDays,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionDayStartTime:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionDayStartTime,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionDayEndTime:
-                ret = writeToCenRep(mActiveProfileOffset + IpsServices::EmailKeyReceptionDayEndTime,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionRefreshPeriodDayTime:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionRefreshPeriodDayTime,
-                                    settingValue);
-                break;
-            case IpsServices::ReceptionRefreshPeriodOther:
-                ret = writeToCenRep(mActiveProfileOffset +
-                                    IpsServices::EmailKeyReceptionRefreshPeriodOther,
-                                    settingValue);
-                break;
-            case IpsServices::UserNameHidden:
-                ret = writeToCenRep(IpsServices::EmailKeyUserNameHidden, settingValue);
-                break;
-            default:
-                ret = false;
-                break;
-            }
-    }
-    return ret;
+    return writeSettingToCenRep(mActiveProfileOffset, settingItem, settingValue);
 }
 
 /*!     
+
+*/
+bool NmIpsExtendedSettingsManager::writeSetting(int profileMode,
+    IpsServices::SettingItem settingItem, const QVariant &settingValue)
+{
+    quint32 profileOffset = convertToProfileOffset(profileMode);
+    return writeSettingToCenRep(profileOffset, settingItem, settingValue);
+}
+
+/*!
     Deletes all the extended settings of the mailbox.
 */
 void NmIpsExtendedSettingsManager::deleteSettings()
@@ -214,6 +164,67 @@
 }
 
 /*!
+
+*/
+bool NmIpsExtendedSettingsManager::writeSettingToCenRep(qint32 profileOffset,
+    IpsServices::SettingItem settingItem, const QVariant &settingValue)
+{
+    bool ret(profileOffset >= 0);
+    if(ret) {
+        switch(settingItem) {
+            case IpsServices::DownloadPictures:
+                ret = writeToCenRep(IpsServices::EmailKeyPreferenceDownloadPictures, settingValue);
+                break;
+            case IpsServices::MessageDivider:
+                ret = writeToCenRep(IpsServices::EmailKeyPreferenceMessageDivider, settingValue);
+                break;
+            case IpsServices::ReceptionActiveProfile:
+                ret = writeToCenRep(IpsServices::EmailKeyReceptionActiveProfile, settingValue);
+                calculateActiveProfileOffset();
+                break;
+            case IpsServices::ReceptionUserDefinedProfile:
+                ret = writeToCenRep(IpsServices::EmailKeyReceptionUserDefinedProfile, settingValue);
+                break;
+            case IpsServices::ReceptionInboxSyncWindow:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionInboxSyncWindow,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionGenericSyncWindowInMessages:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionGenericSyncWindowInMessages,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionWeekDays:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionWeekDays,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionDayStartTime:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionDayStartTime,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionDayEndTime:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionDayEndTime,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionRefreshPeriodDayTime:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionRefreshPeriodDayTime,
+                                    settingValue);
+                break;
+            case IpsServices::ReceptionRefreshPeriodOther:
+                ret = writeToCenRep(profileOffset + IpsServices::EmailKeyReceptionRefreshPeriodOther,
+                                    settingValue);
+                break;
+            case IpsServices::UserNameHidden:
+                ret = writeToCenRep(IpsServices::EmailKeyUserNameHidden, settingValue);
+                break;
+            default:
+                ret = false;
+                break;
+            }
+    }
+    return ret;
+}
+
+/*!
     Reads a key value from the Central Repository.
     \param key Key identifier.
     \return The settings value for the given key.
@@ -265,12 +276,18 @@
 */
 void NmIpsExtendedSettingsManager::calculateActiveProfileOffset()
 {
-    quint32 profileOffset(0);
+    QVariant activeProfile = readFromCenRep(IpsServices::EmailKeyReceptionActiveProfile);
+    mActiveProfileOffset = convertToProfileOffset(activeProfile.toInt());
+}
+
+/*!
 
-    QVariant activeProfile = readFromCenRep(IpsServices::EmailKeyReceptionActiveProfile);
-
+*/
+qint32 NmIpsExtendedSettingsManager::convertToProfileOffset(int profile)
+{
+    quint32 profileOffset(0);
     // Possible values are defined in ipssettingkeys.h
-    switch(activeProfile.toInt()) {
+    switch(profile) {
         case 0:
             profileOffset = IpsServices::EmailProfileOffsetKUTD;
             break;
@@ -286,5 +303,5 @@
         default:
             break;
     }
-    mActiveProfileOffset = profileOffset;
+    return profileOffset;
 }
--- a/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -42,7 +42,7 @@
 NmIpsImap4SettingsManager::NmIpsImap4SettingsManager(const NmId &mailboxId,
     CEmailAccounts *account,
     TImapAccount imapAccount)
-: NmIpsSettingsManagerBase(mailboxId, account),
+: NmIpsSettingsManagerBase(mailboxId, account, IpsServices::EMailImap),
   mImap4Account(imapAccount)
 {
     QT_TRAP_THROWING(mImap4Settings = new(ELeave) CImImap4Settings());
@@ -68,17 +68,40 @@
 */
 bool NmIpsImap4SettingsManager::readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue)
 {
-    bool found(true);
+    bool found(false);
     switch (settingItem) {
-        case IpsServices::LoginName:
+        case IpsServices::IncomingLoginName:
             settingValue = XQConversions::s60Desc8ToQString(mImap4Settings->LoginName());
+            found = true;
             break;
-        case IpsServices::Password:
+        case IpsServices::IncomingPassword:
             settingValue = XQConversions::s60Desc8ToQString(mImap4Settings->Password());
+            found = true;
             break;
         case IpsServices::MailboxName:
             settingValue = XQConversions::s60DescToQString(mImap4Account.iImapAccountName);
+            found = true;
             break;
+        case IpsServices::IncomingMailServer:
+            settingValue = XQConversions::s60DescToQString(mImap4Settings->ServerAddress());
+            found = true;
+            break;
+        case IpsServices::IncomingPort:
+            settingValue = mImap4Settings->Port();
+            found = true;
+            break;
+        case IpsServices::FolderPath:
+            settingValue = XQConversions::s60Desc8ToQString(mImap4Settings->FolderPath());
+            found = true;
+            break;
+        case IpsServices::IncomingSecureSockets:
+        	settingValue = mImap4Settings->SecureSockets();
+            found = true;
+            break;  
+        case IpsServices::IncomingSSLWrapper:
+        	settingValue = mImap4Settings->SSLWrapper();
+            found = true;
+            break;  
         default:
             found = NmIpsSettingsManagerBase::readSetting(settingItem, settingValue);
             break;
@@ -101,7 +124,7 @@
     TInt err(KErrNone);
 
     switch (settingItem) {
-        case IpsServices::LoginName:
+        case IpsServices::IncomingLoginName:
             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
             TRAP(err, mImap4Settings->SetLoginNameL(*tmp8));
             delete tmp8;
@@ -109,7 +132,7 @@
                 ret = saveSettings();
             }
             break;
-        case IpsServices::Password:
+        case IpsServices::IncomingPassword:
             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
             TRAP(err, mImap4Settings->SetPasswordL(*tmp8));
             delete tmp8;
@@ -119,10 +142,38 @@
             break;
         case IpsServices::MailboxName:
             tmp = XQConversions::qStringToS60Desc(settingValue.toString());
-            mImap4Account.iImapAccountName.Copy( *tmp );
+            mImap4Account.iImapAccountName.Copy(*tmp);
             delete tmp;
             ret = saveSettings();
             break;
+        case IpsServices::IncomingMailServer:
+            tmp = XQConversions::qStringToS60Desc(settingValue.toString());
+            TRAP(err, mImap4Settings->SetServerAddressL(*tmp));
+            delete tmp;
+            if (err==KErrNone) {
+                ret = saveSettings();
+            }
+            break;
+        case IpsServices::IncomingPort:            
+            mImap4Settings->SetPort(settingValue.toInt());
+            ret = saveSettings();
+            break;
+        case IpsServices::FolderPath:            
+            tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
+            TRAP(err, mImap4Settings->SetFolderPathL(*tmp8));
+            delete tmp;
+            if (err==KErrNone) {
+                ret = saveSettings();
+            }
+            break;
+        case IpsServices::IncomingSecureSockets:
+            mImap4Settings->SetSecureSockets(settingValue.toBool());
+            ret = saveSettings();
+            break;  
+        case IpsServices::IncomingSSLWrapper:
+            mImap4Settings->SetSSLWrapper(settingValue.toBool());
+            ret = saveSettings();
+            break;  
         default:
             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
             break;
@@ -138,9 +189,9 @@
 */
 int NmIpsImap4SettingsManager::deleteMailbox()
 {
-    int error(NmIpsSettingsManagerBase::deleteMailbox());
+    TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account));
     if (!error) {
-        TRAP(error, mAccount->DeleteImapAccountL(mImap4Account));
+		NmIpsSettingsManagerBase::deleteMailbox();
     }
 
     NMLOG(QString("NmIpsImap4SettingsManager::deleteMailbox status %1").arg(error));
@@ -157,3 +208,20 @@
     NMLOG(QString("NmIpsImap4SettingsManager::saveSettings rval %1").arg(err));
     return (err==KErrNone);
 }
+
+/*!
+     Determine the default port for the incoming mail server based on the security settings
+     
+     \return int the port number to use
+ */
+int NmIpsImap4SettingsManager::determineDefaultIncomingPort()
+{
+    int port = 0;    
+    bool sslTls = mImap4Settings->SSLWrapper();    
+    if (sslTls) {
+        port = IpsServices::imap4OverSslPort;
+    } else {
+        port = IpsServices::standardImap4Port;
+    }        
+    return port;
+}
--- a/ipsservices/nmipssettings/src/nmipspop3settingsmanager.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipspop3settingsmanager.cpp	Mon May 03 12:23:15 2010 +0300
@@ -41,7 +41,7 @@
 */
 NmIpsPop3SettingsManager::NmIpsPop3SettingsManager(const NmId &mailboxId,
     CEmailAccounts *account, TPopAccount popAccount)
-: NmIpsSettingsManagerBase(mailboxId, account),
+: NmIpsSettingsManagerBase(mailboxId, account, IpsServices::EMailPop),
   mPop3Account(popAccount)
 {
     QT_TRAP_THROWING(mPop3Settings = new(ELeave) CImPop3Settings());
@@ -67,17 +67,36 @@
 */
 bool NmIpsPop3SettingsManager::readSetting(IpsServices::SettingItem settingItem, QVariant &value)
 {
-	bool found(true);
+	bool found(false);
 	switch (settingItem) {
-        case IpsServices::LoginName:
+        case IpsServices::IncomingLoginName:
             value = XQConversions::s60Desc8ToQString(mPop3Settings->LoginName());
+            found = true;
             break;
-        case IpsServices::Password:
+        case IpsServices::IncomingPassword:
             value = XQConversions::s60Desc8ToQString(mPop3Settings->Password());
+            found = true;
             break;
         case IpsServices::MailboxName:
             value = XQConversions::s60DescToQString(mPop3Account.iPopAccountName);
+            found = true;
             break;
+        case IpsServices::IncomingMailServer:
+            value = XQConversions::s60DescToQString(mPop3Settings->ServerAddress());
+            found = true;
+            break;   
+        case IpsServices::IncomingPort:
+            value = mPop3Settings->Port();
+            found = true;
+            break;  
+        case IpsServices::IncomingSecureSockets:
+            value = mPop3Settings->SecureSockets();
+            found = true;
+            break;  
+        case IpsServices::IncomingSSLWrapper:
+            value = mPop3Settings->SSLWrapper();
+            found = true;
+            break;  
         default:
             found = NmIpsSettingsManagerBase::readSetting(settingItem, value);
             break;
@@ -99,7 +118,7 @@
     TInt err(KErrNone);
 
     switch (settingItem) {
-        case IpsServices::LoginName:
+        case IpsServices::IncomingLoginName:
             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
             TRAP(err, mPop3Settings->SetLoginNameL(*tmp8));
             delete tmp8;
@@ -107,7 +126,7 @@
                 ret = saveSettings();
             }
             break;
-        case IpsServices::Password:
+        case IpsServices::IncomingPassword:
             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
             TRAP(err, mPop3Settings->SetPasswordL(*tmp8));
             delete tmp8;
@@ -117,12 +136,30 @@
             break;
         case IpsServices::MailboxName:
             tmp = XQConversions::qStringToS60Desc(settingValue.toString());
-            TRAP(err, mPop3Account.iPopAccountName.Copy(*tmp));
+            mPop3Account.iPopAccountName.Copy(*tmp);
+            delete tmp;
+            ret = saveSettings();
+            break;
+        case IpsServices::IncomingMailServer:
+            tmp = XQConversions::qStringToS60Desc(settingValue.toString());
+            TRAP(err, mPop3Settings->SetServerAddressL(*tmp));
             delete tmp;
             if (err==KErrNone) {
                 ret = saveSettings();
             }
             break;
+        case IpsServices::IncomingPort:            
+            mPop3Settings->SetPort(settingValue.toInt());
+            ret = saveSettings();
+            break;
+        case IpsServices::IncomingSecureSockets:
+            mPop3Settings->SetSecureSockets(settingValue.toBool());
+            ret = saveSettings();
+            break;  
+        case IpsServices::IncomingSSLWrapper:
+            mPop3Settings->SetSSLWrapper(settingValue.toBool());
+            ret = saveSettings();
+            break;  
         default:
             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
             break;
@@ -138,9 +175,9 @@
 */
 int NmIpsPop3SettingsManager::deleteMailbox()
 {
-    int error(NmIpsSettingsManagerBase::deleteMailbox());
+    TRAPD(error, mAccount->DeletePopAccountL(mPop3Account));
     if (!error) {
-        TRAP(error, mAccount->DeletePopAccountL(mPop3Account));
+    	NmIpsSettingsManagerBase::deleteMailbox();
     }
 
     NMLOG(QString("NmIpsPop3SettingsManager::deleteMailbox status %1").arg(error));
@@ -157,3 +194,20 @@
     NMLOG(QString("NmIpsPop3SettingsManager::saveSettings rval %1").arg(err));
     return (err==KErrNone);
 }
+
+/*!
+     Determine the default port for the incoming mail server based on the security settings
+     
+     \return int the port number to use
+ */
+int NmIpsPop3SettingsManager::determineDefaultIncomingPort()
+{
+    int port = 0;    
+    bool sslTls = mPop3Settings->SSLWrapper();    
+    if (sslTls) {
+        port = IpsServices::securePop3Port;
+    } else {
+        port = IpsServices::standardPop3Port;
+    }        
+    return port;
+}
--- a/ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp	Mon May 03 12:23:15 2010 +0300
@@ -16,6 +16,10 @@
 */
 
 #include <QVariant>
+#include <hbdatetimeedit.h>
+#include <hbabstractitemview.h>
+#include <hbdataformmodel.h>
+#include <hbdataformmodelitem.h>
 
 #include "nmipssettingscustomitem.h"
 #include "nmipssettingslabeledcombobox.h"
@@ -23,7 +27,6 @@
 /*!
     \class NmIpsSettingsCustomItem
     \brief The class implements a custom HbDataFormViewItem.
-
 */
 
 // ======== MEMBER FUNCTIONS ========
@@ -58,7 +61,43 @@
 bool NmIpsSettingsCustomItem::canSetModelIndex(const QModelIndex &index) const
 {
     int type(index.data(HbDataFormModelItem::ItemTypeRole).toInt());
-    return type==LabeledComboBox;
+    return type==LabeledComboBox || type==TimeEditor;
+}
+
+/*!
+    Sets the custom widget's properties from the model item.
+*/
+void NmIpsSettingsCustomItem::restore()
+{
+    HbDataFormModelItem::DataItemType itemType = static_cast<HbDataFormModelItem::DataItemType>(
+        modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
+
+    if (itemType==LabeledComboBox || itemType==TimeEditor) {
+
+        HbDataFormModel* model = static_cast<HbDataFormModel*>
+            (static_cast<HbAbstractViewItem*>(this)->itemView()->model());
+        HbDataFormModelItem* modelItem = model->itemFromIndex(modelIndex());
+        QHash<QString ,QVariant> properties =
+            modelItem->data(HbDataFormModelItem::PropertyRole).toHash();
+
+         if (itemType==TimeEditor) {
+             // Set time editor properties. Simply copy all set properties to the widget.
+             QStringList propertyNames = properties.keys();
+
+             for (int index=0 ; index < propertyNames.count() ; index++) {
+                 QString propName = propertyNames.at(index);
+                 dataItemContentWidget()->setProperty(propName.toAscii().data(),
+                                                      properties.value(propName));
+             }
+         } else {
+             // Set combobox properties in specific order. currentIndex must be set last so that
+             // both the labelTexts and comboItems have been set before. Also, labelTexts must be
+             // set before comboItems.
+             setWidgetProperty("labelTexts", properties);
+             setWidgetProperty("comboItems", properties);
+             setWidgetProperty("currentIndex", properties);
+         }
+    }
 }
 
 /*!
@@ -71,9 +110,34 @@
 
     HbWidget *widget = 0;
 
-    if (type == LabeledComboBox) {
-        widget = new NmIpsSettingsLabeledComboBox();
+    switch (type) {
+            case LabeledComboBox: {
+                widget = new NmIpsSettingsLabeledComboBox();
+                break;
+                }
+            case TimeEditor: {
+                HbDateTimeEdit *edit = new HbDateTimeEdit();
+                widget = edit;
+                break;
+                }
+            default: {
+                break;
+                }
     }
 
     return widget;
 }
+
+/*!
+    Sets \a property to the content widget if found from \a properties.
+    \param property Name of the property to set.
+    \param properties Available properties.
+*/
+void NmIpsSettingsCustomItem::setWidgetProperty(const QString &property,
+    const QHash<QString, QVariant> &properties)
+{
+    if (properties.contains(property)) {
+        dataItemContentWidget()->setProperty(property.toAscii().data(), properties.value(property));
+    }
+}
+
--- a/ipsservices/nmipssettings/src/nmipssettingshelper.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingshelper.cpp	Mon May 03 12:23:15 2010 +0300
@@ -20,10 +20,29 @@
 #include <HbGlobal>
 #include <HbMessageBox>
 #include <HbProgressDialog>
+#include <HbInputDialog>
 #include <cpsettingformitemdata.h>
+#include <hbdataformmodel.h>
+#include <qstringlist.h>
+#include <hbextendedlocale.h>
+#include <HbValidator>
+#include <QIntValidator>
+#include <HbStringUtil>
+#include <HbDataForm>
 
 #include "nmipssettingshelper.h"
 #include "nmipssettingsmanagerbase.h"
+#include "nmipssettingscustomitem.h"
+#include "nmipsextendedsettingsmanager.h"
+
+// CONSTANTS
+
+// Dynamic receiving schedule group items
+const IpsServices::SettingItem NmIpsSettingsReceivingSchedule[] = {
+        IpsServices::ReceptionWeekDays,
+        IpsServices::ReceptionDayStartTime,
+        IpsServices::ReceptionDayEndTime,
+        IpsServices::ReceptionRefreshPeriodDayTime};
 
 /*!
     \class NmIpsSettingsHelper
@@ -37,9 +56,15 @@
     Constructor of NmIpsSettingsHelper.
     \param settingsManager Reference used by settingshelper to read and store values
 */
-NmIpsSettingsHelper::NmIpsSettingsHelper(NmIpsSettingsManagerBase &settingsManager)
+NmIpsSettingsHelper::NmIpsSettingsHelper(NmIpsSettingsManagerBase &settingsManager,
+    HbDataForm &dataForm, HbDataFormModel &dataFormModel)
 : mCurrentLineEditChanged(false),
-  mSettingsManager(settingsManager)
+  mEmitOnline(false),
+  mSettingsManager(settingsManager),
+  mDataForm(dataForm),
+  mDataFormModel(dataFormModel),
+  mDynamicItemsVisible(false),
+  mRadioButtonPreviousIndex(0)
 {
 }
 
@@ -57,18 +82,212 @@
     \param  CpSettingFormItemData *. Pointer to the content item.
 */
 void NmIpsSettingsHelper::insertContentItem(IpsServices::SettingItem key,
-                                            CpSettingFormItemData *value)
+    HbDataFormModelItem *value)
 {
     mContentItems.insert(key, value);
 }
 
 /*!
+
+*/
+HbDataFormModelItem *NmIpsSettingsHelper::contentItem(IpsServices::SettingItem key) const
+{
+    return mContentItems.value(key);
+}
+
+/*!
+    Sets the group item for dynamic receiving schedule items.
+    \param item Group item.
+*/
+void NmIpsSettingsHelper::setReceivingScheduleGroupItem(HbDataFormModelItem *item)
+{
+    mReceivingScheduleGroupItem = item;
+}
+
+/*!
+    Creates or updates the setting items under the receiving schedule group item.
+*/
+void NmIpsSettingsHelper::createOrUpdateReceivingScheduleGroupDynamicItem(
+    IpsServices::SettingItem item)
+{
+    // Create the items if not already created and visible
+    if (mReceivingScheduleGroupItem) {
+        CpSettingFormItemData *formItemData =
+            static_cast<CpSettingFormItemData *>(mContentItems.value(item));
+
+        switch(item) {
+
+            // 3. Receiving weekdays
+            case IpsServices::ReceptionWeekDays:
+            {
+                // If not exist, create one
+                if (!formItemData) {
+                    formItemData =
+                        new CpSettingFormItemData(HbDataFormModelItem::MultiselectionItem,
+                            hbTrId("txt_mailips_setlabel_receiving_weekdays"));
+
+                    insertContentItem(IpsServices::ReceptionWeekDays, formItemData);
+                    mReceivingScheduleGroupItem->appendChild(formItemData);
+                    QStringList weekdayItems;
+                    weekdayItems << hbTrId("txt_mailips_setlabel_download_images_val_mon")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_tue")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_wed")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_thu")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_fri")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_sat")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_sun")
+                                 << hbTrId("txt_mailips_setlabel_download_images_val_every_day");
+
+                    QList<QVariant> weekdayItemValues;
+                    weekdayItemValues << 0x01
+                                      << 0x02
+                                      << 0x04
+                                      << 0x08
+                                      << 0x10
+                                      << 0x20
+                                      << 0x40
+                                      << 0x7F;
+
+                    formItemData->setData(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1,
+                        weekdayItemValues);
+                    formItemData->setContentWidgetData(QString("items"), weekdayItems);
+                    formItemData->setEnabled(false);
+//                    mDataForm.addConnection(formItemData, SIGNAL(finished(HbAction *)),
+//                        this, SLOT(receivingWeekdaysModified(HbAction *)));
+                }
+
+                // Update data
+                QVariant value;
+                mSettingsManager.readSetting(item, value);
+                QList<QVariant> selectedDays;
+                selectedDays.clear();
+                int days(value.toInt());
+                if (days == 0x7f) {
+                   // Every weekday selected
+                   selectedDays.append(7);
+                } else {
+                   // 0-6 Individual weekdays selected
+                   for (int i=0; i<=6; ++i) {
+                       if (days & (1 << i)) {
+                           selectedDays.append(i);
+                       }
+                   }
+                }
+                formItemData->setContentWidgetData(QString("selectedItems"), selectedDays);
+                break;
+            }
+
+            // 4. Day start time
+            case IpsServices::ReceptionDayStartTime:
+            {
+                // If not exist, create one
+                if (!formItemData) {
+                    QString format(timeFormat());
+                    formItemData = new CpSettingFormItemData(
+                        static_cast< HbDataFormModelItem::DataItemType >(NmIpsSettingsCustomItem::TimeEditor),
+                            hbTrId("txt_mailips_setlabel_day_start_time"));
+
+                    insertContentItem(IpsServices::ReceptionDayStartTime, formItemData);
+                    formItemData->setEnabled(true);
+                    formItemData->setContentWidgetData(QString("displayFormat"), format);
+                    mReceivingScheduleGroupItem->appendChild(formItemData);
+                    mDataForm.addConnection(formItemData, SIGNAL(editingFinished()),
+                        this, SLOT(startTimeModified()));
+
+                }
+
+                // Update data
+                QVariant startTime;
+                mSettingsManager.readSetting(item, startTime);
+                QDateTime startDateTime(QDate(2010, 1, 1), QTime(startTime.toInt(),0));
+                formItemData->setContentWidgetData("dateTime", startDateTime);
+                break;
+            }
+
+            // 5. Day end time
+            case IpsServices::ReceptionDayEndTime:
+            {
+                // If not exist, create one
+                if (!formItemData) {
+                    QString format(timeFormat());
+                    formItemData = new CpSettingFormItemData(
+                        static_cast<HbDataFormModelItem::DataItemType> (NmIpsSettingsCustomItem::TimeEditor),
+                            hbTrId("txt_mailips_setlabel_day_end_time"));
+
+                    insertContentItem(IpsServices::ReceptionDayEndTime, formItemData);
+                    formItemData->setEnabled(true);
+                    formItemData->setContentWidgetData(QString("displayFormat"), format);
+                    mReceivingScheduleGroupItem->appendChild(formItemData);
+                }
+
+                // Update data
+                QVariant endTime;
+                mSettingsManager.readSetting(item, endTime);
+                QDateTime endDateTime(QDate(2010, 1, 1), QTime(endTime.toInt(),0));
+                formItemData->setContentWidgetData("dateTime", endDateTime);
+                mDataForm.addConnection(formItemData, SIGNAL(editingFinished()),
+                    this, SLOT(endTimeModified()));
+                break;
+            }
+
+            // 6. Refresh mail interval
+            case IpsServices::ReceptionRefreshPeriodDayTime:
+            {
+                // If not exist, create one
+                if (!formItemData) {
+                    formItemData = new CpSettingFormItemData(
+                        HbDataFormModelItem::RadioButtonListItem,
+                            hbTrId("txt_mailips_setlabel_refresh_mail"));
+
+                    mReceivingScheduleGroupItem->appendChild(formItemData);
+                    insertContentItem(IpsServices::ReceptionRefreshPeriodDayTime, formItemData);
+                    QStringList refreshMailItems;
+                    refreshMailItems << hbTrId("txt_mailips_setlabel_val_keep_uptodate")
+                                     << hbTrId("txt_mailips_setlabel_val_every_15_minutes")
+                                     << hbTrId("txt_mailips_setlabel_val_every_1_hour")
+                                     << hbTrId("txt_mailips_setlabel_val_every_4_hours");
+                    formItemData->setContentWidgetData(QString("items"), refreshMailItems);
+
+                    QList<QVariant> refreshMailItemValues;
+                    refreshMailItemValues << 5
+                                          << 15
+                                          << 60
+                                          << 240;
+                    QVariant value(refreshMailItemValues);
+                    formItemData->setData(HbDataFormModelItem::DescriptionRole + 1, value);
+
+                    mDataForm.addConnection(formItemData, SIGNAL(itemSelected(int)),
+                        this, SLOT(refreshPeriodModified(int)));
+                }
+
+                // Update data
+                QVariant interval;
+                mSettingsManager.readSetting(item, interval);
+                QHash<int,int> refreshPeriod;
+                refreshPeriod[5] = 0;
+                refreshPeriod[15] = 1;
+                refreshPeriod[60] = 2;
+                refreshPeriod[240] = 3;
+                formItemData->setContentWidgetData(QString("selected"),
+                    refreshPeriod.value(interval.toInt()));
+                break;
+            }
+            default:
+            {
+                // Unknown/unhandled SettingItem.
+                break;
+            }
+        }
+    }
+}
+
+/*!
     Saves the My Name value into database if user has changed the value.
 */
 void NmIpsSettingsHelper::saveMyName()
 {
     if (mCurrentLineEditChanged) {
-        CpSettingFormItemData *item = mContentItems.value(IpsServices::EmailAlias);
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAlias);
         QVariant data = item->contentWidgetData(QString("text"));
         mSettingsManager.writeSetting(IpsServices::EmailAlias, data);
     }
@@ -92,7 +311,7 @@
 void NmIpsSettingsHelper::saveMailboxName()
 {
     if (mCurrentLineEditChanged) {
-        CpSettingFormItemData *item = mContentItems.value(IpsServices::MailboxName);
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::MailboxName);
         QVariant data = item->contentWidgetData(QString("text"));
         // Only save mailbox name if it's length is greater than zero. CEmailAccounts does not
         // allow zero-length mailbox names.
@@ -128,7 +347,9 @@
 void NmIpsSettingsHelper::saveMailAddress()
 {
     if (mCurrentLineEditChanged) {
-        CpSettingFormItemData *item = mContentItems.value(IpsServices::EmailAddress);
+		emit goOffline(mSettingsManager.mailboxId());
+		mEmitOnline = true;
+		HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAddress);
         QVariant data = item->contentWidgetData(QString("text"));
         mSettingsManager.writeSetting(IpsServices::EmailAddress, data);
     }
@@ -152,9 +373,11 @@
 void NmIpsSettingsHelper::saveUserName()
 {
     if (mCurrentLineEditChanged) {
-        CpSettingFormItemData *item = mContentItems.value(IpsServices::LoginName);
+		emit goOffline(mSettingsManager.mailboxId());
+		mEmitOnline = true;
+		HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingLoginName);
         QVariant data = item->contentWidgetData(QString("text"));
-        mSettingsManager.writeSetting(IpsServices::LoginName, data);
+        mSettingsManager.writeSetting(IpsServices::IncomingLoginName, data);
     }
     mCurrentLineEditChanged = false;
 }
@@ -175,9 +398,11 @@
 */
 void NmIpsSettingsHelper::savePassword()
 {
-    CpSettingFormItemData *item = mContentItems.value(IpsServices::Password);
+	emit goOffline(mSettingsManager.mailboxId());
+	mEmitOnline = true;
+	HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPassword);
     QVariant data = item->contentWidgetData(QString("text"));
-    mSettingsManager.writeSetting(IpsServices::Password, data);
+    mSettingsManager.writeSetting(IpsServices::IncomingPassword, data);
 }
 
 /*!
@@ -186,7 +411,7 @@
 void NmIpsSettingsHelper::saveReplyTo()
 {
     if (mCurrentLineEditChanged) {
-        CpSettingFormItemData *item = mContentItems.value(IpsServices::ReplyAddress);
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::ReplyAddress);
         QVariant data = item->contentWidgetData(QString("text"));
         mSettingsManager.writeSetting(IpsServices::ReplyAddress, data);
     }
@@ -221,13 +446,16 @@
         return;
     }
 
+	emit goOffline(mSettingsManager.mailboxId());
+	mEmitOnline = false;
+
     QVariant mailboxName;
     mSettingsManager.readSetting(IpsServices::MailboxName, mailboxName);
 
     // Display the progress note. Before display the note, remove the cancel
     // button.
     HbProgressDialog progressNote(HbProgressDialog::WaitDialog);
-    progressNote.setText(hbTrId("txt_mail_dpophead _1_deleted"));
+    progressNote.setText(hbTrId("txt_common_info_deleting"));
     action = progressNote.primaryAction();
     progressNote.removeAction(action);
     progressNote.delayedShow();
@@ -239,7 +467,7 @@
 
         HbMessageBox infoDialog(HbMessageBox::MessageTypeInformation);
         infoDialog.setText(
-            hbTrId("txt_mail_dialog_1_deleted").arg(mailboxName.toString()));
+            hbTrId("txt_mail_dpophead _1_deleted").arg(mailboxName.toString()));
         infoDialog.setModal(true);
         HbAction *action = infoDialog.exec();
 
@@ -248,7 +476,6 @@
                                 NmSettings::MailboxDeleted);
     } else {
         // Failed to delete the mailbox!
-        // TODO: Should an error note be displayed?
         progressNote.close();
     }
 }
@@ -260,4 +487,623 @@
 void NmIpsSettingsHelper::receivingScheduleChange(int index)
 {
     mSettingsManager.writeSetting(IpsServices::ReceptionActiveProfile, QVariant(index));
+
+    // Read receiving schedule dynamic group item values and
+    // make a decision based on those if item should be visible or not.
+    const int dynamicGroupItemsCount(
+        sizeof(NmIpsSettingsReceivingSchedule) / sizeof(NmIpsSettingsReceivingSchedule[0]));
+
+    for (int itemIndex(0); itemIndex < dynamicGroupItemsCount; ++itemIndex) {
+        QVariant setting;
+        // Read setting value from active profile
+        IpsServices::SettingItem item(NmIpsSettingsReceivingSchedule[itemIndex]);
+        mSettingsManager.readSetting(item, setting);
+
+        // If setting value is not valid (-1=N/A) then remove setting item.
+        int value = setting.toInt();
+        if (value != -1) {
+            createOrUpdateReceivingScheduleGroupDynamicItem(item);
+        } else {
+            deleteReceivingScheduleGroupDynamicItem(item);
+        }
+    }
+
+    updateShowMailInMailbox();
 }
+
+/*!
+    Returns state if online should be emited.
+    \return true / false.
+*/
+bool NmIpsSettingsHelper::isOffline()
+{
+    return mEmitOnline;
+}
+
+/*!
+    Updates the show mail in mailbox setting value based on the active profile.
+*/
+void NmIpsSettingsHelper::updateShowMailInMailbox()
+{
+    QVariant value;
+    mSettingsManager.readSetting(IpsServices::ReceptionInboxSyncWindow, value);
+    QHash<int,int> syncWindows;
+    syncWindows[50] = 0;
+    syncWindows[100] = 1;
+    syncWindows[500] = 2;
+    syncWindows[0] = 3;
+
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionInboxSyncWindow);
+    if (item) {
+        item->setContentWidgetData(QString("selected"), syncWindows.value(value.toInt()));
+    }
+}
+
+/*!
+    Deletes the dynamic setting items under the receiving schedule group item.
+*/
+void NmIpsSettingsHelper::deleteReceivingScheduleGroupDynamicItem(IpsServices::SettingItem item)
+{
+    HbDataFormModelItem *formItem = mContentItems.value(item);
+    if (formItem) {
+        mDataForm.removeAllConnection(formItem);
+        int index(mReceivingScheduleGroupItem->indexOf(formItem));
+        if (index >= 0) {
+            mReceivingScheduleGroupItem->removeChild(index);
+        }
+        mContentItems.remove(item);
+    }
+}
+
+/*!
+    Returns locale specific formatting string for hours and minutes.
+    \return Time format string.
+*/
+QString NmIpsSettingsHelper::timeFormat()
+{
+    // Set the correct time format string based on locale.
+    HbExtendedLocale locale = HbExtendedLocale::system();
+    QString timeFormat("h:mm ap");
+    if (HbExtendedLocale::Time24 == locale.timeStyle()) {
+        timeFormat = QString("h:mm");
+    }
+    // Set the separator between hours and minutes.
+    timeFormat.replace(QString(":"), locale.timeSeparator(1));
+
+    return timeFormat;
+}
+/*!
+    Saves the incoming mailserver value into database if user has changed the value.
+*/
+void NmIpsSettingsHelper::saveIncomingMailServer()
+{
+    if (mCurrentLineEditChanged) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingMailServer);
+        QVariant data = item->contentWidgetData(QString("text"));
+        mSettingsManager.writeSetting(IpsServices::IncomingMailServer, data);
+    }
+    mCurrentLineEditChanged = false;
+}
+
+/*!
+    Sets the edit changed flag to indicate that user has edited the field
+
+    \param text Reference to the text value in the line edit box.
+*/
+void NmIpsSettingsHelper::incomingMailServerTextChange(const QString &text)
+{
+    Q_UNUSED(text);
+    mCurrentLineEditChanged = true;
+}
+/*!
+    Saves the outgoing mailserver value into database if user has changed the value.
+*/
+void NmIpsSettingsHelper::saveOutgoingMailServer()
+{
+    if (mCurrentLineEditChanged) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingMailServer);
+        QVariant data = item->contentWidgetData(QString("text"));
+        mSettingsManager.writeSetting(IpsServices::OutgoingMailServer, data);
+    }
+    mCurrentLineEditChanged = false;
+}
+
+/*!
+    Sets the edit changed flag to indicate that user has edited the field
+
+    \param text Reference to the text value in the line edit box.
+*/
+void NmIpsSettingsHelper::outgoingMailServerTextChange(const QString &text)
+{
+    Q_UNUSED(text);
+    mCurrentLineEditChanged = true;
+}
+
+/*!
+    Saves the incoming port value into database if user has changed the value. If the user wish to
+    define the port, a input dialog is shown.
+    
+    \param index Used to determine if the default value or a user defined value should be written
+*/
+void NmIpsSettingsHelper::incomingPortChange(int index)
+{
+    if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        int port = mSettingsManager.determineDefaultIncomingPort();
+        mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
+    } else if (index == IpsServices::NmIpsSettingsUserDefined) {
+        QVariant port; 
+        mSettingsManager.readSetting(IpsServices::IncomingPort, port);
+        bool changed = false;
+        int changedPort = showIncomingPortInputDialog(port.toInt(), changed);       
+        if (changed) {
+            emit goOffline(mSettingsManager.mailboxId());
+            mEmitOnline = true;
+            mSettingsManager.writeSetting(IpsServices::IncomingPort, changedPort);
+        } else {
+            //set selected value back if user canceled.
+            HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
+            item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
+        }
+    }
+}
+
+/*!
+    Used for getting the index to display in the port radio button list 
+    
+    \return index Used to set the selected value
+*/
+int NmIpsSettingsHelper::getCorrectPortRadioButtonIndex(int currentPort)
+{
+    int index = 0;
+    int port = mSettingsManager.determineDefaultIncomingPort();
+    if (port == currentPort) {
+        index = IpsServices::NmIpsSettingsDefault;
+    } else {
+        index = IpsServices::NmIpsSettingsUserDefined;
+    }
+    return index;
+}
+
+/*!
+    Show a input dialog for allowing the user to specify a incoming port 
+    \param int The current port stored in the settings  
+    \param bool Reference used for marking if the value really changed
+    \return int The user defined port
+*/
+int NmIpsSettingsHelper::showIncomingPortInputDialog(int currentPort, bool &changed)
+{    
+    QVariant newPort;
+
+    HbInputDialog inputDialog;
+    inputDialog.setInputMode(HbInputDialog::IntInput);
+    HbValidator *validator = new HbValidator();
+    validator->addField(new QIntValidator(0, 65535, 0), 
+                        HbStringUtil::convertDigits(QString::number(currentPort)));
+    inputDialog.setValidator(validator);
+    inputDialog.setPromptText(hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
+    
+    HbAction *action = inputDialog.exec();     
+    if (action == inputDialog.primaryAction()) {
+        newPort = inputDialog.value();
+        changed = true;
+    }  
+    delete validator;   
+    
+    return newPort.toInt();
+}
+
+/*!
+    Sets the previous index value to indicate that user has edited the field
+
+    \param text Reference to the item in the radio button list.
+*/
+void NmIpsSettingsHelper::incomingPortPressed(const QModelIndex &index)
+{
+    Q_UNUSED(index);
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
+    QVariant data = item->contentWidgetData(QString("selected"));
+    mRadioButtonPreviousIndex = data.toInt();
+}
+
+/*!
+    Saves the incoming secure connection value into database if user has changed the value.
+*/
+void NmIpsSettingsHelper::incomingSecureConnectionItemChange(int index)
+{
+    if (mRadioButtonPreviousIndex != index) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        switch (index) {
+            case IpsServices::EMailStartTls: // On (Start TLS)
+                mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, ETrue);
+                mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, EFalse);
+                break;
+
+            case IpsServices::EMailSslTls: // On (SSL/TLS)
+                mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, EFalse);
+                mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, ETrue);
+                break;
+
+            case IpsServices::EMailSecurityOff: // Off
+                mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, EFalse);
+                mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, EFalse);
+                break;
+
+        	 default:
+                break;
+        }
+        // Update incoming port value only if default incoming port used
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
+        QVariant data = item->contentWidgetData(QString("selected"));
+        // Default incoming port selected
+        if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
+			int port = mSettingsManager.determineDefaultIncomingPort();
+			mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
+        }
+    }
+}
+
+/*!
+    Sets the previous index value to indicate that user has edited the field
+
+    \param text Reference to the item in the radio button list.
+*/
+void NmIpsSettingsHelper::incomingSecureConnectionPressed(const QModelIndex &index)
+{
+	Q_UNUSED(index);
+	HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingSecureSockets);
+    QVariant data = item->contentWidgetData(QString("selected"));
+    mRadioButtonPreviousIndex = data.toInt();
+}
+
+/*!
+    Used for getting the index to display in the secure connection radio button list 
+    
+    \return index Used to set the selected value
+*/
+int NmIpsSettingsHelper::getCorrectSecureRadioButtonIndex(QVariant secureSockets, 
+                                                          QVariant secureSSLWrapper)
+{
+    IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
+    // secureSockets == True
+    if (secureSockets.toBool()) { 
+        securityType = IpsServices::EMailStartTls;
+    }
+    // secureSockets == False & secureSSLWrapper == True
+    else if (secureSSLWrapper.toBool()) {
+        securityType = IpsServices::EMailSslTls;
+    }
+    // secureSockets == False & secureSSLWrapper == False
+    else {
+        securityType = IpsServices::EMailSecurityOff;
+    }
+    return securityType;
+}
+
+/*!
+    Saves the folderpath value into database if user has changed the value.
+*/
+void NmIpsSettingsHelper::inboxPathChange(int index)
+{
+    if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
+        // Empty string sets the folder path to default.
+        mSettingsManager.writeSetting(IpsServices::FolderPath, QString(""));
+    } else if (index == IpsServices::NmIpsSettingsUserDefined) {
+        bool changed = false;
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
+        QString changedPath = showFolderPathInputDialog(changed);       
+        if (changed) {
+            mSettingsManager.writeSetting(IpsServices::FolderPath, changedPath);
+            //set selected index to default if user inputed empty string.
+            if (changedPath.isEmpty()) {
+                item->setContentWidgetData(QString("selected"), IpsServices::NmIpsSettingsDefault);
+            }
+        } else {
+            //set selected value back if user canceled.
+            item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
+        }
+    }
+}
+
+/*!
+    Show a input dialog for allowing the user to specify a folder path 
+    \param bool Reference used for marking if the value really changed
+    \return QString The user defined folder path
+*/
+QString NmIpsSettingsHelper::showFolderPathInputDialog(bool &changed)
+{    
+    QVariant folderPath;
+    mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
+    
+    HbInputDialog inputDialog;
+    inputDialog.setInputMode(HbInputDialog::TextInput);
+    inputDialog.setPromptText(hbTrId("txt_mailips_setlabel_inbox_path_user_defined"));
+    inputDialog.setValue(folderPath.toString());
+    
+    HbAction *action = inputDialog.exec();     
+    if (action == inputDialog.primaryAction()) { 
+        folderPath = inputDialog.value();
+        changed = true;
+    }
+
+    return folderPath.toString();
+}
+
+/*!
+    Sets the previous index value to indicate that user has edited the field
+
+    \param text Reference to the item in the radio button list.
+*/
+void NmIpsSettingsHelper::inboxPathPressed(const QModelIndex &index)
+{
+    Q_UNUSED(index);
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
+    QVariant data = item->contentWidgetData(QString("selected"));
+    mRadioButtonPreviousIndex = data.toInt();
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::receivingWeekdaysModified(HbAction *action)
+{
+    Q_UNUSED(action)
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionWeekDays);
+    QVariant widgetData = item->contentWidgetData(QString("selectedItems"));
+    QList< QVariant > selectedItems = widgetData.value< QList< QVariant > >();
+
+    foreach (QVariant selection, selectedItems) {
+        int value = selection.toInt();
+    }
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::startTimeModified()
+{
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionDayStartTime);
+    QVariant data = item->contentWidgetData(QString("dateTime"));
+    QDateTime dateTime = data.value< QDateTime >();
+    int startHour(dateTime.time().hour());
+    handleReceivingScheduleSettingChange(IpsServices::ReceptionDayStartTime, startHour);
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::refreshPeriodModified(int index)
+{
+    HbDataFormModelItem* item = mContentItems.value(IpsServices::ReceptionRefreshPeriodDayTime);
+    QVariant itemData = item->data(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1);
+    int selectedValue = itemData.value< QList< QVariant > >().at(index).toInt();
+    handleReceivingScheduleSettingChange(IpsServices::ReceptionRefreshPeriodDayTime, selectedValue);
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::endTimeModified()
+{
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionDayEndTime);
+    QVariant data = item->contentWidgetData(QString("dateTime"));
+    QDateTime dateTime = data.value< QDateTime >();
+    int endHour(dateTime.time().hour());
+    handleReceivingScheduleSettingChange(IpsServices::ReceptionDayEndTime, endHour);
+}
+
+/*!
+    Used for getting the index to display in the inbox path radio button list 
+    
+    \return index Used to set the selected value
+*/
+int NmIpsSettingsHelper::getCorrectInboxPathRadioButtonIndex(QVariant folderPath)
+{
+    int index(0);
+    if (folderPath.toString().isEmpty()) {
+        index = IpsServices::NmIpsSettingsDefault;
+    } else {
+        index = IpsServices::NmIpsSettingsUserDefined;
+    }
+    return index;
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::handleReceivingScheduleSettingChange(
+    IpsServices::SettingItem settingItem, const QVariant &settingValue)
+{
+    // Check what was currently active sync mode.
+    QVariant setting;
+    mSettingsManager.readSetting(IpsServices::ReceptionActiveProfile, setting);
+    int activeProfile(setting.toInt());
+    if (activeProfile != NmIpsSettingsReceivingScheduleUserDefinedProfile) {
+        // Create user defined mode if needed.
+        emit createUserDefinedMode();
+
+        // Copy all settings from currently active mode to user defined mode
+        copyReceivingScheduleSettingsFromActiveProfile(
+            NmIpsSettingsReceivingScheduleUserDefinedProfile);
+
+        // select 'user defined' mode
+        mSettingsManager.writeSetting(IpsServices::ReceptionActiveProfile,
+            NmIpsSettingsReceivingScheduleUserDefinedProfile);
+    }
+
+    // store selected setting
+    mSettingsManager.writeSetting(settingItem, settingValue);
+
+    // update selection
+    HbDataFormModelItem *syncProfile = contentItem(IpsServices::ReceptionActiveProfile);
+    syncProfile->setContentWidgetData(QString("currentIndex"), 3);
+}
+
+/*!
+
+*/
+void NmIpsSettingsHelper::copyReceivingScheduleSettingsFromActiveProfile(int profileMode)
+{
+    // Read receiving schedule dynamic group item values and
+    // make a decision based on those if item should be visible or not.
+    const int dynamicGroupItemsCount(
+        sizeof(NmIpsSettingsReceivingSchedule) / sizeof(NmIpsSettingsReceivingSchedule[0]));
+
+    NmIpsExtendedSettingsManager &extendedSettingsManager =
+        mSettingsManager.extendedSettingsManager();
+
+    for (int itemIndex(0); itemIndex < dynamicGroupItemsCount; ++itemIndex) {
+        QVariant setting;
+        // Read setting value from active profile
+        IpsServices::SettingItem item(NmIpsSettingsReceivingSchedule[itemIndex]);
+        mSettingsManager.readSetting(item, setting);
+
+        // write settings to user defined profile.
+        extendedSettingsManager.writeSetting(profileMode, item, setting);
+    }
+}
+/*!
+    Saves the outgoing port value into database if user has changed the value. If the user wish to
+    define the port, a input dialog is shown.
+
+    \param index Used to determine if the default value or a user defined value should be written
+*/
+void NmIpsSettingsHelper::outgoingPortChange(int index)
+{
+    if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        int port = mSettingsManager.determineDefaultOutgoingPort();
+        mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
+    } else if (index == IpsServices::NmIpsSettingsUserDefined) {
+        QVariant port;
+        mSettingsManager.readSetting(IpsServices::OutgoingPort, port);
+        bool changed = false;
+        int changedPort = showOutgoingPortInputDialog(port.toInt(), changed);
+        if (changed) {
+            emit goOffline(mSettingsManager.mailboxId());
+            mEmitOnline = true;
+            mSettingsManager.writeSetting(IpsServices::OutgoingPort, changedPort);
+        } else {
+            //set selected value back if user canceled.
+            HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
+            item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
+        }
+    }
+}
+
+/*!
+    Sets the previous index value to indicate that user has edited the field
+
+    \param index Reference to the item in the radio button list.
+*/
+void NmIpsSettingsHelper::outgoingPortPressed(const QModelIndex &index)
+{
+    Q_UNUSED(index);
+    HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
+    QVariant data = item->contentWidgetData(QString("selected"));
+    mRadioButtonPreviousIndex = data.toInt();
+}
+
+/*!
+    Show a input dialog for allowing the user to specify a outgoing port
+    \param int The current port stored in the settings
+    \param bool Reference used for marking if the value really changed
+    \return int The user defined port
+*/
+int NmIpsSettingsHelper::showOutgoingPortInputDialog(int currentPort, bool &changed)
+{
+    QVariant newPort;
+
+    HbInputDialog inputDialog;
+    inputDialog.setInputMode(HbInputDialog::IntInput);
+    HbValidator *validator = new HbValidator();
+    validator->addField(new QIntValidator(0, 65535, 0), 
+                        HbStringUtil::convertDigits(QString::number(currentPort)));
+    inputDialog.setValidator(validator);
+    inputDialog.setPromptText(hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
+
+    HbAction *action = inputDialog.exec();
+    if (action == inputDialog.primaryAction()) {
+        newPort = inputDialog.value();
+        changed = true;
+    }
+    delete validator;
+
+    return newPort.toInt();
+}
+
+/*!
+    Used for getting the index to display in the outgoing port radio button list
+
+    \return index Used to set the selected value
+*/
+int NmIpsSettingsHelper::getCorrectOutgoingPortRadioButtonIndex(int currentPort)
+{
+    int index = 0;
+    int port = mSettingsManager.determineDefaultOutgoingPort();
+    if (port == currentPort) {
+        index = IpsServices::NmIpsSettingsDefault;
+    } else {
+        index = IpsServices::NmIpsSettingsUserDefined;
+    }
+    return index;
+}
+
+/*!
+    Saves the outgoing secure connection value into database if user has changed the value.
+*/
+void NmIpsSettingsHelper::outgoingSecureConnectionItemChange(int index)
+{
+    if (mRadioButtonPreviousIndex != index) {
+        emit goOffline(mSettingsManager.mailboxId());
+        mEmitOnline = true;
+        switch (index) {
+            case IpsServices::EMailStartTls: // On (Start TLS)
+                mSettingsManager.writeSetting(IpsServices::OutgoingSecureSockets, ETrue);
+                mSettingsManager.writeSetting(IpsServices::OutgoingSSLWrapper, EFalse);
+                break;
+
+            case IpsServices::EMailSslTls: // On (SSL/TLS)
+                mSettingsManager.writeSetting(IpsServices::OutgoingSecureSockets, EFalse);
+                mSettingsManager.writeSetting(IpsServices::OutgoingSSLWrapper, ETrue);
+                break;
+
+            case IpsServices::EMailSecurityOff: // Off
+                mSettingsManager.writeSetting(IpsServices::OutgoingSecureSockets, EFalse);
+                mSettingsManager.writeSetting(IpsServices::OutgoingSSLWrapper, EFalse);
+                break;
+
+        	 default:
+                break;
+        }
+        // Update outgoing port value only if default outgoing port used
+        HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
+        QVariant data = item->contentWidgetData(QString("selected"));
+        // Default outgoing port selected
+        if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
+			int port = mSettingsManager.determineDefaultOutgoingPort();
+			mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
+        }
+    }
+}
+
+/*!
+    Sets the previous index value to indicate that user has edited the field
+
+    \param text Reference to the item in the radio button list.
+*/
+void NmIpsSettingsHelper::outgoingSecureConnectionPressed(const QModelIndex &index)
+{
+	Q_UNUSED(index);
+	HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingSecureSockets);
+    QVariant data = item->contentWidgetData(QString("selected"));
+    mRadioButtonPreviousIndex = data.toInt();
+}
+
--- a/ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp	Mon May 03 12:23:15 2010 +0300
@@ -56,7 +56,7 @@
     // Connect signals and slots.
     connect(mComboBox, SIGNAL(currentIndexChanged(int)), 
         this, SLOT(comboBoxIndexChanged(int)), Qt::UniqueConnection);
-    connect(mComboBox, SIGNAL(currentIndexChanged(int)), 
+    connect(mComboBox, SIGNAL(currentIndexChanged(int)),
         this, SIGNAL(currentIndexChanged(int)), Qt::UniqueConnection);
 }
 
@@ -68,44 +68,59 @@
 }
 
 /*!
-    Sets the current combobox index.
-    \param index Combobox index to set.
+    Returns the current index.
+    \return Index.
+*/
+int NmIpsSettingsLabeledComboBox::currentIndex() const
+{
+    return mComboBox->currentIndex();
+}
+
+/*!
+    Sets the current index.
+    \param currentIndex Index to set.
 */
 void NmIpsSettingsLabeledComboBox::setCurrentIndex(int index)
 {
-    // Change is not signaled outside via currentIndexChanged.
-    disconnect(mComboBox, SIGNAL(currentIndexChanged(int)), 
-        this, SIGNAL(currentIndexChanged(int)));
     mComboBox->setCurrentIndex(index);
+}
 
-    // Force refreshing the label text when the new index is same as current index.
-    if (mComboBox->currentIndex() == index) {
-        comboBoxIndexChanged(index);
-        }
-
-    // Reconnect the slot to signal changes outside.
-    connect(mComboBox, SIGNAL(currentIndexChanged(int)),
-            this, SIGNAL(currentIndexChanged(int)), Qt::UniqueConnection);
+/*!
+    Returns the current combobox items.
+    \return Combobox items.
+*/
+QStringList NmIpsSettingsLabeledComboBox::comboItems() const
+{
+    return mComboBox->items();
 }
 
 /*!
-    Sets the combobox items and corresponding texts for the label.
-    \param texts Item texts.
+    Sets the current combobox items.
+    \param comboItem Combobox items to set.
 */
-void NmIpsSettingsLabeledComboBox::setItems(QStringList comboBoxItems,
-                                            QStringList texts)
+void NmIpsSettingsLabeledComboBox::setComboItems(QStringList comboItems)
+{
+    mComboBox->setItems(comboItems);
+}
+/*!
+    Returns the current label texts.
+    \return Label texts.
+*/
+QStringList NmIpsSettingsLabeledComboBox::labelTexts() const
 {
-    // Set the combobox items without signaling index change.
-    disconnect(mComboBox, SIGNAL(currentIndexChanged(int)), 
-        this, SIGNAL(currentIndexChanged(int)));
-    mComboBox->setItems(comboBoxItems);
-    connect(mComboBox, SIGNAL(currentIndexChanged(int)),
-        this, SIGNAL(currentIndexChanged(int)), Qt::UniqueConnection);
+    return QStringList(mLabelTexts.values());
+}
 
-    // Set the corresponding texts for the label.
+/*!
+    Sets the current label texts.
+    \param labelTexts Label texts to set.
+*/
+void NmIpsSettingsLabeledComboBox::setLabelTexts(QStringList labelTexts)
+{
+    // Set the label texts.
     mLabelTexts.clear();
-    for (int i=0; i<comboBoxItems.count(); ++i) {
-        mLabelTexts.insert(i, texts.at(i));
+    for (int i=0; i<labelTexts.count(); ++i) {
+        mLabelTexts.insert(i, labelTexts.at(i));
     }
 }
 
@@ -115,5 +130,6 @@
 */
 void NmIpsSettingsLabeledComboBox::comboBoxIndexChanged(int index)
 {
-    mLabel->setPlainText(mLabelTexts.value(index));
+    QString label(mLabelTexts.value(index));
+    mLabel->setPlainText(label);
 }
--- a/ipsservices/nmipssettings/src/nmipssettingsmanagerbase.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingsmanagerbase.cpp	Mon May 03 12:23:15 2010 +0300
@@ -40,9 +40,12 @@
     \param mailboxId Mailbox identifier.
     \param account CEmailAccounts created by the settings manager factory. Takes ownership after
     successful construction.
+    \param accountType AccountType identifier.
 */
-NmIpsSettingsManagerBase::NmIpsSettingsManagerBase(const NmId &mailboxId, CEmailAccounts *account)
-: mMailboxId(mailboxId.id())
+NmIpsSettingsManagerBase::NmIpsSettingsManagerBase(const NmId &mailboxId, CEmailAccounts *account, 
+    IpsServices::TIpsSetAccountTypes accountType)
+: mAccountType(accountType),
+  mMailboxId(mailboxId.id())
 {
     QScopedPointer<NmIpsExtendedSettingsManager> extendedSettings(new NmIpsExtendedSettingsManager(mailboxId));
 
@@ -73,6 +76,7 @@
 bool NmIpsSettingsManagerBase::readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue)
 {
     bool found(false);
+    
     switch (settingItem) {
         case IpsServices::EmailAlias:
             settingValue = XQConversions::s60DescToQString(mSmtpSettings->EmailAlias());
@@ -86,6 +90,34 @@
             settingValue = XQConversions::s60DescToQString(mSmtpSettings->ReplyToAddress());
             found = true;
             break;
+        case IpsServices::OutgoingMailServer:
+            settingValue = XQConversions::s60DescToQString(mSmtpSettings->ServerAddress());
+            found = true;
+            break; 
+        case IpsServices::OutgoingPort:
+            settingValue = mSmtpSettings->Port();
+            found = true;
+            break;
+        case IpsServices::OutgoingLoginName:
+            settingValue = XQConversions::s60Desc8ToQString(mSmtpSettings->LoginName());
+            found = true;
+            break; 
+        case IpsServices::OutgoingPassword:
+            settingValue = XQConversions::s60Desc8ToQString(mSmtpSettings->Password());
+            found = true;
+            break; 
+        case IpsServices::SMTPAuthentication:
+            settingValue = mSmtpSettings->SMTPAuth();
+            found = true;
+            break; 
+        case IpsServices::OutgoingSecureSockets:
+        	settingValue = mSmtpSettings->SecureSockets();
+            found = true;
+            break;  
+        case IpsServices::OutgoingSSLWrapper:
+        	settingValue = mSmtpSettings->SSLWrapper();
+            found = true;
+            break;  
         default:
             found = mExtendedSettingsManager->readSetting(settingItem, settingValue);
             break;
@@ -102,7 +134,8 @@
 bool NmIpsSettingsManagerBase::writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue)
 {
     HBufC *tmp = 0;
-
+    HBufC8 *tmp8 = 0;
+    
     bool ret(false);
     TInt err(KErrNone);
 
@@ -131,6 +164,46 @@
                 ret = saveSettings();
             }
             break;
+        case IpsServices::OutgoingMailServer:
+            tmp = XQConversions::qStringToS60Desc(settingValue.toString());
+            TRAP(err, mSmtpSettings->SetServerAddressL(*tmp));
+            delete tmp;
+            if (err==KErrNone) {
+                ret = saveSettings();
+            }
+            break;
+        case IpsServices::OutgoingPort:            
+            mSmtpSettings->SetPort(settingValue.toInt());
+            ret = saveSettings();
+            break;
+        case IpsServices::OutgoingLoginName:
+            tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
+            TRAP(err, mSmtpSettings->SetLoginNameL(*tmp8));
+            delete tmp8;
+            if (err==KErrNone) {
+                ret = saveSettings();
+            }
+            break;
+        case IpsServices::OutgoingPassword:
+            tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
+            TRAP(err, mSmtpSettings->SetPasswordL(*tmp8));
+            delete tmp8;
+            if (err==KErrNone) {
+                ret = saveSettings();
+            }
+            break;
+        case IpsServices::SMTPAuthentication:            
+            mSmtpSettings->SetSMTPAuth((settingValue.toBool()));
+            ret = saveSettings();
+            break;
+        case IpsServices::OutgoingSecureSockets:
+            mSmtpSettings->SetSecureSockets(settingValue.toBool());
+            ret = saveSettings();
+            break;  
+        case IpsServices::OutgoingSSLWrapper:
+            mSmtpSettings->SetSSLWrapper(settingValue.toBool());
+            ret = saveSettings();
+            break;  
         default:
             ret = mExtendedSettingsManager->writeSetting(settingItem, settingValue);
             break;    
@@ -166,7 +239,41 @@
 /*!     
     NmId for the mailbox. 
 */
-NmId& NmIpsSettingsManagerBase::mailboxId()
+NmId NmIpsSettingsManagerBase::mailboxId() const
 {
     return mMailboxId;
 }
+
+/*!     
+    Mailbox account type. 
+*/
+IpsServices::TIpsSetAccountTypes NmIpsSettingsManagerBase::accountType() const
+{
+    return mAccountType;
+}
+
+/*!
+     Determine the default port for the outgoing mail server based on the security settings
+     
+     \return int the port number to use
+ */
+int NmIpsSettingsManagerBase::determineDefaultOutgoingPort()
+{
+    int port = 0;    
+    bool sslTls = mSmtpSettings->SSLWrapper();    
+    if (sslTls) {
+        port = IpsServices::secureSmtpPort;
+    } else {
+        port = IpsServices::standardSmtpPort;
+    }        
+    return port;
+}
+
+/*!
+
+*/
+NmIpsExtendedSettingsManager &NmIpsSettingsManagerBase::extendedSettingsManager() const
+{
+return *mExtendedSettingsManager;
+}
+
--- a/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp	Mon May 03 12:23:15 2010 +0300
@@ -25,6 +25,7 @@
 #include <QTranslator>
 #include <QScopedPointer>
 #include <QLocale>
+#include <HbStringUtil>
 
 #include "nmipssettingsplugin.h"
 #include "nmipssettingshelper.h"
@@ -36,6 +37,10 @@
 #include "nmipssettingscustomitem.h"
 #include "nmipssettingslabeledcombobox.h"
 
+const QString NmIpsSettingsComboItems("comboItems");
+const QString NmIpsSettingsLabelTexts("labelTexts");
+const QString NmIpsSettingsItems("items");
+
 /*!
     \class NmIpsSettingsPlugin
     \brief The class implements NmSettingsPluginInterface which is an interface
@@ -110,54 +115,37 @@
     // Settings manager object is valid if the mailboxId is IMAP or POP3 account.
     if (mSettingsManager) {
         // Create settings helper.
-        mSettingsHelper = new NmIpsSettingsHelper(*mSettingsManager);
+        mSettingsHelper = new NmIpsSettingsHelper(*mSettingsManager, form, model);
 
-        connect(mSettingsHelper, SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)),
+        connect(mSettingsHelper,
+                SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)),
                 this, SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)));
 
         connect(mSettingsHelper, SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)),
                 this, SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)));
+
+        connect(mSettingsHelper, SIGNAL(goOffline(const NmId &)),
+                this, SIGNAL(goOffline(const NmId &)));
+
+        connect(mSettingsHelper, SIGNAL(createUserDefinedMode()),
+                this, SLOT(createUserDefinedMode()));
+
         // Add items to the model.
         initGroupItems();
         result = true;
     }
+    
     return result;
 }
 
 /*!
-    Slot called when individual setting items are shown.
-    \param index. Index of the shown item.
+    This slot can be used in cases when plugin needs to handle stuff before settingsview is closed.
 */
-void NmIpsSettingsPlugin::itemShown(const QModelIndex& index)
+void NmIpsSettingsPlugin::aboutToClose()
 {
-    HbDataFormViewItem* item = static_cast<HbDataFormViewItem*>(mForm->itemByIndex(index));
-    HbDataFormModelItem* modelItem = mModel->itemFromIndex(index);
-
-    // Check item type
-    if (modelItem == mReceivingScheduleSelectedItem) {
-
-        // Populate the custom item's combobox and label data.
-        NmIpsSettingsLabeledComboBox* box =
-            static_cast<NmIpsSettingsLabeledComboBox*>(item->dataItemContentWidget());
-
-        QStringList modeList;
-        modeList << hbTrId("txt_mailips_setlabel_selected_mode_val_keep_upto")      // 0
-                 << hbTrId("txt_mailips_setlabel_selected_mode_val_save_energy")    // 1
-                 << hbTrId("txt_mailips_setlabel_selected_mode_val_fetch_manua");   // 2
-
-        QStringList infoList;
-        infoList << hbTrId("txt_mailips_list_the_mailbox_is_uptodate_during")       // 0
-                 << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_every_15")    // 1
-                 << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_only_by");    // 2
-
-        box->setItems(modeList, infoList);
-
-        // Read and set the default value for the combobox and label
-        QVariant value;
-        if (mSettingsManager->readSetting(IpsServices::ReceptionActiveProfile, value)) {
-            box->setCurrentIndex(value.toInt());
-            }
-    }
+	if (mSettingsHelper->isOffline()) {
+		emit goOnline(mSettingsManager->mailboxId());
+	}
 }
 
 /*!
@@ -179,6 +167,7 @@
         mModel->appendDataFormItem(HbDataFormModelItem::GroupItem,
                                    hbTrId("txt_mailips_subhead_receiving_schedule"),
                                    rootItem);
+    mSettingsHelper->setReceivingScheduleGroupItem(receivingScheduleItem);
     initReceivingScheduleItems(*receivingScheduleItem);
 
     HbDataFormModelItem *userInfoItem =
@@ -200,9 +189,8 @@
 
     HbDataFormModelItem *deleteMailboxButtonItem =
         mModel->appendDataFormItem(buttonItem, QString(), rootItem);
-
-    deleteMailboxButtonItem->setData(HbDataFormModelItem::KeyRole,
-                                     hbTrId("txt_mailips_button_delete_mailbox"));
+    deleteMailboxButtonItem->setContentWidgetData(QString("text"),
+                                                  hbTrId("txt_mailips_button_delete_mailbox"));
 
     mForm->addConnection(deleteMailboxButtonItem, SIGNAL(clicked()),
                          mSettingsHelper, SLOT(deleteButtonPress()));
@@ -256,20 +244,86 @@
     protoTypeList.append(prototype);
     mForm->setItemPrototypes(protoTypeList);
 
-    // Instantiate the custom item and append it.
+    // 1. Active sync profile
     HbDataFormModelItem *infoItem = new HbDataFormModelItem(
         static_cast<HbDataFormModelItem::DataItemType>(NmIpsSettingsCustomItem::LabeledComboBox),
         hbTrId("txt_mailips_setlabel_selected_mode"));
+
+    mSettingsHelper->insertContentItem(IpsServices::ReceptionActiveProfile, infoItem);
     item.appendChild(infoItem);
 
-    // Store the pointer for use in itemShown.
-    mReceivingScheduleSelectedItem = infoItem;
+    QStringList modeList;
+    modeList << hbTrId("txt_mailips_setlabel_selected_mode_val_keep_upto")          // 0
+             << hbTrId("txt_mailips_setlabel_selected_mode_val_save_energy")        // 1
+             << hbTrId("txt_mailips_setlabel_selected_mode_val_fetch_manua");       // 2
+
+    QVariant userDefineMode;
+    mSettingsManager->readSetting(IpsServices::ReceptionUserDefinedProfile, userDefineMode);
+
+
+    // If 'user defined' mode is defined then add it to combo items.
+    if (userDefineMode.toInt()) {
+        modeList << hbTrId("txt_mailips_setlabel_selected_mode_val_user_define");   // 3
+    }
+    infoItem->setContentWidgetData(NmIpsSettingsComboItems, modeList);
+
+    QStringList infoList;
+    infoList << hbTrId("txt_mailips_list_the_mailbox_is_uptodate_during")           // 0
+             << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_every_15")        // 1
+             << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_only_by");        // 2
+
+    // If 'user defined' mode is defined then add 'user defined' explanation to label list.
+    if (userDefineMode.toInt()) {
+        infoList << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_as_defin");   // 3
+    }
+    infoItem->setContentWidgetData(NmIpsSettingsLabelTexts, infoList);
+
+    QVariant profileIndex;
+    mSettingsManager->readSetting(IpsServices::ReceptionActiveProfile, profileIndex);
+    infoItem->setContentWidgetData(QString("currentIndex"), profileIndex);
+
+    // 2. Show mail in inbox
+    QVariant mailInInbox;
+    mSettingsManager->readSetting(IpsServices::ReceptionInboxSyncWindow, mailInInbox);
 
-    // Connect the signals and slots.
-    connect(mForm, SIGNAL(itemShown(const QModelIndex &)),
-            this, SLOT(itemShown(const QModelIndex &)));
+    CpSettingFormItemData *showMailInInboxItem =
+        new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+            "txt_mailips_setlabel_show_mail_in_inbox"));
+
+    mSettingsHelper->insertContentItem(IpsServices::ReceptionInboxSyncWindow, showMailInInboxItem);
+
+    QStringList showMailItems;
+    showMailItems << HbStringUtil::convertDigits("50")
+                  << HbStringUtil::convertDigits("100")
+                  << HbStringUtil::convertDigits("500")
+                  << hbTrId("txt_mailips_setlabel_val_all");
+    
+
+    QList<QVariant> showMailItemValues;
+    showMailItemValues << 50
+                       << 100
+                       << 500
+                       << 0;
+    
+    QVariant value(showMailItemValues);
+    showMailInInboxItem->setData(HbDataFormModelItem::DescriptionRole + 1, value);
+    showMailInInboxItem->setContentWidgetData(NmIpsSettingsItems, showMailItems);
+    showMailInInboxItem->setEnabled(true);
+    item.appendChild(showMailInInboxItem);
+
+    // Active sync profile connection
     mForm->addConnection(infoItem, SIGNAL(currentIndexChanged(int)),
-                         mSettingsHelper, SLOT(receivingScheduleChange(int)));
+        mSettingsHelper, SLOT(receivingScheduleChange(int)));
+
+    mForm->addConnection(showMailInInboxItem, SIGNAL(itemSelected(int)),
+        this, SLOT(showMailInInboxModified(int)));
+
+    // Must be called manually here, because the signal->slot connection set above using
+    // HbDataForm::addConnection() is actually established AFTER the properties have first been
+    // set to the widget, causing the first currentIndexChanged signal not to reach
+    // NmIpsSettingsHelper::receivingScheduleChange().
+    mSettingsHelper->receivingScheduleChange(profileIndex.toInt());
+
 }
 
 
@@ -294,10 +348,10 @@
 
     // Username (Never visible in Yahoo!)
     QVariant username;
-    mSettingsManager->readSetting(IpsServices::LoginName, username);
+    mSettingsManager->readSetting(IpsServices::IncomingLoginName, username);
     CpSettingFormItemData *usernameItem = new CpSettingFormItemData(
         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_username"));
-    mSettingsHelper->insertContentItem(IpsServices::LoginName, usernameItem);
+    mSettingsHelper->insertContentItem(IpsServices::IncomingLoginName, usernameItem);
     usernameItem->setContentWidgetData(QString("text"), username);
     mForm->addConnection(usernameItem, SIGNAL(editingFinished()),
                          mSettingsHelper, SLOT(saveUserName()));
@@ -307,10 +361,10 @@
 
     // Password
     QVariant password;
-    mSettingsManager->readSetting(IpsServices::Password, password);
+    mSettingsManager->readSetting(IpsServices::IncomingPassword, password);
     CpSettingFormItemData *passwordItem = new CpSettingFormItemData(
         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_password"));
-    mSettingsHelper->insertContentItem(IpsServices::Password, passwordItem);
+    mSettingsHelper->insertContentItem(IpsServices::IncomingPassword, passwordItem);
     passwordItem->setContentWidgetData(QString("text"), password);
     passwordItem->setContentWidgetData(QString("echoMode"), HbLineEdit::PasswordEchoOnEdit);
     mForm->addConnection(passwordItem, SIGNAL(editingFinished()),
@@ -337,7 +391,196 @@
 */
 void NmIpsSettingsPlugin::initServerInfoItems(HbDataFormModelItem &item) const
 {
-    Q_UNUSED(item);
+    // 1. Incoming mail server address
+    QVariant incomingMailServer;
+    mSettingsManager->readSetting(IpsServices::IncomingMailServer, incomingMailServer);
+    CpSettingFormItemData *incomingMailServerItem = new CpSettingFormItemData(
+        HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_incoming_mail_server"));
+    mSettingsHelper->insertContentItem(IpsServices::IncomingMailServer, incomingMailServerItem);
+    incomingMailServerItem->setContentWidgetData(QString("text"), incomingMailServer);
+    mForm->addConnection(incomingMailServerItem, SIGNAL(editingFinished()),
+                         mSettingsHelper, SLOT(saveIncomingMailServer()));
+    mForm->addConnection(incomingMailServerItem, SIGNAL(textChanged(QString)),
+                         mSettingsHelper, SLOT(incomingMailServerTextChange(QString)));
+    item.appendChild(incomingMailServerItem);
+    
+    // 2. Incoming Secure connection
+    QVariant secureSockets;
+    QVariant secureSSLWrapper;
+    mSettingsManager->readSetting(IpsServices::IncomingSecureSockets, secureSockets);
+    mSettingsManager->readSetting(IpsServices::IncomingSSLWrapper, secureSSLWrapper);
+    CpSettingFormItemData *incomingSecureConnectionItem =
+        new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+            "txt_mailips_setlabel_incoming_security"));
+    mSettingsHelper->insertContentItem(IpsServices::IncomingSecureSockets, incomingSecureConnectionItem);
+    QStringList showSCItems;
+    showSCItems << hbTrId("txt_mailips_setlabel_security_val_on_starttls")
+                << hbTrId("txt_mailips_setlabel_security_val_on_ssltls")
+                << hbTrId("txt_mailips_setlabel_security_val_off");
+
+    incomingSecureConnectionItem->setContentWidgetData(QString("items"), showSCItems);
+    int incomingSecureConnectionItemIndex = 
+        mSettingsHelper->getCorrectSecureRadioButtonIndex(secureSockets, secureSSLWrapper);
+    incomingSecureConnectionItem->setContentWidgetData(QString("selected"), 
+                                                       incomingSecureConnectionItemIndex);
+    mForm->addConnection(incomingSecureConnectionItem, SIGNAL(itemSelected(int)),    		  
+    		mSettingsHelper, SLOT(incomingSecureConnectionItemChange(int)));
+    mForm->addConnection(incomingSecureConnectionItem, SIGNAL(pressed(const QModelIndex &)),    		  
+    		mSettingsHelper, SLOT(incomingSecureConnectionPressed(const QModelIndex &)));
+    item.appendChild(incomingSecureConnectionItem);
+    
+    // 3. Incoming mail server port
+    QVariant incomingPort;
+    mSettingsManager->readSetting(IpsServices::IncomingPort, incomingPort);
+    CpSettingFormItemData *incomingPortItem =
+        new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+            "txt_mailips_setlabel_incoming_port"));
+    mSettingsHelper->insertContentItem(IpsServices::IncomingPort, incomingPortItem);    
+    mForm->addConnection(incomingPortItem, SIGNAL(itemSelected(int)),
+                         mSettingsHelper, SLOT(incomingPortChange(int)));
+    mForm->addConnection(incomingPortItem, SIGNAL(pressed(const QModelIndex &)),              
+                         mSettingsHelper, SLOT(incomingPortPressed(const QModelIndex &)));
+    QStringList incomingPortItems;
+    incomingPortItems << hbTrId("txt_mailips_setlabel_incoming_port_default")
+                      << hbTrId("txt_mailips_setlabel_incoming_port_user_defined");
+    incomingPortItem->setContentWidgetData(QString("items"), incomingPortItems);
+    int incomingPortItemIndex = 
+        mSettingsHelper->getCorrectPortRadioButtonIndex(incomingPort.toInt()); 
+    incomingPortItem->setContentWidgetData(QString("selected"), incomingPortItemIndex);
+    item.appendChild(incomingPortItem);    
+    
+    // 4. Outgoing mail server address
+    QVariant outgoingMailServer;
+    mSettingsManager->readSetting(IpsServices::OutgoingMailServer, outgoingMailServer);
+    CpSettingFormItemData *outgoingMailServerItem = new CpSettingFormItemData(
+        HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_outgoing_mail_server"));
+    mSettingsHelper->insertContentItem(IpsServices::OutgoingMailServer, outgoingMailServerItem);
+    outgoingMailServerItem->setContentWidgetData(QString("text"), outgoingMailServer);
+    mForm->addConnection(outgoingMailServerItem, SIGNAL(editingFinished()),
+                         mSettingsHelper, SLOT(saveOutgoingMailServer()));
+    mForm->addConnection(outgoingMailServerItem, SIGNAL(textChanged(QString)),
+                         mSettingsHelper, SLOT(outgoingMailServerTextChange(QString)));
+    item.appendChild(outgoingMailServerItem);
+    
+    // 5. Outgoing Secure connection
+    QVariant outgoingSecureSockets;
+    QVariant outgoingSSLWrapper;
+    mSettingsManager->readSetting(IpsServices::OutgoingSecureSockets, outgoingSecureSockets);
+    mSettingsManager->readSetting(IpsServices::OutgoingSSLWrapper, outgoingSSLWrapper);
+    CpSettingFormItemData *outgoingSecureConnectionItem =
+        new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+            "txt_mailips_setlabel_outgoing_security"));
+    mSettingsHelper->insertContentItem(IpsServices::OutgoingSecureSockets, outgoingSecureConnectionItem);
+    QStringList outgoingShowSCItems;
+    outgoingShowSCItems << hbTrId("txt_mailips_setlabel_security_val_on_starttls")
+                << hbTrId("txt_mailips_setlabel_security_val_on_ssltls")
+                << hbTrId("txt_mailips_setlabel_security_val_off");
+
+    outgoingSecureConnectionItem->setContentWidgetData(QString("items"), outgoingShowSCItems);
+    int outgoingSecureConnectionItemIndex = 
+        mSettingsHelper->getCorrectSecureRadioButtonIndex(outgoingSecureSockets, 
+														  outgoingSSLWrapper);
+    outgoingSecureConnectionItem->setContentWidgetData(QString("selected"), 
+                                                       outgoingSecureConnectionItemIndex);
+    mForm->addConnection(outgoingSecureConnectionItem, SIGNAL(itemSelected(int)),    		  
+    		mSettingsHelper, SLOT(outgoingSecureConnectionItemChange(int)));
+    mForm->addConnection(outgoingSecureConnectionItem, SIGNAL(pressed(const QModelIndex &)),    		  
+    		mSettingsHelper, SLOT(outgoingSecureConnectionPressed(const QModelIndex &)));
+    item.appendChild(outgoingSecureConnectionItem);
+
+    // 6. Outgoing mail server port
+    QVariant outgoingPort;
+    mSettingsManager->readSetting(IpsServices::OutgoingPort, outgoingPort);
+    CpSettingFormItemData *outgoingPortItem =
+        new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+            "txt_mailips_setlabel_outgoing_port"));
+    mSettingsHelper->insertContentItem(IpsServices::OutgoingPort, outgoingPortItem);    
+    mForm->addConnection(outgoingPortItem, SIGNAL(itemSelected(int)),
+                         mSettingsHelper, SLOT(outgoingPortChange(int)));
+    mForm->addConnection(outgoingPortItem, SIGNAL(pressed(const QModelIndex &)),              
+                         mSettingsHelper, SLOT(outgoingPortPressed(const QModelIndex &)));
+    QStringList outgoingPortItems;
+    outgoingPortItems << hbTrId("txt_mailips_setlabel_incoming_port_default")
+                      << hbTrId("txt_mailips_setlabel_incoming_port_user_defined");
+    outgoingPortItem->setContentWidgetData(QString("items"), outgoingPortItems);
+    int outgoingPortItemIndex = 
+        mSettingsHelper->getCorrectOutgoingPortRadioButtonIndex(outgoingPort.toInt()); 
+    outgoingPortItem->setContentWidgetData(QString("selected"), outgoingPortItemIndex);
+    item.appendChild(outgoingPortItem);
+    
+    // 8. Folder path
+    // This item is only shown for IMAP4 account.
+    if (mSettingsManager->accountType() == IpsServices::EMailImap) {
+        QVariant folderPath;
+        mSettingsManager->readSetting(IpsServices::FolderPath, folderPath);
+        CpSettingFormItemData *folderPathItem =
+            new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, hbTrId(
+                "txt_mailips_setlabel_folder_path"));
+        mSettingsHelper->insertContentItem(IpsServices::FolderPath, folderPathItem);    
+        mForm->addConnection(folderPathItem, SIGNAL(itemSelected(int)),
+                             mSettingsHelper, SLOT(inboxPathChange(int)));
+        mForm->addConnection(folderPathItem, SIGNAL(pressed(const QModelIndex &)),              
+                             mSettingsHelper, SLOT(inboxPathPressed(const QModelIndex &)));
+        QStringList folderPathItems;
+        folderPathItems << hbTrId("txt_mailips_setlabel_folder_path_val_default")
+                       << hbTrId("txt_mailips_setlabel_folder_path_user_defined");
+        folderPathItem->setContentWidgetData(QString("items"), folderPathItems);
+        int folderPathItemIndex = mSettingsHelper->getCorrectInboxPathRadioButtonIndex(folderPath);
+        folderPathItem->setContentWidgetData(QString("selected"), folderPathItemIndex);
+        item.appendChild(folderPathItem);
+    }
+}
+
+/*!
+    Creates user defined mode if not already exist.
+*/
+void NmIpsSettingsPlugin::createUserDefinedMode()
+{
+    QVariant userDefineMode;
+    mSettingsManager->readSetting(IpsServices::ReceptionUserDefinedProfile, userDefineMode);
+
+    // If user defined mode do not already exist, create it
+    if (!userDefineMode.toInt()) {
+        // Add 'user defined' mode to combobox
+        HbDataFormModelItem *syncProfile =
+            mSettingsHelper->contentItem(IpsServices::ReceptionActiveProfile);
+
+        QVariant contentWidgetData = syncProfile->contentWidgetData(NmIpsSettingsComboItems);
+        QStringList modeList = contentWidgetData.value<QStringList>();
+        modeList << hbTrId("txt_mailips_setlabel_selected_mode_val_user_define");
+
+        // Add 'user defined' explanation text to label text
+        contentWidgetData = syncProfile->contentWidgetData(NmIpsSettingsLabelTexts);
+        QStringList infoList = contentWidgetData.value<QStringList>();
+        infoList << hbTrId("txt_mailips_list_the_mailbox_is_refreshed_as_defin");
+
+        // disconnect
+        mForm->removeConnection(syncProfile, SIGNAL(currentIndexChanged(int)),
+            mSettingsHelper, SLOT(receivingScheduleChange(int)));
+
+        syncProfile->setContentWidgetData(NmIpsSettingsComboItems, modeList);
+        syncProfile->setContentWidgetData(NmIpsSettingsLabelTexts, infoList);
+
+        // reconnect
+        mForm->addConnection(syncProfile, SIGNAL(currentIndexChanged(int)),
+            mSettingsHelper, SLOT(receivingScheduleChange(int)));
+
+        // Mark that user defined mode exists
+        userDefineMode.setValue(1);
+        mSettingsManager->writeSetting(IpsServices::ReceptionUserDefinedProfile, userDefineMode);
+    }
+}
+
+/*!
+
+*/
+void NmIpsSettingsPlugin::showMailInInboxModified(int index)
+{
+    HbDataFormModelItem* item = mSettingsHelper->contentItem(IpsServices::ReceptionInboxSyncWindow);
+    QVariant itemData = item->data(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1);
+    int selectedValue = itemData.value< QList< QVariant > >().at(index).toInt();
+    mSettingsHelper->handleReceivingScheduleSettingChange(
+        IpsServices::ReceptionInboxSyncWindow, selectedValue);
 }
 
 Q_EXPORT_PLUGIN2(nmipssettings, NmIpsSettingsPlugin);
Binary file ipsservices/nmipssettings/translations/mailips.qm has changed
--- a/ipsservices/nmipssettings/translations/mailips.ts	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmipssettings/translations/mailips.ts	Mon May 03 12:23:15 2010 +0300
@@ -2,6 +2,16 @@
 <!DOCTYPE TS>
 <TS version="3.0" sourcelanguage="en_GB">
 <context>
+<message numerus="no" id="txt_mailips_setlabel_security_val_on_starttls">
+    <comment>Value for txt_mailips_setlabel_secure_connection. Secure connection on with StartTLS (name of the secure connection protocol )</comment>        
+    <source>On (StartTLS)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_11_12_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
 <message numerus="no" id="txt_mailips_setlabel_outgoing_mail_authentication">
     <comment>Value for txt_mailips_setlabel_outgoing_mail_authentication. User defines the authentication</comment>        
     <source>User authentication</source>
@@ -9,17 +19,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_10_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mailips_setlabel_refresh_during_daytime_val_of">
-    <comment>Value for txt_mailips_setlabel_secure_connection. Secure connection off</comment>        
-    <source>Off</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
-    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
-    <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_reply_to_address">
@@ -29,7 +29,37 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_c</extra-loc-viewid>
     <extra-loc-positionid>setlabel_4</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_long_caption_mailips">
+    <comment></comment>        
+    <source>Mail</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_pri_large_graphic</extra-loc-layout_id>    
+    <extra-loc-viewid>mail</extra-loc-viewid>
+    <extra-loc-positionid>list</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_incoming_port">
+    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the incoming port for mail connection.</comment>        
+    <source>Incoming port</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_13</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_incoming_port_default">
+    <comment>Value for txt_mailips_setlabel_incoming_port</comment>        
+    <source>Default</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_13_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_incoming_mail_server">
@@ -39,7 +69,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_my_name">
@@ -49,7 +79,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_a</extra-loc-viewid>
     <extra-loc-positionid>setlabel_1</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_subhead_preferences">
@@ -59,17 +89,17 @@
     <extra-loc-layout_id>qtl_dataform_group_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_a</extra-loc-viewid>
     <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
-<message numerus="no" id="txt_mailips_setlabel_secure_connection">
-    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the secure connection usage. Setting item in server info</comment>        
-    <source>Secure connection</source>
+<message numerus="no" id="txt_mailips_setlabel_inbox_path_user_defined">
+    <comment>Value for txt_mailips_setlabel_inbox_path. Value for inbox path and port</comment>        
+    <source>User defined</source>
     <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
-    <extra-loc-positionid>setlabel_6</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-positionid>setlabel_9_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_day_end_time">
@@ -79,7 +109,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_5</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_every_day">
@@ -89,17 +119,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mailips_setlabel_port">
-    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the port for mail connection. Setting item in server info</comment>        
-    <source>Port</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
-    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
-    <extra-loc-positionid>setlabel_7</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_tue">
@@ -109,7 +129,17 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_outgoing_port">
+    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the outgoing port for mail connection.</comment>        
+    <source>Outgoing port</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_14</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_every_1_hour">
@@ -119,7 +149,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_outgoing_mail_server">
@@ -129,7 +159,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_selected_mode_val_save_energy">
@@ -139,7 +169,7 @@
     <extra-loc-layout_id>qtl_dataform_combobox_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_20_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_list_the_mailbox_is_refreshed_as_defin">
@@ -149,7 +179,7 @@
     <extra-loc-layout_id>qtl_dataform_description_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_sat">
@@ -159,7 +189,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_wed">
@@ -169,7 +199,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_sun">
@@ -179,7 +209,17 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_security_val_off">
+    <comment>Value for txt_mailips_setlabel_secure_connection. Secure connection off</comment>        
+    <source>Off</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_11_12_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_show_mail_in_other_folders">
@@ -189,7 +229,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_username">
@@ -199,7 +239,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_c</extra-loc-viewid>
     <extra-loc-positionid>setlabel_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_receiving_weekdays">
@@ -209,7 +249,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_refresh_mail">
@@ -219,7 +259,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_mail_address">
@@ -229,7 +269,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_c</extra-loc-viewid>
     <extra-loc-positionid>setlabel_1</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_mailbox_name">
@@ -239,7 +279,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_a</extra-loc-viewid>
     <extra-loc-positionid>setlabel_2</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_connection">
@@ -249,7 +289,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_8</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_mon">
@@ -259,7 +299,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_inbox_path">
@@ -269,7 +309,17 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_9</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_incoming_security">
+    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the secure connection usage for incoming mail. </comment>        
+    <source>Incoming secure connection</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_11</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_subhead_receiving_schedule">
@@ -279,7 +329,7 @@
     <extra-loc-layout_id>qtl_dataform_group_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_thu">
@@ -289,7 +339,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_subhead_server_info">
@@ -299,17 +349,7 @@
     <extra-loc-layout_id>qtl_dataform_group_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mailips_setlabel_refresh_during_daytime_val_on">
-    <comment>Value for txt_mailips_setlabel_secure_connection. Secure connection on with SLL/TLS (name of the secure connection protocol )</comment>        
-    <source>On (SLL/TLS)</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
-    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
-    <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_inbox_path_val_default">
@@ -319,7 +359,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_d</extra-loc-viewid>
     <extra-loc-positionid>setlabel_9_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_when_i_open_mailbox">
@@ -329,7 +369,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_list_the_mailbox_is_refreshed_every_15">
@@ -339,7 +379,7 @@
     <extra-loc-layout_id>qtl_dataform_description_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_selected_mode_val_user_define">
@@ -349,7 +389,7 @@
     <extra-loc-layout_id>qtl_dataform_combobox_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_20_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_download_images_val_fri">
@@ -359,7 +399,17 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_incoming_port_user_defined">
+    <comment>Value for txt_mailips_setlabel_incoming_port</comment>        
+    <source>User defined</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_13_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_every_4_hours">
@@ -369,7 +419,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_keep_uptodate">
@@ -379,7 +429,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_selected_mode_val_keep_upto">
@@ -389,7 +439,7 @@
     <extra-loc-layout_id>qtl_dataform_combobox_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_20_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_list_the_mailbox_is_uptodate_during">
@@ -399,7 +449,27 @@
     <extra-loc-layout_id>qtl_dataform_description_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_security_val_on_ssltls">
+    <comment>Value for txt_mailips_setlabel_secure_connection. Secure connection on with SLL/TLS (name of the secure connection protocol )</comment>        
+    <source>On (SLL/TLS)</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_11_12_val</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_outgoing_security">
+    <comment>Setting label under Server info txt_mailips_subhead_server_info for defining the secure connection usage for outgoing mail.</comment>        
+    <source>Outgoing secure connection</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_d</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_12</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_password">
@@ -409,7 +479,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_c</extra-loc-viewid>
     <extra-loc-positionid>setlabel_3</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_selected_mode_val_fetch_manua">
@@ -419,7 +489,7 @@
     <extra-loc-layout_id>qtl_dataform_combobox_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_20_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_list_the_mailbox_is_refreshed_only_by">
@@ -429,7 +499,7 @@
     <extra-loc-layout_id>qtl_dataform_description_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_every_15_minutes">
@@ -439,7 +509,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_6_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_day_start_time">
@@ -449,7 +519,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_4</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_subhead_user_info">
@@ -459,7 +529,7 @@
     <extra-loc-layout_id>qtl_dataform_group_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_c</extra-loc-viewid>
     <extra-loc-positionid>subhead</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_val_all">
@@ -469,7 +539,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_1_2_val</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_list_version_l1">
@@ -479,7 +549,27 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06</extra-loc-viewid>
     <extra-loc-positionid>list</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailnips_setlabel_signature">
+    <comment>Setting item in preferences.</comment>        
+    <source>Signature</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_a</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_10</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_mailips_setlabel_selected_mode">
+    <comment>Under Receiving schedule. Label text for mode drop down. User can define how often the mailbox is refreshed with the server content. Options Keep-up-to-date, Save energy, Fetch manually.</comment>        
+    <source>Selected mode</source>
+    <translation variants="no" type="unfinished"></translation>
+    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
+    <extra-loc-viewid>mail_06_b</extra-loc-viewid>
+    <extra-loc-positionid>setlabel_20</extra-loc-positionid>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_setlabel_show_mail_in_inbox">
@@ -489,17 +579,7 @@
     <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06_b</extra-loc-viewid>
     <extra-loc-positionid>setlabel_1</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
-    <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_mailips_setlabel_selected_mode">
-    <comment>Under Receiving schedule. Label text for mode drop down. User can define how often the mailbox is refreshed with the server content. Options Keep-up-to-date, Save energy, Fetch manually.</comment>        
-    <source>Selected mode</source>
-    <translation variants="no" type="unfinished"></translation>
-    <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>    
-    <extra-loc-viewid>mail_06_b</extra-loc-viewid>
-    <extra-loc-positionid>setlabel_20</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 <message numerus="no" id="txt_mailips_button_delete_mailbox">
@@ -509,7 +589,7 @@
     <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>    
     <extra-loc-viewid>mail_06</extra-loc-viewid>
     <extra-loc-positionid>Button</extra-loc-positionid>
-    <extra-loc-feature>ma</extra-loc-feature>
+    <extra-loc-feature>mail</extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
 </context>
--- a/ipsservices/nmpopclientplugin/nmpopclientplugin.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/nmpopclientplugin/nmpopclientplugin.pro	Mon May 03 12:23:15 2010 +0300
@@ -28,6 +28,9 @@
 
 SOURCES += src/nmpopclientplugin.cpp
 
+LIBS += -leuser
+LIBS += -llibc
+
 symbian*: { 
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = ALL \
--- a/layers.sysdef.xml	Fri Apr 16 14:51:52 2010 +0300
+++ b/layers.sysdef.xml	Mon May 03 12:23:15 2010 +0300
@@ -14,9 +14,11 @@
         <unit unitID="nmail.tools" mrp="" bldFile="&layer_real_source_path;\emailuis\nmailuiengine\tsrc\tools" name="qtdemos" proFile="tools.pro" qmakeArgs="-r" filter="nmail_tools"/>
      </module>
 <!-- Internal code widget-->
+<!-- temporary built from nmail.pro as a workaround to ServiceFW bug on service regisrtations, fix expected on wk18 MCL
       <module name="widget_tools">
         <unit unitID="widget.tools" mrp="" bldFile="&layer_real_source_path;\emailuis\nmhswidget\tsrc\nmhswidgettestapp" name="widgetestapp" proFile="nmhswidgettestapp.pro" qmakeArgs="-r" filter="widget_tools"/>
      </module>
+-->     
     </layer>
   </systemModel>
 </SystemDefinition>
\ No newline at end of file
--- a/nmail.pro	Fri Apr 16 14:51:52 2010 +0300
+++ b/nmail.pro	Mon May 03 12:23:15 2010 +0300
@@ -45,7 +45,10 @@
         emailuis/nmframeworkadapter \
         emailservices/nmclientapi \
         emailservices/nmailagent \
-        email_plat
+        email_plat \
+        emailservices/nmregister \
+        emailuis/nmhswidget \
+        emailuis/nmhswidget/tsrc/nmhswidgettestapp
         
     # Need to remove warnings SYSTEMINCLUDE path "\epoc32\include\mw\hb\..." not found
     system(mkdir \epoc32\include\mw\hb\hbcnf\)