homescreenpluginsrv component compiles now v5backport
authorChristian Morlok <symbian.org@christianmorlok.de>
Thu, 25 Mar 2010 09:33:14 +0100
branchv5backport
changeset 20 d2ab7c3d0c48
parent 17 c9bafd575d88
child 21 11157e26c4a7
homescreenpluginsrv component compiles now
dependencies/BTSapDomainPSKeys.h
dependencies/BTSapInternalPSKeys.h
dependencies/CommonEngineDomainCRKeys.h
dependencies/ETELEXT.H
dependencies/ET_CLSVR.H
dependencies/PSVariables.h
dependencies/RMmCustomAPI.h
dependencies/S3libs/ABLD.BAT
dependencies/S3libs/abclient.lib
dependencies/S3libs/bld.inf
dependencies/S3libs/featmgr.lib
dependencies/S3libs/liwServiceHandler.lib
dependencies/S3libs/sysversioninfo.lib
dependencies/SAT/RSatSession.h
dependencies/SAT/bld.inf
dependencies/SAT/rsatservice.h
dependencies/SAT/tsaticoninfo.h
dependencies/SATDomainPSKeys.h
dependencies/ScreensaverInternalPSKeys.h
dependencies/SettingsInternalCRKeys.h
dependencies/activebackupclient/abclient.h
dependencies/activebackupclient/bld.inf
dependencies/avkon_localised_texts_api/avkon.loc
dependencies/avkon_localised_texts_api/avkonsct.loc
dependencies/avkon_localised_texts_api/bld.inf
dependencies/avkon_localised_texts_api/platform.loc
dependencies/bld.inf
dependencies/common_platform_security_definitions/bld.inf
dependencies/common_platform_security_definitions/data_caged_locations.mk
dependencies/common_platform_security_definitions/data_caging_path_literals.hrh
dependencies/common_platform_security_definitions/data_caging_paths.hrh
dependencies/common_platform_security_definitions/data_caging_paths_for_iby.hrh
dependencies/common_platform_security_definitions/data_caging_paths_strings.hrh
dependencies/ctsydomainpskeys.h
dependencies/extended_version_info_api/bld.inf
dependencies/extended_version_info_api/sysversioninfo.h
dependencies/extended_version_info_api/sysversioninfo.inl
dependencies/liw_criteria_api/bld.inf
dependencies/liw_criteria_api/liwcommon.h
dependencies/liw_criteria_api/liwcommon.hrh
dependencies/liw_criteria_api/liwcommon.rh
dependencies/liw_generic_parameter_api/bld.inf
dependencies/liw_generic_parameter_api/liwbufferextension.h
dependencies/liw_generic_parameter_api/liwgenericparam.h
dependencies/liw_generic_parameter_api/liwgenericparam.hrh
dependencies/liw_generic_parameter_api/liwgenericparam.inl
dependencies/liw_generic_parameter_api/liwvariant.h
dependencies/liw_generic_parameter_api/liwvariant.inl
dependencies/liw_generic_parameter_api/liwvarianttype.hrh
dependencies/liwmenu.h
dependencies/liwservicehandler.h
dependencies/liwserviceifbase.h
dependencies/liwserviceifmenu.h
dependencies/platform_paths.hrh
dependencies/rtsecmgrcommondef.h
dependencies/rtsecuritymanager_client_api/bld.inf
dependencies/rtsecuritymanager_client_api/rtsecmanager.h
dependencies/rtsecuritymanager_client_api/rtsecmgrscriptsession.h
dependencies/rtsecuritymanager_client_api/rtsecmgrtrustInfo.h
dependencies/rtsecuritymanager_utility_api/bld.inf
dependencies/rtsecuritymanager_utility_api/rtsecmgrpermission.h
dependencies/rtsecuritymanager_utility_api/rtsecmgrpermissionset.h
dependencies/rtsecuritymanager_utility_api/rtsecmgrscript.h
dependencies/rtsecuritymanager_utility_api/rtsecmgrutility.h
dependencies/telinformationpskeys.h
idlefw/group/bld.inf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/BTSapDomainPSKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* 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 __BTSAP_DOMAIN_PS_KEYS_H__
+#define __BTSAP_DOMAIN_PS_KEYS_H__
+
+const TUid KPSUidBluetoothSapConnectionState = {0x10204DB1};
+ 
+/**
+* Information about the state of the BTSap connection
+*
+* Possible integer values:
+* 0 (EBTSapNotConnected) Not connected
+* 1 (EBTSapConnecting)	 Connection under negotiation
+* 2 (EBTSapConnected)	 Connected
+*
+* Default value: 0 (EBTSapNotConnected)
+*
+* (Shared data key: KSapState)
+*/
+const TUint KBTSapConnectionState = 0x00000001;
+
+// Enumeration that defines the different SAP connection states
+enum TBTSapState
+	{
+	EBTSapNotConnected = 0,
+	EBTSapConnecting   = 1,
+	EBTSapConnected	   = 2,
+	EBTSapAccepted     = 3,
+	EBTSapRejected     = 4
+	};
+
+#endif // __BTSAP_DOMAIN_PS_KEYS_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/BTSapInternalPSKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,22 @@
+/*
+* 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 __BTSAP_INTERNAL_PS_KEYS_H__
+#define __BTSAP_INTERNAL_PS_KEYS_H__
+
+#include "BTSapDomainPSKeys.h"
+
+#endif // __BTSAP_INTERNAL_PS_KEYS_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/CommonEngineDomainCRKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2004-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"
+* 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:  Domain Central Repository key definitions for
+*                CommonEngine subsystem
+*
+*/
+
+
+#ifndef COMMONENGINEDOMAINCRKEYS_H
+#define COMMONENGINEDOMAINCRKEYS_H
+
+
+// INCLUDES
+#include <e32std.h>
+
+// =============================================================================
+// General CR API for publishing CR keys needed in base services
+// =============================================================================
+
+const TUid KCRUidCommonEngineKeys = {0x1020503B};
+
+/**
+* Display Text Language, integer value
+*
+* Possible values are:
+* 0 (automatic)
+* Valid Symbian OS language code
+*
+* Default value: 0
+**/
+const TUint32  KGSDisplayTxtLang = 0x00000001;
+
+#endif // COMMONENGINEDOMAINCRKEYS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ETELEXT.H	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,144 @@
+// Copyright (c) 1997-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:
+//
+
+
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef __ETELEXT_H__
+#define __ETELEXT_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif // __E32BASE_H__
+
+//
+// TEtelDataPackageType
+// Data package description that passing between client to Server
+// specified in p[1]
+//
+enum TEtelDataPackageType
+	{
+	EIsaNull =0,
+	EIsaDesTobeSet =1,
+	EIsaDesTobeRead =2,
+	EIsaDoubleDesTobeSet =3,
+	EIsaDoubleDesTobeRead =4,
+	EIsaCancelMessage =5,
+	EIsaCancelSubSession =6,
+	EIsaNarrowAndUnicodeDoubleDesTobeSet = 7,	// narrow comes first then unicode
+	EIsaNarrowAndUnicodeDoubleDesTobeRead = 8,
+	EIsaNarrowDesToSetAndGet = 9,
+	EIsaNarrowDesToGetUnicodeDesToSet = 10,
+	EIsaUnicodeDesToSetAndGet = 11,
+	EIsaUnicodeDesToGetNarrowDesToSet = 12,
+
+	EIsaUnicodeDesTobeSet =0x0101,
+	EIsaUnicodeDesTobeRead = 0x0102,
+	EIsaUnicodeDoubleDesTobeSet =0x0103,
+	EIsaUnicodeDoubleDesTobeRead =0x0104,
+
+	EIsPriorityClientReqWithNull =0x1000,
+	EIsPriorityClientReqWithaDesTobeSet =0x1001,
+	EIsPriorityClientReqWithaDesTobeRead =0x1002,
+	EIsPriorityClientReqWithaDoubleDesTobeSet =0x1003,
+	EIsPriorityClientReqWithaDoubleDesTobeRead =0x1004,
+	EIsPriorityClientReqWithaNarrowAndUnicodeDoubleDesTobeSet = 0x1007,
+	EIsPriorityClientReqWithaNarrowAndUnicodeDoubleDesTobeRead = 0x1008,
+	EIsPriorityClientReqWithaNarrowDesToSetAndGet = 0x1009,
+	EIsPriorityClientReqWithaNarrowDesToGetUnicodeDesToSet  = 0x1010,
+	EIsPriorityClientReqWithaUnicodeDesToSetAndGet = 0x1011,
+	EIsPriorityClientReqWithaDesToGetNarrowDesToSet = 0x1012,
+
+	EIsPriorityClientReqWithaUnicodeDesTobeSet =0x1101,
+	EIsPriorityClientReqWithaUnicodeDesTobeRead = 0x1102,
+	EIsPriorityClientReqWithaUnicodeDoubleDesTobeSet = 0x1103,
+	EIsPriorityClientReqWithaUnicodeDoubleDesTobeRead = 0x1104
+	};
+
+const TInt KUnicodeReq			=0x0100;
+const TInt KPriorityClientReq	=0x1000;
+const TInt KEmergencyClientReq	=0x1000;
+
+/**
+ETel Panics
+*/
+enum TEtelPanic
+	{
+	EEtelPanicBadPhoneHandle,      // 0
+	EEtelPanicBadDescriptor,       // 1
+	EEtelPanicInvalidRequestType,  // 2
+	EEtelPanicRequestAsyncTwice,   // 3
+	EEtelPanicBadSubSessionHandle, // 4
+	EEtelPanicZeroLengthDes,       // 5
+	EEtelPanicDesLengthNegative,   // 6
+	EEtelPanicNullPtrArray,        // 7
+	EEtelPanicNullHandle,          // 8
+	EEtelPanicHandleNotOpen,       // 9
+	EEtelPanicIndexOutOfRange,     // 10
+	EEtelPanicHandleNotClosed,     // 11
+	EEtelPanicBadCallGroupType,    // 12
+	EEtelPanicBadName,             // 13
+	EEtelPanicExceededAllowedNoOfEmergencyClientSessions //14
+	};
+
+/**
+ETel Faults
+*/
+enum TEtelFault
+	{
+	EEtelFaultMainSchedulerError,                 // 0
+	EEtelFaultSvrCreateServer,                    // 1
+	EEtelFaultSvrStartServer,                     // 2
+	EEtelFaultCommServerNotRunning,               // 3
+	EEtelFaultCreateTrapCleanup,                  // 4
+	EEtelFaultCompletionReceivedWithNoReqPackage, // 5
+	EEtelFaultWaitingReqLostCObject,              // 6
+	EEtelFaultCompleteReqWithoutReqEntry,         // 7
+	EETelFaultRequestWithoutBuffer,               // 8
+	EEtelFaultCallTsyServiceWithoutReqPackage,    // 9
+	EEtelFaultMessageTypeCorrupted,               // 10
+	EEtelFaultNotRecognisedTsyHandle,             // 11
+	EEtelFaultInvalidIpcForCancel,                // 12
+	EEtelFaultCanNotRelinquishOwnership,          // 13
+	EEtelFaultBadTelSessionPointer,               // 14
+	EEtelFaultBadSubSessionHandle,                // 15
+	EEtelFaultBadPhoneFactoryPointer,             // 16
+	EEtelFaultBadPhonePointer,                    // 17
+	EEtelFaultBadTelObjectPointer,                // 18
+	EEtelFaultDes1DoesNotExist,                   // 19
+	EEtelFaultDes2DoesNotExist,                   // 20
+	EEtelFaultNegativeFlowcontrolCount,           // 21
+	EEtelFaultNegativeSessionCount,               // 22
+	EEtelFaultNegativeActiveReqCount,             // 23
+	EEtelFaultBadMessageType,                     // 24
+	EEtelFaultClientNotPostedNotification,        // 25
+	EEtelFaultUpdatingBufferOfDifferentIpc,       // 26
+	EEtelFaultUpdatingIdenticalBuffer,            // 27
+	EEtelFaultMaxDesLengthNegative,               // 28
+	EEtelFaultPreviousReqNonNull,                 // 29
+	EEtelFaultNullBooleanArrayPointer,            // 30
+	EEtelFaultCancelErrorWithoutCancelled,        // 31
+	};
+
+#define ETEL_SERVER_NAME	  _L("!EtelServer")  // EKA2 Server names need a "!" prepended
+
+#define ETEL_SERVER_START_SEQUENCE 5
+
+#endif // __ETELEXT_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ET_CLSVR.H	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,243 @@
+// Copyright (c) 1997-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:
+// This version of the file contains the reordered version of the IPC table for the purpose
+// of having a more efficient policy table as part of the platform security framework.
+// Previously IPCs were ordered by functional area and now they are ordered by the capability
+// associated with them.
+// All IPCs policed with SIDs should be added here.
+// 
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#if !defined (__ET_CLISVR_H__)
+#define __ET_CLISVR_H__
+
+#define IPC_ETEL_CORE   (0)
+
+/**
+Used by extension APIs to offset their cancel IPC values
+*/
+#define EMobileCancelOffset					500
+
+//
+// None
+//
+enum
+	{
+	EEtelOpenFromSession = 0,                                    // 0
+	EEtelOpenFromSubSession,                                     // 1
+	EEtelOpenByNameFromSession,                                  // 2
+	EEtelOpenByNameFromSubSession,                               // 3
+	EEtelClose,                                                  // 4
+	EEtelCancelSubSession,                                       // 5
+	EETelLineCapsChangeNotification,                             // 6
+	EETelLineCapsChangeNotificationCancel,                       // 7
+	EETelPhoneCapsChangeNotification,                            // 8
+	EETelPhoneCapsChangeNotificationCancel,                      // 9
+	EEtelCallCapsChangeNotification,                             // 10
+	EEtelCallCapsChangeNotificationCancel,                       // 11
+	EEtelCallGetBearerServiceInfo,                               // 12
+	EEtelCallGetCallDuration,                                    // 13
+	EEtelCallGetCallParams,                                      // 14
+	EEtelCallGetCaps,                                            // 15
+	EEtelCallGetFaxSettings,                                     // 16
+	EEtelCallGetInfo,                                            // 17
+	EEtelCallGetOwnershipStatus,                                 // 18
+	EEtelCallGetStatus,                                          // 19
+	EEtelCallNotifyDurationChange,                               // 20
+	EEtelCallNotifyDurationChangeCancel,                         // 21
+	EEtelCallNotifyHookChange,                                   // 22
+	EEtelCallNotifyHookChangeCancel,                             // 23
+	EEtelCallNotifyStatusChange,                                 // 24
+	EEtelCallNotifyStatusChangeCancel,                           // 25
+	EEtelCallReferenceCount,                                     // 26
+	EEtelDbgCheckHeap,                                           // 27
+	EEtelDbgDoDumpDebugInfo,                                     // 28
+	EEtelDbgFailNext,                                            // 29
+	EEtelDbgMarkEnd,                                             // 30
+	EEtelDbgMarkHeap,                                            // 31
+	EEtelDbgSetDebugPrintMask,                                   // 32
+	EEtelFaxWaitForEndOfPage,                                    // 33
+	EEtelLineEnumerateCall,                                      // 34
+	EEtelLineGetCallInfo,                                        // 35
+	EEtelLineGetCaps,                                            // 36
+	EEtelLineGetHookStatus,                                      // 37
+	EEtelLineGetInfo,                                            // 38
+	EEtelLineGetStatus,                                          // 39
+	EEtelLineNotifyCallAdded,                                    // 40
+	EEtelLineNotifyCallAddedCancel,                              // 41
+	EEtelLineNotifyHookChange,                                   // 42
+	EEtelLineNotifyHookChangeCancel,                             // 43
+	EEtelLineNotifyStatusChange,                                 // 44
+	EEtelLineNotifyStatusChangeCancel,                           // 45
+	EEtelPhoneEnumerateLines,                                    // 46
+	EEtelPhoneGetCaps,                                           // 47
+	EEtelPhoneGetInfo,                                           // 48
+	EEtelPhoneGetLineInfo,                                       // 49
+	EEtelPhoneGetStatus,                                         // 50
+	EEtelPhoneNotifyModemDetected,                               // 51
+	EEtelPhoneNotifyModemDetectedCancel,                         // 52
+	EEtelServerClosePhoneModule,                                 // 53
+	EEtelServerEnumeratePhones,                                  // 54
+	EEtelServerGetTsyName,                                       // 55
+	EEtelServerGetTsyVersionNo,                                  // 56
+	EEtelServerLoadPhoneModule,                                  // 57
+	EEtelServerOpen,                                             // 58
+	EEtelServerPhoneInfoByIndex,                                 // 59
+	EEtelServerQueryTsyFunctionality,                            // 60
+	EEtelServerSetExtendedErrorGranularity                       // 61
+	};
+
+//
+// NetworkServices
+//
+enum
+	{
+	EEtelAdoptFaxSharedHeaderFile = 62,                          // 62
+	EEtelCallAcquireOwnership,                                   // 63
+	EEtelCallAcquireOwnershipCancel,                             // 64
+	EEtelCallConnect,                                            // 65
+	EEtelCallConnectCancel,                                      // 66
+	EEtelCallHangUp,                                             // 67
+	EEtelCallHangUpCancel,                                       // 68
+	EEtelCallTransferOwnership,                                  // 69
+	EEtelFaxTerminateFaxSession,                                 // 70
+	EEtelLineNotifyIncomingCall,                                 // 71
+	EEtelLineNotifyIncomingCallCancel                            // 72
+	};
+
+//
+// WriteDeviceData
+//
+enum
+	{
+	EEtelCallSetFaxSettings = 73,                                // 73
+	};
+
+//
+// NetworkControl
+//
+enum
+	{
+	EEtelGlobalKernelObjectHandle = 74,                          // 74
+	};
+
+//
+// None
+//
+enum
+	{
+	EEtelPhoneInitialise = 75,                                   // 75
+	EEtelPhoneInitialiseCancel,                                  // 76
+	};
+
+//
+// NetworkControl + SID
+//
+enum
+	{
+	EEtelServerSetPriorityClient = 77,                           // 77
+	};
+
+//
+// NetworkControl NetworkServices
+//
+enum
+	{
+	EEtelCallAnswer = 78,                                        // 78
+	EEtelCallAnswerCancel,                                       // 79
+	EEtelCallDial,                                               // 80
+	EEtelCallDialCancel,                                         // 81
+	EEtelCallLoanDataPort,                                       // 82
+	EEtelCallLoanDataPortCancel,                                 // 83
+	EEtelCallRecoverDataPort                                     // 84
+	};
+
+//
+// NetworkServices ReadUserData
+//
+enum
+	{
+	EEtelFaxRead = 85,                                           // 85
+	};
+
+//
+// NetworkServices WriteUserData
+//
+enum
+	{
+	EEtelFaxWrite = 86,                                          // 86
+	};
+
+//
+// None
+//
+enum
+	{
+	EEtelDbgFailNextAvail = 87,										//87
+	};
+
+//
+// WriteDeviceData
+//
+enum
+	{
+	EETelPhoneSetEmergencyClient = 88,							 // 88
+	};
+
+//
+// SID
+//
+enum
+	{
+	EEtelOpenFromSubSessionLcs = 89,                           // 89
+	};
+
+//
+// NetworkControl + SID
+//
+enum
+	{
+	EEtelServerSetPriorityClientV2 = 90,						 // 90
+	};
+
+
+//
+// NetworkServices NetworkControl SID
+//
+enum
+	{
+	EMobileCallDialCallControl = 91							// 91
+	};
+
+//
+// None
+//
+enum
+	{
+	EEtelFlushInterfaceQueue = 92							// 92
+	};
+
+enum
+	{
+	EMobileCallDialCallControlCancel = EMobileCallDialCallControl + EMobileCancelOffset	// 591
+	};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/PSVariables.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2007 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:  Event enumerations and UIDs of Publish And Subscribe. PubSub
+*                clients can include this file and listen to these events. 
+*                These events will be routed through Publish And Subscribe.
+*
+*/
+
+
+#ifndef __PSVARIABLES_H__
+#define __PSVARIABLES_H__
+
+// INCLUDES
+#include <e32cmn.h>
+
+// CONSTANTS
+
+/**
+ * First value of each enumeration
+ */
+const TInt KEnumerationFirstValue           = 0;
+
+/**
+ * GPRS availability. Indicates wheter GPRS is available or not
+ *
+ * Possible values:
+ * - EPSGprsAvailable            GPRS network is available
+ * - EPSGprsNotAvailable         GPRS netwotk is not available
+ * - EPSGprsAvailabilityUnknown  GPRS network availability is not known
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ *     {
+ *     RProperty::Attach( KUidSystemCategory, KPSUidGprsAvailabilityValue );
+ *     RProperty::Subscribe( iStatus ); // From CActive
+ *     SetActive();
+ *     }
+ *
+ * void MyClass::RunL()
+ *     {
+ *     TInt gprsAvailability( EPSGprsAvailabilityUninitialized );
+ *     RProperty::Get( KUidSystemCategory, 
+ *                     KPSUidGprsAvailabilityValue, 
+ *                     gprsAvailability );
+ *     //gprsAvailability contains current value of GPRS network availability
+ *     }
+ * @endcode
+ */
+const TInt KPSUidGprsAvailabilityValue      = 0x100052DA;
+const TUid KPSUidGprsAvailability           = {KPSUidGprsAvailabilityValue};
+
+enum EPSGprsAvailability
+    {
+    EPSGprsAvailabilityUninitialized        = KEnumerationFirstValue,
+    EPSGprsAvailable,
+    EPSGprsNotAvailable,
+    EPSGprsAvailabilityUnknown
+    };
+
+/**
+ * Current GPRS connection status. Indicates current status of GPRS network
+ * 
+ * Possible values:
+ * - EPSGprsUnattached             Not attached to GPRS network
+ * - EPSGprsAttach                 Attached to GPRS network
+ * - EPSGprsContextActive          One context active on GPRS network
+ * - EPSGprsSuspend                GPRS network suspended but not closed
+ * - EPSGprsContextActivating      GPRS context activating but not yet active
+ * - EPSGprsMultibleContextActive  Multiple active contexts on GPRS network
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ *     {
+ *     RProperty::Attach( KUidSystemCategory, KPSUidGprsStatusValue );
+ *     RProperty::Subscribe( iStatus ); // From CActive
+ *     SetActive();
+ *     }
+ *
+ * void MyClass::RunL()
+ *     {
+ *     TInt gprsStatus( EPSGprsStatusUninitialized );
+ *     RProperty::Get( KUidSystemCategory, 
+ *                     KPSUidGprsStatusValue, 
+ *                     gprsStatus );
+ *     //gprsStatus contains current value of GPRS network status
+ *     }
+ * @endcode
+ */
+const TInt KPSUidGprsStatusValue            = 0x100052DB;
+const TUid KPSUidGprsStatus                 = {KPSUidGprsStatusValue};
+enum EPSGprsStatus
+    {
+    EPSGprsStatusUninitialized              = KEnumerationFirstValue,
+    EPSGprsUnattached,
+    EPSGprsAttach,
+    EPSGprsContextActive,
+    EPSGprsSuspend,
+    EPSGprsContextActivating,
+    EPSGprsMultibleContextActive
+    };
+
+/**
+ * Current WCDMA connection status. Indicates current status of WCDMA network
+ * 
+ * Possible values:
+ * - EPSWcdmaUnattached             Not attached to WCDMA network
+ * - EPSWcdmaAttach                 Attached to WCDMA network
+ * - EPSWcdmaContextActive          One context active on WCDMA network
+ * - EPSWcdmaSuspend                WCDMA network suspended but not closed
+ * - EPSWcdmaContextActivating      WCDMA context activating but not active
+ * - EPSWcdmaMultibleContextActive  Multiple active contexts on WCDMA network
+ *
+ * Usage for requesting event notifications:
+ * @code
+ * void MyClass::RequestNotifications()
+ *     {
+ *     RProperty::Attach( KUidSystemCategory, KPSUidWcdmaStatusValue );
+ *     RProperty::Subscribe( iStatus ); // From CActive
+ *     SetActive();
+ *     }
+ *
+ * void MyClass::RunL()
+ *     {
+ *     TInt wcdmaStatus( EPSWcdmaStatusUninitialized );
+ *     RProperty::Get( KUidSystemCategory, 
+ *                     KPSUidWcdmaStatusValue, 
+ *                     wcdmaStatus );
+ *     //wcdmaStatus contains current value of WCDMA network status
+ *     }
+ * @endcode
+ */
+const TInt KPSUidWcdmaStatusValue           = 0x100052FF;
+const TUid KPSUidWcdmaStatus                = {KPSUidWcdmaStatusValue};
+enum EPSWcdmaStatus
+    {
+    EPSWcdmaStatusUninitialized             = KEnumerationFirstValue,
+    EPSWcdmaUnattached,
+    EPSWcdmaAttach,
+    EPSWcdmaContextActive,
+    EPSWcdmaSuspend,
+    EPSWcdmaContextActivating,
+    EPSWcdmaMultipleContextActive
+    };
+
+#endif // __PSVARIABLES_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/RMmCustomAPI.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2734 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @deprecated
+*/
+#ifndef RMMCUSTOMAPI_H
+#define RMMCUSTOMAPI_H
+
+//  INCLUDES
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <etelpckt.h>
+
+// CONSTANTS
+const TInt KIpcCustomExt = 1000000;
+const TInt KIpcCustomMaxLimi = 1000299;
+const TInt KIpcCustomAPIExtensionExt = 1000450;
+
+_LIT(KCustomAPIName,"CUSTOMAPI");
+_LIT(KTerminateAllCalls,"ALL_CALLS");
+const TInt KSimLockMaxPasswordSize = 15;
+const TInt KSimCbTopicNameLength = 20;
+const TInt KSubAddressSize = 20;
+const TInt KBearerCapabilitySize = 14;
+
+// alpha tag length is 124
+const TInt KMaxOperatorNameLength = 124;
+// max length of operator length
+const TInt KMaxOperatorLogoLength = 6405;
+
+const TUint16 KFlexibleNameSeparator = 0x007C;  // '|'
+const TUint8 KFlexibleLongNameMaxLength = 30;
+const TUint8 KFlexibleShortNameMaxLength = 20;
+
+// Sim file definitions
+const TUint8 KSimFilePathLength = 8;
+const TUint16 KSimFileMaxLength = 0xFFFF;
+
+// Viag HomeZone setting flags
+const TUint8 KUHziUeActive = 0x00001;
+const TUint8 HCbHziUeActive = 0x00002;
+
+// ADPU buffer maximum length 258 according to
+// ISI ADPU server description
+typedef TBuf8<258> TApduBuffer;
+
+// PDP context activation failure in case of APN not in EFACL
+const TInt KErrPacketDataTsyInvalidAPN = -6001;
+
+// Cell info constant
+const TInt KMaxTimeSlotIscpAmount = 1; //14; Changed from 14 to 1. Memory problem!!
+const TInt KMaxCellMeasuredResults = 32;
+const TInt KMaxNetworkMeasureReports = 8;
+const TInt KMaxNmrAmount = 15;
+
+// DATA TYPES
+/** Enumerates IPC values used by Custom API. */
+enum TCustomIPC
+    {
+    /** Notify ss additional info */
+    ECustomSsAdditionalInfoNotificationIPC = KIpcCustomExt,		//1000000
+    /** Notify ss request complete */
+    ECustomNotifySsRequestCompleteIPC,		//1000001
+    /** Cancel USSD session */
+    ECustomCancelUssdSessionIPC,			//1000002
+    /** Start SIM CB topic browsing */
+    ECustomStartSimCbTopicBrowsingIPC,		//1000003
+    /** Get next SIM CB topic */
+	ECustomGetNextSimCbTopicIPC,			//1000004
+    /** Delete SIM DB topic */
+    ECustomDeleteSimCbTopicIPC,				//1000005
+    /** Read SIM File */
+    ECustomReadSimFileIPC,					//1000006
+    /** Get wlan sim authentication data */
+    ECustomGetSimAuthenticationDataIPC,		//1000007
+    /** Set SIM SMS to "read" */
+    ECustomSetSimMessageStatusReadIPC,		//1000008
+    /** Notify Dtmf event */
+    ECustomNotifyDtmfEventIPC,				//1000009
+    /** Get Diagnostic Octets */
+    ECustomGetDiagnosticOctetsIPC,			//1000010
+    /** Set Als Blocked */
+    ECustomSetAlsBlockedIPC,				//1000011
+    /** Get Als Blocked */
+    ECustomGetAlsBlockedIPC,				//1000012
+    /** Check Als Pp Support */
+    ECustomCheckAlsPpSupportIPC,			//1000013
+    /** Remote Alerting Tone Status */
+    ECustomGetRemoteAlertingToneStatusIPC,	//1000014
+    /** Call Origin */
+    ECustomCallOriginIPC,					//1000015
+    /** Notify Als Blocked Change */
+    ECustomNotifyAlsBlockedChangedIPC,		//1000016
+    /** Terminate a Call */
+    ECustomTerminateCallIPC,				//1000017
+    /** Clear call blacklist */
+    ECustomClearCallBlackListIPC,			//1000018
+    /** Read HSxPA Status */
+    ECustomReadHSxPAStatusIPC,				//1000019
+    /** Write HSxPA Status */    
+    ECustomWriteHSxPAStatusIPC,				//1000020
+    /** Notify HSxPA Status change */    
+    ECustomNotifyHSxPAStatusIPC,			//1000021
+    /** Get cell(s) info */
+    ECustomGetCellInfoIPC,					//1000022
+    /** Notify cell(s) info change */
+    ECustomNotifyCellInfoChangeIPC,			//1000023
+    /** Activate SIM Lock */
+    ECustomSimLockActivateIPC,				//1000024
+    /** Deactivate SIM Lock */
+    ECustomSimLockDeActivateIPC,			//1000025
+    /** Read VIAG Home Zone Parameters */
+    EReadViagHomeZoneParamsIPC,				//1000026
+    /** Read VIAG Home Zone Cache */
+    EReadViagHomeZoneCacheIPC,				//1000027
+    /** Write VIAG Home Zone Cache */
+    EWriteViagHomeZoneCacheIPC,				//1000028
+    /** Get ciphering information */
+    ECustomGetCipheringInfoIPC,				//1000029
+    /** Notify ciphering information */
+    ECustomNotifyCipheringInfoChangeIPC,	//1000030
+    /** Notify NSPS status */
+    ECustomNotifyNSPSStatusIPC,				//1000031
+    /** Wake net from NSPS */
+    ECustomNetWakeupIPC,					//1000032
+    /** Get network provider name */
+    ECustomGetNetworkProviderNameIPC,		//1000033
+    /** Get operator name */
+    ECustomGetOperatorNameIPC,				//1000034
+    /** Get programmable operator logo */
+    ECustomGetProgrammableOperatorLogoIPC,	//1000035
+    /** Reset the net server */
+    ECustomResetNetServerIPC,				//1000036
+    /** Notify programmable operator logo change */
+    ECustomNotifyProgrammableOperatorLogoChangeIPC,		//1000037
+    /** Notify network connection failure */
+    ECustomNotifyNetworkConnectionFailureIPC,			//1000038
+    /** Get Air time duration */
+    ECustomGetAirTimeDurationIPC,			//1000039
+    /** Notify phonebook cache ready */
+    ECustomNotifyPndCacheReadyIPC,			//1000040
+    /** Get phonebook cache status */
+    ECustomGetPndCacheStatusIPC,			//1000041
+    /** Notify SS network event */
+    ECustomNotifySsNetworkEventIPC,			//1000042
+    /** Check two digit dial support */
+    ECustomCheckTwoDigitDialSupportIPC,		//1000043
+    /** Send APDU request */
+    ECustomSendAPDUReqIPC,					//1000044
+    /** Get the life timer's info */
+    ECustomGetLifeTimeIPC,					//1000045
+    /** Power SIM on */
+    ECustomPowerSimOnIPC,					//1000046
+    /** Power SIM off */
+    ECustomPowerSimOffIPC,					//1000047
+    /** Perform SIM warm reset */
+    ECustomSimWarmResetIPC,					//1000048
+    /** Get Answer To Reset */
+    ECustomGetATRIPC,						//1000049
+    /** Send APDU */
+    ECustomSendAPDUReqV2IPC,				//1000050
+    /** Get SIM card reader status */
+    ECustomGetSimCardReaderStatusIPC,		//1000051
+    /** Notify SIM card status */
+    ECustomNotifySimCardStatusIPC,			//1000052
+    /** Set Drive Mode status */
+    ECustomSetDriveModeIPC,					//1000053
+    /** Check if security code is blocked or not */
+    ECustomIsBlockedIPC,					//1000054
+    /** Check security code */
+    ECustomCheckSecurityCodeIPC,			//1000055
+    /** Check emergency number */
+    ECustomCheckEmergencyNumberIPC,			//1000056
+    /** SAT refresh complete notification */
+    ECustomSatRefreshCompleteNotificationIPC,	//1000057
+    /** Disable phone lock */
+    ECustomDisablePhoneLockIPC,					//1000058
+    /** Get currently active PIN */
+    ECustomGetActivePinIPC,						//1000059
+    /** Release CommDB file */
+    ECustomReleaseFileIPC,						//1000060
+    /** Restart reading CommDB */
+    ECustomRestartFileIPC,						//1000061
+    /** Notify GPRS connection change */
+    ECustomNotifyEGprsInfoChange,				//1000062
+    /** Get GPRS connection information */
+    ECustomGetEGprsInfo,						//1000063
+    /** Get phonebook 3G info */
+    EGet3GPBInfoIPC,							//1000064
+    /** Get system network modes */
+    ECustomGetSystemNetworkModesIPC,			//1000065
+    /** Set system network mode */
+    ECustomSetSystemNetworkModeIPC,				//1000066
+    /** Get current system network modes */
+    ECustomGetCurrentSystemNetworkModesIPC,		//1000067
+    /** Write WCDMA HomeZone */
+    EWriteViagHomeZoneUHZIUESettingsIPC,		//1000068
+    /** SetAlwaysOn Mode */
+    ECustomSetAlwaysOnMode,						//1000069
+    /** Notify Rau event */
+    ECustomNotifyRauEventIPC,					//1000070
+    /** Get Call forwarding info */
+    ECustomGetIccCallForwardingStatusIPC,		//1000071
+    /** Notify call forwarding info change */
+    ECustomNotifyIccCallForwardingStatusChangeIPC,	//1000072
+    /** Get 3G radio frequency band*/
+    ECustomGetBandSelectionIPC,						//1000073
+    /** Set 3G radio frequency band*/
+    ECustomSetBandSelectionIPC,						//1000074
+    /** Set 3G radio frequency band*/    
+    ECustomGetServiceTableSupportbyApplicationIPC,	//1000075
+    /* Notify remote alerting tone status change IPC */
+    ECustomNotifyRemoteAlertingToneStatusChangeIPC, //1000076
+    /** Maximum IPC enumeration value */
+    ECustomMaxIpcLimit = KIpcCustomMaxLimi
+    };
+
+// FORWARD DECLARATIONS
+class CMmCustomPtrHolder;
+
+// CLASS DECLARATION
+
+/**
+ * RMmCustomAPI contains multimode API's vendor specific functionality.
+ * RMmCustomAPI is a subsession extension i.e. it derives
+ * from RtelSubSessionBase class.
+ *
+ * Notice that Custom TSY is able to handle only one instance of each
+ * Custom API Set-method call at a time. Overlapping Set-method calls occurs
+ * if same Set-method is called from an other instance of  RMmCustomAPI
+ * object. Through one RMmCustomAPI object overlapping calls are not allowed
+ * - trying this will panic Etel Server. For each overlapping request to the
+ * client is returned error code KErrServerBusy either as a return value in
+ * case of synchronous call or in a variable of type TRequestStatus in case of
+ * an asynchronous call. This rule applies also in a situation where previous
+ * identical request has been cancelled by client but the triggered operation
+ * on DOS side has not been completed yet.
+ *
+ * On the other hand Custom TSY is able to handle several instances of each
+ * Get-method call at a time. Again overlapping Get-method call can be
+ * activated only from an other instance of  RMmCustomAPI object.
+ *
+ * Consider carefully consequences and implications of request cancellations.
+ * If a request has triggered an operation on DOS side, the subsequent
+ * calcellation of the request will not undo the operation on DOS side. It is
+ * the responsibility of the Custom API's client to undo the operation if
+ * necessary. Cancel request completes only when awaited DOS side response
+ * arrives. Then if it is an OK-response, the request is completed normally
+ * with error code KErrNone. . Or if the response is a FAILURE, the request is
+ * completed with error code KErrCancel.
+ *
+ * APDU functionality:
+ * Etel Server and Custom TSY are able to handle multiple SendAPDUReq calls
+ * simultaneously.
+ * However each RMmCustoAPI instance can have only one request active at
+ * a time.
+ *
+ * Packet data related functionality:
+ * Custom TSY implements functionality that is not supported by the packetAPI.
+ *
+ * Call realted functionality:
+ * Custom TSY implements functionality that is not supported by the
+ * MM ETEL API.
+ *
+ * @publishedPartner
+ * @deprecated
+ */
+class RMmCustomAPI : public RTelSubSessionBase
+    {
+    public:
+
+    /** Enumerates the Custom API version number.*/
+    enum TMultimodeETelCustomV1Api
+        {
+        /** Version of Custom API extension */
+        KETelCustomExtMultimodeV1=10000,
+        /** Version of TTCustomCallParams */
+        KETelCustomExtCustomCallParamsV3
+        };
+
+    /** Defines SS statuses to be used */
+    enum TSsStatus
+        {
+        /** Active status */
+        KSsStatusGsmActive = 0x01,
+        /** Registered status */
+        KSsStatusGsmRegistered = 0x02,
+        /** Provisioned status */
+        KSsStatusGsmProvisioned = 0x04,
+        /** Quiescent status */
+        KSsStatusGsmQuiescent = 0x08,
+        /** Error status */
+        KSsStatusReturnError = 0xFFFF,
+        /** Network failure */
+        KSsStatusNetworkFailure = 0xFFFE
+        };
+
+
+    /**
+     * Maximum length of parameter data is 16 for Random parameter, SRES, AUTN,
+     * CK, IK and AUTS
+     */
+    enum { KMaxParametersLength = 16 };
+    /** Max length of ChipheringKey is 3 */
+    enum { KMaxKCLength = 3 };
+    /** Max length of RES is 4 */
+    enum { KMaxRESLength = 4 };
+    
+    //Max length of iBTid, iKeyLifeTime, iNafId, iImpi, iMikey, iMtkSalt
+    enum { KMaxAuthenticationParameterLength = 255 };
+   
+    // KMaxMikeyLength enum for maximum MIKEY protocol data length
+	enum { KMaxMikeyLength = 255 };
+
+	// KMaxKeyDomainIdLength enum for maximum key domain id length
+	enum{ KMaxKeyDomainIdLength = 3 };
+
+	// KMaxKeyGroupIdLength enum for maximum key group id length
+	enum { KMaxKeyGroupIdLength = 2 };
+	
+	
+    /** Parameter buffer */
+    typedef TBuf8< KMaxParametersLength > TParameter;
+	
+	// GBA
+    typedef TBuf8< KMaxAuthenticationParameterLength > TAuthenticationParameter;
+    
+	// TMikey datatype to be used for MIKEY data
+    typedef TBuf8< KMaxMikeyLength > TMikey;
+	
+	// TKeyDomainId datatype to be used for key domain id information	
+    typedef TBuf8< KMaxKeyDomainIdLength > TKeyDomainId;
+	
+	// TKeyGroupId datatype to be used for key group id information
+    typedef TBuf8< KMaxKeyGroupIdLength > TKeyGroupId;
+
+    // Datatype for parental rating data information
+    typedef TBuf8< KMaxKeyGroupIdLength > TParentalRating;
+
+    // Datatype for parental control operation information
+    typedef TBuf8< KMaxKeyDomainIdLength > TParentalControl; 
+    /**
+     * Base class for TSimAuthenticationEapSim and
+     * TSimAuthenticationEapAka 
+     */
+    class TSimAuthenticationBase
+    {
+    public:
+
+    /** Possible values for the authentication method */
+    enum
+        {
+        /** EAP-SIM authentication method */
+        EEapSim = 0x01,
+        /** EAP-AKA authentication method */
+        EEapAka = 0x02,
+        EGbaBootstrap = 0x03,
+        EGbaBootstrapUpdate = 0x04, 
+        EGbaBootstrapNafDerivation = 0x05, 
+        EMgvMtkGeneration = 0x06, 
+        EMgvMskDeletion = 0x07, 
+        EMgvMskUpdate = 0x08 
+        };
+
+    /** Gets the value of iExtensionId 
+     * @return iExtensionId */
+    inline TInt ExtensionId() { return iExtensionId; };
+    protected:
+        TInt iExtensionId;
+    };
+
+// Class for holding GBA Bootstrap parameters
+    class TSimAuthenticationGbaBootstrap : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationGbaBootstrap ();
+
+        public:
+
+            // Random parameters from client
+            TParameter iRandomParameters;
+            // AUTN parameters from client
+            TParameter iAUTN;
+            // RES to client
+            TParameter iRES;
+            // AUTS to client
+            TParameter iAUTS;
+        };
+    typedef TPckg< TSimAuthenticationGbaBootstrap > TGbaBootstrapDataPckg;
+
+
+// Class for holding GBA Bootstrap updating parameters
+    class TSimAuthenticationGbaBootstrapUpdate : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationGbaBootstrapUpdate ();
+
+        public:
+
+            // B-TID from client 
+            TAuthenticationParameter iBTid;
+            // Key lifetime from client
+            TAuthenticationParameter iKeyLifeTime;
+            // Random parameters to client
+            TParameter iRandomParameters;
+        };
+    typedef TPckg< TSimAuthenticationGbaBootstrapUpdate > TGbaBootstrapUpdateDataPckg;
+
+
+// Class for holding GBA NAF Derivation parameters
+    class TSimAuthenticationGbaNafDerivation : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationGbaNafDerivation ();
+
+        public:
+
+            // Naf_id from client 
+            TAuthenticationParameter iNafId;
+            // Impi from client 
+            TAuthenticationParameter iImpi;
+            // Ks_ext_NAF to client 
+            TBuf8 < 32 > iKsExtNaf;
+        
+        };
+    typedef TPckg< TSimAuthenticationGbaNafDerivation > TGbaNafDerivationDataPckg;
+
+      
+// Class for holding MGV MSK update parameters
+    class TSimAuthenticationMgvMskUpdate : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationMgvMskUpdate ();
+
+        public:
+
+            // MIKEY to client 
+            TMikey iMikey;
+            // OMA BCAST management data object to client
+            TParameter iBCASTManagement;
+            // OMA BCAST SPE parental rating data operation to client
+            TParentalRating iParentalRating;
+            // Security Policy Extension to client
+            TParameter iSecurityPolicyExt;
+        
+        };
+     typedef TPckg< TSimAuthenticationMgvMskUpdate > TSimAuthenticationMgvMskUpdatePckg;
+           
+      
+// Class for holding MGV MTK generation parameters
+    class TSimAuthenticationMgvMtkGeneration : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationMgvMtkGeneration ();
+
+        public:
+
+            // MIKEY from client 
+            TMikey iMikey;
+            // MTK salt to client 
+            TMikey iMtkSalt;
+        
+            // Smartcard support for MobileTV
+            // OMA BCAST management data object to client
+            TParameter iBCASTManagement;
+            // OMA BCAST SPE parental control operation to client
+            TParentalControl iParentalControl;
+            // TEK (Traffic Encryption Key) to client
+            TParameter iTrafficEncryptionKey;   
+        };
+     typedef TPckg< TSimAuthenticationMgvMtkGeneration > TMgvMtkGenerationDataPckg;
+
+
+// Class for holding MGV MSK deletion parameters
+    class TSimAuthenticationMgvMskDeletion : public TSimAuthenticationBase
+        {
+        public:
+
+            IMPORT_C TSimAuthenticationMgvMskDeletion ();
+
+        public:
+
+            // Key domain Id from client  
+            TKeyDomainId iKeyDomainId;
+            // Key Group Id from client 
+            TKeyGroupId iKeyGroupIdPart;
+        
+        };
+      typedef TPckg< TSimAuthenticationMgvMskDeletion > TMgvMskDeletionDataPckg;
+
+      
+    /**
+    * Possible values for Multiple Subscriber Profile IDs
+    */
+    enum TMultipleSubscriberProfileID
+        {
+        /** Multiple Subscriber Profile ID 1 */
+        KProfileIdentityOne = 0x01,
+        /** Multiple Subscriber Profile ID 2 */
+        KProfileIdentityTwo = 0x02,
+        /** Multiple Subscriber Profile ID 3 */        
+        KProfileIdentityThree = 0x03,
+        /** Multiple Subscriber Profile ID 4 */        
+        KProfileIdentityFour = 0x04,
+        };
+
+    /** Class for holding Call Forwarding parameters */
+    class TCFIndicators: public RMobilePhone::TMobilePhoneCFUIndicatorV3
+        {
+        public:
+        	/** Default constructor */
+            IMPORT_C TCFIndicators();
+
+        public:
+
+	        /** CFU number . */ 
+		    RMobilePhone::TMobileAddress iCFNumber; 
+		 
+		    /** MSP Profile ID */
+       	    TMultipleSubscriberProfileID iMultipleSubscriberProfileID;
+        };
+
+    /** Package buffer to hold TCFIndicators objects */
+    typedef TPckg<TCFIndicators> TCFIndicatorsPckg;
+
+    /** Class for holding EAP SIM authentication parameters  */
+    class TSimAuthenticationEapSim : public TSimAuthenticationBase
+        {
+    public:
+    	/** Default constructor */
+        IMPORT_C TSimAuthenticationEapSim();
+
+    public:
+
+        /** Random parameters from client */
+        TParameter iRandomParameters;
+        /** SRES to client */
+        TParameter iSRES;
+        /** Ciphering Key to Client */
+        TParameter iKC;
+        };
+
+    /** Package buffer to hold TSimAuthenticationEapSim objects */
+    typedef TPckg<TSimAuthenticationEapSim> TSimDataPckg;
+
+    /** Class for holding EAP AKA authentication parameters */
+    class TSimAuthenticationEapAka : public TSimAuthenticationBase
+        {
+    public:
+    	/** Default constructor */
+        IMPORT_C TSimAuthenticationEapAka();
+
+    public:
+
+        /** Random parameters from client */
+        TParameter iRandomParameters;
+        /** AUTN parameters from client */
+        TParameter iAUTN;
+        /** RES to client */
+        TParameter iRES;
+        /** UMTS Ciphering Key to client */
+        TParameter iCK;
+        /** UMTS Integrity Key to client */
+        TParameter iIK;
+        /** AUTS to client */
+        TParameter iAUTS;
+        };
+
+    /** Package buffer to hold TSimAuthenticationEapAka objects */
+    typedef TPckg<TSimAuthenticationEapAka> TAkaDataPckg;
+
+    /**
+     * TTApdu defines the pointers to the Send APDU request details
+     */
+    class TApdu
+        {
+    public:
+
+        TApdu()
+            {
+            iInfo = 0;
+            iData = 0;
+            }
+
+        TApdu
+            (
+            TDes8& aInfo,
+            TDes8& aData
+            )
+            {
+            iInfo = &aInfo;
+            iData = &aData;
+            }
+
+    public:
+
+        TDes8* iInfo; // Servicetype, Card Reader number, Application
+                      // Type, Padding Byte
+        TDes8* iData; // Transparent data
+        };
+
+    /**
+     * TApduParameters 
+     */
+    class TApduParameters
+        {
+    public:
+
+      TApduParameters()
+            {
+            iCardReaderId = 0;
+            }
+
+    public:  // Data
+    	/** Card Reader ID */
+        TUint8 iCardReaderId;
+        /** Cmd Data */
+        TApduBuffer iCmdData;
+        /** RSP data */
+        TApduBuffer iRspData;
+        };
+
+    /**
+     * TSimCardReaderStatus
+     */
+    class TSimCardReaderStatus
+        {
+    public:
+
+        /**
+         * Default constructor
+         */
+        TSimCardReaderStatus() { iSimCardReaderStatus = 0; }
+
+        /**
+         * Constructor
+         *
+         * @param status Reader status
+         * @return None
+         */
+        TSimCardReaderStatus( TUint8 aStatus )
+            {
+            iSimCardReaderStatus = aStatus;
+            }
+
+        /**
+         * Set Card Status
+         *
+         * @param newStatus new reader status
+         */
+        IMPORT_C void SetStatus( TUint8 aNewStatus );
+
+        /**
+         * Get Card Status
+         *
+         * @return Reader status
+         */
+        IMPORT_C TUint8 GetStatus();
+
+        /**
+         * Get Card Reader ID.
+         *
+         * @return Reader ID
+         */
+        IMPORT_C TUint8 GetCardReaderID();
+
+        /**
+         * Is Card Reader Removable
+         *
+         * @return Is Card Reader Removable
+         */
+        IMPORT_C TBool IsCardReaderRemovable();
+
+        /**
+         * Is Card Reader Present
+         *
+         * @return Is Card Reader Present
+         */
+        IMPORT_C TBool IsCardReaderPresent();
+
+        /**
+         * Is Card Present
+         *
+         * @return Is Card Present
+         */
+        IMPORT_C TBool IsCardPresent();
+
+        /**
+         * Is Card Powered
+         *
+         * @return Is Card Powered
+         */
+        IMPORT_C TBool IsCardPowered();
+        
+    private:
+    	TUint8 iSimCardReaderStatus; // Reader status
+        };
+
+    /** TLockNumber defines SIMLock types to be used */
+    enum TLockNumber
+        {
+        /** Operator */
+        EOperator = 1,
+        /** GID1 */
+        EGid1,
+        /** GID2 */
+        EGid2,
+        /** IMSI */
+        EImsi,
+        /** Operator GID1 */
+        EOperator_Gid1,
+        /** Operator GID2 */
+        EOperator_Gid2,
+        /** Global unlock */
+        EGlobalUnlock
+        };
+
+    /** Package buffer to hold TSimLockPassword objects */
+    typedef TBuf<KSimLockMaxPasswordSize> TSimLockPassword;
+
+    /** Constants for VIAG Home Zone data */
+    enum TViagDataType
+        {
+        /** NBR size */
+        KViagParamNbrSize = 15,
+        /** Name size */
+        KViagElemNameSize = 13,
+        /** Element count */
+        KViagElementCount = 4
+        };
+
+    /** VIAG parameter data structure */
+    struct TViagParams
+        {
+        TBuf<KViagParamNbrSize> iSmsC;
+        TBuf<KViagParamNbrSize> iScp;
+        TUint8 iSubscribedZoneAndVersion;
+        };
+
+    /** Coordinates */
+    struct TCoordinates
+        {
+        /** X */
+        TUint32 iX;
+        /** Y */
+        TUint32 iY;
+        /** R2 */
+        TUint32 iR2;
+        /** Zone ID */
+        TUint iZoneId;
+        };
+
+    /** Active Flag values */
+    enum TActiveFlag
+        {
+        /** Not active */
+        ENotActive,
+        /** Home Zone */
+        EHomeZone,
+        /** City Zone */
+        ECityZone
+        };
+
+    /** VIAG Element data structure */
+    struct TViagElement
+        {
+        /** Coordinates */
+        TCoordinates iCoordinates;
+        /** Name */
+        TBuf<KViagElemNameSize> iName;
+        /** Active flag */
+        TActiveFlag iActiveFlag;
+        };
+
+    /** Array of TViagElement objects */
+    typedef CArrayFixFlat <TViagElement> TViagElements;
+
+    /** VIAG Cache Record ID data structure */
+    struct TViagCacheRecordId
+        {
+        /** Cache ID */
+        TInt iCacheId;
+        /** Record ID */
+        TInt iRecordId;
+        };
+
+    /** VIAG Cache Record Content data structure */ 
+    struct TViagCacheRecordContent
+        {
+        /** LAC */
+        TUint16 iLac;
+        /** Cell ID */
+        TUint16 iCellId;
+        };
+
+    /** VIAG UHZIUE settings data structure */
+    struct TViagUHZIUESettings
+        {
+        /** Settings */
+        TUint8 iSettings;
+        /** Version */
+        TUint8 iVersion;
+        };
+
+    /** Security code types */
+    enum TSecurityCodeType
+        {
+        /** PIN1 code */
+        ESecurityCodePin1,
+        /** PIN2 code */
+        ESecurityCodePin2,
+        /** Universal PIN code */
+        ESecurityUniversalPin,
+        /** PUK1 code */
+        ESecurityCodePuk1,
+        /** PUK2 code */
+        ESecurityCodePuk2,
+        /** Phone SIM lock and phone device lock codes */
+        ESecurityCodePassPhrase
+        };
+
+    /** Emergency number check modes */
+    enum TCheckMode
+        {
+        /** Normal */
+        EEmerNumberCheckNormal,
+        /** Advanced */
+        EEmerNumberCheckAdvanced
+        };
+
+    /** Caching status */
+    enum TPndCacheStatus
+        {
+        /** Not ready */
+        ECacheNotReady,
+        /** Ready */
+        ECacheReady,
+        /** Not used */
+        ECacheNotUsed,
+        /** Failed */
+        ECacheFailed
+        };
+
+    /** CB SIM Topics data type */
+    struct TSimCbTopic
+        {
+        /** Number */
+        TUint iNumber;
+        /** Name */
+        TBuf<KSimCbTopicNameLength> iName;
+        };
+
+    /** Buffer for telephone number */
+    typedef TBuf<RMobilePhone::KMaxMobileTelNumberSize> TMobileTelNumber;
+
+    /** Emergency number check mode data structure */
+    struct TEmerNumberCheckMode
+        {
+        /** Check mode */
+        TCheckMode iCheckMode;
+        /** Telephone number */
+        TMobileTelNumber iNumber;
+        };
+
+	// Service availability on service table on USIM 		
+	struct TAppSupport
+		{
+		TInt iAppNum;	
+		TBool iSupported;
+		};
+
+    public:
+    	/** Default constructor */
+        IMPORT_C RMmCustomAPI();
+
+    public:
+
+        /** DTMF Event types */
+        enum TDtmfEventType
+            {
+            /** Manual */
+            EDtmfManual,
+            /** Sequence */
+            EDtmfSequence
+            };
+
+        /** DTMF events */
+        enum TDtmfEvent
+            {
+            /** Start */
+            EDtmfStart,
+            /** Stop */
+            EDtmfStop,
+            /** Abort */
+            EDtmfAbort
+            };
+
+        /** DTMF information data structure */
+        struct TDtmfInfo
+            {
+            /** Event type */
+            TDtmfEventType iType;
+            /** Event */
+            TDtmfEvent iEvent;
+            /** Tone */
+            TChar iTone;
+            };
+
+        /** ALS block status values */
+        enum TSetAlsBlock
+            {
+            /** Deactivate */
+            EDeactivateBlock,
+            /** Activate */
+            EActivateBlock
+            };
+
+        /** Always On modes */
+        enum TSetAlwaysOnMode
+            {
+            /** HPLMN */
+            EAlwaysModeHPLMN,
+            /** VPLMN */
+            EAlwaysModeVPLMN,
+            /** Both modes (HPLMN/VPLMN) */
+            EAlwaysModeBoth,
+            /** Neither mode */
+            EAlwaysModeNeither
+            };
+
+        /** RAU event status values */
+        enum TRauEventStatus
+            {
+            /** Active */
+            ERauEventActive,
+            /** Resumed */
+            ERauEventResumed,
+            };
+
+        /** ALS block status values */
+        enum TGetAlsBlockStatus
+            {
+            /** Not supported */
+            EBlockStatusNotSupported,
+            /** Active */
+            EBlockStatusActive,
+            /** Inactive */
+            EBlockStatusInactive,
+            /** Unknown */
+            EBlockStatusUnknown
+            };
+
+        /** ALS Support values */
+        enum TAlsSupport
+            {
+            /** ALS Support is On */
+            EAlsSupportOn,
+            /** ALS Support if Off */
+            EAlsSupportOff
+            };
+
+        /** Remote alerting tone status */
+        enum TRemoteAlertingToneStatus
+            {
+            /** No Tone */
+            EUiNoTone,
+            /** RBT Tone */
+            EUiRbtTone,
+            /** Stop Tone */
+            EUiStopTone
+            };
+
+        /** Origin of the call */
+        enum TCallOrigin
+            {
+            /** Unknown */
+            EUnknown,
+            /** ETel call */
+            EETelCall,
+            /** Outside */
+            EOutsider
+            };
+
+        /** Status of the No Service Power Save state */
+        enum TNspsStatus
+            {
+            /** No Service Power Save is ON */
+            ENspsOn,
+            /** No Service Power Save is OFF */
+            ENspsOff
+            };
+
+        /** Ciphering Information data structure */
+        struct TCipheringInfo
+            {
+            /** ciphering Indicator status */
+            TBool   iIndStatus;
+            /** ciphering status */
+            TBool   iCiphStatus;
+            };
+
+        /** Additional info size */
+        enum { KAdditionalInfoSize = 255 };
+
+        /** Additional information data structure */
+        struct TSsAdditionalInfo
+            {
+            /** Operation code */
+            TUint8 iOperationCode;
+            /** Additional information */
+            TBuf8<KAdditionalInfoSize> iAdditionalInfo;
+            };
+
+        /** Operator name types */
+        enum TOperatorNameType
+            {
+            /** NITZ Full */
+            EOperatorNameNitzFull,
+            /** NITZ Short */
+            EOperatorNameNitzShort,
+            /** Programmable UCS2 */
+            EOperatorNameProgrammableUcs2,
+            /** Programmable Latin */
+            EOperatorNameProgrammableLatin,
+            /** Hardcoded UCS2 */
+            EOperatorNameHardcodedUcs2,
+            /** Hardcoded Latin */
+            EOperatorNameHardcodedLatin,
+            /** Country MNC */
+            EOperatorNameCountryMcn,
+            /** MCC MNC */
+            EOperatorNameMccMnc,
+            /** Flexible PLMN */
+            EOperatorNameFlexiblePlmn,
+            /** Highest Priority */
+            EOperatorNameHighestPriority
+            };
+
+        /** Operator name info structure */
+        struct TOperatorNameInfo
+            {
+            /** Name type */
+            TOperatorNameType iType;
+            /** Name */
+            TBuf<KMaxOperatorNameLength> iName;
+            };
+
+        /** Programmable operator Id */
+        struct TOperatorId
+            {
+            /** MCC */
+            TInt iMcc;
+            /** MNC */
+            TInt iMnc;
+            };
+
+        /** Programmable operator logo depth */
+        enum TProgrammableOperatorLogoDepth
+            {
+            /** 1 bit per pixel */
+            EBitPerPixel1,
+            /** 2 bits per pixel */
+            EBitPerPixel2,
+            /** 4 bits per pixel */
+            EBitPerPixel4,
+            /** 8 bits per pixel */
+            EBitPerPixel8
+            };
+
+        /** Programmable operator logo info */
+        struct TProgrammableOperatorLogoInfo
+            {
+            /** Operator logo width */
+            TInt iLogoWidth;
+            /** Operator logo height */
+            TInt iLogoHeight;
+            /** Compression (yes/no) */
+            TBool iCompression;
+            /** Operator logo depth (bits per pixel) */
+            TProgrammableOperatorLogoDepth iDepth;
+            };
+
+        /** Programmable operator logo structure */
+        struct TOperatorLogo
+            {
+            /** Operator logo information */
+            TProgrammableOperatorLogoInfo iLogoInfo;
+            /** Operator logo buffer */
+            TDes8* iOperatorLogo;
+            };
+
+        /** Two Digit Dial Support values */
+        enum TTwoDigitDialSupport
+            {
+            /** On */
+            ETwoDigitDialSupportOn,
+            /** Off */
+            ETwoDigitDialSupportOff
+            };
+
+        /** Custom call parameter class for calling party subaddress delivering */
+        class TCustomCallParams : public RMobileCall::TMobileCallParamsV2
+            {
+        public:
+        	/** Default constructor */
+            IMPORT_C TCustomCallParams();
+
+        public:
+
+        	/** SubAddress */
+            TBuf<KSubAddressSize> iSubAddress;
+            /** Bearer */
+            TBuf8<KBearerCapabilitySize> iBearer;
+            };
+
+        /** Package buffer for TCustomCallParams objects */
+        typedef TPckg<TCustomCallParams> TCustomCallParamsPckg;
+
+        /** Type of SS */
+        enum TSsType
+            {
+            ESsAllSs = 0,
+            ESsAllForwardings = 2,
+            ESsForwUncond = 21,
+            ESsForwBusy = 67,
+            ESsForwNoReply = 61,
+            ESsForwNoReach = 62,
+            ESsAllBarrings = 330,
+            ESsBarrAllOut = 33,
+            ESsBarrOutInter = 331,
+            ESsBarrOutInterExcHome = 332,
+            ESsBarrAllIn = 35,
+            ESsBarrAllInRoam = 351,
+            ESsOutgoingBarrServ = 333,
+            ESsIncomingBarrServ = 353,
+            ESsCallWaiting = 43,
+            ESsClip = 30,
+            ESsClir = 31,
+            ESsColp = 76,
+            ESsColr = 77,
+            ESsCnap = 300,
+            ESsAllCondForwardings = 4,
+            ESsRegPassword = 3
+            };
+
+        /** State of the SS feature */
+        enum TSsMode
+            {
+            /** Active */
+            ESsModeActive,
+            /** Not active */
+            ESsModeNotActive,
+            /** Not registered */
+            ESsModeNotRegistered,
+            /** Not provisioned */
+            ESsModeNotProvisioned,
+            /** Not available */
+            ESsModeNotAvailable,
+            /** Unknown state */
+            ESsModeUnknown
+            };
+
+        /** Forwarding mode */
+        enum TSsForwMode
+            {
+            /** Incoming call is forwarded */
+            ESsIncCallIsForw,
+            ESsIncCallForwToC,
+            ESsOutCallForwToC,
+            /** Not Active */
+            EForwNotActive
+            };
+
+        /** Hold mode */
+        enum TSsHoldMode
+            {
+            /** Active */
+            ESsHoldActive,
+            /** Resume */
+            ESsHoldResume,
+            /** Not active */
+            ESsHoldNotActive
+            };
+
+        /** Explicit call transfer (ECT) state */
+        enum TSsEctState
+            {
+            /** ECT active */
+            ESsEctActive,
+            /** ECT alerting */
+            ESsEctAlerting,
+            /** ECT not active */
+            ESsEctNotActive
+            };
+
+        /** Call Name Presentation choice */
+        enum TSsChoice
+            {
+            /** Presentation allowed */
+            ESsPresAllowed,
+            /** Presentation restricted */
+            ESsPresRestricted,
+            /** Number not available */
+            ESsNumberNotAvailable,
+            /** Restricted address */
+            ESsPresRestrictedAddress,
+            /** Choice unknown */
+            ESsChoiceUnknown
+            };
+
+        /** Remote Address Size */
+        enum
+        	{ 
+            /** Remote Address Size */
+        	KRemoteAddressSize = 64 
+        	};
+
+        /** SS type and mode */
+        struct TSsTypeAndMode
+            {
+            /** SS Type */
+            TSsType iSsType;
+            /** SS Mode */
+            TSsMode iSsMode;
+            };
+
+        /** SS info */
+        struct TSsInfo
+            {
+            /** Forwarding mode */
+            TSsForwMode iForwMode;
+            TBool iCallWait;
+            /** Hold mode */
+            TSsHoldMode iCallHold;
+            TBool iConfInd;
+            /** CUG index */
+            TUint16 iCugIndex;
+            TBool iClirSuppReject;
+            /** Explicit call transfer state */
+            TSsEctState iEctCallState;
+            /** Call name presentation choice */
+            TSsChoice iChoice;
+            /** Remote address */
+            TBuf<KRemoteAddressSize> iRemoteAddress;
+            };
+
+        /** Gprs type info */
+        enum TGprsInformationType
+            {
+            /** GPRS */
+            EGprs = 0,
+            /** EDGE GPRS */
+            EEdgeGprs = 1
+            };
+
+        /** System network mode */
+        enum TNetworkModeCaps
+            {
+            /** Unknown mode */
+            KCapsNetworkModeUnknown = 0x00,
+            /** GSM mode */
+            KCapsNetworkModeGsm = 0x01,
+            /** UMTS mode */
+            KCapsNetworkModeUmts = 0x02,
+            /** Dual mode (GPRS/UMTS) */
+            KCapsNetworkModeDual = 0x04
+            };
+
+        /** Band Selection */
+        enum TBandSelection
+            {
+            /** UMTS 850 */
+            ENetworkBandUmts850 = 0x01,
+            /** UMTS 2100 */
+	        ENetworkBandUmts2100 = 0x02,
+	        /** Any band */
+	        ENetworkBandAny = 0x03
+	        };
+        
+	    /** SIM Card status */
+        enum TSIMCardStatus
+            {
+            /** Error */
+            SimCardUnknowError = 0x00,
+            /** Reset */
+            SimCardResetPerformed,
+            /** Not Accessible */
+            SimCardNotAccessible,
+            /** Removed */
+            SimCardRemoved,
+            /** Inserted */
+            SimCardInserted,
+            /** Recovered */
+            SimCardRecovered
+            };
+
+        /** Drive mode status */
+        enum TSetDriveMode
+            {
+            /** Drive Mode active */
+            EDeactivateDriveMode,
+            /** Drive Mode inactive */
+            EActivateDriveMode
+            };
+
+        /** High speed channel status */
+        enum THSxPAStatus
+            {
+            /** Disabled HSxPA */
+            EHSxPADisabled,
+            /** Enabled HSxPA */
+            EHSxPAEnabled
+            };
+
+        /** Class to hold information about the EGPRS support in cell */
+        class TGprsInformation
+            {
+        public:
+        	/** Default constructor **/
+            IMPORT_C TGprsInformation();
+
+        public:
+        	/** Type of GPRS network (GPRS or EDGE/GPRS)*/
+            TGprsInformationType iGprsInfo;
+            };
+
+        /** Package buffer for TGprsInformation objects */
+        typedef TPckg<TGprsInformation> TGprsInformationPckg;
+
+        /** Package buffer for SIM File paths */
+        typedef TBuf8<KSimFilePathLength> TSimFilePath;
+
+        /** Holds SIM File Information */
+        class TSimFileInfo
+            {
+        public:
+        	/** Default constructor */
+            IMPORT_C TSimFileInfo();
+
+        public:
+        	/** File path in SIM where file is read */
+            TSimFilePath iPath;
+            /** Offset from beginning of the file */
+            TUint16 iOffSet;
+            /** Amount of data to read */
+            TUint16 iSize;
+            };
+
+        /** Package buffer for TSimFileInfo objects */
+        typedef TPckg<TSimFileInfo> TSimFileInfoPckg;
+
+        /** Holds lifetime information */
+        class TLifeTimeData
+            {
+        public: // definitions
+
+        	/** Lifetime data capability values */
+            enum TLifeTimeDataCaps
+                {
+                /** Unknown */
+                ELifeTimeDataCapsUnknown = 0x00000000,
+                /** Lifetime */
+                ELifeTimeDataCapsLifeTime = 0x00000001,
+                /** Manufacturer Date */
+                ELifeTimeDataCapsManufacturerDate = 0x00000002
+                };
+
+        public: // methods
+        		
+        	/** Default constructor */
+            IMPORT_C TLifeTimeData();
+
+        public: // internal attributes
+        	/** Capabilities */
+            TUint32 iCaps;
+            /** Hours (range 0-999999) */
+            TUint32 iHours;
+            /** Minutes (range 0-59) */
+            TUint8 iMinutes;
+            /** Manufacturing date */
+            TDateTime iManufacturingDate;
+            };
+
+        /** Package buffer for TLifeTimeData objects */
+        typedef  TPckg<TLifeTimeData> TLifeTimeDataPckg;
+
+        /** 3G Phonebook Information */
+        struct T3GPBInfo
+            {
+            /** Max length of email */
+            TInt16 iMaxLenEmail;
+            /** Max length of Second Name */
+            TInt16 iMaxLenSne;
+            /** Max length of Additional Number */
+            TInt16 iMaxLenAnr;
+            /* Max length of Group Name */
+            TInt16 iMaxLenGroupName;
+            /* Max number of email fileds per entry */
+            TInt8 iMaxNumEmail;
+            /* Max number of Second Name fields per entry */
+            TInt8 iMaxNumSne;
+            /* Max number of Group Name fields per entry */
+            TInt8 iMaxNumGroupName;
+            // Max number of Additional Number fields per entry
+            TInt8 iMaxNumAnr;
+         };
+
+        /** Cell Information */
+        class TMmCellInfo
+            {
+            public: // definitions
+
+            	/** Network modes */
+                enum TNwMode
+                    {
+                    /** Unknown */
+                    EUnknown,
+                    /** GSM */
+                    EGSM,
+                    /** WCDMA */
+                    EWCDMA
+                    };
+
+        /** WCDMA cell info */
+        struct TFrequencyInfo
+            {
+            /** FDD: 0..16383 O */
+            TInt iFddUL;
+            /** FDD: 0..16383 M */
+            TInt iFddDL;
+            /** TDD: 0..16383 */
+            TInt iTddNt;
+            };
+
+        /** FDD Information */
+        struct TFddInfo
+            {
+            /** Primary CPICH (0..511) */
+            TInt16 iPrimaryCPICH;
+            /** CPICH ECN0 (0..63), max=49 */
+            TInt8 iCpichEcN0;
+            /** CPICH RSCP ((0..127), max=91 */
+            TInt8 iCpichRscp;
+            /** Path Loss (46..173), max=158 */
+            TInt iPathloss;
+            };
+
+        /** TDD Information */
+        struct TTddInfo
+            {
+            /** Cell Param ID (0..127) */
+            TInt8 iCellParamID;
+            /** Proposed TGSN (0..14) */
+            TInt8 iProposedTGSN;
+            /** Primary CCPCH RSCP (0..127) */
+            TInt8 iPrimaryCcpchRscp;
+            /** Pathloss (46..173), max=158 */
+            TInt iPathloss;
+            /** Timeslot ISCP (0..127), max.91 */
+            TInt8 iTimeslotISCP[ KMaxTimeSlotIscpAmount ];
+            };
+
+        /** Cell Measured Result */
+        struct TCellMeasuredResult
+            {
+            /** Cell Identity (0..268435455) */
+            TInt32 iCID;
+            /** FDD Information */
+            TFddInfo iFddInfo;
+            /** TDD Information */
+            TTddInfo iTddInfo;
+            };
+
+        /** Network Measure Report */
+        struct TNetworkMeasureReport
+            {
+            /** Frequency Information */
+            TFrequencyInfo iFrequencyInfo;
+            /** UTRA-CarrierRSSI (0..127), max=76 */
+            TInt8 iCarrierRSSI;
+            /** Cell measured result (1..32) */
+            TCellMeasuredResult iCellMeasuredResult[
+                KMaxCellMeasuredResults ];
+            };
+
+        /** WCDMA Cell Information */
+        struct TWCDMACellInfo
+            {
+            /** Frequency information for current cell */
+            TFrequencyInfo iFrequencyInfo;
+            /** Scrambling Code for current cell (0..511) */
+            TInt iPrimaryScrambilingCode;
+            /** Network measure report (1..8) */
+            TNetworkMeasureReport iNwkMeasureReport[
+                KMaxNetworkMeasureReports ];
+            };
+
+        /** NMR Information */
+        struct TNmr
+            {
+            /** ARFCN (initialised -1) */
+            TInt iARFCN;
+            /** BSIC (initialised -1) */
+            TInt iBSIC;
+            /** RxLEV (initialised -1) */
+            TInt iRxLEV;
+            };
+
+        /** GSM cell information */
+        struct TGSMCellInfo
+            {
+            /** NMR information on the cell */
+            TNmr iNmr[ KMaxNmrAmount ];
+            /** Timing advance (0.255) */
+            TInt16 iTA;
+            };
+
+            public: //Methods
+
+                /** Default constructor */
+                IMPORT_C TMmCellInfo();
+
+            public:  // Data
+
+               /**
+                * Network mode
+                */
+                TNwMode iMode; // used for identifying mode.
+
+               /**
+                * GSM cell info
+                */
+                TGSMCellInfo iGsmCellInfo;
+
+               /**
+                * WCDMA cell info
+                */
+                TWCDMACellInfo iWcdmaCellInfo;
+            };
+
+        /** Package buffer to hold TMmCellInfo objects */
+		typedef TPckg<TMmCellInfo> TMmCellInfoPckg;
+
+        public: // New functions
+
+       /**
+        * Opens a subsession.
+        * @param aPhone reference to a Mobile Phone object
+        * @return KErrNone if successful
+        */
+        IMPORT_C TInt Open(RMobilePhone& aPhone);
+
+        /**
+         * Closes the subsession.
+         *
+         */
+        IMPORT_C void Close();
+
+        /**
+         * Sets Drive Mode status using the aModeStatus variable
+         *
+         * @param aStatus Request status
+         * @param aModeStatus Drive mode status
+         */
+        IMPORT_C void SetDriveMode( TRequestStatus& aStatus,
+            const TSetDriveMode aModeStatus );
+
+        /**
+         * Activate SIMLock synchronously
+         *
+         * @param aPassWord Lock specific password used to activate the SIMLock
+         * @param aNumber Number of lock to be activated
+         * @return Error value
+         */
+        IMPORT_C TInt ActivateSimLock( const TSimLockPassword& aPassWord,
+            const TLockNumber aNumber ) const;
+
+        /**
+         * Activate SIMLock asynchronously
+         *
+         * @param aStatus Request status
+         * @param aPassWord Lock specific password used to activate the SIMLock
+         * @param aNumber Number of lock to be activated
+         */
+        IMPORT_C void ActivateSimLock( TRequestStatus& aStatus,
+            const TSimLockPassword& aPassWord,
+            const TLockNumber aNumber ) const;
+
+        /**
+         * Deactivate SIMLock synchronously
+         *
+         * @param aPassWord Lock specific password used to
+         *        Deactivate the SIMLock
+         * @param aNumber Number of lock to be activated
+         * @return Error value
+         */
+        IMPORT_C TInt DeActivateSimLock( const TSimLockPassword& aPassWord,
+            const TLockNumber aNumber ) const;
+
+        /**
+         * Deactivate SIMLock asynchronously
+         *
+         * @param aStatus Request status
+         * @param aPassWord Lock specific password used
+         *        to Deactivate the SIMLock
+         * @param aNumber Number of lock to be activated
+         */
+        IMPORT_C void DeActivateSimLock( TRequestStatus& aStatus,
+            const TSimLockPassword& aPassWord,
+            const TLockNumber aNumber ) const;
+
+        /**
+         * Read VIAG Parameters synchronously
+         *
+         * @param aParam VIAG Home Zone Pararmeters
+         * @param aElems VIAG Home Zone Elements
+         * @return Error value
+         */
+        IMPORT_C TInt ReadViagHomeZoneParams( TViagParams& aParam,
+            TViagElements& aElems ) const;
+
+        /**
+         * Read VIAG Parameters asynchronously
+         *
+         * @param aStatus Request status KErrNone if successful
+         * @param aParam: VIAG Home Zone Pararmeters
+         * @param aElems: VIAG Home Zone Elements
+         */
+        IMPORT_C void ReadViagHomeZoneParams( TRequestStatus& aStatus,
+            TViagParams& aParam,
+            TViagElements& aElems );
+
+        /**
+         * Read VIAG Cache asynchronously
+         *
+         * @param aId VIAG Home Zone Record Id to read from
+         * @param aElems VIAG Home Zone Reacord Content
+         * @return Error value
+         */
+        IMPORT_C TInt ReadViagHomeZoneCache( TViagCacheRecordId& aId,
+            TViagCacheRecordContent& aRecord ) const;
+
+        /**
+         * Read VIAG Cache asynchronously
+         *
+         * @param aStatus Request status KErrNone if successful
+         * @param aId VIAG Home Zone Record Id to read from
+         * @param aElems VIAG Home Zone Reacord Content
+         */
+        IMPORT_C void ReadViagHomeZoneCache( TRequestStatus& aStatus,
+            TViagCacheRecordId& aId,
+            TViagCacheRecordContent& aRecord );
+
+        /**
+         * Write VIAG Cache asynchronously
+         *
+         * @param aId VIAG Home Zone Record Id to write to
+         * @param aElems VIAG Home Zone Reacord Content
+         * @return Error value
+         */
+        IMPORT_C TInt WriteViagHomeZoneCache( const TViagCacheRecordId& aId,
+            const TViagCacheRecordContent& aRecord ) const;
+
+
+        /**
+        * Set the "always on" mode
+        *
+        * @param aMode Desired "always on" mode
+        */
+        IMPORT_C void SetAlwaysOn( TRequestStatus& aStatus,
+                TSetAlwaysOnMode& aMode ) const;
+
+        /**
+        * Request notification of RAU event
+        * @param aStatus reuquest status
+        * @param aEventStatus RAU event status
+        */
+        IMPORT_C void NotifyRauEvent( TRequestStatus& aStatus,
+                TRauEventStatus& aEventStatus );
+
+        /**
+         * Write VIAG Cache asynchronously
+         *
+         * @param aStatus: Request status KErrNone if successful
+         * @param aId VIAG Home Zone Record Id to write to
+         * @param aElems VIAG Home Zone Reacord Content
+         */
+        IMPORT_C void WriteViagHomeZoneCache( TRequestStatus& aStatus,
+            const TViagCacheRecordId& aId,
+            const TViagCacheRecordContent& aRecord );
+
+        /**
+         * Notify a DTMF event
+         *
+         * @param aStatus Request status
+         * @param aInfo DTMF Info
+         */
+        IMPORT_C void NotifyDtmfEvent( TRequestStatus& aStatus,
+            TDtmfInfo& aInfo );
+
+        /**
+         * Return diagnostics info
+         *
+         * @param aCallName call name
+         * @return Error value
+         */
+        IMPORT_C TInt GetDiagnosticInfo( TName& aCallName ) const;
+
+        /**
+         * Sets the alternating line service block status using the
+         * aBlockStatus variable
+         *
+         * @param aBlockStatus als block status
+         * @return Error value
+         */
+        IMPORT_C TInt SetAlsBlocked( const TSetAlsBlock aBlockStatus ) const;
+
+        /**
+         * Sets the alternating line service block status using the aBlockStatus
+         * variable
+         *
+         * @param aStatus Request status
+         * @param aBlockStatus als block status
+         */
+        IMPORT_C void SetAlsBlocked( TRequestStatus& aStatus,
+            const TSetAlsBlock aBlockStatus );
+
+        /**
+         * Gets the alternating line service block status
+         *
+         * @param aBlockStatus als block status
+         * @return Error value
+         */
+        IMPORT_C TInt GetAlsBlocked( TGetAlsBlockStatus& aBlockStatus ) const;
+
+        /**
+         * Gets the alternating line service block status
+         *
+         * @param aStatus Request status
+         * @param aBlockStatus als block status
+         */
+        IMPORT_C void GetAlsBlocked( TRequestStatus& aStatus,
+            TGetAlsBlockStatus& aBlockStatus );
+
+        /**
+         * Reads the remote alerting tone status
+         *
+         * @param aToneStatus alerting tone status
+         * @return Error value
+         */
+        IMPORT_C TInt GetRemoteAlertingToneStatus(
+            TRemoteAlertingToneStatus& aToneStatus ) const;
+
+        /**
+         * Returns the origin of the call, defined by aCallName parameter
+         *
+         * @param aCallName call name
+         * @param aOrigin call origin
+         * @return Error value
+         */
+        IMPORT_C TInt CallOrigin( TName& aCallName,
+            TCallOrigin& aOrigin ) const;
+
+        /**
+         * Terminates a call synchronously
+         *
+         * @param aCallName call name
+         * @return Error value
+         */
+        IMPORT_C TInt TerminateCall( TName& aCallName ) const;
+
+        /**
+         * Terminates a call asynchronously
+         *
+         * @param aStatus Request status
+         * @param aCallName call name
+         */
+        IMPORT_C void TerminateCall( TRequestStatus& aStatus,
+            TName& aCallName );
+
+        /**
+         * Notifies a client of changed Als blocked status
+         *
+         * @param aStatus Request status
+         * @param aBlockStatus ALS block status
+         */
+        IMPORT_C void NotifyAlsBlockedChanged( TRequestStatus& aStatus,
+            TGetAlsBlockStatus& aBlockStatus );
+
+        /**
+         * Gets the ciphering information synchronously
+         *
+         * @param aInfo: Ciphering information
+         * @return Error value
+         */
+        IMPORT_C TInt GetCipheringInfo( TCipheringInfo& aInfo );
+
+        /**
+         * Gets the ciphering info asynchronously
+         *
+         * @param aStatus Request status
+         * @param aInfo Ciphering information
+         */
+        IMPORT_C void GetCipheringInfo( TRequestStatus& aStatus,
+            TCipheringInfo& aInfo );
+
+        /**
+         * This function notifies a client of ciphering info change
+         *
+         * @param aStatus Request status
+         * @param aInfo Ciphering information
+         */
+        IMPORT_C void NotifyCipheringInfoChange( TRequestStatus& aStatus,
+            TCipheringInfo& aInfo );
+
+        /**
+         * Notifies a client of a change in NSPS (No Service Power Save)
+         *
+         * @param aStatus Request status
+         * @param aNspsStatus status of the NSPS (on/off)
+         */
+        IMPORT_C void NotifyNSPSStatus( TRequestStatus& aStatus,
+            TNspsStatus& aNspsStatus );
+
+        /**
+         * This function wake ups the net server from the NSPS state
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void NetWakeup( TRequestStatus& aStatus );
+
+        /**
+         * Checks the status of the ALS in the product profile synchronously
+         *
+         * @param aSupport Als support Status
+         * @return Error value
+         */
+        IMPORT_C TInt CheckAlsPpSupport( TAlsSupport& aSupport ) const;
+
+        /**
+         * Checks the status of the ALS in the product profile asynchronously
+         *
+         * @param aStatus Request status
+         * @param aSupport Als support Status
+         */
+        IMPORT_C void CheckAlsPpSupport( TRequestStatus& aStatus,
+            TAlsSupport& aSupport );
+
+        /**
+         * Gets network provider name synchronously
+         *
+         * @param aNetworkProviderName Network provider name
+         * @return Error value
+         */
+        IMPORT_C TInt GetNetworkProviderName(
+            TDes& aNetworkProviderName ) const;
+
+        /**
+         * Gets network provider name asynchronously
+         *
+         * @param aStatus Request status
+         * @param aNetworkProviderName Network provider name
+         */
+        IMPORT_C void GetNetworkProviderName( TRequestStatus& aStatus,
+            TDes& aNetworkProviderName );
+
+        /**
+         * This function retrieves syncronously the information
+         * if the security code is blocked or not.
+         *
+         * @param aType Security code type
+         * @param aIsBlocked Code blocking status
+         * @return Error value
+         */
+        IMPORT_C TInt IsBlocked( TSecurityCodeType& aType,
+            TBool& aIsBlocked );
+
+        /**
+         * This method activates syncronously the security code request and
+         * triggers the security server to prompt PIN-code from client.
+         *
+         * @param aCode Security code type
+         * @return Error value
+         */
+        IMPORT_C TInt CheckSecurityCode ( const TSecurityCodeType aCode );
+
+        /**
+         * This method activates asyncronously the security code request and
+         * triggers the security server to prompt PIN-code from client.
+         *
+         * @param aStatus Request status
+         * @param aCode Security code type
+         */
+        IMPORT_C void CheckSecurityCode ( TRequestStatus& aStatus,
+            const TSecurityCodeType aCode );
+
+        /**
+         * This function retrieves syncronously the currently active PIN code
+         *
+         * @param aActivePin Currently active PIN
+         */
+        IMPORT_C void GetActivePin(
+            RMobilePhone::TMobilePhoneSecurityCode& aActivePin );
+
+        /**
+         * Get the air time use duration synchronously
+         *
+         * @param aTime air time duration in seconds.
+         * @return KErrNone
+         */
+        IMPORT_C TInt GetAirTimeDuration( TTimeIntervalSeconds& aTime ) const;
+
+        /**
+         * Checks the given number against emergency number list sychronously
+         *
+         * @param aNumMode Number and check mode
+         * @param aResult Result of query
+         * @return Error value
+         */
+        IMPORT_C TInt CheckEmergencyNumber( TEmerNumberCheckMode& aNumMode,
+            TBool& aResult ) const;
+
+        /**
+         * Checks the given number against emergency number list asychronously
+         *
+         * @param aStatus Request status
+         * @param aNumMode Number and check mode
+         * @param aResult Result of query
+         */
+        IMPORT_C void CheckEmergencyNumber( TRequestStatus& aStatus,
+            TEmerNumberCheckMode& aNumMode,
+            TBool& aResult );
+
+        /**
+         * Clears Call Blacklist asynchronously
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void ClearCallBlackList( TRequestStatus& aStatus );
+
+        /**
+         * Clears Call Blacklist synchronously
+         *
+         * @return Error value
+         */
+        IMPORT_C TInt ClearCallBlackList() const;
+
+        /**
+         * Notification request for additionalinfo message
+         *
+         * @param aStatus Request status
+         * @param aSsAdditionalInfo SS additional information
+         */
+        IMPORT_C void SsAdditionalInfoNotification( TRequestStatus& aStatus,
+            TSsAdditionalInfo& aSsAdditionalInfo );
+
+        /**
+         * Notify a client of the success of the sent SS command
+         *
+         * @param aStatus Request status
+         * @param aSsStatus SS status
+         */
+        IMPORT_C void SsRequestCompleteNotification( TRequestStatus& aStatus,
+            TInt& aSsStatus );
+
+        /**
+         * Notify a client when phonebook caching is ready
+         *
+         * @param aStatus Request status
+         * @param aPndName Returns the name of phonebook having ready cache
+         */
+        IMPORT_C void NotifyPndCacheReady( TRequestStatus& aStatus,
+            TName& aPndName );
+
+        /**
+         * Gets current cache status
+         *
+         * @param aStatus Request status
+         * @param aPndStatus cache status
+         * @param aPndName phonebook name
+         */
+        IMPORT_C void GetPndCacheStatus( TRequestStatus& aStatus,
+            RMmCustomAPI::TPndCacheStatus& aPndStatus,
+            const TName& aPndName ) const;
+
+        /**
+         * Gets the operator name of the current network
+         *
+         * @param aStatus Request status
+         * @param aOperatorNameInfo Operator name info
+         */
+        IMPORT_C void GetOperatorName( TRequestStatus& aStatus,
+            TOperatorNameInfo& aOperatorNameInfo );
+
+        /**
+         * Gets the programmable operator logo of the current network
+         *
+		 * This API is no longer supported!
+		 *
+         * @param aStatus Request status
+         * @param aOperatorId operator Id
+         * @param aLogo operator logo
+         */
+        IMPORT_C void GetProgrammableOperatorLogo( TRequestStatus& aStatus,
+            TOperatorId& aOperatorId, TOperatorLogo& aLogo );
+
+        /**
+         * Notifies of the change in the operator logo of the current network
+         *
+         * @param aStatus Request status
+         * @param aOperatorId Id of the operator
+         */
+        IMPORT_C void NotifyProgrammableOperatorLogoChange(
+            TRequestStatus& aStatus,
+            TOperatorId& aOperatorId );
+
+        /**
+         * Notifies a client of SAT refresh
+         *
+         * @param aStatus: Request status
+         */
+        IMPORT_C void SatRefreshCompleteNotification(
+            TRequestStatus& aStatus );
+
+        /**
+         * Notifies the client about a network generated SS event
+         *
+         * @param aStatus Request status
+         * @param aSsTypeAndMode Type and mode
+         * @param aSsInfo SS info
+         */
+        IMPORT_C void NotifySsNetworkEvent( TRequestStatus& aStatus,
+            TSsTypeAndMode& aSsTypeAndMode, TSsInfo& aSsInfo );
+
+        /**
+         * Cancels active ussd session synchronously
+         *
+         * @return Error value
+         */
+        IMPORT_C TInt CancelUssdSession() const;
+
+        /**
+         * Cancels active ussd session asynchronously
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void CancelUssdSession( TRequestStatus& aStatus );
+
+        /**
+         * Checks two digit dial support synchronously
+         *
+         * @param aSupport two digit dial support status
+         * @return Error value
+         */
+        IMPORT_C TInt CheckTwoDigitDialSupport(
+            TTwoDigitDialSupport& aSupport ) const;
+
+        /**
+         * Checks two digit dial support asynchronously
+         *
+         * @param aStatus Request status
+         * @param aSupport two digit dial support status
+         */
+        IMPORT_C void CheckTwoDigitDialSupport( TRequestStatus& aStatus,
+            TTwoDigitDialSupport& aSupport );
+
+        /**
+         * This function resets the net server
+         *
+         */
+        IMPORT_C void ResetNetServer() const;
+
+        /**
+         * This function resets the net server
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void ResetNetServer( TRequestStatus& aStatus );
+
+        /**
+         * Releases CommDB file
+         *
+         * @param aStatus Request status
+         * @param aFileName File to be released
+         */
+        IMPORT_C void ReleaseFile( TRequestStatus& aStatus,
+            const TDesC& aFileName );
+
+        /**
+         * Restarts reading CommDB file
+         *
+         * @param aStatus Request status
+         * @param aFileName File to be restarted
+         */
+        IMPORT_C void RestartFile( TRequestStatus& aStatus,
+            const TDesC& aFileName );
+
+        /**
+         * Start Sim CB Topic Browsing
+         *
+         * @return TInt KErrNone if successful
+         */
+        IMPORT_C TInt StartSimCbTopicBrowsing();
+
+        /**
+         * Get next SIM CB Topic synchronously
+         *
+         * @param aSimCbTopic requested topic
+         * @return KErrNone if successful
+         */
+        IMPORT_C TInt GetNextSimCbTopic( TSimCbTopic& aSimCbTopic );
+
+        /**
+         * Get next SIM CB Topic asynchronously
+         *
+         * @param aStatus request status
+         * @param aSimCbTopic requested topic
+         */
+        IMPORT_C void GetNextSimCbTopic( TRequestStatus& aStatus,
+            TSimCbTopic& aSimCbTopic );
+
+        /**
+         * Delete SIM CB Topic synchronously
+         *
+         * @param aSimCbTopicNumber topic to be deleted
+         * @return Error value
+         */
+        IMPORT_C TInt DeleteSimCbTopic( const TUint &aSimCbTopicNumber );
+
+        /**
+         * Delete SIM CB Topic asynchronously. This asynchronous request can not be cancelled.
+         *
+         * @param aStatus request status
+         * @param aSimCbTopic topic to be deleted
+         */
+        IMPORT_C void DeleteSimCbTopic( TRequestStatus& aStatus,
+            const TUint &aSimCbTopicNumber );
+
+        /**
+         * Notifies of a network connection failure. This failure is so sever
+         * that the only way to recover is to restart the phone.
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void NotifyNetworkConnectionFailure(
+            TRequestStatus& aStatus );
+
+        /**
+         * Send APDU request and wait for response synchronously
+         *
+         * @param anAPDUReq reference to structure containing APDU request's
+         *        details
+         * @return Error value
+         */
+        IMPORT_C TInt SendAPDUReq( TApdu& anAPDUReq );
+
+        /**
+         * Send APDU request asynchronously
+         *
+         * @param aStatus Request status
+         * @param anAPDUReq reference to structure containing APDU request's
+         *        details
+         */
+        IMPORT_C void SendAPDUReq( TRequestStatus& aStatus,
+            TApdu& anAPDUReq );
+
+        /**
+         * Disables phone lock
+         *
+         * @param aStatus Request status
+         * @param aVerifyCode Password for verification
+         */
+        IMPORT_C void DisablePhoneLock( TRequestStatus& aStatus,
+                RMobilePhone::TMobilePassword& aVerifyCode ) const;
+
+        /**
+         * Notifies an EGPRS information change
+         *
+         * @param aStatus Request status
+         * @param aGprsInfo is a reference to a TGprsInformation class
+         *        packaged inside a TPckg<> class.
+         */
+        IMPORT_C void NotifyEGprsInfoChange( TRequestStatus& aStatus,
+            TDes8& aGprsInfo ) const;
+
+        /**
+         * Gets EGPRS information
+         *
+         * @param aStatus Request status
+         * @param aGprsInfo is a reference to a TGprsInformation class
+         *        packaged inside a TPckg<> class.
+         */
+        IMPORT_C void GetEGprsInfo ( TRequestStatus& aStatus,
+            TDes8& aGprsInfo ) const;
+
+        /**
+         * Reads information from a SIM file asynchronously
+         *
+         * @param aStatus Request status
+         * @param aSimFileInfo reference to class containing SIM File's info
+         * @param aResponseBytes reference to buffer in which store
+         *        SIM File's data
+         */
+        IMPORT_C void ReadSimFile ( TRequestStatus& aStatus,
+            TDes8& aSimFileInfo, TDes8& aResponseBytes ) const;
+
+        /**
+         * Gets the life time synchronously
+         *
+         * @param aLifeTimeInfo reference to class containing Life
+         *          time information
+         * @return TInt
+         */
+        IMPORT_C TInt GetLifeTime( TDes8& aLifeTimeInfo ) const;
+
+        /**
+         * Gets the life time asynchronously
+         *
+         * @param aStatus Request status
+         * @param aLifeTimeInfo reference to class containing Life
+         *          time information
+         */
+        IMPORT_C void GetLifeTime( TRequestStatus& aStatus,
+            TDes8& aLifeTimeInfo ) const;
+
+        /**
+         * Gets phonebook 3G information
+         *
+         * @param aStatus Request status
+         * @param aInfo reference to class containing phonebook 3G information
+         */
+        IMPORT_C void Get3GPBInfo( TRequestStatus& aStatus,
+            T3GPBInfo& aInfo ) const;
+
+        /**
+         * This method reads all network system modes synchronously.
+         *
+         * @param aSupportedNetworkModes supported networkmodes
+         * @return Error value
+         */
+        IMPORT_C TInt GetSystemNetworkModes(
+            TUint32& aSupportedNetworkModes ) const;
+
+        /**
+         * This method reads all network system modes asynchronously.
+         *
+         * @param aStatus Request status
+         * @param aSupportedNetworkModes supported networkmodes
+         */
+        IMPORT_C void GetSystemNetworkModes( TRequestStatus& aStatus,
+            TUint32& aSupportedNetworkModes ) const;
+
+        /**
+         * This method sets network system mode synchronously.
+         *
+         * @param aNetworkMode system networkmode
+         * @return KErrNone if successful
+         */
+        IMPORT_C TInt SetSystemNetworkMode(
+            const TNetworkModeCaps aNetworkMode );
+
+        /**
+         * This method sets network system mode asynchronously.
+         *
+         * @param aStatus Request status
+         * @param aSupportedNetworkModes supported networkmodes
+         */
+        IMPORT_C void SetSystemNetworkMode( TRequestStatus& aStatus,
+            const TNetworkModeCaps aNetworkMode );
+
+        /**
+         * This method gets current network system mode synchronously.
+         *
+         * @param aCurrentNetworkModes Current networkmodes
+         * @return Error value
+         */
+        IMPORT_C TInt GetCurrentSystemNetworkModes(
+            TUint32& aCurrentNetworkModes ) const;
+
+        /**
+         * This method gets current system mode asynchronously.
+         *
+         * @param aStatus Request status
+         * @param aCurrentNetworkModes Current networkmodes
+         */
+        IMPORT_C void GetCurrentSystemNetworkModes( TRequestStatus& aStatus,
+            TUint32& aCurrentNetworkModes ) const;
+
+        /**
+	     * This method reads network system band synchronously.
+	     *
+	     * @param aSupportedNetworkBand supported networkband
+	     * @return Error value
+	     */
+	    IMPORT_C TInt GetSystemNetworkBand(
+	        TBandSelection& aSupportedNetworkBand,
+	        TNetworkModeCaps& aNetworkMode ) const;
+	        
+	    /**
+	     * This method reads network system band asynchronously.
+	     *
+	     * @param aStatus Request status
+	     * @param aSupportedNetworkBands supported networkband
+	     */
+	    IMPORT_C void GetSystemNetworkBand( TRequestStatus& aStatus,
+	        TBandSelection& aSupportedNetworkBand,
+	        TNetworkModeCaps& aNetworkMode ) const;
+
+	    /**
+	     * This method sets network system band synchronously.
+	     *
+	     * @param aNetworkBand system networkband
+	     * @return KErrNone if successful
+	     */
+	    IMPORT_C TInt SetSystemNetworkBand(
+	        const TBandSelection aNetworkBand,
+	        const TNetworkModeCaps aNetworkMode );
+	    
+	    /**
+	     * This method sets network system band asynchronously.
+	     *
+	     * @param aStatus Request status
+	     * @param aSupportedNetworkBand supported networkbands
+         * @param aNetworkMode used network mode
+	     */
+	    IMPORT_C void SetSystemNetworkBand( TRequestStatus& aStatus,
+	        const TBandSelection aNetworkBand,
+	        const TNetworkModeCaps aNetworkMode );
+        
+        /**
+         * Power SIM ON.
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void PowerSimOn( TRequestStatus& aStatus );
+
+        /**
+         * Power SIM OFF.
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void PowerSimOff( TRequestStatus& aStatus );
+
+        /**
+         * Perform Warm Reset to SIM.
+         *
+         * @param aStatus Request status
+         */
+        IMPORT_C void SimWarmReset( TRequestStatus& aStatus );
+
+        /**
+         * Send APDU Request to APDU server
+         *
+         * @param aStatus Request status
+         * @param aParam Parameters for Apdu ( cardreaderid, commandApdu,
+                 responseApdu )
+         */
+        IMPORT_C void SendAPDUReq( TRequestStatus& aStatus,
+            TApduParameters& aParams );
+
+        /**
+         * Get Answer To Reset
+         *
+         * @param aStatus Request status
+         * @param aATR reference containing Answer To Reset bytes from ICC
+         */
+        IMPORT_C void GetATR( TRequestStatus& aStatus, TDes8& aATR );
+
+        /**
+         * Get Card Reader Status
+         *
+         * @param aStatus Request status
+         * @param aCardReaderStatus
+         */
+        IMPORT_C void GetSimCardReaderStatus( TRequestStatus& aStatus,
+            TSimCardReaderStatus &aCardReaderStatus );
+
+        /**
+         * Notify SIM Card Status
+         *
+         * @param aStatus Request status
+         * @param aCardStatus Card status
+         */
+        IMPORT_C void NotifySimCardStatus( TRequestStatus& aStatus,
+            TSIMCardStatus& aCardStatus );
+
+        /**
+         * Get WLAN SIM Authentication Data
+         *
+         * @param aStatus Request status
+         * @param aAuthenticationData Authentication Data
+         */
+        IMPORT_C void GetWlanSimAuthenticationData(
+            TRequestStatus& aReqStatus,
+            TDes8& aAuthenticationData ) const;
+
+        /**
+         * Sets "storage status" byte of a SIM-stored SMS message to "read".
+         * Parameters are SM service center timestamp (as of 3GPP TS 23.040).
+         *
+         * @param aTime time
+         * @param aTimezoneDiff timezone (difference to GMT, in quarters of
+         *        an hour)
+         */
+        IMPORT_C void SetSimMessageStatusRead( TTime& aTime,
+            TInt& aTimezoneDiff ) const;
+
+        /**
+         * This method writes specified VIAG Home Zone UHZIUE settings synchronously.
+         *
+         *
+         * U-HZI-UE settings field is coded as follow:
+         *
+         *    -------------------------
+         *    |b8|b7|b6|b5|b4|b3|b2|b1|
+         *    -------------------------
+         *                           <-0:The U-HZI-UE is deactivated
+         *                            1:The U-HZI-UE is activated
+         *
+         *                        <----0:The CB-HZI-UE is deactivated
+         *                             1:The CB-HZI-UE is activated
+         *
+         *    Constants RMmCustomAPI::KUHziUeActive and RMmCustomAPI::HCbHziUeActive
+         *    can be used to determine and modificate states of different activation bits.
+         *
+         *    For example:
+         *
+         *    if ( iEfUHziUeSettings.settings & KUHziUeActive )
+         *     then U-HZI-UE is activated
+         *
+         *    Activate:
+         *    iEfUHziUeSettings.settings |= KUHziUeActive;
+         *
+         *    Deactivate:
+         *    iEfUHziUeSettings.settings &= ~KUHziUeActive;
+         *
+         *
+         * @param aSettings Settings
+         * @return Error value
+         */
+        IMPORT_C TInt WriteViagHomeZoneUHZIUESettings(
+            TViagUHZIUESettings& aSettings) const;
+
+        /**
+         * This method writes specified VIAG Home Zone UHZIUE settings
+         * asynchronously.
+         *
+         * @param aStatus Request status
+         * @param aSettings Settings
+         */
+        IMPORT_C void WriteViagHomeZoneUHZIUESettings (
+            TRequestStatus& aStatus, TViagUHZIUESettings& aSettings) const;
+
+        /**
+         * Read HSxPA Status
+         *
+         * @param aStatus Request status
+         * @param aHSxPAStatus
+         */
+        IMPORT_C void ReadHSxPAStatus( TRequestStatus& aStatus,
+            THSxPAStatus& aHSxPAStatus );
+
+        /**
+         * Write HSxPA Status
+         *
+         * @param aStatus Request status
+         * @param aHSxPAStatus
+         */
+        IMPORT_C void WriteHSxPAStatus( TRequestStatus& aStatus,
+            THSxPAStatus& aHSxPAStatus );
+
+        /**
+         * Notify HSxPA Status change
+         *
+         * @param aStatus Request status
+         * @param aHSxPAStatus
+         */
+        IMPORT_C void NotifyHSxPAStatus( TRequestStatus& aStatus,
+            THSxPAStatus& aHSxPAStatus );
+
+        /**
+         * Get ICC call forwarding status
+         *
+         * @param aReqStatus Request status
+         * @param aCFIndicators refrence to class CFIndicators
+         */
+        IMPORT_C void GetIccCallForwardingIndicatorStatus(
+        	TRequestStatus& aReqStatus, //TUint8 aMspId,
+        	TDes8& aCFIndicators ) const;
+
+        /**
+         * Notify ICC call forwarding status change
+         *
+         * @param aReqStatus Request status
+         * @param aCFIndicators refrence to class CFIndicators
+         */
+        IMPORT_C void NotifyIccCallForwardingStatusChange(
+            TRequestStatus& aReqStatus,
+            TDes8& aCFIndicators );
+
+        /**
+         * Get GSM/WCDMA cell(s) info
+         *
+         * @param aStatus Request status
+         * @param aCellInfo
+         */
+        IMPORT_C void GetCellInfo( TRequestStatus& aStatus,
+            TDes8& aCellInfo ) const;
+
+        /**
+         * Notify Cell info change
+         *
+         * @param aStatus Request status
+         * @param aCellInfo
+         */
+        IMPORT_C void NotifyCellInfoChange( TRequestStatus& aStatus,
+            TDes8& aCellInfo ) const;
+
+
+		/**
+         * Get service table availability on USIM
+         *
+         * @since S60 v3.2
+         * @param aStatus Request status
+         * @param aParams aServiceNum. A service support in service table
+         * specified by the client
+         */
+		IMPORT_C void GetUSIMServiceSupport( 
+		    TRequestStatus& aStatus, TAppSupport& aParams ) const;
+		
+		/**
+         * This function notifies a client of RemoteAlertingToneStatus change
+         *
+         * @param aStatus Request status
+         * @param aToneStatus RemoteAlertingTone status
+         */
+        IMPORT_C void NotifyRemoteAlertingToneStatusChange( 
+            TRequestStatus& aStatus, TRemoteAlertingToneStatus& aToneStatus );
+	
+    private:
+
+        /**
+         * Copy constructor
+         *
+         * @param aCustomAPI Custom API handle
+         */
+        RMmCustomAPI( const RMmCustomAPI& aCustomAPI );
+
+    protected:
+
+        /**
+         * 2nd phase constructor.
+         */
+        IMPORT_C void ConstructL();
+
+        /**
+         * Destructor
+         */
+        IMPORT_C void Destruct();
+
+    private:    // Data
+
+        /*
+         * Pointer to he Custom pointer holder
+         * Own.
+         */
+        CMmCustomPtrHolder*  iCustomPtrHolder;
+    };
+
+/**
+ * CMmCustomPtrHolder contains Custom Pointer Holder related functionality 
+ *  @publishedPartner
+ */
+ class CMmCustomPtrHolder : public CBase
+    {
+    public: // Constructors and destructor
+
+        static CMmCustomPtrHolder* NewL( const TInt aSizeOfPtrArray,
+            const TInt aSizeOfPtrCArray=0 );
+
+        ~CMmCustomPtrHolder();
+
+        template <typename T> inline TPtr8& Set( TInt aSlot, T& aObject )
+            {
+            TPtr8& ptr=Ptr( aSlot );
+            ptr.Set( REINTERPRET_CAST( TText8*, ( &aObject ) ), sizeof( T ),
+                sizeof( T ) );
+
+            return ptr;
+            };
+
+        template <typename T> inline TPtrC8& SetC(
+            TInt aSlot, const T& aObject)
+            {
+            TPtrC8& ptr=PtrC( aSlot );
+            ptr.Set( REINTERPRET_CAST( const TText8*, ( &aObject ) ),
+                sizeof( T ) );
+
+            return ptr;
+            };
+
+    protected:
+
+        void ConstructL( const TInt aSizeOfPtrArray,
+            const TInt aSizeOfPtrCArray );
+        CMmCustomPtrHolder();
+
+    public: // Data
+
+        /*
+         * Sim Topic
+         */
+        RMmCustomAPI::TSimCbTopic iSimCbTopic;
+
+        /*
+         * SimTopic number
+         */
+        TUint iSimCbTopicNumber;
+
+        /*
+         * Als block status for set
+         */
+        RMmCustomAPI::TSetAlsBlock iSetAlsBlock;
+
+        /*
+         * Drive Mode
+         */
+        RMmCustomAPI::TSetDriveMode iSetDriveMode;
+
+        /*
+         * Sim lock number
+         */
+        RMmCustomAPI::TLockNumber iSimLockNumber;
+
+        /*
+         * Sim lock password
+         */
+        RMmCustomAPI::TSimLockPassword iSimLockPassword;
+
+        /*
+         * Viag cache id
+         */
+        RMmCustomAPI::TViagCacheRecordId iViagCacheId;
+
+        /*
+         * Viag cache record
+         */
+        RMmCustomAPI::TViagCacheRecordContent iViagCacheRecord;
+
+        /*
+         * Security code typeiSecurityCodeType;
+         */
+        RMmCustomAPI::TSecurityCodeType iSecurityCodeType;
+
+        /*
+         * Operator name type
+         */
+        RMmCustomAPI::TOperatorNameType iOperatorNameType;
+
+        /*
+         * Phonebook 3G info
+         */
+        RMmCustomAPI::T3GPBInfo i3GPBInfo;
+
+        /*
+         * Supported network modes
+         */
+        TUint32 iSupportedNetworkModes;
+
+        /*
+         * System network mode
+         */
+        RMmCustomAPI::TNetworkModeCaps iNetworkModeCaps;
+
+        /*
+         * Current network modes
+         */
+        TUint32 iCurrentNetworkModes;
+        
+        /**
+         * Network UMTS rf band
+         */
+        RMmCustomAPI::TBandSelection iNetworkBand;
+    
+	    /**
+	     * Supported network band
+	     */
+	    RMmCustomAPI::TBandSelection iSupportedNetworkBand;
+
+        /**
+         * HSxPA Status
+         */
+        RMmCustomAPI::THSxPAStatus iHSxPAStatus;
+
+    protected: // Data
+
+        RArray<TPtr8> iPtrArray;
+        RArray<TPtrC8> iPtrCArray;
+
+    private: // Data
+
+        TPtr8& Ptr( TInt aIndex );
+        TPtrC8& PtrC( TInt aIndex );
+
+    };
+
+#endif      // RMMCUSTOMAPI_H
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/S3libs/ABLD.BAT	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\homescreensrv\dependencies\S3libs\\" %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
Binary file dependencies/S3libs/abclient.lib has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/S3libs/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,6 @@
+PRJ_EXPORTS
+
+sysversioninfo.lib		\epoc32\release\winscw\udeb\sysversioninfo.lib
+abclient.lib			\epoc32\release\winscw\udeb\abclient.lib
+featmgr.lib				\epoc32\release\winscw\udeb\featmgr.lib
+liwServiceHandler.lib	\epoc32\release\winscw\udeb\liwServiceHandler.lib
\ No newline at end of file
Binary file dependencies/S3libs/featmgr.lib has changed
Binary file dependencies/S3libs/liwServiceHandler.lib has changed
Binary file dependencies/S3libs/sysversioninfo.lib has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/RSatSession.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2002-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:  Common session for accessing SatServer services.
+*
+*/
+
+#ifndef RSATSESSION_H
+#define RSATSESSION_H
+
+#include <e32std.h>
+#include <e32base.h>
+
+/**
+ * Definitions of SAT API versions.
+ */ 
+#define SIM_ATK_SERVICE_API_V1
+
+/**
+* Handles the connection to SatServer. This class
+* is used with the sub-sessions.
+*
+* @lib SatClient
+* @since Series60 2.6
+*/
+class RSatSession : public RSessionBase
+    {
+
+    public: // New functions
+
+        /**
+        * C++ default constructor.
+        */
+        IMPORT_C RSatSession();
+
+        /**
+        * Opens session to SatServer
+        */
+        IMPORT_C void ConnectL();
+
+        /**
+        * The client API version.
+        */
+        IMPORT_C TVersion Version() const;
+
+    private:
+
+        /**
+        * Prohibit copy constructor if not deriving from CBase.
+        */
+        RSatSession( const RSatSession& );
+
+        /**
+        * Prohibit assigment operator if not deriving from CBase.
+        */
+        RSatSession& operator=( const RSatSession& );
+
+    };
+
+#endif      // RSATSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,4 @@
+PRJ_EXPORTS
+RSatSession.h			        RSatSession.h
+tsaticoninfo.h					tsaticoninfo.h
+rsatservice.h					rsatservice.h
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/rsatservice.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,369 @@
+/*
+* Copyright (c) 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:  Sub-session for SAT services.
+*
+*/
+
+#ifndef RSATSERVICE_H
+#define RSATSERVICE_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+class CFbsBitmap;
+class RSatSession;
+class TSatIconInfo;
+class TSatInternalIconInfo;
+class CSatPluginMonitor;
+
+// DATA TYPES
+
+/**
+ * Array containing the icon information
+ */
+typedef RArray<TSatIconInfo> RIconEf;
+
+
+// CLASS DECLARATION
+
+/**
+ *  <b>Sub-session for SAT services to SIM</b>
+ *
+ *  In order to use SAT Service API, services of an another API is needed:
+ *  <ul>
+ *  <li><b>SAT Client API</b>        \n For connecting SAT Session <BR>
+ *  </ul>
+ *
+ *  Idle mode text client needs to monitor for idle mode content 
+ *  changes and call SetIdleModeTextResponse()
+ *  if content is updated.
+ *  Result needs to be reported also if there already is  
+ *  initial content after startup, when change notification has not been 
+ *  requested yet.
+ *  Example sequence for Idle mode client:
+ *  1. Startup
+ *  2. Request notification for idle mode content updates from.
+ *  3. Try to get initial idle mode text.
+ *  4. Use initial content, if there was some.
+ *  5. Report result if there was content.
+ *  Later:
+ *  6. Idle mode text change notification request is completed.
+ *  7. Renew notification request.
+ *  8. Read new content.
+ *  9. Use new content.
+ *  10. Report result.
+ *
+ *  @code
+ *  // How to connect to SAT service :
+ *  // How to request notification on SetupIdleModeText change:
+ *
+ *  RSatSession satSession;
+ *  RSatService satService;
+ *  // Connect session
+ *  satSession.ConnectL();
+ *  satService.OpenL( satSession );
+ *  // Start observing asynchronously for changes
+ *  satService.NotifySetupIdleModeTextChange( status );
+ *  
+ *  //How to read Idle Mode Text and icon:
+ *
+ *  // Read text and icon after startup and when notified about change.
+ *  TSatIconQualifier iconQualif( ESatIconNoIcon );
+ *  TUint8 recordId( 0 );
+ *  TInt error( KErrNone );
+ *  HBufC* text = NULL;
+ *  satService.GetSetupIdleModeTextL( 
+ *    text, iconQualif, recordId );
+ *  CFbsBitmap* icon = NULL;
+ *  if ( text )
+ *      {
+ *      // Use text, take care of cleanup.
+ *      }
+ *  if ( ESatIconNoIcon != iconQualif )
+ *      {
+ *      // There's an icon to be displayed.
+ *      // Get icon records into array.
+ *      RIconEf iconInfos;
+ *      CleanupStack::PushL( TCleanupItem( 
+ *          LocalArrayCleanupFunction, iconInfos )
+ *      satService.GetIconInfoL( recordId, iconInfos );
+ *
+ *      // Resolve which icon to use using icon infos.
+ *      // Then get the icon you selected.
+ *      icon = satService.GetIconL( iconInfos[ 0 ] );
+ *      CleanupStack::PopAndDestroy(); // iconInfos
+ *
+ *      if ( ESatIconSelfExplanatory == iconQualif )
+ *          {
+ *          // Only icon should be displayed.
+ *          }
+ *      else if ( ESatIconNotSelfExplanatory == iconQualif )
+ *          {
+ *          // Both text and icon should be displayed.
+ *          }
+ *      }
+ *  // else: only text should be displayed
+ *  
+ *  // Display text and/or icon, take care of their cleanup.
+ *
+ *  @endcode
+ *
+ *
+ *  @lib SatClient.lib
+ *  @since 5.1
+ */
+class RSatService : public RSubSessionBase
+    {
+
+    public:  // Enumerations
+        
+        /**
+         * Result options for idle mode text setup.
+         */
+        enum TSATIdleResult
+            {
+            
+            /** 
+             * Text and Icon were set up successfully
+             */
+            ESATIdleSuccess = 0x00,
+            
+            /** 
+             * Text was set up successfully, but requested icon was not 
+             * displayed
+             */
+            ESATIdleSuccessRequestedIconNotDisplayed = 0x04,
+            
+            /**
+             * Text could not be displayed - temporary problem
+             */
+            ESATIdleMeUnableToProcessCmd = 0x20,
+            
+            /**
+             * Text could not be displayed - permanent problem
+             */
+            ESATIdleCmdBeyondMeCapabilities = 0x30
+            };
+            
+        /**
+         * Specifies icon role.
+         */
+        enum TSatIconQualifier
+            {
+            
+            /** 
+             * Icon is not available.
+             */
+            ESatIconNoIcon = 1,
+            
+            /**
+             * Icon is self-explanatory, 
+             * i.e. if displayed, it replaces the text string.
+             */
+            ESatIconSelfExplanatory,
+            
+            /**
+             * Icon is not self-explanatory, 
+             * i.e. if displayed, it shall be displayed together with 
+             * the text string.
+             */
+            ESatIconNotSelfExplanatory
+            };
+
+    public:  // Constructors
+
+        /**
+         * C++ default constructor.
+         */
+        IMPORT_C RSatService();
+
+    public: // New functions
+
+        /**
+         * Opens the sub-session.
+         *
+         * @since 5.1
+         * @param aSession Sub-session.
+         * @leave Error value returned by RSubSessionBase::CreateSubSession.
+         */
+        IMPORT_C void OpenL( const RSatSession& aSession );
+
+        /**
+         * Closes the sub-session.
+         * 
+         * @since 5.1
+         */
+        IMPORT_C void Close();
+        
+        /**
+         * Requests notification when idle mode text or image are
+         * updated.
+         *
+         * Idle client needs to monitor for setup idle mode content updates.
+         * When a request is completed, the Idle client 
+         * can read new content using GetSetupIdleModeTextL and must 
+         * report idle mode content displaying result using
+         * SetIdleModeTextResponse().
+         *
+         * @since 5.1
+         * @param aStatus Request to be completed on update.
+         * @return KErrNone or a system-wide error code. 
+         * On an error request is not accepted so don't set requester active.      
+         */
+        IMPORT_C TInt NotifySetupIdleModeTextChange( 
+            TRequestStatus& aStatus );
+            
+        /**
+         * Cancels notification request for setup idle mode 
+         * text or image change.
+         *        
+         * @since 5.1
+         */
+        IMPORT_C void NotifySetupIdleModeTextChangeCancel();
+            
+        /**
+         * Get idle mode text and icon.
+         *
+         * Icon and text should be displayed depending on how aIconQualifier
+         * specifies icon role. Result must be reported using  
+         * RSatService::SetIdleModeTextResponse().
+         * Notice: result needs to be reported also if content is available 
+         * already after startup when client requests notification for the 
+         * first time.
+         * If unable to display icon, then only text can be displayed (adjust
+         * reported result value).
+         *
+         * @since 5.1
+         * @param aText New text, if available. Ownership transferred.
+         * NULL if no text to display.
+         * @param aIconQualifier Specifies if icon, text or both are preferred.
+         * @param aRecordNumber Record id for icon.
+         * @return Reserved for future use.
+         * @leave KErrNotFound ESatIconNotSelfExplanatory icon without text.
+         */
+        IMPORT_C TBool GetSetupIdleModeTextL( 
+            HBufC*& aText, 
+            TSatIconQualifier& aIconQualifier,
+            TUint8& aRecordNumber );        
+
+        /**
+         * Gets the information of icons from the SIM.
+         *
+         * @since 5.1
+         * @param aRecordNumber Record number from proactive command.
+         * @param aIconEf Contains the icon information.
+         * @leave Error value returned by RSubSessionBase::SendReceive.
+         * @leave KErrCorrupt if the info is invalid.
+         */
+        IMPORT_C void GetIconInfoL( TUint8 aRecordNumber, 
+                                    RIconEf& aIconEf ) const;
+
+        /**
+         * Gets the bitmap of selected icon from SIM. Client should determine
+         * the suitable icon using GetIconInfoL.
+         *
+         * @since 5.1
+         * @param aIconInfo Information of the selected icon.
+         * @leave Error value returned by RSubSessionBase::SendReceive.
+         * @leave Error value returned by CFbsBitmap::Duplicate.
+         * @leave Error value returned by RSubSessionBase::Send.
+         * @return Bitmap of the icon. The client is responsible for deleting
+         * the pointer.
+         */
+        IMPORT_C CFbsBitmap* GetIconL( const TSatIconInfo& aIconInfo ) const;
+
+        /**
+         * Sets SetUpIdleModeText response. 
+         *
+         * This must be called by the Idle client application after 
+         * IdleModeText has been modified by SAT, meaning
+         * when RSatService::NotifySetupIdleModeTextChange() is completed.
+         * Also needs to be called if GetSetupIdleModeTextL() returned 
+         * content and RSatService::NotifySetupIdleModeTextChange() 
+         * notification was not requested yet.
+         * 
+         * @since 5.1
+         * @param aResult Result of displaying idle mode text and icon.
+         */
+        IMPORT_C void SetIdleModeTextResponse( 
+            const TSATIdleResult& aResult ) const;
+
+
+    private: // New functions
+
+        /**
+         * Checks that the data from SIM is valid.
+         * 
+         * @since 5.1
+         * @param aData Icon info to be checked.
+         * @leave KErrCorrupt if the info is invalid.
+         */
+        void CheckInfoValidityL( const TDesC8& aData ) const;
+ 
+        /**
+         * Set ETSI specified bitmap data to TSatIconInfo.
+         * 
+         * @since 5.1
+         * @param aContainer Client side Icon info.
+         * @param aIconSatData RSat::TIcon data from server.
+         */    
+        void SetIconInfoL( TSatIconInfo& aContainer, 
+                          const TDesC8& aIconSatData ) const;
+
+        /**
+         * Convert TSatIconinfo to TSatInternalIconInfo.
+         * 
+         * @since 5.1
+         * @param aIconInfo user side icon info.
+         * @param aInternalIconINfo sat side icon info.
+         */                           
+        void FillInternalIconInfo( const TSatIconInfo& aIconInfo, 
+                 TSatInternalIconInfo& aInternalIconInfo ) const;                          
+
+    private: 
+
+        /** 
+         * Prohibit copy constructor if not deriving from CBase. 
+         */
+        RSatService( const RSatService& );
+
+        /**  
+         * Prohibit assigment operator if not deriving from CBase. 
+         */
+        RSatService& operator=( const RSatService& );
+        
+    private: // Data  
+        
+        /**
+         * Arguments for asynchronous message.
+         */
+        TIpcArgs iArgs;
+
+        /**
+         * Maximum support icon size.
+         */        
+        TInt iMaxIconDataSize;
+        
+        /**
+         * SetupIdleMode content monitoring.
+         * Own
+         */   
+        CSatPluginMonitor* iSatPluginMonitor;
+
+    };
+
+#endif // RSATSERVICE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SAT/tsaticoninfo.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2002-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:  Capsulates the icon information from the SIM.  
+*
+*/
+
+
+#ifndef TSATICONINFO_H
+#define TSATICONINFO_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+ *  Capsulates the SAT icon information.
+ *
+ *  @lib SatClient.lib
+ *  @since 2.6
+ */
+NONSHARABLE_CLASS( TSatIconInfo )
+    {
+    public: // Enums
+
+        /**
+         * Coding scheme of the icon.
+         * @since 2.6
+         */
+        enum TCodingScheme
+            {
+            EBasic = 0x11,  ///< Basic (Black and White) icon
+            EColor = 0x21   ///< Color icon
+            };
+
+    public:  // Constructors
+
+        /**
+         * Constructor.
+         */
+        TSatIconInfo();
+
+    public: // New functions
+
+        /**
+         * Size of the icon.
+         *
+         * @since 5.1
+         * @return Size of the icon.
+         */
+        IMPORT_C TSize IconSize() const;
+
+        /**
+         * Coding scheme of the icon.
+         * 
+         * @since 5.1
+         * @return Icon coding scheme.
+         */
+        IMPORT_C TCodingScheme CodingScheme() const;
+
+        /**
+         * Identifies the EF (Elementary File), where the icon is located in
+         * the SIM.
+         * 
+         * @since 5.1
+         * @return EF identifier.
+         */
+        IMPORT_C TUint16 FileIdentifier() const;
+
+        /**
+         * Offset to the EF, where the icon is located.
+         * 
+         * @since 5.1
+         * @return Offset to the EF.
+         */
+        IMPORT_C TUint16 Offset() const;
+
+        /**
+         * Length of the icon data.
+         * 
+         * @since 5.1
+         * @return Length of the icon data.
+         */
+        IMPORT_C TUint16 DataLength() const;
+        
+        /**
+         * Set size of the icon.
+         * 
+         * @since 5.1
+         * @param aIconSize Size of the icon.
+         */
+        void SetIconSize( const TSize aIconSize );
+
+        /**
+         * Set coding scheme of the icon.
+         * 
+         * @since 5.1
+         * @param aCodingScheme Icon coding scheme.
+         */
+        void SetCodingScheme( const TCodingScheme aCodingScheme );
+
+        /**
+         * Set identifies the EF (Elementary File), where the icon is located in
+         * the SIM.
+         * @since 5.1
+         * @param EF identifier.
+         */
+        void SetFileIdentifier( const TUint16 aFileIdentifier );
+
+        /**
+         * Set offset to the EF, where the icon is located.
+         * 
+         * @since 5.1
+         * @param aOffset Offset to the EF.
+         */
+        void SetOffset( const TUint16 aOffset);
+
+        /**
+         * Set length of the icon data.
+         * 
+         * @since 5.1
+         * @param aDataLength Length of the icon data.
+         */
+        void SetDataLength( const TUint16 aDataLength );
+
+    private: // Data
+
+        /** 
+         * Size of the icon. 
+         */
+        TSize iSize;
+
+        /** 
+         * Coding scheme of the icon. 
+         */
+        TCodingScheme iCodingScheme;
+
+        /** 
+         * File identifier 
+         */
+        TUint16 iFileIdentifier;
+
+        /** 
+         * Offset of the icon in EF. 
+         */
+        TUint16 iOffset;
+
+        /** 
+         * Length of the icon data. 
+         */
+        TUint16 iLength;
+    };
+
+#endif // TSATICONINFO_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SATDomainPSKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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:  SATEngine Subsystem PubSub uid and keys declaration.
+*
+*/
+
+
+#ifndef SATDOMAINPSKEYS_H
+#define SATDOMAINPSKEYS_H
+
+// CONSTANTS
+
+// SAT Configuration API
+// Uid :
+const TUid  KPSUidSatServer = { 0x101F79FC };
+
+/**
+ * Time between language selection notification and reboot.
+ *
+ * Default value: N/A
+ */
+const TUint32 KSatLanguageSelectionTimeBeforeReboot( 0x00000008 );
+
+#endif      // SATDOMAINPSKEYS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ScreensaverInternalPSKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2004-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:  Internal Publish & Subscribe keys.
+ *
+ *
+*/
+
+
+#ifndef SCREENSAVER_INTERNAL_PS_KEYS_H
+#define SCREENSAVER_INTERNAL_PS_KEYS_H
+
+#include <e32def.h>
+#include <e32cmn.h>
+
+const TUid KPSUidScreenSaver = { 0x101F8771 };
+
+/**
+ * Screen saver preview mode. This integer value triggers screen saver
+ * preview mode. Value is normally 0 but when set to 1 screen saver
+ * application goes to preview mode (ie. turns screensaver on for 10 seconds
+ * and then terminates it). If screensaver is already on when value is set
+ * to 1 then nothing happens.
+ *
+ * Possible values:
+ * 0: default value
+ * 1: triggers screensaver preview mode
+ */
+const TUint32 KScreenSaverPreviewMode      = 0x00000001;
+
+/**
+ * Indication of allowing screen saver to be activated.
+ *
+ * Possible values:
+ *  0: screen saver is allowed to be activated.
+ * >0: screen saver is not allowed to be activated.
+ */
+const TUint32 KScreenSaverAllowScreenSaver = 0x00000002;
+
+/**
+ * Indication of whether screen saver is on (active) or not.
+ *
+ * Possible values:
+ *  0: screen saver is not active.
+ * >0: screen saver is displaying.
+ */
+const TUint32 KScreenSaverOn               = 0x00000003;
+
+/**
+ * Indication of the state of screensaver preview
+ */
+const TUint32 KScreenSaverPreviewState     = 0x00000004;
+enum TScreenSaverPreviewState
+    {
+    EScreenSaverPreviewNone,      // Initial state, no preview in progress
+    EScreenSaverPreviewLoading,   // Preview is loading
+    EScreenSaverPreviewInvalid,   // Invalid file for preview
+    EScreenSaverPreviewLoaded,    // Preview has been loaded, about to start
+    EScreenSaverPreviewStart,     // Start of preview displaying
+    EScreenSaverPreviewEnd,       // Preview displaying ended
+    EScreenSaverPreviewCancel,    // Preview cancelled (e.g. by user)
+    EScreenSaverPreviewError      // An error occurred during preview
+    };
+
+/**
+ * Indicates whether Idle was in front when screensaver was started.
+ * Keyguard uses this indication to decide if it can be automatically
+ * activated.
+ * 
+ * Possible values:
+ * 0: Screensaver not active, or not started from Idle
+ * 1: Screensaver was started from Idle
+ */
+const TUint32 KScreenSaverActivatedFromIdle     = 0x00000005;
+
+/**
+ * Indicates that currently selected screensaver plugin settings (that can
+ * not be otherwise watched through CR & P&S notifications) are being
+ * changed. Written by Themes, listened to by plugins interested in knowing
+ * whether their settings have changed "on the fly". The plugin does not 
+ * write the value, as not all plugins will even listen to this key. 
+ * 
+ * Possible values:
+ * 0: Configured plugin is not the currently selected one,
+ *     or settings were left unchanged
+ * 1: Current plugin is being configured. This lets the configuration
+ *     dialog know the active plugin settings are being changed in Themes, so
+ *     it can notify the plugin loaded in Screensaver context that its
+ *     settings have changed through this key.
+ * 2: Current plugin was configured, and its settings were changed. The
+ *     plugin running in Screensaver process should notice this, and reload
+ *     its settings. After this the plugin should write the value back to 0.
+ */
+const TUint32 KScreenSaverPluginSettingsChanged = 0x00000006;
+enum TScreenSaverPluginSettingsState
+    {
+    // Configured plugin not current, or settings did not change
+    EScreenSaverPluginSettingsNoChange,
+    // Current plugin is being configured
+    EScreenSaverPluginSettingsChanging,
+    // Current plugin settings have changed
+    EScreenSaverPluginSettingsChanged
+    };
+
+
+/**
+ * Indicates that Screensaver should not attempt to use display power save mode
+ * 
+ * Possible values:
+ * 0: Power save mode is used normally
+ * 1: Power save mode is not used
+ */
+const TUint32 KScreenSaverNoPowerSaveMode = 0x00000007;
+
+#endif // SCREENSAVER_INTERNAL_PS_KEYS_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/SettingsInternalCRKeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,1044 @@
+/*
+* Copyright (c) 2004 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:   Settings UIs domain Central Repository keys.
+*
+*/
+
+
+
+#ifndef SETTINGSINTERNALCRKEYS_H
+#define SETTINGSINTERNALCRKEYS_H
+
+// INCLUDES
+#include <e32def.h>
+
+// CONSTANTS
+
+/**
+* Network settings CR UID.
+*/
+const TUid KCRUidNetworkSettings = {0x101F8751};
+
+
+/**
+* Determines whether the user see visual notifications
+* when entering or leaving different cellular systems.
+* Possible interger values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsServiceAlertNotes = 0x00000004;
+
+/**
+* Determines whether the user will hear a service tone
+* when entering or leaving different cellular systems.
+* Possible interger values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsServiceAlertTones = 0x00000005;
+
+/**
+* Micro cellular network (Mcn) Display
+*
+* Possible values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsMcnDisplay = 0x00000006;
+
+
+/**
+* Security settings CR UID
+*/
+const TUid KCRUidSecuritySettings = {0x101F877A};
+
+/**
+* Autolock time
+* Possible values are:
+* 0-999 minutes
+*/
+const TUint32 KSettingsAutoLockTime = 0x00000001;
+
+/**
+* Autolock status
+* Possible values are:
+* 0 = phone is not locked
+* 1 = phone is locked
+*/
+const TUint32 KSettingsAutolockStatus = 0x00000002;
+
+/**
+* A CDMA Operator specific requirement, to be able to set the phone to
+* "Lock On Power Up" in General Settings. When this key is set to 1
+* the device security will lock the system (using Autolock) after each
+* phone reboot.
+*
+* Possible values are:
+* 0 = The phone doesn't get locked on Power Up
+* 1 = The phone gets locked on Power Up
+*/
+const TUint32 KSettingsLockOnPowerUp = 0x00000003;
+
+/**
+* Transaction Tracking status
+* Possible values are:
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingsTransactionTracking = 0x00000004;
+
+/**
+* Automatic keyguard time in seconds
+* Possible values are from 0 to 3600
+*/
+const TUint32 KSettingsAutomaticKeyguardTime = 0x00000005;
+
+/**
+* Automatic keyguard maximum time
+* Value in seconds
+*/
+const TUint32 KSettingsMaxAutomaticKeyguardTime = 0x00000006;
+
+
+/**
+* Communication (aka networking) related settings CR UID
+*/
+const TUid KCRUidCommunicationSettings = {0x101F877B};
+
+/**
+* Name of polymorphic DLL to be loaded for VPN management UI.
+*/
+const TUint32 KSettingsVPNImplementation = 0x00000001;
+
+/**
+* VPN tab in Connection settings UI to be displayed or
+* hidden from the user.
+*
+* Possible values are:
+* 0 = Tab is hidden
+* 1 = Tab is shown
+*/
+const TUint32 KSettingsVPNSupported = 0x00000002;
+
+/**
+* Access Points item in Connection settings folder to be displayed or
+* hidden from the user.
+*
+* Possible values are:
+* 0 = item is hidden
+* 1 = item is shown
+*/
+const TUint32 KSettingsAPSettingsSupported = 0x00000003;
+
+/**
+* Terminal personalization settings CR UID
+*/
+const TUid KCRUidPersonalizationSettings = {0x101F877C};
+
+
+
+/**
+* Is operator logo is shown to the user.
+* 0 = Logo not shown
+* 1 = Logo shown
+*/
+const TUint32 KSettingsDisplayOperatorLogo = 0x00000003;
+
+/**
+* Defines if the "Operator Logo" list item is to be made visible or
+* hidden in General Settings.
+*/
+const TUint32 KSettingsShowOperatorLogoSetting = 0x00000004;
+
+/**
+* Defines if Active Idle functionality is enabled.
+* 0 = Disabled
+* 1 = Enabled
+*/
+const TUint32 KSettingsActiveIdleState = 0x00000006;
+
+/**
+* Hide/Unhide Confirm Sat operations item in UI
+* 0 = Hide
+* 1 = Show
+*/
+const TUint32 KSettingsConfirmSatOperationsSupported = 0x00000007;
+
+/**
+* Screen saver period.
+* The value is an integer between 5 and 90.
+* Default value is 15
+**/
+const TUint32 KSettingsScreenSaverPeriod =  0x00000008;
+
+/**
+* Confirm Sat operations setting
+* 0 = No
+* 1 = Yes
+*/
+const TUint32 KSettingsConfirmSatOperations = 0x00000009;
+
+/**
+* Custom banner text for idle screen
+* String value.
+*/
+const TUint32 KSettingsCustomBannerText = 0x0000000A;
+
+/**
+* Power Save Led setting value
+* Integer value.
+*/
+const TUint32 KSettingsDisplayTurnoffTimeout = 0x0000000B;
+
+/**
+* Plugin UID of the operator specific full screen ActiveIdle.
+* Integer value.
+* Default value: 0
+*/
+const TUint32 KSettingsOperatorActiveIdle = 0x0000000C;
+
+/**
+* Pen writing speed for HWR
+* Possible values are: 1-5 (very fast - very slow)
+* Default value: 3
+*/
+const TUint32 KSettingsWritingSpeed = 0x0000000D;
+
+/**
+* Pen trail width for HWR.
+* Possible values are: 1-5 (very thin - very thick)
+* Default value: 3
+*/
+const TUint32 KSettingsPenWidth = 0x0000000E;
+
+/**
+* Pen trail color for HWR.
+* 24-bit RGB colour value with 8 bits each for red, green and blue.
+* The integer is of form 0xaabbggrr
+* Default value: 0
+*/
+const TUint32 KSettingsPenColor = 0x0000000F;
+
+/**
+* Default input method of the Chinese PRC VKB.
+* Possible values are: 1 - PinYin; 4 - Stroke
+* Default value: 1
+*/
+const TUint32 KSettingsDefaultVkbPrc = 0x00000010;
+
+/**
+* Default input method of the Chinese TaiWan VKB.
+* Possible values are: 2 - ZhuYin; 4 - Stroke
+* Default value: 2
+*/
+const TUint32 KSettingsDefaultVkbTw = 0x00000011;
+
+/**
+* Default input method of the Chinese HongKong VKB.
+* Possible values are: 4 - Stroke; 8 - CangJie
+* Default value: 4
+*/
+const TUint32 KSettingsDefaultVkbHk = 0x00000012;
+
+/**
+* Pen Input Language.
+* Possible values defined in enum TLanguage
+* Default value: 0
+*/
+const TUint32 KSettingsPenInputLang = 0x00000013;
+
+/**
+* Indicates whether T-coil hearing aid mode is enabled or not.
+* Integer value.
+* Default value: 0
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingsHearingAidMode = 0x00000014;
+
+/**
+* Guide line used in hand writing recognition box.
+* If enabled, horizontal line will appear in the box.
+* Default value: 1
+* 0 = Guide Line Off
+* 1 = Guide Line On
+*/
+const TUint32 KSettingsPenInputGuideLine = 0x00000015;
+
+/**
+* To Variate Operator Specific ActiveIdle Text.
+* String value.
+*/
+const TUint32 KSettingsOperatorVariantActiveIdleText = 0x00000016;
+
+/**
+* To variate screensaver timeout settings item visibility
+* 0 = item is hidden (default)
+* 1 = item is shown
+*/
+const TUint32 KSettingsScreensaverTimeoutItemVisibility = 0x00000017;
+
+/**
+* Indicates whether the function (recognition with dictionary) is enabled or not.
+* Boolean value.
+* Default value: 0
+* 0 = disabled
+* 1 = enabled
+*/
+const TUint32 KSettingRecognitionwithdictionary = 0x00000018;
+
+/**
+* To save the setting for enable / disable optical joystick
+* Integer value.
+* Default value: 1
+* 0 = Guide Line Off
+* 1 = Guide Line On
+*/
+const TUint32 KSettingsOpticalJoystickStatus = 0x00000019;
+
+/**
+* Telephony settings CR UID.
+*/
+const TUid KCRUidTelephonySettings = {0x101F877E};
+
+/**
+* Any key answer
+*
+* Possible values:
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsAnyKeyAnswer = 0x00000001;
+
+/**
+* Automatic redial
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsAutomaticRedial = 0x00000002;
+
+/**
+* One key dialling
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsOneKeyDialling = 0x00000003;
+
+/**
+* This key will include information whether the prefix change
+* is active.
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsDialPrefixChangeMode = 0x00000004;
+
+/**
+* This key will include the prefix set by user.
+* Text string maximum 10 characters.
+* Only dial related characters allowed.
+*/
+const TUint32 KSettingsDialPrefixText = 0x00000005;
+
+/**
+* Soft Reject default text used.
+*
+* 0 = Default in use
+* 1 = User defined text in use
+*/
+const TUint32 KSettingsSoftRejectDefaultInUse = 0x00000006;
+
+/**
+* Soft Reject On/Off. Has the user enabled Soft Reject.
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsSoftReject = 0x00000007;
+
+/**
+* User defined Soft Reject text. Any text up to 160 characters.
+* No default value in CentRep (there is a default value, but it is
+* localized).
+*/
+const TUint32 KSettingsSoftRejectText = 0x00000008;
+
+/**
+* Defines if still image for video calls (when camera is disabled) is in use.
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsVTStillImage = 0x00000009;
+
+/**
+* This keys is required for the Video Telephony still image
+* feature in General Settings to store the still image path
+*/
+const TUint32 KSettingsVTStillImagePath = 0x0000000A;
+
+/**
+* This key is required for VoIP Last Call Timer
+*/
+const TUint32 KLogsLastCallTimerLineVoIP = 0x0000000B;
+
+/**
+* This key is required for VoIP Received Calls Timer
+*/
+const TUint32 KLogsReceivedCallsTimerLineVoIP = 0x0000000C;
+
+/**
+* This key is required for VoIP Dialled Calls Timer
+*/
+const TUint32 KLogsDialledCallsTimerLineVoIP = 0x0000000D;
+
+/**
+* This key is required for SCCP stack installation indication
+*/
+const TUint32 KSCCPinstallUpgrade = 0x0000000E;
+
+/**
+* This key is required for dynamic VoIP
+*/
+const TUint32 KDynamicVoIP = 0x0000000F;
+
+/**
+* This key is required for Long Press of Call Key setting item
+* Values: 0,1 --> Inactive
+*		  2 --> Video call
+* (Default value is 1 and when Restore Fact. Settings is done value is 0)
+*/
+const TUint32 KSettingsUiLongCallKeyPress = 0x00000010;
+
+/**
+* This key is required for VT call answer mute status
+* 0 = Ask first (default value)
+* 1 = No
+* 2 = Yes
+*/
+const TUint32 KSettingsVTVideoSending = 0x00000011;
+
+
+/**
+* key to define what to do when opening slide
+* 0: Not answer call when opening slide
+* 1: Answer call when opening slide (default)
+*/
+const TUint32 KSettingsOpeningSlideAnswer = 0x00000012;
+
+/**
+* key to define what to do when closing slide
+* 0: Not end call when closing slide
+* 1: End call when closing slide (default)
+*/
+const TUint32 KSettingsClosingSlideEnd = 0x00000013;
+
+
+/**
+* key to define whether to show or not show side settings 
+* 0: Not show slide settings (default)
+* 1: Show slide settings
+*/
+
+const TUint32 KSettingsShowSlideSettings = 0x00000014;
+
+/**
+* CDMA Telephony settings CR UID.
+*/
+const TUid KCRUidCdmaTelephonySettings = {0x101F877F};
+
+/**
+* Locale settings CR UID.
+*/
+const TUid KCRUidLocaleSettings = {0x101F8780};
+
+/**
+* Arabic & Hebrew default number mode - integer value.
+*/
+const TUint32 KSettingsDefaultNumberMode = 0x00000001;
+
+/**
+* Default Indic Number Mode for Hindi Digits - integer value.
+*/
+const TUint32 KSettingsIndicDefaultNumberMode = 0x00000002;
+
+/**
+* Peripheral settings CR UID.
+*/
+const TUid KCRUidPeripheralSettings = {0x101F8781};
+
+/**
+* Timeout for setting off the display lights.
+* Value is in seconds.
+*/
+const TUint32 KSettingsDisplayLightsTimeout = 0x00000001;
+
+/**
+* Call forwarding settings CR UID.
+*/
+const TUid KCRUidCallForwarding = {0x101F8782};
+
+/**
+* call forwarding "forwarded-to" number 1.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber1 = 0x00000001;
+
+/**
+* call forwarding "forwarded-to" number 2.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber2 = 0x00000002;
+
+/**
+* call forwarding "forwarded-to" number 3.
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumber3 = 0x00000003;
+
+/**
+* call forwarding "forwarded-to" number 1. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls1 = 0x00000004;
+
+/**
+* call forwarding "forwarded-to" number 2. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls2 = 0x00000005;
+
+/**
+* call forwarding "forwarded-to" number 3. Alternate line
+* String value
+*/
+const TUint32 KSettingsCFDefaultNumberAls3 = 0x00000006;
+
+/**
+* "call forwarding when no reply"-timer value.
+* Integer value.
+*/
+const TUint32 KSettingsCFTimerValue = 0x00000007;
+
+/**
+* "call forwarding when no reply"-timer value for alternate line.
+* Integer value.
+*/
+const TUint32 KSettingsCFTimerValueAls = 0x00000008;
+
+/**
+* Last used number diverted data calls
+* String value
+*/
+const TUint32 KSettingsCFUsedDataNumber = 0x00000009;
+
+/**
+* Last used number diverted fax calls
+* String value
+*/
+const TUint32 KSettingsCFUsedFaxNumber = 0x0000000A;
+
+/**
+* Common Telephony Settings CR UID.
+*/
+const TUid KCRUidCommonTelephonySettings = {0x101F8831};
+
+/**
+* Summary after call
+*
+* 0 = Off
+* 1 = On
+*/
+const TUint32 KSettingsSummaryAfterCall = 0x00000001;
+
+/**
+* Settings for Rich Call features
+*/
+const TUid KCRUidRichCallSettings = {0x101F883B};
+
+/**
+* Calling Line Identification Restriction for PS calls
+*
+* 0 = KRCSEClirOff
+* 1 = KRCSEClirOn
+* 2 = KRCSEClirDefault
+*/
+const TUint32 KRCSEClir = 0x00000000;
+
+/**
+* Determines whether warning is given to user, when WLAN signal
+* strength drops too low.
+*
+* 0 = KRCSEEarlyWarningOff
+* 1 = KRCSEEarlyWarningOn
+*/
+const TUint32 KRCSEWlanEarlyWarning = 0x00000001;
+
+/**
+* Circuit Switched call waiting.
+*
+* 0 = KRCSECSCallWaitingOff
+* 1 = KRCSECSCallWaitingOn
+*/
+const TUint32 KRCSECSCallWaiting = 0x00000002;
+
+/**
+* Determines whether the registeration of VoIP is automatic or manual.
+*
+* 0 = KRCSEAutomatic
+* 1 = KRCSEManual
+*/
+const TUint32 KRCSEPSLogin = 0x00000003;
+
+/**
+* Determines whether the user wants to receive anonymous calls.
+* Possible values are:
+* 0 = KRCSEAnonymousCallsAllowed
+* 1 = KRCSEAnonymousCallsBlocked
+*/
+const TUint32 KRCSEAnonymousCallBlockRule = 0x00000004;
+
+/**
+* Determines call type preference.
+* Possible values are:
+* 0 = KRCSECSCallPreferred
+* 1 = KRCSEInternetCallPreferred
+*/
+const TUint32 KRCSEPreferredTelephony = 0x00000005;
+
+/**
+* Determines status of Do Not Disturb setting.
+* Possible values are:
+* 0 = KRCSEDoNoDisturbOff
+* 1 = KRCSEDoNoDisturbOn
+*/
+const TUint32 KRCSEDoNotDisturb = 0x00000006;
+
+/**
+* Determines status of PS (VoIP) call waiting setting.
+* Possible values are:
+* 0 = KRCSEPSCallWaitingOff
+* 1 = KRCSEPSCallWaitingOn
+*/
+const TUint32 KRCSPSCallWaiting = 0x00000007;
+
+/**
+* Determines id of preferred VOIP service.
+* 0 = Not set
+* 1 = CS / Video service
+* 2 = voip stub
+* 3 = voip service 1
+* 4 = voip service 2
+* n = voip service n
+*/
+const TUint32 KRCSPSPreferredService = 0x00000008;
+
+
+/**
+* Miscelaneous Settings
+*/
+const TUid KCRUidMiscSettings = {0x1000A82B};
+
+/**
+Phone settings CR UID
+*/
+const TUid KCRUidPhoneSettings = {0x1028239D};
+
+/**
+Call waiting feature
+0 = disabled
+1 = Enabled
+*/
+const TUint32 KPSetCallWaiting = 0x00000001;
+
+/**
+*  Device Management Settings CR UID.
+*/
+const TUid KCRUidDeviceManagementSettings = {0x2002120B};
+
+/**
+Determines whether to show power saving query before entering power saving mode. 
+0: Off
+1: On (Default)
+*/
+const TUint32 KSettingsPowerSavingQuery = 0x00000001;
+
+/**
+*  Slide Settings CR UID.
+*/
+const TUid KCRUidSlideSettings = {0x20015159};
+
+enum TSlideSetting
+    {
+    ESlideSettingOff = 0,
+    ESlideSettingOn  
+    };
+
+/**********************************************************
+ * User settings for slide handling
+ *
+ */
+
+/**
+ * Used to control which behavior is chosen when closing the cover. 
+ * Possible values are 0=Off, 1=On
+ */
+const TUint32 KSlideCloseCover                               = 0x00000001;
+
+const TUint32 KSlideOpenCoverUri                             = 0x00000002;
+
+const TUint32 KSlideOpenCoverCaption                         = 0x00000003;
+
+/**
+ * This setting defines whether keyguard is activated by closing the cover 
+ *
+ * Possible values:
+ * 0: Closing cover does not activate keyguard.
+ * 1: Closing the cover activates keyguard.
+ * 2: User is asked "Do you want to activate keyguard?".
+ * 3: Automatic - keyguard returns to the state before opening the cover.
+ */
+const TUint32 KSlideKeyguard                                 = 0x00000004;
+enum TSlideSettingKeyguard
+    {
+    ESlideSettingsKeyguardActivatingOff = 0,
+    ESlideSettingsKeyguardActivatingOn,
+    ESlideSettingsKeyguardActivatingAskMe,
+    ESlideSettingsKeyguardActivatingAutomatic
+    }; 
+
+/**
+ * Used to control if audio is routed when opening the slide. 
+ * Possible values are 0=routing not changed, 1=routing changed
+ */
+const TUint32 KSlideAudioRouting                             = 0x00000005;
+
+/**
+ * User setting for Intelligent Slide
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KSlideAutomaticAction                          = 0x00000010;
+
+/**********************************************************
+ * Configurability settings 
+ * This group of settings is used to specify which slide behavior is enabled
+ * Different slide types need different items 
+ * For example ITU-T slide need call handling with slide
+ * And full-Qwerty slide does not use call handling but requires audio routing with slide
+ */
+
+/**
+ * Defines which localisation to use for slide settings
+ * Possible values
+ * 0: Slide
+ * 1: Cover
+ * 2: Flip
+ * 3: Fold
+ * 4: Swivel
+ * 5: reserved 
+ */
+const TUint32 KSlideTerminology                             = 0x00000101;
+
+/**
+ * Slide Events to react to
+ * Depending on this value, different P/S keys in KPSUidHWRM are used for monitoring the slide state 
+ * Possible values are 
+ * 0: Grip
+ * 1: Flip
+ * 2: Twist  
+ */
+const TUint32 KSlideShowEventType                               = 0x00000102;
+
+/**
+ * Perform call handling with slide 
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowCallHandling                            = 0x00000110;
+
+/**
+ * Perform audio routing with slide 
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowAudioRouting                            = 0x00000111;
+
+/**
+ * Perform keypad lock handling with slide 
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowKeypadlock                              = 0x00000112;
+
+/**
+ * Application launch when slide open in idle
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowAppLaunch                               = 0x00000113;
+
+/**
+ * Go to idle with slide close
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowGoToIdle                                = 0x00000114;
+
+/**
+ * Device lock with slide 
+ * Possible values
+ * 0: Disabled
+ * 1: Enabled 
+ */
+const TUint32 KSlideShowDeviceLock                              = 0x00000115;
+
+/**********************************************************
+ * Intelligent Slide configurability settings
+ * The following items describe in which applications/views 
+ * Intelligent slide feature is enabled
+ *
+ */
+
+/**
+ * Messaging Main View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMainView                            = 0x00001001;
+
+/**
+ * Messaging Message List View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMessageListView                     = 0x00001002;
+
+/**
+ * Messaging One Row Message List View
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingOneRowMessageListView               = 0x00001003;
+
+/**
+ * Messaging Text Message Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingTextMessageViewer                   = 0x00001004;
+
+/**
+ * Messaging Multimedia Message Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingMultimediaMessageViewer             = 0x00001005;
+
+/**
+ * Messaging Uni Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KMessagingUniEditor                           = 0x00001006;
+
+/**
+ * Email Viewer
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KEmailViewer                                  = 0x00001010;
+
+/**
+ * Email Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KEmailEditor                                  = 0x00001011;
+
+/**
+ * Browser Content view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KBrowserContentView                           = 0x00001020;
+
+/**
+ * Browser Bookmarks view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KBrowserBookmarksView                         = 0x00001021;
+
+/**
+ * Clock Main view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockMainView                                = 0x00001030;
+
+/**
+ * Clock Alarm editor 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockAlarmEditor                             = 0x00001031;
+
+/**
+ * Clock MultiAlarm view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockMultiAlarmView                          = 0x00001032;
+
+/**
+ * Clock World clock view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockWorldClockView                          = 0x00001033;
+
+/**
+ * Clock World clock view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KClockCountDownView                           = 0x00001034;
+
+
+/**
+ * Notepad Editor
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KNotepadEditor                                = 0x00001040;
+
+/**
+ * Notepad List view
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KNotepadListView                              = 0x00001041;
+
+/**
+ * Phone Incoming call 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KPhoneIncomingCall                            = 0x00001050;
+
+/**
+ * File Manager Folder view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KFileManagerFolderView                        = 0x00001060;
+
+/**
+ * Calendar Main(Month/Week/Day/To-Do) view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarMainView                             = 0x00001070;
+
+/**
+ * Calendar Event(Meeting/Memo/Anniversary/To-Do note) view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarEventView                            = 0x00001071;
+
+/**
+ * Calendar Event(Meeting/Memo/Anniversary/To-Do note) editor 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KCalendarEventEditor                          = 0x00001072;
+
+/**
+ * Contacts Group view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsGroupView                            = 0x00001080;
+
+/**
+ * Contacts Details view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsDetailsView                          = 0x00001081;
+
+/**
+ * Contacts Editor 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsEditor                               = 0x00001082;
+
+/**
+ * Contacts Communication Launcher view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KContactsCommunicationLauncherView            = 0x00001083;
+
+
+/**
+ * Logs view 
+ * Possible values are listed in TSlideSetting
+ */
+const TUint32 KLogsView                                     = 0x00001090;
+
+
+/**
+ * Modifier keys used for global shortcuts
+ * Possible values of scan codes are listed in e32keys.h
+ * For example EStdKeyLeftShift=0x12, EStdKeyLeftCtrl=0x16
+ */
+const TUint32 KGlobalShortcutModifier1                      = 0x00002001;
+const TUint32 KGlobalShortcutModifier2                      = 0x00002002;
+
+/**
+ * Action key scancode
+ * Possible values of scan codes are listed in e32keys.h
+ */
+const TUint32 KGlobalShortcutKey00                          = 0x00002100;
+const TUint32 KGlobalShortcutKey01                          = 0x00002101;
+const TUint32 KGlobalShortcutKey02                          = 0x00002102;
+const TUint32 KGlobalShortcutKey03                          = 0x00002103;
+const TUint32 KGlobalShortcutKey04                          = 0x00002104;
+const TUint32 KGlobalShortcutKey05                          = 0x00002105;
+const TUint32 KGlobalShortcutKey06                          = 0x00002106;
+const TUint32 KGlobalShortcutKey07                          = 0x00002107;
+const TUint32 KGlobalShortcutKey08                          = 0x00002108;
+const TUint32 KGlobalShortcutKey09                          = 0x00002109;
+const TUint32 KGlobalShortcutKey10                          = 0x00002110;
+const TUint32 KGlobalShortcutKey11                          = 0x00002111;
+const TUint32 KGlobalShortcutKey12                          = 0x00002112;
+const TUint32 KGlobalShortcutKey13                          = 0x00002113;
+const TUint32 KGlobalShortcutKey14                          = 0x00002114;
+const TUint32 KGlobalShortcutKey15                          = 0x00002115;
+const TUint32 KGlobalShortcutKey16                          = 0x00002116;
+const TUint32 KGlobalShortcutKey17                          = 0x00002117;
+const TUint32 KGlobalShortcutKey18                          = 0x00002118;
+const TUint32 KGlobalShortcutKey19                          = 0x00002119;
+
+/**
+ * Application UID that should be brought to foreground/background 
+ * when corresponding action key is pressed
+ */
+const TUint32 KGlobalShortcutApp00                          = 0x00002200;
+const TUint32 KGlobalShortcutApp01                          = 0x00002201;
+const TUint32 KGlobalShortcutApp02                          = 0x00002202;
+const TUint32 KGlobalShortcutApp03                          = 0x00002203;
+const TUint32 KGlobalShortcutApp04                          = 0x00002204;
+const TUint32 KGlobalShortcutApp05                          = 0x00002205;
+const TUint32 KGlobalShortcutApp06                          = 0x00002206;
+const TUint32 KGlobalShortcutApp07                          = 0x00002207;
+const TUint32 KGlobalShortcutApp08                          = 0x00002208;
+const TUint32 KGlobalShortcutApp09                          = 0x00002209;
+const TUint32 KGlobalShortcutApp10                          = 0x00002210;
+const TUint32 KGlobalShortcutApp11                          = 0x00002211;
+const TUint32 KGlobalShortcutApp12                          = 0x00002212;
+const TUint32 KGlobalShortcutApp13                          = 0x00002213;
+const TUint32 KGlobalShortcutApp14                          = 0x00002214;
+const TUint32 KGlobalShortcutApp15                          = 0x00002215;
+const TUint32 KGlobalShortcutApp16                          = 0x00002216;
+const TUint32 KGlobalShortcutApp17                          = 0x00002217;
+const TUint32 KGlobalShortcutApp18                          = 0x00002218;
+const TUint32 KGlobalShortcutApp19                          = 0x00002219;
+
+#endif      // SETTINGSINTERNALCRKEYS_H
+
+// End of file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/activebackupclient/abclient.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,311 @@
+/**
+* Copyright (c) 2004-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:
+* Declaration of MActiveBackupDataClient and CActiveBackupClient
+* 
+*
+*/
+
+
+
+/**
+ @file
+ @released
+*/
+#ifndef __ACTIVEBACKUPCLIENT_H__
+#define __ACTIVEBACKUPCLIENT_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <e32cmn.h>
+#include <connect/sbdefs.h>
+
+namespace conn
+	{
+	
+	class MActiveBackupDataClient
+		/**
+		MActiveBackupDataClient is a Mixin to be implemented by an Active Backup client.
+		The client connects to the Secure Backup Server using the CActiveBackupClient
+		class and provides an instance of MActiveBackupDataClient to be called for a
+		range of functions.
+
+		The bulk transfer of data and snapshots is expected to be by means of shared
+		heaps for performance reasons so the API is expected to change in these areas.
+
+		@released
+		@publishedAll
+		*/
+		{
+	public:
+
+		/** 
+		Empty virtual destructor to avoid memory leaks
+		*/
+		virtual ~MActiveBackupDataClient() {}
+
+		///// Backup Methods /////
+
+		/**
+		This method informs the active backup data client that all snapshots have
+		been supplied. If the client has not received a snapshot then it should
+		perform a base backup.
+		*/
+		virtual void AllSnapshotsSuppliedL() = 0;
+
+		/**
+		This method receives all or part of a snapshot of data to allow calculation of an
+		incremental backup.  The snapshot is one that was previously supplied by the data
+		owner.  The snapshot data should be read from the location supplied.
+		The snapshot data may be larger than the location supplied in which case the routine will
+		be called repeatedly until all data has been supplied.
+
+		Snapshot data will also be supplied as part of a restore operation.
+
+		@param aDrive the drive being backed up
+		@param aBuffer a pointer to the base of the location from whence data can be copied.
+		@param aLastSection ETrue if this is the last section of snapshot data, else EFalse.
+		@leave KErrNotSupported if the data owner does not support incremental backups.
+		*/
+		virtual void ReceiveSnapshotDataL(TDriveNumber aDrive, TDesC8& aBuffer, TBool aLastSection) = 0;
+
+		/**
+		This method returns the expected size of backup data that will be supplied.   If an
+		incremental backup is underway then this method will not be called until after
+		ReceiveSnapshotDataL().  The size data will be used for the purpose of tracking progess
+		during a backup.  If it is inaccurate then the user may see irregular progress but the
+		actual backup data will not be affected so it is acceptable to return an estimated
+		value.
+
+		@param aDrive the drive being backed up.
+		@return the size of the data that will be returned
+		*/
+		virtual TUint GetExpectedDataSize(TDriveNumber aDrive) = 0;
+
+		/**
+		This method returns a snapshot of data to accompany a backup.  The snapshot is expected
+		to contain details on files / data being backed up.  The format of the snapshot is only
+		meaningful to the data owner.  The snapshot will be supplied if the data owner is asked
+		for an incremental backup and for a restore operation.  The snapshot data should be
+		copied to the location supplied.
+		The snapshot data may be larger than the location supplied in which case the routine will
+		be called repeatedly until all data has been retrieved.
+
+		@param aDrive the drive being backed up
+		@param aBuffer a pointer to the base of the location where data can be copied.
+		@param aFinished on return ETrue if all data has been returned for this drive, else EFalse.
+		@leave KErrNotSupported if the data owner does not support  incremental backups.
+		*/
+		virtual void GetSnapshotDataL(TDriveNumber aDrive, TPtr8& aBuffer, TBool& aFinished) = 0;
+
+		/**
+		This method prepares the implementor to return backup data.  It will be followed by a
+		sequence of calls to request the actual data.
+
+		@param aDrive the drive being backed up.
+		*/
+		virtual void InitialiseGetBackupDataL(TDriveNumber aDrive) = 0;
+
+		/**
+		This method requests a section of backup data.  InitialiseGetBackupDataL() will have been
+		called prevously to specify the drive concerned.  The data returned may be base or
+		incremental depending on the type of backup and the capability of the data owner.
+
+		@param aBuffer a pointer to the base of the location where data can be copied.
+		@param aFinished on return ETrue if all data has been returned for this drive, else EFalse.
+		*/
+		virtual void GetBackupDataSectionL(TPtr8& aBuffer, TBool& aFinished) = 0;
+
+		///// Restore Methods /////
+
+		/**
+		This method prepares the implementor to receive base restore data for a drive.
+		It will be followed by a sequence of calls to supply the actual data.
+
+		@param aDrive the drive being restored.
+		*/
+		virtual void InitialiseRestoreBaseDataL(TDriveNumber aDrive) = 0;
+
+		/**
+		This method receives a section of base restore data.
+		InitialiseRestoreBaseDataL() will have been called prevously to specify the drive concerned.
+
+		@param aBuffer a pointer to the base of the location whence data can be read.
+		@param aFinished ETrue if all data has been returned for this drive, else EFalse.
+		*/
+		virtual void RestoreBaseDataSectionL(TDesC8& aBuffer, TBool aFinished) = 0;
+
+		/**
+		This method prepares the implementor to receive incremental restore data for a drive.
+		It will be followed by a sequence of calls to supply the actual data.  If multiple
+		increments are supplied then this methid will be called before each increment.
+
+		@param aDrive the drive being restored.
+		*/
+		virtual void InitialiseRestoreIncrementDataL(TDriveNumber aDrive) = 0;
+
+		/**
+		This method receives a section of increment restore data.
+		InitialiseRestoreIncrementDataL() will have been called prevously to specify the 
+		drive concerned.
+
+		@param aBuffer a pointer to the base of the location whence data can be read.
+		@param aFinished ETrue if all data has been returned for this increment, else EFalse.
+		*/
+		virtual void RestoreIncrementDataSectionL(TDesC8& aBuffer, TBool aFinished) = 0;
+
+		/**
+		This method is called when all data to be restored has been supplied.
+
+		@param aDrive the drive being restored.
+		*/
+		virtual void RestoreComplete(TDriveNumber aDrive) = 0;
+
+		/**
+		This method prepares the implementor to return backup data on behalf of another data owner.
+		It will be followed by a sequence of calls to request the actual data. This method is only
+		for use by a proxy data manager that backs up data on behalf of other data owners.  There
+		is no corresponding method for snapshots as it is assumed that a proxy data manager will
+		only handle base data.
+
+		@param aSID the data owner whose data is to be backed up
+		@param aDrive the drive being backed up.
+		*/
+		virtual void InitialiseGetProxyBackupDataL(TSecureId aSID, TDriveNumber aDrive);
+
+		/**
+		This method prepares the implementor to receive base restore data for another data owner
+		for a drive. It will be followed by a sequence of calls to supply the actual data.
+		This method is only for use by a proxy data manager that restores up data on behalf of
+		other data owners.  There is no corresponding method for incremental data as it is assumed
+		that a proxy data manager will only handle base data.
+
+		@param aSID the data owner whose data is to be restored
+		@param aDrive the drive being restored.
+		*/
+		virtual void InitialiseRestoreProxyBaseDataL(TSecureId aSID, TDriveNumber aDrive);
+		
+		///// General Methods /////
+
+		/**
+		This method is called if copying of data is terminated prematurely to allow the 
+		implementor to tidy up.  The same method applies to all types of data and to backup
+		and restore
+		*/
+		virtual void TerminateMultiStageOperation() = 0;
+		
+		/**
+		Gets an extended interface based on a supplied uid.
+		
+		@param aUid Uid which identifies an extended interface
+		@return Pointer to an extended interface
+		*/
+		virtual TAny* GetExtendedInterface(const TInt32 aUid);
+
+		///// Test Methods /////
+		/**
+		Gets a 32-bit checksum for its private data.
+		This routine is for test purposes.  It must be implemented but an invariant checksum 
+		value can be provided.  Some tests may cause checksum values to be compared.
+    
+		@param aDrive the drive containing data being checksummed
+		@return the 32-bit checksum
+		*/
+		virtual TUint GetDataChecksum(TDriveNumber aDrive) = 0;
+		};
+
+	inline void MActiveBackupDataClient::InitialiseGetProxyBackupDataL(TSecureId /*aSID*/, TDriveNumber /*aDrive*/)
+	/** Initialises the proxy backup data
+	
+	This is not supported here.
+	
+	@param aSID the secure Id
+	@param aDrive the driver number
+	@leave KErrNotSupported Always.
+	*/
+		{
+		User::Leave(KErrNotSupported);
+		}
+
+	inline void MActiveBackupDataClient::InitialiseRestoreProxyBaseDataL(TSecureId /*aSID*/, TDriveNumber /*aDrive*/)
+		{
+	/** Initialises the proxy backup base data
+	
+	This is not supported here.
+	
+	@param aSID the secure Id
+	@param aDrive the driver number
+	@leave KErrNotSupported Always.
+	*/
+		User::Leave(KErrNotSupported);
+		}
+		
+	inline TAny* MActiveBackupDataClient::GetExtendedInterface(const TInt32 /*aUid*/)
+		{
+		return NULL;
+		}
+				
+	
+	class RABClientSession;
+	class CActiveBackupCallbackHandler;
+	
+	class CActiveBackupClient : public CBase
+		/**
+		CActiveBackupClient provides a connection to the Secure Backup Server for a data owning
+		process.
+
+		It can be used to obtain information about an active backup or restore operation. 
+		It can also be used to signal to the Secure Backup Server when the data owner is ready
+		for backup or restore.
+
+		It is also used by data owners that implement active backup or restore to provide a
+		MActiveBackupDataClient implementation.
+
+		This class owns a RActiveBackupSessionImpl instance and publishes the 
+		public API to the outside world. The reason for this facade class is twofold:
+
+		@li Hiding the implementation details of RActiveBackupSessionImpl 
+
+		@li Future binary compatibility
+
+		@released
+		@publishedAll
+		*/
+		{
+	public:
+		IMPORT_C static CActiveBackupClient* NewL();
+
+		IMPORT_C static CActiveBackupClient* NewL(MActiveBackupDataClient* aClient);
+		IMPORT_C ~CActiveBackupClient();
+		IMPORT_C void BURModeInfoL(TDriveList& aDriveList, TBURPartType& aBackupType, TBackupIncType& aIncBackupType);
+		IMPORT_C TBool DoesPartialBURAffectMeL();
+		IMPORT_C void ConfirmReadyForBURL(TInt aErrorCode);
+
+	private:
+		CActiveBackupClient();
+		void ConstructL();
+		void ConstructL(MActiveBackupDataClient* aClient);
+
+	private:
+		/** Pointer to the client session R class that's wrapped up by this class */
+		RABClientSession* iClientSession;
+		
+		/** Pointer to the Active Backup Callback Handler */
+		CActiveBackupCallbackHandler* iABCallbackHandler;
+		};
+
+	} // end namespace
+
+#endif // __ACTIVEBACKUPCLIENT_H__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/activebackupclient/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2 @@
+PRJ_EXPORTS
+abclient.h			        abclient.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/avkon.loc	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,4268 @@
+/*
+* Copyright (c) 2002 - 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 is a localisation file for AVKON
+ *     A avkon.loc file is the one and only place where the logical strings
+ *     to be localised are defined.
+ * >>>
+ * The text between >>> and <<< is just to document the syntax and
+ * you can remove it if you like.
+ *
+*/
+
+
+
+// LOCALISATION STRINGS
+
+
+// Softkey labels
+
+//d:Command text associated to a softkey in the control pane.
+//d:Opens options menu.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_option "Options"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects currently visually indicated option.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_select "Select"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects or accepts item.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_ok "Ok"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Accepts the operation and pass information to the "application".
+//l:control_pane_t1/opt7
+//
+#define text_softkey_done "Done"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Softkey for making a call.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_call "Call"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Confirms operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_yes "Yes"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Rejects operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_no "No"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Cancels previous operation without action.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_cancel "Cancel"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Exits from the current state.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_exit "Exit"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Quits from the current state.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_quit "Quit"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Back functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_back "Back"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Insert character (from special character table).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_insert_char "Insert"
+
+//d:Command text associated to a softkey in the control pane.
+//d:
+//l:control_pane_t1/opt7
+//
+#define text_softkey_close "Close"
+
+//d:Command text associated to a softkey in the control pane.
+//d:There's no command associated with the Softkey. (One space char)
+//l:control_pane_t1/opt7
+//
+#define text_softkey_empty " "
+
+//d:Command text associated to a softkey in the control pane.
+//d:Save functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_save "Save"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Show a certain show notification (e.g.Missed Calls)
+//l:control_pane_t1/opt7
+//
+#define text_softkey_show "Show"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Search functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_search "Search"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Used e.g. in soft notification to read a mail
+//l:control_pane_t1/opt7
+//
+#define text_softkey_read "Read"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Softkey associated with listening voice mailbox messages
+//l:control_pane_t1/opt7
+//
+#define text_softkey_listen "Listen"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Answer to some other than USSD message.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_answer "Answer"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Answer to USSD message.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_ussd_answer "Answer"
+
+//d:Command text associated to a softkey in the control pane.
+//d:After a name tag found, the user can start voice recognition
+//d:procedure again by selecting the left softkey Again (Voice Dialling).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_again "Again"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Unlock functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_unlock "Unlock"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Mark functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_mark "Mark"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Unmark functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_unmark "Unmark"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Copy functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_copy "Copy"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Paste functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_paste "Paste"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Opens a view for detailed information.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_details "Details"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Stop -functionality in different media players.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_stop "Stop"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Pause -functionality in different media players.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_pause "Pause"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Command key to accept the suggested operation.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_accept "Accept"
+
+// d: Text used in a softkey when there is tone playing and user can mute it by pressing softkey.
+// d: If the softkey is pressed, the tone will be muted.
+// d: Used in call handling and alarm popups
+// l: control_pane_t1/opt7
+//
+#define text_softkey_silent "Silence"
+
+
+// d: Left softkey label in notification
+// l: control_pane_t1/opt7
+//
+#define qtn_chat_invite_snotif_sk_join "Join"
+
+//d:Right softkey label when alarm note is active
+//l:control_pane_t1/opt7
+//
+#define qtn_clk_softkey_snooze          "Snooze"
+
+//d:Left softkey label when alarm note is active
+//l:control_pane_t1/opt7
+//
+#define qtn_clk_softkey_stop            "Stop"
+
+
+// Common option menu items
+
+//d:Command in options menu.
+//d:Cut operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_cut "Cut"
+
+//d:Command in options menu.
+//d:Copy operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_copy "Copy"
+
+//d:Command in options menu.
+//d:Paste operation to a text or item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_paste "Paste"
+
+//d:Command in options menu.
+//d:Undo operation
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_undo "Undo"
+
+//d:Options menu item "Edit List". Option for marking submenu.
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_list "Edit list"
+
+//d:Command in options menu.
+//d:Mark-operation. Marks selected item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_mark_one "Mark"
+
+//d:Command in options menu.
+//d:Unmark-operation. Unmarks selected marked item.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_unmark_one "Unmark"
+
+//d:Command in options menu.
+//d:Mark all -operation. Marks all items.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_mark_all "Mark all"
+
+//d:Command in options menu.
+//d:Unmark all -operation. Unmarks all marked items.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_list_unmark_all "Unmark all"
+
+//d:Command in options menu.
+//d:Opens help application and shows context sensitive help related to the current state or item.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_clipb_litxt_help "Help"
+
+//d: Editing menu item to activate 'insert number' data query
+//d: to insert number in number input mode
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_edit_insert_number "Insert number"
+
+//d: Options editing submenu item to activate 'insert number' data query
+//d: to insert number in number input mode
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_number "Insert number"
+
+//d: Edit menu item to activate special character table.
+//d:
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_edit_insert_symbol "Insert symbol"
+
+//d: Options editing submenu item to activate special character table.
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_symbol "Insert symbol"
+
+//d: Option submenu item to activate cut -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_cut "Cut"
+
+//d: Option submenu item to activate copy -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_copy "Copy"
+
+//d: Option submenu item to activate paste -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_paste "Paste"
+
+//d: Option submenu item to activate undo -operation
+//d:
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_options_edit_undo "Undo"
+
+//d: Option menu item for changing settings.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_change "Change"
+
+//d: Options menu item
+//d: Selects marked items
+//l:list_single_pane_t1_cp2
+#define qtn_cffh_select_marked "Select marked"
+
+//d: Options menu item
+//d: Selects focused item from list query
+//l:list_single_pane_t1_cp2
+#define qtn_cffh_options_select "Select"
+
+//d: Options menu item
+//d: Copies focused item to different folder
+//l:list_single_pane_t1_cp2
+#define qtn_options_org_copy_to "Copy to"
+
+//d: Shift menu item to activate multi tab input mode
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_alpha "Alpha mode"
+
+//d: Shift menu item to activate number input mode
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_numbers "Number mode"
+
+//d: Edit menu item to activate number input mode with Arabic-Indic digits
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_ah_edit_menu_arabic_nbrs "Arabic number mode"
+
+//d: Edit menu item to activate number input mode with Indic digits
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_hi_edit_menu_devanagari_nbrs "Devanagari number mode"
+
+//d: Shift menu item to activate predictive text input mode
+//d:
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_editing_shift_menu_t9 "Predictive mode"
+
+//d: Shift menu item to activate cut -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_cut "Cut"
+
+//d: Shift menu item to activate copy -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_copy "Copy"
+
+//d: Shift menu item to activate paste -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_paste "Paste"
+
+//d: Shift menu item to activate undo -operation
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define qtn_editing_shift_menu_undo "Undo"
+
+
+// Forms
+
+//d:Command in form's options menu.
+//d:Switch form item to edit state.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_edit "Edit"
+
+//d:Command in form's options menu.
+//d:Saves changes in form fields made since the mode was changed to edit state.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_save "Save"
+
+//d:Confirmation query prompt.
+//d:Does the edited unsaved data is saved when the user exits from form.
+//l: popup_note_window
+//
+#define qtn_form_quest_save_changes "Save changes?"
+
+//d:Confirmation query prompt.
+//d:Does the selected field is deleted from the form.
+//l: popup_note_window
+//
+#define qtn_form_quest_remove_field "Delete field?"
+
+//d: Confirmation note text.
+//d: Confirms that the form data is saved.
+//l: popup_note_window
+//
+#define qtn_form_conf_saved "Saved"
+
+//d: T9 Activation note text
+//d: Confirms that T9 text entry has been activated by using options menu
+//l: popup_note_window
+//
+#define text_t9_enabled_conf "T9 activated"
+
+//d: T9 DeActivation note text
+//d: Confirms that T9 text entry has been deactivated by using options menu
+//l: popup_note_window
+//
+#define text_t9_disabled_conf "T9 deactivated"
+
+//d: Predictive Auto Word Completion Activation note text
+//d: Confirms that Predictive Auto Word Completion text entry has been activated by using options menu
+//l: popup_note_window
+//r: 3.2
+//
+#define qtn_autocompletion_enabled "AutoCompletion activated"
+
+//d: Predictive Auto Word Completion Activation note text
+//d: Confirms that Predictive Auto Word Completion text entry has been de-activated by using options menu
+//l: popup_note_window
+//r: 3.2
+//
+#define qtn_autocompletion_disabled "AutoCompletion deactivated"
+//d: T9 No Dictionary Available note text
+//d: Informs user that there is no available t9 dictionary for a selected language
+//l: popup_note_window
+//
+#define text_t9_no_ldb_available "No predictive text dictionary available"
+
+//d:Confirmation note when the text is copied or cut to the clipboard
+//d:in copy/cut mode.
+//l:popup_note_window
+//r:3.1
+#define qtn_conf_copied "Text copied to clipboard"
+
+//d:If the SS sending procedure was successful the user is informed
+//d:using an confirmation note with this text.
+//d:Confirmation note when service request is done.
+//l:popup_note_window
+//
+#define text_done "Done"
+
+//d:If the SS sending procedure was unsuccessful the user is informed
+//d:using an information note with this text.
+//d:Error note text when service request unsuccesful.
+//l:popup_note_window
+//
+#define text_not_done "Not done"
+
+
+// Find
+
+//d: Options menu item for activating find pop up window
+//l: list_single_pane_t1_cp2
+#define qtn_find_pop_up_window "Find"
+
+
+//d: Comfirmation text after saving bookmark from find items menu.
+//l: popup_note_window
+#define qtn_find_bm_saved_note "Bookmark saved"
+
+
+// Listbox
+
+//d: Empty listbox
+//l: main_list_empty_pane
+#define qtn_selec_empty_list "No data"
+
+//d: Find, Empty list texts, list is empty after matched with entered string
+//l: main_list_empty_pane
+#define qtn_find_no_matches "No matches"
+
+// PopupField Queries
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_text		"Enter Text:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_number	"Enter Number:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_phonenumber "Enter Phone Number:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_time		"Enter Time:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_date		"Enter Date:"
+
+//d: Query prompt text shown when entering a new value
+//d:
+//l: popup_query_data_window
+//
+#define text_popupfield_prompt_for_duration	"Enter Duration:"
+
+
+// Queries
+
+//d: Query prompt text to insert a word with multi-tab mode.
+//d:
+//l: popup_query_data_window
+//
+#define text_t9_spell_query "Insert word:"
+
+//d: Query prompt text to edit a word with multi-tab mode.
+//d:
+//l: popup_query_data_window
+//
+#define text_t9_edit_query "Edit word:"
+
+//d: List query prompt to select correct match from matches suggested by
+//d: predictive input module.
+//l: heading_pane_t1
+//
+#define qtn_t9_list_head_select_word "Select word:"
+
+//d: Query prompt text to enter number.
+//d:
+//l: popup_query_data_window
+//
+#define text_insert_number_query "Number:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1/opt1
+//
+#define qtn_pop_up_select_character "Select character:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_pop_up_select_half_symbol "Select half width symbol:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_pop_up_select_full_symbol "Select full width symbol:"
+
+//d: Special character table query prompt text.
+//d:
+//l: heading_pane_t1
+//
+#define qtn_japin_prmpt_select_pictograph "Select pictograph:"
+
+//d: Special character table query prompt text for pictograph1.
+//d:
+//l: heading_pane_t1
+// r: 2.8
+//
+#define qtn_japin_prmpt_select_pictograph1 "Select pictograph1:"
+
+//d: Special character table query prompt text for pictograph2.
+//d:
+//l: heading_pane_t1
+// r: 2.8
+//
+#define qtn_japin_prmpt_select_pictograph2 "Select pictograph2:"
+
+
+//d: 'Insert word' list item as a last item in a list query to select correct match
+//d: from matches suggested by predictive input module. 'Insert word' item in
+//d: the list query activates a data query to insert word in multi tab mode
+//l: list_single_pane_t1_cp2
+//
+#define qtn_t9_list_query_spell "Insert word"
+
+//
+//
+// Setting List and Setting Item
+//
+//
+
+//d: Setting field value when there's no data
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_sett_val_field_none	"None"
+
+//d: Text to show in Text Setting item value field when there is no text
+//d: Network data case (not the default)
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_sett_val_field_unknow	"Unknown"
+
+// d: Settings list item value
+// d: Means that this setting is not defined & must be defined.
+// l: list_set_graphic_pane_t1
+//
+#define qtn_selec_setting_compulsory "Must be defined"
+
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jan "Jan"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_feb "Feb"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_mar "Mar"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_apr "Apr"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_may "May"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jun "Jun"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_jul "Jul"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_aug "Aug"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_sep "Sep"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_oct "Oct"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_nov "Nov"
+
+//d: Month name with 3 letters
+//d:
+//l: None
+//
+#define qtn_month_three_chars_dec "Dec"
+
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_january "January"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_february "February"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_march "March"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_april "April"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_may "May"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_june "June"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_july "July"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_august "August"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_september "September"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_october "October"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_november "November"
+
+//d: Month name
+//d:
+//l: None
+//
+#define qtn_month_long_december "December"
+
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_mo "Mo"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_tu "Tu"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_we "We"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_th "Th"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_fr "Fr"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_sa "Sa"
+
+//d: Weekday name with 2 letters
+//d:
+//l: cale_week_day_heading_pane_t1
+//
+#define qtn_week_two_chars_su "Su"
+
+
+//d: Weekday name
+//d:
+//l:(clock_t1/opt3)
+//
+#define qtn_week_long_monday "Monday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_tuesday "Tuesday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_wednesday "Wednesday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_thursday "Thursday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_friday "Friday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_saturday "Saturday"
+
+//d: Weekday name
+//d:
+//l: None
+//
+#define qtn_week_long_sunday "Sunday"
+
+//d: Size of data in bytes
+//d:
+//l: None
+//
+#define qtn_size_b " %N B"
+
+//d: Size of data in kilo bytes
+//d:
+//l: None
+//
+#define qtn_size_kb " %N kB"
+
+//d: Size of data in mega bytes
+//d:
+//l: None
+//
+#define qtn_size_mb " %N MB"
+
+//d: Size of data in giga bytes
+//d:
+//l: None
+//
+#define qtn_size_gb " %N GB"
+
+
+
+//d: Two lines of text for empty text.
+//d: The lines are separated by character \n.
+//l: list_set_graphic_pane_t1
+//
+#define qtn_selec_set_pane_empty "No Data"
+
+// Keylock text
+
+//d: Offer keylock left softkey
+//l: control_pane_t1/opt7
+//
+#define text_keylock_offer_lock "Lock Keys?"
+
+//d: Offer keylock right softkey
+//l: control_pane_t1/opt7
+//
+#define text_keylock_quit_offer_lock "Quit"
+
+
+//d: Keypad locked note
+//l: popup_note_window
+//
+#define qtn_keyg_conf_keypad_locked		"Keypad Locked"
+
+//d: Offer unlock note
+//l: popup_note_window
+//
+#define qtn_keyg_quest_unlock_keypad "Unlock Keypad?"
+
+//d: Keypad error note
+//l: popup_note_window
+//
+#define qtn_keyg_err_unaccept_press "Press Unlock to activate keypad"
+
+//d: Keypad unlocked note
+//l: popup_note_window
+//
+#define qtn_keyg_conf_keypad_active "Keypad Active"
+
+// d: Command in menu shown system wide by short press off power key
+// d: or command in in-call menu in phone application
+// d: Activates Key lock
+// l: list_single_pane_t1_cp2
+// w:
+// r: 5.0
+#define qtn_pwrc_lock_display "Lock display"
+
+//d: Keyguard is locked note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_conf_display_keys_locked   "Display and keys locked"
+
+//d: Keyguard is unlocked note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_conf_display_keys_active   "Display and keys unlocked"
+
+//d: Offer keyguard note in touch ui
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_lock_display   "Lock display and keys?"
+
+//d: A keyguad information note text informing user
+//d: to use dedicated keylock switch for unlocking the phone
+//l: popup_note_window
+// r: 5.0
+//
+#define qtn_keyg_info_note_display_lock_switch "Use lock switch to unlock display and keys"
+
+
+//d: Option for adding selected item(s) to pinboard.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_add_to_pinboard "Add to pinboard"
+
+//d: Creating a call to a selected number.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_call "Call"
+
+//d: Option or shift menu item for editing submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_edit "Edit text"
+
+//d: Option or shift menu item for editing submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define text_pup_option_edit_text "Edit text"
+
+//d: A common option in a options list for closing application.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_exit "Exit"
+
+//d: Option for find item submenu.
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_find "Find item"
+
+//d: Option for finding e-mail address. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_email_address "E-mail address"
+
+//d: Option for finding phone number. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_phone_number "Phone number"
+
+//d: Option for finding URL address. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_find_url_address "URL address"
+
+//d: Getting help via options Help selection.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_help "Help"
+
+//d: List query heading text in input language list query.
+//l: heading_pane_t1
+//
+#define qtn_options_input_language "Input language:"
+
+//d: Option or shift menu item for input language submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define text_pup_option_input_language "Input language"
+
+//d: Option for organizing submenu.
+//d: TODO: Remove this item if it is not used anywhere??
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_org "Organize"
+
+//d: Option for moving item(s). Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_move "Move"
+
+//d: Option for moving item(s) to folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_move_to_folder "Move to folder"
+
+//d: Option for creating new folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_new_folder "New folder"
+
+//d: Option for sending submenu
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_send_via "Send"
+
+//d: Option for sending data via BT. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_bt "Bluetooth"
+
+//d: Option for sending data via e-mail. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_email "E-mail"
+
+//d: Option for sending data via fax. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_fax "Fax"
+
+//d: Option for sending data via IR. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_ir "Infrared"
+
+//d: Option for sending data via MMS. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_mms "MMS"
+
+//d: Option for sending data via SMS. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_send_via_sms "SMS"
+
+//d:It is text for a menu option. If it is selected,
+//d: separate Idle application is brought to foreground.
+//l: list_single_pane_t1_cp2
+//w:
+//r:2.8
+//
+#define qtn_incal_goto_active_idle "Go to Active Idle"
+
+//d: Option or shift menu item for T9 submenu.
+//d:
+//l: list_single_pane_t1_cp2/opt3
+//
+#define qtn_options_t9 "Predictive text"
+
+//d: Option or shift menu item for T9 submenu.
+//d:
+//l: list_single_pane_t1_cp2
+//
+#define text_pup_option_predictive_text "Predictive text"
+
+//d: Option for editing T9 word. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_edit_word "Edit word"
+
+//d: Option for adding words to T9 dictionary. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_insert_word "Insert word"
+
+//d: Option for finding matches from T9 dictionary.
+//d: Option item in T9 submenu.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_matches "Matches"
+
+//d: Option for finding matches from T9 dictionary.
+//d: Option item in T9 submenu.
+//l: list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_matches "Matches"
+
+//d: Option for disable T9. Edit menu submenu item.
+//l: list_single_popup_submenu_pane_t1
+//
+#define qtn_options_t9_off "Off"
+
+//d: Option for activate T9. Edit menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_t9_on "Predictive text on"
+
+//d: Option or shift menu item for Predictive_Mode [Auto Word Completion On /Off ] submenu.
+//d:
+//l: list_single_pane_t1_cp2
+//r:3.2
+//
+#define qtn_options_t9_autocompletion "Predictive Mode"
+
+
+//d: Option to activate Predictive Auto Word Completion. Edit menu item.
+//d: Option item in Predictive_Mode submenu.
+//l: list_single_popup_submenu_pane_t1
+//r:3.2
+//
+#define qtn_options_t9_autocompletion_on "Auto Complete"
+
+
+
+//d: Option to deactivate Predictive Auto Word Completion. Edit menu item.
+//d: Option item in Predictive_Mode submenu.
+//l: list_single_popup_submenu_pane_t1
+//r:3.2
+//
+#define qtn_options_t9_autocompletion_off "Normal"
+
+// COMMON DELETE? CONFIRMATION QUERY
+
+//d: Used as a confirmation query in situations where user wants to
+//d: delete an object/objects. %U must be defined case by case;
+//d: it might be name of the object/item, or a separate UI text
+//d: having a separate logical name
+//d: (e.g. "%N items" qtn_fldr_del_items_query).
+//l: popup_note_window
+//
+#define qtn_query_common_conf_delete "Delete\n%U?"
+
+//d: Confirmation query when the user tries to remove an object.
+//d: %U stands for object name.
+//l: popup_note_window
+//
+#define qtn_query_common_conf_remove "Remove\n%U?"
+
+
+// GENERAL FOLDER TEXTS FROM FOLDERS SPEC
+
+//d: Option in options menu for creating a new folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_new "New folder"
+
+//d: Option in options menu for opening focused folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_open "Open"
+
+//d: Option in options menu for deleting selected folder(s).
+//d: Can be used for deleting other items as well, if there
+//d: are folders and other items in same list.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete "Delete"
+
+//d: Option in options menu for deleting items in folders.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete_items "Delete"
+
+//d: Option in options menu for renaming folder.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_rename "Rename"
+
+//d: Option in options menu for moving items inside the list.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_move_item "Move"
+
+//d:Wait/progress note text that is shown when items are deleted.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_fldr_deleting_wait_note "Deleting"
+
+//d:Wait/progress note text that is shown when items are moved to folder.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_fldr_moving_wait_note "Moving"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_adding "Adding"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_copying "Copying"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_fetching "Fetching"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_removing "Removing"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_processing "Processing"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_saving "Saving"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_sending "Sending"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_opening "Opening"
+
+//d:This general text is used with corresponding wait/progress note.
+//d:
+//l:popup_note_wait_window
+//
+#define qtn_gen_note_inserting "Inserting"
+
+//d: the request is being sent to the network, wait note text
+//l: popup_note_wait_window
+#define text_sending "Requesting"
+
+//d: sending request to the network cancelled by the user
+//l: popup_note_window
+#define text_unconfirmed "Request not confirmed"
+
+// d: It is text shown in error note when incall operation is fails.
+// l: popup_note_window
+//
+#define text_request_rejected "Request rejected"
+
+//d: Prompt text shown in the data query when creating new folder.
+//l: popup_query_data_window
+//
+#define qtn_fldr_name_prmpt "Folder name:"
+
+//d: Default name in the data query's editing field when creating new folder.
+//l: query_popup_data_pane_t1/opt4
+//
+#define qtn_fldr_name_default "New folder"
+
+//d: Information note which is shown when the user is trying to
+//d: name the folder with a name which is already in use.
+//l: popup_note_window
+//
+#define qtn_fldr_name_already_used "Name already in use:\n%U"
+
+//d:Confirmation query text when the user tries to delete
+//d:several selected items. Selected items
+//d:can be also other items than folders.
+//d: %N represents the number of the selected items to be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_del_items_query "Delete %N items?"
+
+//d: Confirmation query text. Confirms if the user wants to delete
+//d: a folder that contains items.
+//d: If accepted, items inside the folder will be deleted as well.
+//l: popup_note_window
+//
+#define qtn_fldr_del_full_fldrs_query "Delete selected folder and items in it?"
+
+//d: "Option in the options menu, when items can be moved to folder."
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_move_to_folder "Move to folder"
+
+//d: Prompt text shown in the list query where the user can
+//d: select to which folder he wants to move items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_move_to_prmpt "Move to:"
+
+//d: Prompt text shown in the list query where the user can
+//d: select to which folder he wants to copy items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_copy_to_prmpt "Copy to:"
+
+//d: List query heading
+//d: Shown in the list query where the user can select to which folder he wants to copy items
+//l:heading_pane_t1
+#define qtn_fldr_copy_to_prompt "Copy to:"
+
+//d:
+//l: popup_note_window
+//
+#define qtn_fldr_no_folders_exist "No folders exist"
+
+//d:
+//l: list_single_graphic_pane_t1_cp2
+//
+#define qtn_fldr_root_level "Root level"
+
+//d: Options menu item with which the user can create new group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_new_group "New group"
+
+//d: Options menu item for opening focused group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_open_group "Open"
+
+//d: Options menu item for deleting group(s).
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_delete_group "Delete"
+
+//d: Options menu item for renaming group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_rename_group "Rename"
+
+//d: Options menu item in the group list with which the user
+//d: can add items to selected group(s)
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_add_to_selected_group "Add items to group"
+
+//d: Prompt text shown in the data query when creating new group.
+//l: popup_query_data_window
+//
+#define qtn_fldr_group_name_prmpt "Group name:"
+
+//d: Default name in the data querys editing field when creating new group.
+//l: query_popup_data_pane_t1/opt4
+//
+#define qtn_fldr_default_group_name "New group %N"
+
+//d: Confirmation query text that is shown when several empty groups are selected
+//d: and the user activates deleting operation.
+//l: popup_note_window
+//
+#define qtn_fldr_del_empty_groups "Delete %N groups?"
+
+//d: Confirmation query text that is shown when at least one group, that contains items, is selected
+//d: and the user activates deleting operation.
+//l: popup_note_window
+//
+#define qtn_fldr_del_full_groups_query "Delete selected groups and links in them?"
+
+//d: "Prompt text in the list query where the user can select,
+//d: what items to add to group."
+//l: heading_pane_t1
+//
+#define qtn_fldr_add_to_group_prmpt "Select items:"
+
+//d: Options menu item with which the user can add items to group
+//d: when he is inside the group
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_add_to_group "Add items "
+
+//d: Prompt text in the list query where the user can select,
+//d: into what group he wants to add items.
+//l: heading_pane_t1
+//
+#define qtn_fldr_select_group_prmpt "Select group:"
+
+//d:
+//l: popup_note_window
+//
+#define qtn_fldr_no_groups_exist "No groups exist"
+
+//d: Link items can be removed from a group.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_fldr_remove_items "Remove"
+
+//d: Conf. query after qtn_fldr_remove_items. %U is the name
+//d: of the link to be removed from a group.
+//l: popup_note_window
+//
+#define qtn_fldr_rem_one_item_query "Remove?\n%U"
+
+//d: Conf. query after qtn_fldr_remove_items. %N stands for the
+//d: amount of links selected to be removed from a group.
+//l: popup_note_window
+//
+#define qtn_fldr_rem_items_query "Remove?\n%N items"
+
+//d: Items with same name: the user is provided a possibility
+//d: to overwrite the old item with a new one.
+//l: popup_note_window
+//
+#define qtn_fldr_overwrite_query "%U already exists. Overwrite?"
+
+//d: After qtn_fldr_overwrite_query: user does not want to
+//d: overwrite the old item. Data query with prompt "New name:"
+//d: will be displayed.
+//l: popup_query_data_window
+//
+#define qtn_fldr_item_name_prmpt "New name:"
+
+//d: Items with same name: the user is NOT provided a possibility
+//d: to overwrite the old item, but only to give a new name.
+//l: popup_note_window
+//
+#define qtn_fldr_rename_query "%U already exists. Rename?"
+
+//d: Error note when the user tries to move item to the folder
+//d: and the item cannot be moved.
+//l: popup_note_window
+//
+#define qtn_fldr_item_cannot_be_moved "Can't move:\n%U"
+
+//d: Error note when the user tries to move items to the folder
+//d: and two or more of the items cannot be moved.
+//l: popup_note_window
+//
+#define qtn_fldr_some_items_cant_move "Can't move:\n%N items"
+
+//d: Error note shown when the user tries to remove a folder
+//d: which contains items which cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_item "Can't delete:\n%U"
+
+//d: %N items in the folder cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_items "Can't delete:\n%N items"
+
+//d: Error note shown when the user tries to delete folder
+//d: which cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_folder "Can't delete:\n%U"
+
+//d: Error note shown when two or more folders cannot be deleted.
+//l: popup_note_window
+//
+#define qtn_fldr_cant_delete_folders "Can't delete:\n%N folders"
+
+//d: When a file, which is got for example as a attachment in mail,
+//d: is being saved to the device, confirmation note is shown
+//d: so that the user knows where the file is actually saved.
+//d: Confirmation note text.
+//l: popup_note_window
+//
+#define qtn_fldr_file_saved_to  "File saved to %U"
+
+//d: Unable to copy folder item.
+//l: popup_note_window
+#define qtn_fldr_item_cannot_be_copied "Unable to copy %U"
+
+//d: Unable to rename item in folder.
+//l: popup_note_window
+#define qtn_fldr_cant_rename_item "Unable to rename %U"
+
+//d: Unable to delete item in folder.
+//l: popup_note_window
+#define qtn_fldr_cant_delete_fldr_open "Unable to delete %U"
+
+//d: Note text
+//d: Shown when some items cant be copied. %N is amount of items.
+//l:popup_note_window
+#define qtn_fldr_some_items_cant_copy "Unable to copy %N items"
+
+//d: Note text
+//d: Shown when folder cant be moved. %U is the name of the folder.
+//l:popup_note_window
+#define qtn_fldr_cannot_move_folder "Unable to move folder %U"
+
+//d: Note text
+//d: Shown when file is open and the user tries to delete it from somewhere. %U is the name of the item.
+//l:popup_note_window
+#define qtn_fldr_cant_delete_file_open "Unable to delete item %U. It is currently open."
+
+//d: Confirmation query
+//d: Shown when user is deleting folder which contains items which are not shown in current view.
+//l:popup_note_window
+#define qtn_fldr_del_all_hidden_items "There are also items, which are not shown now. Delete anyway?"
+
+//d: If saving of a file takes more than 1 second, wait note is displayed
+//d: during saving (instead of confirmation note). Wait note informs
+//d: the user where the file is actually saved.
+//d: The wait note text.
+//l: popup_note_wait_window
+//
+#define qtn_fldr_file_saving_wait "Saving file to %U"
+
+//d: If the name user entered is too long or consist solely of single
+//d: or double dot, this information note is displayed and after that
+//d: the data entry is opened (name is highlighted in the editor) so that
+//d: the user can correct the name.
+//l: popup_note_window
+//
+#define qtn_fldr_bad_file_name "Unsuitable file name"
+
+//d: If the name of the file contains other illegal characters than mentioned
+//d: in 'qtn_fldr_bad_file_name', this information note is displayed.
+//d: There has to be '\' character before '"' character. This combination
+//d: is shown as '"' character. Also '\\' is shown as '\' char.
+//l: popup_note_window
+//
+#define qtn_fldr_illegal_characters "Name can't contain following characters:\n< > \" \\ / | : * ?"
+
+//d: Below critical level of free memory.
+//d: Operation that consumes lot of memory is not possible.
+//l: popup_note_window/opt1
+//
+#define qtn_memlo_not_enough_memory "Not enough memory to execute operation. Delete some documents and try again."
+
+//d:When the memory Warning Level is passed, it is warned to user by system. Global
+//d: query with this text is shown. Low memory situation is informed for the user also when:
+//d: - System is booted (after battery off, etc.).
+//d: - System unlocked.
+//d: In these cases, if WL is passed, on the screen comes the same global query.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_running_out "Running out of memory. Try deleting some data."
+
+//d: Memory full note: When this Critical Level is passed, it is warned to user by system. Low memory
+//d: situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_full "Memory is full. Delete some documents"
+
+//d: The query text to be displayed If there is not enough memory
+//d: to perform the message receiving operation
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_messages "Not enough memory to receive messages. Delete some documents and try again."
+
+//d: Text to be displayed in information note if there is not enough memory to perform the data receiving operation
+//d: (example via bluetooth), is shown an Information note
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_data "Not enough memory to receive data. Delete some data and try again."
+
+//d: When the memory card memory Warning Level is passed, it is warned to user by system. Global
+//d: query with this text is shown. Low memory situation is informed for the user also when:
+//d: - System is booted (after battery off, etc.).
+//d: - System unlocked.
+//d: In these cases, if WL is passed, on the screen comes the same global query.
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_running_out "Memory card running out of memory. Try deleting some data."
+
+//d: Memory card full note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Low memory situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_full "Memory card is full. Delete some documents."
+
+//d: Free memory is below critical level in memory card.
+//d: Operation that consumes lot of memory is not possible.
+//l: popup_note_window/opt1
+//
+#define qtn_memlo_mmc_not_enough_memory "Not enough memory in memory card to execute operation. Delete some documents and try again."
+
+//d: The query text to be displayed if there is not enough memory in memory card
+//d: to perform the message receiving operation
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_low_messages "Not enough memory in memory card to receive short messages. Delete some documents."
+
+//d: Text to be displayed in information note if there is not enough memory in memory card to perform the data receiving operation
+//d: (example via bluetooth).
+//l: popup_note_window
+//
+#define qtn_memlo_mmc_memory_low_data "Not enough memory in memory card to receive data. Delete some data and try again."
+
+//d: Text to be dispalyed when device must be rebooted.
+//d: Confirmation Query is shown to the user. There is
+//d: only left softkey OK ?text.softkey.ok? and the device reboot after the user has
+//d: pressed that or selection key.
+//l: popup_note_window
+#define qtn_memlo_reboot "System have to reboot."
+
+//d: If some database is corrupted, the owner of the database will try to recover it or
+//d: reinitialise it. This text is shown in an Information Note.
+//l: popup_note_window
+#define qtn_memlo_database_corrupted "Database corrupted. Some data might have been lost."
+
+//d:If RAM is low, applications will be closed in background (order prioritized by
+//d: Epoc). If needed,the text in information note is this.
+//l: popup_note_window/opt1
+#define  qtn_memlo_ram_out_of_mem "Out of memory. Try closing unnecessary applications."
+
+//d: When the system or the phone or some other critical application don?t start.
+//d: Global permanent error note with this text is shown
+//l: popup_note_window
+#define qtn_memlo_contact_service "Contact service"
+
+//d: Application busy note text. This message is displayed when a waiting control
+//d: (dialog, setting page, etc) is dismissed, but the scheduler can?t stop yet.
+//d: This wait note indicates for a user that application is busy at the moment
+//d: and cannot receive any user input.
+//l: popup_note_wait_window
+//
+#define qtn_memlo_application_busy "Application is busy"
+
+//d: Query text to be displayed if SIM is full when
+//d: message receiving operation was performed.
+//l: popup_note_window
+//
+#define qtn_memlo_memory_low_sim_mes "SIM full. Empty it to receive SIM short messages."
+
+//d:Confirmation query text that is shown when the user wants to kill an application from
+//d:fastswap window by pressing clear key.
+//d:Same confirmation query can be shown also in memory low situations.
+//d:%U refers to the name of the application.
+//l:popup_note_window
+//
+#define qtn_memlo_confirm_close "Confirm close \"%U\"?"
+
+//d: Device drive disk space low note: When Warning Level is passed, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_device_memory_low "Memory low. Delete or move some data from %U Device memory."
+
+//d: Memory card disk space low note: When Warning Level is passed in memory card, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %0U is the drive letter of the drive.
+//d: %1U is the memory card name.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_low_name "Memory low. Delete or move some data from %0U %1U."
+
+//d: Memory card disk space low note: When Warning Level is passed in memory card, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_low_defaultname "Memory low. Delete or move some data from %U Memory card."
+
+//d: Mass Storage disk space low note: When Warning Level is passed, it is warned to user by system.
+//d: Low disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_mass_storage_memory_low "Memory low. Delete or move some data from %U Mass storage."
+
+//d: Device drive disk space critical note: When Critical Level is passed, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_device_memory_full "Memory full. Delete or move some data from %U Device memory."
+
+//d: Memory card disk space critical note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %0U is the drive letter of the drive.
+//d: %1U is the memory card name.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_full_name "Memory full. Delete or move some data from %0U %1U."
+
+//d: Memory card disk space critical note: When Critical Level is passed in memory card, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_memory_card_full_defaultname "Memory full. Delete or move some data from %U Memory card."
+
+//d: Mass Storage disk space critical note: When Critical Level is passed, it is warned to user by system.
+//d: Critical disk space situation is informed also when system is booted (after battery off, etc.). Global
+//d: query with this text is shown. Query has only left softkey OK ?text.softkey.ok? . This softkey confirms that
+//d: user will see the note. User has to press softkey or Selection key and after that the note disappears.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:5.0
+//
+#define qtn_memlo_mass_storage_full "Memory full. Delete or move some data from %U Mass storage."
+
+//d: Text in error note when there is an error updating sim.
+//l: popup_note_window
+//
+#define text_fdn_card_error "SIM card error"
+
+//d:Information note text.
+//d:The note is shown if SIM memory is not ready.
+//l:popup_note_window
+//
+#define text_scm_select_b_memory "SIM card not ready"
+
+//d:Information note text that is shown if the user tries to open an attachment
+//d:that has been encrypted or it is an unsupported type by the device.
+//l:popup_note_window
+//
+#define qtn_mail_info_atta_encrypted "Unsupported type. Cannot open"
+
+//d:
+//d:
+//l: None
+//
+#define text_calc_decimal_separator "."
+
+//d:
+//d:
+//l: None
+//
+#define qtn_cnv_decimal_separator "."
+
+
+// Softkey labels
+//d:Command text associated to a softkey in the control pane.
+//d:Clear functionality.
+//l:control_pane_t1/opt7
+//
+#define text_softkey_clear "Clear"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Show previous word from T9 dictionary's matches list
+//l:control_pane_t1/opt7
+//
+#define text_softkey_previous "Previous"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Launches insert word query in multi tab mode when
+//d:there are not (any more) matches in T9 dictionary available
+//l:control_pane_t1/opt7
+//
+#define text_softkey_spell "Spell"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Launches special character table
+//l:control_pane_t1/opt7
+//
+#define text_softkey_symbol "Symbol"
+
+
+//d:Command in options sub-menu.
+//d:This menu item is show only when predictive text input mode is on.
+//d:Launches insert word query in multitab mode.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_insert_word "Insert word"
+
+//d:Command in options T9 sub-menu.
+//d:This menu item is show only when predictive text is on
+//d:and a word is active. Launches edit word query in multi tab mode.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_edit_word "Edit Word"
+
+//d:Command in options T9 sub menu.
+//d:Switches predictive text input (T9) off.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_t9_off "T9 off"
+
+//d:Command in options T9 sub-menu.
+//d:Switches predictive text input (T9) on.
+//l:list_single_popup_submenu_pane_t1
+//
+#define text_pup_option_t9_on "T9 on"
+
+//d: Shift menu item to change input mode to multi tab mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_multitap_mode "Alpha mode"
+
+//d: Shift menu item to change input mode to number mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_number_mode "Number mode"
+
+//d: Shift menu item to change input mode to predictive (T9) mode.
+//d:
+//l:list_single_pane_t1_cp2
+//
+#define text_pup_option_t9_mode "Predictive Mode"
+
+
+//d:
+//d:default text displayed for the screensaver
+//l: None
+//
+#define qtn_sanim_text_default			"Nokia"
+
+
+// d: Global default document file name.
+// d: The name is used only when some application
+// d: doesn't offer a name itself.
+// l: list_single_large_graphic_pane_t1
+//
+#define qtn_dochui_default_docname "Unnamed"
+
+
+//d: "No Data" default text for popup lists, if the list has
+//d: no items. (This has not been specified in component
+//d: specifications; the logical name has been invented by
+//d: implementation) It is shown currently in a confirmation note.
+//l: popup_note_window
+//
+#define qtn_empty_popup_list_text		"No Data"
+
+
+//d:two or more supplementary services are in conflict
+//l:popup_note_window
+//
+#define qtn_srvrq_info_confl "Services in conflict"
+
+//d:request failed, no network coverage
+//l:popup_note_window
+//
+#define text_no_service "No network coverage"
+
+//d:request was denied
+//d:currently defined in BasicCallHandling.loc, psui.loc and PhoneClient.loc
+//l:popup_note_window/opt1
+//
+#define text_not_allowed "Not allowed"
+
+//d:request result is unknown
+//d:currently defined in PhoneClient.loc and psui.loc
+//l:popup_note_window
+//
+#define text_result_unknown "Result unknown"
+
+//d: Displayed in the "To/From" section for bluetooth objects in message centre.
+//l: list_double_graphic_pane_t1
+//
+#define qtn_mce_bt_message "Bluetooth message"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldrs_files "%0N folders, %1N files"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldrs_file "%0N folders, %1N file"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldr_files "%0N folder, %1N files"
+
+//d: Text for the second row of list double large graphic pane
+//d: Text informs user about content of folder
+//l:list_double2_large_graphic_pane
+#define qtn_fldr_amount_fldr_file "%0N folder, %1N file"
+
+
+
+// Logical names for APAC variant.
+
+//d: Edit menu item to activate pinyin input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_pinyin "Pinyin"
+
+//d: Edit menu item to activate zhuyin input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_zhuyin "Zhuyin"
+
+//d: Edit menu item to activate strokes input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_stroke "Strokes"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Advanced CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_advanced_cangjie "Advanced CangJie"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Easy CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_easy_cangjie "Easy CangJie"
+
+// d: Text of the list item in CangJie mode selection
+// d: Indicates the Normal CangJie mode selection
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_option_normal_cangjie "Normal CangJie"
+
+// d: Heading of the CangJie mode selection dialog
+// d: Only HK Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_heading_cangjie_mode "Select CangJie mode"
+
+// d: Edit menu item to activate CangJie mode selection dialog
+// d: Used for selecting CangJie mode
+// d: Only HK Chinese
+// l: list_single_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_pup_option_cangjie_mode "CangJie input mode"
+
+// d: Edit menu item to activate CangJie input mode
+// d: Only HK Chinese
+// l: list_single_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_cangjie "CangJie"
+
+// d: Text of the English Input Mode in the sub menu
+// d: Indicates the English Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_english "English"
+
+// d: Text of the Zhu Yin Input Mode in the sub menu
+// d: Indicates the Zhu Yin Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_zhuyin "Zhuyin"
+
+// d: Text of the Stroke Input Mode in the sub menu
+// d: Indicates the Stroke Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_stroke "Stroke"
+
+// d: Text of the Find Zhuyin Symbol Input Mode in the sub menu
+// d: Indicates the Find Zhuyin Symbol Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_find_zhuyin_symbol "Zhuyin Symbol"
+
+// d: Text of the Find Stroke Symbol Input Mode in the sub menu
+// d: Indicates the Find Stroke Symbol Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_find_stroke_symbol "Stroke Symbol"
+
+// d: Text of the Pinyin Input Mode in the sub menu
+// d: Indicates the Pinyin Input Mode selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_sub_input_pinyin "Pinyin"
+
+// d: Text of the Input Mode Option in the sub menu
+// d: Indicates the Input Mode Option selection in the sub menu
+// d: Only Chinese
+// l: list_single_graphic_pane_t1_cp2
+// r: 3.0
+//
+#define qtn_chi_pup_option_input_method "Input method"
+
+//d: Edit menu item to activate latin multi-tab input mode.
+//d: Character case is upper case.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_upper "Latin upper case"
+
+//d: Edit menu item to activate latin multi-tab input mode.
+//d: Character case is lower case.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_lower "Latin lower case"
+
+//d: Edit menu item to activate latin text case input mode.
+//d: Character case is upper case at the beginning of a sentence and
+//d: the case is updated automatically.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_latin_text "Latin text case"
+
+//d: Edit menu item to activate number input mode.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define text_chi_input_number_entry "Number entry"
+
+//d: Edit menu item to get a brief explanation on how
+//d: to input Chinese text.
+//d: Only Chinese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_chi_input_instructions "Instructions"
+
+//d: This note is shown when pinyin, zhuyin or strokes
+//d: input method is selected from the edit menu.
+//d: Only Chinese.
+//l: popup_note_window
+//
+#define text_chi_t9_enabled_conf "T9 predictive text activated"
+
+//d: Extreme Error Handling related string
+//d: General error text to be displayed in most error cases
+//l: popup_note_window
+#define qtn_err_eikon_general 	"System error."
+
+//d: Extreme Error Handling related string
+//d: Error text in AlertWin when device has run OOM or OOD
+//l: popup_note_window
+#define qtn_err_eikon_mem		"Out of memory."
+
+//d: Extreme Error Handling related string
+//d: General error text for Resource problems (BAFL related problems)
+//l: popup_note_window
+#define qtn_err_eikon_res		"Resource error."
+
+//d: String for the first line in panic notes
+//l: popup_note_window
+#define qtn_err_program_closed "Program closed:"
+
+//d: The help text that explains how to input Chinese text.
+//d: Describes the basic functions of Chinese Input Editor.
+//d: Only Chinese.
+//l: popup_info_list_pane_t1
+//
+#define qtn_chi_input_help_instr "Describes the basic functions of Chinese Input Editor"
+
+//d: Heading for Chinese input instructions.
+//d: Heading of the input instructions message query.
+//d: Only Chinese.
+//l:heading_pane_t1
+#define qtn_chi_heading_instr "Instructions:"
+
+//d: Edit menu item to activate zhuyin find mode.
+//d: Only Chinese.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_chi_find_zhuyin "Zhuyin find"
+
+//d: Edit menu item to activate stroke find mode.
+//d: Only Chinese.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_chi_find_stroke  "Stroke find"
+
+
+//d: Note is shown when user has pressed "Unlock" when keypad is in locked state
+//l: popup_note_window
+//
+#define qtn_keyg_info_nowpress "Now press *"
+
+//d: Is shown when the user presses other key than "Unlock" when keypad is in locked state
+//l: popup_note_window
+//
+#define qtn_keyg_err_unaccept_presses "Press Unlock and then * to activate keypad"
+
+//d: A keyguad information note text informing user
+//d: to use dedicated keylock switch for unlocking the phone
+//l: popup_note_window
+//r:3.2
+//
+#define qtn_keyg_info_note_keyguard_switch "Use keyguard switch to unlock keypad"
+
+//d:Command in form's options menu.
+//d:Add new item to a form (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_add "Add field"
+
+//d:Command in form's options menu.
+//d:Edit the label of the current form item (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_label "Edit label"
+
+//d:Command in form's options menu.
+//d:Delete current form item (generic).
+//l:list_single_pane_t1_cp2
+//
+#define qtn_form_litxt_delete "Delete field"
+
+//d:Query prompt for editing a form label (generic).
+//l:popup_query_data_window
+//
+#define qtn_form_prmpt_field_gen_label "Label:"
+
+
+//d: The prompt for the unlock MMC dialog.
+//d: Only when secure MMC is supported.
+//l: popup_query_data_window
+//
+#define qtn_mem_card_unlock_prompt "Password:"
+
+//d: The error message when the wrong password
+//d: is supplied to the unlock MMC dialog
+//l: popup_query_data_window
+//
+#define qtn_mem_card_unlock_error "Incorrect password! Try again:"
+
+
+//d:Left softkey in the CCBS activation query.
+//d:This will request the CCBS activation from the network.
+//l:control_pane_t1/opt7
+//
+#define qtn_ccbs_softkey_queue "Queue"
+
+
+// d: colour selection grid pop-up header text
+// l: heading_pane_t1
+//
+#define qtn_select_colour_prompt "Select colour:"
+
+// d: Text for none value field
+// d: In grid there's a possibility to choose
+// d: nothing by choosing none value field.
+// l: cell_large_graphic_colour_none_popup_pane_t1/opt1
+//
+#define qtn_select_colour_none "none"
+
+
+//d:Promt text in Screen saver text query
+//d:Data query
+//l:popup_query_data_window
+//
+#define qtn_sanim_object_text_promt "Text:"
+
+
+// d: General query for asking user if it is ok to reboot the phone
+// d: System will reboot automatically if user accepts the query.
+// l: popup_note_window
+
+#define qtn_general_restart_query "Phone will restart. Continue?"
+
+// d: General note for informing the user that the phone will restart.
+// l: popup_note_window
+#define qtn_restart_query "Phone will restart."
+
+//d:Permanent note Sim rejected. Shown after PUK1 code has been blocked.
+//l:popup_note_window
+//
+#define text_sim_rejected "SIM card rejected"
+
+//d:Shown when invalid SIM card is inserted and sim locking is active
+//l:popup_note_window
+//
+#define text_sim_lock_active "SIM unaccepted"
+
+//d:Shown when SIM lock is in pending state
+//l:popup_note_window
+//
+#define text_sim_lock_pending "SIM restriction pending"
+
+//d:Insert Sim card note. Shown if Sim card has been removed.
+//l:popup_note_window
+#define qtn_su_note_insert_sim "Insert SIM card"
+
+//d:The note that is shown when the user attempts to connect the network when in off-line mode.
+//l:popup_note_window/opt1
+#define qtn_offline_not_possible "Operation not possible in Off-line mode"
+
+//d:The note that is shown when the user attempts to connect the network when in SIM Access Profile mode. From rel. 2.6 onwards
+//l:popup_note_window/opt1
+#define qtn_offline_not_possible_sap "Operation not possible in SIM access profile mode"
+
+
+//d:The query that is shown when in off-line mode and the user has requested switching to on-line.
+//l: popup_note_window
+#define qtn_leave_offline_mode_query "Are you sure that you want to switch GSM network on?"
+
+//d:The query that is shown when the user starts the device with SIM inserted and the device
+//d:was last switched off in off-line mode.
+//l: popup_note_window
+#define qtn_su_use_offline "Do you want to use the phone in Off-line mode?"
+
+
+//d:Error text when memory card is not inserted.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error1 "(no memory card inserted)"
+
+//d:Error text when memory card is locked.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error2 "(memory card locked)"
+
+//d:Error text when memory card is corrupt.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error3 "Memory card is corrupted!"
+
+//d:Swap card note.
+//d:This note is used to inform user that memory card should be removed before pressing ok (Old card is dismounted and all non-system applications are closed)
+//l:popup_note_window
+//
+#define qtn_memc_info_eject "Remove memory card and press OK."
+
+//d:Progress note text.
+//d:This note is used to inform the user that applications are being closed
+//l:popup_note_wait_window
+//
+#define qtn_memc_wait_eject "Closing applications"
+
+//d:Information note text
+//d: User tries to make a operation in read-only MMC which needs modifying in MMC.
+//l:popup_note_window
+//
+#define qtn_memc_memorycard_read_only "Unable to perform operation. Memory card is read-only"
+
+//d:Options menu command.
+//d:Start eject.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_memc_options_eject "Eject memory card"
+
+//d:MMC eject confirmation query.
+//d:Used to confirm that the user is still going to eject MMC although all
+//d:applications will be closed. Shown immediately after the user has selected
+//d:"Eject memory card" item from the option menu.
+//l:popup_note_window
+#define qtn_memc_conf_eject "Eject memory card? All applications will be closed."
+
+// d: It is text for menu option. If it is selected,
+// d: then video is taken from primary camera.
+// l: list_single_pane_t1_cp2
+//
+#define qtn_incal_camera_1_option "Use primary camera"
+
+// d: It is text for menu option. If it is selected,
+// d: then video is taken from secondary camera.
+// l: list_single_pane_t1_cp2
+//
+#define qtn_incal_camera_2_option "Use secondary camera"
+
+// d: It is text in softkey to enable video.
+// l: control_pane_t1/opt7
+//
+#define qtn_incal_softk_enable_video "Enable video"
+
+
+//d: Special character table character set.
+//d: Special character table query prompt text(page).
+//d:
+//l: heading_pane_t1
+//
+#define qtn_edit_sct_page_indicator "%0N/%1N"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Next page (from special character table).
+//l:control_pane_t1/opt7
+//
+#define text_softkey_sct_next_page "Next"
+
+
+//d: Edit menu item to activate hiragana input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_hiragana "Hiragana"
+
+//d: Edit menu item to activate katakana input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_katakana "Katakana"
+
+//d: Edit menu item to activate latin input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_latin "Latin"
+
+//d: Edit menu item to activate number input mode.
+//d: Only Japanese.
+//l:list_single_pane_t1_cp2
+//
+#define qtn_japin_edit_number "Number"
+
+//d: Edit menu item to activate pictograph character table.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_pictographs "Pictographs"
+
+//d: Edit menu item to activate special character table.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_symbols "Symbols"
+
+//d: Edit menu item to change to full width
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_full_width "Full width"
+
+//d: Edit menu item to change to half width
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_half_width "Half width"
+
+//d: Edit menu item to activate predictive text input mode for Japanese
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_predict_on "J.Predictive on"
+
+//d: Edit menu item to deactivate predictive text input mode for Japanese
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_predict_off "J.Predictive off"
+
+//d: Edit menu item to activate English predictive mode.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_eng_predict_on "E.Predictive on"
+
+//d: Edit menu item for English predictive mode.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_eng_predictive "English predict."
+
+//d: Edit menu item to activate Kuten code input query dialog.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_register_word "Register Word"
+
+//d: Edit menu item to activate Kuten code input query dialog.
+//d: Only Japanese.
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_japin_edit_kuten_code "Kuten code input"
+
+//d: CBA SoftKey
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//
+#define text_softkey_convert "Convert"
+
+//d: Kuten query dialog.
+//d: Only Japanese.
+//l: popup_query_data_window
+//
+#define qtn_japin_prmpt_kuten_code "Kuten Code:"
+
+//d: error message of Kuten query dialog.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_text_kuten_code_invalid_error "Invalid Kuten Code"
+
+//d: Confirmation note text.
+//d: Confirms that the user has activated Japanese predictive input from edit menu.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_conf_predictive_on "Japanese predictive input activated"
+
+//d: Confirmation note text.
+//d: Confirms that the user has deactivated Japanese predictive input from edit menu.
+//d: Only Japanese.
+//l: popup_note_window
+//
+#define qtn_japin_conf_predictive_off "Japanese predictive input deactivated"
+
+//d:Options list text for a  writing message submenu (SMS,MMS,Email)
+//l:list_single_pane_t1_cp2/opt3
+//
+#define qtn_phob_opt_send                       "Write"
+
+//d:Options list submenu text for writing a SMS message to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_sms                   "SMS"
+
+//d:Options list submenu text for writing a MMS message to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_mms                   "MMS"
+
+//d:Options list submenu text for writing a e-mail message to to selected entry
+//l:list_single_popup_submenu_pane_t1
+//
+#define qtn_phob_opt_send_email                 "e-mail"
+
+
+// d: Text in options menu when link highlighted in automatic find.
+// d: If user selects this option, browser of real media player opens
+// l: list_single_pane_t1_cp2
+#define qtn_find_open_link "Open link"
+
+// d: Text in options menu when real media link highlighted
+// d: in automatic find. If user select this option, link will be saved to gallery
+// l: list_single_pane_t1_cp2
+#define qtn_find_url_save_gallery "Save to Gallery"
+
+// d: Text in information note when link was successfully saved
+// d:
+// l: popup_note_window
+#define qtn_find_rtsp_saved_note "Link saved"
+
+// d: Text in options menu. If user selects this option
+// d: automatic highlight will be enabled
+// l: list_single_pane_t1_cp2
+#define qtn_find_activate_option "Activate find"
+
+// d: Text in options menu. If user selects this option
+// d: automatic highlight will be disabled
+// l: list_single_pane_t1_cp2
+#define qtn_find_deactivate_option "Deactivate find"
+
+// d: Text in options menu when scheme handler command
+// d: highlighted. If selected, may open basically any application so please use
+// d: as generic text as possible
+// l: list_single_pane_t1_cp2
+#define qtn_options_scheme_use "Use"
+
+// d: Text in list query heading when user presses send-key
+// d: while automatic highlight is focused to phone number in
+// d: message body
+// l: heading_pane_t1
+#define qtn_find_number_call_send_key "Call"
+
+// d: Text in list query. If user selects this option,
+// d: application will create phone call to message sender
+// l: list_single_pane_t1_cp2
+#define qtn_find_call_to_sender "Back to sender"
+
+
+// d: Default name for file containing video information
+// d: Used only if user does not enter new name to link.
+// d: If file with same name already exists, number will be added
+// d: to the end of the string to make name unique (eg. Link(1))
+// l: list_single_graphic_pane_t1_cp2
+#define qtn_mg_link_name_default "Link"
+
+//d: Command in Options menu command name for "Open". From rel. 2.6 onwards
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_open "Open"
+
+//d:Command text associated to a softkey in the control pane. From rel. 2.6 onwards
+//l:control_pane_t1/opt7
+//
+#define text_softkey_open "Open"
+
+// d: CDMA: Title in list query when user wants to either save SMS sender/ CallBack number
+// d: to phonebook or call sender via options menu. Query is used for distinguish
+// d: to which number (sender number like in GSM, or special callback number used in CDMA)
+// d: action will be assigned.
+// l: heading_pane_t1
+//
+#define qtn_sms_usenumber		"Choose a number"
+
+// d: CDMA: Item text in list query (See description of qtn_sms_usenumber).
+// l: list_single_heading_pane_t2_cp2
+//
+#define qtn_sms_usenumber_from	"From"
+
+// d: CDMA: Item text in list query (See description of qtn_sms_usenumber).
+// l: list_single_heading_pane_t2_cp2
+//
+#define qtn_sms_usenumber_callback	"Callback"
+
+// d: Volume key popup window's text indicating muted volume
+// l: navi_pane_mp_t2/opt1
+//
+#define qtn_avkon_popup_volume_muted "Muted"
+
+//d: Option for copying item(s) to folder. Options menu item.
+//l: list_single_pane_t1_cp2
+//
+#define qtn_options_org_copy_to_folder "Copy to folder"
+
+
+// d: Text in softkey
+// l: control_pane_t1/opt7
+// w:
+// r: 2.8
+//
+#define text_softkey_other "Other"
+
+//d: Creating a call to a selected number.
+//l: list_single_pane_t1_cp2
+//w:
+//r: 3.0
+//
+#define qtn_options_internet_call "Internet Call"
+
+//d: Option for finding Tel Internet numbers. Options submenu item.
+//l: list_single_popup_submenu_pane_t1
+//w:
+//r: 3.0
+//
+#define qtn_options_find_voip_number "VoIP address"
+
+//d:Label for bookmark name query
+//l:popup_query_data_window
+//w:
+//r:3.0
+//
+#define qtn_wml_query_bookmark_title          "Enter bookmark name"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Sets text editor to editable state.
+//l:control_pane_t1/opt7
+//r:3.1
+//
+#define text_softkey_edit "Edit"
+
+// d: Text in softkey
+// l: control_pane_t1/opt7
+// w:
+// r: 3.0
+//
+#define text_softkey_send "Send"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Selects or accepts item.
+//l:control_pane_t1/opt7
+//r: 3.0
+//
+#define text_softkey_view "View"
+
+//d:Heading in send UI
+//l:heading_pane_t1
+//r:3.0
+//
+#define qtn_query_heading_send "Send"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_sms "Via short message"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_mms "Via multimedia"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_email "Via e-mail "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_syncmail "Via SyncML mail"
+
+//d: List item
+//d: For sending a content URL to another user via Message.
+//l: list_single_pane_t1_cp2
+//r: 3.2
+#define qtn_query_send_link_via_msg "Link via message"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_postcard "Postcard "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_bt "Via Bluetooth"
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_via_ir "Via Infrared "
+
+//d:List item
+//l:list_single_pane_t1_cp2
+//r:3.0
+//
+#define qtn_query_send_link_via_sms "Link via text message "
+
+//d:Command in options menu.
+//d:Write (a message).
+//l:list_single_pane_t1_cp2
+//w:
+//r: 3.0
+//
+#define qtn_options_write "Write"
+
+//d: List query heading text in write list query.
+//l: heading_pane_t1
+//w:
+//r: 3.0
+//
+#define qtn_query_heading_write "Write:"
+
+// d: When the integrated handsfree is activated in Phone/Video Telephone
+// d: application a confirmation note with this text is displayed right
+// d: after the activation.
+// l: popup_note_window
+// w:
+// r: 3.1
+//
+#define qtn_hf_conf_activate "Handsfree activated"
+
+// d: When the integrated handsfree is deactivated in any application
+// d: via the menu or using the shortcuts, a confirmation note with
+// d: this text is displayed right after the deactivation.
+// l: popup_note_window
+// w:
+// r: 3.1
+//
+#define qtn_hf_conf_earpiece "Handsfree deactivated"
+
+//d:Locked memory card not supported by device
+//d:This note is used to inform user that locked memory card
+//d:has been inserted, but locked cards are not supported by the device.
+//l:popup_note_window
+//w:
+//r:3.0
+#define qtn_memc_locked_not_supported "This device does not support locked memory cards."
+
+//d:Tooltip text for Application shell icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_app_shell_tooltip "Application shell"
+
+//d:Tooltip text for Home key icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_idle_view_tooltip "Home key"
+
+//d:Tooltip text for Telephone application icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_dialler_icon_tooltip "Telephone"
+
+//d:Tooltip text for Help application icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_help_tooltip "Help"
+
+//d:Tooltip text for Rotate screen icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_rotate_icon_tooltip "Rotate screen"
+
+//d:Tooltip text for Stylus input activation icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_input_activation_tooltip "Stylus input"
+
+//d:Tooltip text for Toolbar icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_toolbar_icon_tooltip "Toolbar"
+
+//d:Tooltip text for Application fast swapper icon in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_fast_swapper_tooltip "List of open applications"
+
+//d:Tooltip text for dimmed icons in Touchpane.
+//l:popup_preview_text_window_t1
+//w:
+//r:5.0
+//
+#define qtn_gen_info_pop_up_dimmed_item "%U item is not available."
+
+//d: Options submenu item.
+//d: For sending data via Unified SMS & MMS Editor.
+//l: list_single_popup_submenu_pane_t1
+//r: 3.1u
+#define qtn_options_send_via_msg        "Via message"
+
+//d: List item
+//d: For sending data via Unified SMS & MMS Editor.
+//l: list_single_pane_t1_cp2
+//r: 3.1u
+#define qtn_query_send_via_msg          "Via message"
+
+//d:RFC 3066 tag of the current display language
+//l: None
+//r:3.1
+//
+#define qtn_language_rfc3066_tag "i-default"
+
+// d: Text in a note that is shown when unsupported accessory was connected to the device
+// l: popup_note_window
+//
+#define text_unsupp_accessory_connected "Accessory not supported"
+//d:degree mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_degree "?"
+//d:minute mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_min_mark "'"
+//d:second mark
+//r: 3.1
+#define qtn_editing_coordinate_editor_sec_mark "\""
+//d:north
+//r: 3.1
+#define qtn_editing_latitude_editor_north "N"
+//d:south
+//r: 3.1
+#define qtn_editing_latitude_editor_south "S"
+//d:east
+//r: 3.1
+#define qtn_editing_longitude_editor_east "E"
+//d:west
+//r: 3.1
+#define qtn_editing_longitude_editor_west "W"
+
+// d: Text of the Pen Input Settings menu item
+ // d: Setting item for launching pen input settings in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_settings "Pen input settings"
+
+ // d: Text of the Pen Input Help menu item
+ // d: Setting item for launching pen input help in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_help "Pen input help"
+
+ // d: Text of the Train handwriting system menu item
+ // d: Setting item for launching train handwriting system in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_training "Train handwriting system"
+
+ // d: Text of the Paste menu item
+ // d: Setting item for paste option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_paste "Paste"
+
+ // d: Text of the Copy menu item
+ // d: Setting item for copy option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_copy "Copy"
+
+ // d: Text of the Cut menu item
+ // d: Setting item for cut option in the menu
+ // l: list_single_pane_t1_cp2
+ // r: 5.0
+ #define qtn_tin_option_menu_cut "Cut"
+
+ // d: Text of the language setting menu item
+ // d: Setting item for language setting menu promopt
+ // l: heading_pane_t1
+ // r: 5.0
+ #define qtn_tin_input_selection_menu_prompt "Select a language"
+
+//d: Edit submenu item
+//d: Shown in softkey when user is able to start copy/cut selection operation.
+//l: control_pane_t1/opt7
+#define text_softkey_start "Start"
+
+// d: Command in menu shown system wide by short press off power key
+// d: or command in in-call menu in phone application
+// d: Activates Key lock
+// l: list_single_pane_t1_cp2
+// w:
+// r: 3.1
+#define qtn_pwrc_lock_keys "Lock keys"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_activate  "Apply"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_add       "Add"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_change  "Change"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_collapse "Collapse"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_connect "Connect"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_delete    "Delete"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_edit       "Edit"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_expand  "Expand"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_insert    "Insert"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_mark     "Mark"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_new      "New"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_open     "Open"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_save      "Save"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_select    "Select"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_unmark  "Unmark"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_view       "View"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_play       "Play"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_pause    "Pause"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_stop      "Stop"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_send     "Send"
+
+// d: Text in warning note when trying to open protected setting item in
+// d: setting item list
+// l: popup_note_window
+// w:
+// r: 3.1
+#define qtn_selec_protected_setting "Unable to open protected settings"
+
+//d: Edit submenu item
+//d: Shown in edit submenu. Launches special character table.
+//l: list_single_pane_t1_cp2
+#define text_edit_menu_more_symbols "More symbols"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: audio is routed to handset mode
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_handset_option "Handset"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: audio is routed to bluetooth handsfree mode
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_bt_handsfree_option "BT handsfree"
+
+
+// d: It is text for a menu option. If it is selected,
+// d: inactive handsfree is activated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_act_ihf_option "Activate handsfree"
+
+// d: It is text for a menu option. If it is selected,
+// d: active handsfree is deactivated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_deact_ihf_option "Deactivate handsfree"
+
+// d: It is text for a menu option. If it is selected,
+// d: a call is terminated.
+// l: list_single_pane_t1_cp2
+// w:
+//
+#define qtn_incal_drop_option "End active call"
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, handsfree is deactivated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_handset "Handset"
+
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, handsfree is activated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_laudspek "Loudspeaker"
+
+// d: It is used as softkey text. If the softkey
+// d: is pressed, BT handsfree is activated.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_bt_handsfree "BT handsfree"
+
+// d: It is used as softkey text. If the
+// d: softkey is pressed, then a call is dropped.
+// l: control_pane_t1/opt7
+// w:
+//
+#define qtn_incal_softk_end_this "End call"
+
+// d: It is text used in error notes in several situations.
+// d: (basically when it is not allowed to create a new call)
+// l: popup_note_window
+// w:
+//
+#define text_call_not_allowed "Call not allowed"
+
+// d: It is text shown in navi pane when phone is muted in telephone.
+// l: navi_text_pane_t1
+// w:
+//
+#define qtn_incal_muted_pane "Muted"
+
+// d: When audio is routed from BT handsfree to handset mode,
+// d: a information note with the following text is shown
+// l: popup_note_window
+// w:
+//
+#define qtn_conf_audios_handset "Audio routed to handset"
+
+// d: When the 'temporary disconnection' from BT is reconnected,
+// d: a waiting note with the following text is shown
+// l: popup_note_wait_window
+// w:
+//
+#define qtn_wait_connecting_to_bt "Connecting to BT..."
+
+
+// d: If BT connection can't be makde, a information note with
+// d: following text will be shown to user
+// l: popup_note_window
+// w:
+//
+#define qtn_bt_device_not_avail "Cannot establish Bluetooth connection"
+
+// d: After the audio mode is changed from handportable mode to
+// d: BT handsfree mode, the following note is shown to user
+// l: popup_note_window
+// w:
+//
+#define qtn_conf_audios_bt_accessory "Audio routed to BT handsfree"
+
+//d: Edit submenu item
+//d:
+//l: list_single_pane_t1_cp2
+#define qtn_options_advanced "Advanced"
+
+//d: Options menu item text for launching task swapper popup window.
+//d: The pop-up window shows running applications in the device.
+//l: list_single_popup_menu_pane_1: list_single_pane_t1_cp2/opt1
+//
+#define qtn_options_task_swapper "Active Applications"
+
+//d: Heading title for task swapper (fastswap) popup window.
+//d: The pop-up window shows running applications in the device.
+//l: heading_pane_t1/opt2
+//r:3.1
+//
+#define qtn_selec_title_swapper "Active Applications"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_objects     "Objects"
+
+//d: Text in middle soft key (general purposes texts)
+//l: control_pane_t3/opt7
+//w:
+//r: 3.2
+#define qtn_msk_record      "Record"
+
+//d: Text in middle soft key (general purposes texts)
+//l: control_pane_t3/opt7
+//w:
+//r: 3.2
+#define qtn_msk_record_audio "Record"
+
+//d: List item
+//d: For sending data via audio messaging.
+//l: list_single_pane_t1_cp2
+//r: 3.1u
+#define qtn_query_send_via_audio "Via audio message"
+
+//d: Error message text for non-supported file formats
+//l: popup_note_window
+//w:
+//r: 3.2
+#define qtn_profiles_info_tone_no_drm "Unprotected file. Cannot be selected as ringing tone."
+
+// d: It is text for a menu option. If it is selected,
+// d: customizable active Idle application is brought to foreground
+// l: list_single_pane_t1_cp2
+// w:
+// r: 3.2
+//
+#define qtn_incal_goto_idle "Go to Idle"
+
+//d: Text in middle soft key (general purposes texts)
+//d: This text is shown during transitory input of Hiragana/Kanji.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//w:
+//r:3.2
+#define qtn_msk_commit "Commit"
+
+//d: Text in middle soft key (general purposes texts)
+//d: This text is shown in Next prediction popup window.
+//d: The pop-up window shows after committing Hiragana/Kanji
+//d: on Prediction mode in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//w:
+//r:3.2
+#define qtn_msk_selectcandidate "Select"
+
+//d:Command text associated to a softkey in the control pane.
+//d:Rejects item.
+//l:control_pane_t1/opt7
+//w:
+//r: 3.1
+//
+#define text_softkey_reject "Reject"
+
+//d: Generic text in softkey, for example:
+//d: Command text associated to a softkey in USSD notify to proceed with next message
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_softkey_next  "Next"
+
+//d:UNDELETE MSK text.
+//d:Text in middle soft key (used in mail offline handling)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+//
+#define qtn_msk_undelete    "Undelete"
+
+//d: This text is shown in right softkey of Candidate popup or
+//d: Prediction popup in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_othermodes "Other modes"
+
+//d: This text is shown in left softkey when there are
+//d: characters in transitory Input without Predictive input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_predict_startprediction "Predict on"
+
+//d: This text is shown in right softkey of Next prediction popup.
+//d: The pop-up window shows after committing Hiragana/Kanji
+//d: on Prediction mode in Japanese input.
+//d: Only Japanese.
+//l: control_pane_t1/opt7
+//r: 3.2
+//
+#define qtn_japin_edit_predict_stopprediction "Close list"
+
+// d:Unit editor unit label for meters
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_meter "m"
+
+// d:Unit editor unit label for kilometers
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_kilometer "km"
+
+// d:Unit editor unit label for feet
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_foot "ft"
+
+// d:Unit editor unit label for mile
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_mile "mi"
+
+// d:Unit editor unit label for metric speed, kilometers per hour
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_metr_speed "km/h"
+
+// d:Unit editor unit label for imperial speed, miles per hour
+// d:This should be as short as possible, preferably an abbreviation
+// l:data_form_pane_t1
+// r:3.2
+#define qtn_editing_unit_editor_imper_speed "mph"
+
+//d:Error text when memory card is in use.
+//l:main_list_empty_pane
+//
+#define qtn_memc_mainpage_error4 "Memory card in use"
+
+// d:Edit menu item to delete left side character, it means Backspace function
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:3.2
+#define qtn_japin_edit_delete_left "Delete left"
+
+// d:Edit menu item to delete right side character, it means Delete function
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:3.2
+#define qtn_japin_edit_delete_right "Delete right"
+
+//d:Text in middle soft key (general purposes texts)
+//l:control_pane_t3/opt7
+//w:
+//r:3.2
+#define qtn_msk_replace       "Replace"
+
+//d: Generic text in softkey.
+//d: E.g. command text associated to a softkey to hide Bluetooth/IrDA receiving indicator.
+//l: control_pane_t1/opt7
+//r: 3.2
+#define qtn_softkey_hide "Hide"
+
+//d: Text in middle soft key (general purposes texts).
+//d: E.g. command text associated to a softkey to hide Bluetooth/IrDA receiving indicator.
+//l: control_pane_t3/opt7
+//r: 3.2
+#define qtn_msk_hide "Hide"
+
+// d:Text of the Kana kanji conversion menu item
+// d:Only Japanese HWR
+// l:list_single_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert "Kana kanji conversion"
+
+// d:Submenu text for selecting Kana kanji conversion to ON
+// d:Only Japanese HWR
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert_radio_on "on"
+
+// d:Submenu text for selecting Kana kanji conversion to OFF
+// d:Only Japanese HWR
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_tin_convert_radio_off "off"
+
+// d:Text of the predictive text input mode menu item
+// d:Only Japanese.
+// l:list_single_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict "J.Predictive"
+
+// d:Submenu text for selecting predictive text input mode to ON
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict_radio_on "on"
+
+// d:Submenu text for selecting predictive text input mode to OFF
+// d:Only Japanese.
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+#define qtn_japin_edit_predict_radio_off "off"
+
+// d:Command text associated to a softkey in the control pane.
+// d:Back (from special character table).
+// d:Only Japanese SCT
+// l:control_pane_t2/OPT7
+// r:5.0
+#define qtn_japin_edit_sct_back "Back"
+
+// d:When no file or folder cannot be created due maximum number of entries
+// d:already selected memory, it is warned to user by system.
+// l: popup_note_window
+// w:
+// r:3.2
+//
+#define qtn_memlo_memory_dir_full "Directory full. Cannot create new directory or file."
+
+//d: Options list text for callout.
+//l: list_single_pane_t1_cp2/opt3
+//w:
+//r:5.1
+//
+#define qtn_options_callout "Callout"
+
+//d: "Call" sub menu item text for callout.
+//l: list_single_popup_submenu_pane_t1
+//w:
+//r:5.1
+//
+#define qtn_call_sub_callout "Callout"
+
+
+
+// d:Default text shown in the universal indicator popup for alarm clock indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_alarm_set_stat "Alarm set"
+
+// d efault text shown in the universal indicator popup for stopwatch indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_stopwatch_stat "Stopwatch"
+
+// d:Default text shown in the universal indicator popup for Bluetooth indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_bluetooth_stat "Bluetooth"
+
+// d:Default text shown in the universal indicator popup for call divert indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_calldiv_stat "Call divert active"
+
+// d:Default text shown in the universal indicator popup for new message indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_messages_stat "New messages"
+
+// d:Default text shown in the universal indicator popup for new e-mail message indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_emails_stat "New e-mails"
+
+// d:Default text shown in the universal indicator popup for new instant messaging indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_im_stat "New IM messages"
+
+// d:Default text shown in the universal indicator popup for missed calls indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_missed_calls_stat "Missed calls"
+
+// d:Default text shown in the universal indicator popup for Home Zone indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_homezone_stat "Home Zone"
+
+// d:Default text shown in the universal indicator popup for infrared active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_infrared_stat "Infrared"
+
+// d:Default text shown in the universal indicator popup for headset connected indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_headset_stat "Headset is connected"
+
+// d:Default text shown in the universal indicator popup for loopset connected indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_loopset_stat "Loopset is connected"
+
+// d:Default text shown in the universal indicator popup for TTY indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_tty_stat "TTY in use"
+
+// d:Default text shown in the universal indicator popup for hearing aid compatibility indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_hearing_aid_stat "T-coil hearing aid mode"
+
+// d:Default text shown in the universal indicator popup for IHF active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_handsfree_stat "Handsfree active"
+
+// d:Default text shown in the universal indicator popup for memory card indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_memorycard_stat "Memory card"
+
+// d:Default text shown in the universal indicator popup for outbox indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_outbox_stat "Messages in Outbox"
+
+// d:Default text shown in the universal indicator popup for secured connection indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_secconn_stat "Secured connection"
+
+// d:Default text shown in the universal indicator popup for selected line indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_selected_line_stat "Line 2 is active"
+
+// d:Default text shown in the universal indicator popup for USB connection indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usb_stat "USB"
+
+// d:Default text shown in the universal indicator popup for GPS indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_gps_stat "GPS"
+
+// d:Default text shown in the universal indicator popup for synchronisation indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_synch_stat "Synchronisation ongoing"
+
+// d:Default text shown in the universal indicator popup for new voice messages indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_voice_message_stat "New voice messages"
+
+// d:Default text shown in the universal indicator popup for VoIP indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_voip_stat "Internet call service enabled"
+
+// d:Default text shown in the universal indicator popup for PoC online indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_ptt_online_stat "PTT Online"
+
+// d:Default text shown in the universal indicator popup for PoC do not disturb indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_ptt_dnd_stat "PTT DND on"
+
+// d:Default text shown in the universal indicator popup for PoC missed calls indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_missed_ptt_stat "Missed PTT calls"
+
+// d:Default text shown in the universal indicator popup for WLAN available indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_wlannet_stat "WLAN networks available"
+
+// d:Default text shown in the universal indicator popup for WLAN active indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_wlanconn_stat "WLAN connection active"
+
+// d:Default text shown in the universal indicator popup for car kit indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_carkit_stat "Car Kit"
+
+// d:Default text shown in the universal indicator popup for TV out indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_tvout_stat "TV Out connected"
+
+// d:Default text shown in the universal indicator popup for video sharing indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_videoshare_stat "Video sharing enabled"
+
+// d:Default text shown in the universal indicator popup for mobile TV indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_mobiletv_stat "Mobile TV"
+
+// d:Default text shown in the universal indicator popup for terminal security activated indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_termsecurity_stat "Terminal Security Activated"
+
+// d:Default text shown in the universal indicator popup for terminal management active indicator
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_termmanag_stat "Terminal Management Active"
+
+// d:Default text shown in the universal indicator popup for FM Tx indicators
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_fmtx_stat "FM Transmitter"
+
+//d: Predictive Input Intelligent Text Input feature menu items.
+//l:list_single_pane_t1_cp2/opt3
+// w:
+// r: 3.2
+#define qtn_pred_options_input_options "Input options"
+
+//d: Options submenu item.
+//d: Opens Candidate List. This item is available only when a word is focused.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_matches "Matches"
+
+//d: Options submenu item.
+//d: To activate Intelligent Text Input.
+//d: This item is visible only in case Intelligent Text Input is deactivated.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_predictive_input_activate "Activate predictive input"
+
+//d: Options submenu item.
+//d: To deactivate Intelligent Text Input.
+//d: This item is visible only in case Intelligent Text Input is activated.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_predictive_input_deactivate "Deactivate predictive input"
+
+//d: Options submenu item.
+//d: Opens the Intelligent Text Input settings dialog.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_settings "Input settings"
+
+//d: Options submenu item.
+//d: Opens the dialog for changing the writing language.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_options_input_language "Writing language"
+
+//d: Options submenu item.
+//d: Opens specific Intelligent Text Input help.
+//l:list_single_popup_submenu_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_suboption_help "Help"
+
+//d: A query to turn on Intelligent Text Input.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_turn_input_on_query "Predictive input not in use. Activate it?"
+
+//d: The title in the Intelligent Text Input settings dialog.
+//d:
+//l:title_pane_t2/opt12
+// w:
+// r: 3.2
+#define qtn_pred_input_settings_title "Input settings"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_word_completion "Automatic word completion"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_typing_correction "Typing correction"
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_candidates "Number candidates"
+
+
+//d: Setting item in Intelligent Text Input settings.
+//d:
+//l:list_setting_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_candidate "Primary candidate"
+
+//d: Option in automatic word completion setting.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_autocompl_on "On"
+
+//d: Option in automatic word completion setting.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_autocompl_off "Off"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_high "High"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_medium "Medium"
+
+//d: An option in typing correction setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_correction_off "Off"
+
+//d: An option in number candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_cand_shown "Shown"
+
+//d: An option in number candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_number_cand_not_shown "Not shown"
+
+//d: An option in primary candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_cand_suggested "Best prediction"
+
+//d: An option in primary candidates setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_primary_cand_actually_entered "Exact typing"
+
+//d: An option in dual language setting (Intelligent Text Input feature).
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_set_secondary_writing_lang_none "None"
+
+//d: A query to turn on Intelligent Text Input.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_default_settings_query "Take language specific default settings into use?"
+
+// d:Default text shown in the universal indicator popup for missed calendar alarms indicator.
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_caled_alarm_stat "Missed alarms"
+
+//d: A note displayed when closing input settings due to layout change.
+//d:
+//l:popup_note_window
+// w:
+// r: 3.2
+#define qtn_pred_settings_closed "Input mode changed. Settings closed."
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_qwerty "Letter keypad"
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_itut "Number keypad"
+
+//d: An option in intelligent text input setting lists.
+//d:
+//l:list_set_graphic_pane_t1
+// w:
+// r: 3.2
+#define qtn_pred_setting_half_qwerty "Half-QWERTY keypad"
+
+// d:Default text shown in the universal indicator popup for USB mem connect indicator.
+// l:
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usbmem_conn_stat "USB Memory connected"
+
+// d:Default text shown in the universal indicator popup for USB Mem transfer indicator.
+// l: list_single_uniindi_pane_t1
+// w:
+// r:5.0
+//
+#define qtn_uni_ind_usbmem_active_stat "USB Memory Active"
+
+//d: Text in touch input menu
+//l:  list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_character_preview "Character preview"
+
+//d: Text in touch input sub menu
+//d: Command to active character preview
+//l:  list_single_popup_submenu_pane_t1
+//r: 5.0
+#define qtn_tin_option_submenu_radio_button_on "on"
+
+//d: Text in touch input sub menu
+//d: Command to deactive character preview
+//l:  list_single_popup_submenu_pane_t1
+//r: 5.0
+#define qtn_tin_option_submenu_radio_button_off "off"
+
+
+//d: Text in touch inputmethod menu list
+//d: Command to active predicted input
+//l:  list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_prediction_on "Activate predictive text"
+
+//d: Text in touch inputmethod menu list
+//d: Command to deactive predicted input
+//l:  list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_prediction_off "Deactivate predictive text"
+
+//d: Text in touch inputmethod menu list
+//d: Command to alpha input mode
+//l:  list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_alpha "Alpha mode"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display special character table
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_add_symbol "Add symbol"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display input language table
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_tin_option_menu_writing_language "Writing language"
+
+//d: Text in touch inputmethod menu list
+//d: Command to change editor text case to upper case
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_upper_case "Upper-case letters"
+
+//d: Text in touch inputmethod menu list
+//d: Command to change editor text case to lower case
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_lower_case "Lower-case letters"
+
+//d: Text in touch inputmethod menu list
+//d: Command to number input mode
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_editing_state_indicator_list_numbers "Number mode"
+
+//d: Note when there is not enough memory to execute operation on device memory.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_device_memory "Not enough memory to perform operation. Delete or move some data from %U Device memory."
+
+//d: Note when there is not enough memory to execute operation on memory card.
+//d:%0U is the drive letter and %1U is the name of the memory card
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_memory_card_name "Not enough memory to perform operation. Delete or move some data from %0U %1U."
+
+//d: Note when there is not enough memory to execute operation on memory card.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_memory_card_defaultname "Not enough memory to perform operation. Delete or move some data from %U Memory card."
+
+//d: Note when there is not enough memory to execute operation on mass storage.
+//d: %U is the drive letter of the drive.
+//l: popup_note_window
+//w:
+//r:3.2
+//
+#define qtn_memlo_not_enough_mass_memory "Not enough memory to perform operation. Delete or move some data from %U Mass storage."
+
+//d: "Open application" item in stylus popu menu of Active application list (fast swapper)
+//l: list_single_touch_menu_pane_t1
+//w:
+//r:5.0
+#define qtn_ispm_open "Open"
+
+//d: "Exit application" item in stylus popu menu of Active application list (fast swapper)
+//l: list_single_touch_menu_pane_t1
+//w:
+//r:5.0
+#define qtn_ispm_exit "Exit"
+
+//d: Percentage value displayed in slider
+//d:
+//l: popup_slider_window_t2/opt7
+//r: 5.0
+#define qtn_select_slider_value "%N%"
+
+//d: Text in Chinese ITUT menu list
+//d: command to enter user created phrase database management
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_management "User phrase list"
+
+//d: Text in title pane of Chinese ITUT user created phrase database management
+//d: title of user created phrase database management
+//l: title_pane_t2
+//r: 5.0
+#define qtn_chi_chinese_user_db_title "User phrase list"
+
+//d: Text in Chinese ITUT menu list
+//d: command to add a phrase to user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_options_new "New phrase"
+
+//d: Text in Chinese ITUT menu list
+//d: command to modify a phrase of user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_options_edit "Edit"
+
+//d: Text in Chinese ITUT menu list
+//d: command to delete a phrase from user created phrase database
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_chi_chinese_user_db_delete "Delete"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that only Chinese character can be input
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_only_chinese "Only Chinese characters are allowed"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that indicate at least one Chinese character should be included in phrase
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_too_short "A phrase should contain at least two characters"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that indicate the phrase is already exist in user created phrase database
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_note_already_in_db "Already in built-in phrase DB"
+
+//d: Text shown in Chinese ITUT main pane empty view
+//d: Text that indicate there is no phrase exist in database, and prompt user to create a new phrase
+//l: main_list_empty_pane/opt2
+//r: 5.0
+#define qtn_chi_chinese_user_db_empty "No phrase.\nYou can add your own Chinese phrases here in order to input them"
+
+//d: Text shown in left softkey of Chinese ITUT
+//d: Command in left softkey to create a new phrase
+//l: control_pane_t1/opt7
+//r: 5.0
+#define qtn_chi_chinese_user_db_softkey_new "New"
+
+//d: Text shown in title of popup query of Chinese ITUT
+//d: Title that prompt user to create a new phrase
+//l: popup_query_data_window_t3/opt2
+//r: 5.0
+#define qtn_chi_chinese_user_db_query_add "Input a new phrase:"
+
+
+//d: Text shown in popup query of Chinese ITUT
+//d: Text that ask user whether to delete a phrase or not
+//l: popup_note_window
+//r: 5.0
+#define qtn_chi_chinese_user_db_query_delete_phrase "Delete phrase?"
+
+//d:Options submenu item.
+//d:Opens the User dictionary editing dialog
+//l:list_single_popup_submenu_pane_t1
+//w:
+//r: TB9.1
+#define qtn_pred_options_user_dictionary "User dictionary editing"
+
+//d:The title in the User dictionary editing dialog
+//d:
+//l:title_pane_t2/opt9
+//w:
+//r: TB9.1
+#define qtn_pred_input_dictionary_editing_title "User dictionary editing"
+
+//d:The heading string that is displayed when there are no words in the user dictionary
+//d:and the listbox is empty.
+//l:main_list_empty_pane
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_editing_heading_empty "No words in user dictionary"
+
+//d:The secondary string that is displayed when there are no words in the user dictionary
+//d:and the listbox is empty.
+//l:main_list_empty_pane
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_editing_empty "Use the Options menu to add own words. Own words are also added automatically as you type."
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the query dialog to edit the word
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_edit "Edit"
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the query dialog to add a new word
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_add "Add new"
+
+//d:An item in the Options menu in User dictionary editing dialog
+//d:When chosen, it launches the confirmation note to delete one/more word(s)
+//l:list_single_pane_t1_cp2
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_delete "Delete"
+
+//d:Confirmation query prompt. User is asked to confirm whether
+//d:the selected/marked single word is to be deleted or not.
+//l:popup_note_window
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_confirm_1_deletion "Delete entry?"
+
+//d:Confirmation query prompt. User is asked to confirm whether
+//d:the multiple marked words are to be deleted or not.
+//d: %N represents the number of the selected items to be deleted.
+//l:popup_note_window
+//w:
+//r: TB9.1
+#define qtn_pred_dictionary_option_confirm_deletions "Delete %N entries?"
+
+//d:Text in middle soft key when there are no words in the user
+//d:dictionary and the list box is empty. When this is selected,
+//d:it launches the query dialog to add a new word
+//l:control_pane_t3/opt7
+//w:
+//r: TB9.1
+#define qtn_msk_pred_add_new "Add new"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display recognition with dictionary
+//l: list_single_pane_t1_cp2
+//w:
+//r:5.0
+#define qtn_tin_option_menu_arabic_recognition "Recognition with dictionary"
+
+//d: List of digraphs or trigraphs for given language.
+//d: Such as Hungarian, "sz ly dzs". If there is not digraphs or trigraphs in some languages, the value is an empty string.
+//l: None
+//w:
+//r:5.0
+#define qtn_ads_digraph ""
+
+//d: Smiley table query prompt text.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_picker_title "Select smiley:"
+
+//d: Smiley table query prompt text.
+//d: When the focus is on special character table icon.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_sct_button_title "Open special characters table"
+
+//d: Smiley table query prompt text.
+//d: When the focus is on smiley picker button.
+//l: heading_pane_t1/opt1
+//r: TB9.2
+#define qtn_sml_picker_button_title "Open smiley picker"
+
+//d: Edit submenu item
+//d: Shown in edit submenu. Launches smiley table.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_edit_menu_more_smileys "More smileys"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display smiley picker first in SCT
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_add_smiley "Add smiley"
+
+//d:Restart phone note for inserting SIM card. Shown if SIM card has been inserted and offline mode has been changed to another one when phone is on.
+//l:popup_note_window
+//r: TB9.2
+#define qtn_su_note_insert_sim_and_restart "Insert SIM card and restart phone"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to portrait.
+//l: list_single_pane_t1_cp2
+//r: TB9.2 
+#define qtn_tin_option_menu_to_portrait_hwr "To portrait handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to landscape.
+//l: list_single_pane_t1_cp2
+//r: TB9.2 
+#define qtn_tin_option_menu_to_landscape_hwr "To landscape handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch to virtual key based input methods.
+//l: list_single_pane_t1_cp2
+//r: TB9.2 
+#define qtn_tin_option_menu_switch_to_vkey_input "Switch to virtual key based input"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display writing speed setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2 
+#define qtn_tin_settings_writing_speed "Writing speed"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display guide line setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2 
+#define qtn_tin_settings_guiding_line "Guiding Line"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that only Chinese character can be input
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_invalid_phrase "Invalid phrase"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the phrase is not exist in database
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_not_existed "The phrase is not exist in database"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the database has no space to save the new phrase
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_db_have_no_space "The database has no space now"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the new phrase is too long
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_too_long "The phrase is too long"
+
+//d: Text in Chinese ITUT popup wait note
+//d: Notification that it is deleting phrase
+//l: popup_note_wait_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_deleting_phrases "It is deleting phrases"
+
+//d: Text in Chinese ITUT confirmation query prompt
+//d: Notification that confirm to delete the phrases
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_confirm_deletions "Delete %N Phrase?"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/avkonsct.loc	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2002 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 is a localisation file for AVKON special character tables
+ *     A .loc file is the one and only place where the logical strings
+ *     to be localised are defined. 
+ * >>>
+ * The text between >>> and <<< is just to document the syntax and
+ * you can remove it if you like.
+ *
+ * Syntax of a logical name entry in this file is the following:
+ *
+ * // d:context description (line 1)
+ * // d:context description (line N)
+ * // l:P_No
+ * //
+ * #define qtn_?feature/?module_name_?freetext "?text"
+ * #define text_?feature/?module_name_?freetext "?text"
+ *
+ *   where
+ *         "qtn_" or "text_" starts a logical name, which does not
+ *          not contain dots.
+ *         "d:" starts description line(s), which
+ *              clarify entry's context with information like:
+ *              1. Is a word a verb in imperative or is it a noun ?
+ *                   - what does text "Set" mean ?
+ *              2. What will replace %U (unicode text parameter) or
+ *                 %N (number parameter) included in texts ?
+ *                   - is it phone number or email address ?
+ *         "l:" starts a layout information (one line).
+ *              "P" and "No" are symbols in LAF's information table
+ *                 - "P" is parent pane or current pane
+ *                 - "No" is reference number in table
+ *  <<<
+ *  -------------------------------------------------------------------
+ *
+*/
+
+
+
+// LOCALISATION STRINGS
+
+
+// Special character table
+
+//d: Special character table character set. Maximum 255 characters.
+//d: Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_lower ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set. Maximum 255 characters.
+//d: Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_upper ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set for Qwerty keyboard. 
+//d: Maximum 255 characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_special_characters_qwerty ".,'?!\"-()"<0x0040>"/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"
+
+//d: Special character table character set to url address editor.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_url_special_characters_lower "/.:"<0x0040>",'?!\"-()_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x2029>
+
+//d: Special character table character set to url address editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_url_special_characters_upper "/.:"<0x0040>",'?!\"-()_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A1><0x00BF><0x00A7>"#|"<0x2029>
+
+//d: Special character table character set to email address editor.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_email_speci_chars_lower ".@;?'-_&/~*+="
+
+//d: Special character table character set to email address editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_email_speci_chars_upper ".@;?'-_&/~*+="
+
+//d: Special character table character set to currency name editor in logs.
+//d: Maximum 255 characters. Lower case characters.
+//d: Must contain ONLY characters that fit in 7-bit ascii!
+//d: ie. ascii code is 0x00...0x7f.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_currency_name_speci_chars_lower ".,'?!\"-()"<0x0040>"/:_;+&%*=<>$[]{}\\~^#|"<0x0020><0x2029>
+
+//d: Special character table character set to currency name editor in logs.
+//d: Maximum 255 characters. Upper case characters.
+//d: Must contain ONLY characters that fit in 7-bit ascii!
+//d: ie. ascii code is 0x00...0x7f.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_currency_name_speci_chars_upper ".,'?!\"-()"<0x0040>"/:_;+&%*=<>$[]{}\\~^#|"<0x0020><0x2029>
+
+//d: Special character table character set for Chinese Zhuyin symbol input tone mark.
+//d: Special characters for zhuyin tone mark symbols.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x02D9><0x02CA><0x02C7><0x02CB> etc.
+//d: <0x02D9> = invalid tone mark. <0x02CA> = the fourth tone mark.
+//d: <0x02C7> = the third tone mark. <0x02CB> = the fourth tone mark.
+//d: Only Chinese, only Taiwan variant
+//l:(none)
+//
+#define qtn_chi_star_zhuyin_tonemarks <0x02D9><0x02CA><0x02C7><0x02CB>
+
+//d: Special character table character set for APAC build.
+//d: Special characters for pinyin, zhuyin and stroke input methods.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Chinese.
+//l:(none)
+//
+#define text_chi_input_star_key <0x0020><0x2029>
+
+//d: Special character table character set for APAC build.
+//d: Special characters for latin input methods.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Chinese.
+//l:(none)
+//
+#define text_chi_input_star_key2 <0x0020><0x2029>
+
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for half width input.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+//
+#define qtn_sct_special_characters_halfwidth <0xFF64><0xFF61><0xFF9E><0xFF9F>".,'?!\"-()@/:_;+&%*=<>"<0x00A3><0x20AC>"$"<0x00A5><0x00A4>"[]{}\\~^"<0x00A7>"#|"<0x0020><0x2029>
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for full width input.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+#define qtn_sct_special_characters_fullwidth1 <0x3001><0x3002><0x3000><0x2029><0xff0c><0xff0e><0x30fb><0xff1a><0xff1b><0xff1f><0xff01><0x309b><0x309c><0x00b4><0xff40><0x00a8><0xff3e><0xffe3><0xff3f><0x30fd><0x30fe><0x309d><0x309e><0x3003><0x4edd><0x3005><0x3006><0x3007><0x30fc><0x2015><0x2010><0xff0f><0xff3c><0xff5e><0x2225><0xff5c><0x2026><0x2025><0x2018><0x2019><0x201c><0x201d><0xff08><0xff09><0x3014><0x3015><0xff3b><0xff3d><0xff5b><0xff5d><0x3008><0x3009><0x300a><0x300b><0x300c><0x300d><0x300e><0x300f><0x3010><0x3011><0xff0b><0xff0d><0x00b1><0x00d7><0x00f7><0xff1d><0x2260><0xff1c><0xff1e><0x2266><0x2267><0x221e><0x2234><0x2642><0x2640><0x00b0><0x2032><0x2033><0x2103><0xffe5><0xff04><0xffe0><0xffe1><0xff05><0xff03><0xff06><0xff0a><0xff20><0x00a7><0x2606><0x2605><0x25cb><0x25cf><0x25ce><0x25c7><0x25c6><0x25a1><0x25a0><0x25b3><0x25b2><0x25bd><0x25bc><0x203b><0x3012><0x2192><0x2190><0x2191><0x2193><0x3013><0x2208><0x220b><0x2286><0x2287><0x2282><0x2283><0x222a><0x2229><0x2227><0x2228><0xffe2><0x21d2><0x21d4><0x2200><0x2203><0x2220><0x22a5><0x2312><0x2202><0x2207><0x2261><0x2252><0x226a><0x226b><0x223d><0x221d><0x2235><0x222b><0x222c><0x212b><0x2030><0x266f><0x266d><0x266a><0x2020><0x2021><0x00b6><0x25ef><0x308e><0x3090><0x3091><0x30ee><0x30f0><0x30f1><0x30f4><0x30f5><0x30f6><0x0391><0x0392><0x0393><0x0394><0x0395><0x0396><0x0397><0x0398><0x0399><0x039A><0x039B><0x039C><0x039D><0x039E><0x039F><0x03A0><0x03A1><0x03A3><0x03A4><0x03A5><0x03A6><0x03A7><0x03A8><0x03A9><0x03B1><0x03B2><0x03B3><0x03B4><0x03B5><0x03B6><0x03B7><0x03B8><0x03B9><0x03BA><0x03BB><0x03BC><0x03BD><0x03BE><0x03BF><0x03C0><0x03C1><0x03C3><0x03C4><0x03C5><0x03C6><0x03C7><0x03C8>
+
+//d: Special character table character set for Japanese variant.
+//d: Special characters for full width input.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Japanese
+//l:(none)
+//
+#define qtn_sct_special_characters_fullwidth2  <0x03C9><0x0410><0x0411><0x0412><0x0413><0x0414><0x0415><0x0401><0x0416><0x0417><0x0418><0x0419><0x041A><0x041B><0x041C><0x041D><0x041E><0x041F><0x0420><0x0421><0x0422><0x0423><0x0424><0x0425><0x0426><0x0427><0x0428><0x0429><0x042A><0x042B><0x042C><0x042D><0x042E><0x042F><0x0430><0x0431><0x0432><0x0433><0x0434><0x0435><0x0451><0x0436><0x0437><0x0438><0x0439><0x043A><0x043B><0x043C><0x043D><0x043E><0x043F><0x0440><0x0441><0x0442><0x0443><0x0444><0x0445><0x0446><0x0447><0x0448><0x0449><0x044A><0x044B><0x044C><0x044D><0x044E><0x044F><0x2500><0x2502><0x250c><0x2510><0x2518><0x2514><0x251c><0x252c><0x2524><0x2534><0x253c><0x2501><0x2503><0x250f><0x2513><0x251b><0x2517><0x2523><0x2533><0x252b><0x253b><0x254b><0x2520><0x252f><0x2528><0x2537><0x253f><0x251d><0x2530><0x2525><0x2538><0x2542><0x2460><0x2461><0x2462><0x2463><0x2464><0x2465><0x2466><0x2467><0x2468><0x2469><0x246a><0x246b><0x246c><0x246d><0x246e><0x246f><0x2470><0x2471><0x2472><0x2473><0x2160><0x2161><0x2162><0x2163><0x2164><0x2165><0x2166><0x2167><0x2168><0x2169><0x3349><0x3314><0x3322><0x334d><0x3318><0x3327><0x3303><0x3336><0x3351><0x3357><0x330d><0x3326><0x3323><0x332b><0x334a><0x333b><0x339c><0x339d><0x339e><0x338e><0x338f><0x33c4><0x33a1><0x337b><0x301d><0x301f><0x2116><0x33cd><0x2121><0x32a4><0x32a5><0x32a6><0x32a7><0x32a8><0x3231><0x3232><0x3239><0x337e><0x337d><0x337c><0x222e><0x2211><0x221a><0x221f><0x22bf>
+
+
+//d: Special character table character set to CDMA sms.
+//d: Maximum 255 characters. Lower case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_cdma_sp_sms_speci_chars_lower ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|"
+ 
+//d: Special character table character set to CDMA sms editor.
+//d: Maximum 255 characters. Upper case characters.
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//l:(none)
+//
+#define qtn_sct_cdma_sp_sms_speci_chars_upper ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|"
+
+
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* 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"
+* 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:  File that exports the files belonging to 
+:                AVKON Localised Texts API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+platform.loc     MW_LAYER_PLATFORM_EXPORT_PATH(platform.loc)
+avkon.loc        MW_LAYER_LOC_EXPORT_PATH(avkon.loc)
+avkonsct.loc     MW_LAYER_LOC_EXPORT_PATH(avkonsct.loc)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/avkon_localised_texts_api/platform.loc	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2002 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:  wrapper to avkon.loc
+ *
+*/
+
+
+#include <avkon.loc>
--- a/dependencies/bld.inf	Fri Mar 19 13:46:28 2010 +0200
+++ b/dependencies/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -3,4 +3,34 @@
 defaultcaps.hrh                defaultcaps.hrh
 bldvariant.hrh                 bldvariant.hrh
 
-#include "xcfw/bld.inf"
\ No newline at end of file
+telinformationpskeys.h			telinformationpskeys.h
+
+liwservicehandler.h				liwservicehandler.h
+liwserviceifmenu.h				liwserviceifmenu.h
+liwserviceifbase.h				liwserviceifbase.h
+liwmenu.h						liwmenu.h
+
+rtsecmgrcommondef.h				rtsecmgrcommondef.h
+
+PSVariables.h					PSVariables.h
+CommonEngineDomainCRKeys.h		CommonEngineDomainCRKeys.h
+settingsinternalcrkeys.h		settingsinternalcrkeys.h
+SATDomainPSKeys.h				SATDomainPSKeys.h
+ScreensaverInternalPSKeys.h		ScreensaverInternalPSKeys.h
+ctsydomainpskeys.h				ctsydomainpskeys.h
+BTSapDomainPSKeys.h				BTSapDomainPSKeys.h
+et_clsvr.h						et_clsvr.h
+etelext.h						etelext.h
+RMmCustomAPI.h					RMmCustomAPI.h
+
+#include "xcfw/bld.inf"
+// #include "kernel/bld.inf"
+#include "activebackupclient/bld.inf"
+#include "extended_version_info_api/bld.inf"
+#include "common_platform_security_definitions/bld.inf"
+#include "SAT/bld.inf"
+#include "liw_generic_parameter_api/bld.inf"
+#include "liw_criteria_api/bld.inf"
+#include "avkon_localised_texts_api/bld.inf"
+#include "rtsecuritymanager_client_api/bld.inf"
+#include "rtsecuritymanager_utility_api/bld.inf"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* 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:  File that exports the files belonging to 
+*               Common Platform Security Definitions API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+// Use actual paths directly without export macros to export into same path in all configurations
+data_caging_path_literals.hrh    /epoc32/include/data_caging_path_literals.hrh
+data_caging_paths_for_iby.hrh    /epoc32/include/data_caging_paths_for_iby.hrh
+data_caging_paths.hrh            /epoc32/include/data_caging_paths.hrh
+data_caging_paths_strings.hrh    /epoc32/include/data_caging_paths_strings.hrh
+data_caged_locations.mk          /epoc32/include/data_caged_locations.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caged_locations.mk	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2002-2005 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:  Predefined directory paths for .MK files
+#
+
+DC_APPARC_RECOGNISER_RESOURCES_DIR=\resource\apps\registrationresourcefiles
+DC_APP_BITMAP_DIR=\resource\apps
+DC_APP_RESOURCE_DIR=\resource\apps
+DC_BITMAP_DIR=\resource\apps
+DC_BIOFILE_DIR=\resource\messaging\bif
+DC_CHARCONV_PLUGIN_DIR=\resource\charconv
+DC_CONTACTS_RESOURCE_DIR=\resource\cntmodel
+DC_CTRL_PANEL_RESOURCE_DIR=\resource\controls
+DC_CONVERTER_PLUGIN_RESOURCE_DIR=\resource\convert
+DC_ECOM_RESOURCE_DIR=\resource\plugins
+DC_ERROR_RESOURCE_DIR=\resource\errors
+DC_PROGRAMS_DIR=\sys\bin
+DC_FEP_RESOURCES_DIR=\resource\fep
+DC_HELP_FILE_DIR=\resource\help
+DC_LOG_ENGINE_RESOURCE_DIR=\resource\logengine
+DC_MTM_RESOURCE_DIR=\resource\messaging
+DC_MTM_INFO_FILE_DIR=\resource\messaging\mtm
+DC_PRINTER_DRIVER_DIR=\resource\printers
+DC_SHARED_LIB_DIR=\sys\bin
+DC_UIKLAF_RESOURCE_DIR=\resource\uiklaf
+DC_WAPPUSH_PLUGIN_RESOURCE_DIR=\resource\messaging\wappush
+DC_WATCHER_PLUGIN_RESOURCE_DIR=\resource\messaging\watchers
+DC_RECOGNISERS_DIR=\sys\bin
+DC_PARSERS_DIR =\sys\bin
+DC_NOTIFIERS_D=\sys\bin
+DC_PLUGINS_1_DIR=\sys\bin
+DC_RESOURCE_FILES_DIR=\resource
+
+DC_BOOTDATA_DIR=\resource\bootdata
+DC_SKINS_DIR=\private\10207114
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_path_literals.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2002-2004 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:  Predefined directory paths for the use of ROM based sw (for the use with C++ files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATH_LITERALS_HRH
+#define DATA_CAGING_PATH_LITERALS_HRH
+
+_LIT(KDC_APPARC_RECOGNISER_RESOURCES_DIR,"\\resource\\apps\\registrationresourcefiles\\");  //Apparc recogniser resource files
+_LIT(KDC_APP_BITMAP_DIR,"\\resource\\apps\\");                    //  Application bitmap files (.mbm, .mif)
+_LIT(KDC_APP_RESOURCE_DIR,"\\resource\\apps\\");                  //  Application resource (.rsc)
+_LIT(KDC_BITMAP_DIR,"\\resource\\apps\\");                        //  Other bitmap files (.mbm, .mif)
+_LIT(KDC_BIOFILE_DIR,"\\resource\\messaging\\bif\\");             //  BIO Information Files
+_LIT(KDC_CHARCONV_PLUGIN_DIR,"\\resource\\charconv\\");           //  Charconv plug-in data files
+_LIT(KDC_CONTACTS_RESOURCE_DIR,"\\resource\\cntmodel\\");         //  Contacts model resources
+_LIT(KDC_CTRL_PANEL_RESOURCE_DIR,"\\resource\\controls\\");       //  Control panel plug-in resources
+_LIT(KDC_CONVERTER_PLUGIN_RESOURCE_DIR,"\\resource\\convert\\");  //  Converter plug-in resources
+_LIT(KDC_ECOM_RESOURCE_DIR,"\\resource\\plugins\\");              //  ECom plugin resources
+_LIT(KDC_ERROR_RESOURCE_DIR,"\\resource\\errors\\");              //  Error resources
+_LIT(KDC_PROGRAMS_DIR,"\\sys\\bin\\");                            //  EXEs
+_LIT(KDC_FEP_RESOURCES_DIR,"\\resource\\fep\\");                  //  FEP resources
+_LIT(KDC_HELP_FILE_DIR,"\\resource\\help\\");                     //  Help files
+_LIT(KDC_LOG_ENGINE_RESOURCE_DIR,"\\resource\\logengine\\");      //  Log engine resources
+_LIT(KDC_MTM_RESOURCE_DIR,"\\resource\\messaging\\");             //  MTM resources
+_LIT(KDC_MTM_INFO_FILE_DIR,"\\resource\\messaging\\mtm\\");       //  MTM information files
+_LIT(KDC_PRINTER_DRIVER_DIR,"\\resource\\printers\\");            //  Printer driver definition
+_LIT(KDC_SHARED_LIB_DIR,"\\sys\\bin\\");                          //  Shared libraries
+_LIT(KDC_UIKLAF_RESOURCE_DIR,"\\resource\\uiklaf\\");             //  UIKLAF resources
+_LIT(KDC_WAPPUSH_PLUGIN_RESOURCE_DIR,"\\resource\\messaging\\wappush\\"); //  WAP Push plug-in token/DTDs
+_LIT(KDC_WATCHER_PLUGIN_RESOURCE_DIR,"\\resource\\messaging\\watchers\\");  //  Watcher plug-in resources
+_LIT(KDC_RECOGNISERS_DIR,"\\sys\\bin\\");                         //  Recognisers
+_LIT(KDC_PARSERS_DIR,"\\sys\\bin\\");                             //
+_LIT(KDC_NOTIFIERS_DIR,"\\sys\\bin\\");                           //  Notifier Plugins:
+_LIT(KDC_PLUGINS_DIR,"\\sys\\bin\\");                             //  Plugins:
+_LIT(KDC_PLUGINS_1_DIR,"\\sys\\bin\\");                           //  Plugins:
+_LIT(KDC_RESOURCE_FILES_DIR,"\\resource\\");                      //  Other resource files
+
+
+_LIT(KDC_CA_CERTIFICATES_DIR,"\\private\\101f72a6\\");            //  CA certificates
+_LIT(KDC_COMMDB_DIR,"\\private\\100012a5\\");                     //  CommDB default database
+_LIT(KDC_SS_CONFIG_FILE_DIR,"\\private\\101f7989\\esock\\");      //  Socket server configuration (.esk, .ini)
+_LIT(KDC_TRUSTED_FONTS_DIR,"\\private\\10003a16\\fonts\\");       //  Trusted fonts
+_LIT(KDC_UNTRUSTED_FONT_DIR,"\\private\\10003a16\\import\\fonts\\");  //  Untrusted fonts
+_LIT(KDC_WINDOW_SERVER_INI_DIR,"\\private\\10003b20\\");          //  Window server INI
+_LIT(KDC_SKINS_DIR,"\\private\\10207114\\");         		  //  Skins
+_LIT(KDC_BOOTDATA_DIR,"\\resource\\bootdata\\");         	  //  Bootdata
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2002-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:  Predefined directory paths for the use of ROM based sw (to be used with MMP files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_HRH
+#define DATA_CAGING_PATHS_HRH
+
+#define  APPARC_RECOGNISER_RESOURCES_DIR   resource/apps/registrationresourcefiles
+#define  APP_BITMAP_DIR                    resource/apps
+#define  APP_RESOURCE_DIR                  resource/apps
+#define  BITMAP_DIR                        resource/apps
+#define  BIOFILE_DIR                       resource/messaging/bif
+#define  CHARCONV_PLUGIN_DIR               resource/charconv
+#define  CONTACTS_RESOURCE_DIR             resource/cntmodel
+#define  CTRL_PANEL_RESOURCE_DIR           resource/controls
+#define  CONVERTER_PLUGIN_RESOURCE_DIR     resource/convert
+#define  ECOM_RESOURCE_DIR                 resource/plugins
+#define  ERROR_RESOURCE_DIR                resource/errors
+#define  PROGRAMS_DIR                      sys/bin
+#define  FEP_RESOURCES_DIR                 resource/fep
+#define  HELP_FILE_DIR                     resource/help
+#define  LOG_ENGINE_RESOURCE_DIR           resource/logengine
+#define  MTM_RESOURCE_DIR                  resource/messaging
+#define  MTM_INFO_FILE_DIR                 resource/messaging/mtm
+#define  PRINTER_DRIVER_DIR                resource/printers
+#define  SHARED_LIB_DIR                    sys/bin
+#define  UIKLAF_RESOURCE_DIR               resource/uiklaf
+#define  WAPPUSH_PLUGIN_RESOURCE_DIR       resource/messaging/wappush
+#define  WATCHER_PLUGIN_RESOURCE_DIR       resource/messaging/watchers
+#define  RECOGNISERS_DIR                   sys/bin
+#define  PARSERS_DIR                       sys/bin
+#define  NOTIFIERS_DIR                     sys/bin
+#define  PLUGINS_DIR                       sys/bin
+#define  PLUGINS_1_DIR                     sys/bin
+#define  RESOURCE_FILES_DIR                resource
+
+#define  CA_CERTIFICATES_DIR     private/101f72a6
+#define  COMMDB_DIR              private/100012a5
+#define  SS_CONFIG_FILE_DIR      private/101f7989/esock
+#define  TRUSTED_FONTS_DIR       private/10003a16/fonts
+#define  UNTRUSTED_FONT_DIR      private/10003a16/import/fonts
+#define  WINDOW_SERVER_INI_DIR   private/10003b20
+#define  SKINS_DIR               private/10207114
+#define  BOOTDATA_DIR            resource/bootdata
+
+#endif
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths_for_iby.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2002-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:  Predefined directory paths for the use of ROM based sw (to be used with IBY files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_IBY_HRH
+#define DATA_CAGING_PATHS_IBY_HRH
+
+define  APPARC_RECOGNISER_RESOURCES_DIR   resource/apps/registrationresourcefiles
+define  APP_BITMAP_DIR                    resource/apps
+define  APP_RESOURCE_DIR                  resource/apps
+define  BITMAP_DIR                        resource/apps
+define  BIOFILE_DIR                       resource/messaging/bif
+define  CHARCONV_PLUGIN_DIR               resource/charconv
+define  CONTACTS_RESOURCE_DIR             resource/cntmodel
+define  CTRL_PANEL_RESOURCE_DIR           resource/controls
+define  CONVERTER_PLUGIN_RESOURCE_DIR     resource/convert
+define  ECOM_RESOURCE_DIR                 resource/plugins
+define  ERROR_RESOURCE_DIR                resource/errors
+define  PROGRAMS_DIR                      sys/bin
+define  FEP_RESOURCES_DIR                 resource/fep
+define  HELP_FILE_DIR                     resource/help
+define  LOG_ENGINE_RESOURCE_DIR           resource/logengine
+define  MTM_RESOURCE_DIR                  resource/messaging
+define  MTM_INFO_FILE_DIR                 resource/messaging/mtm
+define  PRINTER_DRIVER_DIR                resource/printers
+define  SHARED_LIB_DIR                    sys/bin
+define  UIKLAF_RESOURCE_DIR               resource/uiklaf
+define  WAPPUSH_PLUGIN_RESOURCE_DIR       resource/messaging/wappush
+define  WATCHER_PLUGIN_RESOURCE_DIR       resource/messaging/watchers
+define  RECOGNISERS_DIR                   sys/bin
+define  PARSERS_DIR                       sys/bin
+define  NOTIFIERS_DIR                     sys/bin
+define  PLUGINS_DIR                       sys/bin
+define  PLUGINS_1_DIR                     sys/bin
+define  RESOURCE_FILES_DIR                resource
+
+define  CA_CERTIFICATES_DIR     private/101f72a6
+define  COMMDB_DIR              private/100012a5
+define  TRUSTED_FONTS_DIR       private/10003a16/fonts
+define  SS_CONFIG_FILE_DIR      private/101f7989/esock
+define  UNTRUSTED_FONT_DIR      private/10003a16/import/fonts
+define  WINDOW_SERVER_INI_DIR   private/10003b20
+define  SKINS_DIR               private/10207114
+define  BOOTDATA_DIR            resource/bootdata
+
+
+#endif
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/common_platform_security_definitions/data_caging_paths_strings.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2002-2004 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:  Predefined directory paths for the use of ROM based sw (to be used with RSS files)
+*
+*/
+
+
+
+#ifndef DATA_CAGING_PATHS_STRINGS_HRH
+#define DATA_CAGING_PATHS_STRINGS_HRH
+
+#define   APPARC_RECOGNISER_RESOURCES_DIR   "\\resource\\apps\\registrationresourcefiles"
+#define   APP_BITMAP_DIR                    "\\resource\\apps"
+#define   APP_RESOURCE_DIR                  "\\resource\\apps"
+#define   BITMAP_DIR                        "\\resource\\apps"
+#define   BIOFILE_DIR                       "\\resource\\messaging\\bif"
+#define   CHARCONV_PLUGIN_DIR               "\\resource\\charconv"
+#define   CONTACTS_RESOURCE_DIR             "\\resource\\cntmodel"
+#define   CTRL_PANEL_RESOURCE_DIR           "\\resource\\controls"
+#define   CONVERTER_PLUGIN_RESOURCE_DIR     "\\resource\\convert"
+#define   ECOM_RESOURCE_DIR                 "\\resource\\plugins"
+#define   ERROR_RESOURCE_DIR                "\\resource\\errors"
+#define   PROGRAMS_DIR                      "\\sys\\bin"
+#define   FEP_RESOURCES_DIR                 "\\resource\\fep"
+#define   HELP_FILE_DIR                     "\\resource\\help"
+#define   LOG_ENGINE_RESOURCE_DIR           "\\resource\\logengine"
+#define   MTM_RESOURCE_DIR                  "\\resource\\messaging"
+#define   MTM_INFO_FILE_DIR                 "\\resource\\messaging\\mtm"
+#define   PRINTER_DRIVER_DIR                "\\resource\\printers"
+#define   SHARED_LIB_DIR                    "//sys//bin"
+#define   UIKLAF_RESOURCE_DIR               "\\resource\\uiklaf"
+#define   WAPPUSH_PLUGIN_RESOURCE_DIR       "\\resource\\messaging\\wappush"
+#define   WATCHER_PLUGIN_RESOURCE_DIR       "\\resource\\messaging\\watchers"
+#define   RECOGNISERS_DIR                   "\\sys\\bin"
+#define   PARSERS_DIR                       "\\sys\\bin"
+#define   NOTIFIERS_DIR                     "\\sys\\bin"
+#define   PLUGINS_DIR                       "\\sys\\bin"
+#define   PLUGINS_1_DIR                     "\\sys\\bin"
+#define   RESOURCE_FILES_DIR                "\\resource"
+
+#define  CA_CERTIFICATES_DIR     "\\private\\101f72a6"
+#define  COMMDB_DIR              "\\private\\100012a5"
+#define  TRUSTED_FONTS_DIR       "\\private\\10003a16\\fonts"
+#define  SS_CONFIG_FILE_DIR      "\\private\\101f7989\\esock"
+#define  UNTRUSTED_FONT_DIR      "\\private\\10003a16\\import\\fonts"
+#define  WINDOW_SERVER_INI_DIR   "\\private\\10003b20"
+#define  SKINS_DIR               "\\private\\10207114"
+#define  BOOTDATA_DIR            "\\resource\\bootdata"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/ctsydomainpskeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,156 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+#ifndef CTSYDOMAINPSKEYS_H
+#define CTSYDOMAINPSKEYS_H
+
+// INCLUDES
+#include <e32std.h>
+
+/**
+ * For Call forwarding number
+ */  
+const TUid KPSUidCtsyCallForwardingInfo = { 0x1020299D };
+
+/**
+ * For Emergency call info
+ * Provides information whether an emergency call is active or not
+ */  
+const TUid KPSUidCtsyEmergencyCallInfo = { 0x102029A0 };
+    
+/** For Emergency call info */
+enum KEmergencyCallInfo 
+    {
+    KCTSYEmergencyCallInfo,
+    };
+   
+/**
+* Telephony Call Information API.
+*/
+const TUid KPSUidCtsyCallInformation = {0x102029AC};
+/**
+* State of ongoing call(s). The following table shows states if
+* in different combinations of phone calls.
+* 
+* Call 1 state    Call 2 state    TPSCTsyCallState
+* =========================================================
+* idle            idle            EPSCTsyCallStateNone
+* hold            idle            EPSCTsyCallStateHold
+* hold            dialling        EPSCTsyCallStateDialling
+* hold            ringing         EPSCTsyCallStateRinging
+* hold            answering       EPSCTsyCallStateAnswering
+* hold            connected       EPSCTsyCallStateConnected
+* connected       connected       EPSCTsyCallStateConnected
+* connected       ringing         EPSCTsyCallStateRinging
+* disconnecting   connected       EPSCTsyCallStateConnected
+* disconnecting   hold            EPSCTsyCallStateHold
+* disconnecting   idle            EPSCTsyCallStateDisconnecting
+* disconnecting   ringing         EPSCTsyCallStateRinging
+*
+* @type: RProperty::EInt
+
+*  For single calls 
+       *       
+
+       *  Mobile originated call states: 
+
+       *     (1) EPSCTsyCallStateNone 
+       *     (2) EPSCTsyCallStateDialling 
+       *     (3) EPSCTsyCallStateAlerting 
+       *     (4) EPSTelephonyCallStateConnected 
+       *     (5) EPSCTsyCallStateDisconnecting 
+       *     (6) EPSCTsyCallStateNone  
+       * 
+       *       Note that state transitions (2) --> (5) and (3) --> (5) are also possible.      
+       * 
+       * Mobile terminated call states: 
+
+       *     (1) EPSCTsyCallStateNone 
+       *     (8) EPSCTsyCallStateRinging 
+       *     (4) EPSTelephonyCallStateConnected 
+       *     (5) EPSCTsyCallStateDisconnecting 
+       *     (6) EPSCTsyCallStateNone 
+       *     
+       *       Note that state transition (8) --> (5) is also possible.      
+       * 
+       *  If the call is put on Hold the the following state transition are possible: 
+       *  (4) --> (9) EPSCTsyCallStateHold --> (4) 
+       *  (4) --> (9) --> (5) 
+
+*/ 
+
+/**
+ * State of ongoing call.  
+ *
+ */
+const TUint32 KCTsyCallState = 0x00000001; 
+enum TPSCTsyCallState
+    {
+    /** Call has not been initialized */
+    EPSCTsyCallStateUninitialized,
+    /** None */
+    EPSCTsyCallStateNone,
+    /** Call is in alerting state */
+    EPSCTsyCallStateAlerting,
+    /** Call is in ringing state */
+    EPSCTsyCallStateRinging,
+    /** Call is being dialled */
+    EPSCTsyCallStateDialling,
+    /** Call is being answered */
+    EPSCTsyCallStateAnswering,
+    /** Call is being disconnected */
+    EPSCTsyCallStateDisconnecting,
+    /** Call is connected */
+    EPSCTsyCallStateConnected,
+    /** Call is held */
+    EPSCTsyCallStateHold
+    };
+
+/**
+* Type of ongoing call.  
+*
+*/
+const TUint32 KCTsyCallType = 0x00000002; 
+enum TPSCTsyCallType
+    {
+    /** Call type has not been initialized */
+    EPSCTsyCallTypeUninitialized,
+    /** None */
+    EPSCTsyCallTypeNone,
+    /** CS voice call */
+    EPSCTsyCallTypeCSVoice,
+    /** Fax call */
+    EPSCTsyCallTypeFax,
+    /** Data call */
+    EPSCTsyCallTypeData,
+    /** HSCSD call */
+    EPSCTsyCallTypeHSCSD,
+    /** H.324 multimedia call */
+    EPSCTsyCallTypeH324Multimedia,
+    /** VoIP call */
+    EPSCTsyCallTypeVoIP
+    };    
+
+#endif //CTSYDOMAINPSKEYS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,3 @@
+PRJ_EXPORTS
+sysversioninfo.h			        sysversioninfo.h
+sysversioninfo.inl					sysversioninfo.inl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/sysversioninfo.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,280 @@
+/*
+* Copyright (c) 2007 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:  Extended Version Info API provides extended version 
+*                information i.e. firmware, operator etc version information
+*
+*/
+
+
+
+#ifndef SYS_VERSION_INFO_H
+#define SYS_VERSION_INFO_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+class RFs;
+
+// CONSTANTS
+/**
+* Helper constant to allocate buffers for SysVersionInfo::GetVersionInfo.
+*/
+const TInt KSysVersionInfoTextLength = 256;
+
+/**
+* Helper constants to allocate buffers for SysVersionInfo::TProductVersion items.
+*/
+const TInt KSysVersionInfoManufacturerLength = 50;
+const TInt KSysVersionInfoModelLength = 50;
+const TInt KSysVersionInfoProductLength = 50;
+const TInt KSysVersionInfoRevisionLength = 50;
+
+// CLASS DECLARATION
+/**
+* Extended Version Info API provides extended version information 
+* i.e. firmware, operator etc version information.
+*
+* Usage:
+*  
+* Get the version information:
+* @code
+* // iFs contains open file server session
+*
+* TBuf< KSysVersionInfoTextLength > info;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+*   SysVersionInfo::EFWVersion, info, iFs ) );
+*
+* // Now info contains firmware version information
+*
+* SysVersionInfo::TSymbianOSVersion osVersion;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo( osVersion, iFs ) );
+*
+*  // Now osVersion contains the Symbian OS version information
+*
+* SysVersionInfo::TProductVersion productVersion;
+* User::LeaveIfError( SysVersionInfo::GetVersionInfo( productVersion, iFs ) );
+*
+*  // Now productVersion contains the product version information
+*
+* @endcode
+*
+* // @ we don't have this file lib sysversioninfo.lib
+* @since S60 3.2
+*/
+class SysVersionInfo
+    {
+public:
+
+    /**
+    * Enumeration TVersionInfoType defines values to be used for
+    * the aType parameter in GetVersionInfo method.
+    * @since S60 3.2
+    */
+    enum TVersionInfoType
+        {
+        /** To get the firmware version that is composed of the version info 
+        * of multiple images (core + variants images).
+        */
+        EFWVersion = 0,
+
+        /** To get the customer software version. This identifies 
+        * the user friendly version of e.g. operator/country/regional variant 
+        * image.
+        */
+        EOPVersion,
+
+        /** To get the model version.
+        */
+        EModelVersion,
+        
+        /**
+        * To get the product code. 
+        **/
+        EProductCode
+
+        };
+
+    /**
+    * Class TVersionBase is a base class for version information data.
+    * @since S60 3.2
+    */
+    class TVersionBase;
+
+    /**
+    * This method gets the requested version information as string.
+    * The maximum length for the string is KSysVersionInfoTextLength if 
+    * it has not been explicitly specified by the requested TVersionInfoType 
+    * definition.
+    *
+    * KErrTooBig is returned if the requested version info does not 
+    * fit into given descriptor. The part that fits is copied to 
+    * the given descriptor.
+    *
+    * @since S60 3.2
+    * @param aType A version information type specified by TVersionInfoType.
+    * @param aValue Stores version information.
+    * @return System wide error code.
+    *
+    * @see TVersionInfoType
+    * @see KSysVersionInfoTextLength
+    */
+    IMPORT_C static TInt GetVersionInfo(
+        const TVersionInfoType aType, TDes& aValue );
+
+    /**
+    * This method gets the requested version information as string.
+    * The maximum length for the string is KSysVersionInfoTextLength if 
+    * it has not been explicitly specified by the requested TVersionInfoType 
+    * definition. The method avoids overhead of creating new file 
+    * server session.
+    *
+    * KErrTooBig is returned if the requested version info does not 
+    * fit into given descriptor. The part that fits is copied to 
+    * the given descriptor.
+    *
+    * @since S60 3.2
+    * @param aType A version information type specified by TVersionInfoType.
+    * @param aValue Stores version information.
+    * @param aFs Open file server session.
+    * @return System wide error code.
+    *
+    * @see TVersionInfoType
+    * @see KSysVersionInfoTextLength
+    */
+    IMPORT_C static TInt GetVersionInfo(
+        const TVersionInfoType aType, TDes& aValue, RFs& aFs );
+
+    /**
+     * This method gets the requested version information.
+     *
+     * @since S60 3.2
+     * @param aVersion On return, contains the version information.
+     * @return System wide error code.
+     *
+     * @see TVersionBase
+     */
+    IMPORT_C static TInt GetVersionInfo( TVersionBase& aVersion  );
+
+    /**
+     * This method gets the requested version information and avoids 
+     * overhead of creating new file server session.
+     *
+     * @since S60 3.2
+     * @param aVersion On return, contains the version information.
+     * @param aFs Open file server session.
+     * @return System wide error code.
+     *
+     * @see TVersionBase
+     */
+    IMPORT_C static TInt GetVersionInfo( TVersionBase& aVersion, RFs& aFs );
+
+    /**
+    * Class TVersionBase is a base class for version information data.
+    * @since S60 3.2
+    */
+    class TVersionBase
+        {
+    friend class SysVersionInfo;
+
+    protected:
+        /**
+        * Constructor for subclasses
+        * @since S60 3.2
+        * @param aType Sets type of version info specified by TVersionType
+        */
+        inline TVersionBase( TInt aType );
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        TVersionBase();
+
+    private:
+        /**  Contains type of version info specified by TVersionType */
+        TInt iType;
+        };
+
+   /**
+    * Class TSymbianOSVersion stores the Symbian OS version.
+    * The class is used as parameter in GetVersionInfo() methods.
+    * @since S60 3.2
+    */
+    class TSymbianOSVersion : public TVersionBase
+        {
+    public:
+        /**
+         * C++ default constructor.
+        */
+        inline TSymbianOSVersion();
+
+    public:
+        /**  Contains the major Symbian OS version. For example 9 if Symbian OS 9.3 */
+        TUint16 iMajorVersion;
+
+        /**  Contains the minor Symbian OS version. For example 3 if Symbian OS 9.3 */
+        TUint16 iMinorVersion;
+
+        };
+
+    /**
+    * Class TProductVersion stores the product information.
+    * The class is used as parameter in GetVersionInfo() methods.
+    * @since S60 3.2
+    */
+    class TProductVersion : public TVersionBase
+        {
+    public:
+        /**
+         * C++ default constructor.
+        */
+        inline TProductVersion();
+
+    public:
+        /**  Contains the manufacturer name. For example "Nokia". */
+        TBuf< KSysVersionInfoManufacturerLength > iManufacturer;
+
+        /**  Contains the phone model sales name. For example "N01". */
+        TBuf< KSysVersionInfoModelLength > iModel;
+
+        /**  Contains the product code name. For example "RM-1". */
+        TBuf< KSysVersionInfoProductLength > iProduct;
+
+        /**  Contains the product revision. For example "01". */
+        TBuf< KSysVersionInfoRevisionLength > iRevision;
+
+        };
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    SysVersionInfo();
+
+    /** Used internally to detect type of version info */
+    enum TVersionType
+        {
+        ESymbianOSVersion = 0,
+        EProductVersion
+        };
+
+    };
+
+#include "sysversioninfo.inl"
+
+#endif // SYS_VERSION_INFO_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_version_info_api/sysversioninfo.inl	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2007 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:  Extended Version Info API provides extended version 
+*                information i.e. firmware, operator etc version information.
+*
+*/
+
+
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TVersionBase::TVersionBase
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TVersionBase::TVersionBase( TInt aType ) :
+        iType( aType )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TSymbianOSVersion::TSymbianOSVersion
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TSymbianOSVersion::TSymbianOSVersion() :
+        TVersionBase( SysVersionInfo::ESymbianOSVersion )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// SysVersionInfo::TProductVersion::TProductVersion
+// -----------------------------------------------------------------------------
+//
+inline SysVersionInfo::TProductVersion::TProductVersion() :
+        TVersionBase( SysVersionInfo::EProductVersion )
+    {
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* 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 the License "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:       File that exports the files belonging to 
+:                LIW Criteria API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+liwcommon.hrh     MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.hrh)
+liwcommon.rh     MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.rh)
+liwcommon.h     MW_LAYER_PLATFORM_EXPORT_PATH(liwcommon.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,368 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares common constants, types, classes etc. to be used both
+*                consumer and provider side.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_COMMON_H
+#define LIW_COMMON_H
+
+// INCLUDES
+#include <liwcommon.hrh>
+#include <barsread.h> 
+#include <liwgenericparam.h>
+
+// CONSTANTS
+
+// MACROS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+class CLiwGenericParamList;
+
+// CLASS DECLARATION
+
+/**
+ * Criteria item data.
+ * This class encapsulates an LIW criteria item. Criteria items are building 
+ * blocks for LIW interests, i.e. an interest is a list of criteria items. 
+ * A criteria item can be defined dynamically (by using this class) or 
+ * in a resource file.
+ *
+ * @lib ServiceHandler.lib
+ * @since Series 60 2.6
+ */
+class CLiwCriteriaItem : public CBase
+    {
+    public:   // Constructors and destructor
+        /** 
+        * Constructs a criteria item instance with null items.
+        *
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewL();
+
+        /** 
+        * Constructs a criteria item instance with null items. Leaves the 
+        * pointer to the cleanup stack.
+        *
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewLC();
+
+        /** 
+        * Constructs a criteria item instance.
+        *
+        * @param aCriteriaId The criteria ID.
+        * @param aServiceCmd The service command.
+        * @param aContentType The content type.
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewL(
+            TInt aCriteriaId,
+            TInt aServiceCmd,
+            const TDesC8& aContentType);
+
+        /** 
+        * Constructs a criteria item instance. Leaves the pointer to the 
+        * cleanup stack.
+        *
+        * @param aCriteriaId The criteria ID.
+        * @param aServiceCmd The service command.
+        * @param aContentType The content type.
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewLC(
+            TInt aCriteriaId,
+            TInt aServiceCmd,
+            const TDesC8& aContentType);
+
+        /** 
+        * Constructs a criteria item instance.
+        *
+        * @param aCriteriaId The criteria ID.
+        * @param aServiceCmd The service command.
+        * @param aContentType Content type.
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewL(
+            TInt aCriteriaId,
+            const TDesC8& aServiceCmd,
+            const TDesC8& aContentType);
+
+        /** 
+        * Constructs a criteria item instance.
+        *
+        * @param aCriteriaId The criteria ID.
+        * @param aServiceCmd The service command.
+        * @param aContentType Content type.
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CLiwCriteriaItem* NewLC(
+            TInt aCriteriaId,
+            const TDesC8& aServiceCmd,
+            const TDesC8& aContentType);
+
+        /** 
+        * Destructor.
+        */        
+        IMPORT_C virtual ~CLiwCriteriaItem();
+
+    public: // New functions
+        /** 
+        * Sets the criteria ID.
+        *
+        * @param aId The criteria ID.
+        */
+        IMPORT_C void SetId(TInt aId);
+
+        /** 
+        * Sets the service class.
+        *
+        * @param aServiceUid The service class, see TLiwServiceClass.
+        */
+        IMPORT_C void SetServiceClass(const TUid& aServiceUid);
+        
+        /** 
+        * Sets the service command UID.
+        *
+        * @param aServiceCmd The LIW service command, see TLiwServiceCommands.
+        */
+        IMPORT_C void SetServiceCmd(TInt aServiceCmd);
+
+        /** 
+        * Sets the service command name.
+        *
+        * @param aServiceCmd The LIW service command.
+        */
+        IMPORT_C void SetServiceCmdL(const TDesC8& aServiceCmd);
+
+        /** 
+        * Sets the content type. Makes a copy of the string data.
+        *
+        * @param aContentType Content MIME type, event type or any agreed one.
+        */
+        IMPORT_C void SetContentTypeL(const TDesC8& aContentType);
+
+        /** 
+        * Gets the criteria ID, 0 if not defined.
+        *
+        * @return The criteria ID.
+        */
+        IMPORT_C TInt Id() const;
+
+        /** 
+        * Gets the service class UID.
+        *
+        * @return The service class UID, see TLiwServiceClass.
+        */
+        IMPORT_C const TUid& ServiceClass() const;
+        
+        /** 
+        * Gets the service command UID. KNullUid, if not defined.
+        *
+        * @return The service command UID, see TLiwServiceCommands.
+        */
+        IMPORT_C TInt ServiceCmd() const;
+
+        /** 
+        * Gets the service command name.
+        *
+        * @return The service command name.  
+        */
+        IMPORT_C const TDesC8& ServiceCmdStr() const;
+
+        /** 
+        * Gets the content type.
+        *
+        * @return The content type.
+        */
+        IMPORT_C const TDesC8& ContentType() const;
+
+        /** 
+        * Sets the options.
+        *
+        * @param aOptions Options.
+        */
+        IMPORT_C void SetOptions(TUint aOptions);
+
+        /** 
+        * Gets the options.
+        * 
+        * @return Options.
+        */
+        IMPORT_C TUint Options() const;
+
+        /** 
+        * Maximum number of providers allowed for this criteria item. 
+        * 
+        * @return Maximum number of providers allowed for this criteria item.
+        */
+        IMPORT_C TInt MaxProviders() const;
+
+        /** 
+        * Reads a criteria item from a resource.  
+        *
+        * @param aReader A resource reader pointing to a criteria item.
+        */
+        IMPORT_C void ReadFromResoureL(TResourceReader& aReader);
+
+        /** 
+        * Returns the default provider.
+        * 
+        * @return The default provider UID.        
+        */
+        IMPORT_C TUid DefaultProvider() const;
+
+        /** 
+        * Sets the default provider.
+        *
+        * @param aDefault The UID of a default provider.
+        */
+        IMPORT_C void SetDefaultProvider(TInt aDefault);
+
+        /** 
+        * Equality operator. Two criteria items are considered equal only if all
+        * parameters match. The parameters are: criteria id, service command, 
+        * content type, service class, default provider, max providers and options). 
+        *
+        * @param aItem Criteria item to compare.
+        * @return ETrue if criteria items are equal, EFalse otherwise.
+        */
+        IMPORT_C TBool operator==(const CLiwCriteriaItem& aItem);
+
+        /** 
+        * Sets the maximum number of providers.
+        *
+        * @param aMaxProviders The maximum number of providers.
+        */
+        IMPORT_C void SetMaxProviders(TInt aMaxProviders);
+
+    public:
+        /** 
+        * If set, only ROM based providers can be attached to this criteria.
+        *
+        * @return ETrue if LIW_OPTIONS_ROM_ONLY bit is set, EFalse otherwise.
+        */    
+        inline TBool RomOnly() const;
+        
+        IMPORT_C void SetMetaDataOptions(const TLiwVariant& aMetaDataOptions);
+
+        IMPORT_C void GetMetaDataOptions(TLiwVariant& aMetaDataOptions) const;
+        
+	private:
+        /**
+        * C++ default constructor.
+        */
+        CLiwCriteriaItem();    
+    
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+        
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(
+            TInt aCriteriaId,
+            TInt aServiceCmd,
+            const TDesC8& aContentType);
+
+        void ConstructL( 
+            TInt aCriteriaId,
+            const TDesC8& aServiceCmd,
+            const TDesC8& aContentType);
+
+    private:
+        // Criteria ID.
+        TInt iCriteriaId;
+        // Service class UID
+        TUid iServiceClass;
+        // Service command UID
+        TInt iServiceCmd;
+        // Content type (MIME type). 
+        HBufC8* iContentType;
+        // Additional options for ROM
+        TLiwVariant iOptions;        
+        //Default provider implementation uid
+        TUid iDefaultProvider;
+        // Reserved member
+        TLiwVariant iReserved;
+        // Max providers
+        TInt iMaxProviders;        
+        // Metadata Options
+        TLiwVariant iMetadataOptions;
+    };
+
+
+inline TBool CLiwCriteriaItem::RomOnly() const
+    {
+    return (Options() & LIW_OPTIONS_ROM_ONLY) != 0;
+    }
+
+
+/**
+* Interest is an array of criteria items.
+*/
+typedef RPointerArray<CLiwCriteriaItem> RCriteriaArray;
+
+/**
+* Abstact callback interface to handle callbacks or events
+* from providers. This callback is needed when
+* - Consumer wants to pre-check output parameters before returning
+*   synchronous Handle*Cmd.
+* - Asynchronous Handle*Cmd is used.
+* - An asynchronous event occurs in the system.
+* 
+*  @lib ServiceHandler.lib
+*  @since Series 60 2.6
+*/ 
+class MLiwNotifyCallback                                  // needs to handle this as well?
+    {
+    public:
+        /**
+        * Handles notifications caused by an asynchronous Execute*CmdL call
+        * or an event.
+        *
+        * @param aCmdId The service command associated to the event.
+        * @param aEventId Occured event, see LiwCommon.hrh.
+        * @param aEventParamList Event parameters, if any, as defined per
+        *        each event.
+        * @param aInParamList Input parameters, if any, given in the
+        *        related HandleCommmandL.
+        * @return Error code for the callback.
+        */
+        virtual TInt HandleNotifyL(
+            TInt aCmdId,
+            TInt aEventId,
+            CLiwGenericParamList& aEventParamList,
+            const CLiwGenericParamList& aInParamList) = 0;
+    	IMPORT_C static TInt32 GetTransactionID();
+    };
+
+#endif // LIW_COMMON_H
+
+// End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,418 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares common constants to be used in both resources and
+*                C++ code of consumers and providers.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_COMMON_HRH
+#define LIW_COMMON_HRH
+
+// DATA TYPES
+
+// CONSTANTS
+
+/**
+* Predefined service commands (UIDs).
+*/
+enum TLiwServiceCommands
+    {
+    /** Null value. */
+    KLiwCmdNone = 0,
+
+    /** String Based command */
+    KLiwCmdAsStr = 1,
+
+    /** Create new content. */
+    KLiwCmdNew = 0x101F864C,
+        
+    /** Edit existing content. */
+    KLiwCmdEdit = 0x101F864D,
+        
+    /** Select content. */
+    KLiwCmdSelect = 0x101F864E,
+    
+    /** View content. */
+    KLiwCmdView = 0x101F864F,
+
+    /** Create call. */
+    KLiwCmdCall = 0x101F86B0,
+
+    /** Send content. */
+    KLiwCmdSend = 0x101F86B3,
+
+    /** Print content. */
+    KLiwCmdPrint = 0x101F8666,
+
+    /** Assign content. */
+    KLiwCmdAssign = 0x101F8716,
+
+    /** Share content. */
+    KLiwCmdShare = 0x101F871E,
+
+    /** Synchronize content. */
+    KLiwCmdSynchronize = 0x101F8724,
+
+    /** Synchronize selected. */
+    KLiwCmdSynchronizeSelected = 0x1020720C,
+
+    /** Search content. */
+    KLiwCmdSearch = 0x101F87DF,
+
+    /** Copy content. */
+    KLiwCmdCopy = 0x101F87DE,
+
+    /** Show print preview. */
+    KLiwCmdPrintPreview = 0x101FD656,
+    
+    /** Push to talk. */
+    KLiwCmdPoC = 0x101FD657,
+    
+    /** View content in online store. */
+    KLiwCmdViewOnline = 0x102072EA,
+    
+    /** Upload content. */
+    KLiwCmdUpload = 0x102072EB,
+    
+    /** Transfer a range of media files to a remote storage device. */
+    KLiwCmdXpressTransfer = 0x10207430,
+    
+    /** UPnP copy content. */
+    KLiwCmdUPnPCopy = 0x10207431,
+           
+    /** UPnP move content. */          
+    KLiwCmdUPnPMove = 0x10207432,
+
+    /** UPnP play content. */
+    KLiwCmdUPnPPlay = 0x10207433,
+
+    /** UPnP open content. */
+    KLiwCmdUPnPOpen = 0x10207434,
+    
+    /** UPnP enable external. */
+    KLiwCmdUPnPEnableExternal = 0x10207435,
+    
+    /** Show help content. */
+    KLiwCmdHelp = 0x10275075,
+    
+    /** Add or remove items from intent. (Should be used as a menu service command). */
+    KLiwCmdIntent = 0x10275114,
+    
+    /** Add items to intent. (Should be used as a base service command). */
+    KLiwCmdAddToIntent = 0x10275115,
+    
+    /** Remove items from intent. (Should be used as a base service command). */
+    KLiwCmdRemoveFromIntent = 0x10275116,
+    
+    /** Client can request that map should be displayed on screen. */ 
+    KLiwCmdMnShowMap = 0x10206904,
+    
+    /** Allows to start navigation to desired destination. */
+    KLiwCmdMnNavigateTo = 0x10206905,
+    
+    /** Starts reverse geocoding request: finding address for given coordinate. */
+    KLiwCmdMnAddrByCoord = 0x10206906,
+    
+    /** Starts geocoding request: finding coordinate by given address. */
+    KLiwCmdMnCoordByAddr = 0x10206907,    
+    
+    /** Allows client to request that user shall select a location from map. */
+    KLiwCmdMnSelectFromMap = 0x10206908,
+    
+    /** Send via Bluetooth. */
+    KLiwCmdSendViaBT = 0x10281894,   
+	
+    /** Send via Irda. */
+    KLiwCmdSendViaIR = 0x10281895,
+    
+    /** Enterprise telephony. */
+    KLiwCmdEnterpriseTel = 0x20001FC6,  
+
+    /** Rotate image etc. */
+    KLiwCmdRotate = 0x10281F96,
+    
+    /** Rotate device screen. */
+    KLiwCmdRotateScreen = 0x10281F97,
+    
+    /** Set call image. */
+    KLiwCmdCallImage = 0x1028245E,
+    
+    /** Give different objects to another device using Near Field Communications. */
+    KLiwCmdNFCGive = 0x1028245F,
+    
+    /** SettingWizard Email view activation. */
+    KLiwCmdSettingWizardEmailView = 0x10281C95,
+    
+    /** In-device search. */
+    KLiwCmdContentSearch = 0x10282844,
+    
+	/** A special service command enabling consumer to attach for all relevant 
+	LIW services for a certain object. */
+	KLiwCmdAnyCmdForObject = 0x102823F1,
+	
+	/** To support VoIP settings provisioning with plugins **/
+	KLiwCmdEasyVoIPProvisioning = 0x10283099,
+	
+	/** Assign Screensaver*/
+    KLiwCmdAssignScreenSaver = 0x1028309A,
+
+	/** Converged service plugin and UI extension plugin*/
+	KLiwCmdCSCServicePlugins = 0x1020E56F,
+	KLiwCmdCSCUiExtensionPlugins = 0x10282EF7 
+    };
+
+enum TLiwBufferType
+{
+	KLiwBufferNone = 0,
+	KLiwBufferBitmap = 1,
+	KLiwBufferFile = 2
+};
+
+
+// Service command strings. These strings are used in service provider's
+// opaque data field to specify what service command(s) the provider implements.
+
+#define KLiwCmdNoneStr                    "00000000"
+#define KLiwCmdAsStrStr               "00000001" 
+#define KLiwCmdNewStr                     "101F864C"
+#define KLiwCmdEditStr                    "101F864D"
+#define KLiwCmdSelectStr                  "101F864E"
+#define KLiwCmdViewStr                    "101F864F"
+#define KLiwCmdPrintStr                   "101F8666"
+#define KLiwCmdCallStr                    "101F86B0"
+#define KLiwCmdSendStr                    "101F86B3"
+#define KLiwCmdAssignStr                  "101F8716"
+#define KLiwCmdShareStr                   "101F871E"
+#define KLiwCmdSynchronizeStr             "101F8724"
+#define KLiwCmdSearchStr                  "101F87DF"
+#define KLiwCmdCopy                       "101F87DE"
+#define KLiwCmdPrintPreviewStr            "101FD656"
+#define KLiwCmdPoCStr                     "101FD657" 
+#define KLiwCmdSynchronizeSelectedStr     "1020720C"
+#define KLiwCmdViewOnlineStr              "102072EA" 
+#define KLiwCmdUploadStr                  "102072EB"
+#define KLiwCmdXpressTransferStr          "10207430"
+#define KLiwCmdUPnPCopyStr                "10207431"
+#define KLiwCmdUPnPMoveStr                "10207432"
+#define KLiwCmdUPnPPlayStr                "10207433"
+#define KLiwCmdUPnPOpenStr                "10207434"
+#define KLiwCmdUPnPEnableExternalStr      "10207435"
+#define KLiwCmdHelpStr                    "10275075"
+#define KLiwCmdIntentStr                  "10275114"
+#define KLiwCmdAddToIntentStr             "10275115"
+#define KLiwCmdRemoveFromIntentStr        "10275116"
+#define KLiwCmdMnShowMapStr               "10206904"
+#define KLiwCmdMnNavigateToStr            "10206905"
+#define KLiwCmdMnAddrByCoordStr           "10206906"
+#define KLiwCmdMnCoordByAddrStr           "10206907"
+#define KLiwCmdMnSelectFromMapStr         "10206908"
+#define KLiwCmdSendViaBTStr               "10281894"
+#define KLiwCmdSendViaIRStr               "10281895"
+#define KLiwCmdEnterpriseTelStr           "20001FC6"
+#define KLiwCmdRotateStr                  "10281F96"
+#define KLiwCmdRotateScreenStr            "10281F97"
+#define KLiwCmdCallImageStr               "1028245E"
+#define KLiwCmdNFCGiveStr                 "1028245F"
+#define KLiwCmdSettingWizardEmailViewStr  "10281C95"
+#define KLiwCmdContentSearchStr           "10282844"
+#define KLiwCmdAnyCmdForObjectStr         "102823F1"
+#define KLiwCmdEasyVoIPProvisioningStr    "10283099"
+#define KLiwCmdAssignScreenSaverStr       "1028309A"
+#define	KLiwCmdCSCServicePluginsStr  	  "1020E56F"
+#define	KLiwCmdCSCUiExtensionPluginsStr   "10282EF7" 
+
+/**
+* Service command options (bits) to alter command handling behaviour.
+*/
+enum TLiwServiceCmdOptions
+    {
+    /**
+    * Consumer wants asynchronous command handling.
+    * The default is synchronous command handling.
+    * In asynchronous case consumer needs to pass a callback to provider.
+    */
+    KLiwOptASyncronous = 0x0001,
+
+    /**
+    * Consumer wants provider to make a callback to check coming output
+    * parameters prior returning from service command handling.
+    * Consumer needs to pass a callback to provider.
+    */
+    KLiwOptOutParamCheck = 0x0002,
+
+    /**
+    * Consumer tells provider that it is prepared to handle
+    * callback events for possibly incomplete/wrong parameter list. 
+    */
+    KLiwOptInParamCheck = 0x0004,
+    
+    /**
+    * Consumer wants to cancel an asynchronous LIW service. 
+    * When a consumer wants to cancel the asynchronous service that a provider
+    * is executing, it should call ExecuteMenuCmdL() or ExecuteServiceCmdL() 
+    * with the same parameters as when requesting the service, but set this 
+    * cancel bit on. The cancel operation itself is synchronous, i.e. the 
+    * provider must call the consumer's callback with KLiwEventCanceled before 
+    * the Execute*CmdL() returns.
+    */
+    KLiwOptCancel = 0x0008
+    };
+
+
+/**
+* Service classes (UID). Technically these are same as service interface UIDs.
+*/
+enum TLiwServiceClass
+    {
+    /** 
+    * None. 
+    */
+    KLiwClassNone = 0x0,
+
+    /**
+    * Base service (no UI expected). 
+    * Every other class must implement this always!
+    */
+    KLiwClassBase = 0x200159f5,
+
+    /** 
+    * Filter service class. 
+    */
+    KLiwClassFilter = 0x101F8651,
+
+    /** 
+    * Menu service class (offers menu based services).
+    */
+    KLiwClassMenu = 0x101F8652,
+
+    /** 
+    * Stub service class.
+    */
+    KLiwClassStub = 0x101F8653,
+       
+    /** 
+    * View service class (offers view based services).
+    */
+    KLiwClassView = 0x101F8654,
+
+    /** 
+    * This class is for R&D purposes.  
+    */
+    KLiwClassDebug = 0x101F866B
+    };
+
+
+/**
+* Event codes. To be used with HandleNotifyL method.
+*/
+enum
+    {
+    /**
+    * Asynchronous service informs consumer to prepare itself for 
+    * action. 
+    */
+    KLiwEventStarted = 1,
+
+    /**
+    * Asynchronous service request completed.
+    */
+    KLiwEventCompleted = 2,
+
+    /**
+    * Asynchronous service request canceled.
+    */
+    KLiwEventCanceled = 3,
+    
+    /**
+    * Error during asynchronous service request.
+    */
+    KLiwEventError = 4,
+    
+    /**
+    * Relates to KLiwOptOutParamCheck.
+    */
+    KLiwEventOutParamCheck = 5,
+    
+    /**
+    * Relates to KLiwOptInParamCheck.
+    */
+    KLiwEventInParamCheck = 6,
+    
+    /**
+    * Provider informs consumer that service is no longer available or 
+    * has stopped.
+    */
+    KLiwEventStopped = 7,
+    
+    /**
+    * Provider asks consumer whether Exit can be done (needed at least in 
+    * embedded use cases where server application offers Exit possibility 
+    * to end user, but consumer can not allow Exit due to fact that for
+    * example network connections owned by consumer are open and they need 
+    * to be kept alive).    
+    */
+    KLiwEventQueryExit = 8,
+    
+    /**
+    * Provider informs consumer about the ongoing asynchronous
+    * service execution. 
+    */
+    KLiwEventInProgress = 9
+    };
+    
+// ============================================================================
+// Menu item flags for LIW consumers.   
+// ============================================================================ 
+/** 
+ * Always keep the provider menu items in a submenu. 
+ */
+#define LIW_CASCADE_ID               0x01010001
+
+/** 
+ * Menu item is placed intelligently either to the main level or a submenu. 
+ */
+#define LIW_INTELLIGENT_CASCADE_ID   0x01010010
+
+/** 
+ * Consumer defines the menu title. 
+ */
+#define LIW_LOCK_SUBMENU_TITLE       0x00000020
+
+// ============================================================================
+// Criteria item flags for LIW consumers.    
+// ============================================================================
+/** 
+ * Criteria item loadOptions bit, only providers in ROM are accepted. 
+ */
+#define LIW_OPTIONS_ROM_ONLY         0x01
+
+// ============================================================================
+// Menu item flags for LIW providers.
+// ============================================================================
+/** 
+ * For providers only: Provider suggests the submenu title. 
+ */
+#define LIW_SUBMENU_TITLE            0x0ff11012
+
+#endif // LIW_COMMON_HRH
+
+// End of file
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_criteria_api/liwcommon.rh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Contains common resource declarations for the LIWFW.
+*
+*/
+
+
+
+
+
+
+
+//  INCLUDES
+#include <liwcommon.hrh>
+
+//  MACROS  
+
+//  STRUCTURE DEFINITIONS
+
+// -----------------------------------------------------------------------------
+// Option item for a criteria.
+// -----------------------------------------------------------------------------
+STRUCT LIW_CRITERIA_OPTION
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// Criteria item.
+// Resource structure to define criteria item consumer.
+// -----------------------------------------------------------------------------
+//
+// Criteria item
+//
+STRUCT LIW_CRITERIA_ITEM
+    {
+    // Criteria ID to be used in UI elements referring to this criteria
+    // By default the ID should be same as the serviceCmd, but it can be
+    // different as well e.g. for mapping old menu items to use LIW
+    // This can be consumer defined or predefined, if common interest
+    // is allocated.
+    LONG id;
+
+    // --------------------------------------------------------------
+    // Actual criteria data used when resolving providers from which
+    // a consumer is interested in.
+    // --------------------------------------------------------------
+
+    // Command ID for service command, mandatory.
+    LONG serviceCmd = KLiwCmdNone;
+
+    // Content MIME type, event type or any agreed one.
+    LTEXT8 contentType = "";
+
+    // Services class tells what kind of service is expected from
+    // provider. See TLiwServiceClass enum for allowed values.
+    // Optional, if not defined the default (KLiwClassMenu) is used.
+    LONG serviceClass = KLiwClassMenu;
+
+    // --------------------------------------------------------------
+    // Additional options, if any.
+    // --------------------------------------------------------------
+
+    // Defines UID for default provider. If provider for this
+    // UID exists, all the setup calls will be forwarded to it
+    // first (eg. if default provider implements 'menu' service class, it will
+    // be the first provider to insert its menu items to the consumer menu).
+    LONG defaultProvider = 0;
+
+    // The maximum number of providers allowed for the criteria item.
+    // There might be cases to limit the number of providers, e.g. for
+    // limiting the number of menu items. Maximum is 255 providers per interest.
+    BYTE maxProviders = 0xff;
+
+    // Other options bits (8 bits reserved).
+    BYTE loadOptions=0;
+
+    // Reserved for extensions.
+    LLINK reserved = 0; 
+    }
+
+//
+// Criteria item with command name as string
+//
+STRUCT LIW_CRITERIA_ITEM_2
+    {
+    LONG id;
+    LONG serviceCmd = KLiwCmdAsStr;
+    // Service name.
+    LTEXT8 serviceName = "";
+    LTEXT8 contentType = "";
+    LONG serviceClass = KLiwClassMenu;
+
+    LONG defaultProvider = 0;
+    BYTE maxProviders = 0xff;
+    BYTE loadOptions=0;
+    
+    LLINK reserved = 0;    
+    }
+
+//
+// Interest is an array of criteria items.
+//
+STRUCT LIW_INTEREST
+    {
+    STRUCT items[]; // LIW_CRITERIA_ITEM's
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* 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 the License "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:       File that exports the files belonging to 
+:                LIW Generic Parameter API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+liwgenericparam.h     		MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.h)
+liwvarianttype.hrh     	MW_LAYER_PLATFORM_EXPORT_PATH(liwvarianttype.hrh)
+liwvariant.h     				MW_LAYER_PLATFORM_EXPORT_PATH(liwvariant.h)
+liwgenericparam.inl     	MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.inl)
+liwgenericparam.hrh     	MW_LAYER_PLATFORM_EXPORT_PATH(liwgenericparam.hrh)
+liwvariant.inl    				MW_LAYER_PLATFORM_EXPORT_PATH(liwvariant.inl)
+liwbufferextension.h			MW_LAYER_PLATFORM_EXPORT_PATH(liwbufferextension.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwbufferextension.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,58 @@
+#ifndef LIW_BUFFEREXTENSION_H
+#define LIW_BUFFEREXTENSION_H/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Abstract bitmap buffer representation.
+*
+*/
+
+
+
+
+
+
+
+#include <fbs.h>
+
+#include "liwvariant.h"
+class CFbsBitmap;
+
+class CLiwBitmapBuffer : public CLiwBuffer
+	{
+	public:
+		/*
+		 * The concrete implementation of buffer types should perform equality operation
+		 * check. This is a platform specifc extension class to support bitmap
+		 * buffer to abstract CFbsBitmap type.
+		 
+		 *
+		 * @return platform specific bitmap representation. By default, this method
+		 * returns NULL
+		 */
+		virtual CFbsBitmap* AsBitmap()
+			{
+			return NULL;	// return NULL by default
+			} 
+	};
+
+/**
+ 	* Abstract file buffer representation.
+	*
+**/
+class CLiwFileBuffer : public CLiwBuffer
+{
+	public:
+		virtual RFile& AsFile() = 0;
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,525 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       A generic parameter class.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_GENERIC_PARAM_H
+#define LIW_GENERIC_PARAM_H
+
+// INCLUDES
+#include <e32base.h>
+#include "liwgenericparam.hrh"
+#include "liwvariant.h"
+
+namespace LIW
+{
+ /*
+ * LIW generic parameter id. This data type should always be used when dealing 
+ * with LIW generic parameters. UIDs can be used as LIW generic parameter IDs. 
+ * However, values from 0 to 131071 are reserved.
+ * @see TLiwGenericParam 
+ * @see TGenericParamIdValue
+ */ 
+typedef TInt TGenericParamId;
+}
+// CLASS DECLARATION
+
+/**
+* Generic parameter class for passing data between applications.
+* A generic parameter is a pair of semantic ID and
+* variant value. The semantic ID tells the purpose of the parameter,
+* for example a file name, URL or phone number. The variant value contains
+* the data format and actual value. This class does not implement any
+* consistency checks between the semantic ID and value's data format.
+* So one semantic ID can be expressed as alternative data formats.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see TLiwVariant
+* @see CLiwGenericParamList
+*/
+class TLiwGenericParam
+    {
+    public:  // Constructors and destructor
+        /**
+        * Constructs a generic parameter.
+        */
+        inline TLiwGenericParam();
+        
+        /**
+        * Constructs a generic parameter.
+        *
+        * @param aSemanticId The semantic ID of the parameter, one of TGenericParamId values.
+        */        
+        inline TLiwGenericParam(LIW::TGenericParamId aSemanticId);
+        
+        /**
+        * Constructs a generic parameter.
+        *
+        * @param aSemanticId The semantic ID of the parameter, one of TGenericParamId values.
+        * @param aValue The parameter value.
+        */        
+        inline TLiwGenericParam(LIW::TGenericParamId aSemanticId, const TLiwVariant& aValue);
+
+        /**
+        * Constructs a generic parameter.
+        *
+        * @param aName Name of the generic parameter
+        * @param aValue The parameter value.
+        */ 
+        inline TLiwGenericParam(const TDesC8& aName, const TLiwVariant& aValue);
+
+    public:  // Interface
+        /**
+        * Sets the semantic ID. Possibly set previous ID is overwritten.
+        *
+        * @param aSemanticId The semantic ID of the parameter.
+        */
+        inline void SetSemanticId(LIW::TGenericParamId aSemanticId);
+
+        /**
+        * Set name. Possibly set previous name is overwritten.
+        *
+        * @param aName Parameter name.
+        */
+        inline void SetNameL(const TDesC8& aName);
+
+        /**
+        * Set name and value. Possibly set previous name and value is overwritten.
+        *
+        * @param aName the parameter name.
+        *
+        * @param aValue the parameter value
+        */
+        inline void SetNameAndValueL(const TDesC8& aName, const TLiwVariant& aValue);
+
+        /**
+        * Returns the semantic ID of this parameter.
+        *
+        * @return The semantic ID.
+        */
+        inline LIW::TGenericParamId SemanticId() const;
+
+        /**
+        * Returns the name of this parameter.
+        *
+        * @return The name of the parameter.
+        */
+        inline const TDesC8& Name() const;
+
+        /**
+        * Returns the value of this parameter.
+        *
+        * @return The value of the parameter.        
+        */
+        inline TLiwVariant& Value();
+
+        /**
+        * Returns the const value of this parameter.
+        *
+        * @return The const value of the parameter.        
+        */
+        inline const TLiwVariant& Value() const;
+
+        /**
+        * Resets the semantic ID and the value of this parameter.
+        */
+        inline void Reset();
+		
+		/**
+        * TLiwGenericParam cleanup method
+        *
+        * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+        *
+        * Parameters can be pushed into the CleanupStack using this method
+        * along with TCleanupItem
+        *
+        * @ param aObj - TLiwGenericParam Object but of type TAny* for usage with TCleanupItem
+        * 
+        * Example 1: Here the client explicitly pushes the parameter into the CleanupStack using TCleanupItem
+        *
+        * @code
+	    *	TLiwGenericParam param;
+    	*	CleanupStack::PushL( TCleanupItem( TLiwGenericParam::ParamCleanup , &param ) ); 
+    	*	User::Leave(KErrGeneral);  //This calls the ParamCleanup method which cleans up TLiwGenericParam 
+    	*   CleanupStack::Pop(&param);
+    	*	param.Reset();
+    	* @endcode 
+    	* 
+    	* Example 2: Here the client calls the PushL method of TLiwGenericParam which pushes the object into 
+    	* the CleanupStack using TCleanupItem
+        *
+        * @code
+        *	TLiwGenericParam param;
+    	*	param.PushL();				
+    	*	User::Leave(KErrGeneral);  //This calls the ParamCleanup method which cleans up TLiwGenericParam 
+    	*   CleanupStack::Pop(&param);
+    	*	param.Reset();
+    	* @endcode
+    	*
+    	* The clients can use the convenient PushL method which is recommended (as shown in e.g 2) rather than 
+	    *  explicitly pushing the parameter object into the CleanupStack using TCleanupItem and ParamCleanup.
+    	* 
+	    * @ see PushL() method
+        */
+        IMPORT_C static void ParamCleanup(TAny* aObj);
+        
+        /**
+        * A friendly and convenient method to push the TLiwGenericParam Object into the CleanupStack
+        *
+        * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+        *
+        * This method informs the CleanupStack that ParamCleanup method should be called incase of any Leave
+        *
+        * Example: 
+        *
+        * @code
+        *	TLiwGenericParam param;
+    	*	param.PushL();				//This pushes the parameter object "param" into the CleanupStack using TCleanupItem and ParamCleanup.
+    	*	User::Leave(KErrGeneral);  	//This calls the ParamCleanup method which cleans up TLiwGenericParam
+    	*   CleanupStack::Pop(&param);	//These statements are not executed
+    	*	param.Reset();
+    	* @endcode
+    	* 
+    	* This method is recommended than explicitly pushing the parameter object into the CleanupStack 
+    	*  using TCleanupItem and ParamCleanup.
+    	*
+    	* @see ParamCleanup() method
+        */
+        IMPORT_C void PushL();
+
+    private:  // Interface for friend classes
+        void Destroy();
+        void CopyLC(const TLiwGenericParam& aParam);
+        static void CleanupDestroy(TAny* aObj);
+        operator TCleanupItem();
+        void InternalizeL(RReadStream& aStream);
+        void ExternalizeL(RWriteStream& aStream) const;
+        TInt Size() const; 
+
+    private:  // Data
+        /// Own: semantic ID of this parameter
+        LIW::TGenericParamId iSemanticId;
+        /// Own: value of this parameter
+        TLiwVariant iValue;
+        /// Reserved member
+        TAny* iReserved;
+
+    private:  // friend declarations
+        friend class CLiwGenericParamList;
+        friend class CLiwDefaultList; 
+        friend class CLiwDefaultMap;  
+    };
+
+
+// FUNCTIONS
+
+/**
+* Returns ETrue if two generic params are equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if equal, EFalse otherwise.
+*/ 
+IMPORT_C TBool operator==(const TLiwGenericParam& aLhs, const TLiwGenericParam& aRhs);
+
+/**
+* Returns ETrue if two generic params are not equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if not equal, EFalse otherwise.
+*/
+inline TBool operator!=(const TLiwGenericParam& aLhs, const TLiwGenericParam& aRhs);
+        
+
+/**
+ * Generic parameter list.
+ * A list containing TLiwGenericParam objects. Used for passing parameters 
+ * between consumers and providers.
+ *
+ * @lib ServiceHandler.lib
+ * @since Series 60 2.6
+ */
+NONSHARABLE_CLASS(CLiwGenericParamList): public CBase
+    {
+    public:   // Constructors and destructor
+        /**
+        * Creates an instance of this class.
+        *
+        * @return A pointer to the new instance.
+        */
+        IMPORT_C static CLiwGenericParamList* NewL();
+        
+        /**
+        * Creates an instance of this class.
+        *
+        * @param aReadStream A stream to initialize this parameter list from.
+        * @return A pointer to the new instance.
+        */        
+        IMPORT_C static CLiwGenericParamList* NewL(RReadStream& aReadStream);
+
+        /**
+        * Creates an instance of this class. Leaves the created instance on the
+        * cleanup stack.
+        *
+        * @return A pointer to the new instance.
+        */
+        IMPORT_C static CLiwGenericParamList* NewLC();
+        
+        /**
+        * Creates an instance of this class. Leaves the created instance on the
+        * cleanup stack.
+        *
+        * @param aReadStream A stream to initialize this parameter list from.
+        * @return A pointer to the new instance.
+        */        
+        IMPORT_C static CLiwGenericParamList* NewLC(RReadStream& aReadStream);
+
+        /**
+        * Destructor.
+        */
+        virtual ~CLiwGenericParamList();
+        
+    public:  // Interface
+        /**
+        * Returns the number of parameters in the list. 
+        *
+        * @return The number of parameters in the list. 
+        */
+        IMPORT_C TInt Count() const;
+        
+        /**
+        * Returns the number of the parameters in the list by semantic id and datatype.
+        *
+        * @param aSemanticId The semantic ID of the parameter.
+        * @param aDataType The type id of data. Default is any type.
+        * @return The number of parameters in the list by semantic id and datatype.
+        */
+        IMPORT_C TInt Count(LIW::TGenericParamId aSemanticId, 
+                LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;  
+            
+        /**
+        * Returns a parameter from this list.
+        *
+        * @param aIndex Index of the parameter.
+        * @return The parameter at the aIndex position.
+        * @pre aIndex>=0 && aIndex<Count()
+        */
+        IMPORT_C const TLiwGenericParam& operator[](TInt aIndex) const;
+        
+        /**
+	    * Gets an entry from the collection based on an integeral index.
+	    * Note ! This method allocates memory. To ensure proper cleanup you shall call PushL method beforehand.
+	    *  
+	    * @param aIndex an index to get an entry from the collection
+	    * @param aEntry the returned element from the collection.  
+	    *
+	    * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+	    *
+	    * This is a copy of TLiwGenericParam present in the list at the particular index. To ensure proper cleanup 
+	    * TLiwGenericParam::PushL method should be called beforehand.
+	    *
+	    * @code
+	    * CLiwGenericParamList* param = CLiwGenericParamList::NewLC();
+		* //... param is filled with some semantic Id and TLiwVariant value ...
+		*
+		* TLiwGenericParam outParam;
+ 	    * outParam.PushL();			
+ 	    * //This pushes the parameter object "outParam" into the CleanupStack using TCleanupItem and ParamCleanup.
+		*
+		* param->AtL(0,outParam);	
+		* //This fills the "outParam" with the parameter value present in the 0th position of parameter list, but
+		* //if there is any Leave in AtL, then ParamCleanup method is called for proper cleanup
+		*
+		* CleanupStack::Pop(&outParam);	
+		* outParam.Reset();
+		* CleanupStack::PopAndDestroy(param);
+		* @endcode
+		*
+	    * @return false if no element is found at the passed index;
+	    * true if an element is found 
+	    * 
+	    * @see CLiwDefaultList::AtL
+	    * @see TLiwGenericParam::PushL
+	    */
+		IMPORT_C void AtL(TInt aIndex, TLiwGenericParam& aParam) const;
+
+        /**
+        * Appends a parameter to this list.
+        *
+        * @param aParam The parameter to append to this list. This object takes
+        *               an own copy of the data in aParam.
+        */
+        IMPORT_C void AppendL(const TLiwGenericParam& aParam);
+
+        /**
+        * Copies the given list and appends it to end of this list.
+        *
+        * @since Series 60 2.8        
+        * @param aList A list to be copied and appended.
+        */
+        IMPORT_C void AppendL(const CLiwGenericParamList& aList);
+        
+        /**
+        * Removes the first found item with given semantic id from the list.
+        * 
+        * @param aSemanticId Semantic id for the item to be removed.
+        * @return  ETrue  if an item for the given semantic id was found and removed.
+        *          EFalse otherwise.
+        */
+        IMPORT_C TBool Remove(TInt aSemanticId);
+        
+        /**
+        * Removes the first found item with given string based semantic id from the list.
+        * 
+        * @param aSemanticId Semantic id for the item to be removed.
+        * @return  ETrue  if an item for the given semantic id was found and removed.
+        *          EFalse otherwise.
+        */
+        IMPORT_C void Remove(const TDesC8& aName);
+
+        /**
+        * Deletes all parameters in the list and resets the list.
+        */
+        IMPORT_C void Reset();
+
+        /**
+        * Returns the first item matching the given semantic ID.
+        *
+        * @param aIndex Position in which to start searching. On return it contains 
+        *               the position of the found parameter. It is set to KErrNotFound, 
+        *               if no matching items were found.
+        * @param aSemanticId The semantic ID of the parameter.
+        * @param aDataType The type id of data. Default is any type.
+        * @return The first matching item.
+        */
+        IMPORT_C const TLiwGenericParam* FindFirst(
+            TInt& aIndex, 
+            LIW::TGenericParamId aSemanticId,
+            LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+        /**
+        * Returns the next item matching the given semantic ID.
+        * 
+        * @param aIndex Position after which to start searching. On return it contains 
+        *               the position of the found parameter. It is set to KErrNotFound, 
+        *               if no matching items were found.
+        * @param aSemanticId The semantic ID of the parameter.
+        * @param aDataType The type id of data. Default is any type. 
+        * @return The next matching item.       
+        */
+        IMPORT_C const TLiwGenericParam* FindNext(
+            TInt& aIndex, 
+            LIW::TGenericParamId aSemanticId,
+            LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+        
+        /**
+		* Returns item matching the given name.
+        *
+        * @param aIndex Position in which to start searching, on return contains 
+        *               position of the found parameter. Is set to KErrNotFound, 
+        *               if no matching items were found.
+        * @param aName Parameter name.
+        * @param aDataType The type id of data. Default is any type.
+        * @return The first matching item.
+        */
+        IMPORT_C const TLiwGenericParam* FindFirst(
+            TInt& aIndex, 
+            const TDesC8& aName,
+            LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+            
+        /**
+        * Returns item matching the given name.
+        *
+        * @param aIndex Position in which to start searching, on return contains 
+        *               position of the found parameter. Is set to KErrNotFound, 
+        *               if no matching items were found.
+        * @param aName Parameter name.
+        * @param aDataType The type id of data. Default is any type.
+        * @return The first matching item.
+        */
+        IMPORT_C const TLiwGenericParam* FindNext(
+            TInt& aIndex, 
+            const TDesC8& aName,
+            LIW::TVariantTypeId aDataType = LIW::EVariantTypeAny) const;
+
+        /**
+        * Externalizes this parameter list to a stream.
+        *
+        * @param aStream The stream. 
+        * @see NewL(RReadStream& aStream)
+        * @see NewLC(RReadStream& aStream)
+        */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+        /**
+        * Returns the externalized size of the parameter list in bytes.
+        *
+        * @return The size.
+        */
+        IMPORT_C TInt Size() const;
+
+        /**
+        * Internalizes the parameter list from a stream.
+        *
+        * @since Series60 2.8
+        * @param aStream The stream.
+        */
+        IMPORT_C void InternalizeL(RReadStream& aStream);
+
+        /**
+        * Packs the parameter list to TIpcArgs structure for
+        * passing the generic param list to server over process boundary.
+        * Only one RFile handle parameter can be passed over process boundary.
+        *
+        * @since Series60 3.0
+        * @param aArgs Inter process call arguments.
+        * @return Packed parameter list.
+        */
+        IMPORT_C HBufC8* PackForServerL(TIpcArgs& aArgs);
+
+        /**
+        * Unpacks the list from client message structure.
+        *
+        * @since Series60 3.0
+        * @param aArgs The list to be unpacked. 
+        */
+        IMPORT_C void UnpackFromClientL(const RMessage2& aArgs);
+        
+    private:  // Implementation
+        CLiwGenericParamList();
+        void ConstructL();
+        void AppendL(RReadStream& aReadStream);
+        
+    private:  // Data
+        /// Own: the parameter list
+        RArray<TLiwGenericParam> iParameters;
+        friend class CLiwDefaultList;  
+        friend class CLiwDefaultMap;   
+     };
+
+
+// INLINE FUNCTIONS
+#include "liwgenericparam.inl"
+
+#endif // LIW_GENERIC_PARAM_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,303 @@
+/*
+* Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       LIW generic parameter definitions.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_GENERIC_PARAM_HRH
+#define LIW_GENERIC_PARAM_HRH
+namespace LIW
+{
+
+/**
+ * Pre-defined sematic IDs for generic parameters (TLiwGenericParam).
+ * The data type of the parameter specifies the representation of the parameter.
+ * Use TGenericParamId instead of using TGenericParamIdValue directly.
+ * Additional generic param definitions are possible besides this list.
+ * @see TLiwGenericParam.
+ */   
+enum TGenericParamIdValue 
+    {
+    EGenericParamUnspecified = 0,
+
+    // General parameters
+    EGenericParamError          = 1,  // Any error parameter
+    EGenericParamDir            = 2,  // Any directory  
+    EGenericParamFile           = 3,  // Any file
+    EGenericParamURL            = 4,  // Any URL
+    EGenericParamApplication    = 5,  // Application
+    EGenericParamInstallPackage = 6,  // Install package
+    EGenericParamDRMFile        = 7,
+    EGenericParamMIMEType       = 8,
+    EGenericParamCharSet        = 9,
+
+    // NOTE: Next id is a special semantic id reserved for LIW framework. 
+    // A consumer application should never add it to parameter list.
+    EGenericParamServiceCommand = 10,
+
+    // NOTE: Next id is to be used only internally by DocumentHandler.
+    // Do not not use it for anything else.
+    EGenericParamInternalFile = 11, 
+
+
+    EGenericParamNameAsString = 12,
+    EGenericParamNameAsStringTransient = 13,
+
+    // Application services
+    EGenericParamContactItem   = 20,
+    EGenericParamCalendarItem  = 21,
+    EGenericParamMessageItem   = 22,  
+    EGenericParamNoteItem      = 23,
+    EGenericParamHelpItem      = 24,
+    EGenericParamAlarmItem     = 25,
+    EGenericParamLogItem       = 26,
+    EGenericParamPhoneNumber   = 27,
+    EGenericParamAccessPoint   = 28,
+    EGenericParamSIPAddress    = 29,
+
+    EGenericParamMessageItemSMS   = 30,
+    EGenericParamMessageItemEMail = 31,
+    EGenericParamMessageItemMMS   = 32,
+    
+    EGenericParamEmailAddress = 33, 
+    EGenericParamWVID         = 34,
+    EGenericParamDateTime     = 35,
+    
+    EGenericParamMessageItemMbox = 36,  
+
+    // SIM items
+    EGenericParamSIMContactItem  = 40,
+    EGenericParamSIMAppItem      = 41,
+
+    // Browser items
+    EGenericParamReferringURI = 50,    
+
+    // Music Player items
+    EGenericParamPlayerInitMode = 60,
+    EGenericParamAlbumItems     = 61,
+    EGenericParamAlbumName      = 62,
+
+    // Print parameters
+    EGenericParamPrintXMLFile = 70,
+
+    // Call parameters
+	//EGenericParamCallDialDataV1 = 80,  //    CR JKON-6ZNGMS
+    EGenericParamCallDialData   = 81,
+
+    // Sprint media gallery provider specific
+    EGenricParamMGItemType                 = 90, 
+    EGeneriParamMGMediaType                = 91,
+    EGeneriParamMGViewType                 = 92,
+    EGenericParamMGSubviewtype             = 93,
+    EGenericParamMGMarked                  = 94,
+    EGenericParamCdmaExtendedAMSData       = 95,
+    EGenericParamCdmaExtendedLightSurfData = 96,
+
+    EGenericParamSilentDownload  = 110,
+    EGenericParamSuppressLaunch  = 111,
+    EGenericParamSuppressNextUrl = 112,
+
+    EGenericParamPoCData       = 120,
+    EGenericParamPoCLaunchView = 121,
+
+    EGenericParamAllowMove = 130,
+    EGenericParamAllowSave = 131, 
+    
+    EGenericParamFileSaved = 140,
+    
+    EGenericParamLocation = 150,
+    
+    EGenericParamFotaPkgId = 160,
+    
+    EGenericParamMMSSizeLimit = 170,
+    EGenericParamResolution   = 171,
+    
+    EGenericParamSuppressDownloadConfirmation = 180,
+    EGenericParamDownloadId                   = 181,
+    
+    EGenericParamPassword     = 190,
+    EGenericParamUserName     = 191,
+    EGenericParamBookmarkName = 192,
+    
+    EGenericParamContactSelectionData = 200,
+    EGenericParamContactLinkArray     = 201,
+    EGenericParamContactStoreUriArray = 202,
+    EGenericParamSelectedCount        = 203,
+    EGenericParamContactAssignData    = 204,
+    
+    EGenericParamLandmark             = 210,
+    EGenericParamLandmarkDatabase     = 211,
+    EGenericParamLandmarkId           = 212,
+    EGenericParamLandmarkIdList       = 213,
+    EGenericParamMnCommonOptions      = 214,
+    EGenericParamMnMapViewOptions     = 215,
+    EGenericParamMnGeocodingOptions   = 216,
+    EGenericParamRequestText          = 217,
+    
+    // Enterprise telephony parameters
+    EGenericParamModeActivation       = 220,
+    EGenericParamDisplayString        = 221,
+    
+    EGenericParamSpeedDialIndex       = 230,
+    
+    // In-device search parameters
+    EGenericParamKeywords             = 240,
+    EGenericParamCallAppLocName       = 241,
+    EGenericParamStartOption          = 242,
+    EGenericParamSearchContent        = 243,
+    
+    EGenericParamTerminate            = 250,
+    
+    //For Image viewer slideshow support
+    EGenericParamSlideshow			  = 251,
+    
+    //For Search functionality
+    EGenericParamSearchDomain		  = 260,
+    EGenericParamSearchSubject		  = 261,
+    EGenericParamSearchProvider		  = 262,
+    EGenericParamSearchOptions		  = 263,   
+    EGenericParamTransactionID		  = 264
+
+    };
+
+
+// String constants for above sematic ids to be used in content matching.
+
+#define EGenericParamUnspecifiedStr    "0"
+#define EGenericParamErrorStr          "1"
+#define EGenericParamDirStr            "2"
+#define EGenericParamFileStr           "3"
+#define EGenericParamURLStr            "4"
+#define EGenericParamApplicationStr    "5"
+#define EGenericParamInstallPackageStr "6"
+#define EGenericParamDRMFileStr        "7"
+#define EGenericParamMIMETypeStr       "8"
+#define EGenericParamCharSetStr        "9"
+#define EGenericParamServiceCommandStr "10"
+#define EGenericParamInternalFileStr   "11"
+#define EGenericParamNameAsStringStr   "12" 
+
+#define EGenericParamContactItemStr    "20"
+#define EGenericParamCalendarItemStr   "21"
+#define EGenericParamMessageItemStr    "22"
+#define EGenericParamNoteItemStr       "23"
+#define EGenericParamHelpItemStr       "24"
+#define EGenericParamAlarmItemStr      "25"
+#define EGenericParamLogItemStr        "26"
+#define EGenericParamPhoneNumberStr    "27"
+#define EGenericParamAccessPointStr    "28"
+#define EGenericParamSIPAddressStr     "29"
+
+#define EGenericParamMessageItemSMSStr   "30"
+#define EGenericParamMessageItemEMailStr "31"
+#define EGenericParamMessageItemMMSStr   "32"
+
+#define EGenericParamEmailAddressStr    "33"
+#define EGenericParamWVIDStr            "34"
+#define EGenericParamDateTimeStr        "35"
+
+#define EGenericParamMessageItemMboxStr "36"
+
+#define EGenericParamSIMContactItemStr "40"
+#define EGenericParamSIMAppItemStr     "41"
+
+#define EGenericParamReferringURIStr   "50"    
+
+#define EGenericParamPlayerInitModeStr "60"
+#define EGenericParamAlbumItemsStr     "61"
+#define EGenericParamAlbumNameStr      "62"
+
+#define EGenericParamPrintXMLFileStr   "70"
+
+#define EGenericParamCallDialDataV1Str "80"
+#define EGenericParamCallDialDataStr   "81"
+
+#define EGenricParamMGItemTypeStr                 "90" 
+#define EGeneriParamMGMediaTypeStr                "91"
+#define EGeneriParamMGViewTypeStr                 "92"
+#define EGenericParamMGSubviewtypeStr             "93"
+#define EGenericParamMGMarkedStr                  "94"
+#define EGenericParamCdmaExtendedAMSDataStr       "95"
+#define EGenericParamCdmaExtendedLightSurfDataStr "96"
+
+#define EGenericParamSilentDownloadStr  "110"
+#define EGenericParamSuppressLaunchStr  "111"
+#define EGenericParamSuppressNextUrlStr "112"
+
+#define EGenericParamPoCDataStr       "120"
+#define EGenericParamPoCLaunchViewStr "121"    
+
+#define EGenericParamAllowMoveStr      "130"
+#define EGenericParamAllowSaveStr      "131"
+
+#define EGenericParamFileSavedStr      "140"
+
+#define EGenericParamLocationStr       "150"
+
+#define EGenericParamFotaPkgIdStr      "160"
+
+#define EGenericParamMMSSizeLimitStr   "170"
+#define EGenericParamResolutionStr     "171"
+
+#define EGenericParamSuppressDownloadConfirmationStr "180"
+#define EGenericParamDownloadIdStr                   "181" 
+     
+#define EGenericParamPasswordStr       "190"
+#define EGenericParamUserNameStr       "191"
+#define EGenericParamBookmarkNameStr   "192"    
+
+#define EGenericParamContactSelectionDataStr    "200"
+#define EGenericParamContactLinkArrayStr        "201"
+#define EGenericParamContactStoreUriArrayStr    "202"
+#define EGenericParamSelectedCountStr           "203"
+#define EGenericParamContactAssignDataStr       "204"
+
+#define EGenericParamLandmarkStr                "210"
+#define EGenericParamLandmarkDatabaseStr        "211"
+#define EGenericParamLandmarkIdStr              "212"
+#define EGenericParamLandmarkIdListStr          "213"
+#define EGenericParamMnCommonOptionsStr         "214"
+#define EGenericParamMnMapViewOptionsStr        "215"
+#define EGenericParamMnGeocodingOptionsStr      "216"
+#define EGenericParamRequestTextStr             "217"
+
+#define EGenericParamModeActivationStr          "220"
+#define EGenericParamDisplayStringStr           "221"
+
+#define EGenericParamSpeedDialIndexStr          "230"
+
+#define EGenericParamKeywordsStr                "240"
+#define EGenericParamCallAppLocNameStr          "241"
+#define EGenericParamStartOptionStr             "242"
+#define EGenericParamSearchContentStr           "243"
+
+#define EGenericParamTerminateStr               "250"
+#define EGenericParamSlideshowStr               "251"
+
+#define EGenericParamSearchDomainStr            "260"
+#define EGenericParamSearchSubjectStr			"261"
+#define EGenericParamSearchProviderStr			"262"
+#define EGenericParamSearchOptionsStr			"263"
+#define EGenericParamTransactionIDStr           "264"
+}        
+#endif // LIW_GENERIC_PARAM_HRH
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwgenericparam.inl	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Inline function implementations of class TLiwGenericParam.
+*
+*/
+
+
+
+
+
+
+
+inline TLiwGenericParam::TLiwGenericParam() :
+    iSemanticId(LIW::EGenericParamUnspecified), iValue(), iReserved(NULL)
+    {
+    }
+
+inline TLiwGenericParam::TLiwGenericParam(LIW::TGenericParamId aSemanticId) :
+    iSemanticId(aSemanticId), iValue(), iReserved(NULL)
+    {
+    }
+
+inline TLiwGenericParam::TLiwGenericParam(LIW::TGenericParamId aSemanticId, 
+    const TLiwVariant& aValue) : 
+    iSemanticId(aSemanticId), iValue(aValue), iReserved(NULL)
+    {
+    }
+
+
+inline TLiwGenericParam::TLiwGenericParam(const TDesC8& aName, const TLiwVariant& aValue)
+    {
+    iSemanticId = LIW::EGenericParamNameAsStringTransient;
+    iReserved = (TAny*)&aName;
+    iValue = aValue;
+    }
+
+inline void TLiwGenericParam::SetSemanticId(LIW::TGenericParamId aSemanticId)
+    {
+    iSemanticId = aSemanticId;
+    }
+
+inline void TLiwGenericParam::SetNameL(const TDesC8& aName)
+    {
+    iSemanticId = LIW::EGenericParamNameAsString;
+    delete iReserved;
+    iReserved = (TAny*)aName.AllocL();
+    }
+
+inline void TLiwGenericParam::SetNameAndValueL(const TDesC8& aName, const TLiwVariant& aValue)
+    {
+    delete iReserved;
+    iValue.Reset();
+    iSemanticId = LIW::EGenericParamNameAsString;
+    iReserved = (TAny*)aName.AllocL();
+    iValue = aValue;
+    }
+
+inline LIW::TGenericParamId TLiwGenericParam::SemanticId() const
+    {
+    return iSemanticId;
+    }
+
+inline const TDesC8& TLiwGenericParam::Name() const
+    {
+    if (iSemanticId == LIW::EGenericParamNameAsStringTransient)
+       return *((TDesC8*)iReserved);
+    else
+       return ((iReserved) ? *((HBufC8*)iReserved) : KNullDesC8());
+    }
+
+inline TLiwVariant& TLiwGenericParam::Value()
+    {
+    return iValue;
+    }
+
+inline const TLiwVariant& TLiwGenericParam::Value() const
+    {
+    return iValue;
+    }
+
+inline void TLiwGenericParam::Reset()
+    {
+    if (iSemanticId != LIW::EGenericParamNameAsStringTransient) delete iReserved;
+    iReserved = NULL;
+    iSemanticId = LIW::EGenericParamUnspecified;
+    iValue.Reset();
+    }
+
+inline TBool operator!=(const TLiwGenericParam& aLhs, 
+    const TLiwGenericParam& aRhs)
+    {
+    return !(aLhs == aRhs);
+    }
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvariant.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,2029 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Variant data type for LIW generic parameters.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_VARIANT_H
+#define LIW_VARIANT_H
+
+// INCLUDES
+#include <e32std.h>
+#include <s32strm.h>
+#include <f32file.h>
+#include "liwvarianttype.hrh"
+
+// FORWARD DECLARATIONS
+
+class CLiwGenericParamList;
+class MLiwNotifyCallback;
+
+// New variant types
+class CLiwContainer;
+class CLiwIterable;
+class CLiwList;
+class CLiwMap;
+class MLiwInterface;
+class CLiwBuffer;
+
+
+// CLASS DECLARATION
+
+/**
+* Variant data class to hold a value of a TLiwGenericParam instance.
+* The variant contains a data type and a value. This class is attached to
+* TLiwGenericParam instance which holds the semantic type of the value.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see TLiwGenericParam
+*/
+class TLiwVariant
+    {
+    public:  // Constructors
+        /**
+        * Default constructor. Initializes this variant to be empty.
+        *
+        * @post IsEmpty()
+        */
+        inline TLiwVariant();
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(TInt32 aValue);
+        
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(TInt64 aValue);
+        
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(TUint aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(TBool aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const TUid& aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const TTime& aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const TDesC& aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const HBufC* aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const TDesC8& aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const RFile& aValue);
+
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const CLiwList* aValue);
+
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const CLiwMap* aValue);
+
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const MLiwInterface* aValue);
+
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */        
+        inline TLiwVariant(const CLiwIterable* aValue);
+
+		/**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(TReal aValue);
+        
+        /**
+        * Constructor from a value.
+        *
+        * @param aValue The value to set for this variant object.
+        */
+        inline TLiwVariant(const CLiwBuffer* aValue);
+        
+        /**
+        * Copy constructor. Does not take ownership of data.
+        *
+        * @param aSrc The source object.
+        */
+        IMPORT_C TLiwVariant(const TLiwVariant& aSrc);
+                
+        /**
+        * Assignment operator. Does not take ownership of data.
+        *
+        * @param aValue The source object.
+        */
+        IMPORT_C TLiwVariant& TLiwVariant::operator=(const TLiwVariant& aValue);
+
+        // This class does not need a destructor because memory allocation
+        // policy for variant class has been implemented by TLiwGenericParam
+        // class.
+
+    public:  // Interface
+        /**
+        * Returns the type id of data this variant object is holding.
+        */
+        inline LIW::TVariantTypeId TypeId() const;
+
+        /**
+        * Returns ETrue if this variant is empty (it does not hold any value).
+        */
+        inline TBool IsEmpty() const;
+
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */
+        IMPORT_C TBool Get(TInt32& aValue) const;
+        
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */
+        IMPORT_C TBool Get(TInt64& aValue) const;
+        
+		/**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(TUid& aValue)   const;
+
+        /**
+        * Retrieves the boolean value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */
+        
+        IMPORT_C TBool Get(TUint& aValue) const;
+        /**
+        * Retrieves the boolean value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */
+        IMPORT_C TBool Get(TBool& aValue) const;
+        
+        
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(TPtrC& aValue)  const;
+
+        //needed at least temporarily for data binding integration...
+        //inline TBool Get(const TPtrC** aValue)  const;
+          
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(TTime& aValue)  const;
+        
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(TPtrC8& aValue) const;
+        
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(RFile& aValue) const;
+
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(CLiwList& aValue) const;
+        
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */        
+        IMPORT_C TBool Get(CLiwMap& aValue) const;
+
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C TInt32 AsTInt32() const;
+
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C TInt64 AsTInt64() const;
+
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C TBool AsTBool() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C TBool AsTUint() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */        
+        IMPORT_C TUid AsTUid() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */        
+        IMPORT_C TPtrC AsDes() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */        
+        IMPORT_C TTime AsTTime() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */        
+        IMPORT_C TPtrC8 AsData() const; 
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */        
+        IMPORT_C RFile AsFileHandle() const;
+
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function default initialized data is returned.
+        */        
+        IMPORT_C const CLiwList* AsList() const;
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function default initialized data is returned.
+        */        
+        IMPORT_C const CLiwMap* AsMap() const;
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function default initialized data is returned.
+        */        
+        IMPORT_C MLiwInterface* AsInterface() const;
+        
+        /**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function default initialized data is returned.
+        */        
+        IMPORT_C CLiwIterable* AsIterable() const;
+
+        /**
+        * Deletes possibly set value and resets this variant to empty.
+        *
+        * @post IsEmpty()
+        */
+        IMPORT_C void Reset();
+
+        /**
+        * Sets integer value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(TInt32 aValue);
+        
+        /**
+        * Sets integer value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(TInt64 aValue);
+        
+        /**
+        * Sets Boolean value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(TBool aValue);
+        
+        /**
+        * Sets Boolean value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(TUint aValue);
+        /**
+        * Sets unique ID value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(const TUid& aValue);
+        
+        /**
+        * Sets date and time value to this variant. The previous value is overwritten.
+        *
+        * @param aValue Value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(const TTime& aValue);
+
+        /**
+        * Sets constant text reference to this variant. 
+        *
+        * @param aValue Text value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(const TDesC& aValue);
+
+        /**
+        * Sets constant text reference to this variant. 
+        *
+        * @param aValue Text value for this variant object to hold. 
+        *               Ownership is not taken.
+        */
+        inline void Set(const HBufC* aValue);
+
+        /**
+        * Sets constant 8-bit text reference to this variant.
+        * 
+        * @param aValue Text value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(const TDesC8& aValue);
+
+        /**
+        * Sets RFile file handle to this variant.
+        *
+        * @param aValue File handle for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void Set(const RFile& aValue);
+
+        /**
+        * Sets list of variants to this variant.
+        *
+        * @param aValue Array of variants for this variant object to hold.
+        * @postcond *this == aValue
+        */
+        IMPORT_C void Set(const CLiwList* aValue);
+
+        /**
+        * Sets map of variants to this variant.
+        *
+        * @param aValue Dictionary of variants for this variant object to hold.
+        * @postcond *this == aValue
+        */
+        IMPORT_C void Set(const CLiwMap* aValue);
+
+        /**
+        * Sets interface pointer to this variant.
+        *
+        * @param aValue Interface pointer for this variant object to hold.
+        * @postcond *this == aValue
+        */
+        IMPORT_C void Set(const MLiwInterface* aValue);
+
+        /**
+        * Sets list of variants to this variant.
+        *
+        * @param aValue Sequence of variants for this variant object to hold.
+        * @postcond *this == aValue
+        */
+        IMPORT_C void Set(const CLiwIterable* aValue);
+
+	    /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */ 
+		IMPORT_C TBool Get(TDes& aValue)  const;
+        
+        /**
+        * Sets the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */ 
+		IMPORT_C TBool Get(TDes8& aValue)  const;
+	    /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */
+        inline TLiwVariant& operator=(const TTime& aValue);
+
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(const TUid& aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(TInt32 aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(TInt64 aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(TBool aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(TUint aValue);
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(const TDesC& aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(const HBufC* aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(const TDesC8& aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source object.
+        */        
+        inline TLiwVariant& operator=(const RFile& aValue);
+
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source.
+        */        
+        inline TLiwVariant& operator=(const CLiwList* aValue);
+
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source.
+        */        
+        inline TLiwVariant& operator=(const CLiwMap* aValue);
+
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source.
+        */        
+        inline TLiwVariant& operator=(const MLiwInterface* aValue);
+        
+        /**
+        * Assignment operator for the variant.
+        *
+        * @param aValue The source.
+        */        
+        inline TLiwVariant& operator=(const CLiwIterable* aValue);
+        
+    public:
+        /**
+        * Data copying support for TLiwGenericParam.
+        * Sets the copy of given variant value to this variant
+        * @param aValue variant value for this variant object to hold.
+        * @post *this == aValue
+        */
+        IMPORT_C void SetL(const TLiwVariant& aValue);
+        /**
+        * Retrieves the value held by this variant.
+        *
+        * @param aValue If this variant's type does not match the
+        *               parameter type, the parameter will not be modified.
+        * @return ETrue if aValue was set, EFalse if types did not match.
+        */
+        IMPORT_C TBool Get(TReal& aValue) const;
+        
+        /**
+		* Sets integer value to this variant. The previous value is overwritten.
+		*
+		* @param aValue Value for this variant object to hold.
+		* @post *this == aValue
+		*/
+		IMPORT_C void Set(TReal aValue);	
+	
+		/**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C TReal AsTReal() const;
+
+		 /**
+		 * Assignment operator for the variant.
+		 *
+		 * @param aValue The source object.
+		 */        
+		 inline TLiwVariant& operator=(TReal aValue);
+		 
+		 /**
+		* Sets integer value to this variant. The previous value is overwritten.
+		*
+		* @param aValue Value for this variant object to hold.
+		* @post *this == aValue
+		*/
+		IMPORT_C void Set(const CLiwBuffer* aValue);	
+	
+		/**
+        * Returns the value held by this variant.
+        *
+        * @return The value held by this variant. If the data type does not
+        *         match the function, the default initialized data is returned.
+        */
+        IMPORT_C  CLiwBuffer* AsBuffer() const;
+
+		/**
+		* Assignment operator for the variant.
+		*
+		* @param aValue The source object.
+		*/        
+		inline TLiwVariant& operator=(const CLiwBuffer* aValue);
+		
+		/**
+        * TLiwVariant cleanup method
+        *
+        * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+	    * 
+	    * Variants can be pushed into the CleanupStack using this method
+	    * along with TCleanupItem
+	    *
+	    * @ param aObj - TLiwVariant Object but of type TAny* for usage with TCleanupItem
+	    * 
+	    * Example 1: Here the client explicitly pushes the variant into the CleanupStack using 
+	    *  TCleanupItem
+	    *
+	    * @code
+	    * 	 TLiwVariant var;
+		*    
+		*    //The below statement pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+		*    CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &var ) ); 
+    	* 	  
+		*    User::Leave(KErrGeneral);  //This calls the VariantCleanup method which cleans up TLiwVariant
+		*    CleanupStack::Pop(&var);	//These statements are not executed due to "Leave"
+		*    var.Reset(); 
+	    * @endcode 
+    	*  
+	    *  
+	    * Example 2: Here the client calls the PushL method of TLiwVariant which pushes the object into 
+	    *  the CleanupStack using TCleanupItem
+	    * 
+	    * @code
+	    *    TLiwVariant var;
+		*    var.PushL();				//This pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+		*    User::Leave(KErrGeneral);  //This calls the VariantCleanup method which cleans up TLiwVariant
+		*    CleanupStack::Pop(&var);	//These statements are not executed due to "Leave"
+		*    var.Reset(); 
+	    * @endcode 
+	    *
+	    * The clients can use the convenient PushL method which is recommended (as shown in e.g 2) rather than 
+	    *  explicitly pushing the variant object into the CleanupStack using TCleanupItem and VariantCleanup.
+    	* 
+	    * @ see PushL() method
+	    */
+        IMPORT_C static void VariantCleanup( TAny* aObj );
+		 
+		  
+		/**
+	    * A friendly and convenient method to push the TLiwVariant Object into the CleanupStack
+	    * 
+	    * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+	    *
+	    * This method informs the CleanupStack that VariantCleanup method should be called incase of 
+	    *  any Leave
+	    *
+	    * @code
+	    * 	 TLiwVariant var;
+		*    var.PushL();				//This pushes the variant object "var" into the CleanupStack using TCleanupItem and VariantCleanup.
+		*    User::Leave(KErrGeneral);  //This calls the VariantCleanup method which cleans up TLiwVariant
+		*    CleanupStack::Pop(&var);	//These statements are not executed
+		*    var.Reset(); 		
+	    * @endcode 
+    	*  
+	    * This method is recommended than explicitly pushing the parameter object into the CleanupStack 
+    	*  using TCleanupItem and VariantCleanup.
+    	*
+    	* @see VariantCleanup() method
+	    */
+	    IMPORT_C void PushL();
+        
+    private:
+        /**
+        * Streaming support for TLiwGenericParam.
+        * Internalizes this variant from a stream.
+        */
+        void InternalizeL(RReadStream& aStream);
+
+        /**
+        * Streaming support for TLiwGenericParam.
+        * Externalizes this variant to a stream.
+        */
+        void ExternalizeL(RWriteStream& aStream) const;
+
+        /**
+        * Streaming support for TLiwGenericParam.
+        * Returns the maximum externalized size of this variant in bytes.
+        */
+        TInt Size() const; 
+
+        /**
+        * Destroys any dynamic resource owned by this variant.
+        */
+        void Destroy();
+
+        /// Debug invariant
+        void __DbgTestInvariant() const;
+        
+        static void CleanupDestroy(TAny* aObj);
+        
+        operator TCleanupItem();
+        
+    private:  // Data
+        /// Type of the data this variant is holding
+        TUint8 iTypeId;
+
+        /// POD storage for a 64-bit integer
+        struct SInt64
+            {
+            TInt32 iLow;
+            TInt32 iHigh;
+            void InternalizeL(RReadStream& aStream);
+            void ExternalizeL(RWriteStream& aStream) const;
+            void Set(const TInt64& aTInt64);
+            operator TInt64() const;
+            TBool operator==(const SInt64& aRhs) const;
+            };
+
+        // Data value stored in this variant.
+        // One of these are effective at a time depending on the iTypeId
+        //
+        union UData
+            {
+            TInt32 iInt32;      // 32-bit integer
+			TInt64 iLong;      // 64-bit integer
+            SInt64 iInt64;      // 64-bit integer
+            HBufC* iBufC;       // owned string pointer 
+            HBufC8* iBufC8;     // owned 8-bit data pointer 
+            CLiwList* iList;    // List
+            CLiwMap* iMap;      // Map
+            MLiwInterface* iSession;     // Interface Type
+            CLiwIterable* iIterable;    // Iterator
+            CLiwBuffer* iBuffer;
+            TBool  iBool;      //boolean
+            TUint  iUint;      //Unsinged Integer
+            TReal  iReal;
+            };
+
+        UData  iData;  // Data union
+        TPtrC  iPtrC;  // Pointer to string
+        TPtrC8 iPtrC8; // Pointer to 8-bit data 
+
+    private:  // friend declarations
+        friend IMPORT_C TBool operator==(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+        /// TLiwGenericParam needs access to private streaming and copying methods.
+        friend class TLiwGenericParam;
+        friend class CLiwCriteriaItem;
+        
+    };
+
+//definitions of new variant types
+
+// CLASS DECLARATION
+/**
+* A type of variant class to execute a set of service command operations
+* on an interface. The service provider should implement MLiwInterface to group
+* set of related operations and offer them as service commands to the consumers.
+*
+* To maintain its internal state across the execution of service commands and 
+* enable invocation of operations directly on the interface, service providers
+* may offer an interface.
+*
+* @lib ServiceHandler.lib
+*
+* @see TLiwVariant
+*/
+class MLiwInterface
+{
+ public:
+ 
+  /**
+    * The consumer application should call this method to execute a service 
+    * command directly on the interface. The service provider should
+    * provide a concrete implementation for the supported service
+    * command aCmdName. The consumer application should fill in the necessary
+    * parameters in \em aInParamList. 
+    *
+    * @param aCmdName the name of the service command which the consumer wants to invoke
+    * @param aInParamList the input parameter list, can be empty list
+    * @param [in,out] aOutParamList the output parameter list, can be empty lis. The
+    * service provider can use the output parameter list to fill in necessary return values
+    * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+    * @param aCallback callback to be registered by consumer application
+    *               
+    * 
+    *
+    * @see TLiwServiceCmdOptions
+    * @see CLiwGenericParamList
+    * @see MLiwNotifyCallback
+    *
+   */
+  virtual void ExecuteCmdL(const TDesC8& aCmdName,
+                           const CLiwGenericParamList& aInParamList,
+                           CLiwGenericParamList& aOutParamList,
+                           TUint aCmdOptions = 0,
+                           MLiwNotifyCallback* aCallback = 0) = 0;
+  
+  
+  /**
+    * The service provider should provide a concrete implementation
+    * for this method. The internal state of the service provider
+    * implemeting \c MLiwInterface can be reset within this method.
+    * The consumer application should call this method if there 
+    * are no more service commands to be executed on the interface.
+    * 
+    * 
+    *               
+    * <p align="center"></p>
+    *
+   */
+  virtual void Close() = 0;
+};
+
+/**
+* Base class for the framework supported container types.
+* \c CLiwContainer is a self managing, reference counted container.
+* This class offers minimal interface to manage the reference counter
+* and to serialize the container data into the stream.
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+*
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects
+*
+* All the container data types supported by the framework are
+* derived from \c CLiwContainer.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwList
+* @see CLiwMap
+* @see CLiwIterable
+*/
+class CLiwContainer : public CBase
+{
+ public:
+ 
+  /**
+    * Serializes the collection entries to an output stream.
+    * The derving container types from \c CLiwContainer
+    * should provide a concrete implementation to serialize the collection
+    * data. The default implementation of this method just leaves with
+    * an error code \c KErrNotSupported.
+    * 
+    * @param aOutputStream the output stream to which the data will be streamed
+    *               
+    * @leave KErrNotSupported whenever this method is called instead
+    * of a dervied class implementation of this method
+    *
+    * @see RWiteStream
+    *
+   */
+  IMPORT_C virtual void ExternalizeL(RWriteStream& aOutputStream) const;
+  
+  /**
+    * Returns the size of collection data values. This default implementation of 
+    * this method leaves with an error code \c KErrNotSupported. Typically, the size
+    * is calculated based on the size of data type(s) the container holds and the total
+    * number of entries present in the collection.
+    *
+    * @return the size of collection data values
+    *               
+    * @leave KErrNotSupported whenever this method is called instead
+    * of derived class implementation of this method
+   */
+  IMPORT_C virtual TInt Size() const;
+  
+  /**
+    * Increments the container reference count by one. The reference
+    * count gets incremented whenever a copy of the data values
+    * is made.
+    *
+    */
+  inline void IncRef();
+  
+  /**
+    * Decrements the container reference count by one. If there
+    * are no more references to the container type, this container
+    * instance will be deleted.
+    *
+    */
+  inline void DecRef();
+  
+  /**
+    * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+	*
+    * Since reference counting does not work with CleanupStack directly, 
+    * CleanupStack::PushL cannot be used for container objects which are reference counted
+    * 
+    * So CleanupClosePushL method is used for container objects. Hence the need for this method
+    * 
+    * This method informs the CleanupStack that Close method should be called incase of any Leave
+    * 
+    * Close() inturn calls DecRef which ensures proper cleanup of container objects
+    *
+    *
+    * Example 1: //Using PushL to push the container object into the CleanupStack using CleanupClosePushL
+    * 
+    * @code
+    *	CLiwMap* map = CLiwDefaultMap::NewL();
+    * 	map->PushL();
+    * 	map->InsertL(KNullDesC8,variant);	//incase of any leave, CLiwContainer::Close is called
+    * 	CleanupStack::PopAndDestroy(map);	//CLiwContainer::Close() is called
+    * @endcode 
+    *
+    * Example 2: //Using NewLC to push the container object into the CleanupStack using CleanupClosePushL
+    * 
+    * @code
+    *	CLiwMap* map = CLiwDefaultMap::NewLC();
+    * 	map->InsertL(KNullDesC8,variant);	//incase of any leave, CLiwContainer::Close is called
+    * 	CleanupStack::PopAndDestroy(map);   //CLiwContainer::Close() is called
+    * @endcode
+    *
+    * @ see CLiwContainer::NewLC (pushes the container object using CleanupClosePushL)
+    * @ see CLiwContainer::PushL (pushes the container object using CleanupClosePushL)
+    */
+  IMPORT_C void Close(); 
+  
+  /**
+    * !!!!!!!!!!!!!!!!!!!!!!!!!!!! 		IMPORTANT NOTE  	!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
+	*
+	* A Friendly method to push the CLiwContainer Object into the CleanupStack using CleanupClosePushL
+    * 
+    * This method informs the CleanupStack that Close method should be called incase of any Leave
+    *
+    * @code
+    * 	CLiwMap* map = CLiwDefaultMap::NewL();
+    * 	map->PushL();
+    * 	map->InsertL(KNullDesC8,variant);	//incase of any leave, CLiwContainer::Close is called
+    * 	CleanupStack::PopAndDestroy(map);	//CLiwContainer::Close() is called
+    * @endcode
+    *
+    * @ see CLiwContainer::Close
+    */
+  IMPORT_C void PushL();
+  
+ protected:
+   
+   /**
+    * Protected default constructor. This method is available
+    * only for the derived container types. The reference
+    * count is set to its default vale.
+    * 
+    */
+  CLiwContainer() : iRefCount(1) {}
+  
+  /**
+    * Destructor.
+    *
+    */
+  IMPORT_C virtual ~CLiwContainer();
+
+ private:
+ 
+  /* Reference counter of the container datatype.
+   * During the construction, the counter is set to its
+   * default value of 1. When the counter reaches the value
+   * of zero (meaning that there are no more references to
+   * the container data type), the container instance is deleted.   
+   */
+  TInt iRefCount;
+};
+
+/**
+* Abstract interface to iterate over the collection entries.
+* The service provider should provide a concrete implementation 
+* for the iterator.
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects
+*
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+*/
+class CLiwIterable : public CLiwContainer
+{
+ public:
+ 
+ /**
+    * Resets the iterator. The service provider should provide a concrete
+    * implementation to reset the iterator.
+    *
+   */
+  virtual void Reset() = 0;
+  
+  /**
+    * Iterates over the collection entries to fetch the next data element.
+    * The service provider should provide a concrete implementation
+    * for this method.
+    *
+    * @param aEntry contains the next data element and its corresponding data type
+    *
+    * @return false if there are no more data elements to be fetched;
+    * true otherwise
+    * 
+   */
+  virtual TBool NextL(TLiwVariant& aEntry) = 0;
+  
+  /**
+    * Default equality operator implementation
+    * 
+    * @param aIterable the iterator instance to be compared
+    * 
+   */
+  IMPORT_C virtual TBool operator==(CLiwIterable& aIterable);
+};
+
+/**
+* Abstract interface for an ordered collection or sequence. Typically, 
+* the collection entries are of type \c TLiwVariant instances. 
+* \c CLiwList offers abstract methods to:
+*  <ul>
+*     <li>access elements based on an index</li>
+*     <li>remove an element from the collection</li>
+*     <li>append to an element to the collection</li>
+*     <li>remove a key-value pair based on a key</li>
+*		 <li>get the total number of stored key-value pairs</li>
+*   </ul>
+* A default concrete implementation is provided in the form of specialized class 
+* \c CLiwDefaultList
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+* 
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwDefaultList
+*
+*/
+class CLiwList : public CLiwContainer
+{
+ public:
+ 
+   /**
+    * Appends an entry to the end of the collection. This is an abstract
+    * method.
+    *  
+    * @param aEntry an Element to be added to the end of the collection
+    *
+    * @see CLiwDefaultList::AppendL
+   */
+  virtual void AppendL(const TLiwVariant& aEntry) = 0;
+  
+  /**
+    * Gets an entry from the collection based on an integeral index.
+    *  
+    * @param aIndex an index to get an entry from the collection
+    * @param aEntry the returned element from the collection
+    *
+    * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+    *
+    * This is a copy of the value present in the list at the particular index. To ensure proper cleanup 
+    * TLiwVariant::PushL method should be called beforehand.
+	*
+    * @return false if no element is found at the passed index;
+    * true if an element is found 
+    * 
+    * @see CLiwDefaultList::AtL
+    * @see TLiwVariant::PushL
+   */
+  virtual TBool AtL(TInt aIndex, TLiwVariant& aEntry) const = 0;
+  
+  /**
+    * Returns the number of elements present in the collection. This
+    * is an abstract method.
+    *  
+    * @return the number of elements; Zero if there are no elements stored
+    * 
+    * @see CLiwDefaultList::Count
+   */
+  virtual TInt Count() const = 0;
+  
+  /**
+    * Removes an element located at the passed index from the collection. This
+    * is an abstract method.
+    *  
+    * @param aIndex the index of the element to be removed from the collection
+    *
+    * @see CLiwDefaultList::Remove
+   */
+  virtual void Remove(TInt aIndex) = 0;
+  
+  /**
+    * Equality operator implementation for collection container.
+    *  
+    * @param aList the list container to be compared
+    *
+    * @return true if the compared list collections are the same; false otherwise
+    * 
+    * @see CLiwDefaultList::operator==
+   */
+  IMPORT_C virtual TBool operator==(const CLiwList& aList) const;
+};
+
+/**
+* Abstract interface for an associative array. The collection
+* key entries are of type string (Descriptor type) and their  
+* associated values can be an variant type (\c TLiwVariant). 
+*
+*  \c CLiwMap offers abstract methods to:
+*  <ul>
+*     <li>insert a key-value pair</li>
+*     <li>find a stored value based on a key</li>
+*     <li>get a key based on an index</li>
+*     <li>remove a key-value pair based on a key</li>
+*		 <li>get the total number of stored key-value pairs</li>
+*   </ul>
+* 
+* A default concrete implementation is provided in the form of specialized class 
+* \c CLiwDefaultMap
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+* 
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see TLiwVariant
+* @see CLiwDefaultMap
+*
+*/
+class CLiwMap : public CLiwContainer
+{
+ public:
+ 
+ /**
+    * Inserts a key-value pair element to the map collection. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @param aKey the key to be stored
+    * @param aValue the value associated with the key to be stored
+    *
+    * @see CLiwDefaultMap::InsertL
+   */
+  virtual void InsertL(const TDesC8& aKey, const TLiwVariant& aValue) = 0;
+ 
+  /**
+    * Finds a value stored in the map collection based on the key. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @param aKey the key to be searched
+    * @param aFndValue the value associated with the found key
+    *
+    * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+    *
+    * This is a copy of the value present in the map for the particular key. To ensure proper cleanup 
+    * TLiwVariant::PushL method should be called beforehand.
+	*
+    * @return false if there is no key stored; true otherwise
+    *
+    * @see CLiwDefaultMap::FindL
+    * @see TLiwVariant::PushL
+   */
+  virtual TBool FindL(const TDesC8& aKey, TLiwVariant& aFndValue) const = 0;
+  
+  /**
+    * Returns the number of key-value pair stored in the map collection. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @return the number of key-value pair stored in the map collection
+    *
+    * @see CLiwDefaultMap::Count
+   */
+  virtual TInt Count() const = 0;
+  
+  /**
+    * Returns the key stored at the passed index. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @param aIndex the index of the key to be found
+    * @param aFndKey the key found at the passed index
+    *
+    * @return true if a key-value entry is found at the passed index;
+    * false otherwise
+    *
+    * @see CLiwDefaultMap::AtL
+    * 
+   */
+  virtual TBool AtL(TInt aIndex, TDes8& aFndKey) const = 0;
+  
+  /**
+    * Returns the key stored at the passed index. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @param aIndex the index of the key to be found
+    *
+    * @return the key if a key-value entry is found at the passed index;
+    * Leaves otherwise
+    *
+    * @see CLiwDefaultMap::AtL
+    * 
+   */
+  // virtual const TDesC8& AtL(TInt aIndex) const = 0;
+  
+  /**
+    * Removes a key from the map collection. A default
+    * implementation is provided in \c CLiwDefaultMap.
+    *  
+    * @param aKey the key to be removed from the map
+    *
+    * @see CLiwDefaultMap::Remove
+   */
+  virtual void Remove(const TDesC8& aKey) = 0;
+  
+  /**
+    * Default implementation of equality operator.
+    *  
+    * @param aMap the map to be compared
+    *
+    * @see CLiwDefaultMap::operator==
+    * 
+   */
+  IMPORT_C virtual TBool operator==(const CLiwMap& aMap) const;
+};
+
+/**
+* An ordered collection or sequence. \c CLiwDefaultList providers
+* a default implementation for \c CLiwList. The collection entries are typically 
+* of type \c TLiwVarian. 
+*
+*  This class provides concrete implementation to:
+*  <ul>
+*     <li>access elements based on index</li>
+*     <li>remove an element</li>
+*     <li>append an element to the end of the list collection</li>
+*		 <li>get the total number of elements stored in the list collection</li>
+*   </ul>
+*
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+* 
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see CLiwList
+* @see TLiwVariant
+*
+*/
+class CLiwDefaultList : public CLiwList
+{
+ public:
+  
+  /**
+    * Creates and returns a new instace of \c CLiwDefaultList
+    *
+  	* @code
+    * void CreateListL()
+    * {
+    * 	CLiwDefaultList* pList = CLiwDefaultList::NewL();
+    *   pList->PushL();	//pushes the List into cleanupstack using CleanupClosePushL
+	* 	
+	*	CleanupStack::Pop(pList);
+	*	pList->DecRef();
+	* }			
+    *
+    * @endcode 
+    *
+   	* @return an instance of \c CLiwDefaultMap
+   	* 
+   	* @ see PushL
+   	* @ see Close
+   	*/
+  	IMPORT_C static CLiwDefaultList* NewL();
+  
+  /**
+    * Creates and returns a new instace of \c CLiwDefaultList
+    *
+  	* @code
+    * void CreateListL()
+    * {
+    * 	CLiwDefaultList* pList = CLiwDefaultList::NewLC(); //pushes the List into cleanupstack using CleanupClosePushL
+    *   
+	*	CleanupStack::Pop(pList);
+	*	pList->DecRef();
+	* }			
+    *
+    * @endcode 
+    *
+   	* @return an instance of \c CLiwDefaultMap
+   	* 
+   	* @ see PushL
+   	* @ see Close
+   	*/
+  	IMPORT_C static CLiwDefaultList* NewLC();
+  
+  /**
+    * Creates and returns a new instace of \c CLiwDefaultList. The
+    * collection elements will be generated from the data
+    * values read from the input stream. This method leaves 
+    * the created instance in the cleanup stack.
+    *
+    * @param aInputStream the input stream containing the data
+    * values to append to the list collection
+    *
+    * @return an instance of \c CLiwDefaultList     
+   */
+  static CLiwDefaultList* NewLC(RReadStream& aInputStream);
+  
+  /**
+    * Appends an entry to the end of the collection. The entry to be
+    * added is of type \c TLiwVariant.
+    *  
+    * @param aEntry an Element to be added to the end of the collection
+    *
+    * 
+    * A string content being added to the end of the collection
+    *
+    * @code
+    * _LIT8(KLitPbkService,"PhoneBookService");
+    * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+    * pList->PushL();
+    * pList->AppendL(TLiwVariant(KLitPbkService));
+    * CleanupStack::Pop(pList);
+    * pList->DecRef();
+    * @endcode
+    *
+    * An integer value being added to the end of the collection
+    *
+    * @code
+    * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+    * pList->PushL();
+    * TInt intVal=0; 
+    * pList->AppendL(TLiwVariant(intVal));
+    * CleanupStack::Pop(pList);
+    * pList->DecRef();
+    * @endcode
+    * 
+    */
+  IMPORT_C void AppendL(const TLiwVariant& aEntry);
+  
+  /**
+    * Gets an entry from the collection based on an integeral index.
+    *  
+    * @param aIndex to get an entry from the collection
+    * @param aEntry the returned element from the collection
+    *
+    * @return false if no element is found at the passed index;
+    * true if an element is found 
+    *     
+    * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+    *
+    * This is a copy of the value present in the list at the particular index. To ensure proper cleanup 
+    * TLiwVariant::PushL method should be called beforehand.
+	*
+    *  
+    * An integral value being retrieved from the collection
+    * 
+    * @code
+    * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+    * pList->PushL();
+    * TInt intVal=1100; //some magic number
+    * pList->AppendL(TLiwVariant(intVal));
+    *
+    * TInt nIndex=0; //only one entry is stored..
+    * TLiwVariant valFnd;
+    * valFnd.PushL(); //Pushes the TLiwVariant into the CleanupStack using TCleanupItem
+    * if(EFalse!=pList->AtL(nIndex,valFnd))
+    * {
+    * 	TInt intValFnd=-1;
+    *   valFnd.Get(intValFnd);
+    * }
+    * 
+    * CleanupStack::PopAndDestroy(valFnd); //Pops and Destroys the TLiwVariant object
+    * CleanupStack::Pop(pList);
+    * pList->DecRef();
+    * @endcode
+    *
+    * @see TLiwVariant::PushL
+    */
+  IMPORT_C TBool AtL(TInt aIndex, TLiwVariant& aEntry) const;
+  
+  /**
+    * Returns the number of elements present in the collection.
+    *  
+    * @return the number of elements; Zero if there are no elements stored
+    *
+   */
+  IMPORT_C TInt Count() const;
+  
+  /**
+    * Removes an element located at the passed index from the collection.
+    *  
+    * @param aIndex the index of the element to be removed from the collection
+    *
+    * 
+    * An element being removed from the collection
+    * 
+    * @code
+    * CLiwDefaultList* pList = CLiwDefaultList::NewL();
+    * pList->PushL();
+    * TInt intVal=1100; //some magic number
+    * pList->AppendL(TLiwVariant(intVal));
+    *
+    * TInt nIndex=0; //only one entry is stored..
+    * pList->Remove(nIndex);
+    *
+    * if(0==pList->Count())
+    * {
+    * 	//should be zero
+    * }
+    *  
+    * CleanupStack::Pop(pList);
+    * pList->DecRef();
+    * @endcode
+    * 
+   */
+  IMPORT_C void Remove(TInt aIndex);
+  
+  /**
+    * Serializes the collection data entries to an output stream. 
+    * 
+    * @param aOutputStream the output stream to which the data will be streamed
+    *               
+    * @see RWiteStream
+    */
+  IMPORT_C void ExternalizeL(RWriteStream& aOutputStream) const;
+  
+  /**
+    * Returns the size of the collection. The size is 
+    * calculated based on the total numer of elements
+    * and the size of each element in the collection
+    *  
+    * @return the size of the collection
+   */
+  IMPORT_C TInt Size() const;
+
+ private:
+ 
+  /*
+   * Constructor
+   */
+  CLiwDefaultList(CLiwGenericParamList* aList) : iList(aList) {}
+  
+  /*
+   * Destructor
+   */
+  IMPORT_C virtual ~CLiwDefaultList();
+  
+  /*
+   * the underlying generic parameter list
+   */
+  CLiwGenericParamList* iList;
+};
+
+/**
+* An associative array or dictionary class. The collection
+* key entries are of type string (Descriptor type) and their  
+* associated values can be an variant type.
+* 
+*  \c CLiwDefaultMap provides default map implementation to
+*  <ul>
+*     <li>insert a key-value pair</li>
+*     <li>find a stored value based on a key</li>
+*     <li>get a key based on an index</li>
+*     <li>remove a key-value pair based on a key</li>
+*		 <li>get the total number of stored key-value pairs</li>
+*   </ul>
+* 
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+* 
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+* @see TLiwVariant
+* @see CLiwMap
+*
+*/
+class CLiwDefaultMap : public CLiwMap
+{
+ public:
+  
+   /*
+   	* Creates an instance of \c CLiwDefaultMap
+   	* 
+   	* Instance of the map created, can be pushed into the CleanupStack using PushL()
+   	* to ensure proper cleanup of this container object
+   	*
+   	* @code
+    * void CreateMapL()
+    * {
+    * 	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+    *   pMap->PushL();	//pushes the map into cleanupstack using CleanupClosePushL
+	* 	
+	*	CleanupStack::Pop(pMap);
+	*	pMap->DecRef();
+	* }			
+    *
+    * @endcode 
+    *
+   	* @return an instance of \c CLiwDefaultMap
+   	* 
+   	* @ see PushL
+   	* @ see Close
+   	*/
+    IMPORT_C static CLiwDefaultMap* NewL();
+   
+   /*
+   	* Creates an instance of \c CLiwDefaultMap
+   	*
+   	* Pushes the map into the CleanupStack using CleanupClosePushL
+   	* 
+   	* @code
+    * void CreateMapL()
+    * {
+    * 	CLiwDefaultMap* pMap = CLiwDefaultMap::NewLC(); //pushes the map into cleanupstack using CleanupClosePushL
+    * 	
+	*	CleanupStack::Pop(pMap);
+	*	pMap->DecRef();
+	* }			
+    *
+    * @endcode 
+    * @return an instance of \c CLiwDefaultMap
+    *
+    * @ see Close
+   	*/
+    IMPORT_C static CLiwDefaultMap* NewLC();
+  
+   /*
+   	* Creates an instance of \c CLiwDefaultMap and 
+   	* fills up the collection entries from the input stream.
+   	* The created instance is left in the cleanupstack.
+   	*
+   	* @return an instance of \c CLiwDefaultMap   
+   	*/
+    static CLiwDefaultMap* NewLC(RReadStream& aInputStream);
+  
+  /**
+    * Inserts a key-value pair element to the map collection. If
+    * the specified key already exists, it will be removed from
+    * the collection and the new key-value pair will be added to the
+    * map.
+    *  
+    * @param aKey the key to be stored
+    * @param aValue the value associated with the key to be stored
+    *
+    * 
+    * @code
+    * void AddMapEntryL(const TDesC* ptrFirstNameVal)
+    * {
+    * 	_LIT8(KKey,"firstName");
+    * 	TBuf8<128> pbkFieldKey(KKey);
+    *
+    *	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+    *   pMap->PushL();	//pushes the map into cleanupstack using CleanupClosePushL
+	* 	pMap->InsertL(pbkFieldKey, TLiwVariant(*ptrFirstNameVal));  
+	*   CleanupStack::Pop(pMap);
+	*	pMap->DecRef();
+	* }			
+    *@endcode 
+    *
+    */
+  IMPORT_C void InsertL(const TDesC8& aKey, const TLiwVariant& aValue);
+  
+  /**
+    * Finds a value stored in the map collection based on the key.
+    *  
+    * @param aKey the key to be searched
+    * @param aFndValue the value associated with the found key
+    *
+    * !!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+    *
+    * This is a copy of the value present in the map for the particular key. To ensure proper cleanup 
+    * TLiwVariant::PushL method should be called beforehand.
+	*
+    * @return false if there is no key stored; true otherwise
+    *
+    * 
+    *
+    * @code
+    * void FindAnEntryL()
+    * {
+    * 	_LIT8(KKey,"firstName");
+    * 	TBuf8<128> pbkFieldKey(KKey);
+    *   TLiwVariant firstNameVal;
+    *	firstNameVal.PushL();
+    *
+    *	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+	*	pMap->PushL();
+	* 	if(EFalse!=pMap->FindL(pbkFieldKey, firstNameVal))
+	*   {
+	*			//key value has been found
+	*   }  
+	*	
+	*	CleanupStack::PopAndDestroy(pMap);
+	*	CleanupStack::PopAndDestroy(firstNameVal);
+	* }			
+    * @endcode 
+    *
+    * @see TLiwVariant::PushL 
+   */
+  IMPORT_C TBool FindL(const TDesC8& aKey, TLiwVariant& aValue) const;
+  
+  /**
+    * Returns the number of key-value pair stored in the map collection.
+    *  
+    * @return the number of key-value pair stored in the map collection
+   */
+  IMPORT_C TInt Count() const;
+  
+  /**
+    * Returns the key stored at a specified index. 
+    *  
+    * @param aIndex the index of the key to be found
+    * @param aFndKey the key found at the passed index
+    *
+    * @return true if a key-value entry is found at the passed index;
+    * false otherwise
+    *
+    * 
+    *
+    * @code
+    * void FindAnEntryL()
+    * {
+    * 	_LIT8(KKey,"firstName");
+    * 	TBuf8<128> pbkFieldKeyVal(KKey);
+    *   
+	* 	TInt nIndex=0;
+	*	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+	*	pMap->PushL();
+	*
+	*	if(EFalse!=pMap->AtL(nIndex, pbkFieldKeyVal))
+	*   {
+	*			//key value has been found
+	*   }
+	*
+	*	CleanupStack::Pop(pMap); 
+	*	pMap->DecRef(); 
+	* }			
+    * @endcode 
+    * 
+   */
+  IMPORT_C TBool AtL(TInt aIndex, TDes8& aFndKey) const;
+  
+   /**
+    * Returns the key stored at a specified index. 
+    *  
+    * @param aIndex the index of the key to be found
+    * @param aFndKey the key found at the passed index
+    *
+    *
+    * @return the key if a key-value entry is found at the passed index;
+    * Leaves otherwise
+    *
+    * 
+    *
+    * @code
+    * void FindAnEntryL()
+    * {
+    * 	_LIT8(KKey,"firstName");
+    * 	TBuf8<128> pbkFieldKeyVal(KKey);
+    *   
+	* 	TInt nIndex=0;
+	*	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+	*	pMap->PushL();
+	*
+	*	pbkFieldKeyVal = pMap->AtL(nIndex);
+	*	if(pbkFieldKeyVal)			
+	*   {
+	*		//key value has been found
+	*  	}
+	*
+	*	CleanupStack::Pop(pMap); 
+	*	pMap->DecRef(); 
+	* }			
+    * @endcode 
+    * 
+   */
+   IMPORT_C const TDesC8& AtL(TInt aIndex) const;
+  
+  /**
+    * Removes a key from the map collection.
+    *  
+    * @param aKey the key to be removed from the map
+    *
+    * 
+    *
+    * @code
+    * void RemoveMapEntryL(const TDesC* ptrFirstNameVal)
+    * {
+    * 	_LIT8(KKey,"firstName");
+    * 	TBuf8<128> pbkFieldKey(KKey);
+    *	CLiwDefaultMap* pMap = CLiwDefaultMap::NewL();
+	*	pMap->PushL();
+	*
+	* 	pMap->InsertL(pbkFieldKey, TLiwVariant(*ptrFirstNameVal));  
+	*	pMap->Remove(pbkFieldKey);
+	*
+	*	if(0==pMap->Count())
+	*	{
+	*		//no entries stored; removal successful
+	*	}
+	*	
+	*	CleanupStack::Pop(pMap);
+	*	pMap->DecRef();
+	* }			
+    * @endcode 
+    * 
+   */
+  IMPORT_C void Remove(const TDesC8& aKey);
+  
+  /**
+    * The container managed data values can be serialized to an output
+    * stream. 
+    * 
+    * @param aOutputStream the output stream to which the data will be streamed
+    *               
+    * 
+    *
+    * @see RWiteStream
+    *
+   */
+  void ExternalizeL(RWriteStream& aOutputStream) const;
+  
+  /**
+    * Returns the size of the collection. The size is 
+    * calculated based on the total numer of key-value elements
+    * and the size of each pair in the collection
+    *  
+    * @return the size of the collection
+   */
+   IMPORT_C TInt Size() const;
+
+ private:
+ 
+ 	/*
+ 	 * Constructor
+ 	 */
+  CLiwDefaultMap(CLiwGenericParamList* aMap) : iMap(aMap) {}
+  
+  /*
+ 	 * Destructor
+ 	 */
+ 	 IMPORT_C virtual ~CLiwDefaultMap();
+  
+  /*
+   * the underlying generic parameter list
+   */
+  CLiwGenericParamList* iMap;
+};
+
+/**
+* Abstract generic buffer representation. Class used for passing generic buffer data between 
+* service provider and the consumers.
+
+* The class offers APIs for the consumers to access the buffer data in a generic manner. Depending on 
+* the data agreement between the service provider and its consumers, one 
+* or more of the API operations may be inappropriate e.g. a service provider may not 
+* support write operation on the buffer
+*
+* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+* Since container objects are reference counted, they cannot go with CleanupStack::PushL.
+* The issue is solved by using CleanupClosePushL for pushing the container objects into the CleanupStack.
+* Hence CLiwContainer::Close method is introduced common to all container objects.
+* 
+* This implies that the object of this concrete implementation class being created should be pushed into the 
+* CleanupStack using CLiwContainer::PushL.
+*
+* @lib ServiceHandler.lib
+*
+* @see CLiwContainer
+* 
+* @see CLiwContainer::Close
+* @see CLiwContainer::PushL
+*
+*/
+class CLiwBuffer : public CLiwContainer
+{
+	public:		
+		enum TLiwBufferAccess
+		{
+			KLiwBufferNonReadable = 0,
+			KLiwBufferReadOnly = 1
+		};
+
+
+		/*
+		 * Returns the pointer to the underlying buffer
+		 *
+		 * @return the pointer to the underlying buffer
+		 */
+		virtual TUint8* Buf() const =0;
+		
+		/*
+		 * Returns the length of the buffer data
+		 *
+		 * @return the length of the buffer data
+		 */
+		virtual TInt Len() =0;
+		
+		/*
+		 * Reads the specified number of bytes of buffer data 
+		 * 
+		 * @param aPtr the pointer to the area into which buffer data is read
+		 * @param aLength the number of bytes to be read from the buffer
+		 *
+		 * @return KErrNone if the operation is successful; Otherwise
+		 *		   TLiwBufferAccess::KLiwBufferNonReadable
+		 *        
+		 */
+		inline virtual TInt Read(TUint8* /*aPtr*/,TInt /*aLength*/)
+		{
+			return KLiwBufferNonReadable;
+		}
+		
+		/*
+		 * Writes the specified number of bytes into the buffer 
+		 * 
+		 * @param aPtr the pointer to the data to be written into buffer
+		 * @param aLength the number of bytes to be written into buffer
+		 *
+		 * @return KErrNone if the operation is successful; Otherwise
+		 *		   TLiwBufferAccess::KLiwBufferReadOnly if writing is not supported
+		 *        
+		 */
+		inline virtual TInt Write(const TUint8 * /*aPtr*/, TInt /*aLength*/)
+		{
+			return KLiwBufferReadOnly;
+		}
+			
+		/*
+		 * Releases the buffer. The service provider implementing concrete buffer
+		 * type should provide appropriate implementation
+		 */
+		virtual void Release() =0;
+		
+		/*
+		 * Returns the appropriate type of buffer.
+		 */
+		virtual TInt TypeID()=0;
+		
+		/*
+		 * The concrete implementation of buffer types should perform equality operation
+		 * check
+		 */
+		virtual TBool operator==(CLiwBuffer& aBuffer) =0;
+};
+
+/**
+* Returns ETrue if two variants are equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if equal, EFalse otherwise.
+*/
+IMPORT_C TBool operator==(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+
+/**
+* Returns ETrue if two variants are not equal.
+*
+* @param aLhs Left hand side.
+* @param aRhs Right hand side.
+* @return ETrue if not equal, EFalse otherwise.
+*/
+inline TBool operator!=(const TLiwVariant& aLhs, const TLiwVariant& aRhs);
+
+/**
+* Dumps the contents of aVariant to debug output. Available only in debug builds.
+*
+* @param aVariant The object to be dumped.
+*/
+IMPORT_C void Dump(const TLiwVariant& aVariant);
+
+
+// INLINE FUNCTIONS
+#include "liwvariant.inl"
+
+#endif // LIW_VARIANT_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvariant.inl	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Inline function implementations of class TLiwVariant.
+*
+*/
+
+
+
+
+
+
+
+
+inline TLiwVariant::TLiwVariant() : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    iData.iBufC = NULL;
+    iData.iBufC8 = NULL;
+    Reset();
+    }
+
+inline TLiwVariant::TLiwVariant(TInt32 aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+
+inline TLiwVariant::TLiwVariant(TInt64 aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+
+inline TLiwVariant::TLiwVariant(TBool aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+    
+inline TLiwVariant::TLiwVariant(TUint aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+inline TLiwVariant::TLiwVariant(TReal aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+inline TLiwVariant::TLiwVariant(const CLiwBuffer* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {   
+    Set(aValue);
+    }
+        
+inline TLiwVariant::TLiwVariant(const TUid& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);
+    }
+
+inline TLiwVariant::TLiwVariant(const TDesC& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    iData.iBufC = NULL;
+    Set(aValue);
+    }
+
+inline TLiwVariant::TLiwVariant(const HBufC* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    iData.iBufC = NULL;
+    if(aValue)
+        Set(*aValue);
+    else
+        Reset();    
+    }
+
+inline TLiwVariant::TLiwVariant(const TTime& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);
+    }
+
+inline TLiwVariant::TLiwVariant(const TDesC8& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    iData.iBufC8 = NULL;
+    Set(aValue);
+    }
+
+
+inline TLiwVariant::TLiwVariant(const RFile& aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);
+    }
+
+
+inline TLiwVariant::TLiwVariant(const CLiwList* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);        
+    }                   
+
+inline TLiwVariant::TLiwVariant(const CLiwMap* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);        
+    }
+                   
+inline TLiwVariant::TLiwVariant(const MLiwInterface* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);        
+    }
+
+inline TLiwVariant::TLiwVariant(const CLiwIterable* aValue) : iTypeId(LIW::EVariantTypeNull), iPtrC(), iPtrC8()
+    {
+    Set(aValue);        
+    }                   
+
+inline LIW::TVariantTypeId TLiwVariant::TypeId() const
+    {
+    return static_cast<LIW::TVariantTypeId>(iTypeId);
+    }
+
+inline TBool TLiwVariant::IsEmpty() const
+    {
+    return (iTypeId == LIW::EVariantTypeNull);
+    }
+
+inline void TLiwVariant::Set(const HBufC* aValue)
+    {
+    Set(*aValue);
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(TInt32 aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(TInt64 aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+    
+inline TLiwVariant& TLiwVariant::operator=(TReal aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+inline TLiwVariant& TLiwVariant::operator=(const CLiwBuffer* aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+    
+inline TLiwVariant& TLiwVariant::operator=(TBool aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(TUint aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const TUid& aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const TDesC& aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const HBufC* aValue)
+    {
+    Set(*aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const TTime& aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const TDesC8& aValue)
+    {
+    Set(aValue);    
+    return *this;
+    }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const RFile& aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwList* aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwMap* aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const MLiwInterface* aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TLiwVariant& TLiwVariant::operator=(const CLiwIterable* aValue)
+    {
+    Set(aValue);
+    return *this;
+    }
+
+inline TBool operator!=(const TLiwVariant& aLhs, const TLiwVariant& aRhs)
+    {
+    return !(aLhs == aRhs);
+    }
+
+
+inline void CLiwContainer::IncRef()
+    {
+    iRefCount++;
+    }
+    
+inline void CLiwContainer::DecRef()
+    {
+    if (--iRefCount == 0)
+        delete this;
+    }
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liw_generic_parameter_api/liwvarianttype.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Variant data type for Generic Parameters library.
+*
+*/
+
+
+
+
+
+
+
+#include "liwcommon.hrh"
+#ifndef LIW_VARIANT_TYPE_HRH
+#define LIW_VARIANT_TYPE_HRH
+
+namespace LIW {
+
+/**
+* Data formats supported by TLiwVariant class.
+*/
+enum TVariantTypeId
+    {
+    EVariantTypeAny        = -1,  ///< Used only in searching
+    EVariantTypeNull       = 0,   ///< Null (empty) type
+
+    EVariantTypeTInt32     = 1,   ///< 32 bit Integer
+    EVariantTypeTUid       = 2,   ///< Globally unique UID
+    EVariantTypeDesC       = 3,   ///< Constant text literal
+    EVariantTypeTTime      = 4,   ///< Date and time
+    EVariantTypeDesC8      = 5,   ///< 8-bit data buffer
+    EVariantTypeFileHandle = 6,   ///< File handle
+    EVariantTypeList       = 7,   ///< List
+    EVariantTypeMap        = 8,   ///< Map
+    EVariantTypeInterface  = 9,   ///< Interface
+    EVariantTypeIterable   = 10,   ///< Iterable
+    EVariantTypeTBool      = 11,   ///< Bool Data Type 
+    EVariantTypeTUint      = 12,    ///< Unsigned Integer Data Type 
+    EVariantTypeTReal      = 13,    ///< Float type
+    EVariantTypeBuffer     = 14,    ///< Buffer type
+    EVariantTypeTInt64     = 15   ///< 64 bit Integer
+    };
+}
+#endif // LIW_VARIANT_TYPE_HRH
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwmenu.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares LIW Menu utilities for providers to access consumer menu.
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_MENU_H
+#define LIW_MENU_H
+
+// INCLUDES
+#include <eikmenup.h>
+#include <liwserviceifbase.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+* CLiwMenuPane for providers to have limited access to consumer menu.
+*
+* LIW provider can get a reference to CLiwMenuPane in its InitializeMenuPaneL()
+* method, which is derived from CLiwServiceIfMenu. With this reference,
+* the provider can e.g. insert menu items to the consumer application's menu.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+*/
+class CLiwMenuPane: public CBase
+    {
+    public:
+        /**
+        * Constructor.
+        *
+        * @param aMenuPane Consumer's menu pane handle.
+        * @param aBaseCmdId Base command ID for new menu items, specified by consumer.
+        */
+        IMPORT_C CLiwMenuPane(CEikMenuPane& aMenuPane, TInt aBaseCmdId);
+
+        /**
+        * Destructor.
+        */        
+        IMPORT_C virtual ~CLiwMenuPane();   
+       
+    public:
+        /**
+        * Adds a menu item to consumer menu. For each addition a mapping element 
+        * is created. This method should normally be called from provider's 
+        * InitializeMenuPaneL().
+        *
+        * @param aServiceCmd The LIW service command the provider implements.
+        * @param aMenuItem The menu item data.
+        * @param aIndex Position of item where to add menu items.
+        */
+        IMPORT_C void AddMenuItemL(
+            TInt aServiceCmd,
+            CEikMenuPaneItem::SData& aMenuItem, 
+            TInt aIndex);
+            
+        /**
+        * Adds a menu item to consumer menu. For each addition a mapping element 
+        * is created. This method should normally be called from provider's 
+        * InitializeMenuPaneL().
+        *
+        * @param aServiceCmd The LIW service command the provider implements.
+        * @param aMenuItem The menu item data.
+        * @param aIndex Position of item where to add menu items.
+        * @param aExtraText Altenative menu item text, if it is placed to a submenu.
+        */
+        IMPORT_C void AddMenuItemL(
+            TInt aServiceCmd,
+            CEikMenuPaneItem::SData& aMenuItem, 
+            TInt aIndex,
+            const TDesC& aExtraText);            
+        
+        /**
+        * Adds a menu item(s) to consumer menu from provider resource. This method 
+        * should normally be called from provider's InitializeMenuPaneL().
+        *
+        * @param aReader Resource reader pointing to the menu resource.
+        * @param aServiceCmd The LIW service command the provider implements.
+        * @param aIndex Position of item where to add menu items.
+        * @param aAddSeparator Currently not in use.
+        */
+        IMPORT_C void AddMenuItemsL(
+            TResourceReader& aReader,
+            TInt aServiceCmd,
+            TInt aIndex,
+            TBool aAddSeperator = EFalse);
+
+        /**
+        * Adds a menu item(s) to consumer menu from provider resource. This method 
+        * should normally be called from provider's InitializeMenuPaneL().
+        *
+        * @param aFileName The provider's resource where menu item(s) are defined.
+        * @param aResId Resource id of a MENU_PANE.
+        * @param aServiceCmd The LIW service command the provider implements.
+        * @param aIndex Position of item where to add menu items.
+        * @param aAddSeperator Currently not in use.
+        */
+        IMPORT_C void AddMenuItemsL(
+            TFileName& aFileName,
+            TInt aResId,
+            TInt aServiceCmd,
+            TInt aIndex,
+            TBool aAddSeperator = EFalse);
+
+    public:
+        /**
+        * Gets the provider's original menu command ID from the dynamic menu command 
+        * ID (generated by the LIW framework).
+        *
+        * @param aDynCmdId Dynamic menu command ID.
+        * @return Found provider's original menu command ID, KErrNotFound if not found.
+        */
+        IMPORT_C TInt MenuCmdId(TInt aDynCmdId) const;
+        
+        /**
+        * Gets the dynamic menu command ID (generated by the LIW framework) from the 
+        * provider's original menu command ID. There are usually multiple matching 
+        * dynamic menu command IDs, so this method returns the first item found.
+        *
+        * @param aMenuCmdId Provider's original menu command ID.
+        * @return Found dynamic menu command ID, KErrNotFound if not found.
+        */
+        IMPORT_C TInt DynCmdId(TInt aMenuCmdId) const;
+
+        /**
+        * Gets the LIW service command ID from the dynamic menu command ID (generated 
+        * by the LIW framework).
+        *
+        * @param aDynCmdId Dynamic menu command ID.
+        * @return Found LIW service command ID, KErrNotFound if not found.
+        */
+        IMPORT_C TInt ServiceCmdId(TInt aDynCmdId) const;
+
+        /**
+        * Add sub menu title item. This item will not be visible in menus,
+        * but will be used as title for comsumer's LIW submenu (if consumer
+        * requests that).
+        *
+        * @param aTitle Title text
+        * @param aIndex Position of title item in menu (can be anything, but
+        *               if there is several title item definitions in menu,
+        *               then the last one will be used).
+        * @since 2.8        
+        */
+        IMPORT_C void AddTitleItemL(const TDesC& aTitle, TInt aIndex);  
+
+    friend class CLiwServiceHandlerImpl;
+
+    private: 
+        struct SMenuIdMap
+            {
+            TInt serviceCmdId;          // LIW service command ID.
+            TInt origCmdId;             // Original menu ID used by provider SW
+            TInt dynMenuCmdId;          // The dynamic command ID generated by LIWFW
+            CLiwServiceIfBase* owner;   // A pointer to the provider object.
+            RBuf extraText;             // Alternative submenu text is stored here.
+            };
+
+    private:    
+        TInt FindCmdId(TInt aIndex);
+        inline CEikMenuPane& MenuPane();
+        inline void SetResourceSlotId(TInt aSlot);
+        inline TInt ResourceSlotId() const;
+        inline void SetPaneOffset(TInt aOffset);
+        inline TInt PaneOffset() const;
+        inline TInt MenuResourceId() const;
+        inline void SetMenuResourceId(TInt aMenuResourceId);
+        TBool IsCmdInRange(TInt aCmdSpaceSize, TInt aCmd);
+        CLiwServiceIfBase* CommandOwner(TInt aDynId) const;
+        inline CLiwServiceIfBase* InitializingOwner() const;
+        inline void SetInitializingOwner(CLiwServiceIfBase* aOwner);
+        const TDesC& ExtraText(TInt aDynMenuCmdId);
+
+    private:
+        // Original menu pane.
+        CEikMenuPane* iMenuPane;
+        
+        // Base ID to generate menu IDs for placeholders. From constructor.
+        TInt iBaseCmdId;     
+        
+        // Map needed to map provider cmd IDs to dynamic command Ids
+        RArray<SMenuIdMap> iIdMap;
+           
+        TInt iNextCmdId;    // The next free command ID to use
+        TInt iResourceSlotId;
+        TInt iPaneOffset;
+        TInt iMenuResourceId;
+        CLiwServiceIfBase* iInitializingOwner;  // Owner that is currently initializing.
+
+        TInt iReserved_1;
+        void *iExtension; // reserved for future use
+    };
+
+
+inline CEikMenuPane& CLiwMenuPane::MenuPane()
+    {
+    return *iMenuPane;  
+    }
+
+
+inline void CLiwMenuPane::SetResourceSlotId(TInt aSlot)
+    {
+    iResourceSlotId = aSlot;
+    }
+
+
+inline TInt CLiwMenuPane::ResourceSlotId() const
+    {
+    return iResourceSlotId;
+    }
+
+
+inline void CLiwMenuPane::SetPaneOffset(TInt aOffset)
+    {
+    iPaneOffset = aOffset;
+    }
+
+
+inline TInt CLiwMenuPane::PaneOffset() const
+    {
+    return iPaneOffset; 
+    }
+
+
+inline CLiwServiceIfBase* CLiwMenuPane::InitializingOwner() const
+    {
+    return iInitializingOwner;
+    }
+
+
+inline void CLiwMenuPane::SetInitializingOwner(CLiwServiceIfBase* aOwner)
+    {
+    iInitializingOwner = aOwner;
+    }
+
+
+inline TInt CLiwMenuPane::MenuResourceId() const
+    {
+    return iMenuResourceId;
+    }
+
+
+inline void CLiwMenuPane::SetMenuResourceId(TInt aMenuResourceId)
+    {
+    iMenuResourceId = aMenuResourceId;
+    }
+
+#endif  // LIW_MENU_H
+
+// END of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwservicehandler.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,457 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares an API for the consumer applications to access the 
+*                Language Interworking Framework. 
+*
+*/
+
+
+
+
+
+
+
+#ifndef LIW_SERVICE_HANDLER_H
+#define LIW_SERVICE_HANDLER_H
+
+// INCLUDES
+#include <barsread.h> 
+#include <liwcommon.h>
+#include <e32capability.h>
+
+// CONSTANTS
+
+// MACROS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CLiwServiceHandlerImpl;
+
+class CRTSecMgrScriptSession;
+
+
+enum TLiwLoadStatus
+{
+	KLiwUnknown = -5,
+	KLiwMetaDataInvalidFormat, 			//-4
+	KLiwInvalidVersionSpecification,	//-3
+	KLiwVersionOutOfRange,				//-2
+	KLiwSecurityAccessCheckFailed,		//-1
+	KLiwServiceLoadSuccess,				//0
+	KLiwServiceAlreadyLoaded			//1
+	
+	//..Other possible error codes	
+};
+
+
+// CLASS DECLARATION
+
+/**
+* CLiwServiceHandler is the main class of the Language Interworking
+* Framework. The Service Handler implements support for dynamically
+* loadable service providers which offer services to consumer applications. 
+* The Service Handler maps consumers and service providers together via 
+* interests and data agreements and hides the consumers from the providers. 
+*
+* SERVICE is any command or functionality offered by a provider to 
+* consumer. The service includes typically menu item UI elements,
+* but it can also just an engine type of command which executes specific 
+* functionality and reports status back to the consumer.
+*
+* CONSUMER application accesses interesting services offered by
+* service provider(s). The consumer uses only those services in which
+* it is interested in. The interest is expressed using a set of criteria
+* items.
+*
+* INTEREST is a list of criteria items.
+*
+* CRITERIA consists of set of attributes which guide the LIW Framework to use
+* only those providers in which the consumer is interested in.
+* The criteria consists of following attributes:
+*   - Criteria UID (we can allocate pre-defined criteria items).
+*   - Service command UID (we can allocate pre-defined commands).
+*   - Content MIME type (string).
+*   - Additional options (variant data type just in case).
+*
+* PROVIDER produces those services for a consumer that match the given criteria 
+* specified by the consumer. A provider can offer menu items and their command
+* handling logic to the consumer applications. A provider can also offer base
+* services that don't require any UI elements.
+*
+* DATA AGREEMENT is an agreement between consumer and provider about parameters 
+* needed to be passed in a use case.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+*/
+NONSHARABLE_CLASS(CLiwServiceHandler) : public CBase
+    {
+    public:  // Construction & destruction
+
+        /**
+        * Constructs a Service Handler instance.
+        */
+        IMPORT_C static CLiwServiceHandler* NewL();
+        
+        /**
+        * Constructs a Service Handler instance.
+        */
+        IMPORT_C static CLiwServiceHandler* NewLC();  
+
+        /** 
+        * Destructor.
+        */
+        IMPORT_C virtual ~CLiwServiceHandler();
+        
+    public:  // Management
+
+        /**
+        * Resets the Service Handler, discards existing interest and unloads 
+        * corresponding service providers.
+        */
+        IMPORT_C void Reset();
+
+        /**
+        * Returns the amount of providers that fulfil the given criteria.
+        *
+        * @param aCriteria Criteria to match.
+        * @return Number of providers matching the criteria.
+        */
+        IMPORT_C TInt NbrOfProviders(const CLiwCriteriaItem* aCriteria);
+        
+    public:  // Interest handling
+        
+        /**
+        * Adds the given interest to the Service Handler from a resource and updates 
+        * possibly existing old interest. Corresponding service providers are loaded.
+        * If a provider leaves during initialization, it is trapped by the Service Handler.
+        *
+        * @param aInterestResourceId ID of the resource containing criteria items.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        * @see Reset
+        */
+        IMPORT_C void AttachL(TInt aInterestResourceId);
+
+        /**
+        * Adds given interest to the Service Handler from an array of criteria items.
+        * If a provider leaves during initialization, it is trapped by the Service Handler.
+        *
+        * @param aInterest Array of criteria items. Ownership is not transferred.
+        */
+        IMPORT_C TInt AttachL(const RCriteriaArray& aInterest);
+
+        /**
+        * Gets the currently valid interest in use by the Service Handler.
+        *
+        * @param aInterest An array of returned criteria items, may be empty.
+        *                  Ownership is not transferred, i.e. the objects in the 
+        *                  array must not be deleted.
+        */
+        IMPORT_C void GetInterest(RCriteriaArray& aInterest);
+
+        /**
+        * Removes given interest from the Service Handler. Corresponding service 
+        * providers are unloaded.
+        * 
+        * @param aInterest Array of returned criteria items, may be empty.
+        */
+        IMPORT_C void DetachL(const RCriteriaArray& aInterest);
+
+        /**
+        * Removes given interest from the Service Handler. Corresponding service 
+        * providers are unloaded.
+        * 
+        * @param aInterestResourceId ID of the resource containing criteria items.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        */
+        IMPORT_C void DetachL(TInt aInterestResourceId);
+        
+        /**
+        * Returns criteria by ID.
+        *
+        * @param aId Criteria ID.
+        * @return Criteria item pointer matching the ID. Ownership is not transferred.
+        */
+        IMPORT_C const CLiwCriteriaItem* GetCriteria(TInt aId);
+
+        /**
+        * Returns an empty instance of CLiwGenericParamList class. It can be
+        * used for example as an input parameter list for the Service Handler's
+        * API methods. This is just a convenience method and doesn't have
+        * to be used. If consumer wants to create input list by itself
+        * it is ok. If this method is used, the Service Handler takes care
+        * of deleting returned generic parameter list.
+        *
+        * @return  An empty instance of CLiwGenericParameter list.
+        */
+        IMPORT_C CLiwGenericParamList& InParamListL();
+
+        /**
+        * Returns an empty instance of CLiwGenericParamList class. The instance can be
+        * used for example as an output parameter list for Service Handler
+        * API methods. This is just a convenience method and doesn't have
+        * to be used. If consumer wants to create output list by itself
+        * it is ok. If this method is used, Service Handler takes care
+        * of deleting returned generic parameter list.
+        *
+        * @return  An empty instance of CLiwGenericParameter list.
+        */
+        IMPORT_C CLiwGenericParamList& OutParamListL();
+        
+    public:  // Menu handling
+
+        /**
+        * Initialises menu pane with service commands from a provider.
+        * This method must be called upon DynInitMenuPaneL of consumer
+        * application in order to let the provider to hook its menu items.
+        *
+        * @param aMenuPane Handle of the menu pane to initialise.
+        * @param aMenuResourceId The menu to be attached.
+        * @param aBaseMenuCmdId Base ID for the Service Handler to generate 
+        *                       menu IDs for placeholders.
+        * @param aInParamList Input parameter list for provider's parameters checking.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu. 
+        *                     Currently, maximum 16 is supported.
+        */
+        IMPORT_C void InitializeMenuPaneL(
+            CEikMenuPane& aMenuPane,
+            TInt aMenuResourceId,
+            TInt aBaseMenuCmdId,
+            const CLiwGenericParamList& aInParamList);
+        /**
+        * Initialises menu pane with service commands from a provider.
+        * This method must be called upon DynInitMenuPaneL of consumer
+        * application in order to let the provider to hook its menu items.
+        * In normal circumstances, the other variant of this method should be used.
+        *
+        * @param aMenuPane Handle of the menu pane to initialise.
+        * @param aMenuResourceId The menu to be attached.
+        * @param aBaseMenuCmdId Base ID for the Service Handler to generate 
+        *                       menu IDs for placeholders.
+        * @param aInParamList Input parameter list for provider's parameters checking.
+        * @param aUseSubmenuTextsIfAvailable If the provider has specified alternative submenu
+        *                       texts for its menu items, those can be taken into use if this 
+        *                       parameter is set to ETrue. This should be used only for manually 
+        *                       created submenus. If using LIW_CASCADE_ID or 
+        *                       LIW_INTELLIGENT_CASCADE_ID, the LIW framework can automatically 
+        *                       decide whether to use the submenu texts or not, and this parameter 
+        *                       has no effect.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu. 
+        *                     Currently, maximum 16 is supported.
+        */
+        IMPORT_C void InitializeMenuPaneL(
+            CEikMenuPane& aMenuPane,
+            TInt aMenuResourceId,
+            TInt aBaseMenuCmdId,
+            const CLiwGenericParamList& aInParamList,
+            TBool aUseSubmenuTextsIfAvailable);            
+        
+        /**
+        * Returns the service command ID associated to the menu command. If found, it means 
+        * that there is a provider which can handle the menu command. Thus the command 
+        * handling needs to be routed to the provider via ExecuteMenuCmdL.
+        *
+        * @param aMenuCmdId Menu command ID to be mapped to service cmd,
+        *                   KNullServiceCmd is returned if no service command exists.
+        * @return Service command ID, KLiwCmdNone if no ID is found.
+        * @see ExecuteMenuCmdL
+        */
+        IMPORT_C TInt ServiceCmdByMenuCmd(TInt aMenuCmdId) const;
+
+        /**
+        * Tells the provider to execute a menu command invoked by the consumer.
+        * Not supported if calling outside UI framework. Use ServiceCmdByMenuCmd to 
+        * check if there is any provider for the menu command.
+        *
+        * @param aMenuCmdId The menu command to be executed.
+        * @param aInParamList Input data parameters, can be an empty list.
+        * @param aOutParamList Output data parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
+        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+        * @leave KErrArgument Callback is missing when required.
+        * @leave KErrNotSupported No cmd matches given menu command or CCoeEnv is not accessible.
+        * @see ServiceCmdByMenuCmd
+        */
+        IMPORT_C void ExecuteMenuCmdL(
+            TInt aMenuCmdId,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            MLiwNotifyCallback* aCallback= NULL);
+
+        /**
+        * Attach menu related criteria items to the given menu.
+        * If a provider leaves during initialization, it is trapped by the Service Handler. 
+        *
+        * @param aMenuResourceId      Menu to be attached.
+        * @param aInterestResourceId  Resource id for the interest list.
+        * @leave KErrNotSupported     CCoeEnv is not accessible.
+        */
+        IMPORT_C void AttachMenuL(TInt aMenuResourceId, TInt aInterestResourceId);
+
+        /**
+        * Attach menu related criteria items to the given menu.
+        * If a provider leaves during initialization, it is trapped by the Service Handler. 
+        *
+        * @param aMenuResourceId  Menu to be attached.
+        * @param aReader          Resource reader for the interest list.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        */
+        IMPORT_C void AttachMenuL(TInt aMenuResourceId, TResourceReader& aReader);
+         /**
+        * Attach menu related criteria items to the given menu. 
+        *
+        * @param aMenuResourceId  Menu to be attached.
+        * @param aInterest        Array of criteria items. Ownership is not transferred.
+        * @leave KErrNotSupported CCoeEnv is not accessible.
+        */
+        IMPORT_C void AttachMenuL(TInt aMenuResourceId, const RCriteriaArray& aInterest);
+
+        /**
+        * Attach menu related criteria items to the given menu. 
+        *
+        * @param aMenuEntries     List of menu command ids, ids not related to interests may be set to 0.
+        * @param aMenuResourceId  Menu to be attached.
+        * @param aInterest        Interest list.
+        */
+        IMPORT_C void AttachMenuL(RArray<TInt>& aMenuEntries, TInt aMenuResourceId, RCriteriaArray& aInterest);
+
+        /**
+        * Detach menu related criteria items from the given menu.
+        * In following cases this method just returns without doing anything:
+        *   1. If interest resource id is non-zero and CCoeEnv is not accessible.
+        *   2. If interest resource id is non-zero and there occurs an error when reading
+        *      the interest (e.g. not enough memory). 
+        * 
+        * @param aMenuResourceId      Menu to be detached.
+        * @param aInterestResourceId  Resource id for the interest list. If NULL, all 
+        *                             criteria items are detached from the given menu.
+        */
+        IMPORT_C void DetachMenu(TInt aMenuResourceId, TInt aInterestResourceId);
+
+        /**
+        * Checks if there are menu providers attached to given menu id. Consumer 
+        * application can use this information to decide whether a sub menu 
+        * containing only LIW items should be hidden or not.
+        *
+        * @param  aSubMenuId The menu id to be checked.
+        * @return ETrue  if there isn't any menu providers attached to this menu.
+        *         EFalse otherwise. 
+        */
+        IMPORT_C TBool IsSubMenuEmpty(TInt aSubMenuId);
+
+        /**
+        * Returns boolean value indicating whether the given menu contains
+        * currently attached placeholders.
+        *
+        * @param   aMenuResourceId  Resource id of the menu to be queried.
+        * @return  ETrue  if aMenuResource contains currently attached placeholders.
+        *          EFalse otherwise. 
+        */
+        IMPORT_C TBool IsLiwMenu(TInt aMenuResourceId);
+
+        /**
+        * Handles LIW submenus. This method should be called from consumer application's 
+        * DynInitMenuPaneL.
+        *
+        * @param  aPane  Menu pane to be handled.
+        * @return ETrue  if aPane was an LIW submenu and it was handled. 
+        *                Consumer's DynInitMenuPaneL pane may now return.
+        *         EFalse if aPane was not an LIW submenu and DynInitMenuPaneL should
+        *                continue normally.
+        */
+        IMPORT_C TBool HandleSubmenuL(CEikMenuPane& aPane);
+
+        /**
+        * CEikMenuPane uses this method to inform AIF framework that a menu is launched.
+        * This method does not need to be called by any other component.
+        *
+        * @since Series 60 3.0
+        */
+        IMPORT_C static void ReportMenuLaunch();
+
+    public:  // Generic Service Command handling
+        
+        /**
+        * Executes a service command for all providers. Otherwise similar to ExecuteMenuCmdL.
+        *
+        * @param aCmdId The command to be executed.
+        * @param aInParamList Input data parameters, can be an empty list.
+        * @param aOutParamList Output data parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.    
+        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+        * @leave KErrArgument Callback is missing when required.
+        * @leave KErrNotSupported No provider supports the service.
+        */
+        IMPORT_C void ExecuteServiceCmdL(
+            const TInt& aCmdId,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            MLiwNotifyCallback* aCallback = 0);
+
+        /**
+        * Executes a service command.
+        *
+        * @param aCmd The criteria item containing the service command and content type
+        * @param aInParamList Input data parameters, can be an empty list.
+        * @param aOutParamList Output data parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.    
+        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+        * @leave KErrArgument Callback is missing when required.
+        * @leave KErrNotSupported No provider supports the service.
+        */
+        IMPORT_C void ExecuteServiceCmdL(                     
+            const CLiwCriteriaItem& aCmd,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            MLiwNotifyCallback* aCallback = 0);
+              
+        /**
+        * Gets provider command ID by dynamic command ID.
+        * 
+        * @since Series 60 3.0
+        * @param aMenuCmdId The consumer's menu command ID generated by LIW framework. 
+        *                   This can be get e.g. from consumer's HandleCommandL().
+        * @return Found provider menu command ID, KErrNotFound if not found.
+        */
+        IMPORT_C TInt MenuCmdId(TInt aMenuCmdId) const;
+        
+        IMPORT_C TInt AttachL(const RCriteriaArray& aInterest,CRTSecMgrScriptSession& aSecMgrScriptSession);
+                
+ 	  /**
+        * Lists available service implementations
+        * 
+        * @param aFilterItem 
+        * @param aProviderList 
+        *              
+        * @return none
+        */
+        IMPORT_C void QueryImplementationL(RCriteriaArray& aFilterItem, RCriteriaArray& aProviderList);
+        
+    private:
+        void ConstructL();
+        CLiwServiceHandler();
+
+    private:
+        CLiwServiceHandlerImpl* iImpl;
+    };
+
+#endif // LIW_SERVICE_HANDLER_H
+
+// END of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwserviceifbase.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,166 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares Base service API for all providers to implement in 
+*                order to offer services to Language Interworking Framework.
+*
+*/
+
+
+
+
+
+
+#ifndef LIW_SERVICE_IF_BASE_H
+#define LIW_SERVICE_IF_BASE_H
+
+// INCLUDES
+#include <liwgenericparam.h>
+#include <liwcommon.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+/**
+* Extension interface UIDs.
+*/
+enum TLiwExtendedIf
+{
+	/*
+	 *  Extension interface UID to get service data interface
+	 *
+	 * @see CLiwServiceData
+	 */
+	KLiwGetServiceDataIf = 0x102830B2
+};
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class MLiwNotifyCallback;
+class CLiwCriteriaItem;
+//typedef RPointerArray<CLiwCriteriaItem> RCriteriaArray;
+class CLiwServiceData;
+// CLASS DECLARATION
+
+/**
+* This is the base service interface to access providers that offer base services.
+*
+* This interface needs to be implemented by all the LIW providers. Base service
+* providers should inherit from this class directly. Menu service providers 
+* should inherit from CLiwServiceIfMenu.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see CLiwServiceIfMenu
+**/
+class CLiwServiceIfBase : public CBase
+    {
+    public:
+        /** 
+        * Destructor.
+        */
+        IMPORT_C virtual ~CLiwServiceIfBase();
+
+        /**
+        * Called by the LIW framework to initialise provider with necessary information 
+        * from the Service Handler. This method is called when the consumer makes 
+        * the attach operation.
+        *
+        * @param aFrameworkCallback Framework provided callback for provider to send 
+        *                           events to framework.
+        * @param aInterest List of criteria items which invoked the provider.
+        */
+        virtual void InitialiseL(
+            MLiwNotifyCallback& aFrameworkCallback,
+            const RCriteriaArray& aInterest) = 0;
+        
+        /**
+        * Executes generic service commands included in criteria.
+        *
+        * @param aCmdId Command to be executed.
+        * @param aInParamList Input parameters, can be an empty list.
+        * @param aOutParamList Output parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see KLiwOpt* in LiwCommon.hrh.
+        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+        * @leave KErrArgument Callback is missing when required.
+        * @leave KErrNotSupported No provider supports service.
+        */
+        virtual void HandleServiceCmdL(
+            const TInt& aCmdId,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MLiwNotifyCallback* aCallback = NULL) = 0;
+
+        /**
+        * Executes generic service command
+        *
+        * @param aCmdName The service command to be executed.
+        * @param aInParamList Input parameters, can be an empty list.
+        * @param aOutParamList Output parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see KLiwOpt* in LiwCommon.hrh.
+        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
+        * @leave KErrArgument Callback is missing when required.
+        * @leave KErrNotSupported No provider supports service.
+        */
+        void HandleServiceCmdL(                         
+            const TDesC8& aCmdName,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MLiwNotifyCallback* aCallback = NULL)
+          {
+            _LIT8(KGenericParamID,"cmd");
+          
+            ((CLiwGenericParamList&)aInParamList).AppendL(
+              TLiwGenericParam(KGenericParamID, TLiwVariant(aCmdName)));
+            
+            HandleServiceCmdL(KLiwCmdAsStr, aInParamList,
+                              aOutParamList, aCmdOptions, aCallback);
+          }
+
+		
+
+        // Rest of the class is for LIW's internal use and doesn't consern 
+        // service providers.
+        friend class CLiwServiceHandlerImpl;
+        friend class CLiwBinding;
+        friend class CLiwEcomMonitor;
+
+    protected:
+        IMPORT_C virtual void* ExtensionInterface(TUid aInterface);
+
+		private:
+        void SetDtorKeyId(TUid aDtorKeyId);
+        TBool Match(CLiwCriteriaItem* aItem);   
+        void AddCriteria(CLiwCriteriaItem* aItem);
+        TUid ImplementationUid() const;
+        void SetImplementationUid(TUid aUid);
+        TBool HasCriteria(CLiwCriteriaItem& aItem) const;
+
+    private:
+        TUid iDtorKeyId;
+        RCriteriaArray iCriterias;
+        TUid iImplUid;
+
+        // Reserved member        
+        TAny* iReserved;        
+    };
+
+
+#endif  // LIW_SERVICE_IF_BASE_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwserviceifmenu.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:       Declares service API for providers offering menu services for 
+*                consumers.
+*
+*/
+
+
+
+
+
+
+#ifndef LIW_SERVICE_IF_MENU_H
+#define LIW_SERVICE_IF_MENU_H
+
+// INCLUDES
+#include <liwserviceifbase.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CLiwMenuPane;
+
+// CLASS DECLARATION
+
+/**
+* This is the menu service interface to access providers that offer menu services.
+*
+* Menu service providers should inherit this class. Providers offering 
+* only base services should inherit CLiwServiceIfBase instead.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see CLiwServiceIfBase
+**/
+class CLiwServiceIfMenu: public CLiwServiceIfBase
+    {
+    public:
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CLiwServiceIfMenu();
+
+        /**
+        * Provider should implement this method to initialise a menu pane by adding 
+        * provider specific menu items. The LIW framework gives the parameters to be 
+        * used in the addition process.
+        *
+        * @param aMenuPane Menu pane handle.
+        * @param aIndex The position of the item where to add menu items.
+        * @param aCascadeId ID of cascade menu item.
+        * @param aInParamList Input parameter list for provider's parameter checking.
+        */
+        virtual void InitializeMenuPaneL(
+            CLiwMenuPane& aMenuPane,
+            TInt aIndex,
+            TInt aCascadeId,
+            const CLiwGenericParamList& aInParamList) = 0;
+
+        /**
+        * Provider should implement this method to handle a menu command. Called by the 
+        * Service Handler when a consumer calls ExecuteMenuCmdL().
+        *
+        * @param aMenuCmdId Original provider specific ommand ID for the menu command.
+        *                   Defined in the provider's menu item resource.
+        * @param aInParamList Input parameters, can be an empty list.
+        * @param aOutParamList Output parameters, can be an empty list.
+        * @param aCmdOptions Options for the command, see KLiwCmdOpt* in LiwCommon.hrh.
+        * @param aCallback Callback if asynchronous command handling is wanted by consumer.
+        *                  The provider may or may not support this. A provider should 
+        *                  leave with KErrNotSupported, if not.
+        * @leave KErrNotSupported Callback is not supported.
+        */
+        virtual void HandleMenuCmdL(
+            TInt aMenuCmdId,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MLiwNotifyCallback* aCallback = NULL) = 0;
+
+        /**
+        * Returns current LIW menu pane for this menu service provider.
+        *
+        * @return Pointer to the current LIW menu pane object. 
+        */
+        IMPORT_C const CLiwMenuPane* MenuPane() const;
+        
+    protected:
+        IMPORT_C virtual void* ExtensionInterface(TUid aInterface);        
+        
+    private:
+        // Rest of the class is for LIW's internal use and doesn't consern 
+        // service providers.    
+        friend class CLiwServiceHandlerImpl;
+
+        void InitializeMenuPaneHookL(
+            CLiwMenuPane* aMenuPane,
+            TInt aIndex,
+            TInt aCascadeId,
+            const CLiwGenericParamList& aInParamList);
+
+        void HandleMenuCmdHookL(
+            CLiwMenuPane* aMenuPane,
+            TInt aMenuCmdId,
+            const CLiwGenericParamList& aInParamList,
+            CLiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MLiwNotifyCallback* aCallback = NULL);
+        
+    private:
+        CLiwMenuPane* iMenuPane; // Not owned.
+        
+        // Reserved member        
+        TAny* iSpare;         
+    };
+
+
+#endif // LIW_SERVICE_IF_MENU_H
+
+// End of file
--- a/dependencies/platform_paths.hrh	Fri Mar 19 13:46:28 2010 +0200
+++ b/dependencies/platform_paths.hrh	Thu Mar 25 09:33:14 2010 +0100
@@ -183,6 +183,11 @@
 #ifndef PLATFORM_PATHS_HRH
 #define PLATFORM_PATHS_HRH
 
+
+// This should not be here, but I'm tired of adding this line to every
+// single MMP.
+#include <defaultcaps.hrh>
+
 /**
 **************************************************************************
 * General comments about the exporting of headers macros
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecmgrcommondef.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,124 @@
+/*
+* 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 the License "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:       Security Manager common header
+ *
+*/
+
+
+
+
+
+
+#ifndef _RTSECMGR_COMMON_DEF_H_
+#define _RTSECMGR_COMMON_DEF_H_
+
+#include <e32base.h>
+#include <avkon.hrh>
+
+typedef TInt TPolicyID;
+typedef TInt TExecutableID;
+typedef TUint32 TPermGrant;
+typedef RArray<TCapability> RCapabilityArray;
+typedef TUid TProviderUid;
+typedef RArray<TProviderUid> RProviderArray;
+
+typedef TUint32 TCapabilityBitSet;
+
+//constant for default NULL capability bitset
+const TCapabilityBitSet KDefaultNullBit = 0x0000;
+
+//constant for default capability bitset with LSB enabled
+const TCapabilityBitSet KDefaultEnableBit = 0x0001;
+
+enum TAccessCheckCode
+	{
+	EAccessNok = -1,
+	EAccessOk
+	};
+
+enum       
+    {
+     EPromptOk = EAknSoftkeyOk,
+     EPromptCancel = EAknSoftkeyCancel
+    };
+
+/*
+ * Enumerations for various duration option
+ */
+const TUint32 DEFAULT_ONESHOT = 0x80000000;
+const TUint32 DEFAULT_SESSION = 0x40000000;
+const TUint32 DEFAULT_BLANKET = 0x20000000;
+
+const TUint32 CONDITION_ONESHOT = 0x8000000;
+const TUint32 CONDITION_SESSION = 0x4000000;
+const TUint32 CONDITION_BLANKET = 0x2000000;
+
+const TUint32 ONESHOT_DENIED = 0x88000000;
+const TUint32 SESSION_DENIED = 0x44000000;
+const TUint32 BLANKET_DENIED = 0x22000000;
+
+const TUint32 DEFAULT_ALL = 0xE0000000;
+const TUint32 CONDITION_ALL = 0xE000000;
+const TUint32 CAPABILITY_ALL = 0xFFFFF;
+
+const TUint32 NetworkServices_CAP = 0x00002000;
+
+enum TUserPromptOption
+	{
+	RTUserPrompt_UnDefined = 0, //can be used for permisssions denied by default
+	RTUserPrompt_OneShot = CONDITION_ONESHOT,
+	RTUserPrompt_Session = CONDITION_SESSION,
+	RTUserPrompt_Permanent = CONDITION_BLANKET,
+	RTUserPrompt_Denied = ONESHOT_DENIED,
+	RTUserPrompt_SessionDenied = SESSION_DENIED,
+	RTUserPrompt_PermDenied = BLANKET_DENIED
+	};
+
+enum TSecMgrPromptUIOption
+	{
+	RTPROMPTUI_DEFAULT = 0,
+	RTPROMPTUI_ADVANCED,
+	RTPROMPTUI_PROVIDER
+	};
+
+//error code used btn server and client
+//error code starts with -101 as predefined symbian codes
+//range upto -48
+enum TSecMgrErrCode
+	{
+	ErrInvalidParameters = -101,
+	ErrFileSessionNotShared = ErrInvalidParameters -1,
+	ErrInvalidPolicyFormat = ErrFileSessionNotShared -1,
+	ErrFatalDBError = ErrInvalidPolicyFormat -1,
+	ErrSetPolicyFailed = ErrFatalDBError -1,
+	ErrUpdatePolicyFailed = ErrSetPolicyFailed -1,
+	ErrInvalidPolicyID = ErrUpdatePolicyFailed -1,
+	ErrPolicyIDDoesNotExist = ErrInvalidPolicyID -1,
+	ErrInvalidScriptID = ErrPolicyIDDoesNotExist -1,
+	ErrRegisterScriptFailed = ErrInvalidScriptID -1,
+	ErrUpdateGrantFailed = ErrRegisterScriptFailed -1,
+	ErrServerReadConfig = ErrUpdateGrantFailed -1,
+	ErrUnRegisterScriptFailed = ErrServerReadConfig -1,
+	ErrUnSetPolicyFailed = ErrUnRegisterScriptFailed -1,
+	ErrUpdatePermGrantFailed = ErrUnSetPolicyFailed -1,
+	ErrBackupNotCreated = ErrUpdatePermGrantFailed - 1,
+	ErrRestoreTempFailed = ErrBackupNotCreated - 1,
+	ErrAccessDenied = ErrRestoreTempFailed - 1
+	};
+
+const TInt KAnonymousScript = -1;
+const TInt KInvalidPolicyID = -1;
+const TInt KMaxTrustInfoLen = 512; //magic number - half of 1 KB
+
+#endif  //_RTSECMGR_COMMON_DEF_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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 the License "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:       Build file for rtsecurity manager client API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+rtsecmanager.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmanager.h)
+rtsecmgrscriptsession.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrscriptsession.h)
+rtsecmgrtrustInfo.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrtrustinfo.h)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmanager.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,300 @@
+/*
+* 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 the License "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:       Defines Runtime security manager's core class. Defines
+ * 				  APIs for runtime bindings and clients to access security
+ * 				  management functionalities
+ *
+*/
+
+
+
+
+
+
+#ifndef _CRTSECMANAGER_H
+#define _CRTSECMANAGER_H
+
+#include <e32base.h>
+
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrtrustinfo.h>
+
+class CRTSecMgrScriptSession;
+class MSecMgrPromptHandler;
+class CRTSecMgrClientProxy;
+class CTrustInfo;
+class CPermission;
+
+/**
+ * Core class of the runtime recurity manager component.
+ * 
+ * Runtime security manager broadly offers 
+ *
+ *  - Policy management functions
+ *	- Script management functions
+ *  - Access permission check
+ *
+ * CRTSecManager offers methods to perform policy management functionalities
+ * such as 
+ * 	- Registering runtime security access policy
+ * 	- Updating the registered security access policy
+ * 	- Un-registering the registered security access policy 
+ * 
+ * Similarly, CRTSecManager offers methods for script management such as
+ * 	- Registering a runtime script with security manager
+ * 	- Un-registering the registered script
+ * 	- Obtaining scipt session associated with the registered script
+ * 
+ * The main functionality of CRTSecManager is to perform access permission
+ * check using script session functions
+ * 
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CRTSecManager) : public CBase
+	{
+public:
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CRTSecManager instance
+	 *
+	 * Initializes client side security manager session. Starts the security
+	 * manager server, if it is not already running.
+	 * 
+	 * @return pointer to an instance of CRTSecManager
+	 */
+	IMPORT_C static CRTSecManager* NewL();
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CRTSecManager instance and leaves the created instance
+	 * onto the cleanupstack.
+	 *
+	 * Initializes client side security manager session. Starts the security
+	 * manager server, if it is not already running.
+	 * 
+	 * @return pointer to an instance of CRTSecManager
+	 */
+	IMPORT_C static CRTSecManager* NewLC();
+
+	/**
+	 * Destructor
+	 * 
+	 * Closes client side security manager session
+	 */
+	IMPORT_C ~CRTSecManager();
+
+	/**
+	 * Registers a runtime security policy. Runtimes should call this function
+	 * to register their security access and trust policies.
+	 *
+	 * @param aSecPolicy RFile Handle to security policy file
+	 *
+	 * @return TPolicyID generated policy identifier if successul; Otherwise one of
+	 *					 system wide error codes
+	 *
+	 * \note
+	 * Clients should call ShareProtected on the file session object as shown below.
+	 * 
+	 * @code	 * 
+	 * 	RFs fileSession;
+	 * 	fileSession.Connect();
+	 * 	fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
+	 * 
+	 * 	RFile secPolicyFile;
+	 * 	secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );
+	 * 	TPolicyID policyID = secMgr->SetPolicy(secPolicyFile);
+	 *
+	 *  if(policyID <= KErrNone)
+	 *  {
+	 *		//error..
+	 *	}
+	 * 
+	 * @endcode
+	 * 
+	 */
+	IMPORT_C TPolicyID SetPolicy(const RFile& aSecPolicy);
+	
+	/**
+	 * Registers a runtime security policy. Runtimes should call this function
+	 * to register their security access and trust policies.
+	 *
+	 * @param aPolicyBuffer const TDesC& security policy file buffer
+	 *
+	 * @return TPolicyID generated policy identifier if successul; Otherwise one of
+	 *					 system wide error codes
+	 *
+	 * \note
+	 * Clients should call ShareProtected on the file session object as shown below.
+	 * 
+	 * @code	 * 
+	 * 	RFs fileSession;
+	 * 	fileSession.Connect();
+	 * 	fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
+	 * 
+	 * 	RFile secPolicyFile;
+	 * 	secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );	 
+	 *  HBufC8* fileBuffer = HBufC8::NewL(KFileBufferMaxLen);
+	 *  secPolicyFile.Read(*fileBuffer);
+	 *   
+	 * 	TPolicyID policyID = secMgr->SetPolicy(*fileBuffer);
+	 *
+	 *  if(policyID <= KErrNone)
+	 *  {
+	 *		//error..
+	 *	}
+	 * 
+	 * @endcode
+	 * 
+	 */
+	IMPORT_C TPolicyID SetPolicy(const TDesC8& aPolicyBuffer);
+
+	/**
+	 * UnRegisters a registered security policy. Runtimes should call this function
+	 * to de-register the already registered security policy.
+	 *
+	 * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+	 *
+	 * @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
+	 *    
+	 */
+	IMPORT_C TInt UnSetPolicy(TPolicyID aPolicyID);
+
+	/**
+	 * Updates an already registered security policy. Runtimes should call this function
+	 * to update their policy.
+	 *
+	 * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+	 * @param aSecPolicy RFile Handle to security policy file
+	 *
+	 * @see SetPolicy for file session pre-conditions
+	 *
+	 * @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
+	 *
+	 */
+	IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const RFile& aSecPolicy);
+
+	/**
+	 * Updates an already registered security policy. Runtimes should call this function
+	 * to update their policy.
+	 *
+	 * @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
+	 * @param aPolicyBuffer const TDesC& security policy file buffer
+	 *
+	 * @see SetPolicy for file session pre-conditions
+	 *
+	 * @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
+	 *
+	 */
+	IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const TDesC8& aPolicyBuffer);
+	
+	/**
+	 * Registers a script/executable. Runtimes should specify the trust information
+	 * of the script to be registered. 
+	 *
+	 * @param aPolicyID TPolicyID   Runtime's registered policy identifier
+	 * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+	 *
+	 * @return TExecutableID generated executable identifier if successul; Otherwise one of
+	 *					 	 system wide error codes
+	 *
+	 */
+	IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo);
+
+	/**
+	 * Registers a script/executable. Runtimes should specify the trust information
+	 * of the script to be registered. 
+	 *
+	 * @param aPolicyID TPolicyID   Runtime's registered policy identifier
+	 * @param aHashMarker const TDesC& Hash value to identify script when starting script session
+	 * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+	 *
+	 * @return TExecutableID generated executable identifier if successul; Otherwise one of
+	 *					 	 system wide error codes
+	 *
+	 */
+	IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const TDesC& aHashMarker, const CTrustInfo& aTrustInfo);
+
+	/**
+	 * De-Registers a script/executable. Runtimes should pass the previously registered
+	 * script identifier corresponding to the script to be de-registered.
+	 *
+	 * @param aExeID TExecutableID   A valid script identifier
+	 *
+	 * @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
+	 *     
+	 */
+	IMPORT_C TInt UnRegisterScript(TExecutableID aExeID, TPolicyID aPolicyID);
+
+	/**
+	 * Creates a script session instance. CRTSecMgrScriptSession performs access permission
+	 * check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
+	 * be created for every instance of scripts which could potentially invoke platform service.
+	 *
+	 * @param aPolicyID TPolicyID    Valid registered policy identifier
+	 * @param aExeID TExecutableID   Script identifier, KAnonymousScript in case of anonymous script session
+	 * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+	 *							     will supply a default prompt handler
+	 *
+	 * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
+	 * Otherwise NULL
+	 */
+	IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, TExecutableID aExecID, MSecMgrPromptHandler* aPromptHdlr=NULL , const TDesC& aHashValue = KNullDesC);
+
+	/**
+	 * Creates a script session instance for an unregisterd trusted script. CRTSecMgrScriptSession performs access permission
+	 * check for native platform service invocation. 
+	 *
+	 * @param aPolicyID TPolicyID    Valid registered policy identifier
+	 * @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
+	 * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+	 *							     will supply a default prompt handler
+	 *
+	 * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession;
+	 * 								  NULL in case of invalid policy identifier
+	 *           
+	 *     
+	 */
+	IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo, MSecMgrPromptHandler* aPromptHdlr=NULL);
+
+	/**
+	 * Creates a script session instance. CRTSecMgrScriptSession performs access permission
+	 * check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
+	 * be created for every instance of scripts which could potentially invoke platform service.
+	 *
+	 * @param aPolicyID TPolicyID    Valid registered policy identifier
+	 * @param aExeID TExecutableID   Script identifier, KAnonymousScript in case of anonymous script session
+	 * @param aHashValue TDesC		 hash value passed while registering the script
+	 * @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
+	 *							     will supply a default prompt handler
+	 *
+	 * @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
+	 * Otherwise NULL
+	 
+	IMPORT_C CRTSecMgrScriptSession* GetScriptSession(TPolicyID aPolicyID, TExecutableID aExecID, const TDesC& aHashValue, MSecMgrPromptHandler* aPromptHdlr=NULL);*/
+private:
+	//Private default constructor
+	CRTSecManager();
+
+	//Part of second-phase constructor
+	void ConstructL();
+
+private:
+	//Proxy to client side session object
+	CRTSecMgrClientProxy* iClientProxy;
+	};
+#endif //_CRTSECMANAGER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmgrscriptsession.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,661 @@
+/*
+* 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 the License "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:       Client side proxy class representing script session
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CRTSECMGRSCRIPTSESSION_H_
+#define	_CRTSECMGRSCRIPTSESSION_H_
+
+#include <rtsecmanager.rsg>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+#include <rtsecmgrscript.h>
+#include <rtsecmgrtrustinfo.h>
+
+class CCoeEnv;
+class CRTSecMgrSubSessionProxy;
+
+/**
+ * Type holding data to be used while prompting. 
+ * 
+ * The default or custom (runtime over-ridden) prompt handler requires the permission
+ * type to prompt and the user-selection to be returned to security 
+ * manager for access permission check
+ * 
+ * @lib rtsecmgrclient.lib
+ */
+class CPromptData : public CBase
+	{
+public:
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPromptData instance
+	 *
+	 * @return pointer to an instance of CPromptData
+	 */
+	static CPromptData* NewL()
+		{
+		CPromptData* self = CPromptData::NewLC ();
+		CleanupStack::Pop (self);
+		return self;
+		}
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPromptData instance and leaves the created instance
+	 * onto the cleanupstack.
+	 *
+	 * @return pointer to an instance of CPromptData
+	 */
+	
+	static CPromptData* NewLC()
+		{
+		CPromptData* self = new (ELeave) CPromptData();
+		CleanupStack::PushL (self);
+		self->ConstructL ();
+		return self;
+		}
+		
+
+	/**
+	 * Destructor
+	 * 
+	 */
+	~CPromptData()
+		{
+		if(iPermission)
+			delete iPermission;
+		
+		}
+
+	
+	/*
+	 *
+	 *
+	 */
+	void ConstructL()
+	{
+		
+	}
+	
+	/**
+	 * Returns permission data
+	 * 
+	 * @return an object containing the permission data
+	 */
+	inline CPermission* Permission() const
+		{
+		return iPermission;
+		}
+
+	/**
+	 * Sets the user-selection data
+	 * 
+	 * @param aUserSelection TUserPromptOption user-selected data value
+	 */
+	inline void SetUserSelection(TUserPromptOption aUserSelection)
+		{
+		iUserSelection = aUserSelection;
+		}
+		
+	/**
+	 * Sets the permission value of the domain
+	 * 
+	 * @param aPermission CPermission permission value of the domain
+	 */
+	 
+	inline void SetPermissions(CPermission& aPermission)
+		{	
+		 if(iPermission)
+		 {
+		 	delete iPermission;
+		 	iPermission = NULL;
+		 }
+		 
+		 iPermission = CPermission::NewL(aPermission);
+ 		//iPermission = &aPermission;
+		}
+private:
+	//private default constructor
+	CPromptData::CPromptData() :
+		iUserSelection(RTUserPrompt_UnDefined)
+		{
+		}
+
+	//private permission data
+	CPermission* iPermission;
+
+	//private user-selection
+	TUserPromptOption iUserSelection;
+
+	friend class CRTSecMgrScriptSession;
+	};
+
+//typdef to model list of prompt data structure
+typedef RPointerArray<CPromptData> RPromptDataList;
+typedef RArray<TInt> RResourceArray; 
+
+/* 
+ * Prompt callback handler class. 
+ * 
+ * Runtimes should implement the prompt handler function to prompt the user 
+ * and to obtain the user option chosen. The prompt data are used by
+ * runtime security manager for further access permission check. 
+ * 
+ * If runtimes do not override prompt handling, security manager component 
+ * would then provide default prompt handler functionality.
+ *
+ * @lib rtsecmgrclient.lib
+ */
+class MSecMgrPromptHandler
+	{
+public:
+	/**
+	 * Prompts the user.
+	 * 
+	 * @param aPromptDataList RPromptDataList list of prompt data used by
+	 * prompt callback handler to show to the user
+	 * 
+	 * @return KErrNone if prompting successful; In case of failure, one of
+	 * system wide error codes
+	 */
+	virtual TInt Prompt(RPromptDataList& aPromptDataList , TExecutableID aExecID  = KAnonymousScript) =0;
+
+	/**
+	 * Sets the user chosen prompt selection.
+	 * 
+	 * @param aPromptUiOption TSecMgrPromptUIOption prompt selection
+	 */
+	virtual void SetPromptOption(TSecMgrPromptUIOption aPromptUiOption) =0;
+	/**
+	 * Returns the prompt selection
+	 * 
+	 * @return TSecMgrPromptUIOption the prompt selection
+	 */
+	virtual TSecMgrPromptUIOption PromptOption() const =0;
+	};
+
+struct TPermanentInfo
+    {
+    TPermGrant iAllowedBits;            //permanent allowed caps
+    TPermGrant iDeniedBits;             //permanent denied caps
+    RProviderArray iAllowedProviders;   //permanent allowed providers
+    RProviderArray iDeniedProviders;    //permanent denied providers
+    };
+
+struct TSessionInfo
+    {
+    TCapabilityBitSet AllowedCaps; //caps allowed for this session (caps allowed for this session & perm allowed)
+    TCapabilityBitSet DeniedCaps; //caps denied for this sesion (caps denied for this session & perm denied)
+    RProviderArray AllowedProviders;//providers allowed for this session
+    RProviderArray DeniedProviders;//providers denied for this session
+    };
+
+/**
+ *
+ * Thin proxy to the client side sub-session handle. 
+ * 
+ * This class implements the default prompt handling functionality. In addition, the main
+ * functionality of native platform access check is performed by CRTSecMgrScriptSession.
+ *
+ * @lib rtsecmgrclient.lib
+ * 
+ */
+NONSHARABLE_CLASS(CRTSecMgrScriptSession) : public CBase, MSecMgrPromptHandler
+	{
+public:
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CRTSecMgrScriptSession instance
+	 *
+	 * Initializes client side script sub-session. 
+	 * 
+	 * @param MSecMgrPromptHandler pointer to a prompt handler callback
+	 * 
+	 * @return pointer to an instance of CRTSecMgrScriptSession if succesful; 
+	 * Otherwise NULL
+	 */
+	static CRTSecMgrScriptSession* NewL(MSecMgrPromptHandler* aPromptHdlr=0);
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CRTSecMgrScriptSession instance and leaves the created instance
+	 * on the cleanupstack
+	 *
+	 * Initializes client side script sub-session. 
+	 * 
+	 * @param MSecMgrPromptHandler pointer to a prompt handler callback
+	 * 
+	 * @return pointer to an instance of CRTSecMgrScriptSession if succesful; 
+	 * Otherwise NULL
+	 */
+	static CRTSecMgrScriptSession* NewLC(MSecMgrPromptHandler* aPromptHdlr=0);
+	
+	/**
+	 * Callback funciton for moreinfo link in advanced prompt
+	 * 
+	 * Calls the moreinfo function for indivudual capability or for a alias group
+	 * 
+	 * @param aCallbackParam TAny* pointer to TCallbackParam
+	 * 
+	 */
+  static TInt LinkCallback(TAny *aCallbackParam);
+
+	/**
+	 * Destructor
+	 * 
+	 * Closes the sub-session
+	 *
+	 */
+	IMPORT_C ~CRTSecMgrScriptSession();
+
+	/**
+	 * Opens security manager script sub-session. This method in turn opens a
+	 * sub-session on the server side, by bringing script related data onto the cache. 
+	 * 
+	 * @param aParentSession RSessionBase handle to parent security manager session
+	 * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+	 * @param aExecID TExecutableID identifier of the script associated with this script session
+	 * 
+	 * @return KErrNone if successful; In case of failure, one of system wide error cods
+	 */
+	TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID);
+
+	/**
+	 * Opens security manager script sub-session. This method in turn opens a
+	 * sub-session on the server side, by bringing script related data onto the cache. 
+	 * 
+	 * @param aParentSession RSessionBase handle to parent security manager session
+	 * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+	 * @param aExecID TExecutableID identifier of the script associated with this script session
+	 * @param aHashValue TDesC		hash value of the scrpt passed while registering the script
+	 * 
+	 * @return KErrNone if successful; In case of failure, one of system wide error cods
+	 */
+	TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID,const TDesC& aHashValue);
+
+	/**
+	 * Opens security manager script sub-session. This method in turn opens a
+	 * sub-session on the server side, by bringing script related data onto the cache. 
+	 * 
+	 * @param aParentSession RSessionBase handle to parent security manager session
+	 * @param aPolicyID TPolicyID policy identifier of the script associated with this script session
+	 * @param aExecID TExecutableID identifier of the script associated with this script session
+	 * @param aTrustInfo CTrustInfo trust data structure
+	 * 
+	 * @return KErrNone if successful; In case of failure, one of system wide error cods
+	 */
+	TInt Open(const RSessionBase& aParentSession,TPolicyID aPolicyID,TExecutableID aExecID,const CTrustInfo& aTrustInfo);
+
+	/**
+	 * Performs access permission check
+	 * 
+	 * This method evaluates access permission by comparing the expected capabilities
+	 * to perform service invocation with the capabilities of the script. The
+	 * capabilities of the script is computed as sum of :
+	 * 	
+	 * 	-	default allowed capabilities as specified in security access policy
+	 * 	-	user-granted capabilities, allowed by user while prompting
+	 *
+	 * The capabilities allowed by the user could be of various durations, like
+	 * session-based, blanket/permanent and the one valid for the current invocation only 
+	 * (one-shot)
+	 * 
+	 * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+	 * script's capbilities
+	 * 
+	 * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+	 */
+	IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck);
+
+	/**
+	 * Performs access permission check
+	 * 
+	 * This overloaded method evaluates access permission by comparing the expected capabilities
+	 * to perform service invocation with the capabilities of the script. The
+	 * capabilities of the script is computed as sum of :
+	 * 	
+	 * 	-	default allowed capabilities as specified in security access policy
+	 * 	-	user-granted capabilities, allowed by user while prompting
+	 *
+	 * The capabilities allowed by the user could be of various durations, like
+	 * session-based, blanket/permanent and the one valid for the current invocation only 
+	 * (one-shot)
+	 * 
+	 * This overloaded version returns the list of capabilities that do not match after
+	 * access permission check. This can be used by the client to display to the user the
+	 * list of unmatched capabilities
+	 * 
+	 * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+	 * script's capbilities
+	 * @param aUnMatchedCapabilities RCapabilityArray list of unmatched capabilities
+	 * 
+	 * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+	 */
+	IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck,RCapabilityArray& aUnMatchedCapabilities);
+
+	/**
+     * Performs access permission check
+     * 
+     * This overloaded method evaluates access permission by comparing the expected capabilities
+     * to perform service invocation with the capabilities of the script. The
+     * capabilities of the script is computed as sum of :
+     *  
+     *  -   default allowed capabilities as specified in security access policy
+     *  -   user-granted capabilities, allowed by user while prompting
+     *
+     * The capabilities allowed by the user could be of various durations, like
+     * session-based, blanket/permanent and the one valid for the current invocation only 
+     * (one-shot)
+     * 
+     * This overloaded version returns the list of capabilities that do not match after
+     * access permission check. This can be used by the client to display to the user the
+     * list of unmatched capabilities
+     * 
+     * @param aCapabilitiesToCheck RCapabilityArray list of capabilities to be checked against
+     * script's capbilities
+     * @param aProviderUid TProviderUid The provider that is being loaded
+     * @param aResourceFilePath TFileName resource file containing the string to prompt.
+     * 
+     * @return EAccessOk if the access permission check is successful; Else, EAccessNOk
+     */
+	IMPORT_C TInt IsAllowed(const RCapabilityArray& aCapabilitiesToCheck, TProviderUid aProviderUid, TFileName aResourceFileName);
+	
+	/**
+     * Definition of default prompt handler.
+     * 
+     * @param aPromptDataList RPromptDataList list of prompt data used by
+     * prompt callback handler to show to the user
+     * 
+     * @return KErrNone if prompting successful; In case of failure, one of
+     * system wide error codes
+     *
+     */
+	TInt Prompt(RPromptDataList& aPromptDataList , TExecutableID aExecID = KAnonymousScript);
+    
+    /**
+	 * Definition of cost notification.
+	 * 
+	 */
+    void PromptCostL() ; 
+    
+	/**
+	 * Gets the underlying script object
+	 * 
+	 * This method is to be used by components, such as application manager,
+	 * that are interested in displaying script related information to the user.
+	 * 
+	 * Following are the script related information:
+	 * 
+	 * 	- Capabilities allowed by default
+	 * 	- User-grantable capabilities
+	 * 	- Currently allowed or denied blanket permissions
+	 *
+	 * Note that this method should not be used by runtimes unless and until there is
+	 * a strong design justification
+	 * 
+	 * @return a reference to underlying script object
+	 */
+	inline CScript& CRTSecMgrScriptSession::Script()
+		{
+		return *iScript;
+		}
+
+	/**
+	 * Returns prompt handler reference
+	 * 
+	 * @return reference to prompt handler
+	 */
+	inline MSecMgrPromptHandler* PromptHandler() const
+		{
+		return iPromptHdlr;
+		}
+
+	/**
+	 * Sets prompt UI option. The supported prompt options are :
+	 * 
+	 * 	-	Basic/Default
+	 * 	- 	Advanced
+	 * 
+	 * The difference between the basic and advanced prompt option
+	 * reisdes in the fact the number of prompt options and the corresponding
+	 * prompt texts displayed would be different.
+	 * 
+	 * If not explictly, the default prompt UI option is set to basic/default prompt UI.
+	 * 
+	 * @param aUIPromptOption TSecMgrPromptUIOption basic/advanced prompt UI option
+	 */
+	inline void SetPromptOption(TSecMgrPromptUIOption aUIPromptOption)
+		{
+		iUIPromptOption = aUIPromptOption;
+		}
+
+	/**
+	 * Gets prompt UI option. The supported prompt options are :
+	 * 
+	 * 	-	Basic/Default
+	 * 	- 	Advanced
+	 * 
+	 * The difference between the basic and advanced prompt option
+	 * reisdes in the fact the number of prompt options and the corresponding
+	 * prompt texts displayed would be different.
+	 * 
+	 * @return aUIPromptOption TSecMgrPromptUIOption basic/advanced prompt UI option
+	 */
+	inline TSecMgrPromptUIOption PromptOption() const
+		{
+		return iUIPromptOption;
+		}
+	
+	/**
+	 * Sets the application name to the value passed by the runtime.
+	 * The name is displayed as part of the prompt for provider based prompting.
+	 * If name is not set then the default name is used.
+	 * 
+	 * @param aName TDesC& name of the application.
+	 */
+	IMPORT_C void SetApplicationNameL(const TDesC& aName);
+	    
+
+private:
+	/*
+	 * Default private constructor
+	 * 
+	 */
+	CRTSecMgrScriptSession(MSecMgrPromptHandler* aPromptHdlr=0);
+
+	/*
+	 * Two phased constructor
+	 * 
+	 */
+	void ConstructL();
+
+	/*
+	 * Contains prompt logic
+	 * 
+	 */
+	TInt Prompt(CPromptData* aPromptData);
+	
+	/*
+	 * Private default implementation for advanced prompt UI option
+	 * 
+	 */
+	TInt PromptAdvanced(CPromptData* aPromptData);
+
+	/* 
+	 * Logic for displaying more inormation when the user selects more info
+	 * 
+	 */
+	TInt MoreInfoL(CPromptData& aPromptData);
+	
+	/*
+	 * Logic identifying the user-selection of prompt
+	 * duration
+	 * 
+	 */
+	void HandleGrantChosen(CPromptData* aPromptData,
+		TCapabilityBitSet aCapBitSet, TCapabilityBitSet& aAllowedCaps,
+		TBool& aIsPermGrantModified);
+
+	/*
+	 * Private implementation to update blanket permission data
+	 * 
+	 */
+	void UpdatePermGrant();
+	
+	/*
+	 * Conversion utility to convert a single 32-bit value to the list of
+	 * capabilities (RArray<TCapability>)
+	 * 
+	 */
+	void BuildCapsL(TCapabilityBitSet aCapBitSet, RCapabilityArray& aInOutTCapList);
+
+	/*
+	 * Private implementation to evaluate access permission check
+	 * 
+	 */
+	TInt IsAllowed(const RCapabilityArray& aCapsToCheck,RPromptDataList& aPromptDataList,TCapabilityBitSet& aUnMatchedCapBits);
+
+	/*
+	 * Private implementation to evaluate access permission check. This
+	 * overloaded version additionally returns the unmatched capabilities
+	 * 
+	 */
+	TInt IsAllowed(const RCapabilityArray& aCapsToCheck,TCapabilityBitSet& aUnMatchedCapBits);
+
+	/*
+	 * Conversion utility to generate an unsigned 32-bit value toggling the individual bits
+	 * to the corresponding TCapability value
+	 * 
+	 */
+	void AddCapability(TCapabilityBitSet& aInOutCapBitSet, TCapability aCapToSet);
+
+	/*
+	 * Attempts to close the script sub-session
+	 * 
+	 */
+	void Close();
+	
+	/*
+	 * Function to add the security manager resource file to the CONE environment
+	 */
+	void AddResourceFiles();
+	
+	/*
+	 * Function to add the provider's resource file from which the body of the prompt is populated.
+	 * 
+	 * @param aResourceFileName TFileName The resource file to be added to the CONE environment
+	 */
+	TInt AddProviderResourceFile(TFileName aResourceFileName);
+	
+	/*
+	 * Close all the resource files added to the CONE environment
+	 */
+	void CloseResourceFiles();
+
+private:
+	/*
+	 * permissions allowed or denied for the current session
+	 * The lifetime of this data structure is associated
+	 * with this script session
+	 * 
+	 */
+	struct
+		{
+		TSessionInfo* sessionInfo; //Information about what is allowed for this session (caps/providers allowed for this session & perm allowed)
+		TCapabilityBitSet DeniedCaps; //Information about what is denied for this session (caps/providers denied for this session & perm denied)
+		}_sessionData;
+
+	/*
+	 * anonymous enumerations for selection index
+	 * 
+	 */
+	enum
+		{
+		PROMPT_SELIDX_ZERO = 0,
+		PROMPT_SELIDX_ONE = PROMPT_SELIDX_ZERO + 1,
+		PROMPT_SELIDX_TWO = PROMPT_SELIDX_ZERO + 2,
+		PROMPT_SELIDX_THREE = PROMPT_SELIDX_ZERO + 3,
+		PROMPT_SELIDX_FOUR = PROMPT_SELIDX_ZERO + 4,
+		PROMPT_SELIDX_FIVE = PROMPT_SELIDX_ZERO + 5
+		};
+
+	/*
+	 * private script reference
+	 * 
+	 */
+	CScript* iScript;
+
+	/*
+	 * permanently allowed capability bits
+	 * 
+	 */
+	TPermanentInfo* _permanentInfo; //perm allowed information, persistently stored for this script
+
+	/*
+	 * Generic data about the script session
+	 * 
+	 */
+	HBufC* iSessionData; 
+	
+	/*
+	 * reference to prompt handler instance
+	 * 
+	 */
+	MSecMgrPromptHandler* iPromptHdlr;
+
+	/*
+	 * sub-session proxy pointer
+	 * 
+	 */
+	CRTSecMgrSubSessionProxy* iSubSessionProxy;
+
+	/*
+	 * pointer to Coe environment
+	 */
+	CCoeEnv* iCoeEnv;
+
+	/*
+	 * security manager resource file offset value
+	 * 
+	 */
+	RResourceArray iResourceOffsetArray;
+
+	/*
+	 * Prompt UI option
+	 * 
+	 */
+	TSecMgrPromptUIOption iUIPromptOption;
+	
+	/*
+	 * Custom prompt flag
+	 * 
+	 */
+	TBool isCustomPrompt;
+	};
+
+#endif //_CRTSECMGRSCRIPTSESSION_H_
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_client_api/rtsecmgrtrustInfo.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* 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 the License "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:       Models trust information
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CTRUSTINFO_H_
+#define _CTRUSTINFO_H_
+
+#include <rtsecmgrcommondef.h>
+
+/**
+ * CTrustInfo models trust data structure.
+ * 
+ * The runtime security manager evaluates trustedness of a 
+ * runtime content/script/executable based on the trust information
+ * passed by runtimes. The definition of this type is currently
+ * incomplete, with state information such as
+ *  
+ * 	- Origin of the script
+ * 	- Certificate chain of the signed trusted contents
+ *  
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CTrustInfo) : public CBase
+	{
+public:
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CTrustInfo instance
+	 *
+	 * @return pointer to an instance of CTrustInfo
+	 */
+	IMPORT_C static CTrustInfo* NewL();
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CTrustInfo instance and leaves the created instance
+	 * on the cleanupstack
+	 *
+	 * @return pointer to an instance of CTrustInfo
+	 */
+	IMPORT_C static CTrustInfo* NewLC();
+
+	/**
+	 * Destructor
+	 * 
+	 */
+	IMPORT_C ~CTrustInfo();
+private:
+	/*
+	 * Default private constructor 
+	 */
+	CTrustInfo();
+	};
+
+#endif //_CTRUSTINFO_H_
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* 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 the License "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:       Build file for rtsecuritymanager utility API
+*
+*/
+
+
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+rtsecmgrpermission.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrpermission.h)
+rtsecmgrpermissionset.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrpermissionset.h)
+rtsecmgrscript.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrscript.h)
+rtsecmgrutility.h     MW_LAYER_PLATFORM_EXPORT_PATH(rtsecmgrutility.h)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrpermission.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,272 @@
+/*
+* 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 the License "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:       Defines permission data structure
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _C_PERMISSION_H_
+#define _C_PERMISSION_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+
+typedef TUint32 TPermissionData;
+const TPermissionData LOWBIT = 0x0001;
+
+/**
+ * Represents permission data structure.
+ * 
+ * A permission data is modelled as 32 bit unsigned integer type
+ * with the following layout :
+ * 
+ * - With leftmost 20 bits representing one of symbian native capability value
+ * - Bits 25 to 28 represent various user prompt conditions like oneshot, 
+ * 	 session or blanket
+ * - Bits 29-32 represent default condition value
+ * - Bits 21-24 are reserved
+ * 
+ * Various accessor and modifier methods are provided to access underlying
+ * native capability value, the default condition and the conditions set
+ * for this permission data.
+ * 
+ * @lib rtsecmgrutil.lib
+ */
+NONSHARABLE_CLASS(CPermission) : public CBase
+	{
+public:
+	/**
+	 * Default constructor
+	 * 
+	 */
+	IMPORT_C static CPermission* NewL();
+	
+	/**
+	 * destructor
+	 * 
+	 */
+	IMPORT_C ~CPermission();
+	
+	/**
+	 * Default constructor
+	 * 
+	 */
+	IMPORT_C static CPermission* NewLC();
+	
+	
+	/**
+	 * Copy constructor
+	 * 
+	 * @param aPermission TPermission permission source from which copy is made
+	 */
+	IMPORT_C static CPermission* NewL(const CPermission& aPermission);
+	
+	/**
+	 * Copy constructor
+	 * 
+	 * @param aPermission TPermission permission source from which copy is made
+	 */
+	IMPORT_C static CPermission* NewLC(const CPermission& aPermission);
+	
+	/**
+	 * Overloaded constructor taking capability
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 */
+	IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities);
+	
+	/**
+	 * Overloaded constructor taking capability
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 */
+	IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities);
+	
+	/**
+	 * Overloaded constructor taking capability and default condition
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+	 */
+	IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+	
+	/**
+	 * Overloaded constructor taking capability and default condition
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+	 */
+	IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+	
+	/**
+	 * Overloaded constructor taking capability, default condition and conditions of
+	 * permission
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+	 * @param aCondition TUserPromptOption Conditions to be set
+	 */
+	IMPORT_C static CPermission* NewL(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,
+			TUserPromptOption aCondition);
+
+	/**
+	 * Overloaded constructor taking capability, default condition and conditions of
+	 * permission
+	 * 
+	 * @param aCapability TCapability capability to be set
+	 * @param aDefaultOption TUserPromptOption Default user prompt option to be set
+	 * @param aCondition TUserPromptOption Conditions to be set
+	 */
+	IMPORT_C static CPermission* NewLC(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,
+			TUserPromptOption aCondition);
+
+	/**
+	 * Returns default prompt option
+	 * 
+	 * @return TUserPromptOption default condition
+	 */
+	IMPORT_C TUserPromptOption Default() const;
+	
+	/**
+	 * Returns condition
+	 * 
+	 * @return TUserPromptOption condition
+	 */
+	IMPORT_C TUserPromptOption Condition() const;
+	
+	/**
+	 * Returns capability value
+	 * 
+	 * @return TCapability capability value
+	 */
+	IMPORT_C TCapability Capability() const;
+
+	/**
+	 * Returns capability of the permission
+	 * 
+	 * @param aCapabilities RCapabilityArray& contains the capabilities
+	 */
+	IMPORT_C void Capabilitilites(RCapabilityArray& aCapabilities) const;
+	
+	/**
+	 * Sets default condition value
+	 * 
+	 * @param aDefaultOption TUserPromptOption default condition value
+	 */
+	IMPORT_C void SetDefault(TUserPromptOption aDefaultOption);
+	
+	/**
+	 * Sets condition value
+	 * 
+	 * @param aCondition TUserPromptOption condition value
+	 */
+	IMPORT_C void SetCondition(TUserPromptOption aCondition);
+
+	/**
+	 * Sets the name of the permission
+	 *
+	 * @param aName const TDesC& value
+	 */
+	IMPORT_C void SetPermName(const TDesC& aName);
+	
+	/**
+	 * Returns Name of the permission
+	 *
+	 * @return const TDesC&
+	 */
+	IMPORT_C const TDesC& PermName() const; 
+	
+	/**
+	 * Returns iPermissionData of the permission
+	 *
+	 * @return TPermission iPermissionData value
+	 */
+	IMPORT_C TPermissionData PermissionData() const; 
+	
+	// ---------------------------------------------------------------------------
+	// Adds a capability to permission data
+	// ---------------------------------------------------------------------------
+	//
+	IMPORT_C void AppendCapPermData(TCapability aCap);
+	
+	// ---------------------------------------------------------------------------
+	// Adds an unconditional capability
+	// ---------------------------------------------------------------------------
+	//
+	IMPORT_C void SetPermissionData(TPermissionData aPermData);
+
+	/**
+	 * Internalizes permission data from stream
+	 * 
+	 * @param aInStream RReadStream input source stream
+	 */
+	IMPORT_C void InternalizeL(RReadStream& aInStream);
+	
+	/**
+	 * Externalizes permission data to stream
+	 * 
+	 * @param aOutStream RWriteStream output stream
+	 */
+	IMPORT_C void ExternalizeL(RWriteStream& aOutStream) const;
+ 
+private:
+	/*
+	 * Default private constructor
+	 */
+	inline CPermission() : iPermName(NULL), iPermissionData(0)
+		{}
+	
+	/*
+	 * private copy constructor
+	 */
+	CPermission(const CPermission& aPermission);
+	
+
+	CPermission(const RCapabilityArray& aCapabilities);
+
+	CPermission(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt);
+
+	CPermission(const RCapabilityArray& aCapabilities, TUserPromptOption aDefOpt,TUserPromptOption aCondition);
+
+private:
+	//layout of TPermissionData
+	//__________________________________________________________________________
+	//|                 |              |               |       		            |
+	//|   Default       | Condition	   | RESERVED      |   CAPABILITY BITS      |
+	//|_________________|______________|_______________|________________________|
+	//
+	//  32,31,30,29,      28,27,26,25,    24,23,22,21,    20,19,18,...4,3,2,1
+	//
+	//underlying permission data structure
+	
+		
+	TPermissionData iPermissionData;
+	
+		
+	/*
+	 * alias group name
+	 */
+	HBufC* iPermName;
+	
+	};
+
+#endif //_T_PERMISSION_H_
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrpermissionset.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,200 @@
+/*
+* 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 the License "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:       Defines permission set class
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _CPERMISSIONSET_H_
+#define _CPERMISSIONSET_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+
+//Forward declaration
+class CPermissionSet;
+
+typedef RPointerArray<CPermission> RPermissions;
+typedef TUint32 TUnConditionalPermission;
+typedef RArray<TCapability> RUnConditionals;
+typedef RPointerArray<CPermissionSet> RPermissionSet;
+
+/**
+ * CPermissionSet represents list of user grantable permissions
+ * and list of unconditional permissions.
+ * 
+ * CPermissionSet provides accessor and modifier methods to access
+ * and modify CPermissionSet object state
+ * 
+ * @lib rtsecmgrutil.lib
+ */
+NONSHARABLE_CLASS(CPermissionSet) : public CBase
+	{
+public:
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPermissionSet instance
+	 *
+	 * @return pointer to an instance of CPermissionSet
+	 */
+	IMPORT_C static CPermissionSet* NewL();
+	
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPermissionSet instance and leaves the created instance
+	 * on the cleanupstack
+	 *
+	 * @return pointer to an instance of CPermissionSet
+	 */
+	IMPORT_C static CPermissionSet* NewLC();
+	
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPermissionSet instance from another permissionset
+	 * object
+	 *
+	 * @param aPermSet CPermissionSet source permissionset object
+	 * 
+	 * @return pointer to an instance of CPermissionSet
+	 */
+	IMPORT_C static CPermissionSet* NewL(const CPermissionSet& aPermSet);
+	
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CPermissionSet instance from another permissionset
+	 * object and leaves the created instance on the cleanupstack
+	 *
+	 * @param aPermSet CPermissionSet source permissionset object
+	 * 
+	 * @return pointer to an instance of CPermissionSet
+	 */
+	IMPORT_C static CPermissionSet* NewLC(const CPermissionSet& aPermSet);
+	
+	/**
+	 * Destructor
+	 * 
+	 */
+	IMPORT_C ~CPermissionSet();
+	
+	/**
+	 * Externalizes permissionset data to stream
+	 * 
+	 * @param aOutStream RWriteStream output stream
+	 */
+	IMPORT_C void ExternalizeL(RWriteStream& aSink) const;
+	
+	/**
+	 * Internalizes permissionset data from stream
+	 * 
+	 * @param aInStream RReadStream input source stream
+	 */
+	IMPORT_C void InternalizeL(RReadStream& aSource);
+
+	/*
+	 * Adds an unconditional capability to the permissionset
+	 * 
+	 * @param aCapability TCapability unconditional capability to be added
+	 */
+	IMPORT_C void AppendUncondCap(TCapability aCapability);
+	
+	/*
+	 * Adds a list of unconditional capabilities to the permissionset
+	 * 
+	 * @param TUnConditionalPermission aUnConditionals - list of TCapability that are to be added
+	 */
+	IMPORT_C void AppendUncondCapabilities(TUnConditionalPermission aUnConditionals);
+	
+	/*
+	 * Adds a permission to the permissionset
+	 * 
+	 * @param aPermission CPermission permission data to be added
+	 * 
+	 */
+	IMPORT_C void AppendPermission(CPermission& aPermission);
+
+	/*
+	 * Gets the list of user-grantable permissions
+	 * 
+	 * @return RPermissions non-modifiable reference to the list of user-grantable permissions
+	 * 
+	 */
+	IMPORT_C const RPermissions& Permissions() const;
+	
+	/*
+	 * Gets the list of unconditional permissions
+	 * 
+	 * @return TUnConditionalPermission unconditional permission
+	 *  
+	 */
+	IMPORT_C TUnConditionalPermission UnconditionalCaps() const;
+	
+	/*
+	 * Gets the list of unconditional permissions as array of
+	 * TCapability
+	 * 
+	 * @return RUnConditionals list of unconditional capabilities
+	 * 
+	 * @see TCapability
+	 * 
+	 */
+	IMPORT_C void UnconditionalCaps(RUnConditionals& aUnConditionals) const;
+	
+	/*
+	 * Gets list of user-grantable permissions. This overloaded version
+	 * returns modifiable list of user-grantable permissions
+	 * 
+	 * @return RPermissions list of user-grantable permissions
+	 *  
+	 */
+	IMPORT_C RPermissions& Permissions();
+
+private:
+	/*
+	 * Default private constructor
+	 */
+	inline CPermissionSet()
+		{}
+	
+	/*
+	 * private copy constructor
+	 */
+	CPermissionSet(const CPermissionSet& aPermSet);
+	
+	/* 
+	 * Private second phase constructor
+	 */
+	 void ConstructL(const CPermissionSet& aPermSet);
+	 
+private:
+	
+	//unconditional permissions
+	TUnConditionalPermission iUncondCapSet;
+	
+	//user-grantable permissions
+	RPermissions iPermissions;
+	};
+#endif //_CPERMISSIONSET_H_
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrscript.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,336 @@
+/*
+* 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 the License "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:       Models script data structure
+ *
+*/
+
+
+
+
+
+
+#ifndef _CSCRIPT_H_
+#define _CSCRIPT_H_
+
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrutility.h>
+
+/**
+ * Type holding data to be used while prompting. 
+ * 
+ * The default or custom (runtime over-ridden) prompt handler requires the permission
+ * type to prompt and the user-selection to be returned to security 
+ * manager for access permission check
+ * 
+ * @lib rtsecmgrclient.lib
+ */
+NONSHARABLE_CLASS(CScript) : public CBase
+	{
+public:
+	
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CScript instance 
+	 * 
+	 * @param aPolicyID TPolicyID policy identifier of the script
+	 * @param aScriptID TExecutableID script identifier
+	 * 
+	 * @return pointer to an instance of CScript
+	 */
+	IMPORT_C static CScript* NewL(TPolicyID aPolicyID,TExecutableID aScriptID);
+
+	/**
+	 * Two-phased constructor
+	 * 
+	 * Constructs a CScript instance and leaves the created instance
+	 * on cleanupstack 
+	 * 
+	 * @param aPolicyID TPolicyID policy identifier of the script
+	 * @param aScriptID TExecutableID script identifier
+	 * 
+	 * @return pointer to an instance of CScript
+	 */
+	IMPORT_C static CScript* NewLC(TPolicyID aPolicyID,TExecutableID aScriptID);
+
+	/*
+	 * Destructor
+	 */
+	IMPORT_C ~CScript();
+	
+	/*
+	 * overloaded assignment operator
+	 * 
+	 * @param aRhs CScript source script object specified on the right
+	 * hand side of the assignment operator
+	 * 
+	 * @return CScript returns the reference of this script object
+	 */
+	IMPORT_C const CScript& operator=(const CScript& aRhs);
+
+	/*
+	 * Gets the policy identifier of the script
+	 * 
+	 * @return TPolicyID policy identifier of the script
+	 */
+	IMPORT_C TPolicyID PolicyID() const;
+	
+	/*
+	 * Gets the script identifier
+	 * 
+	 * @return TExecutableID identifier of the script
+	 */
+	IMPORT_C TExecutableID ScriptID() const;
+	
+	/*
+	 * Gets the permissionset of the script. The permissionset
+	 * contains the list of user-grantable permissions and the list
+	 * of unconditional permissions
+	 * 
+	 * @return CPermissionSet permissionset of the script
+	 */
+	IMPORT_C const CPermissionSet& PermissionSet() const;
+
+	/*
+	 * Gets the permissionset of the script. The permissionset
+	 * contains the list of user-grantable permissions and the list
+	 * of unconditional permissions. This overloaded version returns
+	 * a modifiable reference to permissionset object.
+	 * 
+	 * @return CPermissionSet modifiable reference to permissionset of the script
+	 */
+	IMPORT_C CPermissionSet& PermissionSet();
+	
+	/*
+	 * Gets the permanently granted permissions
+	 * 
+	 * @return TPermGrant permanently granted permission
+	 * 
+	 */
+	IMPORT_C TPermGrant PermGranted() const;
+	
+	/*
+	 * Gets the permanently denied permissions
+	 * 
+	 * @return TPermGrant permanently denied permission
+	 * 
+	 */
+	IMPORT_C TPermGrant PermDenied() const;
+
+	/*
+     * Gets the permanently granted providers
+     * 
+     * @param aAllowedProviders RProviderArray IN/OUT param which will co
+     * 
+     */
+    IMPORT_C void PermGranted(RProviderArray& aAllowedProviders) ;
+    
+    /*
+     * Gets the permanently denied permissions
+     * 
+     * @return TPermGrant permanently denied permission
+     * 
+     */
+    IMPORT_C void PermDenied(RProviderArray& aDeniedProviders) ;
+    
+	/*
+	 * Sets the permissionset of the script
+	 * 
+	 * @param aPermissionSet CPermissionSet source permissionset to be set
+	 */
+	IMPORT_C void SetPermissionSet(const CPermissionSet& aPermissionSet);
+
+	/**
+	 * Externalizes script data to stream
+	 * 
+	 * @param aOutStream RWriteStream output stream
+	 */
+	IMPORT_C void ExternalizeL(RWriteStream& aSink) const;
+	
+	/**
+	 * Internalizes script data from stream
+	 * 
+	 * @param aInStream RReadStream input source stream
+	 */
+	IMPORT_C void InternalizeL(RReadStream& aSource);
+
+	/*
+	 * Sets permanently granted permission
+	 * 
+	 * @param aPermGrant TPermGrant permanently granted permission to be set
+	 * 
+	 */
+	IMPORT_C void SetPermGranted(TPermGrant aPermGrant);
+	
+	/*
+	 * Sets permanently denied permission
+	 * 
+	 * @param aPermDenied TPermGrant permanently denied permission to be set
+	 * 
+	 */
+	IMPORT_C void SetPermDenied(TPermGrant aPermDenied);
+	
+	/*
+     * Sets permanently granted permission
+     * 
+     * @param aPermGrant TPermGrant permanently granted permission to be set
+     * 
+     */
+    IMPORT_C void SetPermGranted(RProviderArray aPermGrantProviders);
+    
+    /*
+     * Sets permanently denied permission
+     * 
+     * @param aPermDenied TPermGrant permanently denied permission to be set
+     * 
+     */
+    IMPORT_C void SetPermDenied(RProviderArray aPermDeniedProviders);
+    
+	/*
+	 * Sets hash value of the script
+	 * 
+	 * @param aHashMark TDesC hash value of the script
+	 * 
+	 */
+	inline void SetHashMarkL(const TDesC& aHashMark);
+	
+	/*
+	 * Compares the HashValue of the script with the one passed as argument.
+	 * 
+	 * @return TBool hash values match or not.
+	 * 
+	 */
+	inline TBool HashMatch(const TDesC& aHashValue = KNullDesC) const;
+
+	/*
+	 * returns hash value of the script
+	 * 
+	 * @return TDesC hash value of the script
+	 * 
+	 */
+	inline TDesC Hash();
+	
+private:
+	/*
+	 * default private constructor
+	 * 
+	 */
+	inline CScript():iPermGrant(KDefaultNullBit),iPermDenied(KDefaultNullBit)
+		{}
+
+	/*
+	 * overloaded constructor
+	 * 
+	 * @param aPolicyID TPolicyID policy identifier of the script
+	 * @param aScriptID TExecutableID script identifier
+	 * 
+	 */
+	inline CScript(TPolicyID aPolicyID,TExecutableID aScriptID):iPolicyID(aPolicyID),iPermGrant(KDefaultNullBit),iPermDenied(KDefaultNullBit),iScriptID(aScriptID)
+		{}
+
+	/*
+	 * copy constructor
+	 * 
+	 * @param aRhs source script object
+	 */
+	CScript(const CScript& aRhs);
+
+	/*
+	 * Two-phased constructor
+	 * 
+	 */
+	void ConstructL();
+ 
+
+private:
+	//permission set 
+	CPermissionSet* iPermissionSet;
+	
+	//script identifier
+	TExecutableID iScriptID;
+	
+	//policy identifier of the script
+	TPolicyID iPolicyID;
+	
+	//permanently granted permission	
+	TPermGrant iPermGrant;
+	
+	//permanently denied permission
+	TPermGrant iPermDenied; //separate bit-patterns for permanently allowed & denied
+	
+	//permanently allowed providers
+	RProviderArray iAllowedProviders;
+	
+	//permanently denied providers
+	RProviderArray iDeniedProviders;
+	
+	//hash value of the script
+	HBufC* iHashMark;	
+	
+	// Reserved for future additions
+	TAny* iReserved;
+	};
+
+/*
+ * Sets hash value of the script
+ * 
+ * @param aHashMark TDesC hash value of the script
+ * 
+ */
+inline void CScript::SetHashMarkL(const TDesC& aHashMark)
+	{
+	if ( iHashMark)
+		{
+		delete iHashMark;
+		}
+	iHashMark = aHashMark.AllocLC ();
+	CleanupStack::Pop ();
+	}
+
+/*
+ * 
+ * 
+ * @return TBool Etrue
+ * 
+ */
+inline TBool CScript::HashMatch(const TDesC& aHashValue) const
+	{
+	TBool matches(EFalse);
+	if(iHashMark)
+		{
+		if(0==aHashValue.CompareF(*iHashMark))	
+			{
+			return !matches;
+			}
+		}
+	return matches;
+	}
+
+/*
+ *
+ * @return TDesC hash value of the script.
+ *
+ */
+
+inline TDesC CScript::Hash()
+	{
+	if(iHashMark)
+		return *iHashMark;
+	else
+		return KNullDesC;
+	}
+
+#endif //_CSCRIPT_H_
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/rtsecuritymanager_utility_api/rtsecmgrutility.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* 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 the License "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:       Security Manager utility header
+ *
+*/
+
+
+
+
+
+
+
+#ifndef _RTSECURITYMGRUTILITY_H_
+#define _RTSECURITYMGRUTILITY_H_
+
+#include <e32debug.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <rtsecmgrcommondef.h>
+#include <rtsecmgrpermission.h>
+#include <rtsecmgrpermissionset.h>
+
+#endif //_RTSECURITYMGRUTILITY_H_
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/telinformationpskeys.h	Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2007 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:  Telephony information Publish and Subscribe keys.
+*
+*/
+
+
+#ifndef TELINFORMATIONPSKEYS_H
+#define TELINFORMATIONPSKEYS_H
+
+#include <e32std.h>
+
+// CONSTANTS
+
+/*****************************************************************************
+* Telephony Information API UID
+*****************************************************************************/
+const TUid KPSUidTelInformation = {0x101F8789};
+
+/**
+* Identifier of Phone application.
+* @type RProperty::EInt
+*/
+const TUint32 KTelPhoneUid = 0x00000001; 
+
+/**
+* Operator information display data.
+* @see TTelTitleDisplay in TelephonyDomainPSTypes.h
+* @type RProperty::EByteArray
+*/
+
+const TUint32 KTelDisplayInfo =  0x00000002; 
+
+#endif      // TELINFORMATIONPSKEYS_H
+
+// End of file
--- a/idlefw/group/bld.inf	Fri Mar 19 13:46:28 2010 +0200
+++ b/idlefw/group/bld.inf	Thu Mar 25 09:33:14 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 
-#ifdef RD_CUSTOMIZABLE_AI
+// #ifdef RD_CUSTOMIZABLE_AI
 
 #include <platform_paths.hrh>
 
@@ -56,4 +56,4 @@
 // Plug-ins
 #include "../plugins/group/bld.inf"
 
-#endif // RD_CUSTOMIZABLE_AI
+// #endif // RD_CUSTOMIZABLE_AI