Revision: 201021
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 11 Jun 2010 13:45:18 +0300
changeset 42 d17dc5398051
parent 37 6e7b00453237
child 43 9ac6bb1ccd50
child 44 329d304c1aa1
child 52 92f864ef0288
Revision: 201021 Kit: 2010123
appinstall_info/appinstall_metadata/appinstall_metadata.mrp
appinstall_plat/sifui_api/bwins/sifuiu.def
appinstall_plat/sifui_api/eabi/sifuiu.def
appinstall_plat/sifui_api/group/sifui.mmp
appinstall_plat/sifui_api/inc/sifui.h
appinstall_plat/sifui_api/inc/sifuiappinfo.h
appinstall_plat/sifui_api/inc/sifuidefs.h
appinstall_plat/sifui_api/inc/sifuiprivate.h
appinstall_plat/sifui_api/src/sifui.cpp
appinstall_plat/sifui_api/src/sifuiappinfo.cpp
appinstall_plat/sifui_api/src/sifuiprivate.cpp
appinstall_plat/sifui_api/tsrc/conf/sifuitestscripter.cfg
appinstall_plat/sifui_api/tsrc/data/mmc/test_x509_cert.cer
appinstall_plat/sifui_api/tsrc/group/bld.inf
appinstall_plat/sifui_api/tsrc/group/ctc_compile_tests.bat
appinstall_plat/sifui_api/tsrc/group/ctc_instrument_code.bat
appinstall_plat/sifui_api/tsrc/group/ctc_process_results.bat
appinstall_plat/sifui_api/tsrc/group/ctc_remove_instrumentation.bat
appinstall_plat/sifui_api/tsrc/group/ctc_run_tests.bat
appinstall_plat/sifui_api/tsrc/group/sifuitest.mmp
appinstall_plat/sifui_api/tsrc/group/sifuitest.pkg
appinstall_plat/sifui_api/tsrc/group/sifuitest_nrm.mmp
appinstall_plat/sifui_api/tsrc/inc/sifuidummydetailsprovider.h
appinstall_plat/sifui_api/tsrc/inc/sifuitest.h
appinstall_plat/sifui_api/tsrc/inc/sifuitestcleanuputils.h
appinstall_plat/sifui_api/tsrc/init/sifuitest.ini
appinstall_plat/sifui_api/tsrc/init/sifuitestscripter.ini
appinstall_plat/sifui_api/tsrc/run_module_tests.bat
appinstall_plat/sifui_api/tsrc/src/sifuidummydetailsprovider.cpp
appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp
appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp
appinstaller/AppinstUi/Daemon/Inc/daemonbehaviour.h
appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp
appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp
appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp
appinstaller/AppinstUi/Daemon/Src/main.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h
appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin_resources.iby
appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificatedetails.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp
appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h
appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_compile_tests.bat
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_instrument_code.bat
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.cpp
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.h
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.pro
appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindimain.cpp
appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugin.pan
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicator.h
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicator.cpp
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/mt_startuplistupdater_nrm.mmp
iaupdate/IAD/api/client/src/iaupdateclient.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp
iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp
iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp
iaupdate/IAD/ui/iaupdate.pro
iaupdate/IAD/ui/inc/iaupdate.hrh
iaupdate/IAD/ui/inc/iaupdateagreement.h
iaupdate/IAD/ui/inc/iaupdateapplication.h
iaupdate/IAD/ui/inc/iaupdateautomaticcheck.h
iaupdate/IAD/ui/inc/iaupdatedialogobserver.h
iaupdate/IAD/ui/inc/iaupdatedialogutil.h
iaupdate/IAD/ui/inc/iaupdateengine.h
iaupdate/IAD/ui/inc/iaupdatehistoryview.h
iaupdate/IAD/ui/inc/iaupdatemainview.h
iaupdate/IAD/ui/inc/iaupdatemainwindow.h
iaupdate/IAD/ui/inc/iaupdateresultsdialog.h
iaupdate/IAD/ui/inc/iaupdatesettingdialog.h
iaupdate/IAD/ui/inc/iaupdateuicontroller.h
iaupdate/IAD/ui/inc/iaupdatewaitdialogobserver.h
iaupdate/IAD/ui/src/iaupdateagreement.cpp
iaupdate/IAD/ui/src/iaupdateapplication.cpp
iaupdate/IAD/ui/src/iaupdateautomaticcheck.cpp
iaupdate/IAD/ui/src/iaupdatedialogutil.cpp
iaupdate/IAD/ui/src/iaupdateengine.cpp
iaupdate/IAD/ui/src/iaupdatehistoryview.cpp
iaupdate/IAD/ui/src/iaupdatemainview.cpp
iaupdate/IAD/ui/src/iaupdatemainwindow.cpp
iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp
iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp
iaupdate/IAD/ui/src/iaupdateuicontroller.cpp
iaupdateapi_stub/conf/CI_iaupdate.confml
iaupdateapi_stub/conf/iaupdate.confml
iaupdateapi_stub/conf/iaupdate_2000F85A.crml
iaupdateapi_stub/group/bld.inf
installationservices/refsoftwareappmgr/group/security_referenceapplicationmanager.mrp
installationservices/refswinstallationplugin/group/security_sifrefplugin.mrp
installationservices/swcomponentregistry/bwins/scrclientu.def
installationservices/swcomponentregistry/eabi/scrclientu.def
installationservices/swcomponentregistry/group/bld.inf
installationservices/swcomponentregistry/group/security_softwarecomponentregistry.mrp
installationservices/swcomponentregistry/inc/scr.h
installationservices/swcomponentregistry/inc/screntries.h
installationservices/swcomponentregistry/inc/screntries_platform.h
installationservices/swcomponentregistry/inc_private/scrrequestimpl.h
installationservices/swcomponentregistry/source/client/appregentries.cpp
installationservices/swcomponentregistry/source/client/scrclient.cpp
installationservices/swcomponentregistry/source/client/scrclientsubsessions.cpp
installationservices/swcomponentregistry/source/client/screntries.cpp
installationservices/swcomponentregistry/source/server/scrrequestimpl.cpp
installationservices/swcomponentregistry/source/server/scrsession.cpp
installationservices/swcomponentregistry/test/testdb/scr.db
installationservices/swcomponentregistry/test/tscr/scripts/tscr.ini
installationservices/swcomponentregistry/test/tscr/scripts/tscr.script
installationservices/swcomponentregistry/test/tscr/scripts/tscr_api.script
installationservices/swcomponentregistry/test/tscr/scripts/tscr_performance.script
installationservices/swcomponentregistry/test/tscr/source/pluginmanagementsteps.cpp
installationservices/swcomponentregistry/test/tscr/source/subsessionsteps.cpp
installationservices/swcomponentregistry/test/tscr/source/transactionmanagementsteps.cpp
installationservices/swcomponentregistry/test/tscraccessor/inc/tscraccessor_client.h
installationservices/swcomponentregistry/test/tscraccessor/source/tscraccessor_server_session.cpp
installationservices/swcomponentregistry/test/tscrapparc/source/appreginfoapparcsteps.cpp
installationservices/swi/bwins/sislauncherclientU.DEF
installationservices/swi/bwins/sisregistryclient_v2U.def
installationservices/swi/bwins/swtypereginfou.def
installationservices/swi/eabi/sislauncherclientU.DEF
installationservices/swi/eabi/sisregistryclient_v2U.def
installationservices/swi/eabi/swtypereginfou.def
installationservices/swi/group/bld.inf
installationservices/swi/group/security_swi.mrp
installationservices/swi/group/sisregistryserver.mmp
installationservices/swi/group/swtypereginfo.mmp
installationservices/swi/inc/sislauncherclient.h
installationservices/swi/inc/sisregistrywritablesession.h
installationservices/swi/inc/swi.iby
installationservices/swi/inc/swi/swtypereginfo.h
installationservices/swi/inc/switextshell.iby
installationservices/swi/inc/tswi.iby
installationservices/swi/source/apprscparser/apprscparser.cpp
installationservices/swi/source/certstoretobin/Swicertstoretobin.pl
installationservices/swi/source/pkgremover/pkgremover.cpp
installationservices/swi/source/sisfile/swtypereginfo.cpp
installationservices/swi/source/sislauncher/client/sislauncherclient.cpp
installationservices/swi/source/sislauncher/server/sislauncherserver.cpp
installationservices/swi/source/sislauncher/server/sislaunchersession.cpp
installationservices/swi/source/sislauncher/server/swtypereginfoparser.cpp
installationservices/swi/source/sislauncher/server/swtypereginfoparser.h
installationservices/swi/source/sisregistry/client/sisregistryentry.cpp
installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp
installationservices/swi/source/sisregistry/common/sisregistryhelperclient.cpp
installationservices/swi/source/sisregistry/server/siscontrollerverifier.cpp
installationservices/swi/source/sisregistry/server/sisregistryserver.cpp
installationservices/swi/source/sisregistry/server/sisregistryserverconst.h
installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp
installationservices/swi/source/sisregistry/server/sisregistryserversession.h
installationservices/swi/source/sisregistry/server_legacy/sisregistrycache.cpp
installationservices/swi/source/swis/server/installationplanner.cpp
installationservices/swi/source/swis/server/installationprocessor.cpp
installationservices/swi/source/swis/server/installationprocessor.h
installationservices/swi/source/swis/server/installmachine.cpp
installationservices/swi/source/swis/server/installswtypehelper.cpp
installationservices/swi/source/swis/server/installswtypehelper.h
installationservices/swi/source/swis/server/planner.cpp
installationservices/swi/source/swis/server/restoreprocessor.h
installationservices/swi/source/swis/server/sidcache.cpp
installationservices/swi/source/swis/server/statemachine.cpp
installationservices/swi/test/swicaptests/registrycaptest.cpp
installationservices/swi/test/swicaptests/swilaunchercaptest.cpp
installationservices/swi/test/testexes/embed/cyclic_dependency_base.pkg
installationservices/swi/test/testexes/packages/cyclic_dependency_embedded.pkg
installationservices/swi/test/testexes/packages/swiappregintegration_multipleapp_performance.pkg
installationservices/swi/test/testexes/packages/swiappregintegration_twoapps_performance.pkg
installationservices/swi/test/testexes/packages/test_appreg_entries_armv5.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_05.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_06.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_07.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_08.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_09.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_10.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg
installationservices/swi/test/testexes/swtypereginfo_invalid1.xml
installationservices/swi/test/testexes/swtypereginfo_invalid2.xml
installationservices/swi/test/testexes/swtypereginfo_invalid3.xml
installationservices/swi/test/testexes/swtypereginfo_invalid4.xml
installationservices/swi/test/testexes/swtypereginfo_invalid5.xml
installationservices/swi/test/testexes/swtypereginfo_native_invalid1.xml
installationservices/swi/test/testexes/swtypereginfo_valid1.xml
installationservices/swi/test/testexes/swtypereginfo_valid1_invalidupgrade.xml
installationservices/swi/test/testexes/swtypereginfo_valid2.xml
installationservices/swi/test/testexes/swtypereginfo_valid3.xml
installationservices/swi/test/tsisregistrytest/sessionstep.cpp
installationservices/swi/test/tsisregistrytest_legacy/sessionstep.cpp
installationservices/swi/test/tuiscriptadaptors/scripts/nonusiftuiscriptadaptors.script
installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation.ini
installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation_arm.script
installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.ini
installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.script
installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.ini
installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.script
installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.cpp
installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.h
installationservices/swi/test/tuiscriptadaptors/tswisserver.cpp
installationservices/swi/test/tuiscriptadaptors/tswisstep.cpp
installationservices/swi/test/tuiscriptadaptors/tswisstep.h
installationservices/swiconfig/group/install_config.mrp
installationservices/swidevicetools/group/security_switools_device.mrp
installationservices/swinstallationfw/bwins/siftransportu.def
installationservices/swinstallationfw/bwins/sifu.def
installationservices/swinstallationfw/eabi/siftransportu.def
installationservices/swinstallationfw/eabi/sifu.def
installationservices/swinstallationfw/group/security_softwareinstallframework.mrp
installationservices/swinstallationfw/group/sif.mmp
installationservices/swinstallationfw/inc/sifcommon.h
installationservices/swinstallationfw/inc_private/sifcommon_internal.h
installationservices/swinstallationfw/source/sifcommon.cpp
installationservices/swinstallationfw/test/securitytests/source/scrpluginmanagement.cpp
installationservices/swinstallationfw/test/tusif/scripts/data/swtype.dtd
installationservices/swinstallationfw/test/tusif/scripts/data/swtypereginfo.xml
installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp
installationservices/switestfw/group/install_testframework.mrp
installationservices/switestfw/test/autotesting/runswiromtests_9.5.bat
installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat
installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt
installationservices/swtransactionservices/group/security_softwaretransactionservices.mrp
installationservices/swtransactionservices/inc_private/integrityservices.h
installationservices/swtransactionservices/inc_private/operationfunctions.h
installationservices/swtransactionservices/source/server/integrityservices.cpp
installationservices/swtransactionservices/source/server/operationfunctions.cpp
ncdengine/engine/accesspointmanager/src/catalogsaccesspointmanagerimpl.cpp
ncdengine/provider/deviceinteraction/inc/ncddeviceserviceimpl.h
ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp
ncdengine/provider/protocol/inc/ncdxmlheaders.h
package_definition_v2.xml
secureswitools/makekeys/group/security_makekeys.mrp
secureswitools/makekeys/src/MAKEKEYS.CPP
secureswitools/makekeys/src/openssllicense.h
secureswitools/swianalysistoolkit/group/security_switools.mrp
secureswitools/swisistools/group/bld.inf
secureswitools/swisistools/group/security_sistools.mrp
secureswitools/swisistools/source/dumpsis/options.cpp
secureswitools/swisistools/source/interpretsis/openssllicense.h
secureswitools/swisistools/source/interpretsislib/dbhelper.cpp
secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp
secureswitools/swisistools/source/interpretsislib/expressionevaluator.h
secureswitools/swisistools/source/interpretsislib/installer.cpp
secureswitools/swisistools/source/interpretsislib/installer.h
secureswitools/swisistools/source/interpretsislib/sisfile.cpp
secureswitools/swisistools/source/interpretsislib/sisfile.h
secureswitools/swisistools/source/makesis/makesis.cpp
secureswitools/swisistools/source/makesis/openssllicense.h
secureswitools/swisistools/source/rscparser/apsecutils.cpp
secureswitools/swisistools/source/rscparser/apsecutils.h
secureswitools/swisistools/source/scrtool/data/create_db.xml
secureswitools/swisistools/source/signsis/openssllicense.h
secureswitools/swisistools/source/signsis/parameter.cpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinFileOutputStream.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinMemOutputStream.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/CharTypeTables.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/DGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ElemStack.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/EndOfEntityException.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IANAEncodings.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerArrayImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ReaderMgr.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/SGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ValidationContextImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttrListImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttributesImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLInternalErrorHandler.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLReader.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScannerResolver.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSAXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSObjectFactory.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializable.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializationException.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializeEngine.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XTemplateSerializer.hpp
secureswitools/swisistools/test/tinterpretsisinteg/TestElseIfData/TestElseIf.pkg
secureswitools/swisistools/test/tinterpretsisinteg/TestElseIfData/file0
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39.bat
secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/interpretsism001a_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/makesism001a_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-01.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-02.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-03.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-05.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-06.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-07.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-08.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-09.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-10.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-11.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-12.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-13.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-14.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-15.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-16.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-17.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-18.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-19.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-20.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-21.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-22.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-23.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-24.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-25.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-26.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-27.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-28.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-29.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-30.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-31.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-32.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-33.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-34.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-35.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-36.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-37.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-38.script
secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-39.script
secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis_db.bat
secureswitools/swisistools/test/tinterpretsisinteg/testlistdb.xml
--- a/appinstall_info/appinstall_metadata/appinstall_metadata.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_info/appinstall_metadata/appinstall_metadata.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component           appinstall_metadata
 source   \sf\mw\appinstall\appinstall_info\appinstall_metadata 
 source   \sf\mw\appinstall\package_definition.xml
--- a/appinstall_plat/sifui_api/bwins/sifuiu.def	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/bwins/sifuiu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -5,25 +5,22 @@
 	?ShowCompleteL@CSifUi@@QAEXXZ @ 4 NONAME ; void CSifUi::ShowCompleteL(void)
 	?ExternalizeL@CSifUiAppInfo@@QBEXAAVRWriteStream@@@Z @ 5 NONAME ; void CSifUiAppInfo::ExternalizeL(class RWriteStream &) const
 	?ShowProgressL@CSifUi@@QAEXABVCSifUiAppInfo@@H@Z @ 6 NONAME ; void CSifUi::ShowProgressL(class CSifUiAppInfo const &, int)
-	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCCertificateInfo@Swi@@@@@Z @ 7 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class Swi::CCertificateInfo> const &)
-	?NewLC@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 8 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewLC(class Swi::CCertificateInfo &)
-	?Bitmaps@CSifUiAppInfo@@QBEPBVCApaMaskedBitmap@@XZ @ 9 NONAME ; class CApaMaskedBitmap const * CSifUiAppInfo::Bitmaps(void) const
-	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 10 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
-	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 11 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
-	?ExternalizeL@CSifUiCertificateInfo@@QBEXAAVRWriteStream@@@Z @ 12 NONAME ; void CSifUiCertificateInfo::ExternalizeL(class RWriteStream &) const
+	?NewLC@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 7 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewLC(class Swi::CCertificateInfo &)
+	?Bitmaps@CSifUiAppInfo@@QBEPBVCApaMaskedBitmap@@XZ @ 8 NONAME ; class CApaMaskedBitmap const * CSifUiAppInfo::Bitmaps(void) const
+	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 9 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
+	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 10 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
+	?ExternalizeL@CSifUiCertificateInfo@@QBEXAAVRWriteStream@@@Z @ 11 NONAME ; void CSifUiCertificateInfo::ExternalizeL(class RWriteStream &) const
+	?IsCancelled@CSifUi@@QAEHXZ @ 12 NONAME ; int CSifUi::IsCancelled(void)
 	?Name@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 13 NONAME ; class TDesC16 const & CSifUiAppInfo::Name(void) const
 	?NewL@CSifUi@@SAPAV1@XZ @ 14 NONAME ; class CSifUi * CSifUi::NewL(void)
-	?Version@CSifUiAppInfo@@QBEABVTVersion@@XZ @ 15 NONAME ; class TVersion const & CSifUiAppInfo::Version(void) const
-	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCSifUiCertificateInfo@@@@@Z @ 16 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class CSifUiCertificateInfo> const &)
-	?Size@CSifUiAppInfo@@QBEHXZ @ 17 NONAME ; int CSifUiAppInfo::Size(void) const
-	?ShowConfirmationL@CSifUi@@QAEHABVCAppInfo@Swi@@HPBVCApaMaskedBitmap@@@Z @ 18 NONAME ; int CSifUi::ShowConfirmationL(class Swi::CAppInfo const &, int, class CApaMaskedBitmap const *)
-	?NewLC@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 19 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewLC(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
-	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 20 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
+	?NewL@CSifUiAppInfo@@SAPAV1@ABV1@@Z @ 15 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewL(class CSifUiAppInfo const &)
+	?Version@CSifUiAppInfo@@QBEABVTVersion@@XZ @ 16 NONAME ; class TVersion const & CSifUiAppInfo::Version(void) const
+	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCSifUiCertificateInfo@@@@@Z @ 17 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class CSifUiCertificateInfo> const &)
+	?Size@CSifUiAppInfo@@QBEHXZ @ 18 NONAME ; int CSifUiAppInfo::Size(void) const
+	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 19 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
+	?NewLC@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 20 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewLC(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
 	?Vendor@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 21 NONAME ; class TDesC16 const & CSifUiAppInfo::Vendor(void) const
-	?Mode@CSifUi@@QAE?AW4TMode@1@XZ @ 22 NONAME ; enum CSifUi::TMode CSifUi::Mode(void)
-	?ShowFailedL@CSifUi@@QAEXH@Z @ 23 NONAME ; void CSifUi::ShowFailedL(int)
-	?SetMode@CSifUi@@QAEXW4TMode@1@@Z @ 24 NONAME ; void CSifUi::SetMode(enum CSifUi::TMode)
-	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 25 NONAME ; int CSifUi::SelectedDrive(int &)
-	?ShowProgressL@CSifUi@@QAEXABVCAppInfo@Swi@@HH@Z @ 26 NONAME ; void CSifUi::ShowProgressL(class Swi::CAppInfo const &, int, int)
-	?NewLC@CSifUi@@SAPAV1@XZ @ 27 NONAME ; class CSifUi * CSifUi::NewLC(void)
+	?SetButtonVisible@CSifUi@@QAEXW4TOptionalButton@1@H@Z @ 22 NONAME ; void CSifUi::SetButtonVisible(enum CSifUi::TOptionalButton, int)
+	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 23 NONAME ; int CSifUi::SelectedDrive(int &)
+	?NewLC@CSifUi@@SAPAV1@XZ @ 24 NONAME ; class CSifUi * CSifUi::NewLC(void)
 
--- a/appinstall_plat/sifui_api/eabi/sifuiu.def	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/eabi/sifuiu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,37 +1,34 @@
 EXPORTS
 	_ZN13CSifUiAppInfo4NewLERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 1 NONAME
-	_ZN13CSifUiAppInfo5NewLCERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 2 NONAME
-	_ZN21CSifUiCertificateInfo4NewLERN3Swi16CCertificateInfoE @ 3 NONAME
-	_ZN21CSifUiCertificateInfo5NewLCERN3Swi16CCertificateInfoE @ 4 NONAME
-	_ZN6CSifUi11ShowFailedLEi @ 5 NONAME
-	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 6 NONAME
-	_ZN6CSifUi13SelectedDriveERi @ 7 NONAME
-	_ZN6CSifUi13ShowCompleteLEv @ 8 NONAME
-	_ZN6CSifUi13ShowProgressLERK13CSifUiAppInfoi @ 9 NONAME
-	_ZN6CSifUi13ShowProgressLERKN3Swi8CAppInfoEii @ 10 NONAME
-	_ZN6CSifUi17ShowConfirmationLERK13CSifUiAppInfo @ 11 NONAME
-	_ZN6CSifUi17ShowConfirmationLERKN3Swi8CAppInfoEiPK16CApaMaskedBitmap @ 12 NONAME
+	_ZN13CSifUiAppInfo4NewLERKS_ @ 2 NONAME
+	_ZN13CSifUiAppInfo5NewLCERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 3 NONAME
+	_ZN21CSifUiCertificateInfo4NewLERN3Swi16CCertificateInfoE @ 4 NONAME
+	_ZN21CSifUiCertificateInfo5NewLCERN3Swi16CCertificateInfoE @ 5 NONAME
+	_ZN6CSifUi11IsCancelledEv @ 6 NONAME
+	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 7 NONAME
+	_ZN6CSifUi13SelectedDriveERi @ 8 NONAME
+	_ZN6CSifUi13ShowCompleteLEv @ 9 NONAME
+	_ZN6CSifUi13ShowProgressLERK13CSifUiAppInfoi @ 10 NONAME
+	_ZN6CSifUi16SetButtonVisibleENS_15TOptionalButtonEi @ 11 NONAME
+	_ZN6CSifUi17ShowConfirmationLERK13CSifUiAppInfo @ 12 NONAME
 	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayI21CSifUiCertificateInfoE @ 13 NONAME
-	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayIN3Swi16CCertificateInfoEE @ 14 NONAME
-	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 15 NONAME
-	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 16 NONAME
-	_ZN6CSifUi4ModeEv @ 17 NONAME
-	_ZN6CSifUi4NewLEv @ 18 NONAME
-	_ZN6CSifUi5NewLCEv @ 19 NONAME
-	_ZN6CSifUi7SetModeENS_5TModeE @ 20 NONAME
-	_ZNK13CSifUiAppInfo12ExternalizeLER12RWriteStream @ 21 NONAME
-	_ZNK13CSifUiAppInfo4NameEv @ 22 NONAME
-	_ZNK13CSifUiAppInfo4SizeEv @ 23 NONAME
-	_ZNK13CSifUiAppInfo6VendorEv @ 24 NONAME
-	_ZNK13CSifUiAppInfo7BitmapsEv @ 25 NONAME
-	_ZNK13CSifUiAppInfo7VersionEv @ 26 NONAME
-	_ZNK21CSifUiCertificateInfo12ExternalizeLER12RWriteStream @ 27 NONAME
-	_ZTI13CSifUiAppInfo @ 28 NONAME
-	_ZTI13CSifUiPrivate @ 29 NONAME
-	_ZTI21CSifUiCertificateInfo @ 30 NONAME
-	_ZTI6CSifUi @ 31 NONAME
-	_ZTV13CSifUiAppInfo @ 32 NONAME
-	_ZTV13CSifUiPrivate @ 33 NONAME
-	_ZTV21CSifUiCertificateInfo @ 34 NONAME
-	_ZTV6CSifUi @ 35 NONAME
+	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 14 NONAME
+	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 15 NONAME
+	_ZN6CSifUi4NewLEv @ 16 NONAME
+	_ZN6CSifUi5NewLCEv @ 17 NONAME
+	_ZNK13CSifUiAppInfo12ExternalizeLER12RWriteStream @ 18 NONAME
+	_ZNK13CSifUiAppInfo4NameEv @ 19 NONAME
+	_ZNK13CSifUiAppInfo4SizeEv @ 20 NONAME
+	_ZNK13CSifUiAppInfo6VendorEv @ 21 NONAME
+	_ZNK13CSifUiAppInfo7BitmapsEv @ 22 NONAME
+	_ZNK13CSifUiAppInfo7VersionEv @ 23 NONAME
+	_ZNK21CSifUiCertificateInfo12ExternalizeLER12RWriteStream @ 24 NONAME
+	_ZTI13CSifUiAppInfo @ 25 NONAME
+	_ZTI13CSifUiPrivate @ 26 NONAME
+	_ZTI21CSifUiCertificateInfo @ 27 NONAME
+	_ZTI6CSifUi @ 28 NONAME
+	_ZTV13CSifUiAppInfo @ 29 NONAME
+	_ZTV13CSifUiPrivate @ 30 NONAME
+	_ZTV21CSifUiCertificateInfo @ 31 NONAME
+	_ZTV6CSifUi @ 32 NONAME
 
--- a/appinstall_plat/sifui_api/group/sifui.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/group/sifui.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -38,9 +38,12 @@
 
 LIBRARY         euser.lib       // User
 LIBRARY         HbCore.lib      // CHbDeviceDialog
+LIBRARY         HbWidgets.lib   // CHbDeviceNotificationDialogSymbian 
 LIBRARY         apgrfx.lib      // CApaMaskedBitmap
 LIBRARY         fbscli.lib      // CFbsBitmap
 LIBRARY         bafl.lib        // CDesC16ArrayFlat
 LIBRARY         efsrv.lib       // RFs
 LIBRARY         estor.lib       // RBufWriteStream
 
+SMPSAFE
+
--- a/appinstall_plat/sifui_api/inc/sifui.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifui.h	Fri Jun 11 13:45:18 2010 +0300
@@ -64,7 +64,7 @@
         /**
          * Destructor.
          */
-        CSifUi::~CSifUi();
+        ~CSifUi();
 
     public:     // new functions
         /**
@@ -119,12 +119,40 @@
          * Updates the progress bar value displayed in progress note. Initially progress bar
          * shows 0%. Each aIncrement increases the value displayed in progress bar. When all
          * increments reach the final value defined in ShowProgressNoteL() method, then the
-         * progress bar shows full 100%.
+         * progress bar shows full 100%. Caller should check using IsCancelled() method if
+         * the user has cancelled the progress note before updating the progress bar value.
          * @param aIncrement - progress bar value increment
          */
         IMPORT_C void IncreaseProgressBarValueL( TInt aIncrement );
 
         /**
+         * Returns ETrue if the user has cancelled the progress dialog.
+         * @return TBool - ETrue if the progress dialog has been cancelled
+         */
+        IMPORT_C TBool IsCancelled();
+
+        /**
+         * Toolbar buttons in progress and complete notes that can be disabled/hidden.
+         */
+        enum TOptionalButton
+            {
+            EHideProgressButton,
+            ECancelProgressButton,
+            EShowInAppLibButton,
+            EErrorDetailsButton
+            };
+
+        /**
+         * Hides or shows optional toolbar buttons from installation progress note
+         * or installation complete note. All optional buttos are visible by default.
+         * Buttons visibility becomes effective in the next ShowProgressL(),
+         * ShowCompleteL(), or IncreseProgressBarValueL() method calls.
+         * @param aButton - button which visibility is changed
+         * @param aIsVisible - EFalse if button needs to be hidden
+         */
+        IMPORT_C void SetButtonVisible( TOptionalButton aButton, TBool aIsVisible );
+
+        /**
          * Displays main installation complete note. Installation complete note contains
          * button to launch the application libaray to show the recently installed apps.
          */
@@ -140,24 +168,6 @@
         IMPORT_C void ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
             const TDesC& aErrorDetails = KNullDesC );
 
-
-
-        /** DEPRECATED -- DO NOT USE -- WILL BE REMOVED */
-        enum TMode {
-            EUnspecified = 0,
-            EInstalling = 1,
-            EUninstalling = 2
-        };
-        IMPORT_C void SetMode( TMode aMode );
-        IMPORT_C TMode Mode();
-        IMPORT_C void ShowFailedL( TInt aErrorCode );
-        IMPORT_C void SetCertificateInfoL(
-                const RPointerArray<Swi::CCertificateInfo>& aCertificates );
-        IMPORT_C TBool ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
-                TInt aAppSize = 0, const CApaMaskedBitmap* aAppIcon = NULL );
-        IMPORT_C void ShowProgressL( const Swi::CAppInfo& aAppInfo,
-                 TInt aAppSize, TInt aProgressBarFinalValue );
-
     private:    // new functions
         CSifUi();
         void ConstructL();
--- a/appinstall_plat/sifui_api/inc/sifuiappinfo.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuiappinfo.h	Fri Jun 11 13:45:18 2010 +0300
@@ -63,6 +63,13 @@
                 const CApaMaskedBitmap* aAppIcon );
 
         /**
+         * Creates new CSifUiAppInfo object by copying existing object.
+         * @param aAppInfo - application info to copy
+         * @returns CSifUiAppInfo* -- new CSifUiAppInfo object
+         */
+        IMPORT_C static CSifUiAppInfo* NewL( const CSifUiAppInfo& aAppInfo );
+
+        /**
          * Destructor.
          */
         ~CSifUiAppInfo();
@@ -110,6 +117,7 @@
         void ConstructL( const TDesC& aAppName, const TDesC& aAppVendor,
                 const TVersion& aAppVersion, TInt aAppSize,
                 const CApaMaskedBitmap* aAppIcon );
+        void ConstructL( const CSifUiAppInfo& aAppInfo );
 
     private:    // data
         HBufC* iAppName;
--- a/appinstall_plat/sifui_api/inc/sifuidefs.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuidefs.h	Fri Jun 11 13:45:18 2010 +0300
@@ -20,11 +20,11 @@
 
 // SifUi plugin literal and variant map key names defined as _LIT macros.
 // Note that _LIT macros defined in this file must match to the definitions
-// in sifuidevicedialogdefinitions.h file. This header is used in Symbian
-// code since Symbian code requires 16-bit descriptors, and definitions in
-// Qt side (in sifuidevicedialogdefinitions.h) are 8-bit wide.
+// in sifuidevicedialogdefinitions.h and sifuiinstallindicatorparams.h files.
+// Symbian code needs descriptor constants, as Qt code uses QString constants.
 
 _LIT( KSifUiDeviceDialog, "com.nokia.sifui/1.0" );
+_LIT( KSifUiInstallIndicatorType, "com.nokia.sifui.indi/1.0" );
 
 enum TSifUiDeviceDialogType
     {
@@ -34,11 +34,18 @@
     ESifUiErrorNote = 4
     };
 
+enum TSifUiDeviceDialogReturnValue
+    {
+    ESifUiContinue = 0,
+    ESifUiCancel = 1,
+    ESifUiIndicator = 3
+    };
+
 // Variant map keys for dialog type and title (common to all dialog types)
 _LIT( KSifUiDialogType, "type" );                   // enum TSifUiDeviceDialogType
 
 // Variant map keys for device dialog return values
-_LIT( KSifUiQueryAccepted, "accept" );              // boolean
+_LIT( KSifUiQueryReturnValue, "ret" );              // enum TSifUiDeviceDialogReturnValue
 _LIT( KSifUiSelectedMemory, "drv" );                // drive letter
 
 // Variant map keys for "confirmation query" dialog parameters
@@ -56,6 +63,12 @@
 _LIT( KSifUiProgressNoteFinalValue, "fin" );        // integer
 _LIT( KSifUiProgressNoteValue, "val" );             // integer
 
+// Variant map keys for "progress note" and "installation complete note" buttons
+_LIT( KSifUiProgressNoteIsHideButtonHidden, "hidebtn" );        // boolean
+_LIT( KSifUiProgressNoteIsCancelButtonHidden, "cancelbtn" );    // boolean
+_LIT( KSifUiCompleteNoteIsShowButtonHidden, "showbtn" );        // boolean
+_LIT( KSifUiErrorNoteIsDetailsButtonHidden, "errdtlbtn" );      // boolean
+
 // Variant map keys for "error" dialog parameters
 _LIT( KSifUiErrorCode, "err" );                     // integer
 _LIT( KSifUiErrorMessage, "msg" );                  // string
--- a/appinstall_plat/sifui_api/inc/sifuiprivate.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuiprivate.h	Fri Jun 11 13:45:18 2010 +0300
@@ -20,15 +20,14 @@
 
 #include <e32base.h>                            // CActive
 #include <hb/hbcore/hbdevicedialogsymbian.h>    // MHbDeviceDialogObserver
+#include <hb/hbcore/hbindicatorsymbian.h>       // MHbIndicatorSymbianObserver
 #include <bamdesca.h>                           // MDesCArray
+#include <sifui.h>                              // CSifUi::TOptionalButtons
+#include <sifuidefs.h>                          // TSifUiDeviceDialogType
 
-class CHbDeviceDialog;
 class CHbSymbianVariantMap;
 class CHbSymbianVariant;
 class CActiveSchedulerWait;
-class CApaMaskedBitmap;
-class CSifUiCertificateInfo;
-class CSifUiAppInfo;
 
 namespace Swi {
     class CAppInfo;
@@ -39,11 +38,12 @@
  * Private part of the SIF UI API.
  * Only CSifUi class should use CSifUiPrivate class.
  */
-class CSifUiPrivate : public CActive, public MHbDeviceDialogObserver
+class CSifUiPrivate : public CActive, public MHbDeviceDialogObserver,
+        public MHbIndicatorSymbianObserver
     {
     public:     // constructor and destructor
         static CSifUiPrivate* NewL();
-        CSifUiPrivate::~CSifUiPrivate();
+        ~CSifUiPrivate();
 
     public:     // new functions
         TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
@@ -52,6 +52,8 @@
         void SetCertificateInfoL( const RPointerArray<CSifUiCertificateInfo>& aCertificates );
         void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue );
         void IncreaseProgressBarValueL( TInt aIncrement );
+        TBool IsCancelled();
+        void SetButtonVisible( CSifUi::TOptionalButton aButton, TBool aIsVisible );
         void ShowCompleteL();
         void ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
                 const TDesC& aErrorDetails );
@@ -64,6 +66,9 @@
         void DataReceived( CHbSymbianVariantMap& aData );
         void DeviceDialogClosed( TInt aCompletionCode );
 
+    private:    // from MHbIndicatorSymbianObserver
+        void IndicatorUserActivated( const TDesC& aType, CHbSymbianVariantMap& aData );
+
     private:    // new functions
         CSifUiPrivate();
         void ConstructL();
@@ -74,23 +79,42 @@
         void AddParamL( const TDesC& aKey, const TDesC& aValue );
         void AddParamListL( const TDesC& aKey, const MDesCArray& aList );
         void AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo );
-        void AddParamsIconL( const CApaMaskedBitmap* aIcon );
+        void AddParamsCertificatesL();
+        void AddParamsHiddenButtonsL();
+        void ResendAllInstallationDetailsL();
+        void ActivateInstallIndicatorL();
+        void UpdateInstallIndicatorProgressL();
+        void CloseInstallIndicator();
+        TBool IsIndicatorActive();
+        void ShowInstallIndicatorCompleteL( TInt aErrorCode );
+        void UpdateDialogAndWaitForResponseL();
+        void UpdateDialogOrIndicatorWithoutWaitingL();
+        void CompleteDialogOrIndicatorAndWaitForResponseL( TInt aErrorCode );
         void DisplayDeviceDialogL();
-        TInt WaitForResponse();
-        void ResponseReceived( TInt aCompletionCode );
+        void WaitForResponseL();
+        void WaitedResponseReceived( TInt aCompletionCode );
 
     private:    // data
         CHbDeviceDialogSymbian* iDeviceDialog;
+        CHbIndicatorSymbian* iIndicator;
         CHbSymbianVariantMap* iVariantMap;
         CActiveSchedulerWait* iWait;
         TBool iIsDisplayingDialog;
-        TInt iCompletionCode;
-        TInt iReturnValue;
-        CApaMaskedBitmap* iBitmap;
+        TBool iIsFirstTimeToDisplay;
+        TInt iWaitCompletionCode;
+        TInt iDialogReturnValue;
+        TSifUiDeviceDialogType iDialogType;
+        CSifUiAppInfo* iAppInfo;
+        CBufBase* iCertificateBuffer;
         HBufC* iSelectableDrives;
         TBool iSelectedDriveSet;
         TChar iSelectedDrive;
-        CHbSymbianVariant* iCertificateInfo;
+        TInt iProgressBarFinalValue;
+        TInt iProgressBarCurrentValue;
+        TBool iNoHideProgressButton;
+        TBool iNoCancelProgressButton;
+        TBool iNoShowInAppLibButton;
+        TBool iNoErrorDetailsButton;
     };
 
 
--- a/appinstall_plat/sifui_api/src/sifui.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifui.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -18,10 +18,6 @@
 #include "sifui.h"                              // CSifUi
 #include "sifuiprivate.h"                       // CSifUiPrivate
 
-// TODO: remove
-#include <swi/msisuihandlers.h>                 // Swi::CAppInfo
-#include "sifuiappinfo.h"                       // CSifUiAppInfo
-
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -114,6 +110,24 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUi::IsCancelled()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CSifUi::IsCancelled()
+    {
+    return iPrivate->IsCancelled();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::SetButtonVisible()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CSifUi::SetButtonVisible( TOptionalButton aButton, TBool aIsVisible )
+    {
+    iPrivate->SetButtonVisible( aButton, aIsVisible );
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUi::ShowCompleteL()
 // ---------------------------------------------------------------------------
 //
@@ -151,47 +165,3 @@
 
 
 
-
-// DEPRECATED FUNCTIONS -- TO BE REMOVED
-
-EXPORT_C void CSifUi::SetMode( TMode /*aMode*/ )
-    {
-    User::Invariant();
-    }
-
-EXPORT_C CSifUi::TMode CSifUi::Mode()
-    {
-    User::Invariant();
-    return EUnspecified;
-    }
-
-EXPORT_C void CSifUi::ShowFailedL( TInt /*aErrorCode*/ )
-    {
-    User::Invariant();
-    }
-
-EXPORT_C void CSifUi::SetCertificateInfoL(
-        const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
-    {
-    User::Invariant();
-    }
-
-EXPORT_C TBool CSifUi::ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
-    TInt aAppSize, const CApaMaskedBitmap* aAppIcon )
-    {
-    CSifUiAppInfo* appInfo = CSifUiAppInfo::NewLC( aAppInfo.AppName(),
-            aAppInfo.AppVendor(), aAppInfo.AppVersion(), aAppSize, aAppIcon );
-    TBool retVal = iPrivate->ShowConfirmationL( *appInfo );
-    CleanupStack::PopAndDestroy( appInfo );
-    return retVal;
-    }
-
-EXPORT_C void CSifUi::ShowProgressL( const Swi::CAppInfo& aAppInfo,
-        TInt aAppSize, TInt aProgressBarFinalValue )
-    {
-    CSifUiAppInfo* appInfo = CSifUiAppInfo::NewLC( aAppInfo.AppName(),
-            aAppInfo.AppVendor(), aAppInfo.AppVersion(), aAppSize, NULL );
-    iPrivate->ShowProgressL( *appInfo, aProgressBarFinalValue );
-    CleanupStack::PopAndDestroy( appInfo );
-    }
-
--- a/appinstall_plat/sifui_api/src/sifuiappinfo.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifuiappinfo.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -32,7 +32,7 @@
     aStream.WriteL( buffer );
     }
 
-void WriteBitmapsToStreamL( RWriteStream& /*aStream*/, const CApaMaskedBitmap& /*aIcon*/ )
+void WriteBitmapsToStreamL( RWriteStream& /*aStream*/, const CApaMaskedBitmap* /*aIcon*/ )
     {
     // TODO: implement
     }
@@ -69,6 +69,19 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUiAppInfo::NewL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiAppInfo* CSifUiAppInfo::NewL( const CSifUiAppInfo& aAppInfo )
+    {
+    CSifUiAppInfo* self = new ( ELeave ) CSifUiAppInfo;
+    CleanupStack::PushL( self );
+    self->ConstructL( aAppInfo );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUiAppInfo::~CSifUiAppInfo()
 // ---------------------------------------------------------------------------
 //
@@ -142,10 +155,7 @@
     WriteBufToStreamL( aStream, *iAppVendor );
     WriteVersionToStreamL( aStream, iAppVersion );
     aStream.WriteInt32L( iAppSize );
-    if( iAppIcon )
-        {
-        WriteBitmapsToStreamL( aStream, *iAppIcon );
-        }
+    WriteBitmapsToStreamL( aStream, iAppIcon );
     }
 
 // ---------------------------------------------------------------------------
@@ -173,3 +183,19 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiAppInfo::ConstructL( const CSifUiAppInfo& aAppInfo )
+    {
+    iAppName = aAppInfo.Name().AllocL();
+    iAppVendor = aAppInfo.Vendor().AllocL();
+    iAppVersion = aAppInfo.iAppVersion;
+    iAppSize = aAppInfo.iAppSize;
+    if( aAppInfo.iAppIcon )
+        {
+        iAppIcon = CApaMaskedBitmap::NewL( aAppInfo.iAppIcon );
+        }
+    }
+
--- a/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -16,15 +16,22 @@
 */
 
 #include "sifuiprivate.h"                       // CSifUiPrivate
-#include "sifuidefs.h"                          // SIF UI device dialog parameters
 #include "sifuicertificateinfo.h"               // CSifUiCertificateInfo
 #include "sifuiappinfo.h"                       // CSifUiAppInfo
 #include <hb/hbcore/hbsymbianvariant.h>         // CHbSymbianVariantMap
+#include <hb/hbwidgets/hbdevicenotificationdialogsymbian.h> // CHbDeviceNotificationDialogSymbian
 #include <apgicnfl.h>                           // CApaMaskedBitmap
 #include <s32mem.h>                             // RDesReadStream
+#include <e32property.h>                        // RProperty
 
 const TInt KDriveLettersLen = 32;
 const TInt KCertificateBufferGranularity = 1024;
+const TInt KProgFull = 100;                     // 100%
+
+const TUid KInstallIndicatorCategory = { 0x20022FC5 };
+const TUint KInstallIndicatorStatus = 0x2002E690;
+
+_LIT( KSifUiDefaultApplicationIcon, "qtg_large_application" );
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -52,9 +59,10 @@
     delete iWait;
     delete iDeviceDialog;
     delete iVariantMap;
-    delete iBitmap;
+    delete iIndicator;
+    delete iAppInfo;
     delete iSelectableDrives;
-    delete iCertificateInfo;
+    delete iCertificateBuffer;
     }
 
 // ---------------------------------------------------------------------------
@@ -70,15 +78,10 @@
         {
         AddParamL( KSifUiMemorySelection, *iSelectableDrives );
         }
-    if( iCertificateInfo )
-        {
-        User::LeaveIfError( VariantMapL()->Add( KSifUiCertificates, iCertificateInfo ) );
-        iCertificateInfo = NULL;
-        }
+    AddParamsCertificatesL();
 
-    DisplayDeviceDialogL();
-    User::LeaveIfError( WaitForResponse() );
-    return( iReturnValue == KErrNone );
+    UpdateDialogAndWaitForResponseL();
+    return( iDialogReturnValue == KErrNone );
     }
 
 // ---------------------------------------------------------------------------
@@ -132,16 +135,15 @@
 void CSifUiPrivate::SetCertificateInfoL(
         const RPointerArray<CSifUiCertificateInfo>& aCertificates )
     {
-    if( iCertificateInfo )
+    if( iCertificateBuffer )
         {
-        delete iCertificateInfo;
-        iCertificateInfo = NULL;
+        delete iCertificateBuffer;
+        iCertificateBuffer = NULL;
         }
     if( aCertificates.Count() )
         {
-        CBufBase* buf = CBufFlat::NewL( KCertificateBufferGranularity );
-        CleanupStack::PushL( buf );
-        RBufWriteStream writeStream( *buf );
+        iCertificateBuffer = CBufFlat::NewL( KCertificateBufferGranularity );
+        RBufWriteStream writeStream( *iCertificateBuffer );
         CleanupClosePushL( writeStream );
 
         TInt32 count = aCertificates.Count();
@@ -151,10 +153,7 @@
            aCertificates[ index ]->ExternalizeL( writeStream );
            }
 
-        const TPtrC8 dataPtr( buf->Ptr( 0 ).Ptr(), buf->Size() );
-        iCertificateInfo = CHbSymbianVariant::NewL( &dataPtr, CHbSymbianVariant::EBinary );
-
-        CleanupStack::PopAndDestroy( 2, buf );  // writeStream, buf
+        CleanupStack::PopAndDestroy( &writeStream );
         }
     }
 
@@ -169,8 +168,10 @@
 
     AddParamsAppInfoL( aAppInfo );
     AddParamL( KSifUiProgressNoteFinalValue, aProgressBarFinalValue );
+    iProgressBarFinalValue = aProgressBarFinalValue;
+    AddParamsHiddenButtonsL();
 
-    DisplayDeviceDialogL();
+    UpdateDialogOrIndicatorWithoutWaitingL();
     }
 
 // ---------------------------------------------------------------------------
@@ -182,8 +183,44 @@
     ChangeNoteTypeL( ESifUiProgressNote );
 
     AddParamL( KSifUiProgressNoteValue, aNewValue );
+    iProgressBarCurrentValue += aNewValue;
+    AddParamsHiddenButtonsL();
 
-    DisplayDeviceDialogL();
+    UpdateDialogOrIndicatorWithoutWaitingL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::IsCancelled()
+// ---------------------------------------------------------------------------
+//
+TBool CSifUiPrivate::IsCancelled()
+    {
+    return( iDialogReturnValue == KErrCancel );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::SetButtonVisible()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::SetButtonVisible( CSifUi::TOptionalButton aButton, TBool aIsVisible )
+    {
+    switch( aButton )
+        {
+        case CSifUi::EHideProgressButton:
+            iNoHideProgressButton = !aIsVisible;
+            break;
+        case CSifUi::ECancelProgressButton:
+            iNoCancelProgressButton = !aIsVisible;
+            break;
+        case CSifUi::EShowInAppLibButton:
+            iNoShowInAppLibButton = !aIsVisible;
+            break;
+        case CSifUi::EErrorDetailsButton:
+            iNoErrorDetailsButton = !aIsVisible;
+            break;
+        default:
+            break;
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -194,8 +231,9 @@
     {
     ChangeNoteTypeL( ESifUiCompleteNote );
 
-    DisplayDeviceDialogL();
-    User::LeaveIfError( WaitForResponse() );
+    AddParamsHiddenButtonsL();
+
+    CompleteDialogOrIndicatorAndWaitForResponseL( KErrNone );
     }
 
 // ---------------------------------------------------------------------------
@@ -214,8 +252,7 @@
         AddParamL( KSifUiErrorDetails, aErrorDetails );
         }
 
-    DisplayDeviceDialogL();
-    User::LeaveIfError( WaitForResponse() );
+    CompleteDialogOrIndicatorAndWaitForResponseL( aErrorCode );
     }
 
 // ---------------------------------------------------------------------------
@@ -226,7 +263,7 @@
     {
     if( iWait && iWait->IsStarted() && iWait->CanStopNow() )
         {
-        iCompletionCode = KErrCancel;
+        iWaitCompletionCode = KErrCancel;
         iWait->AsyncStop();
         }
     }
@@ -256,19 +293,36 @@
         iSelectedDriveSet = ETrue;
         }
 
-    const CHbSymbianVariant* acceptedVariant = aData.Get( KSifUiQueryAccepted );
-    if( acceptedVariant )
+    const CHbSymbianVariant* variant = aData.Get( KSifUiQueryReturnValue );
+    if( variant )
         {
-        TBool* acceptedValue = acceptedVariant->Value<TBool>();
-        if( acceptedValue && *acceptedValue )
+        TInt* value = variant->Value<TInt>();
+        if( value )
             {
-            iReturnValue = KErrNone;
+            TSifUiDeviceDialogReturnValue returnValue =
+                    static_cast<TSifUiDeviceDialogReturnValue>( *value );
+            switch( returnValue )
+                {
+                case ESifUiContinue:
+                    iDialogReturnValue = KErrNone;
+                    WaitedResponseReceived( KErrNone );
+                    break;
+                case ESifUiCancel:
+                    iDialogReturnValue = KErrCancel;
+                    WaitedResponseReceived( KErrNone );
+                    break;
+                case ESifUiIndicator:
+                    ActivateInstallIndicatorL();
+                    break;
+                default:
+                    __ASSERT_DEBUG( EFalse, User::Invariant() );
+                    break;
+                }
             }
         else
             {
-            iReturnValue = KErrCancel;
+            __ASSERT_DEBUG( EFalse, User::Invariant() );
             }
-        ResponseReceived( KErrNone );
         }
     }
 
@@ -279,14 +333,29 @@
 void CSifUiPrivate::DeviceDialogClosed( TInt aCompletionCode )
     {
     iIsDisplayingDialog = EFalse;
-    ResponseReceived( aCompletionCode );
+    WaitedResponseReceived( aCompletionCode );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::IndicatorUserActivated()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::IndicatorUserActivated( const TDesC& aType,
+        CHbSymbianVariantMap& /*aData*/ )
+    {
+    if( aType == KSifUiInstallIndicatorType )
+        {
+        CloseInstallIndicator();
+        TRAP_IGNORE( DisplayDeviceDialogL() );
+        }
     }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::CSifUiPrivate()
 // ---------------------------------------------------------------------------
 //
-CSifUiPrivate::CSifUiPrivate() : CActive( CActive::EPriorityStandard )
+CSifUiPrivate::CSifUiPrivate() : CActive( CActive::EPriorityStandard ),
+        iIsFirstTimeToDisplay( ETrue )
     {
     CActiveScheduler::Add( this );
     }
@@ -298,7 +367,8 @@
 void CSifUiPrivate::ConstructL()
     {
     iWait = new( ELeave ) CActiveSchedulerWait;
-    // iDeviceDialog is allocated later, first call of DisplayDeviceDialogL()
+    // iDeviceDialog is created later, in the first call of DisplayDeviceDialogL()
+    // iIndicator is also created later, in the first call of ActivateInstallIndicator()
     }
 
 // ---------------------------------------------------------------------------
@@ -335,6 +405,7 @@
     {
     ClearParams();
     AddParamL( KSifUiDialogType, aType );
+    iDialogType = static_cast< TSifUiDeviceDialogType >( aType );
     }
 
 // ---------------------------------------------------------------------------
@@ -376,7 +447,6 @@
 //
 void CSifUiPrivate::AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo )
     {
-    // TODO: icons missing, could use binary transfer as in certificates
     AddParamL( KSifUiApplicationName, aAppInfo.Name() );
     const TVersion& version( aAppInfo.Version() );
     if( version.iBuild || version.iMajor || version.iMinor )
@@ -391,32 +461,238 @@
         {
         AddParamL( KSifUiApplicationSize, aAppInfo.Size() );
         }
+    // TODO: icons missing, could use binary transfer as in certificates
+
+    if( iAppInfo != &aAppInfo )
+        {
+        if( iAppInfo )
+            {
+            delete iAppInfo;
+            iAppInfo = NULL;
+            }
+        iAppInfo = CSifUiAppInfo::NewL( aAppInfo );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::AddParamsCertificatesL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::AddParamsCertificatesL()
+    {
+    if( iCertificateBuffer )
+        {
+        const TPtrC8 dataPtr( iCertificateBuffer->Ptr( 0 ).Ptr(),
+                iCertificateBuffer->Size() );
+        CHbSymbianVariant* certificates = CHbSymbianVariant::NewL( &dataPtr,
+                CHbSymbianVariant::EBinary );
+        CleanupStack::PushL( certificates );
+        User::LeaveIfError( VariantMapL()->Add( KSifUiCertificates, certificates ) );
+        CleanupStack::Pop( certificates );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::AddParamsHiddenButtonsL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::AddParamsHiddenButtonsL()
+    {
+    CHbSymbianVariant* variant = NULL;
+    if( iNoHideProgressButton )
+        {
+        variant = CHbSymbianVariant::NewL( &iNoHideProgressButton, CHbSymbianVariant::EBool );
+        TInt err = VariantMapL()->Add( KSifUiProgressNoteIsHideButtonHidden, variant );
+        User::LeaveIfError( err );
+        }
+    if( iNoCancelProgressButton )
+        {
+        variant = CHbSymbianVariant::NewL( &iNoCancelProgressButton, CHbSymbianVariant::EBool );
+        TInt err = VariantMapL()->Add( KSifUiProgressNoteIsCancelButtonHidden, variant );
+        User::LeaveIfError( err );
+        }
+    if( iNoShowInAppLibButton )
+        {
+        variant = CHbSymbianVariant::NewL( &iNoShowInAppLibButton, CHbSymbianVariant::EBool );
+        TInt err = VariantMapL()->Add( KSifUiCompleteNoteIsShowButtonHidden, variant );
+        User::LeaveIfError( err );
+        }
+    if( iNoErrorDetailsButton )
+        {
+        variant = CHbSymbianVariant::NewL( &iNoErrorDetailsButton, CHbSymbianVariant::EBool );
+        TInt err = VariantMapL()->Add( KSifUiErrorNoteIsDetailsButtonHidden, variant );
+        User::LeaveIfError( err );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::ResendAllInstallationDetailsL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::ResendAllInstallationDetailsL()
+    {
+    AddParamL( KSifUiDialogType, iDialogType );
+    if( iAppInfo )
+        {
+        AddParamsAppInfoL( *iAppInfo );
+        }
+    AddParamsCertificatesL();
+    // TODO: AddParamsIconL();
+    AddParamsHiddenButtonsL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::ActivateInstallIndicatorL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::ActivateInstallIndicatorL()
+    {
+    if( !iIndicator )
+        {
+        iIndicator = CHbIndicatorSymbian::NewL();
+        iIndicator->SetObserver( this );
+        }
+
+    if( iAppInfo && iAppInfo->Name().Length() )
+        {
+        CHbSymbianVariant* param = NULL;
+        TPtrC appName = iAppInfo->Name();
+        param = CHbSymbianVariant::NewL( &appName, CHbSymbianVariant::EDes );
+        CleanupStack::PushL( param );
+        iIndicator->Activate( KSifUiInstallIndicatorType, param );
+        CleanupStack::PopAndDestroy( param );
+        }
+    else
+        {
+        iIndicator->Activate( KSifUiInstallIndicatorType );
+        }
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::AddParamsIconL()
+// CSifUiPrivate::UpdateInstallIndicatorProgressL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::UpdateInstallIndicatorProgressL()
+    {
+    if( iProgressBarFinalValue )
+        {
+        CHbSymbianVariant* param = NULL;
+        TInt progressPercent = KProgFull * iProgressBarCurrentValue / iProgressBarFinalValue;
+        param = CHbSymbianVariant::NewL( &progressPercent, CHbSymbianVariant::EInt );
+        CleanupStack::PushL( param );
+        iIndicator->Activate( KSifUiInstallIndicatorType, param );
+        CleanupStack::PopAndDestroy( param );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::CloseInstallIndicator()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::CloseInstallIndicator()
+    {
+    if( iIndicator )
+        {
+        iIndicator->Deactivate( KSifUiInstallIndicatorType );
+        delete iIndicator;
+        iIndicator = NULL;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::IsIndicatorActive()
+// ---------------------------------------------------------------------------
+//
+TBool CSifUiPrivate::IsIndicatorActive()
+    {
+    TBool isActive = EFalse;
+
+    if( iIndicator )
+        {
+        TInt value = 0;
+        TInt err = RProperty::Get( KInstallIndicatorCategory, KInstallIndicatorStatus,
+            value );
+        if( !err )
+            {
+            isActive = ( value > 0 );
+            }
+        }
+
+    return isActive;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowInstallIndicatorCompleteL()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::AddParamsIconL( const CApaMaskedBitmap* aIcon )
+void CSifUiPrivate::ShowInstallIndicatorCompleteL( TInt aErrorCode )
     {
-    // TODO: remove this function
-    if( aIcon )
+    CHbDeviceNotificationDialogSymbian* completeNote =
+            CHbDeviceNotificationDialogSymbian::NewL();
+    CleanupStack::PushL( completeNote );
+    completeNote->SetIconNameL( KSifUiDefaultApplicationIcon );
+    if( aErrorCode == KErrNone )
+        {
+        // TODO: use HbTextResolverSymbian to get localized text
+        _LIT( KInstalled, "Installed" );
+        completeNote->SetTitleL( KInstalled );
+        }
+    else
         {
-        if( iBitmap )
+        // TODO: use HbTextResolverSymbian to get localized text
+        _LIT( KInstallationFailed, "Installation failed" );
+        completeNote->SetTitleL( KInstallationFailed );
+        }
+    completeNote->ShowL();
+    CleanupStack::PopAndDestroy( completeNote );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::UpdateDialogAndWaitForResponseL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::UpdateDialogAndWaitForResponseL()
+    {
+    CloseInstallIndicator();
+    DisplayDeviceDialogL();
+    WaitForResponseL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::UpdateDialogOrIndicatorWithoutWaitingL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::UpdateDialogOrIndicatorWithoutWaitingL()
+    {
+    if( IsIndicatorActive() )
+        {
+        UpdateInstallIndicatorProgressL();
+        }
+    else
+        {
+        DisplayDeviceDialogL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::CompleteDialogOrIndicatorAndWaitForResponseL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::CompleteDialogOrIndicatorAndWaitForResponseL( TInt aErrorCode )
+    {
+    if( !IsCancelled() )
+        {
+        if( IsIndicatorActive() )
             {
-            delete iBitmap;
-            iBitmap = NULL;
+            UpdateInstallIndicatorProgressL();
+            ShowInstallIndicatorCompleteL( aErrorCode );
+            CloseInstallIndicator();
             }
-        iBitmap = CApaMaskedBitmap::NewL( aIcon );
-
-        CHbSymbianVariantMap* map = VariantMapL();
-        CHbSymbianVariant* variant = NULL;
-        TInt bitmapHandle = iBitmap->Handle();
-        variant = CHbSymbianVariant::NewL( &bitmapHandle, CHbSymbianVariant::EInt );
-        User::LeaveIfError( map->Add( KSifUiApplicationIconHandle, variant ) );
-        TInt bitmapMaskHandle = iBitmap->Mask()->Handle();
-        variant = CHbSymbianVariant::NewL( &bitmapMaskHandle, CHbSymbianVariant::EInt );
-        User::LeaveIfError( map->Add( KSifUiApplicationIconMaskHandle, variant ) );
+        else
+            {
+            DisplayDeviceDialogL();
+            WaitForResponseL();
+            }
         }
     }
 
@@ -436,37 +712,42 @@
             {
             iDeviceDialog = CHbDeviceDialogSymbian::NewL();
             }
+        if( !iIsFirstTimeToDisplay )
+            {
+            ResendAllInstallationDetailsL();
+            }
         User::LeaveIfError( iDeviceDialog->Show( KSifUiDeviceDialog, *VariantMapL(), this ) );
         iIsDisplayingDialog = ETrue;
         }
+    iIsFirstTimeToDisplay = EFalse;
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::WaitForResponse()
+// CSifUiPrivate::WaitForResponseL()
 // ---------------------------------------------------------------------------
 //
-TInt CSifUiPrivate::WaitForResponse()
+void CSifUiPrivate::WaitForResponseL()
     {
-    iCompletionCode = KErrInUse;
-    iReturnValue = KErrUnknown;
+    iWaitCompletionCode = KErrInUse;    // changed in WaitedResponseReceived() or in DoCancel()
+    iDialogReturnValue = KErrUnknown;   // changed in DataReceived()
     if( !IsActive() && iWait && !iWait->IsStarted() )
         {
         iStatus = KRequestPending;
         SetActive();
         iWait->Start();
         }
-    return iCompletionCode;
+    User::LeaveIfError( iWaitCompletionCode );
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::ResponseReceived()
+// CSifUiPrivate::WaitedResponseReceived()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::ResponseReceived( TInt aCompletionCode )
+void CSifUiPrivate::WaitedResponseReceived( TInt aCompletionCode )
     {
     if( IsActive() )
         {
-        iCompletionCode = aCompletionCode;
+        iWaitCompletionCode = aCompletionCode;
         TRequestStatus* status( &iStatus );
         User::RequestComplete( status, KErrNone );
         }
--- a/appinstall_plat/sifui_api/tsrc/conf/sifuitestscripter.cfg	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-#
-# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:  SifUi STIF TestScripter configuration file
-#
-
-[Test]
-title Startup and Shutdown
-[Endtest]
-
Binary file appinstall_plat/sifui_api/tsrc/data/mmc/test_x509_cert.cer has changed
--- a/appinstall_plat/sifui_api/tsrc/group/bld.inf	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
@@ -10,8 +10,8 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
-* 
-* Description:
+*
+* Description:  SifUi API test code
 *
 */
 
@@ -19,7 +19,12 @@
 DEFAULT
 
 PRJ_EXPORTS
-../init/sifuitestscripter.ini   /epoc32/winscw/c/testframework/sifuitestscripter.ini
+../init/sifuitest.ini           /epoc32/winscw/c/testframework/TestFramework.ini
+../data/mmc/test_x509_cert.cer  /epoc32/winscw/c/testing/data/test_x509_cert.cer
+../init/sifuitest.ini           /epoc32/data/z/system/data/TestFramework.ini
+
+// Note: data files may need to be copied manually from ../data/mmc to memory card e:/testing/data/
+// See sifuitest.pkg file for details (i.e. which files needs to be installed to run the tests).
 
 PRJ_TESTMMPFILES
 sifuitest.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/group/ctc_compile_tests.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,26 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+echo ----------------------------------------------------------------------
+echo.
+echo Compiling module tests
+echo.
+echo ----------------------------------------------------------------------
+echo.
+call sbs reallyclean
+call sbs
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/group/ctc_instrument_code.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,32 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+echo ----------------------------------------------------------------------
+echo.
+echo Instrumenting code (armv5 urel and winscw udeb, function coverage)
+echo.
+echo ----------------------------------------------------------------------
+echo.
+pushd ..\..\group
+if exist MON.sym del MON.sym
+if exist MON.dat del MON.dat
+if exist profile.txt del profile.txt
+call sbs reallyclean
+call ctcwrap -i f -2comp -C "EXCLUDE+*.UID.CPP" sbs -c armv5_urel
+call ctcwrap -i f -2comp -C "EXCLUDE+*.UID.CPP" sbs -c winscw_udeb
+popd
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/group/ctc_process_results.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,28 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+echo ----------------------------------------------------------------------
+echo.
+echo Processing test results
+echo.
+echo ----------------------------------------------------------------------
+echo.
+pushd ..\..\group
+call ctcpost MON.sym MON.dat -p profile.txt
+call ctc2html -i profile.txt
+popd
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/group/ctc_remove_instrumentation.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,28 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+echo ----------------------------------------------------------------------
+echo.
+echo Removing instrumentation
+echo.
+echo ----------------------------------------------------------------------
+echo.
+pushd ..\..\group
+call sbs reallyclean
+call sbs
+popd
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/group/ctc_run_tests.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,27 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+echo ----------------------------------------------------------------------
+echo.
+echo Running module tests
+echo.
+echo ----------------------------------------------------------------------
+echo.
+echo Note that closing dialogs automatically is not implemented yet.
+echo.
+call \epoc32\release\winscw\udeb\ATSInterface.exe -testmodule sifuitest
+
--- a/appinstall_plat/sifui_api/tsrc/group/sifuitest.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/group/sifuitest.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 * 
-* Description: MMP file for RSifUi STIF test module.
+* Description:  SifUi API test code
 *
 */
 
@@ -38,4 +38,10 @@
 LIBRARY         stiftestinterface.lib               // STIF Framework
 LIBRARY         stiftestengine.lib                  // STIF Framework
 LIBRARY         sifui.lib                           // CSifUi
+LIBRARY         estor.lib                           // RBufWriteStream
+LIBRARY         uissclient.lib                      // Swi::CCertificateInfo
+LIBRARY         x509.lib                            // CX509Certificate
+LIBRARY         apgrfx.lib                          // RApaLsSession 
 
+SMPSAFE
+
--- a/appinstall_plat/sifui_api/tsrc/group/sifuitest.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/group/sifuitest.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -11,9 +11,7 @@
 ;
 ; Contributors:
 ; 
-; Description:
-;
-; 	Installation file for STIF
+; Description:  SifUi API test code installation file
 ;
 
 ; Languages
@@ -33,7 +31,7 @@
 :"Nokia"
 
 ; Install files
-"\epoc32\release\armv5\udeb\sifuitest.dll" - "c:\sys\bin\sifuitest.dll"
-"..\init\sifuitestscripter.ini" - "c:\TestFramework\sifuitestscripter.ini"
-"..\conf\sifuitestscripter.cfg" - "c:\TestFramework\sifuitestscripter.cfg"
+"\epoc32\release\armv5\udeb\sifuitest.dll"-"c:\sys\bin\sifuitest.dll"
+"..\init\sifuitestscripter.ini"-"c:\TestFramework\sifuitestscripter.ini"
+"..\data\mmc\test_x509_cert.cer"-"e:\testing\data\test_x509_cert.cer"
 
--- a/appinstall_plat/sifui_api/tsrc/group/sifuitest_nrm.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/group/sifuitest_nrm.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -11,10 +11,12 @@
 *
 * Contributors:
 * 
-* Description: MMP file for RSifUi STIF test module.
+* Description:  SifUi API test code
 *
 */
 
-// Same MMP file is used for both "BUILD" and "TEST BUILD" ABLD commands
+// Same MMP file is used both in normal and in test builds
 #include "sifuitest.mmp"
 
+SMPSAFE
+
--- a/appinstall_plat/sifui_api/tsrc/inc/sifuidummydetailsprovider.h	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Dummy implementation for details provider interface.
-*
-*/
-
-#ifndef C_DUMMYDETAILSPROVIDER_H
-#define C_DUMMYDETAILSPROVIDER_H
-
-#include <e32base.h>            // CBase
-#include <sifuidetailsif.h>     // MSifUiDetailsIf, MSifUiListIterator, MSifUiDetailsIterator
-
-
-class CDummyDetailsProvider : public CBase, public MSifUiDetailsIf,
-        public MSifUiListIterator, public MSifUiDetailsIterator
-    {
-public:
-    CDummyDetailsProvider( RFs& aFs );
-    ~CDummyDetailsProvider();
-
-public:
-    // from MSifUiDetailsIterator
-    void SetToFirstFieldL();
-    TBool HasNextField();
-    void GetNextFieldL( TDes& aFieldName, TDes& aFieldValue );
-
-    // from MSifUiListIterator
-    void SetToFirstItemL();
-    TBool HasNextItem();
-    void GetNextItemL( TDes& aItemName );
-    MSifUiDetailsIterator* DetailsIterator( const TDesC& aItemName );
-
-    // from MSifUiDetailsIf
-    MSifUiDetailsIterator* AppDetailsIterator();
-    MSifUiListIterator* CertificatesListL();
-    MSifUiListIterator* DrmFilesListL();
-    void GetDriveListL( RArray<TDriveUnit>& aDriveList );
-    void GetFolderListL( const TDesC& aParent, CDesCArray& aFolderList );
-    TBool HasFolderSubfolders( const TDesC& aParent, const TDesC& aFolder );
-
-private:    // data
-    RFs& iFs;
-    TInt iCurrentField;
-    TInt iCurrentItem;
-    };
-
-#endif // C_DUMMYDETAILSPROVIDER_H
-
--- a/appinstall_plat/sifui_api/tsrc/inc/sifuitest.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/inc/sifuitest.h	Fri Jun 11 13:45:18 2010 +0300
@@ -38,6 +38,7 @@
 #define OOM_ENTRY(str,func,a,b,c) {_S(str), GETPTR func,a,b,c}
 #define OOM_FUNCENTRY(func,a,b,c) {_S(#func), GETPTR func,a,b,c}
 
+class CX509Certificate;
 class CSifUiTest;
 class CSifUi;
 
@@ -143,10 +144,9 @@
                 const TKeyEvent& aKeyEvent ) const;
 
         /**
-         * Helper function to create new CSifUi object in iSifUi member.
-         * @return TInt - result code for creating new CSifUi
+         * Helper function to create Swi::CCertificateInfo objects.
          */
-        TInt CreateSifUi();
+        CX509Certificate* ReadCertificateL( const TDesC& aFileName );
 
 
         // --- TEST CASE FUNCTIONS ---
@@ -159,53 +159,52 @@
         TInt CreateLowMemTest( TTestResult& aResult );
 
         /**
-         * Run information note test case.
+         * Run drive selection test case.
          * @param aResult - test case result (PASS/FAIL)
          * @return Symbian OS error code (other than test result)
          */
-        TInt InformationNoteTest( TTestResult& aResult );
+        TInt MemorySelectionTest( TTestResult& aResult );
 
         /**
-         * Run warning note test case.
-         * @param aResult - test case result (PASS/FAIL)
-         * @return Symbian OS error code (other than test result)
+         * Helper function for MemorySelectionTest()
          */
-        TInt WarningNoteTest( TTestResult& aResult );
+        void DoMemorySelectionTestL( TTestResult& aResult );
 
         /**
-         * Run error note test case.
+         * Run certificate info test case.
          * @param aResult - test case result (PASS/FAIL)
          * @return Symbian OS error code (other than test result)
          */
-        TInt ErrorNoteTest( TTestResult& aResult );
+        TInt CertificateInfoTest( TTestResult& aResult );
 
         /**
-         * Run permanent note test case.
-         * @param aResult - test case result (PASS/FAIL)
-         * @return Symbian OS error code (other than test result)
+         * Helper function for CertificateInfoTest()
          */
-        TInt PermanentNoteTest( TTestResult& aResult );
+        void DoCertificateInfoTestL( TTestResult& aResult );
 
         /**
-         * Run progress note test case.
+         * Run application info test case.
          * @param aResult - test case result (PASS/FAIL)
          * @return Symbian OS error code (other than test result)
          */
-        TInt ProgressNoteTest( TTestResult& aResult );
+        TInt AppInfoTest( TTestResult& aResult );
 
         /**
-         * Run wait note test case.
+         * Helper function for AppInfoTest()
+         */
+        void DoAppInfoTestL( TTestResult& aResult );
+        
+        /**
+         * Run progress dialogs test case.
          * @param aResult - test case result (PASS/FAIL)
          * @return Symbian OS error code (other than test result)
          */
-        TInt WaitNoteTest( TTestResult& aResult );
+        TInt ProgressDialogsTest( TTestResult& aResult );
 
         /**
-         * Run launch help test case.
-         * @param aResult - test case result (PASS/FAIL)
-         * @return Symbian OS error code (other than test result)
+         * Helper function for ProgressDialogsTest()
          */
-        TInt LaunchHelpTest( TTestResult& aResult );
+        void DoProgressDialogsTestL( TTestResult& aResult );
 
     private:        // data
         TestFunction iMethod;
@@ -216,8 +215,6 @@
         TBool iVersionLogged;
         RFs iFs;
         CActiveScheduler* iScheduler;
-
-        CSifUi* iSifUi;
     };
 
 #endif      // SIFUITEST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/inc/sifuitestcleanuputils.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Defines CleanupResetAndDestroyPushL
+*
+*/
+
+
+#ifndef SIFUITESTCLEANUPUTILS_H
+#define SIFUITESTCLEANUPUTILS_H
+
+template <class T>
+class CleanupResetAndDestroy
+    {
+public:
+    inline static void PushL( T& aRef );
+private:
+    static void ResetAndDestroy( TAny *aPtr );
+    };
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef );
+
+template <class T>
+inline void CleanupResetAndDestroy<T>::PushL( T& aRef )
+    {
+    CleanupStack::PushL( TCleanupItem( &ResetAndDestroy, &aRef ) );
+    }
+
+template <class T>
+void CleanupResetAndDestroy<T>::ResetAndDestroy( TAny *aPtr )
+    {
+    if( aPtr )
+        {
+        static_cast<T*>( aPtr )->ResetAndDestroy();
+        }
+    }
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+    {
+    CleanupResetAndDestroy<T>::PushL( aRef );
+    }
+
+#endif // SIFUITESTCLEANUPUTILS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/init/sifuitest.ini	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description: SifUi STIF tests initialization file
+#
+#
+
+[Engine_Defaults]
+TestReportMode= FullReport
+CreateTestReport= YES
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+TestReportFormat= TXT
+TestReportOutput= FILE
+TestReportFileCreationMode= OVERWRITE
+DeviceResetDllName= StifResetForNokia.dll
+DisableMeasurement= stifmeasurementdisablenone
+Timeout= 0
+UITestingSupport= YES
+SeparateProcesses= NO
+[End_Defaults]
+
+[New_Module]
+ModuleName= sifuitest
+[End_Module]
+
--- a/appinstall_plat/sifui_api/tsrc/init/sifuitestscripter.ini	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-# 
-# Description: SifUi STIF TestScripter initialization file
-#
-#
-
-[Engine_Defaults]
-TestReportMode= FullReport
-CreateTestReport= YES
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-TestReportFormat= TXT
-TestReportOutput= FILE
-TestReportFileCreationMode= OVERWRITE
-DeviceResetDllName= StifResetForNokia.dll
-DisableMeasurement= stifmeasurementdisablenone
-Timeout= 0
-UITestingSupport= YES
-SeparateProcesses= NO
-[End_Defaults]
-
-[New_Module]
-ModuleName= sifuitest
-[End_Module]
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/tsrc/run_module_tests.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,24 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Module tests for SIF UI API.
+rem
+
+pushd group
+call ctc_instrument_code.bat
+call ctc_compile_tests.bat
+call ctc_run_tests.bat
+call ctc_process_results.bat
+call ctc_remove_instrumentation.bat
+popd
--- a/appinstall_plat/sifui_api/tsrc/src/sifuidummydetailsprovider.cpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Dummy implementation for details provider interface.
-*
-*/
-
-#include <sifuidummydetailsprovider.h>  // CDummyDetailsProvider
-#include <f32file.h>                    // RFs, TVolumeInfo
-
-
-CDummyDetailsProvider::CDummyDetailsProvider( RFs& aFs ) : iFs( aFs )
-    {
-    }
-
-CDummyDetailsProvider::~CDummyDetailsProvider()
-    {
-    }
-
-void CDummyDetailsProvider::SetToFirstFieldL()
-    {
-    iCurrentField = 0;
-    }
-
-TBool CDummyDetailsProvider::HasNextField()
-    {
-    return( iCurrentField < 3 );
-    }
-
-void CDummyDetailsProvider::GetNextFieldL( TDes& aFieldName, TDes& aFieldValue )
-    {
-    __ASSERT_ALWAYS( iCurrentField < 3, User::Invariant() );
-    aFieldName.Zero();
-    aFieldName.AppendFormat( _L("Field_%d"), iCurrentField );
-    aFieldValue.Zero();
-    aFieldValue.AppendFormat( _L("Value %d"), iCurrentField );
-    ++iCurrentField;
-    }
-
-void CDummyDetailsProvider::SetToFirstItemL()
-    {
-    iCurrentItem = 0;
-    }
-
-TBool CDummyDetailsProvider::HasNextItem()
-    {
-    return( iCurrentField < 3 );
-    }
-
-void CDummyDetailsProvider::GetNextItemL( TDes& aItemName )
-    {
-    __ASSERT_ALWAYS( iCurrentItem < 3, User::Invariant() );
-    aItemName.Zero();
-    aItemName.AppendFormat( _L("Item_%d"), iCurrentItem );
-    ++iCurrentItem;
-    }
-
-MSifUiDetailsIterator* CDummyDetailsProvider::DetailsIterator( const TDesC& aItemName )
-    {
-    return this;
-    }
-
-MSifUiDetailsIterator* CDummyDetailsProvider::AppDetailsIterator()
-    {
-    return this;
-    }
-
-MSifUiListIterator* CDummyDetailsProvider::CertificatesListL()
-    {
-    return this;
-    }
-
-MSifUiListIterator* CDummyDetailsProvider::DrmFilesListL()
-    {
-    return this;
-    }
-
-void CDummyDetailsProvider::GetDriveListL( RArray<TDriveUnit>& aDriveList )
-    {
-    aDriveList.Reset();
-    TDriveList driveList;
-    User::LeaveIfError( iFs.DriveList( driveList ) );
-    for( TInt driveNumber = EDriveA; driveNumber <= EDriveZ; ++driveNumber )
-        {
-        if( driveList[ driveNumber ] )
-            {
-            TVolumeInfo volInfo;
-            if( iFs.Volume( volInfo, driveNumber ) == KErrNone )
-                {
-                if( volInfo.iDrive.iType != EMediaNotPresent &&
-                    volInfo.iDrive.iType != EMediaRom &&
-                    volInfo.iDrive.iType != EMediaRemote &&
-                    !( volInfo.iDrive.iDriveAtt & KDriveAttRom ) &&
-                    !( volInfo.iDrive.iDriveAtt & KDriveAttSubsted ) )
-                    {
-                    aDriveList.AppendL( driveNumber );
-                    }
-                }
-            }
-        }
-    }
-
-void CDummyDetailsProvider::GetFolderListL( const TDesC& aParent, CDesCArray& aFolderList )
-    {
-    aFolderList.Reset();
-    if( aParent.Find( _L("SubSub") ) != KErrNotFound )
-        {
-        // no subfolders, should not get here
-        User::Invariant();
-        }
-    else if( ( aParent.Find( _L("Applications") ) != KErrNotFound ) ||
-             ( aParent.Find( _L("Programs") ) != KErrNotFound ) ||
-             ( aParent.Find( _L("Installations") ) != KErrNotFound ) )
-        {
-        aFolderList.AppendL( _L("SubSubDir") );
-        aFolderList.AppendL( _L("SubSubFolder") );
-        }
-    else
-        {
-        aFolderList.AppendL( _L("Applications") );
-        aFolderList.AppendL( _L("Programs") );
-        aFolderList.AppendL( _L("Installations") );
-        }
-    }
-
-TBool CDummyDetailsProvider::HasFolderSubfolders( const TDesC& aParent, const TDesC& aFolder )
-    {
-    return( aParent.Find( _L("SubSub") ) != KErrNotFound );
-    }
-
--- a/appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -21,93 +21,9 @@
 #include <sifui.h>                      // CSifUi
 #include "SifUiTest.h"
 
-
-//
-// NOTE: This cpp file contains just generic STIF module code.
-// Test case functions are defined in SifUiTestCases.cpp
-//
-
-
-_LIT( KWaitAndSendThread, "WaitAndSendKey" );
-const TInt KWaitAndSendThreadStack = 0x1000;
-
-class TDelayAndKeyEvent {
-public:
-    TTimeIntervalMicroSeconds32 iDelay;
-    TKeyEvent iKeyEvent;
-};
-
-
-// ======== LOCAL FUNCTIONS =========
-
-// -----------------------------------------------------------------------------
-// DoSendKeyEventL( const TKeyEvent& aKeyEvent )
-// -----------------------------------------------------------------------------
-//
-void DoSendKeyEventL( const TKeyEvent& aKeyEvent )
-    {
-    RWsSession wsSession;
-    User::LeaveIfError( wsSession.Connect() );
-    CleanupClosePushL( wsSession );
-    TInt focusedGroup = wsSession.GetFocusWindowGroup();
-
-    TWsEvent event;
-    TKeyEvent& keyEvent( *event.Key() );
-    TInt err;
-
-    /*
-    event.SetType( EEventKeyDown );
-    event.SetTimeNow();
-    keyEvent = aKeyEvent;
-    err = wsSession.SendEventToWindowGroup( focusedGroup, event );
-    User::LeaveIfError( err );
-    */
-
-    event.SetType( EEventKey );
-    event.SetTimeNow();
-    keyEvent = aKeyEvent;
-    err = wsSession.SendEventToWindowGroup( focusedGroup, event );
-    User::LeaveIfError( err );
-
-    /*
-    event.SetType( EEventKeyUp );
-    event.SetTimeNow();
-    keyEvent = aKeyEvent;
-    err = wsSession.SendEventToWindowGroup( focusedGroup, event );
-    User::LeaveIfError( err );
-    */
-
-    CleanupStack::PopAndDestroy( &wsSession );
-    }
-
-// -----------------------------------------------------------------------------
-// WaitAndSendThreadFunc()
-// -----------------------------------------------------------------------------
-//
-TInt WaitAndSendThreadFunc( TAny* aPtr )
-    {
-    TDelayAndKeyEvent* params = reinterpret_cast<TDelayAndKeyEvent*>( aPtr );
-    ASSERT( params );
-    TInt retVal = KErrNone;
-
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    if( !cleanup )
-        {
-        delete params;
-        retVal = KErrNoMemory;
-        }
-
-    RThread::Rendezvous( retVal );
-    if( retVal == KErrNone )
-        {
-        User::After( params->iDelay );
-        TRAP( retVal, DoSendKeyEventL( params->iKeyEvent ) );
-        }
-
-    delete cleanup;
-    delete params;
-    return retVal;
-    }
+const TInt KTestStackSize = 0x8000;     // 32K stack
+const TInt KTestMinHeap = 0x4000;       // 16K heap min
+const TInt KTestMaxHeap = 0x200000;     // 2M heap max
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -131,7 +47,6 @@
 //
 CSifUiTest::~CSifUiTest()
     {
-    delete iSifUi;
     iLog = NULL;
     delete iStdLog;
     delete iTCLog;
@@ -415,43 +330,6 @@
     aResult.SetResult( aReturnCode, ErrorCodeString( aReturnCode ) );
     }
 
-// -----------------------------------------------------------------------------
-// CSifUiTest::AsyncWaitAndSendKeyEventL()
-// -----------------------------------------------------------------------------
-//
-void CSifUiTest::AsyncWaitAndSendKeyEventL( TTimeIntervalMicroSeconds32 aDelay,
-        const TKeyEvent& aKeyEvent ) const
-    {
-    if( aDelay.Int() )
-        {
-        TDelayAndKeyEvent* paramPack = new( ELeave ) TDelayAndKeyEvent;
-        paramPack->iDelay = aDelay;
-        paramPack->iKeyEvent = aKeyEvent;
-
-        RThread waitingAndSendingThread;
-        TInt err = waitingAndSendingThread.Create( KWaitAndSendThread, WaitAndSendThreadFunc,
-                KWaitAndSendThreadStack, NULL, reinterpret_cast< TAny* >( paramPack ) );
-        if( err == KErrNone )
-            {
-            TRequestStatus status;
-            waitingAndSendingThread.Rendezvous( status );
-            waitingAndSendingThread.Resume();
-            User::WaitForRequest( status );
-            waitingAndSendingThread.Close();
-            User::LeaveIfError( status.Int() );
-            }
-        else
-            {
-            delete paramPack;
-            User::Leave( err );
-            }
-        }
-    else
-        {
-        DoSendKeyEventL( aKeyEvent );
-        }
-    }
-
 
 // ==== OTHER EXPORTED FUNCTIONS ====
 
@@ -473,12 +351,16 @@
     {
     aParameterValid = KStifTestModuleParameterChanged;
 
-    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL();
-    param->iTestThreadStackSize = 16384;    // 16K stack
-    param->iTestThreadMinHeap = 4096;       // 4K heap min
-    param->iTestThreadMaxHeap = 1048576;    // 1M heap max
-    aTestModuleParam = param;
+    CTestModuleParamVer01* param = NULL;
+    TRAPD( error, param = CTestModuleParamVer01::NewL() );
+    if( !error )
+        {
+        param->iTestThreadStackSize = KTestStackSize;
+        param->iTestThreadMinHeap = KTestMinHeap;
+        param->iTestThreadMaxHeap = KTestMaxHeap;
+        aTestModuleParam = param;
+        }
 
-    return KErrNone;
+    return error;
     }
 
--- a/appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -15,14 +15,27 @@
 *
 */
 
-#include <badesca.h>                    // CDesCArray
+#include <badesca.h>                    // CDesCArray, StifUnitMacros.h needs this
+#include <StifUnitMacros.h>             // STIF_ASSERT_NULL, STIF_ASSERT_NOT_NULL
 #include <sifui.h>                      // CSifUi
-#include "SifUiTest.h"                  // CSifUiTest
+#include <sifuiappinfo.h>               // CSifUiAppInfo
+#include <sifuicertificateinfo.h>       // CSifUiCertificateInfo
+#include <s32file.h>                    // RFileReadStream
+#include <s32mem.h>                     // RDesReadStream
+#include <apgcli.h>                     // RApaLsSession
+#include <swi/msisuihandlers.h>         // Swi::CCertificateInfo
+#include "sifuitest.h"                  // CSifUiTest
+#include "sifuitestcleanuputils.h"      // CleanupResetAndDestroyPushL
+
+_LIT( KX509TestCertFile, "\\testing\\data\\test_x509_cert.cer" );
 
 _LIT( KEnter, "Enter" );
 _LIT( KStepFormat, "Step %d" );
 _LIT( KExit, "Exit" );
 
+const TInt KBufferGranularity = 1024;
+
+
 // Internal structure containing test case name and pointer to test function
 class TCaseInfoInternal
     {
@@ -34,12 +47,6 @@
         TInt            iLastMemoryAllocation;
     };
 
-const TInt KOneSecond = 1000000;
-const TInt KThreeSeconds = 3 * KOneSecond;
-const TInt KFiveSeconds = 5 * KOneSecond;
-const TInt KHalfSecond = KOneSecond / 2;
-const TKeyEvent KRightSoftkey = { EKeyDevice1, 0, 0, EStdKeyDevice1 };  // EKeyCBA2
-
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -69,13 +76,10 @@
     static TCaseInfoInternal const KCases[] =
         {
         ENTRY( "CreateLowMemTest", CSifUiTest::CreateLowMemTest ),
-        ENTRY( "InformationNoteTest", CSifUiTest::InformationNoteTest ),
-        ENTRY( "WarningNoteTest", CSifUiTest::WarningNoteTest ),
-        ENTRY( "ErrorNoteTest", CSifUiTest::ErrorNoteTest ),
-        ENTRY( "PermanentNoteTest", CSifUiTest::PermanentNoteTest ),
-        ENTRY( "ProgressNoteTest", CSifUiTest::ProgressNoteTest ),
-        ENTRY( "WaitNoteTest", CSifUiTest::WaitNoteTest ),
-        ENTRY( "LaunchHelpTest", CSifUiTest::LaunchHelpTest )
+        ENTRY( "MemorySelectionTest", CSifUiTest::MemorySelectionTest ),
+        ENTRY( "CertificateInfoTest", CSifUiTest::CertificateInfoTest ),
+        ENTRY( "AppInfoTest", CSifUiTest::AppInfoTest ),
+        ENTRY( "ProgressDialogsTest", CSifUiTest::ProgressDialogsTest )
         };
 
     if( (TUint) aCaseNumber >= sizeof( KCases ) / sizeof( TCaseInfoInternal ) )
@@ -98,19 +102,30 @@
     }
 
 // -----------------------------------------------------------------------------
-// CSifUiTest::CreateSifUi()
+// CSifUiTest::ReadCertificateL()
 // -----------------------------------------------------------------------------
 //
-TInt CSifUiTest::CreateSifUi()
+CX509Certificate* CSifUiTest::ReadCertificateL( const TDesC& aFileName )
     {
-    if( iSifUi )
-        {
-        delete iSifUi;
-        iSifUi = NULL;
-        }
+    TFindFile findFile( iFs );
+    User::LeaveIfError( findFile.FindByDir( aFileName, KNullDesC ) );
+
+    RFile file;
+    User::LeaveIfError( file.Open( iFs, findFile.File(), EFileRead ) );
+    CleanupClosePushL( file );
+
+    TInt fileSize = 0;
+    User::LeaveIfError( file.Size( fileSize ) );
 
-    TRAPD( err, iSifUi = CSifUi::NewL() );
-    return err;
+    HBufC8* buffer = HBufC8::NewLC( fileSize );
+    TPtr8 ptr( buffer->Des() );
+    User::LeaveIfError( file.Read( ptr ) );
+
+    CX509Certificate* x509cert = CX509Certificate::NewL( *buffer );
+
+    CleanupStack::PopAndDestroy( buffer );
+    CleanupStack::PopAndDestroy( &file );
+    return x509cert;
     }
 
 // -----------------------------------------------------------------------------
@@ -124,321 +139,228 @@
 
     TInt count = 0;
     TInt error = KErrNoMemory;
+    CSifUi* sifUi = NULL;
     while( error == KErrNoMemory )
         {
         User::__DbgSetAllocFail( EFalse, RHeap::EDeterministic, ++count );
-        __UHEAP_MARK;
-        error = CreateSifUi();
-        __UHEAP_MARKEND;
+        TRAP( error, sifUi = CSifUi::NewL() );
         User::__DbgSetAllocFail( EFalse, RHeap::ENone, count );
+        if( !error )
+            {
+            delete sifUi;
+            sifUi = NULL;
+            }
         }
     TestModuleIf().Printf( 1, KTestName, _L("count %d, last error %d"), count, error );
     SetResult( aResult, error );
-    delete iSifUi;
-    iSifUi = NULL;
-
-    TestModuleIf().Printf( 0, KTestName, KExit );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::InformationNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::InformationNoteTest( TTestResult& aResult )
-    {
-    _LIT( KTestName, "InformationNoteTest" );
-    TestModuleIf().Printf( 0, KTestName, KEnter );
-
-    enum TTestSteps
-        {
-        EFirstStep,
-        EChangeText,
-        EWaitSomeTime,
-        EAllDone
-        };
-    _LIT( KInfoNoteText, "This is information note" );
-    _LIT( KChangedInfoNoteText, "Changed information note text" );
-
-    TInt result = CreateSifUi();
-    for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
-        {
-        TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
-        switch( step )
-            {
-            case EFirstStep:
-                TRAP( result, iSifUi->DisplayInformationNoteL( KInfoNoteText ) );
-                break;
-            case EChangeText:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->DisplayInformationNoteL( KChangedInfoNoteText ) );
-                break;
-            case EWaitSomeTime:
-                User::After( KOneSecond );
-                break;
-            default:
-                User::Leave( KErrGeneral );
-                break;
-            }
-        }
-
-    delete iSifUi;
-    iSifUi = NULL;
-
-    SetResult( aResult, result );
-
-    TestModuleIf().Printf( 0, KTestName, KExit );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::WarningNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::WarningNoteTest( TTestResult& aResult )
-    {
-    _LIT( KTestName, "WarningNoteTest" );
-    TestModuleIf().Printf( 0, KTestName, KEnter );
-
-    enum TTestSteps
-        {
-        EFirstStep,
-        EChangeText,
-        EWaitSomeTime,
-        EAllDone
-        };
-    _LIT( KWarningNoteText, "This is warning note" );
-    _LIT( KChangedWarningNoteText, "Changed warning note text" );
-
-    TInt result = CreateSifUi();
-    for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
-        {
-        TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
-        switch( step )
-            {
-            case EFirstStep:
-                TRAP( result, iSifUi->DisplayInformationNoteL( KWarningNoteText ) );
-                break;
-            case EChangeText:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->DisplayInformationNoteL( KChangedWarningNoteText ) );
-                break;
-            case EWaitSomeTime:
-                User::After( KOneSecond );
-                break;
-            default:
-                User::Leave( KErrGeneral );
-                break;
-            }
-        }
-
-    delete iSifUi;
-    iSifUi = NULL;
-
-    SetResult( aResult, result );
 
     TestModuleIf().Printf( 0, KTestName, KExit );
     return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
-// CSifUiTest::ErrorNoteTest()
+// CSifUiTest::MemorySelectionTest()
 // -----------------------------------------------------------------------------
 //
-TInt CSifUiTest::ErrorNoteTest( TTestResult& aResult )
+TInt CSifUiTest::MemorySelectionTest( TTestResult& aResult )
     {
-    _LIT( KTestName, "ErrorNoteTest" );
+    TRAPD( result, DoMemorySelectionTestL( aResult ) );
+    SetResult( aResult, result );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CSifUiTest::DoMemorySelectionTestL()
+// -----------------------------------------------------------------------------
+//
+void CSifUiTest::DoMemorySelectionTestL( TTestResult& aResult )
+    {
+    _LIT( KTestName, "MemorySelectionTest" );
     TestModuleIf().Printf( 0, KTestName, KEnter );
 
     enum TTestSteps
         {
         EFirstStep,
-        EChangeText,
-        EAllDone
-        };
-    _LIT( KErrorNoteText, "This is error note" );
-    _LIT( KChangedErrorNoteText, "Changed error note text" );
-
-    TInt result = CreateSifUi();
-    for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
-        {
-        TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
-        switch( step )
-            {
-            case EFirstStep:
-                TRAP( result, iSifUi->DisplayErrorNoteL( KErrorNoteText ) );
-                break;
-            case EChangeText:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->DisplayErrorNoteL( KChangedErrorNoteText ) );
-                break;
-            default:
-                User::Leave( KErrGeneral );
-                break;
-            }
-        }
-
-    delete iSifUi;
-    iSifUi = NULL;
-
-    SetResult( aResult, result );
-
-    TestModuleIf().Printf( 0, KTestName, KExit );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::PermanentNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::PermanentNoteTest( TTestResult& aResult )
-    {
-    _LIT( KTestName, "PermanentNoteTest" );
-    TestModuleIf().Printf( 0, KTestName, KEnter );
-
-    enum TTestSteps
-        {
-        EFirstStep,
-        EDisplayNote,
-        EChangeText,
-        ECloseNote,
-        EDisplayDelayedNote,
-        EChangeDelayedNoteText,
-        ECloseSecondNote,
+        EGetSelectedWhenNotSet,
+        ESetNoDrivesStep,
+        ESetThreeDriveStep,
+        ESetOneDriveStep,
+        EGetSelectedWhenSetButNotAskedStep,
+        ELastStep,
         EAllDone
         };
 
-    _LIT( KPermanentNoteText, "This is permanent note" );
-    _LIT( KChangedNoteText, "Changed permanent note text" );
-    _LIT( KDelayedNoteText, "This is delayed permanent note" );
-    _LIT( KChangedDelayedNoteText, "Changed delayed permanent note text" );
+    CSifUi* sifUi = NULL;
+    RArray<TInt> driveNumbers;
+    CleanupClosePushL( driveNumbers );
+    TInt drive = 0;
+    TInt errorCode = KErrNone;
 
-    TInt result = CreateSifUi();
-    for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
+    TInt error = KErrNone;
+    for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
         {
         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
         switch( step )
             {
             case EFirstStep:
-                TRAP( result, iSifUi->ClosePermanentNote() );
-                break;
-            case EDisplayNote:
-                TRAP( result, iSifUi->DisplayPermanentNoteL( KPermanentNoteText ) );
+                STIF_ASSERT_NULL( sifUi );
+                TRAP( error, sifUi = CSifUi::NewL() );
+                if( !error )
+                    {
+                    CleanupStack::PushL( sifUi );
+                    }
                 break;
-            case EChangeText:
-                User::After( KThreeSeconds );
-                TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedNoteText ) );
+
+            case EGetSelectedWhenNotSet:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                TRAP( error, errorCode = sifUi->SelectedDrive( drive ) );
+                if( error == KErrNone && errorCode == KErrNotFound )
+                    {
+                    error = KErrNone;
+                    }
+                else
+                    {
+                    error = KErrGeneral;
+                    }
                 break;
-            case ECloseNote:
-                TRAP( result, iSifUi->ClosePermanentNote() );
+
+            case ESetNoDrivesStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
                 break;
-            case EDisplayDelayedNote:
-                User::After( KThreeSeconds );
-                TRAP( result, iSifUi->DisplayPermanentNoteL( KDelayedNoteText ) );
+
+            case ESetThreeDriveStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                driveNumbers.Append( EDriveC );
+                driveNumbers.Append( EDriveE );
+                driveNumbers.Append( EDriveF );
+                TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
+                break;
+
+            case ESetOneDriveStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                driveNumbers.Append( EDriveC );
+                TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
                 break;
-            case EChangeDelayedNoteText:
-                User::After( KFiveSeconds );
-                TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedDelayedNoteText ) );
+
+            case EGetSelectedWhenSetButNotAskedStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                TRAP( error, errorCode = sifUi->SelectedDrive( drive ) );
+                if( error == KErrNone && errorCode == KErrNotFound )
+                    {
+                    error = KErrNone;
+                    }
+                else
+                    {
+                    error = KErrGeneral;
+                    }
                 break;
-            case ECloseSecondNote:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->ClosePermanentNote() );
+
+            case ELastStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CleanupStack::PopAndDestroy( sifUi );
+                sifUi = NULL;
                 break;
+
             default:
                 User::Leave( KErrGeneral );
                 break;
             }
         }
+    User::LeaveIfError( error );
 
-    delete iSifUi;
-    iSifUi = NULL;
+    CleanupStack::PopAndDestroy( &driveNumbers );
+    TestModuleIf().Printf( 0, KTestName, KExit );
+    }
 
+// -----------------------------------------------------------------------------
+// CSifUiTest::CertificateInfoTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::CertificateInfoTest( TTestResult& aResult )
+    {
+    TRAPD( result, DoCertificateInfoTestL( aResult ) );
     SetResult( aResult, result );
-
-    TestModuleIf().Printf( 0, KTestName, KExit );
     return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
-// CSifUiTest::ProgressNoteTest()
+// CSifUiTest::DoCertificateInfoTestL()
 // -----------------------------------------------------------------------------
 //
-TInt CSifUiTest::ProgressNoteTest( TTestResult& aResult )
+void CSifUiTest::DoCertificateInfoTestL( TTestResult& aResult )
     {
-    _LIT( KTestName, "ProgressNoteTest" );
+    _LIT( KTestName, "CertificateInfoTest" );
     TestModuleIf().Printf( 0, KTestName, KEnter );
 
     enum TTestSteps
         {
-        EDisplayProgressNote,
-        EIncreaseBar1,
-        EIncreaseBar2,
-        EChangeProgressText,
-        EIncreaseBar3,
-        EIncreaseBar4,
-        EIncreaseBar5,
-        ECloseProgressNote,
-        EDelayedProgressNote,
+        EFirstStep,
+        ESetNoCertificates,
+        EReadAndSetCertificate,
+        ELastStep,
         EAllDone
         };
-    _LIT( KProgressNoteText, "This is progress note" );
-    _LIT( KChangedProgressNoteText, "Changed progress note text" );
 
-    const TInt KProgressBarFinalValue = 6;
-    TInt progressBarValue = -1;
-    TRequestStatus reqStatus;       // ignored now, not monitoring if user cancels the note
-    TRequestStatus reqUpdate;
-    TInt result = CreateSifUi();
-    for( TInt step = EDisplayProgressNote; step < EAllDone && result == KErrNone; ++step )
+    CSifUi* sifUi = NULL;
+    RPointerArray<CSifUiCertificateInfo> certificates;
+    CleanupResetAndDestroyPushL( certificates );
+
+    TInt error = KErrNone;
+    for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
         {
         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
         switch( step )
             {
-            case EDisplayProgressNote:
-                TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
-                if( result == KErrNone )
+            case EFirstStep:
+                STIF_ASSERT_NULL( sifUi );
+                TRAP( error, sifUi = CSifUi::NewL() );
+                if( !error )
                     {
-                    TRAP( result, iSifUi->SetProgressNoteFinalValueL( KProgressBarFinalValue ) );
+                    CleanupStack::PushL( sifUi );
                     }
                 break;
 
-            case EIncreaseBar1:
-            case EIncreaseBar2:
-            case EIncreaseBar3:
-            case EIncreaseBar4:
-            case EIncreaseBar5:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->UpdateProgressNoteValueL( progressBarValue ) );
-                progressBarValue += 2;
+            case ESetNoCertificates:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                TRAP( error, sifUi->SetCertificateInfoL( certificates ) );
                 break;
 
-            case EChangeProgressText:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->DisplayProgressNoteL( KChangedProgressNoteText, reqUpdate ) );
-                if( result == KErrNone )
-                    {
-                    User::WaitForRequest( reqUpdate );
-                    result = reqUpdate.Int();
-                    }
+            case EReadAndSetCertificate:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CX509Certificate* x509cert = ReadCertificateL( KX509TestCertFile );
+                CleanupStack::PushL( x509cert );
+
+                Swi::CCertificateInfo* swiCert = Swi::CCertificateInfo::NewLC( *x509cert );
+                CSifUiCertificateInfo* testCert = CSifUiCertificateInfo::NewLC( *swiCert );
+
+                CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+                CleanupStack::PushL( buf );
+                RBufWriteStream writeStream( *buf );
+                CleanupClosePushL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() == 0 );
+                testCert->ExternalizeL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() > 0 );
+                CleanupStack::PopAndDestroy( 2, buf );      // writeStream, buf
+
+                CleanupStack::PopAndDestroy( testCert );
+                testCert = NULL;
+
+                testCert = CSifUiCertificateInfo::NewL( *swiCert );
+                CleanupStack::PushL( testCert );
+                certificates.AppendL( testCert );
+                CleanupStack::Pop( testCert );
+                TRAP( error, sifUi->SetCertificateInfoL( certificates ) );
+
+                CleanupStack::PopAndDestroy( 2, x509cert );     // swiCert, x509cert
+                }
                 break;
 
-            case ECloseProgressNote:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->CloseProgressNoteL() );
-                if( result == KErrNone )
-                    {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
-                    }
-                break;
-
-            case EDelayedProgressNote:
-                TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
-                if( result == KErrNone )
-                    {
-                    User::After( KHalfSecond );
-                    TRAP( result, iSifUi->CloseProgressNoteL() );
-                    }
+            case ELastStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CleanupStack::PopAndDestroy( sifUi );
+                sifUi = NULL;
                 break;
 
             default:
@@ -446,141 +368,274 @@
                 break;
             }
         }
+    User::LeaveIfError( error );
 
-    delete iSifUi;
-    iSifUi = NULL;
+    CleanupStack::PopAndDestroy( &certificates );
+    TestModuleIf().Printf( 0, KTestName, KExit );
+    }
 
+// -----------------------------------------------------------------------------
+// CSifUiTest::AppInfoTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::AppInfoTest( TTestResult& aResult )
+    {
+    TRAPD( result, DoAppInfoTestL( aResult ) );
     SetResult( aResult, result );
-
-    TestModuleIf().Printf( 0, KTestName, KExit );
     return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
-// CSifUiTest::WaitNoteTest()
+// CSifUiTest::DoAppInfoTestL()
 // -----------------------------------------------------------------------------
 //
-TInt CSifUiTest::WaitNoteTest( TTestResult& aResult )
+void CSifUiTest::DoAppInfoTestL( TTestResult& aResult )
     {
-    _LIT( KTestName, "WaitNoteTest" );
+    _LIT( KTestName, "AppInfoTest" );
     TestModuleIf().Printf( 0, KTestName, KEnter );
 
     enum TTestSteps
         {
-        ECloseWaitNoteBeforeItsOpened,
-        EDisplayWaitNote,
-        EChangeDisplayedText,
-        ECloseFirstWaitNote,
-        EDisplayDelayedWaitNote,
-        EChangeDelayedWaitNoteText,
-        ECloseWaitNote,
+        EFirstStep,
+        EAppInfoTests,
+        EAppInfoIconTest,
+        EShowConfirmation,
+        EShowError,
+        ELastStep,
         EAllDone
         };
-    _LIT( KWaitNoteText, "This is wait note" );
-    _LIT( KChangedWaitNoteText, "Changed wait note text" );
-    _LIT( KDelayedWaitNoteText, "This is delayed wait note" );
-    _LIT( KChangedDelayedWaitNoteText, "Changed delayed wait note text" );
+
+    CSifUi* sifUi = NULL;
 
-    TInt result = CreateSifUi();
-    TRequestStatus reqStatus;       // ignored now, not monitoring if user cancels the note
-    for( TInt step = EDisplayWaitNote; step < EAllDone && result == KErrNone; ++step )
+    _LIT( KAppName, "TestApplication" );
+    _LIT( KAppVendor, "TestSupplier" );
+    const TVersion KAppVersion( 1, 2, 3 );
+    const TInt KAppSize = 0x1234;
+
+    TInt error = KErrNone;
+    for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
         {
         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
         switch( step )
             {
-            case ECloseWaitNoteBeforeItsOpened:
-                TRAP( result, iSifUi->CloseWaitNote() );
-                break;
-            case EDisplayWaitNote:
-                TRAP( result, iSifUi->DisplayWaitNoteL( KWaitNoteText, reqStatus ) );
-                if( result == KErrNone && reqStatus != KRequestPending )
+            case EFirstStep:
+                STIF_ASSERT_NULL( sifUi );
+                TRAP( error, sifUi = CSifUi::NewL() );
+                if( !error )
                     {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
-                    }
-                break;
-            case EChangeDisplayedText:
-                User::After( KThreeSeconds );
-                TRAP( result, iSifUi->DisplayWaitNoteL( KChangedWaitNoteText, reqStatus ) );
-                if( result == KErrNone && reqStatus != KRequestPending )
-                    {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
-                    }
-                break;
-            case ECloseFirstWaitNote:
-                TRAP( result, iSifUi->CloseWaitNote() );
-                if( result == KErrNone )
-                    {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
+                    CleanupStack::PushL( sifUi );
                     }
                 break;
-            case EDisplayDelayedWaitNote:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->DisplayWaitNoteL( KDelayedWaitNoteText, reqStatus ) );
-                if( result == KErrNone && reqStatus != KRequestPending )
-                    {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
-                    }
+
+            case EAppInfoTests:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CSifUiAppInfo* appInfo = NULL;
+                appInfo = CSifUiAppInfo::NewLC( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+
+                STIF_ASSERT_TRUE( appInfo->Name().Compare( KAppName ) == 0 );
+                STIF_ASSERT_TRUE( appInfo->Vendor().Compare( KAppVendor ) == 0 );
+
+                STIF_ASSERT_TRUE( appInfo->Version().iMajor == KAppVersion.iMajor );
+                STIF_ASSERT_TRUE( appInfo->Version().iMinor == KAppVersion.iMinor );
+                STIF_ASSERT_TRUE( appInfo->Version().iBuild == KAppVersion.iBuild );
+
+                STIF_ASSERT_TRUE( appInfo->Size() == KAppSize );
+                STIF_ASSERT_TRUE( appInfo->Bitmaps() == NULL );
+
+                CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+                CleanupStack::PushL( buf );
+                RBufWriteStream writeStream( *buf );
+                CleanupClosePushL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() == 0 );
+                appInfo->ExternalizeL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() > 0 );
+                CleanupStack::PopAndDestroy( &writeStream );
+                CleanupStack::PopAndDestroy( buf );
+
+                CleanupStack::PopAndDestroy( appInfo );
+                }
                 break;
-            case EChangeDelayedWaitNoteText:
-                User::After( KThreeSeconds );
-                TRAP( result, iSifUi->DisplayWaitNoteL( KChangedDelayedWaitNoteText, reqStatus ) );
-                if( result == KErrNone && reqStatus != KRequestPending )
+
+            case EAppInfoIconTest:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CSifUiAppInfo* appInfo = NULL;
+
+                // TODO: proper icon test needed
+                CApaMaskedBitmap* appBitmap = NULL;
+                appInfo = CSifUiAppInfo::NewLC( KAppName, KAppVendor, KAppVersion, KAppSize, appBitmap );
+
+                CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+                CleanupStack::PushL( buf );
+                RBufWriteStream writeStream( *buf );
+                CleanupClosePushL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() == 0 );
+                appInfo->ExternalizeL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() > 0 );
+                CleanupStack::PopAndDestroy( &writeStream );
+                CleanupStack::PopAndDestroy( buf );
+
+                CleanupStack::PopAndDestroy( appInfo );
+                }
+                break;
+
+            case EShowConfirmation:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CSifUiAppInfo* appInfo = NULL;
+                appInfo = CSifUiAppInfo::NewL( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+                CleanupStack::PushL( appInfo );
+
+                CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+                CleanupStack::PushL( buf );
+                RBufWriteStream writeStream( *buf );
+                CleanupClosePushL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() == 0 );
+                appInfo->ExternalizeL( writeStream );
+                STIF_ASSERT_TRUE( buf->Size() > 0 );
+                CleanupStack::PopAndDestroy( &writeStream );
+                CleanupStack::PopAndDestroy( buf );
+
+                TBool result = EFalse;
+                // TODO: how to close opened dialog automatically?
+                TRAP( error, result = sifUi->ShowConfirmationL( *appInfo ) );
+                if( result )
                     {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
+                    _LIT( KAccepted, "Accepted" );
+                    TestModuleIf().Printf( 1, KTestName, KAccepted );
                     }
+                else
+                    {
+                    _LIT( KCancelled, "Cancelled" );
+                    TestModuleIf().Printf( 1, KTestName, KCancelled );
+                    }
+                CleanupStack::PopAndDestroy( appInfo );
+                }
                 break;
-            case ECloseWaitNote:
-                User::After( KOneSecond );
-                TRAP( result, iSifUi->CloseWaitNote() );
-                if( result == KErrNone )
-                    {
-                    User::WaitForRequest( reqStatus );
-                    result = reqStatus.Int();
-                    }
+
+            case EShowError:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                _LIT( KErrorMessage, "Test error" );
+                _LIT( KErrorDetails, "Test error details" );
+                // TODO: how to close opened dialog automatically?
+                TRAP( error, sifUi->ShowFailedL( KErrNotFound, KErrorMessage, KErrorDetails ) );
+                }
                 break;
+
+            case ELastStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CleanupStack::PopAndDestroy( sifUi );
+                sifUi = NULL;
+                break;
+
             default:
                 User::Leave( KErrGeneral );
                 break;
             }
         }
-
-    delete iSifUi;
-    iSifUi = NULL;
-
-    SetResult( aResult, result );
+    User::LeaveIfError( error );
 
     TestModuleIf().Printf( 0, KTestName, KExit );
+    }
+
+// -----------------------------------------------------------------------------
+// CSifUiTest::ProgressDialogsTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::ProgressDialogsTest( TTestResult& aResult )
+    {
+    TRAPD( result, DoProgressDialogsTestL( aResult ) );
+    SetResult( aResult, result );
     return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
-// CSifUiTest::LaunchHelpTest()
+// CSifUiTest::DoProgressDialogsTestL()
 // -----------------------------------------------------------------------------
 //
-TInt CSifUiTest::LaunchHelpTest( TTestResult& aResult )
+void CSifUiTest::DoProgressDialogsTestL( TTestResult& aResult )
     {
-    _LIT( KTestName, "LaunchHelpTest" );
+    _LIT( KTestName, "ProgressDlgsTest" );
     TestModuleIf().Printf( 0, KTestName, KEnter );
 
-    TInt result = CreateSifUi();
-    if( result == KErrNone )
+    enum TTestSteps
         {
-        AsyncWaitAndSendKeyEventL( KFiveSeconds, KRightSoftkey );
+        EFirstStep,
+        EShowProgress,
+        EUpdateProgress,
+        EShowComplete,
+        ELastStep,
+        EAllDone
+        };
+
+    CSifUi* sifUi = NULL;
+
+    _LIT( KAppName, "NoitaCilppa" );
+    _LIT( KAppVendor, "Rodnev" );
+    const TVersion KAppVersion( 3, 2, 1 );
+    const TInt KAppSize = 0x4321;
+
+    const TInt KMaxProgress = 150;
+    const TInt KUpdateStarts = -10;
+    const TInt KUpdateEnds = KMaxProgress + 10;
+    const TInt KUpdateStep = 4;
+
+    TInt error = KErrNone;
+    for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
+        {
+        TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
+        switch( step )
+            {
+            case EFirstStep:
+                STIF_ASSERT_NULL( sifUi );
+                TRAP( error, sifUi = CSifUi::NewL() );
+                if( !error )
+                    {
+                    CleanupStack::PushL( sifUi );
+                    }
+                break;
 
-        _LIT( KAM_HLP_INSTALL_CAPAB, "AM_HLP_INSTALL_CAPAB" );
-        TRAP( result, iSifUi->LaunchHelpL( KAM_HLP_INSTALL_CAPAB ) );
+            case EShowProgress:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CSifUiAppInfo* appInfo = NULL;
+                appInfo = CSifUiAppInfo::NewL( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+                CleanupStack::PushL( appInfo );
+                TRAP( error, sifUi->ShowProgressL( *appInfo, KMaxProgress ) );
+                CleanupStack::PopAndDestroy( appInfo );
+                }
+                break;
 
-        delete iSifUi;
-        iSifUi = NULL;
+            case EUpdateProgress:
+                {
+                STIF_ASSERT_NOT_NULL( sifUi );
+                for( TInt i = KUpdateStarts; i < KUpdateEnds; i += KUpdateStep )
+                    {
+                    TRAP( error, sifUi->IncreaseProgressBarValueL( KUpdateStep ) );
+                    }
+                }
+                break;
+
+            case EShowComplete:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                TRAP( error, sifUi->ShowCompleteL() );
+                break;
+
+            case ELastStep:
+                STIF_ASSERT_NOT_NULL( sifUi );
+                CleanupStack::PopAndDestroy( sifUi );
+                sifUi = NULL;
+                break;
+
+            default:
+                User::Leave( KErrGeneral );
+                break;
+            }
         }
-    SetResult( aResult, result );
+    User::LeaveIfError( error );
 
     TestModuleIf().Printf( 0, KTestName, KExit );
-    return KErrNone;
     }
 
--- a/appinstaller/AppinstUi/Daemon/Inc/daemonbehaviour.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Inc/daemonbehaviour.h	Fri Jun 11 13:45:18 2010 +0300
@@ -20,6 +20,8 @@
 
 #include <e32base.h>
 #include <f32file.h>
+#include <usif/scr/scr.h>
+#include <usif/scr/screntries.h>
 
 #include "daemon.h"
 #include "daemoninstaller.h"
@@ -119,8 +121,13 @@
     
     
     void UpdateComponentStatusL( TChangeType aChangeType, TInt aDrive );
-
-          
+    
+    void UpdateStatusL( Usif::RSoftwareComponentRegistry& iScrServer,
+                        Usif::TComponentId componentId,
+                        TChangeType aChangeType,
+                        TInt aTargetDrive,
+                        RArray<TApaAppUpdateInfo>& iAppInfoArray );
+    
 private:
     
     RFs iFs;        
@@ -131,13 +138,10 @@
     // Has MediaProcessingStart already been called?
     TBool iStartNotified;
     TInt iDrive;
-  
-#ifdef RD_MULTIPLE_DRIVE 
     // Contains inserted drives.
-    RArray<TInt> iDriveArray;
-#endif   
+    RArray<TInt> iDriveArray;   
     // General program status. Note this do not affect to plug-in.
-    TInt iGeneralProcessStatus; //For uninstaller
+    TInt iGeneralProcessStatus; //For uninstaller   
     };
 
 } // namespace Swi
--- a/appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -390,11 +390,12 @@
         iIsIndicator = ETrue;             
         }
     
-    TReal processValue = aProcessValue;
-        
+    TInt value = static_cast<TInt>( aProcessValue );
+    FLOG_1( _L("Daemon: ActivateIndicatorL: precent value: %d"), value );
+          
     CHbSymbianVariant* hbParam = CHbSymbianVariant::NewL( 
-                                                 &processValue,
-                                                 CHbSymbianVariant::EReal );    
+                                                 &value,
+                                                 CHbSymbianVariant::EInt );    
     CleanupStack::PushL( hbParam );
     
     FLOG( _L("Daemon: ActivateIndicatorL: Activate") );
--- a/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -18,9 +18,8 @@
 #include <usif/scr/scr.h>
 #include <usif/scr/scrcommon.h>
 #include <usif/scr/screntries.h>
-#include <apgcli.h>    //RApaSession
-//TODO enable apparc support
-//#include <appinfo.h> //TAppInfo
+#include <apgcli.h>    // RApaSession
+#include <apgupdate.h> // TApaAppUpdateInfo
 
 #include "daemonbehaviour.h"
 #include "swispubsubdefs.h"
@@ -31,7 +30,6 @@
 
 using namespace Swi;
 
-
 // -----------------------------------------------------------------------
 // CDaemonBehaviour::NewL
 // -----------------------------------------------------------------------
@@ -83,11 +81,8 @@
         }   
     delete iSisInstaller;
     iSisInstaller = NULL;
-    iFs.Close();  
-            
-#ifdef RD_MULTIPLE_DRIVE    
-    iDriveArray.Close();
-#endif        
+    iFs.Close();                
+    iDriveArray.Close();        
     }
 
 // -----------------------------------------------------------------------
@@ -106,7 +101,7 @@
 //     
 void CDaemonBehaviour::MediaChangeL(TInt aDrive, TChangeType aChangeType)
     {
-    FLOG_1( _L("Daemon: Media change %d"), aDrive );
+    FLOG_1( _L("Daemon: MediaChangeL: Media change %d"), aDrive );
     RSisRegistryWritableSession registrySession;
     
     User::LeaveIfError( registrySession.Connect() );
@@ -115,20 +110,23 @@
     
     if ( aChangeType==EMediaInserted )
         {
-        FLOG( _L("Daemon: Media inserted") ); 
-
+        FLOG( _L("Daemon: MediaChangeL: Media inserted") ); 
+        TInt err = KErrNone;
         // Notify SCR and AppArc for media change.
-        UpdateComponentStatusL( aChangeType, aDrive );
+        TRAP( err, UpdateComponentStatusL( aChangeType, aDrive ) );
+        FLOG_1( _L("Daemon: UpdateComponentStatusL err = %d"), err );
 
         // We need call sis registry since this call will
         // activate sis registry to clean uninstalled components
         // from inserted media.
-        registrySession.AddDriveL(aDrive);
+        registrySession.AddDriveL( aDrive );
                                                 
         // Scan directory on the card and run pre-installed through SWIS
-        FLOG( _L("Daemon: Media change: Process preinstalled files") );
-        ProcessPreinstalledFilesL(aDrive);            
-       
+        FLOG( _L("Daemon: MediaChangeL: Process preinstalled files") );
+        ProcessPreinstalledFilesL( aDrive );  
+        FLOG_1( _L("Daemon: MediaChangeL: StartInstalling drive: %d"), aDrive );
+        iSisInstaller->StartInstallingL();
+                      
         // Add inserted media drive to drive array.                     
         if ( iDriveArray.Find(aDrive) == KErrNotFound )
             {                
@@ -137,19 +135,22 @@
         }
     else if (aChangeType==EMediaRemoved)
         {
-        FLOG( _L("Daemon: Media removed") );       
-                   
+        FLOG( _L("Daemon: MediaChangeL: Media removed") );       
+        TInt err = KErrNone;           
         // Notify SCR and AppArc for media change.
-        UpdateComponentStatusL( aChangeType, aDrive );
+        TRAP( err, UpdateComponentStatusL( aChangeType, aDrive ) );
+        FLOG_1( _L("Daemon: UpdateComponentStatusL err = %d"), err );
  
         // Get Installer state.                   
         TBool installerRunning = iSisInstaller->IsInstalling();
+        FLOG_1( _L("Daemon: MediaChangeL: IsInstalling = %d"), installerRunning );
         
+        FLOG( _L("Daemon: MediaChangeL: Cancel install process") );
         // Cancel all requests for install
         iSisInstaller->Cancel();                       
     
         // Notify plugin
-        if(iSwiDaemonPlugin)
+        if( iSwiDaemonPlugin )
             {
             TInt index = iDriveArray.Find(aDrive);
             iSwiDaemonPlugin->MediaRemoved(index);
@@ -163,22 +164,24 @@
             iDriveArray.Remove(index); 
             iDriveArray.Compress();   
             }
-    
+                
         // Continue installing from other drives if needed.
         if ( installerRunning )
-            {                                     
+            {
+            FLOG( _L("Daemon: MediaChangeL: Continue installing other drives") );
             // Get count of inserted drives.
             TInt count = iDriveArray.Count();
-                    
+            FLOG_1( _L("Daemon: Drive count = %d"), count );        
             if ( count )            
-                {                             
+                {
+                // Find packages for other drives.
                 for(index = 0; index < count; index++ )
                     {                   
-                    ProcessPreinstalledFilesL(iDriveArray[index]);
-                    
-                    FLOG_1( _L("Daemon: StartInstallingL for drive: %d"), index);
-                    iSisInstaller->StartInstallingL();                
+                    ProcessPreinstalledFilesL(iDriveArray[index]);                                        
                     }
+                // Start installing.
+                FLOG( _L("Daemon: MediaChangeL: StartInstallingL") );
+                iSisInstaller->StartInstallingL();
                 }                
             }                      
         }
@@ -192,11 +195,10 @@
 //          
 void CDaemonBehaviour::ProcessPreinstalledFilesL(TInt aDrive)
     {
+    FLOG_1( _L("Daemon: ProcessPreinstalledFilesL: Drive index: %d"), 
+            aDrive );
      _LIT( KDaemonPrivatePath,":\\private\\10202dce\\" );
     
-#ifndef RD_MULTIPLE_DRIVE
-    iSisInstaller->Cancel();
-#endif      
     // For uninstaller
     // Set on installing mode.
     iGeneralProcessStatus = EStateInstalling; 
@@ -206,7 +208,7 @@
     ProcessPreinstalledFilesL(aDrive, KDaemonPrivatePath);
     iStartNotified = EFalse;
     iDrive = aDrive;    
-    iSisInstaller->StartInstallingL();
+    FLOG( _L("Daemon: ProcessPreInstalledFilesL END") );
     }
 
 // -----------------------------------------------------------------------
@@ -214,8 +216,7 @@
 // -----------------------------------------------------------------------
 //        
 void CDaemonBehaviour::ProcessPreinstalledFilesL(TInt aDrive, const TDesC& aDirectory)
-    {
-    FLOG_1( _L("Daemon: ProcessPreInstalledFilesL: Drive index: %d"), aDrive );
+    {    
     TPath preInstalledPath;
     TChar drive;
     RFs::DriveToChar(aDrive, drive);
@@ -240,7 +241,8 @@
             if(!entry.IsDir())
                 {
                 TFileName fileName(preInstalledPath);
-                fileName.Append(entry.iName);
+                fileName.Append(entry.iName);                
+                // Add files to sis installer.
                 iSisInstaller->AddFileToInstallL(fileName);
                 }
             }
@@ -337,13 +339,12 @@
 // CDaemonBehaviour::UpdateComponentStatusL
 // -----------------------------------------------------------------------
 //         
-void CDaemonBehaviour::UpdateComponentStatusL( 
-   TChangeType aChangeType, 
-   TInt aDrive )
+void CDaemonBehaviour::UpdateComponentStatusL( TChangeType aChangeType, 
+                                               TInt aDrive )
     {
     FLOG( _L("Daemon: UpdateComponentStatus") ); 
             
-    Usif::RSoftwareComponentRegistry scrServer; 
+    Usif::RSoftwareComponentRegistry scrServer;       
     User::LeaveIfError( scrServer.Connect() );
     CleanupClosePushL( scrServer );
             
@@ -360,118 +361,178 @@
    
     if ( componentIdList.Count() )
         {
-// TODO Enabloi AppArcin päivitys. 
-// TODO Hae TAppInfon headeri includeen.        
-//            RArray<TAppInfo> appinfoArray;
-//            CleanupClosePushL( appinfoArray );
-    
-        // Convert the given target drive number to drive letter.
+        RArray<TApaAppUpdateInfo> appInfoArray;         
+        CleanupClosePushL( appInfoArray );
+        FLOG_1( _L("Daemon: target drive: %d"), aDrive );
+                              
+#ifdef _DEBUG
         TChar targetDrive;
         iFs.DriveToChar( aDrive, targetDrive );
-        FLOG_1( _L("Daemon: targetDrive: 0x%x"), TUint( targetDrive ) ); 
+        HBufC* tarceBuf = HBufC::NewL( 16 );
+        TPtr bufPtr = tarceBuf->Des();
+        bufPtr.Append( targetDrive );
+        FLOG_1( _L("Daemon: target drive: %S"), &bufPtr ); 
+        delete tarceBuf;
+#endif         
     
         FLOG( _L("Daemon: Check all SCR native components") ); 
         // Check all components in SCR. If media is removed/inserted
         // change status flag in SCR and in AppArc.
         for ( TInt index=0; index < componentIdList.Count(); index++ )
-            {                       
-            Usif::CComponentEntry* entry = Usif::CComponentEntry::NewL();
-            CleanupStack::PushL( entry );
-            
+            {  
             Usif::TComponentId componentId( componentIdList[index] );
             FLOG_1( _L("Daemon: componentId: %d"), componentId ); 
-            
-            scrServer.GetComponentL( componentId, 
-                                     *entry, 
-                                     Usif::KUnspecifiedLocale ); 
-            
-// TODO poista ei tarvetta jos filter toimii.
-            //if ( entry->SoftwareType() == Usif::KSoftwareTypeNative  )
+        
+            // Check that package is not in ROM. If package is in rom
+            // it can not be removed/not present.
+            TBool inRom = scrServer.IsComponentOnReadOnlyDriveL( componentId );
+            FLOG_1( _L("Daemon: IsComponentOnReadOnlyDriveL: %d"), inRom ); 
             
-            // Get all component drives.
-            TDriveList driveList;                
-            driveList = entry->InstalledDrives();
-               
-            TBool isInTargetDrive = EFalse;
-
-            FLOG( _L("Daemon: Check all drives for this component") ); 
-            // Go through all drives which have files for 
-            // this component.
-            for ( TInt i = 0; i < KMaxDrives; i++ )
-                {                
-                if ( driveList[i] != 0 )
-                    {
-                    TChar installDrive = 
-                            static_cast<TChar>( driveList[i] );
-                
-                    FLOG_1( _L("Daemon: driveList index: %d"), i ); 
-                    FLOG_1( _L("Daemon: installDrive: 0x%x"), TUint( installDrive ) ); 
-                    
-                    if ( targetDrive == installDrive )
-                        {
-                        // Ok we have files in this target drive.
-                        isInTargetDrive = ETrue;
-                        FLOG( _L("Daemon: SW in target drive.") ); 
-                        }
-                    }
-                }
-                                
-            // Check if component or part of it is in the media.
-            if ( isInTargetDrive )
+            if ( !inRom )
+                {              
+                UpdateStatusL( scrServer, 
+                               componentId, 
+                               aChangeType,
+                               aDrive,
+                               appInfoArray );
+                }                            
+            } // for loop
+        
+        FLOG_1( _L("Daemon: appInfoArray.Count = %d"), appInfoArray.Count() ); 
+        
+        // Check do we have updated some application info.
+        if ( appInfoArray.Count() )
+            {             
+            // Update AppArc list after we have all application 
+            // uids/status in array. 
+            FLOG( _L("Daemon: Update AppArc") );
+            RApaLsSession appArcSession;
+            TInt err = appArcSession.Connect();
+            FLOG_1( _L("Daemon: appArcSession.Connect err = %d"), err ); 
+            if ( !err )
                 {
-                FLOG( _L("Daemon: Set component status to SCR") ); 
-//                    TAppInfo appInfo;                     
-//                    appInfo.iAppUid = componentId;
-                                    
-                if ( aChangeType == EMediaInserted )
-                    {  
-                    // Update component flag to SCR.
-                    scrServer.SetIsComponentPresentL( componentId, 
-                                                      ETrue );
-                    FLOG( _L("Daemon: Set component present = TRUE") );                             
-                    // Set app status for AppArc. AppArc sees this 
-                    // as new component.
-//                        appInfo.iAppUid = TAppInfo::ENewApp;
-                    }
-                else if ( aChangeType==EMediaRemoved )
-                    {
-                   // Update component flag to SCR.
-                    scrServer.SetIsComponentPresentL( componentId, 
-                                                      EFalse );
-                    FLOG( _L("Daemon: Set component present = FALSE") );                            
-                    // Set app status for AppArc. AppArc sees this 
-                    // component as removed.
-//                        appInfo.iAppUid = TAppInfo::ERemoveApp;
-                    }
-                
-                // Add component info to array.
-//                    appinfoArray.Append( appInfo );                    
-                }                     
-            
-            CleanupStack::PopAndDestroy( entry );
-            entry = NULL;
-            } // for
-//TODO enable AppArc support when TAppInfo is available.            
-/*       
-         FLOG( _L("Daemon: Set component status to AppArc") ); 
-         // Update AppArc list after we have all components in array.               
-         RApaLsSession appArcSession;
-         TInt err = appArcSession.Connect();
-         if ( !err )
-             {
-             CleanupClosePushL(appArcSession);
-             appArcSession.UpdateAppListL( appinfoArray );
-             CleanupStack::PopAndDestroy();                   
-             }
-        
-        CleanupStack::PopAndDestroy( &appinfoArray );
-*/ 
+                CleanupClosePushL( appArcSession );            
+                FLOG( _L("Daemon: UpdateAppListL") ); 
+                appArcSession.UpdateAppListL( appInfoArray );            
+                CleanupStack::PopAndDestroy(); // appArcSession                 
+                }
+            }
+        CleanupStack::PopAndDestroy( &appInfoArray );
         } // if componentList.Count()
              
     CleanupStack::PopAndDestroy( &componentIdList ); //componentIDList.Close();
     CleanupStack::PopAndDestroy( filter ); 
     CleanupStack::PopAndDestroy( &scrServer );  
     FLOG( _L("Daemon: UpdateComponentStatus END") ); 
-    }       
+    } 
+
+// -----------------------------------------------------------------------
+// CDaemonBehaviour::UpdateStatusL
+// -----------------------------------------------------------------------
+//    
+void CDaemonBehaviour::UpdateStatusL( 
+    Usif::RSoftwareComponentRegistry& aScrServer,
+    Usif::TComponentId aComponentId,
+    TChangeType aChangeType,
+    TInt aTargetDrive,
+    RArray<TApaAppUpdateInfo>& aAppInfoArray )     
+    {
+    FLOG( _L("Daemon: CDaemonBehaviour::UpdateStatusL start") ); 
+    
+    Usif::CComponentEntry* entry = Usif::CComponentEntry::NewL();
+    CleanupStack::PushL( entry );
+        
+    TInt err = KErrNone;
+    TRAP( err, aScrServer.GetComponentL( aComponentId, 
+                                         *entry, 
+                                         Usif::KUnspecifiedLocale ) );    
+    FLOG_1( _L("Daemon: GetComponentL TRAP err = %d"), err );
     
+    // If we get error let's not stop the loop.
+    if ( !err )
+        { 
+        TBool isInTargetDrive = EFalse;
+        // Get all component drives.
+        TDriveList driveList;                
+        driveList = entry->InstalledDrives();           
+
+        FLOG( _L("Daemon: Check all drives for this component") ); 
+        // Go through all drives which have files for this component.
+        for ( TInt i = 0; i < KMaxDrives; i++ )
+            {                
+            if ( driveList[i] != 0 )
+                {                                           
+                FLOG_1( _L("Daemon: Found drive: %d"), i ); 
+                
+                if ( aTargetDrive == i )
+                    {
+                    // Ok we have files in this target drive.
+                    isInTargetDrive = ETrue;
+                    FLOG( _L("Daemon: Component has files in target drive") ); 
+                    }
+                }
+            } // for
+                            
+        // Check if component or part of it is in the media.
+        if ( isInTargetDrive )
+            {
+            FLOG( _L("Daemon: Set component status to SCR") );
+            // Update component flag to SCR. 
+            if ( aChangeType == EMediaInserted )
+                {  
+                FLOG( _L("Daemon: Set component present = TRUE") );                                  
+                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, ETrue ) );                                                                            
+                }
+            else if ( aChangeType==EMediaRemoved )
+                {
+                FLOG( _L("Daemon: Set component present = FALSE") );                              
+                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, EFalse ) );                                                                               
+                }            
+            FLOG_1( _L("Daemon: SetIsComponentPresentL TRAP err = %d"), err );
+            
+            // We need to update applications status to AppArc when
+            // there is some media change. AppArc needs application
+            // UID (not package UID) so we need to get all app. UIDs
+            // from the package and set them to present or not present.
+            
+            FLOG( _L("Daemon: Create application status for AppArc") );
+            FLOG( _L("Daemon: Get applications UIDs from SCR") );
+            RArray<TUid> appUidArray;
+            CleanupClosePushL( appUidArray );
+                        
+            TRAP( err, aScrServer.GetAppUidsForComponentL( aComponentId, appUidArray ) );
+            FLOG_1( _L("Daemon: GetAppUidsForComponentL TRAP err = %d"), err );                        
+            FLOG_1( _L("Daemon: UID array count = %d"), appUidArray.Count() );
+           
+            for (TInt index = 0; index < appUidArray.Count(); index++)
+                {
+                FLOG_1( _L("Daemon: Add app UID = 0x%x"), 
+                        appUidArray[index].iUid );                
+            
+                TApaAppUpdateInfo appInfo;
+                appInfo.iAppUid = appUidArray[index]; 
+                
+                if ( aChangeType == EMediaInserted  )
+                    {
+                    appInfo.iAction = TApaAppUpdateInfo::EAppPresent;
+                    FLOG( _L("Daemon: Set app = EAppPresent") );
+                    }
+                else
+                    {
+                    appInfo.iAction = TApaAppUpdateInfo::EAppNotPresent;
+                    FLOG( _L("Daemon: Set app = EAppNotPresent") );
+                    }
+                
+                aAppInfoArray.Append( appInfo );   
+                }                           
+            CleanupStack::PopAndDestroy(&appUidArray);                                  
+            }   // if isInTargetDrive        
+        }   // if err
+    
+    CleanupStack::PopAndDestroy( entry );
+    entry = NULL;
+    
+    FLOG( _L("Daemon: CDaemonBehaviour::UpdateStatusL end") ); 
+    }
+
 //EOF
--- a/appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -15,9 +15,6 @@
 *
 */
 
-#include <usif/scr/scr.h>
-#include <usif/scr/screntries.h>
-
 #include "daemoninstaller.h"
 #include "DialogWrapper.h"
 #include "swispubsubdefs.h"
@@ -45,7 +42,7 @@
 
 const static TInt KInstallRetryWaitTime = 10000000; // 10 secs
 // For uninstaller
-const static TInt KWaitUninstallerTime = 1000000; // 1 secs  
+const static TInt KWaitUninstallerTime = 1000000; // 1 secs 
 
 _LIT(KMCSisInstaller,"Daemon-Installer"); // Minor-Component name
 
@@ -86,10 +83,11 @@
 //
 CSisInstaller::~CSisInstaller()
     {
+    FLOG( _L("Daemon: CSisInstaller::~CSisInstaller") );
     Cancel();
     iTimer.Close();
     iFilesToInstall.ResetAndDestroy();
-    iFilesToInstall.Close();
+    iFilesToInstall.Close();    
     delete iInstallLauncher;
     delete iDialogs;      
     delete iPreviouslyInstalledAppsCache;
@@ -127,6 +125,7 @@
     iProgramStatus = &aMainStatus;  
     iUpdateCache = ETrue;    
     iFileOpen = EFalse;    
+    iInstallLauncher = NULL;
     }
 		
 // -----------------------------------------------------------------------
@@ -152,7 +151,7 @@
     {
     FLOG( _L("Daemon: StartInstallingL") );
 
-    if(!iFilesToInstall.Count())
+    if( !iFilesToInstall.Count() )
         {
         // For uninstaller
         // Check state, if installing change it to idle.
@@ -161,7 +160,7 @@
             FLOG( _L("Daemon: StartInstallingL: Set EStateIdle") );
             iProgramStatus->SetProgramStatusToIdle();
             }        
-        
+        FLOG( _L("Daemon: StartInstallingL: User::Leave(KErrAbort)") );
         User::Leave(KErrAbort);
         }
     
@@ -172,12 +171,14 @@
         {
         FLOG( _L("Daemon: StartInstallingL: Set EStateInstalling") );
         iProgramStatus->SetProgramStatus( EStateInstalling );
-        }         
-    FLOG_1( _L("[CSisInstaller] ConstructL iGeneralProcessStatus = %d"),
-            iGeneralProcessStatus );  
+        } 
+    
+    FLOG_1( _L("Daemon: iGeneralProcessStatus: %d"), iGeneralProcessStatus );     
+    FLOG_1( _L("Daemon: iInstallLauncher: 0x%x"),iInstallLauncher );  
         
-    if ( !iInstallLauncher )
+    if ( iInstallLauncher == NULL )
         {
+        FLOG( _L("Daemon: Create iInstallLauncher") );
         iInstallLauncher = CSilentLauncher::NewL( iFs );   
         
         // Update cache so we do not try to start install for
@@ -191,8 +192,7 @@
     if ( iState == EDSisInstallerStateIdle )
         {                
         // Reset the error
-        iInstallErr = KErrNone; 
-          
+        iInstallErr = KErrNone;           
         CompleteSelf();
         }
     }
@@ -225,7 +225,9 @@
     if ( !IsActive() )
         {        
         TRequestStatus* status = &iStatus;
-        User::RequestComplete(status,KErrNone);
+        FLOG( _L("Daemon: CompleteSelf: RequestComplete") );
+        User::RequestComplete( status, KErrNone );
+        FLOG( _L("Daemon: CompleteSelf: SetActive") );
         SetActive();
         }    
     }
@@ -446,8 +448,9 @@
                                     iSisFile ) );                                                                                  
                             
                             // Let's continue to give all packages to plug-in. 
-                            // Note that we do not have iStatus as this is not async. call 
-                            // so we can not use EDSisInstallerStateInstalling state.                             
+                            // Note that we do not have iStatus as this is not 
+                            // async. call so we can not use 
+                            // EDSisInstallerStateInstalling state.                             
                             iState = EDSisInstallerStateIdle;                                                 
                             iInstallerState = iState;
                 
@@ -456,19 +459,19 @@
                             CompleteSelf(); 
                             }                            
                         else
-                            {                                                
+                            {  
+                            // Start also the universal indicator.
+                            TRAP_IGNORE( iDialogs->ActivateIndicatorL( iPercentValue ) );
+                            // Start to show progress dialog. Dialog is shown 
+                            // only 3 sec. 
+                            TRAP_IGNORE( iDialogs->ShowWaitingNoteL() );    
+                                                        
                             FLOG_1( _L("Daemon: Start install for %S"), &iSisFile );
                                                                                                                                                                                                                                                    
                             iInstallLauncher->InstallL( iSisFileHandle, 
                                                         iSisFile, 
                                                         iStatus );
-                            
-                            // Start to show progress dialog. Dialog is shown 
-                            // only 3 sec. 
-                            iDialogs->ShowWaitingNoteL();    
-                            // Start also the universal indicator.
-                            iDialogs->ActivateIndicatorL( iPercentValue );
-                            
+                                                        
                             iState = EDSisInstallerStateInstalling;                       
                             iInstallerState = iState;                                                   
                             SetActive();                               
@@ -508,8 +511,7 @@
                     TInt err = iSisFileHandle.Open( 
                                     iFs, 
                                     iSisFile, 
-                                    EFileRead | EFileShareReadersOnly
-                                    /*EFileShareReadersOrWriters|EFileRead*/ ); 
+                                    EFileRead | EFileShareReadersOnly ); 
                                                            
                     if ( err )
                          {
@@ -692,12 +694,17 @@
                             HasBeenPreviouslyInstalled(packageId);
 	FLOG_1( _L("Daemon: Has been installed (cache) = %d"), !needsInstalling );
 	
-// TODO: Onko rom stubien tarkistus tarpeen jos upgrade ei ole sallittu.
-// Ei taida kannattaa tarksitaan RU ei pitäisi mennä läpi.
-	FLOG( _L("Daemon: HUOM ROM STUBEJA EI TARKISTETA") ); 	
+	// No need to check rom stubs in here anymore. 
+	// Note 1: SWI Daemon policy has been that RU packages are not installed 
+	// from removable media.	
+	// Note 2: UpdateAllL will add all pkg uids in cache (PreviouslyInstalled),
+	// so rom upgrades are not installed since uid is found from the cache.
+	// Note 3: Install params do not allow RU to be installed. So SWI will
+	// reject RU (rom upgrade) package anyway.
+
 	/*	
-	// Huom! edellinen koodi ollut väärin koska UID on jo cachessä !
-	// Tarkistus pitää tehdä vain jos UID löytyy cachestä.
+	// Note! this code has been wrong. No need to check stubs since
+	// policy do not allow RU updates and SWI will reject the install.
 	if ( !needsInstalling )
         {
         RSisRegistrySession registry;
@@ -830,9 +837,7 @@
             // index counter is updated before install starts.
             iPercentValue = 100;
             }
-        }
-        
-    //TInt tempVal = (TInt)iPercentValue;    
+        }           
     FLOG_1( _L("Daemon: CalcPercentValue value = %d"), (TInt)iPercentValue );
     }
 
--- a/appinstaller/AppinstUi/Daemon/Src/main.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/main.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -44,17 +44,6 @@
     // Rename thread as SWI Daemon.
     User::RenameThread( KSWIDaemonInstaller );  
 
-    
-#ifdef __WINS__   
-//TODO: this is tomprary h7ack since we can not show UI
-// dialogs if QT is not up in wins.
-FLOG( _L("Daemon: Let's wait QT UI to boot up in WINS env.") );   
-FLOG( _L("Daemon: Start SWI Daemon after 300 sec.") );   
-User::After( 15000000 );
-//User::After( 150000000 );
-//User::After( 15000000 );
-#endif  // WINS
-
     // For uninstaller
     // Set status to installing just to be sure that uninstaller 
     // do not run before installing in complete.
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Fri Jun 11 13:45:18 2010 +0300
@@ -23,7 +23,7 @@
 #include "sifuidialogdefinitions.h"     // enum SifUiDeviceDialogType
 #include <qmobilityglobal.h>            // QTM namespace macros
 
-class QTranslator;
+class HbTranslator;
 class SifUiDialogTitleWidget;
 class SifUiDialogContentWidget;
 class HbIndicator;
@@ -65,12 +65,11 @@
     void showEvent(QShowEvent *event);
 
 private:    // new functions
-    void installTranslator();
-    void removeTranslator();
+    bool isInstallIndicatorActive();
     bool constructDialog(const QVariantMap &parameters);
     bool updateFromParameters(const QVariantMap &parameters);
-    void updateButtons();
-    void sendResult(bool accepted);
+    void updateButtons(const QVariantMap &parameters);
+    void sendResult(SifUiDeviceDialogReturnValue value);
     void monitorIndicatorActivity();
 
 private slots:
@@ -78,14 +77,14 @@
     void handleCancelled();
     void handleMemorySelectionChanged(const QChar &driveLetter);
     void handleHidePressed();
-    void handleIndicatorActivityChanged();
     void handleShowInstalled();
     void handleErrorDetails();
 
 private:
     Q_DISABLE_COPY(SifUiDialog)
 
-    QTranslator *mTranslator;
+    HbTranslator *mCommonTranslator;
+    HbTranslator *mSifUITranslator;
     int mLastDialogError;
     bool mShowEventReceived;
     SifUiDeviceDialogType mDialogType;
@@ -94,6 +93,8 @@
     int mInstallError;
     QVariantMap mResultMap;
     HbAction *mIgnoreCloseAction;
+    HbAction *mPrimaryAction;
+    HbAction *mSecondaryAction;
     HbIndicator *mIndicator;
 
     QTM_PREPEND_NAMESPACE(QValueSpaceSubscriber) *mSubscriber;
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Fri Jun 11 13:45:18 2010 +0300
@@ -41,11 +41,6 @@
     void updateFromParameters(const QVariantMap &parameters);
     void changeType(SifUiDeviceDialogType type);
 
-    QString applicationName() const;
-    bool isDefaultIconUsed() const;
-    void iconHandles(int &iconHandle, int &maskHandle) const;
-    void progressInfo(int &finalValue, int &currentValue) const;
-
 signals:
     void memorySelectionChanged(const QChar &driveLetter);
 
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Fri Jun 11 13:45:18 2010 +0300
@@ -27,12 +27,19 @@
     SifUiErrorNote = 4
     };
 
+enum SifUiDeviceDialogReturnValue
+    {
+    SifUiContinue = 0,
+    SifUiCancel = 1,
+    SifUiIndicator = 3
+    };
+
 // Variant map keys for dialog type and title (common to all dialog types)
 const QString KSifUiDialogType = "type";                // enum SifUiDeviceDialogType
 const QString KSifUiDialogTitle = "title";              // string
 
 // Variant map keys for device dialog return values
-const QString KSifUiQueryAccepted = "accept";           // boolean
+const QString KSifUiQueryReturnValue = "ret";           // enum SifUiDeviceDialogReturnValue
 const QString KSifUiSelectedMemory = "drv";             // drive letter
 
 // Variant map keys for "confirmation query" dialog parameters
@@ -50,6 +57,12 @@
 const QString KSifUiProgressNoteFinalValue = "fin";     // integer
 const QString KSifUiProgressNoteValue = "val";          // integer
 
+// Variant map keys for "progress note" and "installation complete note" buttons
+const QString KSifUiProgressNoteIsHideButtonHidden = "hidebtn";     // boolean
+const QString KSifUiProgressNoteIsCancelButtonHidden = "cancelbtn"; // boolean
+const QString KSifUiCompleteNoteIsShowButtonHidden = "showbtn";     // boolean
+const QString KSifUiErrorNoteIsDetailsButtonHidden = "errdtlbtn";   // boolean
+
 // Variant map keys for "error" dialog parameters
 const QString KSifUiErrorCode = "err";                  // integer
 const QString KSifUiErrorMessage = "msg";               // string
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin_resources.iby	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin_resources.iby	Fri Jun 11 13:45:18 2010 +0300
@@ -20,7 +20,6 @@
 
 #include <data_caging_paths_for_iby.hrh>
 
-// TODO: enable when translations ready
-//data=DATAZ_/QT_TRANSLATIONS_DIR/sifuidevicedialogplugin.qm QT_TRANSLATIONS_DIR/sifuidevicedialogplugin.qm
+data=DATAZ_/QT_TRANSLATIONS_DIR/sifuidevicedialogplugin.qm QT_TRANSLATIONS_DIR/sifuidevicedialogplugin.qm
 
 #endif  // SIFUIDEVICEDIALOGPLUGIN_RESOURCES_IBY
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Fri Jun 11 13:45:18 2010 +0300
@@ -17,7 +17,7 @@
 TEMPLATE = lib
 TARGET = sifuidevicedialogplugin
 CONFIG += hb plugin
-#TRANSLATIONS = sifuidevicedialogplugin.ts
+TRANSLATIONS = sifuidevicedialogplugin.ts
 
 INCLUDEPATH += .
 INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,20 +19,20 @@
 #include "sifuidialogtitlewidget.h"
 #include "sifuidialogcontentwidget.h"
 #include "sifuiinstallindicatorparams.h"
+#include <QFile>
 #include <hblabel.h>
 #include <hbaction.h>
 #include <hbindicator.h>
-#include <QTranslator>
-#include <QApplication>                     // qApp()
-#include <QFile>
+#include <hbtranslator.h>
 #include <hbmessagebox.h>
 #include <qvaluespacesubscriber.h>
 #include <xqappmgr.h>                       // XQApplicationManager
 
 QTM_USE_NAMESPACE
 
-const QString KTranslationsPath = "resource/qt/translations/";
-const QString KTranslationsFile = "sifuidevicedialogplugin";
+const QString KTranslationsPath = "/resource/qt/translations/";
+const QString KSifUiTranslationsFile = "sifuidevicedialogplugin";
+const QString KCommonTranslationsFile = "common";
 const QString KSwiErrorsFile = "c:\\temp\\swierrors.txt";
 const QString KSwiErrorFormat = " (%1)";
 
@@ -42,13 +42,14 @@
 // ----------------------------------------------------------------------------
 //
 SifUiDialog::SifUiDialog(const QVariantMap &parameters) : HbDialog(),
-    mLastDialogError(KErrNone), mShowEventReceived(false),
-    mDialogType(SifUiUnspecifiedDialog),
+    mCommonTranslator(0), mSifUITranslator(0), mLastDialogError(KErrNone),
+    mShowEventReceived(false), mDialogType(SifUiUnspecifiedDialog),
     mTitle(0), mContent(0), mResultMap(),
-    mIgnoreCloseAction(0), mIndicator(0), mSubscriber(0)
+    mIgnoreCloseAction(0), mPrimaryAction(0), mSecondaryAction(0),
+    mIndicator(0), mSubscriber(0)
 {
-    // TODO: enable when translations ready
-    //installTranslator();
+    mCommonTranslator = new HbTranslator(KTranslationsPath, KCommonTranslationsFile);
+    mSifUITranslator = new HbTranslator(KTranslationsPath, KSifUiTranslationsFile);
     constructDialog(parameters);
 }
 
@@ -59,9 +60,11 @@
 SifUiDialog::~SifUiDialog()
 {
     delete mSubscriber;
-
-    // TODO: enable when translations ready
-    //removeTranslator();
+    delete mPrimaryAction;
+    delete mSecondaryAction;
+    mIgnoreCloseAction = 0;
+    delete mSifUITranslator;
+    delete mCommonTranslator;
 }
 
 // ----------------------------------------------------------------------------
@@ -85,7 +88,8 @@
 //
 bool SifUiDialog::setDeviceDialogParameters(const QVariantMap &parameters)
 {
-   return updateFromParameters(parameters);
+    setVisible(!isInstallIndicatorActive());
+    return updateFromParameters(parameters);
 }
 
 // ----------------------------------------------------------------------------
@@ -160,28 +164,23 @@
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialog::installTranslator()
+// SifUiDialog::isInstallIndicatorActive()
 // ----------------------------------------------------------------------------
 //
-void SifUiDialog::installTranslator()
+bool SifUiDialog::isInstallIndicatorActive()
 {
-    mTranslator = new QTranslator(this);
-    QString lang = QLocale::system().name();
-    mTranslator->load(KTranslationsFile + lang, KTranslationsPath);
-    qApp->installTranslator(mTranslator);
-}
-
-// ----------------------------------------------------------------------------
-// SifUiDialog::removeTranslator()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialog::removeTranslator()
-{
-    QApplication *app = qApp;
-    if (mTranslator && app) {
-        app->removeTranslator(mTranslator);
-        mTranslator = 0;
+    bool isActive = false;
+    if (!mSubscriber) {
+        mSubscriber = new QTM_PREPEND_NAMESPACE(QValueSpaceSubscriber(
+            KSifUiInstallIndicatorStatusPath));
     }
+    QVariant variant = mSubscriber->value();
+    bool valueOk = false;
+    int intValue = variant.toInt(&valueOk);
+    if (valueOk && intValue) {
+        isActive = true;
+    }
+    return isActive;
 }
 
 // ----------------------------------------------------------------------------
@@ -208,7 +207,7 @@
             this, SLOT(handleMemorySelectionChanged(const QChar &)));
     setContentWidget(mContent);
 
-    updateButtons();
+    updateButtons(parameters);
 
     return true;
 }
@@ -230,7 +229,7 @@
         mContent->updateFromParameters(parameters);
         }
     if (prevDialogType != mDialogType) {
-        updateButtons();
+        updateButtons(parameters);
     }
     if (parameters.contains(KSifUiErrorCode)) {
         mInstallError = parameters.value(KSifUiErrorCode).toInt();
@@ -242,105 +241,99 @@
 // SifUiDialog::updateButtons()
 // ----------------------------------------------------------------------------
 //
-void SifUiDialog::updateButtons()
+void SifUiDialog::updateButtons(const QVariantMap &parameters)
 {
     mIgnoreCloseAction = 0;
 
-    HbAction *primaryAction = 0;
+    if (mPrimaryAction) {
+        removeAction(mPrimaryAction);
+        delete mPrimaryAction;
+        mPrimaryAction = 0;
+    }
     switch (mDialogType) {
         case SifUiConfirmationQuery:
             //: Accepts the SW install confirmation query and starts installation.
-            // TODO: enable when translations ready
-            //primaryAction = new HbAction(hbTrId("txt_sisxui_install_ok"), this);
-            primaryAction = new HbAction(tr("Ok"), this);
-            connect(primaryAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
-            mIgnoreCloseAction = primaryAction;
+            mPrimaryAction = new HbAction(hbTrId("txt_common_button_ok"));
+            connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
+            mIgnoreCloseAction = mPrimaryAction;
             break;
         case SifUiProgressNote:
-            //: Hides the progress dialog. Progress note moves into universal indicator.
-            // TODO: enable when translations ready
-            //primaryAction = new HbAction(hbTrId("txt_sisxui_install_hide"), this);
-            primaryAction = new HbAction(tr("Hide"), this);
-            connect(primaryAction, SIGNAL(triggered()), this, SLOT(handleHide()));
-            mIgnoreCloseAction = primaryAction;
+            if (!parameters.contains(KSifUiProgressNoteIsHideButtonHidden)) {
+                //: Hides the progress dialog. Progress note moves into universal indicator.
+                mPrimaryAction = new HbAction(hbTrId("txt_common_button_hide"));
+                connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleHidePressed()));
+                mIgnoreCloseAction = mPrimaryAction;
+            }
             break;
         case SifUiCompleteNote:
-            //: Opens Application Library to view the installed application.
-            // TODO: enable when translations ready
-            //primaryAction = new HbAction(hbTrId("txt_sisxui_install_show"), this);
-            primaryAction = new HbAction(tr("Show"), this);
-            connect(primaryAction, SIGNAL(triggered()), this, SLOT(handleShowInstalled()));
-            mIgnoreCloseAction = primaryAction;
+            if (!parameters.contains(KSifUiCompleteNoteIsShowButtonHidden)) {
+                //: Opens Application Library to view the installed application.
+                mPrimaryAction = new HbAction(hbTrId("txt_installer_button_show"));
+                connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleShowInstalled()));
+            }
             break;
         case SifUiErrorNote:
-            //: Shows a dialog with further info about the failure (i.e. why installation failed).
-            // TODO: enable when translations ready
-            //primaryAction = new HbAction(hbTrId("txt_sisxui_install_error_details"), this);
-            primaryAction = new HbAction(tr("Details"), this);
-            connect(primaryAction, SIGNAL(triggered()), this, SLOT(handleErrorDetails()));
-            mIgnoreCloseAction = primaryAction;
+            if (!parameters.contains(KSifUiErrorNoteIsDetailsButtonHidden)) {
+                //: Shows a dialog with further info about the failure (i.e. why installation failed).
+                mPrimaryAction = new HbAction(hbTrId("txt_installer_button_details"));
+                connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleErrorDetails()));
+                mIgnoreCloseAction = mPrimaryAction;
+            }
             break;
         default:
             break;
     }
-    setPrimaryAction(primaryAction);
+    if (mPrimaryAction) {
+        addAction(mPrimaryAction);
+    }
 
-    HbAction *secondaryAction = 0;
+    if (mSecondaryAction) {
+        removeAction(mSecondaryAction);
+        delete mSecondaryAction;
+        mSecondaryAction = 0;
+    }
     switch (mDialogType) {
         case SifUiConfirmationQuery:
         case SifUiProgressNote:
-            //: Cancels the SW install confirmation query and closes the dialog.
-            // TODO: enable when translations ready
-            //secondaryAction = new HbAction(hbTrId("txt_sisxui_install_cancel"), this);
-            secondaryAction = new HbAction(tr("Cancel"), this);
-            connect(secondaryAction, SIGNAL(triggered()), this, SLOT(handleCancelled()));
+            if (!parameters.contains(KSifUiProgressNoteIsCancelButtonHidden)) {
+                //: Cancels the SW install confirmation query and closes the dialog.
+                mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel"));
+                connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(handleCancelled()));
+            }
             break;
         case SifUiCompleteNote:
         case SifUiErrorNote:
             //: Closes the dialog. Control returns back to where the installation was started.
-            // TODO: enable when translations ready
-            //secondaryAction = new HbAction(hbTrId("txt_sisxui_install_close"), this);
-            secondaryAction = new HbAction(tr("Close"), this);
-            connect(secondaryAction, SIGNAL(triggered()), this, SLOT(close()));
+            mSecondaryAction = new HbAction(hbTrId("txt_common_button_close"));
+            connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(close()));
             break;
         default:
             break;
     }
-    setSecondaryAction(secondaryAction);
+    if (mSecondaryAction) {
+        addAction(mSecondaryAction);
+    }
 }
 
 // ----------------------------------------------------------------------------
 // SifUiDialog::sendResult()
 // ----------------------------------------------------------------------------
 //
-void SifUiDialog::sendResult(bool accepted)
+void SifUiDialog::sendResult(SifUiDeviceDialogReturnValue value)
 {
-    QVariant acceptedValue(accepted);
-    mResultMap.insert(KSifUiQueryAccepted, acceptedValue);
+    QVariant returnValue(value);
+    mResultMap.insert(KSifUiQueryReturnValue, returnValue);
     emit deviceDialogData(mResultMap);
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialog::monitorIndicatorActivity()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialog::monitorIndicatorActivity()
-{
-    if (!mSubscriber) {
-        mSubscriber = new QValueSpaceSubscriber(KSifUiInstallIndicatorStatusPath);
-        connect(mSubscriber, SIGNAL(contentsChanged()),
-            this, SLOT(handleIndicatorActivityChanged()));
-    }
-}
-
-// ----------------------------------------------------------------------------
 // SifUiDialog::handleAccepted()
 // ----------------------------------------------------------------------------
 //
 void SifUiDialog::handleAccepted()
 {
     mContent->changeType(SifUiProgressNote);
-    sendResult(true);
+    sendResult(SifUiContinue);
 }
 
 // ----------------------------------------------------------------------------
@@ -349,7 +342,7 @@
 //
 void SifUiDialog::handleCancelled()
 {
-    sendResult(false);
+    sendResult(SifUiCancel);
 }
 
 // ----------------------------------------------------------------------------
@@ -368,33 +361,8 @@
 //
 void SifUiDialog::handleHidePressed()
 {
-    if (!mIndicator) {
-        mIndicator = new HbIndicator(this);
-        QVariant applicationName(mContent->applicationName());
-        if (!mContent->isDefaultIconUsed()) {
-            // TODO: send icon to indicator
-        }
-        if (mIndicator->activate(KSifUiInstallIndicatorType, applicationName)) {
-            hide();
-            monitorIndicatorActivity();
-        }
-    }
-}
-
-// ----------------------------------------------------------------------------
-// SifUiDialog::handleIndicatorActivityChanged()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialog::handleIndicatorActivityChanged()
-{
-    QVariant variant = mSubscriber->value();
-    if (variant.isValid() && (variant.type() == QVariant::Int)) {
-        bool valueOk = false;
-        int intValue = variant.toInt(&valueOk);
-        if (valueOk && intValue) {
-            show();
-        }
-    }
+    sendResult(SifUiIndicator);
+    hide();
 }
 
 // ----------------------------------------------------------------------------
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificatedetails.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificatedetails.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,6 +19,7 @@
 #include "sifuidialogcertificateinfo.h"         // SifUiDialogCertificateInfo
 #include <hblabel.h>                            // HbLabel
 #include <hbtextedit.h>                         // HbTextEdit
+#include <hbscrollbar.h>                        // HbScrollBar
 #include <hblistwidget.h>                       // HbListWidget
 #include <hblistwidgetitem.h>                   // HbListWidgetItem
 #include <hbaction.h>                           // HbAction
@@ -107,17 +108,21 @@
     HbLabel *title = new HbLabel(tr("Select certificate"));
     setHeadingWidget(title);
 
-    HbListWidget *content = new HbListWidget;
+    HbListWidget *listWidget = new HbListWidget;
     for (int index = 0; index < count; ++index ) {
         HbListWidgetItem *item = new HbListWidgetItem();
         item->setData(QVariant(mCertificates.at(index)->subjectName()));
-        content->addItem(item);
+        listWidget->addItem(item);
     }
-    setContentWidget(content);
-    connect(content, SIGNAL(activated(HbListWidgetItem*)),
+    listWidget->setScrollDirections(Qt::Vertical);
+    listWidget->setFrictionEnabled(true);
+    listWidget->setScrollingStyle(HbScrollArea::PanWithFollowOn);
+    listWidget->verticalScrollBar()->setInteractive(true);
+    connect(listWidget, SIGNAL(activated(HbListWidgetItem*)),
         this, SLOT(certificateSelected()));
+    setContentWidget(listWidget);
 
-    setPrimaryAction(new HbAction(hbTrId("txt_common_button_close")));
+    addAction(new HbAction(hbTrId("txt_common_button_close"), this));
 }
 
 // ----------------------------------------------------------------------------
@@ -146,12 +151,16 @@
     HbLabel *title = new HbLabel(tr("Certificate details"));
     setHeadingWidget(title);
 
-    HbTextEdit *content = new HbTextEdit;
+    HbTextEdit *textEdit = new HbTextEdit;
     Q_ASSERT(index >= 0 && index < mCertificates.count());
     QString details = certificateDetails(*mCertificates[index]);
-    content->setPlainText(details);
-    content->setReadOnly(true);
-    setContentWidget(content);
+    textEdit->setPlainText(details);
+    textEdit->setReadOnly(true);
+    textEdit->setCursorVisibility(Hb::TextCursorHidden);
+    // TODO: how to display scroll bar and not to show blue border(focus)?
+    setContentWidget(textEdit);
 
-    setPrimaryAction(new HbAction(hbTrId("txt_common_button_close")));
+    //: Closes the dialog. Control returns back to where the installation was started.
+    addAction(new HbAction(hbTrId("txt_common_button_close"), this));
 }
+
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -31,6 +31,7 @@
 #endif  // Q_OS_SYMBIAN
 
 const char KSifUiDefaultApplicationIcon[] = "qtg_large_application";
+const char KSifUiErrorIcon[] = "qtg_large_warning";
 
 const int KSifUiKilo = 1024;
 const int KSifUiMega = 1024*1024;
@@ -252,57 +253,13 @@
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialogContentWidget::applicationName()
-// ----------------------------------------------------------------------------
-//
-QString SifUiDialogContentWidget::applicationName() const
-{
-    if (mAppName) {
-        return mAppName->plainText();
-    }
-    return QString();
-}
-
-// ----------------------------------------------------------------------------
-// SifUiDialogContentWidget::isDefaultIconUsed()
-// ----------------------------------------------------------------------------
-//
-bool SifUiDialogContentWidget::isDefaultIconUsed() const
-{
-    return (mBitmap != 0 && mMask != 0);
-}
-
-// ----------------------------------------------------------------------------
-// SifUiDialogContentWidget::iconHandles()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialogContentWidget::iconHandles(int &iconHandle, int &maskHandle) const
-{
-    if (mBitmap && mMask) {
-        iconHandle = mBitmap->Handle();
-        maskHandle = mMask->Handle();
-    }
-}
-
-// ----------------------------------------------------------------------------
-// SifUiDialogContentWidget::progressInfo()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialogContentWidget::progressInfo(int &finalValue, int &currentValue) const
-{
-    if (mProgressBar) {
-        finalValue = mProgressBar->maximum();
-        currentValue = mProgressBar->progressValue();
-    }
-}
-
-// ----------------------------------------------------------------------------
 // SifUiDialogContentWidget::handleMemorySelectionChange()
 // ----------------------------------------------------------------------------
 //
 void SifUiDialogContentWidget::handleMemorySelectionChange(int selectedIndex)
 {
     QChar selectedDrive = mDriveLetterList[selectedIndex][0];
+
     // TODO: save selected drive to cenrep
 
     emit memorySelectionChanged( selectedDrive );
@@ -319,13 +276,11 @@
         QString nameParam = parameters.value(KSifUiApplicationName).toString();
         if (parameters.contains(KSifUiApplicationVersion)) {
             QString versionParam = parameters.value(KSifUiApplicationVersion).toString();
-            //: Template for application name and version in SW install confirmation query.
-            //: %1 is the application name and %2 is the version number.
+            //: Custom layout ID parent. Template for application name and version in SW install
+            //: confirmation query. %1 is the application name and %2 is the version number.
             //: Version number consist of major, minor, and build numbers.
             //: For example: "Chess (v 1.01(123))".
-            // TODO: enable when translations ready
-            //appName = hbTrId("txt_sisxui_install_appname_version").arg(nameParam, versionParam);
-            appName = tr("%1 (v %2)").arg(nameParam, versionParam);
+            appName = hbTrId("txt_installer_list_appname_version").arg(nameParam, versionParam);
         } else {
             appName = nameParam;
         }
@@ -345,19 +300,13 @@
         if (size > 0) {
             if (size > KSifUiMega) {
                 //: Application size in SW install confirmation query, %1 is in megabytes
-                // TODO: enable when translations ready
-                //appSize = hbTrId("txt_sisxui_install_appsize_mb").arg(size/KSifUiMega);
-                appSize = tr("%1 MB").arg(size/KSifUiMega);
+                appSize = hbTrId("txt_installer_list_appsize_mb").arg(size/KSifUiMega);
             } else if(size > KSifUiKilo) {
                 //: Application size in SW install confirmation query, %1 is in kilobytes
-                // TODO: enable when translations ready
-                //appSize = hbTrId("txt_sisxui_install_appsize_kb").arg(size/KSifUiKilo);
-                appSize = tr("%1 kB").arg(size/KSifUiKilo);
+                appSize = hbTrId("txt_installer_list_appsize_kb").arg(size/KSifUiKilo);
             } else {
                 //: Application size in SW install confirmation query, %1 is in bytes
-                // TODO: enable when translations ready
-                //appSize = hbTrId("txt_sisxui_install_appsize_b").arg(size);
-                appSize = tr("%1 B").arg(size);
+                appSize = hbTrId("txt_installer_list_appsize_b").arg(size);
             }
         }
     }
@@ -413,7 +362,11 @@
 void SifUiDialogContentWidget::updateAppIcon(const QVariantMap &parameters)
 {
     Q_ASSERT(mAppIcon != 0);
-    if (parameters.contains(KSifUiApplicationIconHandle) &&
+
+    if (parameters.contains(KSifUiDialogType) &&
+        (parameters.value(KSifUiDialogType).toInt() == SifUiErrorNote)) {
+        mAppIcon->setIcon(HbIcon(KSifUiErrorIcon));
+    } else if (parameters.contains(KSifUiApplicationIconHandle) &&
         parameters.contains(KSifUiApplicationIconMaskHandle)) {
         int iconHandle = parameters.value(KSifUiApplicationIconHandle).toInt();
         int maskHandle = parameters.value(KSifUiApplicationIconMaskHandle).toInt();
@@ -571,7 +524,14 @@
 {
     if (parameters.contains(KSifUiErrorCode)) {
         // TODO: proper error texts
-        QString errorText = tr("Error %1").arg(parameters.value(KSifUiErrorCode).toInt());
+        bool ok = false;
+        int errorCode = parameters.value(KSifUiErrorCode).toInt(&ok);
+        QString errorText;
+        if (ok) {
+            errorText = tr("Error %1").arg(errorCode);
+        } else {
+            errorText = tr("No error code.");
+        }
         mErrorText->setPlainText(errorText);
         mStackedWidget->setCurrentWidget(mErrorText);
         return true;
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -23,7 +23,6 @@
 #include <hbpushbutton.h>
 #include <hbmessagebox.h>
 
-// TODO: change these to mono icons when available, see graphics request TLIS-855ECE
 const char KSifUiCertTrusted[]    = "qtg_small_secure";
 const char KSifUiCertNotTrusted[] = "qtg_small_untrusted";
 
@@ -81,31 +80,23 @@
     QString title;
     switch (type) {
         case SifUiConfirmationQuery:
-            //: Install confirmation query title. Installation starts if
-            //: the user accepts the query.
-            // TODO: enable when translations ready
-            //title = hbTrId("txt_sisxui_install_conf_head");
-            title = tr("Install?");
+            //: Custom layout ID parent. Install confirmation query title.
+            //: Installation of an application starts if the user accepts the query.
+            title = hbTrId("txt_installer_title_install");
             break;
         case SifUiProgressNote:
-            //: Progress note title. Installation is going on and progress
-            //: bar shows how it proceeds.
-            // TODO: enable when translations ready
-            //title = hbTrId("txt_sisxui_installing_progress_head");
-            title = tr("Installing");
+            //: Progress note title. Installation is going on and progress bar
+            //: shows how it proceeds.
+            title = hbTrId("txt_installer_title_installing");
             break;
         case SifUiCompleteNote:
             //: Installation complete note title. Indicates that installation
-            //: was succesfully completed. User has option to launch AppLib
-            // TODO: enable when translations ready
-            //title = hbTrId("txt_sisxui_install_complete_head");
-            title = tr("Installed");
+            //: was succesfully completed. User has option to launch AppLib.
+            title = hbTrId("txt_installer_title_installed");
             break;
         case SifUiErrorNote:
             //: Installation failed note title. Indicates that installation failed.
-            // TODO: enable when translations ready
-            //title = hbTrId("txt_sisxui_install_failed_head");
-            title = tr("Install failed");
+            title = hbTrId("txt_installer_info_installation_failed");
             break;
         case SifUiUnspecifiedDialog:
         default:
@@ -181,6 +172,7 @@
         mDetailsDialog = new SifUiDialogCertificateDetails(*mCertificates);
         mDetailsDialog->showDetails();
     } else {
+        // TODO: localize
         HbMessageBox::warning(tr("Application is not certified. It's origin and authenticity cannot be proved."));
     }
 }
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h	Fri Jun 11 13:45:18 2010 +0300
@@ -25,6 +25,13 @@
 class QValueSpacePublisher;
 QTM_END_NAMESPACE
 
+// Variant map keys for parameters
+const QString KSifUiInstallIndicatorAppNameKey = "name";    // QString
+const QString KSifUiInstallIndicatorPhaseKey = "phase";     // int (enum Phase)
+const QString KSifUiInstallIndicatorProgressKey = "prog";   // int (0..100)
+const QString KSifUiInstallIndicatorCompleteKey = "done";   // int (KErrNone or error code)
+const QString KSifUiInstallIndicatorIconKey = "icon";       // TBD
+
 
 /**
  * Software install progress indicator for the status indicator area
@@ -45,6 +52,11 @@
 protected:  // from HbIndicatorInterface
     bool handleClientRequest(RequestType type, const QVariant &parameter);
 
+private:    // new Symbian functions, TODO: move to symbian-specific code
+    void CreateNotifierL();
+    void StartListeningOperationsL();
+    void StopListeningOperationsL();
+
 private:    // new functions
     void processParameters(const QVariant &parameter);
     void publishActivityStatus(bool status);
@@ -54,6 +66,13 @@
     int mProgress;
     QTM_PREPEND_NAMESPACE(QValueSpacePublisher) *mPublisher;
     bool mIsActive;
+    enum Phase {
+        Installing,
+        Downloading,
+        CheckingCerts
+    } mPhase;
+    bool mIsComplete;
+    int mErrorCode;
 };
 
 #endif  // SIFUIINSTALLINDICATOR_H
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -20,17 +20,37 @@
 #include <QVariant>
 #include <qvaluespacepublisher.h>
 
-const char KSifUiDefaultApplicationIcon[] = "qtg_large_application.svg";
+const char KSifUiDefaultApplicationIcon[] = "qtg_large_application";
+const char KSifUiErrorIcon[] = "qtg_large_warning";
 const QString KSifUiPathSeparator = "/";
 
 
+// ======== LOCAL FUNCTIONS =========
+
+// ---------------------------------------------------------------------------
+// getIntValue()
+// ---------------------------------------------------------------------------
+//
+void getIntValue(const QVariant &variant, int &value)
+{
+    bool ok = false;
+    int temp = variant.toInt(&ok);
+    if (ok) {
+        value = temp;
+    }
+}
+
+
+// ======== MEMBER FUNCTIONS ========
+
 // ---------------------------------------------------------------------------
 // SifUiInstallIndicator::SifUiInstallIndicator()
 // ---------------------------------------------------------------------------
 //
 SifUiInstallIndicator::SifUiInstallIndicator(const QString &indicatorType) :
     HbIndicatorInterface(indicatorType, HbIndicatorInterface::ProgressCategory,
-            InteractionActivated), mAppName(), mPublisher(0), mIsActive(false)
+            InteractionActivated), mAppName(), mProgress(0), mPublisher(0),
+            mIsActive(false), mPhase(Installing), mIsComplete(false), mErrorCode(0)
 {
     mPublisher = new QTM_PREPEND_NAMESPACE(QValueSpacePublisher(KSifUiInstallIndicatorPath));
 }
@@ -74,20 +94,60 @@
 
     switch(role) {
         case DecorationNameRole:
-            data = QString(KSifUiDefaultApplicationIcon);
+            if (mIsComplete && mErrorCode) {
+                data = QString(KSifUiErrorIcon);
+            } else {
+                // TODO: how to set application specific icon if defined?
+                data = QString(KSifUiDefaultApplicationIcon);
+            }
             break;
+
         case PrimaryTextRole:
-            //: Primary text for application installation progress displayed in
-            //: universal indicator menu. Secondary text is the application name.
-            // TODO: use localised UI string when available
-            data = tr("Installing");
-            // TODO: text must indicate installation phase, need to support also
-            // tr("Downloading") and tr("Doing OCSP checks")
+            if (mIsComplete) {
+                if (mErrorCode) {
+                    //: Indicates that application installation failed.
+                    // TODO: localized UI string needed
+                    data = tr("Installation failed");
+                } else {
+                    //: Indicates that application installation is completed.
+                    // TODO: localized UI string needed
+                    data = tr("Installed");
+                }
+            } else {
+                switch(mPhase) {
+                    case Installing:
+                        //: Indicates that application installation is ongoing.
+                        // TODO: localized UI string needed
+                        data = tr("Installing");
+                        break;
+                    case Downloading:
+                        //: Indicates that download is ongoing.
+                        // TODO: localized UI string needed
+                        data = tr("Downloading");
+                        break;
+                    case CheckingCerts:
+                        //: Indicates that OCSP check is ongoing.
+                        // TODO: localized UI string needed
+                        data = tr("Checking certificates");
+                        break;
+                    default:
+                        break;
+                }
+            }
             break;
+
         case SecondaryTextRole:
-            if (!mAppName.isEmpty()) {
-                data = tr("%1 (%L2 %)").arg(mAppName).arg(mProgress);
+            if (mIsComplete) {
+                data = mAppName;
+            } else {
+                if (!mAppName.isEmpty()) {
+                    //: Application name %1 followed by installation progress %L2
+                    // TODO: localized UI string needed
+                    data = tr("%1 (%L2 %)").arg(mAppName).arg(mProgress);
+                }
             }
+            break;
+
         default:
             break;
     }
@@ -125,12 +185,37 @@
 //
 void SifUiInstallIndicator::processParameters(const QVariant &parameter)
 {
-    if (parameter.isValid() && (parameter.type() == QVariant::String)) {
-        mAppName = parameter.toString();
-        mProgress = 0;
-
-        // TODO: get icon if standard icon needs to be replaced
-        // TODO: start listening USIF installation progress
+    if (parameter.isValid()) {
+        if (parameter.type() == QVariant::String) {
+            mAppName = parameter.toString();
+        } else if (parameter.type() == QVariant::Int) {
+            getIntValue(parameter, mProgress);
+        } else if (parameter.type() == QVariant::Map) {
+            QVariantMap map = parameter.toMap();
+            QMapIterator<QString,QVariant> iter(map);
+            while (iter.hasNext()) {
+                iter.next();
+                if (iter.key() == KSifUiInstallIndicatorAppNameKey) {
+                    mAppName = iter.value().toString();
+                } else if (iter.key() == KSifUiInstallIndicatorPhaseKey) {
+                    int value = Installing;
+                    getIntValue(iter.value(), value);
+                    mPhase = static_cast<Phase>(value);
+                } else if (iter.key() == KSifUiInstallIndicatorProgressKey) {
+                    getIntValue(iter.value(), mProgress);
+                } else if (iter.key() == KSifUiInstallIndicatorCompleteKey) {
+                    mIsComplete = true;
+                    mErrorCode = KErrNone;
+                    getIntValue(iter.value(), mErrorCode);
+                } else if (iter.key() == KSifUiInstallIndicatorIconKey) {
+                    // TODO: icon?
+                } else {
+                    // ignore other types
+                }
+            }
+        } else {
+            // ignore other types
+        }
     }
 }
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_compile_tests.bat	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_compile_tests.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -23,4 +23,5 @@
 echo.
 call qmake
 call make debug-winscw
+call make release-armv5
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_instrument_code.bat	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/mt_sifuiinstallindicator/ctc_instrument_code.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -17,16 +17,18 @@
 
 echo ----------------------------------------------------------------------
 echo.
-echo Instrumenting code (winscw udeb, function coverage)
+echo Instrumenting code (armv5 urel and winscw udeb, decision coverage)
 echo.
 echo ----------------------------------------------------------------------
 echo.
 pushd ..\..
 if exist MON.sym del MON.sym
 if exist MON.dat del MON.dat
+if exist profile.txt del profile.txt
 call qmake
 call make distclean
 call qmake
-call ctcwrap -i f -2comp -C "EXCLUDE+moc_*.cpp" -C "EXCLUDE+*.UID.CPP" -C "SKIP_FUNCTION_NAME+SifUiInstallIndicatorPlugin::error()" -C "SKIP_FUNCTION_NAME+qt_plugin_query_verification_data" -C "SKIP_FUNCTION_NAME+qt_plugin_instance" make debug-winscw
+call ctcwrap -i d -2comp -C "EXCLUDE+moc_*.cpp" -C "EXCLUDE+*.UID.CPP" -C "SKIP_FUNCTION_NAME+SifUiInstallIndicatorPlugin::error()" -C "SKIP_FUNCTION_NAME+qt_plugin_query_verification_data" -C "SKIP_FUNCTION_NAME+qt_plugin_instance" make debug-winscw
+call ctcwrap -i d -2comp -C "EXCLUDE+moc_*.cpp" -C "EXCLUDE+*.UID.CPP" -C "SKIP_FUNCTION_NAME+SifUiInstallIndicatorPlugin::error()" -C "SKIP_FUNCTION_NAME+qt_plugin_query_verification_data" -C "SKIP_FUNCTION_NAME+qt_plugin_instance" make release-armv5
 popd
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test applicaiton for SW install indicator plugin
+* Description:  Test application for SW install indicator plugin
 *
 */
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.h	Fri Jun 11 13:45:18 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test applicaiton for SW install indicator plugin
+* Description:  Test application for SW install indicator plugin
 *
 */
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.pro	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindiapp.pro	Fri Jun 11 13:45:18 2010 +0300
@@ -11,7 +11,7 @@
 #
 # Contributors:
 # 
-# Description:  Test applicaiton for SW install indicator plugin
+# Description:  Test application for SW install indicator plugin
 #
 
 TEMPLATE = app
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindimain.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/tsrc/testindiapp/testindimain.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test applicaiton for SW install indicator plugin
+* Description:  Test application for SW install indicator plugin
 *
 */
 
--- a/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -47,6 +47,7 @@
 LIBRARY         euser.lib               // User
 LIBRARY         ecom.lib                // ECom
 LIBRARY         sif.lib                 // USIF
+LIBRARY         sifnotification.lib     // Usif::CPublishSifOperationInfo
 LIBRARY         scrclient.lib           // SCR
 LIBRARY         sifui.lib               // CSifUi
 LIBRARY         sisregistryclient.lib   // Swi::RSisRegistrySession
@@ -58,3 +59,4 @@
 LIBRARY         pkixcertbase.lib        // CPKIXValidationResultBase
 LIBRARY         x509.lib                // TValidationStatus
 
+SMPSAFE
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugin.pan	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugin.pan	Fri Jun 11 13:45:18 2010 +0300
@@ -28,7 +28,8 @@
     {
     ESisxSifInternalError = 1,
     ESisxSifNotInitialized,
-    ESisxSifNullPointer
+    ESisxSifNullPointer,
+    ESisxSifUnknownErrorCode
     };
 
 inline void Panic( TSisxSifPanicCode aReason )
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Fri Jun 11 13:45:18 2010 +0300
@@ -23,6 +23,7 @@
 #include <e32base.h>                    // CActive
 #include <swi/msisuihandlers.h>         // MUiHandler
 #include <usif/sif/sifcommon.h>         // TSecurityContext, COpaqueNamedParams
+#include <usif/usiferror.h>             // TErrorCategory
 #include <f32file.h>                    // RFs, RFile
 #include <barsc.h>                      // RResourceFile
 
@@ -76,19 +77,25 @@
     private:    // new functions
         CSisxSifPluginActiveImpl();
         void ConstructL();
-        void CommonRequestPreamble( TRequestStatus& aStatus );
-        void CommonRequestPreamble( const COpaqueNamedParams& aInputParams,
+        void CommonRequestPreambleL( TRequestStatus& aStatus );
+        void CommonRequestPreambleL( const COpaqueNamedParams& aInputParams,
                 COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus );
+        void CompleteSelf( TInt aResult );
         void CreateUiHandlerL();
         TBool IsSilentMode();
         void CompleteClientRequest( TInt aResult );
-        void DoUninstallL( TComponentId aComponentId );
-        void DoActivateL( TComponentId aComponentId );
-        void DoDeactivateL( TComponentId aComponentId );
+        void DoGetComponentInfoL( CComponentInfo& aComponentInfo, TRequestStatus& aStatus );
+        void DoInstallL( const TSecurityContext& aSecurityContext,
+        		const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+        		TRequestStatus& aStatus );
+        void DoUninstallL( TComponentId aComponentId, const COpaqueNamedParams& aInputParams,
+            COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus );
+        void DoActivateL( TComponentId aComponentId, TRequestStatus& aStatus );
+        void DoDeactivateL( TComponentId aComponentId, TRequestStatus& aStatus );
         void DoHandleErrorL( TInt aError );
-        TInt ConvertToSifErrorCode( TInt aSwiErrorCode );
-        void SetInstallFileL( const TDesC& aFileName );
-        void SetInstallFile( RFile& aFileHandle );
+        TErrorCategory ErrorCategory( TInt aErrorCode );
+        void SetFileL( const TDesC& aFileName );
+        void SetFile( RFile& aFileHandle );
         TComponentId GetLastInstalledComponentIdL();
         TBool RequiresUserCapabilityL( const CComponentInfo::CNode& aRootNode );
         void StartInstallingL();
@@ -107,11 +114,12 @@
         COpaqueNamedParams* iOutputParams;      // not owned
         CSisxSifPluginInstallParams* iInstallParams;
         CComponentInfo* iComponentInfo;
+        TBool iHasAllFilesCapability;
         HBufC* iFileName;
         RFile* iFileHandle;             // not owned
         enum TOperationType
             {
-            ENone,
+            ENoOperation,
             EGetComponentInfo,
             EInstall,
             EUninstall,
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h	Fri Jun 11 13:45:18 2010 +0300
@@ -54,12 +54,12 @@
         CSisxSifPluginInstallParams();
         void ConstructL( const COpaqueNamedParams& aParams );
         void ConstructL( const CSisxSifPluginInstallParams& aParams );
-        TInt GetIntParamL( const COpaqueNamedParams& aParams,
-                const TDesC& aParamName, TInt aDefaultValue );
-        void GetPolicyParamL( const COpaqueNamedParams& aParams, const TDesC& aParamName,
+        TInt GetIntParam( const COpaqueNamedParams& aParams, const TDesC& aParamName,
+        		TInt aDefaultValue );
+        void GetPolicyParam( const COpaqueNamedParams& aParams, const TDesC& aParamName,
                 TSifPolicy& aPolicy, const TSifPolicy& aDefault );
-        void GetStringParamL( const COpaqueNamedParams& aParams,
-                const TDesC& aParamName, HBufC*& aBuf );
+        void GetStringParamL( const COpaqueNamedParams& aParams, const TDesC& aParamName,
+        		HBufC*& aBuf );
 
     private:    // data
         TBool iUseSilentMode;
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Fri Jun 11 13:45:18 2010 +0300
@@ -22,6 +22,7 @@
 #include "sisxsifpluginuihandlerbase.h" // CSisxSifPluginUiHandlerBase
 
 class CSifUi;
+class CSifUiAppInfo;
 class CSisxSifUiSelectionCache;
 
 
@@ -87,7 +88,8 @@
     public:     // from CSisxSifPluginUiHandlerBase
         void DisplayPreparingInstallL( const TDesC& aFileName );
         void DisplayCompleteL();
-        void DisplayFailedL( TInt aErrorCode );
+        void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
 
     public:     // new functions
         void SetDriveSelectionRequired( TBool aIsRequired );
@@ -98,6 +100,7 @@
         void AddMemorySelectionL();
         void AddCertificatesL( RPointerArray<Swi::CCertificateInfo>& aCertificates,
                 RPointerArray<CPKIXValidationResultBase>& aPkixResults );
+        CSifUiAppInfo* GetAppInfoLC( const Swi::CAppInfo& aAppInfo );
 
     private:    // data
         enum TMode
@@ -110,8 +113,8 @@
         CSisxSifUiSelectionCache* iSelectionCache;
         CApaMaskedBitmap* iLogo;
         TBool iQuestionIncompatibleDisplayed;
-        TBool iDriveSelectionRequired;
         RArray<TInt> iSelectableDrives;
+        TInt iProgressBarFinalValue;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Fri Jun 11 13:45:18 2010 +0300
@@ -22,6 +22,8 @@
 #include <swi/msisuihandlers.h>         // MUiHandler
 #include <f32file.h>                    // RFs
 #include <sifui.h>                      // CSifUi
+#include <usif/sif/sifcommon.h>         // CComponentInfo::CNode
+#include <usif/sif/sifnotification.h>   // TSifOperationSubPhase, TErrorCategory
 
 
 namespace Usif
@@ -41,18 +43,26 @@
     public:     // new functions
         virtual void DisplayPreparingInstallL( const TDesC& aFileName ) = 0;
         virtual void DisplayCompleteL() = 0;
-        virtual void DisplayFailedL( TInt aErrorCode ) = 0;
+        virtual void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorDetails ) = 0;
 
     public:     // new functions
         void SetInstallParamsL( const CSisxSifPluginInstallParams& aInstallParams );
         void SetMaxInstalledSize( TInt aSize );
         void SetDriveSelectionRequired( TBool aIsRequired );
+        void PublishStartL( const CComponentInfo::CNode& aRootNode );
+        void PublishProgressL( TSifOperationPhase aPhase, TSifOperationSubPhase aSubPhase,
+                TInt aCurrentProgress, TInt aTotal );
+        void PublishCompletionL( TErrorCategory aErrorCategory, TInt aErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
 
     protected:	// data
         RFs& iFs;
         TInt iMaxInstalledSize;
         TBool iIsDriveSelectionRequired;
         CSisxSifPluginInstallParams* iInstallParams;
+        HBufC* iGlobalComponentId;
+        CPublishSifOperationInfo* iPublishSifOperationInfo;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Fri Jun 11 13:45:18 2010 +0300
@@ -84,7 +84,8 @@
     public:     // from CSisxSifPluginUiHandlerBase
         void DisplayPreparingInstallL( const TDesC& aFileName );
         void DisplayCompleteL();
-        void DisplayFailedL( TInt aErrorCode );
+        void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
 
     protected:  // new functions
         CSisxSifPluginUiHandlerSilent( RFs& aFs );
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -52,8 +52,6 @@
 _LIT( KStartupListUpdaterExecutable, "z:\\sys\\bin\\startuplistupdater.exe" );
 _LIT( KStartupListUpdaterName, "StartupListUpdater" );
 
-const TInt KSystemWideErrorsBoundary = -100;
-
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -118,13 +116,17 @@
 //
 void CSisxSifPluginActiveImpl::RunL()
     {
-    TInt result = iStatus.Int();
     FLOG_3( _L("CSisxSifPluginActiveImpl::RunL(), operation %d, phase %d, result %d"),
-            iOperation, iPhase, result );
-    User::LeaveIfError( result );
+            iOperation, iPhase, iStatus.Int() );
 
+    User::LeaveIfError( iStatus.Int() );
     switch( iOperation )
         {
+        case EGetComponentInfo:
+            __ASSERT_DEBUG( iPhase == ERunningOperation, Panic( ESisxSifInternalError ) );
+            CompleteClientRequest( KErrNone );
+            break;
+
         case EInstall:
             switch( iPhase )
                 {
@@ -137,14 +139,11 @@
                         {
                         StartInstallingL();
                         }
-                    iPhase = ERunningOperation;
-                    SetActive();
                     break;
 
                 case ERunningOperation:
                     FinalizeInstallationL();
                     CompleteClientRequest( KErrNone );
-                    iPhase = ENotActive;
                     break;
 
 				// TODO: KSifInParam_InstallInactive
@@ -159,14 +158,12 @@
             __ASSERT_DEBUG( iPhase == ERunningOperation, Panic( ESisxSifInternalError ) );
             UpdateStartupListL();
             CompleteClientRequest( KErrNone );
-            iPhase = ENotActive;
             break;
 
         case EActivate:
         case EDeactivate:
             __ASSERT_DEBUG( iPhase == ERunningOperation, Panic( ESisxSifInternalError ) );
             CompleteClientRequest( KErrNone );
-            iPhase = ENotActive;
             break;
 
         default:
@@ -182,9 +179,9 @@
 TInt CSisxSifPluginActiveImpl::RunError( TInt aError )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::RunError(), aError %d"), aError );
+
     TRAP_IGNORE( DoHandleErrorL( aError ) );
     CompleteClientRequest( aError );
-    iPhase = ENotActive;
     return KErrNone;
     }
 
@@ -199,28 +196,28 @@
         TRequestStatus& aStatus )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo: %S"), &aFileName );
-    if( !IsActive() )
+
+    if( IsActive() )
         {
-		CommonRequestPreamble( aStatus );
+        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo, KErrInUse") );
+        CompleteClientRequest( KErrInUse );
+        return;
+        }
 
-		TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileName,
-                *iInstallPrefs, aComponentInfo, iStatus ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
+    TRAPD( error, SetFileL( aFileName ) );
+    if( error )
+        {
+        FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo, set file error %d"), error );
+        CompleteClientRequest( error );
+        return;
+        }
 
-        iOperation = EGetComponentInfo;
-        iPhase = ERunningOperation;
-        SetActive();
-        }
-    else
-        {
-        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo KErrInUse") );
-        CompleteClientRequest( KErrInUse );
-        }
+    TRAP( error, DoGetComponentInfoL( aComponentInfo, aStatus ) );
+	if( error )
+		{
+		FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo ERROR %d"), error );
+		CompleteClientRequest( error );
+		}
     }
 
 // ---------------------------------------------------------------------------
@@ -234,28 +231,22 @@
         TRequestStatus& aStatus )
     {
     FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo(RFile)") );
-    if( !IsActive() )
+
+    if( IsActive() )
         {
-		CommonRequestPreamble( aStatus );
+        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo, KErrInUse") );
+        CompleteClientRequest( KErrInUse );
+        return;
+        }
 
-		TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileHandle,
-                *iInstallPrefs, aComponentInfo, iStatus ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
+    SetFile( aFileHandle );
 
-        iOperation = EGetComponentInfo;
-        iPhase = ERunningOperation;
-        SetActive();
-        }
-    else
-        {
-        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo KErrInUse") );
-        CompleteClientRequest( KErrInUse );
-        }
+	TRAPD( error, DoGetComponentInfoL( aComponentInfo, aStatus ) );
+	if( error )
+		{
+		FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo ERROR %d"), error );
+		CompleteClientRequest( error );
+		}
     }
 
 // ---------------------------------------------------------------------------
@@ -270,44 +261,30 @@
         TRequestStatus& aStatus )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Install: %S"), &aFileName );
-    if( !IsActive() )
+
+    if( IsActive() )
         {
-        CommonRequestPreamble( aInputParams, aOutputParams, aStatus );
-        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, IsSilentMode=%d"), IsSilentMode() );
+		FLOG( _L("CSisxSifPluginActiveImpl::Install, KErrInUse") );
+		CompleteClientRequest( KErrInUse );
+		return;
+		}
+
+    iHasAllFilesCapability = aSecurityContext.HasCapability( ECapabilityAllFiles );
 
-        if( IsSilentMode() )
-            {
-            if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
-                {
-                FLOG( _L("CSisxSifPluginActiveImpl::Install, missing ECapabilityTrustedUI") );
-                CompleteClientRequest( KErrPermissionDenied );
-                return;
-                }
-            }
-        else
-            {
-            iUiHandler->DisplayPreparingInstallL( aFileName );
-            }
-        SetInstallFileL( aFileName );
+	TRAPD( error, SetFileL( aFileName ) );
+	if( error )
+		{
+		FLOG_1( _L("CSisxSifPluginActiveImpl::Install, set file error %d"), error );
+		CompleteClientRequest( error );
+		return;
+		}
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileName,
-        		*iInstallPrefs, *iComponentInfo, iStatus ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::Install, GetComponentInfoL ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
-
-        iOperation = EInstall;
-        iPhase = EPreprocessing;
-        SetActive();
-        }
-    else
-        {
-        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo, KErrInUse") );
-        CompleteClientRequest( KErrInUse );
-        }
+	TRAP( error, DoInstallL( aSecurityContext, aInputParams, aOutputParams, aStatus ) );
+	if( error )
+		{
+		FLOG_1( _L("CSisxSifPluginActiveImpl::Install, DoInstallL error %d"), error );
+		CompleteClientRequest( error );
+		}
     }
 
 // ---------------------------------------------------------------------------
@@ -321,46 +298,24 @@
         COpaqueNamedParams& aOutputParams,
         TRequestStatus& aStatus )
     {
-    TFileName fileName;
-    aFileHandle.Name( fileName );
-    FLOG_1( _L("CSisxSifPluginActiveImpl::Install(RFile): %S"), &fileName );
-    if( !IsActive() )
+    FLOG( _L("CSisxSifPluginActiveImpl::Install(RFile)") );
+
+    if( IsActive() )
         {
-        CommonRequestPreamble( aInputParams, aOutputParams, aStatus );
-        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, IsSilentMode=%d"), IsSilentMode() );
+		FLOG( _L("CSisxSifPluginActiveImpl::Install KErrInUse") );
+		CompleteClientRequest( KErrInUse );
+		return;
+		}
 
-        if( IsSilentMode() )
-            {
-            if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
-                {
-                FLOG( _L("CSisxSifPluginActiveImpl::Install, missing ECapabilityTrustedUI") );
-                CompleteClientRequest( KErrPermissionDenied );
-                return;
-                }
-            }
-        else
-            {
-            iUiHandler->DisplayPreparingInstallL( fileName );
-            }
-        SetInstallFile( aFileHandle );
+    iHasAllFilesCapability = aSecurityContext.HasCapability( ECapabilityAllFiles );
+
+    SetFile( aFileHandle );
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileHandle,
-        		*iInstallPrefs, *iComponentInfo, iStatus ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::Install, GetComponentInfoL ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
-
-        iOperation = EInstall;
-        iPhase = EPreprocessing;
-        SetActive();
-        }
-    else
+    TRAPD( error, DoInstallL( aSecurityContext, aInputParams, aOutputParams, aStatus ) );
+    if( error )
         {
-        FLOG( _L("CSisxSifPluginActiveImpl::Install KErrInUse") );
-        CompleteClientRequest( KErrInUse );
+        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, DoInstallL error %d"), error );
+        CompleteClientRequest( error );
         }
     }
 
@@ -376,35 +331,30 @@
         TRequestStatus& aStatus )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Uninstall, aComponentId %d"), aComponentId );
-    if( !IsActive() )
-        {
-        CommonRequestPreamble( aInputParams, aOutputParams, aStatus );
 
-        // Uninstall is always silent. TrustedUI capability is required.
-        if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
-            {
-            FLOG( _L( "CSisxSifPluginActiveImpl::Uninstall, missing ECapabilityTrustedUI") );
-            CompleteClientRequest( KErrPermissionDenied );
-            return;
-            }
-
-        TRAPD( err, DoUninstallL( aComponentId ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::Uninstall, DoUninstallL ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
-
-        iOperation = EUninstall;
-        iPhase = ERunningOperation;
-        SetActive();
-        }
-    else
+    if( IsActive() )
         {
         FLOG( _L("CSisxSifPluginActiveImpl::Uninstall KErrInUse") );
         CompleteClientRequest( KErrInUse );
+        return;
         }
+
+    iHasAllFilesCapability = aSecurityContext.HasCapability( ECapabilityAllFiles );
+
+    // Uninstall is always silent. TrustedUI capability is required.
+	if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
+		{
+		FLOG( _L( "CSisxSifPluginActiveImpl::Uninstall, missing ECapabilityTrustedUI") );
+		CompleteClientRequest( KErrPermissionDenied );
+		return;
+		}
+
+	TRAPD( error, DoUninstallL( aComponentId, aInputParams, aOutputParams, aStatus ) );
+	if( error )
+		{
+		FLOG_1( _L("CSisxSifPluginActiveImpl::Uninstall, DoUninstallL ERROR %d"), error );
+		CompleteClientRequest( error );
+		}
     }
 
 // ---------------------------------------------------------------------------
@@ -413,35 +363,26 @@
 //
 void CSisxSifPluginActiveImpl::Activate(
         TComponentId aComponentId,
-        const TSecurityContext& /*aSecurityContext*/,
+        const TSecurityContext& aSecurityContext,
         TRequestStatus& aStatus )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Activate, aComponentId %d"), aComponentId );
-    if( !IsActive() )
-        {
-        aStatus = KRequestPending;
-        iClientStatus = &aStatus;
 
-        TRAPD( err, DoActivateL( aComponentId ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::Activate, DoActivateL ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
-
-        iStatus = KRequestPending;
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete( status, KErrNone );
-
-        iOperation = EActivate;
-        iPhase = ERunningOperation;
-        SetActive();
-        }
-    else
+    if( IsActive() )
         {
         FLOG( _L("CSisxSifPluginActiveImpl::Activate KErrInUse") );
         CompleteClientRequest( KErrInUse );
+        return;
+        }
+
+    iHasAllFilesCapability = aSecurityContext.HasCapability( ECapabilityAllFiles );
+
+    TRAPD( error, DoActivateL( aComponentId, aStatus ) );
+    if( error )
+        {
+        FLOG_1( _L("CSisxSifPluginActiveImpl::Activate, DoActivateL ERROR %d"), error );
+        CompleteClientRequest( error );
+        return;
         }
     }
 
@@ -451,35 +392,26 @@
 //
 void CSisxSifPluginActiveImpl::Deactivate(
         TComponentId aComponentId,
-        const TSecurityContext& /*aSecurityContext*/,
+        const TSecurityContext& aSecurityContext,
         TRequestStatus& aStatus )
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Deactivate, aComponentId %d"), aComponentId );
-    if( !IsActive() )
-        {
-        aStatus = KRequestPending;
-        iClientStatus = &aStatus;
 
-        TRAPD( err, DoDeactivateL( aComponentId ) );
-        if( err )
-            {
-            FLOG_1( _L("CSisxSifPluginActiveImpl::Deactivate, DoDeactivateL ERROR %d"), err );
-            CompleteClientRequest( err );
-            return;
-            }
-
-        iStatus = KRequestPending;
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete( status, KErrNone );
-
-        iOperation = EDeactivate;
-        iPhase = ERunningOperation;
-        SetActive();
-        }
-    else
+    if( IsActive() )
         {
         FLOG( _L("CSisxSifPluginActiveImpl::Deactivate KErrInUse") );
         CompleteClientRequest( KErrInUse );
+        return;
+        }
+
+    iHasAllFilesCapability = aSecurityContext.HasCapability( ECapabilityAllFiles );
+
+    TRAPD( error, DoDeactivateL( aComponentId, aStatus ) );
+    if( error )
+        {
+        FLOG_1( _L("CSisxSifPluginActiveImpl::Deactivate, DoDeactivateL ERROR %d"), error );
+        CompleteClientRequest( error );
+        return;
         }
     }
 
@@ -507,10 +439,10 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::CommonRequestPreamble()
+// CSisxSifPluginActiveImpl::CommonRequestPreambleL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::CommonRequestPreamble( TRequestStatus& aStatus )
+void CSisxSifPluginActiveImpl::CommonRequestPreambleL( TRequestStatus& aStatus )
     {
     aStatus = KRequestPending;
     iClientStatus = &aStatus;
@@ -527,10 +459,10 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::CommonRequestPreamble()
+// CSisxSifPluginActiveImpl::CommonRequestPreambleL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::CommonRequestPreamble(
+void CSisxSifPluginActiveImpl::CommonRequestPreambleL(
         const COpaqueNamedParams& aInputParams,
         COpaqueNamedParams& aOutputParams,
         TRequestStatus& aStatus )
@@ -551,6 +483,17 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::CompleteSelf()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::CompleteSelf( TInt aResult )
+    {
+    iStatus = KRequestPending;
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete( status, aResult );
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::CreateUiHandlerL()
 // ---------------------------------------------------------------------------
 //
@@ -595,14 +538,95 @@
         User::RequestComplete( iClientStatus, aResult );
         iClientStatus = NULL;
         }
+    __ASSERT_DEBUG( !IsActive(), Panic( ESisxSifInternalError ) );
+    iOperation = ENoOperation;
+    iPhase = ENotActive;
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::DoGetComponentInfoL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::DoGetComponentInfoL( CComponentInfo& aComponentInfo,
+		TRequestStatus& aStatus )
+	{
+	CommonRequestPreambleL( aStatus );
+
+	if( iFileName )
+		{
+		iAsyncLauncher->GetComponentInfoL( *iUiHandler, *iFileName, *iInstallPrefs,
+				aComponentInfo, iStatus );
+		}
+	else if( iFileHandle )
+		{
+		iAsyncLauncher->GetComponentInfoL( *iUiHandler, *iFileHandle, *iInstallPrefs,
+				aComponentInfo, iStatus );
+		}
+	else
+		{
+		User::Leave( KErrGeneral );
+		}
+
+    iOperation = EGetComponentInfo;
+    iPhase = ERunningOperation;
+    SetActive();
+	}
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::DoInstallL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::DoInstallL( const TSecurityContext& aSecurityContext,
+		const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+		TRequestStatus& aStatus )
+	{
+    CommonRequestPreambleL( aInputParams, aOutputParams, aStatus );
+    FLOG_1( _L("CSisxSifPluginActiveImpl::DoInstall, IsSilentMode=%d"), IsSilentMode() );
+
+    if( IsSilentMode() )
+        {
+        if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
+            {
+            FLOG( _L("CSisxSifPluginActiveImpl::Install, missing ECapabilityTrustedUI") );
+            CompleteClientRequest( KErrPermissionDenied );
+            return;
+            }
+        }
+
+    if( iFileName )
+        {
+        iUiHandler->DisplayPreparingInstallL( *iFileName );
+        iAsyncLauncher->GetComponentInfoL( *iUiHandler, *iFileName, *iInstallPrefs,
+                *iComponentInfo, iStatus );
+        }
+    else if( iFileHandle )
+        {
+        TFileName fileName;
+        iFileHandle->Name( fileName );
+        iUiHandler->DisplayPreparingInstallL( fileName );
+        iAsyncLauncher->GetComponentInfoL( *iUiHandler, *iFileHandle, *iInstallPrefs,
+                *iComponentInfo, iStatus );
+        }
+    else
+        {
+        User::Leave( KErrGeneral );
+        }
+
+    iOperation = EInstall;
+    iPhase = EPreprocessing;
+    SetActive();
+	}
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::DoUninstallL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::DoUninstallL( TComponentId aComponentId )
+void CSisxSifPluginActiveImpl::DoUninstallL( TComponentId aComponentId,
+		const COpaqueNamedParams& aInputParams, COpaqueNamedParams& aOutputParams,
+		TRequestStatus& aStatus )
     {
+    CommonRequestPreambleL( aInputParams, aOutputParams, aStatus );
+
     RSoftwareComponentRegistry scrSession;
     User::LeaveIfError( scrSession.Connect() );
     CleanupClosePushL( scrSession );
@@ -622,32 +646,54 @@
     CleanupStack::PopAndDestroy( 2, &scrSession );      // propertyEntry, scrSession
 
     iAsyncLauncher->UninstallL( *iUiHandler, objectId, iStatus );
+
+    iOperation = EUninstall;
+    iPhase = ERunningOperation;
+    SetActive();
     }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::DoActivateL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::DoActivateL( TComponentId aComponentId )
+void CSisxSifPluginActiveImpl::DoActivateL( TComponentId aComponentId,
+        TRequestStatus& aStatus )
     {
+    CommonRequestPreambleL( aStatus );
+
     Swi::RSisRegistryWritableSession sisRegSession;
     User::LeaveIfError( sisRegSession.Connect() );
     CleanupClosePushL( sisRegSession );
     sisRegSession.ActivateComponentL( aComponentId );
     CleanupStack::PopAndDestroy( &sisRegSession );
+
+    CompleteSelf( KErrNone );
+
+    iOperation = EActivate;
+    iPhase = ERunningOperation;
+    SetActive();
     }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::DoDeactivateL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::DoDeactivateL( TComponentId aComponentId )
+void CSisxSifPluginActiveImpl::DoDeactivateL( TComponentId aComponentId,
+        TRequestStatus& aStatus )
     {
+    CommonRequestPreambleL( aStatus );
+
     Swi::RSisRegistryWritableSession sisRegSession;
     User::LeaveIfError( sisRegSession.Connect() );
     CleanupClosePushL( sisRegSession );
     sisRegSession.DeactivateComponentL( aComponentId );
     CleanupStack::PopAndDestroy( &sisRegSession );
+
+    CompleteSelf( KErrNone );
+
+    iOperation = EDeactivate;
+    iPhase = ERunningOperation;
+    SetActive();
     }
 
 // ---------------------------------------------------------------------------
@@ -656,42 +702,104 @@
 //
 void CSisxSifPluginActiveImpl::DoHandleErrorL( TInt aError )
     {
-    // TODO: add support for:
-    // KSifOutParam_ErrCategory
-    // KSifOutParam_ErrCode
-    // KSifOutParam_ExtendedErrCode
-    // KSifOutParam_ErrMessage
-    // KSifOutParam_ErrMessageDetails
+    FLOG_1( _L("CSisxSifPluginActiveImpl::DoHandleErrorL(), aError=%d"), aError );
 
+    TErrorCategory category = ErrorCategory( aError );
     if( iOutputParams )
         {
+        iOutputParams->AddIntL( KSifOutParam_ErrCode, aError );
         iOutputParams->AddIntL( KSifOutParam_ExtendedErrCode, aError );
+        iOutputParams->AddIntL( KSifOutParam_ErrCategory, category );
+        // TODO: how to get error message and detailed error message?
+        // iOutputParams->AddStringL( KSifOutParam_ErrMessage, TBD );
+        // iOutputParams->AddStringL( KSifOutParam_ErrMessageDetails, TBD );
         }
-    TInt errorCode = ConvertToSifErrorCode( aError );
-    if( errorCode != KErrCancel )
+
+    if( aError != KErrNone && aError != KErrCancel )
         {
-        iUiHandler->DisplayFailedL( errorCode );
+        // TODO: proper error messages
+        iUiHandler->DisplayFailedL( category, aError, KNullDesC, KNullDesC );
         }
+
+    // TODO: proper error messages
+    iUiHandler->PublishCompletionL( category, aError, KNullDesC, KNullDesC  );
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::ConvertToSifErrorCode()
+// CSisxSifPluginActiveImpl::ErrorCategory()
 // ---------------------------------------------------------------------------
 //
-TInt CSisxSifPluginActiveImpl::ConvertToSifErrorCode( TInt aSwiErrorCode )
+TErrorCategory CSisxSifPluginActiveImpl::ErrorCategory( TInt aErrorCode )
     {
-    FLOG_1( _L("CSisxSifPluginActiveImpl::ConvertToSifErrorCode(), aSwiErrorCode=%d"),
-            aSwiErrorCode );
-
-    // TODO: need to show also SWI error code in UI somehow when necessary
+    switch( aErrorCode )
+        {
+        // System-wide error codes
+        case KErrNone:
+            return ENone;
+        case KErrNotFound:
+        case KErrGeneral:
+            return EUnexpectedError;
+        case KErrCancel:
+            return EUserCancelled;
+        case KErrNoMemory:
+            return ELowMemory;
+        case KErrNotSupported:
+        case KErrArgument:
+        case KErrTotalLossOfPrecision:
+        case KErrBadHandle:
+        case KErrOverflow:
+        case KErrUnderflow:
+        case KErrAlreadyExists:
+        case KErrPathNotFound:
+        case KErrDied:
+            return EUnexpectedError;
+        case KErrInUse:
+            return EInstallerBusy;
+        case KErrServerTerminated:
+        case KErrServerBusy:
+        case KErrCompletion:
+        case KErrNotReady:
+        case KErrUnknown:
+            return EUnexpectedError;
+        case KErrCorrupt:
+            return ECorruptedPackage;
+        case KErrAccessDenied:
+            return ESecurityError;
+        case KErrLocked:
+        case KErrWrite:
+        case KErrDisMounted:
+        case KErrEof:
+            return EUnexpectedError;
+        case KErrDiskFull:
+            return ELowDiskSpace;
+        case KErrBadDriver:
+        case KErrBadName:
+        case KErrCommsLineFail:
+        case KErrCommsFrame:
+        case KErrCommsOverrun:
+        case KErrCommsParity:
+        case KErrTimedOut:
+        case KErrCouldNotConnect:
+        case KErrCouldNotDisconnect:
+        case KErrDisconnected:
+        case KErrBadLibraryEntryPoint:
+        case KErrBadDescriptor:
+        case KErrAbort:
+        case KErrTooBig:
+        case KErrDivideByZero:
+        case KErrBadPower:
+        case KErrDirFull:
+        case KErrHardwareNotAvailable:
+        case KErrSessionClosed:
+            return EUnexpectedError;
+        case KErrPermissionDenied:
+            return ESecurityError;
+        case KErrExtensionNotSupported:
+        case KErrCommsBreak:
+        case KErrNoSecureTime:
+            return EUnexpectedError;
 
-    if( aSwiErrorCode > KSystemWideErrorsBoundary )
-        {
-        return aSwiErrorCode;
-        }
-
-    switch( aSwiErrorCode )
-        {
+        // Native SW Installer error codes
         case KErrSISFieldIdMissing:
         case KErrSISFieldLengthMissing:
         case KErrSISFieldLengthInvalid:
@@ -700,7 +808,9 @@
         case KErrSISControllerSISInfoMissing:
         case KErrSISInfoSISUidMissing:
         case KErrSISInfoSISNamesMissing:
+            return ECorruptedPackage;
         case KErrSISFieldBufferTooShort:
+            return EUnexpectedError;
         case KErrSISStringArrayInvalidElement:
         case KErrSISInfoSISVendorNamesMissing:
         case KErrSISInfoSISVersionMissing:
@@ -728,6 +838,7 @@
         case KErrSISDependencyMissingUid:
         case KErrSISDependencyMissingVersion:
         case KErrSISDependencyMissingNames:
+        case KErrSISPrerequisitesMissingDependency:
         case KErrSISControllerMissingPrerequisites:
         case KErrSISUpgradeRangeMissingVersion:
         case KErrSISUnexpectedFieldType:
@@ -737,52 +848,54 @@
         case KErrSISInvalidStringLength:
         case KErrSISCompressionNotSupported:
         case KErrSISTooDeeplyEmbedded:
-        case KErrWrongHeaderFormat:
-        case KErrExpressionToComplex:
-        case KErrInvalidExpression:
-        case KErrInvalidType:
-            return KErrSifCorruptedPackage;
-
-        case KErrBadUsage:
+            return ECorruptedPackage;
+        case KErrSISInvalidTargetFile:
+        case KErrSISWouldOverWrite:
+            return ESecurityError;
+        case KErrSISInfoMissingRemoveDirectories:
+            return ECorruptedPackage;
+        case KErrSISNotEnoughSpaceToInstall:
+            return ELowDiskSpace;
         case KErrInstallerLeave:
-            return KErrSifUnknown;
-
-        case KErrSISPrerequisitesMissingDependency:
-            return KErrSifMissingDependencies;
-
-        case KErrMissingBasePackage:
-            return KErrSifMissingBasePackage;
-
-        case KErrCapabilitiesMismatch:
-        case KErrInvalidEclipsing:
+        case KErrPolicyFileCorrupt:
+            return EUnexpectedError;
+        case KErrSignatureSchemeNotSupported:
+        case KErrDigestNotSupported:
+            return EApplicationNotCompatible;
+        case KErrBadHash:
+            return ECorruptedPackage;
         case KErrSecurityError:
-        case KErrBadHash:
-        case KErrDigestNotSupported:
-        case KErrSignatureSchemeNotSupported:
-        case KErrSISWouldOverWrite:
-        case KErrSISInvalidTargetFile:
-            return KErrPermissionDenied;
-
-        case KErrPolicyFileCorrupt:
-            return KErrSifBadInstallerConfiguration;
+            return ESecurityError;
+        case KErrBadUsage:
+        case KErrInvalidType:
+        case KErrInvalidExpression:
+        case KErrExpressionToComplex:
+            return EUnexpectedError;
+        case KErrMissingBasePackage:
+        case KErrInvalidUpgrade:
+            return EApplicationNotCompatible;
+        case KErrInvalidEclipsing:
+            return ESecurityError;
+        case KErrWrongHeaderFormat:
+            return EUnexpectedError;
+        case KErrCapabilitiesMismatch:
+            return ESecurityError;
+        case KErrLegacySisFile:
+        case KErrInvalidSoftwareTypeRegistrationFile:
+            return EApplicationNotCompatible;
 
-        case KErrInvalidUpgrade:
-        case KErrLegacySisFile:
-            return KErrSifPackageCannotBeInstalledOnThisDevice;
-
-        case KErrSISNotEnoughSpaceToInstall:
-            return KErrSifNotEnoughSpace;
-
+        // Other error codes
         default:
-            return KErrSifUnknown;
+            __ASSERT_DEBUG( EFalse, Panic( ESisxSifUnknownErrorCode ) );
+            return EUnexpectedError;
         }
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::SetInstallFileL()
+// CSisxSifPluginActiveImpl::SetFileL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::SetInstallFileL( const TDesC& aFileName )
+void CSisxSifPluginActiveImpl::SetFileL( const TDesC& aFileName )
     {
     if( iFileName )
         {
@@ -794,10 +907,10 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::SetInstallFile()
+// CSisxSifPluginActiveImpl::SetFile()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginActiveImpl::SetInstallFile( RFile& aFileHandle )
+void CSisxSifPluginActiveImpl::SetFile( RFile& aFileHandle )
     {
     if( iFileName )
         {
@@ -813,7 +926,7 @@
 //
 TComponentId CSisxSifPluginActiveImpl::GetLastInstalledComponentIdL()
     {
-    ASSERT( iOperation == EInstall );
+    __ASSERT_DEBUG( iOperation == EInstall, Panic( ESisxSifInternalError ) );
 
     // Find the id of the last installed component and return it
     TInt uid;
@@ -864,6 +977,8 @@
 	TInt maxInstalledSize = rootNode.MaxInstalledSize();
 	iUiHandler->SetMaxInstalledSize( maxInstalledSize );
 
+	iUiHandler->PublishStartL( rootNode );
+
     if( iFileHandle )
         {
         iAsyncLauncher->InstallL( *iUiHandler, *iFileHandle, *iInstallPrefs, iStatus );
@@ -876,6 +991,9 @@
         {
         Panic( ESisxSifInternalError );
         }
+
+    iPhase = ERunningOperation;
+    SetActive();
     }
 
 // ---------------------------------------------------------------------------
@@ -885,17 +1003,24 @@
 void CSisxSifPluginActiveImpl::StartSilentInstallingL()
     {
     const CComponentInfo::CNode& rootNode( iComponentInfo->RootNodeL() );
-    TBool hasExecutable = rootNode.HasExecutable();
     TBool isAuthenticated = ( rootNode.Authenticity() == EAuthenticated );
-    TBool requiresUserCapability = RequiresUserCapabilityL( rootNode );
-    if( hasExecutable && !isAuthenticated )
+
+    // AllowUntrusted option is needed to install untrusted packages.
+    if( !isAuthenticated && !iInstallParams->AllowUntrusted() )
         {
-        FLOG( _L("Silent install is not allowed on unsigned packages containing executables") );
+        FLOG( _L("Attempt to install unsigned package silently without AllowUntrusted option") );
         CompleteClientRequest( KErrPermissionDenied );
         }
-    else if( requiresUserCapability )
+    // GrantCapabilities option is needed to install packages that require user capabilities
+    else if( RequiresUserCapabilityL( rootNode ) && !iInstallParams->GrantCapabilities() )
         {
-        FLOG( _L("Silent install is not allowed when user capabilities are required") );
+        FLOG( _L("Attempt to grant user capabilities silently without GrantCapabilities option") );
+        CompleteClientRequest( KErrPermissionDenied );
+        }
+    // AllFiles capability is needed to install untrusted packages that contains exe/dll binaries
+    else if( !isAuthenticated && rootNode.HasExecutable() && !iHasAllFilesCapability )
+        {
+        FLOG( _L("Attempt to install untrusted binaries silently without AllFiles capability") );
         CompleteClientRequest( KErrPermissionDenied );
         }
     else
@@ -917,7 +1042,9 @@
         TComponentId componentId = GetLastInstalledComponentIdL();
         iOutputParams->AddIntL( KSifOutParam_ComponentId, componentId );
         }
+
 	iUiHandler->DisplayCompleteL();
+    iUiHandler->PublishCompletionL( ENone, KErrNone, KNullDesC, KNullDesC );
     }
 
 // ---------------------------------------------------------------------------
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -211,23 +211,24 @@
 //
 void CSisxSifPluginInstallParams::ConstructL( const COpaqueNamedParams& aParams )
     {
-    iUseSilentMode = GetIntParamL( aParams, KSifInParam_InstallSilently, EFalse );
-    iIsInstallInactive = GetIntParamL( aParams, KSifInParam_InstallInactive, EFalse );
-    iDrive = static_cast<TUint>( GetIntParamL( aParams, KSifInParam_Drive, EDriveC ) );
-    iLanguage = static_cast<TLanguage>( GetIntParamL( aParams, KSifInParam_Languages,
+    iUseSilentMode = GetIntParam( aParams, KSifInParam_InstallSilently, EFalse );
+    iIsInstallInactive = GetIntParam( aParams, KSifInParam_InstallInactive, EFalse );
+    // TODO: change drive and language params as arrays when available
+    iDrive = static_cast<TUint>( GetIntParam( aParams, KSifInParam_Drive, EDriveC ) );
+    iLanguage = static_cast<TLanguage>( GetIntParam( aParams, KSifInParam_Languages,
             ELangNone ) );
     GetStringParamL( aParams, KSifInParam_OCSPUrl, iOCSPUrl );
-    GetPolicyParamL( aParams, KSifInParam_PerformOCSP, iPerformOCSP, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_IgnoreOCSPWarnings, iIgnoreOCSPWarnings, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_AllowUpgrade, iAllowUpgrade, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_InstallOptionalItems, iInstallOptionalItems, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_AllowUntrusted, iAllowUntrusted, ENotAllowed );
-    GetPolicyParamL( aParams, KSifInParam_GrantCapabilities, iGrantCapabilities, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_AllowAppShutdown, iAllowAppShutdown, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_AllowAppBreakDependency, iAllowAppBreakDependency,
+    GetPolicyParam( aParams, KSifInParam_PerformOCSP, iPerformOCSP, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_IgnoreOCSPWarnings, iIgnoreOCSPWarnings, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowUpgrade, iAllowUpgrade, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_InstallOptionalItems, iInstallOptionalItems, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowUntrusted, iAllowUntrusted, ENotAllowed );
+    GetPolicyParam( aParams, KSifInParam_GrantCapabilities, iGrantCapabilities, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowAppShutdown, iAllowAppShutdown, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowAppBreakDependency, iAllowAppBreakDependency,
             EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_AllowOverwrite, iAllowOverwrite, EAllowed );
-    GetPolicyParamL( aParams, KSifInParam_PackageInfo, iPackageInfo, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowOverwrite, iAllowOverwrite, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_PackageInfo, iPackageInfo, EAllowed );
     }
 
 // ---------------------------------------------------------------------------
@@ -257,10 +258,10 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginInstallParams::GetIntParamL()
+// CSisxSifPluginInstallParams::GetIntParam()
 // ---------------------------------------------------------------------------
 //
-TInt CSisxSifPluginInstallParams::GetIntParamL( const COpaqueNamedParams& aParams,
+TInt CSisxSifPluginInstallParams::GetIntParam( const COpaqueNamedParams& aParams,
         const TDesC& aParamName, TInt aDefaultValue )
     {
     TInt value = aDefaultValue;
@@ -270,14 +271,14 @@
         {
         return value;
         }
-    return aDefaultValue;
+	return aDefaultValue;
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginInstallParams::GetPolicyParamL()
+// CSisxSifPluginInstallParams::GetPolicyParam()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginInstallParams::GetPolicyParamL( const COpaqueNamedParams& aParams,
+void CSisxSifPluginInstallParams::GetPolicyParam( const COpaqueNamedParams& aParams,
         const TDesC& aParamName, TSifPolicy& aPolicy, const TSifPolicy& aDefault )
     {
     TInt value = aDefault;
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -20,6 +20,7 @@
 #include "sisxsifcleanuputils.h"        // CleanupResetAndDestroyPushL
 #include "sisxsifuiselectioncache.h"    // CSisxUISelectionCache
 #include <sifui.h>                      // CSifUi
+#include <sifuiappinfo.h>               // CSifUiAppInfo
 #include <sifuicertificateinfo.h>       // CSifUiCertificateInfo
 #include <bautils.h>                    // BaflUtils
 #include <driveinfo.h>                  // DriveInfo
@@ -250,12 +251,21 @@
     {
     FLOG_2( _L("CSisxSifPluginUiHandler::HandleInstallEventL: aEvent %d, aValue %d"), aEvent, aValue );
 
+    if( iSifUi->IsCancelled() )
+        {
+        return EFalse;
+        }
+
+    TSifOperationPhase phase = ( iMode == EModeInstall ? EInstalling : EUninstalling );
     switch( aEvent )
         {
         case Swi::EEventSetProgressBarFinalValue:
+            iProgressBarFinalValue = aValue;
             if( iMode == EModeInstall )
                 {
-                iSifUi->ShowProgressL( aAppInfo, iMaxInstalledSize, aValue );
+                CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
+                iSifUi->ShowProgressL( *appInfo, aValue );
+                CleanupStack::PopAndDestroy( appInfo );
                 }
             break;
 
@@ -264,6 +274,7 @@
                 {
                 iSifUi->IncreaseProgressBarValueL( aValue );
                 }
+            PublishProgressL( phase, EFileOperation, aValue, iProgressBarFinalValue );
             break;
 
         case Swi::EEventOcspCheckEnd:
@@ -313,7 +324,7 @@
     FLOG( _L("CSisxSifPluginUiHandler::DisplaySecurityWarningL") );
     TBool result = EFalse;
 
-    if( iDriveSelectionRequired )
+    if( iIsDriveSelectionRequired )
         {
         AddMemorySelectionL();
         }
@@ -322,7 +333,11 @@
     switch( aSigValidationResult )
         {
         case Swi::EValidationSucceeded:
-            result = iSifUi->ShowConfirmationL( aAppInfo, iMaxInstalledSize, iLogo );
+            {
+            CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
+            result = iSifUi->ShowConfirmationL( *appInfo );
+            CleanupStack::PopAndDestroy( appInfo );
+            }
             break;
 
         case Swi::ESignatureSelfSigned:
@@ -335,7 +350,9 @@
         case Swi::EMandatorySignatureMissing:
             if( aInstallAnyway )
                 {
-                result = iSifUi->ShowConfirmationL( aAppInfo, iMaxInstalledSize, iLogo );
+                CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
+                result = iSifUi->ShowConfirmationL( *appInfo );
+                CleanupStack::PopAndDestroy( appInfo );
                 }
             break;
 
@@ -421,12 +438,13 @@
 // CSisxSifPluginUiHandler::DisplayFailedL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandler::DisplayFailedL( TInt aErrorCode )
+void CSisxSifPluginUiHandler::DisplayFailedL( TErrorCategory /*aCategory*/,
+        TInt aErrorCode, const TDesC& aErrorMessage, const TDesC& /*aErrorDetails*/ )
     {
-    FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, aErrorCode=%d"), aErrorCode );
+    FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, aError=%d"), aErrorCode );
 
-    _LIT( KErrorMessage, "Error" );
-    iSifUi->ShowFailedL( aErrorCode, KErrorMessage );
+    // TODO: add error details
+    iSifUi->ShowFailedL( aErrorCode, aErrorMessage );
     }
 
 // ---------------------------------------------------------------------------
@@ -510,3 +528,14 @@
     CleanupStack::PopAndDestroy( &certificates );
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandler::GetAppInfoLC()
+// ---------------------------------------------------------------------------
+//
+CSifUiAppInfo* CSisxSifPluginUiHandler::GetAppInfoLC( const Swi::CAppInfo& aAppInfo )
+    {
+    CSifUiAppInfo *appInfo = CSifUiAppInfo::NewLC( aAppInfo.AppName(), aAppInfo.AppVendor(),
+            aAppInfo.AppVersion(), iMaxInstalledSize, iLogo );
+    return appInfo;
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -17,6 +17,7 @@
 
 #include "sisxsifpluginuihandlerbase.h"     // CSisxSifPluginUiHandlerBase
 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+#include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
 
 using namespace Usif;
 
@@ -38,6 +39,8 @@
 CSisxSifPluginUiHandlerBase::~CSisxSifPluginUiHandlerBase()
     {
     delete iInstallParams;
+    delete iGlobalComponentId;
+    delete iPublishSifOperationInfo;
     }
 
 // ---------------------------------------------------------------------------
@@ -73,3 +76,73 @@
     iIsDriveSelectionRequired = aIsRequired;
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::PublishStartL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentInfo::CNode& aRootNode )
+    {
+    RPointerArray<HBufC> appNames;
+    CleanupResetAndDestroyPushL( appNames );
+    RPointerArray<HBufC> appIcons;
+    CleanupResetAndDestroyPushL( appIcons );
+
+    const RPointerArray<CComponentInfo::CApplicationInfo>& apps = aRootNode.Applications();
+    for( TInt index = 0; index < apps.Count(); ++index )
+        {
+        HBufC* name = apps[ index ]->Name().AllocLC();
+        appNames.AppendL( name );
+        CleanupStack::Pop( name );
+        HBufC* icon = apps[ index ]->IconFileName().AllocLC();
+        appIcons.AppendL( icon );
+        CleanupStack::Pop( icon );
+        }
+
+    if( iGlobalComponentId )
+        {
+        delete iGlobalComponentId;
+        iGlobalComponentId = NULL;
+        }
+    iGlobalComponentId = aRootNode.GlobalComponentId().AllocL();
+
+    CSifOperationStartData* data = CSifOperationStartData::NewLC( *iGlobalComponentId,
+            aRootNode.ComponentName(), appNames, appIcons, aRootNode.MaxInstalledSize(),
+            KNullDesC, KNullDesC, aRootNode.SoftwareTypeName() );
+
+    if( !iPublishSifOperationInfo )
+        {
+        iPublishSifOperationInfo = CPublishSifOperationInfo::NewL();
+        }
+    iPublishSifOperationInfo->PublishStartL( *data );
+
+    CleanupStack::PopAndDestroy( 3, &appNames );    // data, appIcons, appNames
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::PublishProgressL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::PublishProgressL( TSifOperationPhase aPhase,
+        TSifOperationSubPhase aSubPhase, TInt aCurrentProgress, TInt aTotal )
+    {
+    User::LeaveIfNull( iPublishSifOperationInfo );
+    CSifOperationProgressData* data = CSifOperationProgressData::NewLC( *iGlobalComponentId,
+            aPhase, aSubPhase, aCurrentProgress, aTotal );
+    iPublishSifOperationInfo->PublishProgressL( *data );
+    CleanupStack::PopAndDestroy( data );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::PublishCompletionL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::PublishCompletionL( TErrorCategory aErrorCategory,
+        TInt aErrorCode, const TDesC& aErrorMessage, const TDesC& aErrorDetails )
+    {
+    User::LeaveIfNull( iPublishSifOperationInfo );
+    CSifOperationEndData* data = CSifOperationEndData::NewLC( *iGlobalComponentId,
+            aErrorCategory, aErrorCode, aErrorMessage, aErrorDetails );
+    iPublishSifOperationInfo->PublishCompletionL( *data );
+    CleanupStack::PopAndDestroy( data );
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -491,7 +491,8 @@
 // CSisxSifPluginUiHandlerSilent::DisplayFailedL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerSilent::DisplayFailedL( TInt /*aErrorCode*/ )
+void CSisxSifPluginUiHandlerSilent::DisplayFailedL( TErrorCategory /*aCategory*/,
+        TInt /*aErrorCode*/, const TDesC& /*aErrorMessage*/, const TDesC& /*aErrorDetails*/ )
     {
     // nothing displayed in silent mode
     }
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -32,10 +32,10 @@
     delete d_ptr;
 }
 
-void ActiveRunner::install(const QString &fileName, bool silent)
+void ActiveRunner::install(const QString &fileName, bool silent, bool openfile)
 {
     if (d_ptr) {
-        d_ptr->Install(fileName, silent);
+        d_ptr->Install(fileName, silent, openfile);
     }
 }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h	Fri Jun 11 13:45:18 2010 +0300
@@ -37,7 +37,7 @@
     void opFailed(int error);
 
 public:     // new functions
-    void install(const QString &fileName, bool silent);
+    void install(const QString &fileName, bool silent, bool openfile);
     void remove(const Usif::TComponentId& aComponentId, bool silent);
     void remove(const TUid& aUid, const TDesC8& aMime, bool silent);
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,10 +19,10 @@
 #include "activerunner.h"
 
 
-ActiveRunnerPrivate::ActiveRunnerPrivate(ActiveRunner *aRunner) :
+ActiveRunnerPrivate::ActiveRunnerPrivate( ActiveRunner *aRunner ) :
         CActive( CActive::EPriorityStandard ), q_ptr( aRunner )
     {
-    CActiveScheduler::Add(this);
+    CActiveScheduler::Add( this );
     }
 
 ActiveRunnerPrivate::~ActiveRunnerPrivate()
@@ -36,6 +36,7 @@
         {
         iSWInstLauncher.Close();
         }
+    iFs.Close();
     delete iFileName;
     delete iArguments;
     delete iResults;
@@ -43,22 +44,13 @@
 
 TInt ActiveRunnerPrivate::Initialize( bool aUseSif )
     {
-    iUseSif = aUseSif;
-    TInt ret = KErrNone;
-    if( iUseSif )
-        {
-        ret = iSoftwareInstall.Connect();
-        }
-    else
-        {
-        ret = iSWInstLauncher.Connect();
-        }
-    return ret;
+    TRAPD( err, DoInitializeL( aUseSif ) );
+    return err;
     }
 
-TInt ActiveRunnerPrivate::Install( const QString& aFileName, bool aSilent )
+TInt ActiveRunnerPrivate::Install( const QString& aFileName, bool aSilent, bool aOpenFile )
     {
-    TRAPD( err, DoInstallL( aFileName, aSilent ) );
+    TRAPD( err, DoInstallL( aFileName, aSilent, aOpenFile ) );
     return err;
     }
 
@@ -107,7 +99,22 @@
     return KErrNone;
     }
 
-void ActiveRunnerPrivate::DoInstallL( const QString& aFileName, bool aSilent )
+void ActiveRunnerPrivate::DoInitializeL( bool aUseSif )
+    {
+    iUseSif = aUseSif;
+    User::LeaveIfError( iFs.Connect() );
+    User::LeaveIfError( iFs.ShareProtected() );
+    if( iUseSif )
+        {
+        User::LeaveIfError( iSoftwareInstall.Connect() );
+        }
+    else
+        {
+        User::LeaveIfError( iSWInstLauncher.Connect() );
+        }
+    }
+
+void ActiveRunnerPrivate::DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile )
     {
     if( iFileName )
         {
@@ -129,6 +136,13 @@
             }
         }
 
+    RFile fileHandle;
+    if( aOpenFile )
+        {
+        User::LeaveIfError( fileHandle.Open( iFs, fileName, EFileRead ) );
+        CleanupClosePushL( fileHandle );
+        }
+
     if( iUseSif )
         {
         if( aSilent )
@@ -142,11 +156,25 @@
             iResults = NULL;
             iResults = Usif::COpaqueNamedParams::NewL();
 
-            iSoftwareInstall.Install( fileName, *iArguments, *iResults, iStatus );
+            if( aOpenFile )
+                {
+                iSoftwareInstall.Install( fileHandle, *iArguments, *iResults, iStatus );
+                }
+            else
+                {
+                iSoftwareInstall.Install( fileName, *iArguments, *iResults, iStatus );
+                }
             }
         else
             {
-            iSoftwareInstall.Install( fileName, iStatus );
+            if( aOpenFile )
+                {
+                iSoftwareInstall.Install( fileHandle, iStatus );
+                }
+            else
+                {
+                iSoftwareInstall.Install( fileName, iStatus );
+                }
             }
         }
     else
@@ -155,13 +183,34 @@
             {
             SwiUI::TInstallOptions defaultOptions;
             SwiUI::TInstallOptionsPckg optPckg( defaultOptions );
-            iSWInstLauncher.SilentInstall( iStatus, fileName, optPckg );
+
+            if( aOpenFile )
+                {
+                iSWInstLauncher.SilentInstall( iStatus, fileHandle, optPckg );
+                }
+            else
+                {
+                iSWInstLauncher.SilentInstall( iStatus, fileName, optPckg );
+                }
             }
         else
             {
-            iSWInstLauncher.Install( iStatus, fileName );
+            if( aOpenFile )
+                {
+                iSWInstLauncher.Install( iStatus, fileHandle );
+                }
+            else
+                {
+                iSWInstLauncher.Install( iStatus, fileName );
+                }
             }
         }
+
+    if( aOpenFile )
+        {
+        CleanupStack::PopAndDestroy( &fileHandle );
+        }
+
     SetActive();
     }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h	Fri Jun 11 13:45:18 2010 +0300
@@ -29,12 +29,12 @@
 class ActiveRunnerPrivate : public CActive
 {
 public:     // constructor and destructor
-    ActiveRunnerPrivate(ActiveRunner *aRunner);
+    ActiveRunnerPrivate( ActiveRunner *aRunner );
     ~ActiveRunnerPrivate();
 
 public:     // new functions
     TInt Initialize( bool aUseSif );
-    TInt Install( const QString& aFileName, bool aSilent );
+    TInt Install( const QString& aFileName, bool aSilent, bool aOpenFile );
     TInt Remove( const Usif::TComponentId& aComponentId, bool aSilent );
     TInt Remove( const TUid& aUid, const TDesC8& aMime, bool aSilent );
 
@@ -44,12 +44,14 @@
     TInt RunError(TInt aError);
 
 private:    // new functions
-    void DoInstallL( const QString& aFileName, bool aSilent );
+    void DoInitializeL( bool aUseSif );
+    void DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile );
     void DoRemoveL( const Usif::TComponentId& aComponentId, bool aSilent );
     void DoRemoveL( const TUid& aUid, const TDesC8& aMime, bool aSilent );
 
 private:    // data
     ActiveRunner *q_ptr;
+    RFs iFs;
     HBufC* iFileName;
     TBool iUseSif;
     Usif::COpaqueNamedParams *iArguments;
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,6 +19,7 @@
 #include "activerunner.h"
 #include <hbmainwindow.h>
 #include <hbview.h>
+#include <hbtoolbar.h>
 #include <hbpushbutton.h>
 #include <hbcheckbox.h>
 #include <hbcombobox.h>
@@ -40,25 +41,21 @@
 
 
 TestInstaller::TestInstaller(int& argc, char* argv[]) : HbApplication(argc, argv),
-    mMainWindow(0), mMainView(0), mUseSilentInstall(false),
+    mMainWindow(0), mInstallView(0), mRemoveView(0),
+    mUseSilentInstall(false), mUseSilentUninstall(false), mUseRFileInstall(false),
     mInstallDirectories(0), mInstallableFiles(0), mRemovableApps(0),
     mCurrentDirPath(), mCurrentFile(), mRunner(0)
 {
     mMainWindow = new HbMainWindow();
-    mMainView = new HbView();
-    mMainView->setTitle(tr("Test Installer"));
-
-    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
 
-    HbCheckBox *silentInstallCheckBox = new HbCheckBox;
-    silentInstallCheckBox->setText(tr("Silent install/uninstall"));
-    connect(silentInstallCheckBox, SIGNAL(stateChanged(int)),
-        this, SLOT(silentCheckChanged(int)));
-    layout->addItem(silentInstallCheckBox);
-    layout->addStretch();
+    // Install view
+    mInstallView = new HbView();
+    mInstallView->setTitle(tr("Test Installer"));
+
+    QGraphicsLinearLayout *installLayout = new QGraphicsLinearLayout(Qt::Vertical);
 
     HbLabel *installTitle = new HbLabel(tr("Install:"));
-    layout->addItem(installTitle);
+    installLayout->addItem(installTitle);
 
     mInstallDirectories = new HbComboBox;
     mInstallDirectories->setEditable(false);
@@ -67,46 +64,81 @@
     mInstallDirectories->setItems(dirList);
     connect(mInstallDirectories, SIGNAL(currentIndexChanged(int)),
         this, SLOT(installableDirChanged(int)));
-    layout->addItem(mInstallDirectories);
+    installLayout->addItem(mInstallDirectories);
 
     mInstallableFiles = new HbComboBox;
     mInstallableFiles->setEditable(false);
     connect(mInstallableFiles, SIGNAL(currentIndexChanged(int)),
             this, SLOT(installableFileChanged(int)));
-    layout->addItem(mInstallableFiles);
+    installLayout->addItem(mInstallableFiles);
+
+    HbCheckBox *silentInstallCheckBox = new HbCheckBox;
+    silentInstallCheckBox->setText(tr("Silent"));
+    connect(silentInstallCheckBox, SIGNAL(stateChanged(int)),
+            this, SLOT(silentInstallCheckChanged(int)));
+    installLayout->addItem(silentInstallCheckBox);
+    HbCheckBox *rfileCheckBox = new HbCheckBox;
+    rfileCheckBox->setText(tr("Use RFile"));
+    connect(rfileCheckBox, SIGNAL(stateChanged(int)), this, SLOT(rfileCheckChanged(int)));
+    installLayout->addItem(rfileCheckBox);
+    installLayout->addStretch();
 
     HbPushButton *installNew = new HbPushButton(tr("Install using new API"));
-    layout->addItem(installNew);
+    installLayout->addItem(installNew);
     HbPushButton *installOld = new HbPushButton(tr("Install using old API"));
-    layout->addItem(installOld);
+    installLayout->addItem(installOld);
     HbPushButton *launchApp = new HbPushButton(tr("Install by opening file"));
-    layout->addItem(launchApp);
+    installLayout->addItem(launchApp);
+    installLayout->addStretch();
     connect(installNew, SIGNAL(clicked()), this, SLOT(installUsingNewApi()));
     connect(installOld, SIGNAL(clicked()), this, SLOT(installUsingOldApi()));
     connect(launchApp, SIGNAL(clicked()), this, SLOT(installByOpeningFile()));
-    layout->addStretch();
+
+    HbToolBar *installToolBar = new HbToolBar();
+    installToolBar->addAction(tr("RemoveView"), this, SLOT(removeViewActivated()));
+    installToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
+    mInstallView->setToolBar(installToolBar);
+
+    mInstallView->setLayout(installLayout);
+    mMainWindow->addView(mInstallView);
+
+    // Remove view
+    mRemoveView = new HbView();
+    mRemoveView->setTitle(tr("Test Uninstaller"));
+
+    QGraphicsLinearLayout *removeLayout = new QGraphicsLinearLayout(Qt::Vertical);
 
     HbLabel *uninstallTitle = new HbLabel(tr("Uninstall:"));
-    layout->addItem(uninstallTitle);
+    removeLayout->addItem(uninstallTitle);
+
     mRemovableApps = new HbComboBox;
     mRemovableApps->setEditable(false);
-    layout->addItem(mRemovableApps);
+    removeLayout->addItem(mRemovableApps);
+
+    HbCheckBox *silentRemoveCheckBox = new HbCheckBox;
+    silentRemoveCheckBox->setText(tr("Silent"));
+    connect(silentRemoveCheckBox, SIGNAL(stateChanged(int)),
+            this, SLOT(silentCheckChanged(int)));
+    removeLayout->addItem(silentRemoveCheckBox);
+    removeLayout->addStretch();
 
     HbPushButton *removeNew = new HbPushButton(tr("Remove using new API"));
-    layout->addItem(removeNew);
+    removeLayout->addItem(removeNew);
     HbPushButton *removeOld = new HbPushButton(tr("Remove using old API"));
-    layout->addItem(removeOld);
+    removeLayout->addItem(removeOld);
+    removeLayout->addStretch();
     connect(removeNew, SIGNAL(clicked()), this, SLOT(removeUsingNewApi()));
     connect(removeOld, SIGNAL(clicked()), this, SLOT(removeUsingOldApi()));
-    layout->addStretch();
 
-    HbPushButton *quit = new HbPushButton(tr("Exit"));
-    layout->addItem(quit);
+    mRemoveView->setLayout(removeLayout);
+    mMainWindow->addView(mRemoveView);
 
-    connect(quit, SIGNAL(clicked()), this, SLOT(closeApp()));
+    HbToolBar *removeToolBar = new HbToolBar();
+    removeToolBar->addAction(tr("InstallView"), this, SLOT(installViewActivated()));
+    removeToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
+    mRemoveView->setToolBar(removeToolBar);
 
-    mMainView->setLayout(layout);
-    mMainWindow->addView(mMainView);
+    mMainWindow->setCurrentView(mInstallView);
     mMainWindow->show();
 
     changeDir(mInstallDirectories->currentText());
@@ -116,16 +148,39 @@
 TestInstaller::~TestInstaller()
 {
     delete mRunner;
-    delete mMainView;
+    delete mInstallView;
+    delete mRemoveView;
     delete mMainWindow;
 }
 
-void TestInstaller::silentCheckChanged(int state)
+void TestInstaller::installViewActivated()
+{
+    mMainWindow->setCurrentView(mInstallView);
+}
+
+void TestInstaller::removeViewActivated()
+{
+    mMainWindow->setCurrentView(mRemoveView);
+}
+
+void TestInstaller::silentInstallCheckChanged(int state)
 {
     Qt::CheckState s = static_cast<Qt::CheckState>(state);
     mUseSilentInstall = (s == Qt::Checked);
 }
 
+void TestInstaller::silentRemoveCheckChanged(int state)
+{
+    Qt::CheckState s = static_cast<Qt::CheckState>(state);
+    mUseSilentUninstall = (s == Qt::Checked);
+}
+
+void TestInstaller::rfileCheckChanged(int state)
+{
+    Qt::CheckState s = static_cast<Qt::CheckState>(state);
+    mUseRFileInstall = (s == Qt::Checked);
+}
+
 void TestInstaller::installableDirChanged(int /*index*/)
 {
     if (mInstallDirectories) {
@@ -333,7 +388,7 @@
 void TestInstaller::doInstall(const QString &fileName)
 {
     if (mRunner) {
-        mRunner->install(fileName, mUseSilentInstall);
+        mRunner->install(fileName, mUseSilentInstall, mUseRFileInstall);
     }
 }
 
@@ -368,7 +423,7 @@
     if (mRemovableApps && mRunner) {
         int index = mRemovableApps->currentIndex();
         const TComponentId &compId(mRemovableComponentIds.at(index));
-        mRunner->remove(compId, mUseSilentInstall);
+        mRunner->remove(compId, mUseSilentUninstall);
     }
 }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h	Fri Jun 11 13:45:18 2010 +0300
@@ -38,7 +38,11 @@
     ~TestInstaller();
 
 private slots:
-    void silentCheckChanged(int state);
+    void installViewActivated();
+    void removeViewActivated();
+    void silentInstallCheckChanged(int state);
+    void silentRemoveCheckChanged(int state);
+    void rfileCheckChanged(int state);
     void installableDirChanged(int index);
     void installableFileChanged(int index);
     void installUsingNewApi();
@@ -66,8 +70,11 @@
 
 private:    // data
     HbMainWindow *mMainWindow;
-    HbView       *mMainView;
+    HbView       *mInstallView;
+    HbView       *mRemoveView;
     bool         mUseSilentInstall;
+    bool         mUseSilentUninstall;
+    bool         mUseRFileInstall;
     HbComboBox   *mInstallDirectories;
     HbComboBox   *mInstallableFiles;
     HbComboBox   *mRemovableApps;
--- a/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicator.h	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicator.h	Fri Jun 11 13:45:18 2010 +0300
@@ -58,7 +58,7 @@
     
 private:
     
-    float mUpdateValue;
+    int mUpdateValue;
     bool mIsInstallProcess;
     
 };
--- a/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicator.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicator.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -23,19 +23,19 @@
 #include <hbicon.h>
 #include "sisxsilentinstallindicator.h" 
 
+const char KSifUiDefaultApplicationIcon[] = "qtg_large_application.svg";
 
 // ----------------------------------------------------------------------------
 // SisxSilentInstallIndicator::SisxSilentInstallIndicator
 // @see sisxsilentinstallindicator.h
 // ----------------------------------------------------------------------------
 SisxSilentInstallIndicator::SisxSilentInstallIndicator( 
-		const QString &indicatorType) :
-    		HbIndicatorInterface(
-    				indicatorType,    				
-    				HbIndicatorInterface::NotificationCategory,
-    				InteractionActivated),
-    		mUpdateValue(0),
-    		mIsInstallProcess(1) // Set installer mode as default.
+	const QString &indicatorType) :
+    	HbIndicatorInterface( indicatorType,    				
+    		HbIndicatorInterface::NotificationCategory,
+    		InteractionActivated),
+    	mUpdateValue(0),
+    	mIsInstallProcess(1) // Set installer mode as default.
     {
     }
 
@@ -98,8 +98,7 @@
     case MonoDecorationNameRole:
         {
         // Get icon for the indicator.
-//TODO: this needs to be fixed.
-        QString iconName("z:/resource/swidaemon/qtg_large_application.svg");
+        QString iconName(KSifUiDefaultApplicationIcon);
         return iconName;
         }
     default: 
@@ -121,7 +120,7 @@
         case RequestActivate:
             {
             // Read client percent value to float.
-            mUpdateValue = parameter.toReal();
+            mUpdateValue = parameter.toInt();
             
             // If client send -1 insted of percent value (0-100) we need
             // to switch to uninstaller mode.
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -26,7 +26,7 @@
 echo and ctc2html commands to process the CTC output file (MON.dat).
 echo.
 pushd ..\..\group
-call \epoc32\release\winscw\udeb\ATSInterface.exe –testmodule testscripter –config c:\testframework\mt_startuplistupdater.cfg
+call \epoc32\release\winscw\udeb\ATSInterface.exe -testmodule testscripter -config c:\testframework\mt_startuplistupdater.cfg
 
 echo.
 echo.
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/mt_startuplistupdater_nrm.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/mt_startuplistupdater_nrm.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -17,3 +17,5 @@
 
 #include "mt_startuplistupdater.mmp"
 
+SMPSAFE
+
--- a/iaupdate/IAD/api/client/src/iaupdateclient.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/api/client/src/iaupdateclient.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -75,72 +75,73 @@
     else if (!mServiceRequest)
     {
         mServiceRequest = new XQServiceRequest("com.nokia.services.swupdate.swupdate_interface", message, false);
-        connect(mServiceRequest, SIGNAL(requestCompleted(QVariant)), this, SLOT(requestCompleted(QVariant)));
-        connect(mServiceRequest, SIGNAL(requestError(int)), this, SLOT(requestError(int)));
+        if (mServiceRequest)
+        {    
+            connect(mServiceRequest, SIGNAL(requestCompleted(QVariant)), this, SLOT(requestCompleted(QVariant)));
+            connect(mServiceRequest, SIGNAL(requestError(int)), this, SLOT(requestError(int)));
+        }
+        else
+        {
+            error = KErrNoMemory;
+        }
     }
     else
     {
         mServiceRequest->setMessage(message);
     }
-    XQRequestInfo requestInfo;
-    requestInfo.setBackground(toBackground);
-    mServiceRequest->setInfo(requestInfo);
+    
     
     if (error == KErrNone)
     {    
-        if (!mServiceRequest)
+        XQRequestInfo requestInfo;
+        requestInfo.setBackground(toBackground);
+        mServiceRequest->setInfo(requestInfo); 
+        int wgId = 0;
+        CEikonEnv* eikEnv = CEikonEnv::Static();
+        if ( eikEnv )
         {
-            error = KErrNoMemory;    
+            RWindowGroup owngroup;
+            wgId = eikEnv->RootWin().Identifier();
         }
-        else
+        IAUPDATE_TRACE_1("IAUpdateClient::initRequest() wgId: %d", wgId);
+        QString stringWgid;
+        stringWgid.setNum(wgId);
+        *mServiceRequest << stringWgid;  
+        if (updateParameters)
         {    
-            int wgId = 0;
-            CEikonEnv* eikEnv = CEikonEnv::Static();
-            if ( eikEnv )
-            {
-                RWindowGroup owngroup;
-                wgId = eikEnv->RootWin().Identifier();
-            }
-            IAUPDATE_TRACE_1("IAUpdateClient::initRequest() wgId: %d", wgId);
-            QString stringWgid;
-            stringWgid.setNum(wgId);
-            *mServiceRequest << stringWgid;  
-            if (updateParameters)
-            {    
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() UID: %d", updateParameters->Uid().iUid);
-                QString stringUid; 
-                stringUid.setNum(updateParameters->Uid().iUid);
-                *mServiceRequest << stringUid;
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() UID: %d", updateParameters->Uid().iUid);
+            QString stringUid; 
+            stringUid.setNum(updateParameters->Uid().iUid);
+            *mServiceRequest << stringUid;
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() searchcriteria: %S", &updateParameters->SearchCriteria());
-                *mServiceRequest << qStringFromTDesC(updateParameters->SearchCriteria());
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() searchcriteria: %S", &updateParameters->SearchCriteria());
+            *mServiceRequest << qStringFromTDesC(updateParameters->SearchCriteria());
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() executable: %S", &updateParameters->CommandLineExecutable());
-                *mServiceRequest << qStringFromTDesC(updateParameters->CommandLineExecutable());
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() executable: %S", &updateParameters->CommandLineExecutable());
+            *mServiceRequest << qStringFromTDesC(updateParameters->CommandLineExecutable());
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() arguments: %S8", &updateParameters->CommandLineArguments());
-                *mServiceRequest << qStringFromTDesC8(updateParameters->CommandLineArguments());
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() arguments: %S8", &updateParameters->CommandLineArguments());
+            *mServiceRequest << qStringFromTDesC8(updateParameters->CommandLineArguments());
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() show progress: %d", updateParameters->ShowProgress());
-                QString stringShowProgress;
-                stringShowProgress.setNum(updateParameters->ShowProgress());
-                *mServiceRequest << stringShowProgress;
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() show progress: %d", updateParameters->ShowProgress());
+            QString stringShowProgress;
+            stringShowProgress.setNum(updateParameters->ShowProgress());
+            *mServiceRequest << stringShowProgress;
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() importance: %d", updateParameters->Importance());
-                QString stringImportance;
-                stringImportance.setNum(updateParameters->Importance());
-                *mServiceRequest << stringImportance;
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() importance: %d", updateParameters->Importance());
+            QString stringImportance;
+            stringImportance.setNum(updateParameters->Importance());
+            *mServiceRequest << stringImportance;
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() type: %d", updateParameters->Type());
-                QString stringType;
-                stringType.setNum(updateParameters->Type());
-                *mServiceRequest << stringType;
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() type: %d", updateParameters->Type());
+            QString stringType;
+            stringType.setNum(updateParameters->Type());
+            *mServiceRequest << stringType;
                 
-                IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() refresh: %d", updateParameters->Refresh());
-                QString stringRefresh;
-                stringRefresh.setNum(updateParameters->Refresh());
-                *mServiceRequest << stringRefresh;
-            }
+            IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateClient::initRequest() refresh: %d", updateParameters->Refresh());
+            QString stringRefresh;
+            stringRefresh.setNum(updateParameters->Refresh());
+            *mServiceRequest << stringRefresh;
         }
     }                 
      
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1795,7 +1795,7 @@
 void CIAUpdateBGTimer::LaunchNotificationL( const int aNrOfUpdates )
     {
    
-    _LIT( KFirstTimeText, "Check for updates ?" );
+    _LIT( KFirstTimeText, "Update checking" );
     _LIT( KNormalText, "Updates available" );
     _LIT( KSecondText, "Tap to view" );
 
@@ -1805,14 +1805,14 @@
     _LIT(KLocFile, "Text_Map_Swupdate_");
     _LIT(KLocFilePath, "z:\\resource\\iaupdate\\");
     
-    _LIT(KTitleFirstTime, "txt_software_update_list_software_update");
+    _LIT(KTitleFirstTime, "txt_software_dpophead_update_checking");
     _LIT(KTitleOneUpdate, "txt_software_dpophead_update_available");
     _LIT(KTitleSeveralUpdates, "txt_software_dpophead_updates_available");
     
     
-    _LIT(KSecondFirstTime, "txt_software_update_list_software_update");
-    _LIT(KSecondOneUpdate, "txt_software_dpopinfo_val_1_new");
-    _LIT(KSecondSeveralUpdates, "txt_software_dpopinfo_ln_new");
+    _LIT(KSecondFirstTime, "txt_software_dpopinfo_tap_to_view");
+    _LIT(KSecondOneUpdate, "txt_software_dpopinfo_tap_to_view");
+    _LIT(KSecondSeveralUpdates, "txt_software_dpopinfo_tap_to_view");
    */
     
     FLOG("[bgchecker] LaunchNotificationL ");
--- a/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -88,8 +88,8 @@
         if ( mNrOfUpdates == 0 )
             {
             // First time case
-            // loc: text.append(hbTrId("txt_software_update_list_software_update"));
-            text.append(QString("Check for updates?"));
+            // loc: text.append(hbTrId("txt_software_dblist_update_checking"));
+            text.append(QString("Update checking"));
             }
         else if ( mNrOfUpdates == 1 )
             {
@@ -111,20 +111,20 @@
         if ( mNrOfUpdates == 0 )
             {
             // First time case
-            // loc: QString text(hbTrId("txt_software_update_list_software_update"));
-            text.append(QString("Tap to view"));
+            // loc: QString text(hbTrId("txt_software_dblist_val_not_activated"));
+            text.append(QString("Not activated"));
             }
         else if ( mNrOfUpdates == 1 )
             {
             // one update available
-            // loc: QString text(hbTrId("txt_software_dblist_val_1_new"));
-            text.append(QString("%1 new").arg(mNrOfUpdates));
+            // loc: QString text(hbTrId("txt_software_dblist_1_val_ln_update"));
+            text.append(QString("%Ln updates").arg(mNrOfUpdates));
             }
         else
             {
             // several updates available
-            // loc: QString text(hbTrId("txt_software_dblist_val_ln_new"));
-            text.append(QString("%1 new").arg(mNrOfUpdates));
+            // loc: QString text(hbTrId("txt_software_dblist_1_val_ln_update"));
+            text.append(QString("%%Ln updates").arg(mNrOfUpdates));
             }
         return text; 
         }
--- a/iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -31,8 +31,7 @@
 #include <cmconnectionmethodext.h>
 #include <cmconnectionmethoddef.h>
 #include <cmpluginpacketdatadef.h>
-#include <cmconnectionmethoddef.h>
-#include <cmconnectionmethodext.h>
+
 #include <cmdestinationext.h>
 #include <cmmanagerdef.h>
 
--- a/iaupdate/IAD/ui/iaupdate.pro	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/iaupdate.pro	Fri Jun 11 13:45:18 2010 +0300
@@ -45,7 +45,6 @@
     iaupdateapplication.cpp \
     iaupdatemainwindow.cpp \
     iaupdatemainview.cpp \
-    iaupdatehistoryview.cpp \
     iaupdateengine.cpp \
     iaupdateagreement.cpp \
     iaupdateautomaticcheck.cpp \
@@ -67,12 +66,14 @@
     iaupdatewaitdialog.cpp \
     iaupdatenodeid.cpp \
     iaupdatetools.cpp \
-    iaupdateresultsdialog.cpp
+    iaupdatesettingdialog.cpp \
+    iaupdateresultsdialog.cpp \
+    iaupdatedialogutil.cpp
+
     
 
 HEADERS = iaupdateapplication.h \
     iaupdatemainwindow.h \
-    iaupdatehistoryview.h \
     iaupdatemainview.h \
     iaupdateengine.h \
     iaupdatewaitdialog.h \
@@ -107,7 +108,9 @@
     iaupdateserviceprovider.h \
     iaupdatenodeid.h \
     iaupdatetools.h \
-    iaupdateresultsdialog.h 
+    iaupdatesettingdialog.h \
+    iaupdateresultsdialog.h \ 
+    iaupdatedialogutil.h
 
 
 LIBS += -lbafl
@@ -131,6 +134,7 @@
 LIBS += -lapparc
 LIBS += -lapgrfx
 LIBS += -lstarterclient
+LIBS += -lcmapplsettingsui
 
 
 
--- a/iaupdate/IAD/ui/inc/iaupdate.hrh	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdate.hrh	Fri Jun 11 13:45:18 2010 +0300
@@ -14,35 +14,13 @@
 * Description:    
 *
 */
-
-
-
 #ifndef __IAUPDATE_HRH__
 #define __IAUPDATE_HRH__
 
-/** iaupdate enumerate command codes */
-enum TIAUpdateCommandId
-    {
-    EIAUpdateCmdDummy = 0x6000,
-    EIAUpdateCmdStartUpdate,
-    EIAUpdateCmdUpdateWithPC,
-    EIAUpdateCmdUpdateDetails,
-    EIAUpdateCmdMarkedUpdateDetails,
-    EIAUpdateCmdUpdateHistory,
-    EIAUpdateCmdSettings,
-    EIAUpdateCmdDisclaimer,
-    EIAUpdateCmdHistoryViewExit,
-    EIAUpdateSoftkeyNow,
-    EIAUpdateSoftkeyLater
-    };
-    
+
 
-/** IAUpdate views */
-enum TIAUpdateViewId 
-    {
-    EIAUpdateMainViewId = 0,
-    EIAUpdateHistoryViewId
-    };
+
+
 
 enum TIAUpdateSettingDialog 
     {
--- a/iaupdate/IAD/ui/inc/iaupdateagreement.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateagreement.h	Fri Jun 11 13:45:18 2010 +0300
@@ -62,12 +62,7 @@
     * @return True value if agreement accepted 
     */
     TBool AcceptAgreementL();
-    
-    /**
-    * Shows Nokia agreement of Application Update 
-    */
-    void ShowAgreementL();
-    
+        
     /**
     * Is Nokia agreement of Application Update accepted by an user
     *
@@ -89,13 +84,7 @@
      */
     void ConstructL();
     
-    /**
-    * Shows agreement dialog
-    * 
-     */
-    HbAction* ShowDialogL( HbAction *primaryAction, HbAction *secondaryAction );
-    
-    
+       
 private: //data
     
     };
--- a/iaupdate/IAD/ui/inc/iaupdateapplication.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateapplication.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -20,7 +20,7 @@
 #define IAUPDATEAPPLICATION_H_
 
 #include <QSharedPointer>
-#include <HbApplication.h>
+#include <hbapplication.h>
 
 // forward declarations
 class IAUpdateEngine;
--- a/iaupdate/IAD/ui/inc/iaupdateautomaticcheck.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateautomaticcheck.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,13 +22,17 @@
 
 // INCLUDES
 #include <e32base.h>
+#include "iaupdatedialogobserver.h"
 
+class HbAction;
+class IAUpdateDialogUtil;
 // CLASS DECLARATION
 /**
 *
 */
 
-class CIAUpdateAutomaticCheck : public CBase
+class CIAUpdateAutomaticCheck : public CBase,
+                                public IAUpdateDialogObserver
     {
 public:
 
@@ -59,7 +63,7 @@
     * @return True value if automatic update connections are allowed, EFalse if not allowed.
     *         Returns always true if this function is called after first time
     */
-    TBool AcceptAutomaticCheckL();
+    void AcceptAutomaticCheckL();
     
     TBool AutoUpdateCheckEnabledL();
         
@@ -79,10 +83,15 @@
     * Enables automatic updates cheks
     */
     void EnableAutoUpdateCheckL( TBool aEnable );
+
+private: // From IAUpdateDialogObserver     
+         
+     void dialogFinished(HbAction *action);       
     
         
 private: //data
-    
+    IAUpdateDialogUtil *mDialogUtil;
+    HbAction *mPrimaryAction;
     };
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/ui/inc/iaupdatedialogobserver.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file contains the header file of the 
+*                IAUpdateDialogObserver class.
+*
+*/
+
+
+
+#ifndef IAUPDATEDIALOGOBSERVER_H
+#define IAUPDATEDIALOGOBSERVER_H
+
+//  INCLUDES
+
+class HbAction;
+
+
+
+class IAUpdateDialogObserver
+{
+    public:
+   
+    
+    virtual void dialogFinished(HbAction *action) = 0;   
+};
+
+
+#endif // IAUPDATEDIALOGOBSERVER_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/ui/inc/iaupdatedialogutil.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file contains the header file of the IAUpdateDialogUtil class 
+*
+*/
+
+
+
+#ifndef IAUPDATEDIALOGUTIL_H
+#define IAUPDATEDIALOGUTIL_H
+
+#include <QtCore/qmetaobject.h>
+#include <QObject>
+#include <HbAction>
+
+class IAUpdateDialogObserver;
+
+
+class IAUpdateDialogUtil : public QObject
+{
+    Q_OBJECT
+    
+    public:
+            
+    IAUpdateDialogUtil(QObject *parent, IAUpdateDialogObserver *observer = NULL);
+    ~IAUpdateDialogUtil();
+
+    void showInformation(const QString &text, HbAction *primaryAction);
+    
+    void showQuestion(const QString &text, HbAction *primaryAction, HbAction *secondaryAction);
+    
+    void showAgreement(HbAction *primaryAction, HbAction *secondaryAction = NULL);  
+    
+    public slots:
+
+    void finished(HbAction *action);
+    
+    
+    private:
+    
+        
+    private:
+    
+    IAUpdateDialogObserver* mObserver; //not owned
+    
+};
+
+#endif  // IAUPDATEDIALOGUTIL_H
+            
+// End of File
--- a/iaupdate/IAD/ui/inc/iaupdateengine.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateengine.h	Fri Jun 11 13:45:18 2010 +0300
@@ -30,11 +30,14 @@
 class CIAUpdateFWUpdateHandler;
 class CIAUpdateParameters;
 class CIAUpdateGlobalLockHandler;
+class CIAUpdateAutomaticCheck;
 class MIAUpdateNode;
 class MIAUpdateFwNode;
 class CEikonEnv;
 class RCmManagerExt;
 class CIdle;
+class HbAction;
+class IAUpdateResultsDialog;
 
 class IAUpdateEngine : public QObject,
                        public MIAUpdateUiControllerObserver
@@ -45,7 +48,7 @@
     IAUpdateEngine(QObject *parent = 0);
     ~IAUpdateEngine();
     
-    void StartedByLauncherL( TBool aRefreshFromNetworkDenied );
+    void StartedByLauncherL( bool aRefreshFromNetworkDenied );
      
      /**
       * When the update check operation is started through
@@ -57,7 +60,7 @@
       */
      void CheckUpdatesRequestL( int wgid, 
                                 CIAUpdateParameters* aFilterParams, 
-                                TBool aForcedRefresh );
+                                bool aForcedRefresh );
 
      /**
       * When the show update operation is started through
@@ -78,31 +81,30 @@
       * completed.
       * @param aUid  Uid of the caller of the request
       */
-     void ShowUpdateQueryRequestL( int wgid, TUint aUid );
+     void ShowUpdateQueryRequestL( int wgid, uint aUid );
      
      
-     void StartUpdate( TBool aFirmwareUpdate );
+     void StartUpdate( bool aFirmwareUpdate );
      /**
       * Set this application visible/unvisible
       * @param aVisible If EFalse application is put background and is hidden in FSW 
       */
-      void SetVisibleL( TBool aVisible );
+      void SetVisibleL( bool aVisible );
       
       /**
       * Set window group id of client application 
       *
       * @param aWgId Window group id
       */
-      void SetClientWgId( TInt aWgId );
+      void SetClientWgId( int aWgId );
           
       /**
       * Is client application in background
       *
       * @param True value if client application is in background
       */
-      TInt ClientInBackgroundL() const;
+      bool ClientInBackgroundL() const;
     
-      //void refresh(int error);
 signals:
     void toMainView();
     
@@ -114,10 +116,11 @@
                  const RPointerArray<MIAUpdateFwNode>& fwNodes,
                  int error);
     
-    void toHistoryView();
 
 public slots:    
     void handleAllClientsClosed();    
+
+    void dialogFinished(HbAction* action);
   
 
 private: // From MIAUpdateUiControllerObserver   
@@ -168,19 +171,16 @@
     * Show results dialog of update
     */ 
     void ShowResultsDialogL();
-        
-    /**
-    * Starts CIdle. Results dialog is shown in callback function. 
-    */ 
-    void ShowResultsDialogDeferredL();
     
     
+    void ShowRebootDialogL();
+           
     /**
     * Informs an observer that its async request is completed 
     *
     * @param aError  Error code 
     */ 
-    void InformRequestObserver( TInt aError );
+    void InformRequestObserver( int aError );
     
     /**
      * Sets the default connection method used for network access.
@@ -194,21 +194,21 @@
      * @note Leaves with KErrNotFound if connection method was not
      * set in the repocitory.
      */
-    void SetDefaultConnectionMethodL( TBool aTotalSilent );   
+    void SetDefaultConnectionMethodL( bool aTotalSilent );   
     
      /**
      * Choose a usable IAP from all SNAPs
      *
      * @param aCmManagerExt handle of connection manager
      */  
-    TUint32 GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  );
+    uint GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  );
         
      /**
      * Choose a usable IAP from Internet SNAP
      *
      * @param aCmManagerExt handle of connection manager
      */
-    TUint32 GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  );
+    uint GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  );
 
      /**
      * Choose the best IAP under the given SNAP
@@ -216,25 +216,15 @@
      * @param aCmManagerExt handle of connection manager
      * @param aSNAP SNAP ID
      */  
-     TUint32 GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, TUint32 aSNAP = 0);
+     uint GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, uint aSNAP = 0);
      
      /**
      * Shows update query dialog (now/later) 
      */ 
      void ShowUpdateQueryL();
 
-     void HideApplicationInFSWL( TBool aHide ) const;
-     
-     /**
-     * CIdle callback function, that shows status dialog
-     * To be used to guarantee that possible old status dialog is totally 
-     * removed by AVKON before showing new one  
-     *
-     * @param aPtr  Pointer to this instance
-     */ 
-     static TInt ShowResultsDialogCallbackL( TAny* aPtr );
-     
-     
+     void HideApplicationInFSWL( bool aHide ) const;
+               
      /**
      * CIdle callback function, that shows update query dialog
      * To be used because a client to be informed immediately that its 
@@ -250,31 +240,44 @@
      * @param aPtr  Pointer to this instance
      */
      static TInt AutomaticCheckCallbackL( TAny* aPtr );
-         
+     
+     void DoPossibleApplicationClose();
+ 
+   
+
+private:
      
+    enum DialogState
+        {
+        NoDialog,
+        Results,
+        RebootQuery,
+        ShowUpdateQuery
+        };
+     
+    IAUpdateServiceProvider *mServiceProvider;
+    IAUpdateResultsDialog* mResultsDialog;
     
-public: //temp
-//private:
-    IAUpdateServiceProvider *mServiceProvider;
-    
-private:
     CIAUpdateUiController* iController;
     CIAUpdateFWUpdateHandler* iFwUpdateHandler;
     CIAUpdateGlobalLockHandler* iGlobalLockHandler;
+    CIAUpdateAutomaticCheck* iAutomaticCheck;
     CEikonEnv* iEikEnv; //not owned
     CIdle* iIdle;
     CIdle* iIdleAutCheck;
     
-    IAUpdateUiDefines::TIAUpdateUiRequestType iRequestType;
-    TBool iUpdateNow;
+    
+    IAUpdateUiDefines::TIAUpdateUiRequestType mRequestType;
+    bool mUpdateNow;
     RArray<TUint32> iDestIdArray;
-    TBool iRequestIssued;
-    TBool iStartedFromApplication;
-    TBool iUiRefreshAllowed;
-    TUint iUpdatequeryUid;
-    TInt iWgId;
-  
-    
+    bool mRequestIssued;
+    bool mStartedFromApplication;
+    bool mUiRefreshAllowed;
+    uint mUpdatequeryUid;
+    int mWgId;
+    DialogState mDialogState;
+    HbAction *mPrimaryAction;
+    HbAction *mSecondaryAction;
     };
 
 #endif /* IAUPDATEENGINE_H_ */
--- a/iaupdate/IAD/ui/inc/iaupdatehistoryview.h	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   This file contains the header file of the IAUpdateHistoryView
-*                class 
-*
-*/
-
-#ifndef IAUPDATEHISTORYVIEW_H_
-#define IAUPDATEHISTORYVIEW_H_
-
-#include <HbView.h>
-
-class IAUpdateHistoryView : public HbView
-    {
-public:
-    IAUpdateHistoryView();
-    virtual ~IAUpdateHistoryView();
-    };
-
-#endif /* IAUPDATEHISTORYVIEW_H_ */
--- a/iaupdate/IAD/ui/inc/iaupdatemainview.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatemainview.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -19,7 +19,7 @@
 #ifndef IAUPDATEMAINVIEW_H_
 #define IAUPDATEMAINVIEW_H_
 
-#include <HbView.h>
+#include <hbview.h>
 #include <QItemSelection> 
 
 #include "iaupdatenode.h"
@@ -28,7 +28,11 @@
 
 
 class HbListWidget;
+class HbAction;
+class HbAbstractViewItem;
 class IAUpdateEngine;
+class IAUpdateDialogUtil;
+class TIAUpdateVersion;
 
 
 class IAUpdateMainView : public HbView
@@ -42,6 +46,9 @@
     void refresh(const RPointerArray<MIAUpdateNode> &nodes,
                  const RPointerArray<MIAUpdateFwNode> &fwNodes,
                  int error);
+signals:
+    void toSettingView();
+    
 public slots:
     void handleStartUpdate();
  
@@ -49,21 +56,45 @@
  
     void handleDisclaimer();
     
-    void handleSelectionChanged(QItemSelection);
+    void handleDetails( HbAbstractViewItem *, const QPointF & );
+    
+    void handleSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+    
+    void dialogFinished(HbAction* action);
     
 private:
     
     void getSelectedNodes(RPointerArray<MIAUpdateAnyNode> &selectedNodes) const;
     void markListItem(bool mark, int index);
     bool getMandatoryNodes(RPointerArray<MIAUpdateAnyNode> &mandNodes) const;
-    void showUpdateCannotOmitDialog() const; 
-    bool showDependenciesFoundDialog(QString &text) const;
+    void showUpdateCannotOmitDialog(); 
+    void showDependenciesFoundDialog(QString &text);
+    void updateSelectionsToNodeArray(MIAUpdateNode &node, bool mark);
     void updateSelectionsToList();
+    MIAUpdateAnyNode* getNode(int index) const;
+    void showDetails(MIAUpdateAnyNode& node);
+    void constructDetailsText(MIAUpdateAnyNode &node, QString &text);
+    void versionText(const TIAUpdateVersion &version, QString &versionText);
+    void fileSizeText(int fileSize, QString &text);
     
 private:
+    enum DialogState
+        {
+        NoDialog,
+        Dependencies,
+        CannotOmit,
+        Details
+        };
+     
     IAUpdateEngine *mEngine;
+    IAUpdateDialogUtil *mDialogUtil;
     HbListWidget *mListView;
     RPointerArray<MIAUpdateAnyNode> mAllNodes;
+    DialogState mDialogState; 
+    HbAction *mPrimaryAction;
+    MIAUpdateNode *mNode; 
+    bool mMark;
+    bool mSelectionUpdate;
 
 };
 
--- a/iaupdate/IAD/ui/inc/iaupdatemainwindow.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatemainwindow.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -19,40 +19,43 @@
 #ifndef IAUPDATEMAINWINDOW_H_
 #define IAUPDATEMAINWINDOW_H_
 
-#include <qobject>
+#include <QObject>
 #include <hbmainwindow.h>
 
 // Forward declarations
 class IAUpdateMainView;
-class IAUpdateHistoryView;
 class HbDocumentLoader;
 class MIAUpdateNode;
 class MIAUpdateFwNode;
 class IAUpdateEngine;  
+class CIAUpdateSettingDialog;
 
 class IAUpdateMainWindow : public HbMainWindow
-    {
+{
     Q_OBJECT
     
 public:
     IAUpdateMainWindow(IAUpdateEngine *engine);
     virtual ~IAUpdateMainWindow();
+    
+    IAUpdateMainView*  GetMainView();
+    CIAUpdateSettingDialog* GetSettingView();
 
 public slots:
     void toMainView();
     void refreshMainView(const RPointerArray<MIAUpdateNode>& nodes,
                          const RPointerArray<MIAUpdateFwNode>& fwNodes,
                          int error);
-    void toHistoryView();
+    void toSettingView();
 
 private:
     void addMainView(IAUpdateEngine *engine);
-    void addHistoryView();
+    void addSettingView();
     
 private:
     IAUpdateMainView *mMainView;
-    IAUpdateHistoryView *mHistoryView;
+    CIAUpdateSettingDialog *mSettingView;
     
-    };
+};
 
 #endif /* IAUPDATEMAINWINDOW */
--- a/iaupdate/IAD/ui/inc/iaupdateresultsdialog.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateresultsdialog.h	Fri Jun 11 13:45:18 2010 +0300
@@ -33,7 +33,7 @@
     IAUpdateResultsDialog(QObject *parent = 0);
     ~IAUpdateResultsDialog();
     
-    void showResults(const TIAUpdateResultsInfo &param);
+    void showResults( const TIAUpdateResultsInfo &param, QObject* receiver, const char* member );
    
 private:
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/ui/inc/iaupdatesettingdialog.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2010-2011 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:   CIAUpdateSettingDialog
+*
+*/
+
+#ifndef ACTION_H_
+#define ACTION_H_
+
+#include <hbview.h>
+#include <hblineedit.h>
+#include <hblistwidget.h>
+#include <hblabel.h>
+#include <hbdataform.h>
+#include <hbdataformmodel.h>
+
+// Access point selection
+#include <cmmanager.h>
+
+// Destination query dialog
+#include "cmapplsettingsui.h"
+
+class CIAUpdateSettingDialog : public HbView
+{
+    Q_OBJECT
+
+public:
+    explicit CIAUpdateSettingDialog(QGraphicsItem *parent=0);
+    virtual ~CIAUpdateSettingDialog();
+    
+public slots:
+    
+private slots:
+     void toggleChange(QModelIndex startIn, QModelIndex endIn);
+     void showResults(uint retval);
+     void showPreviousView(); 
+     void activated(const QModelIndex& index);
+     
+signals:
+         void toMainView();
+    
+private:
+     
+     void queryDestination();
+     
+     void saveSettingsL();
+     
+     void initializeView();
+     
+     uint getInternetSnapIdL();
+     
+     void getDestinationNameL( uint aItemUid, QString& aItemName );
+     
+     void initializeFieldsL();
+     
+    // Form & model    
+    HbDataForm* mSettingsForm;
+    HbDataFormModel *mModel;
+    
+    
+    // settings ui
+    CmApplSettingsUi* mApplSett;
+    CmApplSettingsUi::SettingSelection mSelection;
+
+    // Form items
+    HbDataFormModelItem *mAutoUpdateItem;
+    HbDataFormModelItem *mDestinationItem;
+    
+    // currently selected destination
+    QString mCurrentDest;
+    
+    // NW connection flags
+    bool mSetByNwQuery; // destination set by query / user
+    bool mConnected;    // already connected to query ?
+    bool mInitialized;  // connection initialized ?
+    
+    //TInt mAccessPointId;
+    
+    // Connection manager
+    RCmManager mCmManager;
+    
+    // for back key catching
+    HbAction*                   mBackKey;
+    
+    
+
+};
+
+#endif /* ACTION_H_ */
--- a/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Fri Jun 11 13:45:18 2010 +0300
@@ -28,6 +28,7 @@
 #include "iaupdatecontrollerobserver.h"
 #include "iaupdatenodeobserver.h"
 #include "iaupdatewaitdialogobserver.h"
+#include "iaupdatedialogobserver.h"
 #include "iaupdatestarterobserver.h"
 #include "iaupdateroaminghandlerobserver.h"
 #include "iaupdaterefreshobserver.h"
@@ -48,10 +49,12 @@
 class MIAUpdateHistory;
 class MIAUpdateFwNode;
 class IAUpdateWaitDialog;
+class IAUpdateDialogUtil;
 
 class QString;
 class CIAUpdateNodeId;
 class CEikonEnv;
+class HbAction;
 
 
 // CLASS DECLARATION
@@ -66,7 +69,8 @@
     public MIAUpdateWaitDialogObserver,
     public MIAUpdateStarterObserver,
     public MIAUpdateRoamingHandlerObserver,
-    public MIAUpdateRefreshObserver
+    public MIAUpdateRefreshObserver,
+    public IAUpdateDialogObserver
     {
            
 public: //new functions
@@ -330,6 +334,10 @@
      * This is called when the dialog is  closed.
      */
      void HandleWaitDialogCancel();   
+     
+private: // From IAUpdateDialogObserver     
+         
+     void dialogFinished(HbAction *action);   
     
 
 private: // From MIAUpdateRefreshObserver   
@@ -354,6 +362,8 @@
 
 
 private: // new functions
+    
+    void AgreementHandledL();
 
     /**
      * Called when refreshing updates list is completed.
@@ -546,6 +556,14 @@
         ESelfUpdating
         };
 
+    enum TDialogState
+        {
+        ENoDialog,
+        EAgreement,
+        EInsufficientMemory  
+        };
+    
+    
     MIAUpdateUiControllerObserver& iObserver;
 
     MIAUpdateController* iController;
@@ -559,6 +577,8 @@
     RPointerArray<CIAUpdateNodeId> iPreviousSelections;
     
     RPointerArray<MIAUpdateNode> iServicePackNodes;
+    
+    IAUpdateDialogUtil *mDialogUtil;  
  
     IAUpdateWaitDialog *mWaitDialog;
     
@@ -586,6 +606,8 @@
     
     TState iState;
     
+    TDialogState iDialogState;
+    
     TBool iClosingAllowedByClient;
     
     CIAUpdateUiConfigData* iConfigData;
@@ -605,6 +627,8 @@
     TBool iForcedRefresh;
         
     TBool iTestRole;
+    
+    HbAction *mPrimaryAction;
 
     };
 
--- a/iaupdate/IAD/ui/inc/iaupdatewaitdialogobserver.h	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatewaitdialogobserver.h	Fri Jun 11 13:45:18 2010 +0300
@@ -18,8 +18,8 @@
 
 
 
-#ifndef IAUPDATEDIALOGS_H
-#define IAUPDATEDIALOGS_H
+#ifndef IAUPDATE_WAITDIALOG_OBSERVER_H
+#define IAUPDATE_WAITDIALOG_OBSERVER_H
 
 //  INCLUDES
 #include <e32base.h>
@@ -42,6 +42,6 @@
     };
 
 
-#endif // IAUPDATEDIALOGS_H
+#endif // IAUPDATE_WAITDIALOG_OBSERVER_H
             
 // End of File
--- a/iaupdate/IAD/ui/src/iaupdateagreement.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateagreement.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,7 +19,6 @@
 
 //INCLUDES
 #include <hbaction.h>
-#include <hbdialog.h>
 #include <hbtextitem.h>
 #include <centralrepository.h>
 
@@ -102,23 +101,12 @@
         User::LeaveIfError( cenrep->Get( KIAUpdateAutoUpdateCheck, 
                                          autoUpdateCheckValue ) );
         CleanupStack::PopAndDestroy( cenrep );
-        autoUpdateCheckValue = EIAUpdateSettingValueDisable; //temp to test dialog
         if ( autoUpdateCheckValue == EIAUpdateSettingValueDisableWhenRoaming ||
              autoUpdateCheckValue ==  EIAUpdateSettingValueEnable  ) 
             {
             accepted = ETrue;
             firstTimeInfo->SetAgreementAcceptedL();
             }
-        else  
-            {
-     	    HbAction *primaryAction = new HbAction("Accept");
-     	    HbAction *secondaryAction = new HbAction("Decline");
-     	    if ( ShowDialogL( primaryAction, secondaryAction ) == primaryAction)
-     	        {
-     	        accepted = ETrue;
-     	        firstTimeInfo->SetAgreementAcceptedL();
-                }
-            }
         }
     CleanupStack::PopAndDestroy( firstTimeInfo );
     return accepted;
@@ -138,20 +126,6 @@
 
 
 
-
-
-// ---------------------------------------------------------------------------
-// CIAUpdateAgreement::ShowAgreementL
-// 
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateAgreement::ShowAgreementL()
-    {
-    HbAction *primaryAction = new HbAction("OK");
-    ShowDialogL( primaryAction, NULL );	
-    delete primaryAction;
-    }
-
 // ---------------------------------------------------------------------------
 // CIAUpdateAgreement::AgreementAcceptedL
 // 
@@ -165,36 +139,7 @@
 	return ret;
     }
     
-// ---------------------------------------------------------------------------
-// CIAUpdateAgreement::ShowDialogL
-// 
-// ---------------------------------------------------------------------------
-//
-HbAction* CIAUpdateAgreement::ShowDialogL( HbAction *primaryAction, HbAction *secondaryAction )
-    {
-    HbDialog agreementDialog;
-    HbTextItem *headingText = new HbTextItem(&agreementDialog);
-    headingText->setFontSpec(HbFontSpec(HbFontSpec::Title));
-    headingText->setText("Disclaimer");
-    agreementDialog.setHeadingWidget(headingText);
-    
-   
-    HbTextItem *text = new HbTextItem(&agreementDialog);
-    text->setFontSpec(HbFontSpec(HbFontSpec::PrimarySmall));
-    text->setText("This application allows you to download and use applications and services provided by Nokia or third parties. Service Terms and Privacy Policy will apply. Nokia will not assume any liability or responsibility for the availability or third party applications or services. Before using the third party application or service, read the applicable terms of use.\n\nUse of this application involves transmission of data. Contact your network service provider for information about data transmission charges.\n\n(c) 2007-2010 Nokia. All rights reserved.");
-    agreementDialog.setContentWidget(text);
-    
-    agreementDialog.setPrimaryAction(primaryAction);
-    
-    if ( secondaryAction )
-        {
-        agreementDialog.setSecondaryAction(secondaryAction);
-        }
-    agreementDialog.setTimeout(HbPopup::NoTimeout);
-    agreementDialog.show();
-    //return agreementDialog.exec(); 
-    return primaryAction;
-    }        
+
     
     /*HBufC* text_1 = StringLoader::LoadLC( R_IAUPDATE_AGREEMENT_DIALOG_TEXT_1 );
     HBufC* text_2 = StringLoader::LoadLC( R_IAUPDATE_AGREEMENT_DIALOG_TEXT_2 );
--- a/iaupdate/IAD/ui/src/iaupdateapplication.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateapplication.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,6 +19,8 @@
 #include "iaupdateapplication.h"
 #include "iaupdatemainwindow.h"
 #include "iaupdateengine.h"
+#include "iaupdatemainview.h"
+#include "iaupdatesettingdialog.h"
 
 IAUpdateApplication::IAUpdateApplication(  int argc, char* argv[] ) :
     HbApplication( argc, argv ),
@@ -26,8 +28,16 @@
     mMainWindow (new IAUpdateMainWindow(mEngine))
     {
     
+    // get mainview 
+    IAUpdateMainView* mainView = mMainWindow->GetMainView();
+    
+    // get settig view
+    CIAUpdateSettingDialog* settingView = mMainWindow->GetSettingView();
+    
     // Connect view change signals to the view change slots
-    connect(&(*mEngine), SIGNAL(toMainView()), &(*mMainWindow), SLOT(toMainView()));
+    //connect(&(*mEngine), SIGNAL(toMainView()), &(*mMainWindow), SLOT(toMainView()));
+    connect(&(*settingView), SIGNAL(toMainView()), &(*mMainWindow), SLOT(toMainView()));
+    connect(&(*mainView), SIGNAL(toSettingView()), &(*mMainWindow), SLOT(toSettingView()));
     connect(&(*mEngine), SIGNAL(refresh(const RPointerArray<MIAUpdateNode>&, const RPointerArray<MIAUpdateFwNode>&,int)),
             &(*mMainWindow), SLOT(refreshMainView(const RPointerArray<MIAUpdateNode>&, const RPointerArray<MIAUpdateFwNode>&,int)));
     }
--- a/iaupdate/IAD/ui/src/iaupdateautomaticcheck.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateautomaticcheck.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -24,10 +24,9 @@
 #include "iaupdatefirsttimeinfo.h"
 #include "iaupdate.hrh"
 #include "iaupdateprivatecrkeys.h"
+#include "iaupdatedialogutil.h"
 
-//#include <avkon.hrh>
 #include <centralrepository.h> 
-#include <hbmessagebox.h>
 #include <hbaction.h>
 
 
@@ -81,6 +80,10 @@
 //
 CIAUpdateAutomaticCheck::~CIAUpdateAutomaticCheck()
     {
+    if ( mDialogUtil )
+        {
+        delete mDialogUtil;
+        }
     }
 
 
@@ -89,9 +92,8 @@
 // 
 // ---------------------------------------------------------------------------
 //
-TBool CIAUpdateAutomaticCheck::AcceptAutomaticCheckL()
+void CIAUpdateAutomaticCheck::AcceptAutomaticCheckL()
     {
-    TBool acceptChecks = ETrue;
 	CIAUpdateFirstTimeInfo* firstTimeInfo = CIAUpdateFirstTimeInfo::NewLC();
 	if ( !firstTimeInfo->AutomaticUpdateChecksAskedL() )
 	    {
@@ -102,24 +104,21 @@
 	        }
 	    else
 	        {
-	        HbMessageBox messageBox(HbMessageBox::MessageTypeQuestion); 
-	        messageBox.setText(QString("Turn on setting for Automatic update checks?"));
-	        HbAction yesAction("Yes");
-	        HbAction noAction("No");
-	        messageBox.setPrimaryAction(&yesAction);
-	        messageBox.setSecondaryAction(&noAction);
-	        messageBox.setTimeout(HbPopup::NoTimeout);
-	        messageBox.show();
-	        //HbAction *selectedAction = messageBox.exec();
-	        firstTimeInfo->SetAutomaticUpdatesAskedL();
-	        //if ( selectedAction == messageBox.primaryAction() )
-	        //    {
-                //EnableAutoUpdateCheckL( ETrue ); // TEMP
-            //    }
-	        }
+	        if ( !mDialogUtil )
+	            {
+	        	mDialogUtil = new IAUpdateDialogUtil(NULL, this);
+	            }
+	        if ( mDialogUtil )
+	            {
+	            mPrimaryAction = NULL;
+	            mPrimaryAction = new HbAction("Yes");
+	            HbAction *secondaryAction = NULL;
+	            secondaryAction = new HbAction("No");
+	            mDialogUtil->showQuestion(QString("Turn on setting for Automatic update checks?"), mPrimaryAction, secondaryAction);
+	            }
+ 	        }
 	    }
 	CleanupStack::PopAndDestroy( firstTimeInfo ); 
-    return acceptChecks;
     }
 
 // ---------------------------------------------------------------------------
@@ -173,5 +172,19 @@
     CleanupStack::PopAndDestroy( cenrep );
     }
 
-    
+// ---------------------------------------------------------------------------
+// CIAUpdateAutomaticCheck::dialogFinished
+// 
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateAutomaticCheck::dialogFinished(HbAction *action)
+    {
+    if ( action == mPrimaryAction )
+        {
+        EnableAutoUpdateCheckL( ETrue ); 
+        }
+    CIAUpdateFirstTimeInfo* firstTimeInfo = CIAUpdateFirstTimeInfo::NewLC();
+    firstTimeInfo->SetAutomaticUpdatesAskedL();
+    CleanupStack::PopAndDestroy( firstTimeInfo );
+    }
 // End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/ui/src/iaupdatedialogutil.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This module contains the implementation of IAUpdateDialogUtil class 
+*                member functions.
+*
+*/
+#include <hbtextitem.h>
+#include <hbmessagebox.h>
+
+#include "iaupdatedialogutil.h"
+#include "iaupdatedialogobserver.h"
+#include "iaupdatedebug.h"
+
+
+
+IAUpdateDialogUtil::IAUpdateDialogUtil(QObject *parent, IAUpdateDialogObserver *observer)
+: QObject(parent),
+  mObserver(observer)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateDialogUtil::IAUpdateDialogUtil()");
+}
+
+IAUpdateDialogUtil::~IAUpdateDialogUtil()
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateDialogUtil::~IAUpdateDialogUtil()");
+}
+
+
+void IAUpdateDialogUtil::showInformation(const QString &text, HbAction *primaryAction)
+{    
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation); 
+    messageBox->setText(text);
+    int actionCount = messageBox->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
+    }
+    if (primaryAction)
+    {    
+        messageBox->addAction(primaryAction);
+    }  
+    messageBox->setTimeout(HbPopup::NoTimeout); 
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    messageBox->open(this,SLOT(finished(HbAction*)));
+}
+
+
+void IAUpdateDialogUtil::showQuestion(const QString &text, HbAction *primaryAction, HbAction *secondaryAction)
+{
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); 
+    messageBox->setIconVisible(false);
+    messageBox->setText(text);
+    int actionCount = messageBox->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
+    }
+    if (primaryAction)
+    {    
+        messageBox->addAction(primaryAction);
+    }
+    if (secondaryAction)
+    {    
+        messageBox->addAction(secondaryAction);
+    } 
+    messageBox->setTimeout(HbPopup::NoTimeout); 
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    messageBox->open(this,SLOT(finished(HbAction*)));
+}
+
+
+void IAUpdateDialogUtil::showAgreement(HbAction *primaryAction, HbAction *secondaryAction)
+{
+    HbMessageBox *agreementDialog = new HbMessageBox(HbMessageBox::MessageTypeQuestion); 
+    agreementDialog->setIconVisible(false);
+    agreementDialog->setText("This application allows you to download and use applications and services provided by Nokia or third parties. Service Terms and Privacy Policy will apply. Nokia will not assume any liability or responsibility for the availability or third party applications or services. Before using the third party application or service, read the applicable terms of use.\n\nUse of this application involves transmission of data. Contact your network service provider for information about data transmission charges.\n\n(c) 2007-2010 Nokia. All rights reserved.");
+
+    int actionCount = agreementDialog->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        agreementDialog->removeAction(agreementDialog->actions().at(i));
+    }
+    if (primaryAction)
+    {    
+        agreementDialog->addAction(primaryAction);
+    }    
+    if (secondaryAction)
+    {
+        agreementDialog->addAction(secondaryAction);
+    }
+    agreementDialog->setTimeout(HbPopup::NoTimeout);
+    agreementDialog->setAttribute(Qt::WA_DeleteOnClose);
+    agreementDialog->open(this,SLOT(finished(HbAction*)));
+}
+
+
+
+void IAUpdateDialogUtil::finished(HbAction *action)
+{
+    if (mObserver)
+    {
+        mObserver->dialogFinished(action);
+    }
+}
+
+
+
+
+
+
--- a/iaupdate/IAD/ui/src/iaupdateengine.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateengine.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -45,20 +45,24 @@
 
 
 IAUpdateEngine::IAUpdateEngine(QObject *parent)
-     : QObject(parent),
-      iController(NULL),
-      iFwUpdateHandler(NULL),
-      iGlobalLockHandler(NULL),
-      iIdle(NULL),
-      iIdleAutCheck(NULL),
-      iUpdateNow(EFalse),
-      iRequestIssued(EFalse),
-      iStartedFromApplication(EFalse),
-      iUiRefreshAllowed(ETrue),
-      iUpdatequeryUid(0)
+     : QObject(parent)
 {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::IAUpdateEngine() begin");
+    iController = NULL;
+    iFwUpdateHandler = NULL;
+    iGlobalLockHandler = NULL;
+    iAutomaticCheck = NULL;
+    iIdle = NULL;
+    iIdleAutCheck = NULL;
     iEikEnv = CEikonEnv::Static();
+    mUpdateNow = false;
+    mRequestIssued = false;
+    mStartedFromApplication = false;
+    mUiRefreshAllowed = true;
+    mWgId = 0;
+    mUpdatequeryUid = 0;
+    mDialogState = NoDialog;
+    mResultsDialog = NULL;
     mServiceProvider = NULL;
     mServiceProvider = new IAUpdateServiceProvider( *this );
     connect(mServiceProvider, SIGNAL(clientDisconnected()), this, SLOT(handleAllClientsClosed()));
@@ -83,6 +87,10 @@
         {
         delete iGlobalLockHandler;
         }
+    if ( iAutomaticCheck )
+        {
+        delete iAutomaticCheck;
+        }
     if ( iController )
         {
         delete iController;
@@ -103,13 +111,13 @@
 // 
 // -----------------------------------------------------------------------------
 //
-void IAUpdateEngine::StartedByLauncherL( TBool aRefreshFromNetworkDenied )
+void IAUpdateEngine::StartedByLauncherL( bool aRefreshFromNetworkDenied )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartedByLauncherL() begin");
-    iRequestIssued = ETrue;
-    iRequestType = IAUpdateUiDefines::ENoRequest;
-    iController->SetRequestType( iRequestType );
-    SetVisibleL( ETrue );
+    mRequestIssued = true;
+    mRequestType = IAUpdateUiDefines::ENoRequest;
+    iController->SetRequestType( mRequestType );
+    SetVisibleL( true );
     CIAUpdateParameters* params = iController->ParamsReadAndRemoveFileL();
     iController->CheckUpdatesDeferredL( params, aRefreshFromNetworkDenied );
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartedByLauncherL() end");
@@ -122,17 +130,17 @@
 //
 void IAUpdateEngine::CheckUpdatesRequestL( int wgid, 
                                            CIAUpdateParameters* aFilterParams,
-                                           TBool aForcedRefresh )
+                                           bool aForcedRefresh )
                                            
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::CheckUpdatesRequestL() begin");
     SetClientWgId( wgid );
-    iRequestIssued = ETrue;
-    iStartedFromApplication  = ETrue;
+    mRequestIssued = true;
+    mStartedFromApplication  = true;
     CleanupStack::PushL( aFilterParams );
     if ( wgid > 0 )
         {
-        HideApplicationInFSWL( ETrue );
+        HideApplicationInFSWL( true );
         }
     CleanupStack::Pop( aFilterParams );
     
@@ -141,11 +149,11 @@
         iEikEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNeverAtFront ); 
         }
            
-    iRequestType = IAUpdateUiDefines::ECheckUpdates; 
-    iController->SetRequestType( iRequestType );
+    mRequestType = IAUpdateUiDefines::ECheckUpdates; 
+    iController->SetRequestType( mRequestType );
     iController->SetForcedRefresh( aForcedRefresh );
     
-    iController->CheckUpdatesDeferredL( aFilterParams, EFalse ); 
+    iController->CheckUpdatesDeferredL( aFilterParams, false ); 
     
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::CheckUpdatesRequestL() end");
     }
@@ -159,22 +167,22 @@
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdatesRequestL() begin"); 
     SetClientWgId( wgid );
-    iRequestIssued = ETrue;
+    mRequestIssued = true;
 //    delete iBackgroundTimer;
 //    iBackgroundTimer = NULL;
-    iStartedFromApplication  = ETrue;
+    mStartedFromApplication  = true;
     CleanupStack::PushL( aFilterParams );
     if ( wgid > 0 )
         {
-        HideApplicationInFSWL( ETrue );
+        HideApplicationInFSWL( true );
         }
    
-    //StatusPane()->MakeVisible( ETrue );
+    //StatusPane()->MakeVisible( true );
     iEikEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );
     
     //iRequestObserver = &aObserver;
-    iRequestType = IAUpdateUiDefines::EShowUpdates;
-    iController->SetRequestType( iRequestType );
+    mRequestType = IAUpdateUiDefines::EShowUpdates;
+    iController->SetRequestType( mRequestType );
      
 
     //if ( !iMainView )
@@ -189,11 +197,11 @@
     CIAUpdateGlobalLockHandler* globalLockHandler = CIAUpdateGlobalLockHandler::NewLC();
     if ( !globalLockHandler->InUseByAnotherInstanceL() )
         {
-        globalLockHandler->SetToInUseForAnotherInstancesL( ETrue );
+        globalLockHandler->SetToInUseForAnotherInstancesL( true );
         CleanupStack::Pop( globalLockHandler );
         CleanupStack::Pop( aFilterParams );
         CleanupStack::PushL( globalLockHandler );
-        iController->CheckUpdatesDeferredL( aFilterParams, EFalse );
+        iController->CheckUpdatesDeferredL( aFilterParams, false );
         CleanupStack::Pop( globalLockHandler ); 
         delete iGlobalLockHandler;
         iGlobalLockHandler = globalLockHandler;
@@ -217,21 +225,19 @@
 // 
 // -----------------------------------------------------------------------------
 //     
-void IAUpdateEngine::ShowUpdateQueryRequestL( int wgid, TUint aUid )
+void IAUpdateEngine::ShowUpdateQueryRequestL( int wgid, uint aUid )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryRequestL begin");
     SetClientWgId( wgid );
-    iRequestIssued = ETrue;
-    iStartedFromApplication  = ETrue;
-    iUpdatequeryUid = aUid;
-    iUpdateNow = EFalse;
+    mRequestIssued = true;
+    mStartedFromApplication  = true;
+    mUpdatequeryUid = aUid;
+    mUpdateNow = false;
     if ( wgid > 0 )
         {
-        HideApplicationInFSWL( ETrue );
+        HideApplicationInFSWL( true );
         }
-    
-    //iRequestObserver = &aObserver;
-    iRequestType = IAUpdateUiDefines::EUpdateQuery;
+    mRequestType = IAUpdateUiDefines::EUpdateQuery;
     
     
     delete iIdle;
@@ -246,7 +252,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-void IAUpdateEngine::StartUpdate( TBool aFirmwareUpdate )
+void IAUpdateEngine::StartUpdate( bool aFirmwareUpdate )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartUpdate() begin");
     if ( aFirmwareUpdate )
@@ -267,10 +273,10 @@
         CIAUpdateGlobalLockHandler* globalLockHandler = CIAUpdateGlobalLockHandler::NewLC();
         if ( !globalLockHandler->InUseByAnotherInstanceL() )
             {
-            globalLockHandler->SetToInUseForAnotherInstancesL( ETrue );
+            globalLockHandler->SetToInUseForAnotherInstancesL( true );
             // No need to be totally silent since the updating is started
             // by user.
-            SetDefaultConnectionMethodL( EFalse );
+            SetDefaultConnectionMethodL( false );
             iController->StartUpdateL();
             CleanupStack::Pop( globalLockHandler ); 
             delete iGlobalLockHandler;
@@ -292,7 +298,7 @@
 // 
 // -----------------------------------------------------------------------------
 //  
-void IAUpdateEngine::SetVisibleL( TBool aVisible )
+void IAUpdateEngine::SetVisibleL( bool aVisible )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetVisibleL() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] visible: %d", aVisible );
@@ -321,10 +327,10 @@
 // 
 // -----------------------------------------------------------------------------
 // 
-void IAUpdateEngine::SetClientWgId( TInt aWgId )
+void IAUpdateEngine::SetClientWgId( int aWgId )
     {
     IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateEngine::SetClientWgId() wgId %d", aWgId );
-    iWgId = aWgId;
+    mWgId = aWgId;
     }
 
 // -----------------------------------------------------------------------------
@@ -332,19 +338,19 @@
 // 
 // -----------------------------------------------------------------------------
 // 
-TInt IAUpdateEngine::ClientInBackgroundL() const
+bool IAUpdateEngine::ClientInBackgroundL() const
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ClientInBackgroundL() begin");
-    TBool inBackground = EFalse;
-    if ( iWgId > 0 )
+    bool inBackground = false;
+    if ( mWgId > 0 )
         {
-        CArrayFixFlat<TInt>*  wgArray = new( ELeave ) CArrayFixFlat<TInt>(10);  
+        CArrayFixFlat<int>*  wgArray = new( ELeave ) CArrayFixFlat<int>(10);  
         CleanupStack::PushL( wgArray );
         User::LeaveIfError( iEikEnv->WsSession().WindowGroupList( 0, wgArray ) );  
-        TInt ownWgId = iEikEnv->RootWin().Identifier();
-        if ( ( wgArray->At( 0 ) != ownWgId ) && ( wgArray->At( 0 ) != iWgId  ) )
+        int ownWgId = iEikEnv->RootWin().Identifier();
+        if ( ( wgArray->At( 0 ) != ownWgId ) && ( wgArray->At( 0 ) != mWgId  ) )
             {
-            inBackground = ETrue;
+            inBackground = true;
             }
         CleanupStack::PopAndDestroy( wgArray );  
         }
@@ -365,6 +371,67 @@
 
 
 // -----------------------------------------------------------------------------
+// IAUpdateEngine::dialogFinished
+// Called when dialog is finished.
+// -----------------------------------------------------------------------------
+//
+void IAUpdateEngine::dialogFinished(HbAction *action)
+    {
+    DialogState dialogState = mDialogState;
+    mDialogState = NoDialog;
+    
+    switch ( dialogState )
+        {
+        case Results:
+            mUiRefreshAllowed = true;
+            if ( iController->ResultsInfo().iRebootAfterInstall )
+                {
+                ShowRebootDialogL();
+                }
+            else
+                {
+                DoPossibleApplicationClose();
+                }
+            break;
+        case RebootQuery:    
+            if (action == mPrimaryAction )
+                {
+                RStarterSession startersession;
+                if( startersession.Connect() == KErrNone )
+                    {
+                    startersession.Reset( RStarterSession::EUnknownReset );
+                    startersession.Close();
+                    }
+                }
+            else
+                {
+                DoPossibleApplicationClose();
+                }
+            break;
+        case ShowUpdateQuery:    
+            if (action == mPrimaryAction)
+                {
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::dialogFinished() Now");
+                mUpdateNow = true;
+                }
+            else if (action == mSecondaryAction)
+                {
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::dialogFinished() Later");
+                CIAUpdateQueryHistory* updateQueryHistory = CIAUpdateQueryHistory::NewL();
+                CleanupStack::PushL( updateQueryHistory );
+                updateQueryHistory->SetTimeL( mUpdatequeryUid );
+                CleanupStack::PopAndDestroy( updateQueryHistory );
+                }
+            InformRequestObserver( KErrNone );
+            break;
+        default: 
+            break;
+        }
+    }
+
+
+
+// -----------------------------------------------------------------------------
 // IAUpdateEngine::StartupComplete
 // 
 // -----------------------------------------------------------------------------
@@ -404,8 +471,8 @@
     iGlobalLockHandler = CIAUpdateGlobalLockHandler::NewL();
     if ( !iGlobalLockHandler->InUseByAnotherInstanceL() )
         {
-        TBool totalSilent( EFalse );
-        if ( iRequestType == IAUpdateUiDefines::ECheckUpdates )
+        bool totalSilent(false);
+        if ( mRequestType == IAUpdateUiDefines::ECheckUpdates )
             {
             if ( iController->Filter() )
                 {
@@ -416,19 +483,19 @@
                         if ( !iController->ForcedRefresh() )
                             {
                             //from bgchecker, make it silent
-                            totalSilent = ETrue;
+                            totalSilent = true;
                             }
                         }
                     }
                 }
             }
         SetDefaultConnectionMethodL( totalSilent );
-        iGlobalLockHandler->SetToInUseForAnotherInstancesL( ETrue );
+        iGlobalLockHandler->SetToInUseForAnotherInstancesL(true);
         iController->StartRefreshL();  
         }
     else
         {
-        RefreshCompleteL( ETrue, KErrServerBusy );
+        RefreshCompleteL( true, KErrServerBusy );
         }    
  
        
@@ -495,7 +562,7 @@
     delete iGlobalLockHandler;
     iGlobalLockHandler = NULL;   
    
-    if ( iRequestType == IAUpdateUiDefines::ECheckUpdates )
+    if ( mRequestType == IAUpdateUiDefines::ECheckUpdates )
         {
         InformRequestObserver( aError );
         }
@@ -507,7 +574,7 @@
           //  ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
           //  }
         CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
-        TBool agreementAccepted = agreement->AgreementAcceptedL();
+        bool agreementAccepted = agreement->AgreementAcceptedL();
         if ( iController->ForcedRefresh() )    
             {
             if ( !agreementAccepted )
@@ -543,14 +610,14 @@
     //removal of iGlobalLockHandler releases possible global operation lock to other IAD instances
     delete iGlobalLockHandler;
     iGlobalLockHandler = NULL;  
-    if ( iRequestType != IAUpdateUiDefines::ENoRequest )
+    if ( mRequestType != IAUpdateUiDefines::ENoRequest )
         {
         InformRequestObserver( aError );
         }
     
     emit refresh( iController->Nodes(), iController->FwNodes(), KErrNone );
          
-    ShowResultsDialogDeferredL();
+    ShowResultsDialogL();
                 
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::UpdateCompleteL end");
     }
@@ -564,71 +631,46 @@
 //   
 void IAUpdateEngine::ShowResultsDialogL()
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() begin");
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() begin"); 
                 
-    iUiRefreshAllowed = ETrue;
-    IAUpdateResultsDialog resultsDialog;
-    resultsDialog.showResults(iController->ResultsInfo());
-    
-    //TODO: How to recognise when application is closing 
-    if ( iController->ResultsInfo().iRebootAfterInstall )
-        {
-        HbMessageBox messageBox(HbMessageBox::MessageTypeQuestion); 
-        messageBox.setText(QString("Phone restart needed. Restart now?"));
-        HbAction okAction("Ok");
-        HbAction cancelAction("Cancel");
-        messageBox.setPrimaryAction(&okAction);
-        messageBox.setSecondaryAction(&cancelAction);
-        messageBox.setTimeout(HbPopup::NoTimeout);
-        messageBox.show();
-        /*HbAction *selectedAction = messageBox.exec();
-        if (selectedAction == messageBox.primaryAction())
-            {
-            RStarterSession startersession;
-            if( startersession.Connect() == KErrNone )
-                {
-                startersession.Reset( RStarterSession::EUnknownReset );
-                startersession.Close();
-                return;
-                }
-            }*/
-        }
-    if ( iStartedFromApplication && 
-        iController->ResultsInfo().iCountCancelled == 0 &&
-        iController->ResultsInfo().iCountFailed == 0 )
-        {
-        qApp->quit();
-        }
-    
-    IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() nodes count: %d", iController->Nodes().Count() );
-    IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() fw nodes: %d", iController->FwNodes().Count() );
-    //exit from result view if there are no update left
-    if ( iController->Nodes().Count() == 0 && iController->FwNodes().Count() == 0 )
-        {
-        qApp->quit();
-        }
+    mUiRefreshAllowed = false;
+    mResultsDialog = new IAUpdateResultsDialog(this);
+    mResultsDialog->showResults(iController->ResultsInfo(),this,SLOT(dialogFinished(HbAction*)));
+    mDialogState = Results;
     
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() end");
     }
-
+    
 // -----------------------------------------------------------------------------
-// IAUpdateEngin::ShowResultsDialogDeferredL
+// IAUpdateEngine::ShowRebootDialogL
 // 
 // -----------------------------------------------------------------------------
-//       
-void IAUpdateEngine::ShowResultsDialogDeferredL()
+//
+void IAUpdateEngine::ShowRebootDialogL()
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogDeferredL() begin");
-    delete iIdle;
-    iIdle = NULL;
-    iIdle = CIdle::NewL( CActive::EPriorityIdle ); 
-    iIdle->Start( TCallBack( ShowResultsDialogCallbackL, this ) ); 
-    iUiRefreshAllowed = EFalse;
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogDeferredL() end");
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowRebootDialogL() begin");
+    
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+    messageBox->setText(QString("Phone restart needed. Restart now?"));
+    int actionCount = messageBox->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
     }
- 
+    mPrimaryAction = NULL;
+    mPrimaryAction = new HbAction("Ok");
+    HbAction *secondaryAction = NULL;
+    secondaryAction = new HbAction("Cancel");
 
-
+    messageBox->addAction(mPrimaryAction);
+    messageBox->addAction(secondaryAction);
+    messageBox->setTimeout(HbPopup::NoTimeout);
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    messageBox->open(this, SLOT(dialogFinished(HbAction*)));
+    mDialogState = RebootQuery;
+    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowRebootDialogL() end");
+    }
 
 
 
@@ -640,16 +682,16 @@
 // 
 // -----------------------------------------------------------------------------
 //      
-void IAUpdateEngine::InformRequestObserver( TInt aError )
+void IAUpdateEngine::InformRequestObserver( int aError )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::InformRequestObserver() begin");
         
     //if ( iRequestObserver )
-    if ( iRequestIssued )    
+    if ( mRequestIssued )    
         {
         if ( iController->ClosingAllowedByClient() )
             {
-            if ( iRequestType != IAUpdateUiDefines::ENoRequest )
+            if ( mRequestType != IAUpdateUiDefines::ENoRequest )
                 {
 //                if ( iRequestType == IAUpdateUiDefines::EUpdateQuery && iUpdateNow )
 //                    {
@@ -669,7 +711,7 @@
                 }
             }
         
-        switch ( iRequestType )
+        switch ( mRequestType )
             {
             case IAUpdateUiDefines::ENoRequest:
                 {
@@ -706,7 +748,7 @@
                 }
             case IAUpdateUiDefines::EUpdateQuery:
                 {
-                mServiceProvider->completeUpdateQuery( iUpdateNow, aError );
+                mServiceProvider->completeUpdateQuery( mUpdateNow, aError );
                 break;
                 }
             default:
@@ -715,8 +757,7 @@
                 }
             }
 
-        //iRequestObserver = NULL; 
-        iRequestIssued = EFalse;
+        mRequestIssued = false;
         }
         
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::InformRequestObserver() end");
@@ -728,15 +769,15 @@
 // Sets the connection method for the update network connection.
 // ---------------------------------------------------------------------------
 //
-void IAUpdateEngine::SetDefaultConnectionMethodL( TBool aTotalSilent )
+void IAUpdateEngine::SetDefaultConnectionMethodL( bool aTotalSilent )
     {
     if ( aTotalSilent )
         {
         // from back ground checker, choose the IAP to make the internet access silent
         IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() begin");
 
-           TUint32 connectionMethodId( 0 );
-           TInt connMethodId( 0 );
+           uint connectionMethodId( 0 );
+           int connMethodId( 0 );
 
            // Let's first check whether cenrep contains SNAP id other than zero
            CRepository* cenrep( CRepository::NewLC( KCRUidIAUpdateSettings ) );
@@ -827,12 +868,12 @@
         {
         // from grid, use the old logic
         IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() begin");
-                  TUint32 connectionMethodId( 0 );
-                  TInt connMethodId( 0 );
+                  uint connectionMethodId( 0 );
+                  int connMethodId( 0 );
 
                   // Set initial value to always ask
-                  TInt connectionMethodType( TIAUpdateConnectionMethod::EConnectionMethodTypeAlwaysAsk );
-                  TBool needSaving(EFalse);
+                  int connectionMethodType( TIAUpdateConnectionMethod::EConnectionMethodTypeAlwaysAsk );
+                  bool needSaving(false);
 
                   // Let's first check whether cenrep contains SNAP id other than zero
                   CRepository* cenrep( CRepository::NewLC( KCRUidIAUpdateSettings ) );
@@ -863,7 +904,7 @@
                       iDestIdArray.Reset();
                       cmManagerExt.AllDestinationsL( iDestIdArray );
 
-                      for ( TInt i = 0; i< iDestIdArray.Count(); i++ )
+                      for ( int i = 0; i< iDestIdArray.Count(); i++ )
                           {
                           RCmDestinationExt dest = cmManagerExt.DestinationL( iDestIdArray[i] );
                           CleanupClosePushL( dest );
@@ -874,7 +915,7 @@
                               if ( dest.ConnectionMethodCount() > 0 )
                                   {
                                   connectionMethodId = iDestIdArray[i];
-                                  needSaving = ETrue;
+                                  needSaving = true;
                                   IAUPDATE_TRACE_1("[IAUPDATE] connectionMethodId: %d", connectionMethodId );
                                   }
                               CleanupStack::PopAndDestroy( &dest ); 
@@ -901,7 +942,7 @@
                       if ( needSaving )
                           {
                           cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
-                          TInt err = cenrep->StartTransaction( CRepository::EReadWriteTransaction );
+                          int err = cenrep->StartTransaction( CRepository::EReadWriteTransaction );
                           User::LeaveIfError( err );
                           cenrep->CleanupCancelTransactionPushL();
                           
@@ -932,10 +973,10 @@
 // Sets the best IAP from all snaps
 // ---------------------------------------------------------------------------
 //
-TUint32 IAUpdateEngine::GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  )
+uint IAUpdateEngine::GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  )
     { 
     //go with internet SNAP first.
-    TUint32 IAPID = 0;
+    uint IAPID = 0;
     IAPID = GetBestIAPInInternetSNAPL( aCmManagerExt );
     
     if ( IAPID )
@@ -947,9 +988,9 @@
     iDestIdArray.Reset();
     aCmManagerExt.AllDestinationsL( iDestIdArray );
     
-    for ( TInt i = 0; i< iDestIdArray.Count(); i++ )
+    for ( int i = 0; i< iDestIdArray.Count(); i++ )
         {
-        TUint32 SNAPID = iDestIdArray[i];                   
+        uint SNAPID = iDestIdArray[i];                   
         IAPID = GetBestIAPInThisSNAPL( aCmManagerExt, SNAPID );
         if ( IAPID )
             {
@@ -967,13 +1008,13 @@
 // Sets the best IAP from internet snap
 // ---------------------------------------------------------------------------
 //
-TUint32 IAUpdateEngine::GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  )
+uint IAUpdateEngine::GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  )
     {
     //select IAP from Internet SNAP
     iDestIdArray.Reset();
     aCmManagerExt.AllDestinationsL( iDestIdArray );
-    TUint32 InternetSNAPID = 0;
-    for ( TInt i = 0; i< iDestIdArray.Count(); i++ )
+    uint InternetSNAPID = 0;
+    for ( int i = 0; i< iDestIdArray.Count(); i++ )
         {
         RCmDestinationExt dest = aCmManagerExt.DestinationL( iDestIdArray[i] );
         CleanupClosePushL( dest );
@@ -998,7 +1039,7 @@
 // Sets the best IAP from the given snap
 // ---------------------------------------------------------------------------
 //
-TUint32 IAUpdateEngine::GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, TUint32 aSNAPID  )
+uint IAUpdateEngine::GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, uint aSNAPID  )
     {
     //get all usable IAPs
     TConnMonIapInfoBuf iapInfo;
@@ -1018,14 +1059,14 @@
     CleanupClosePushL( dest );
     
     // Check whether the SNAP contains any IAP.
-    for  (TInt i = 0; i < dest.ConnectionMethodCount(); i++ )
+    for  (int i = 0; i < dest.ConnectionMethodCount(); i++ )
         {
         RCmConnectionMethodExt cm =  dest.ConnectionMethodL( i );
         CleanupClosePushL( cm );
         
-        TUint32 iapid= cm.GetIntAttributeL( CMManager::ECmIapId );
+        uint iapid= cm.GetIntAttributeL( CMManager::ECmIapId );
         
-        for ( TInt i = 0; i < iapInfo().iCount; i++ )
+        for ( int i = 0; i < iapInfo().iCount; i++ )
             {
             if ( iapInfo().iIap[i].iIapId == iapid )
                 {
@@ -1054,7 +1095,9 @@
     // the config file.
     updateQueryHistory->SetDelay( iController->ConfigData().QueryHistoryDelayHours() );
     CleanupStack::PushL( updateQueryHistory );
-    if ( !updateQueryHistory->IsDelayedL( iUpdatequeryUid ) )
+    bool isDelayed( updateQueryHistory->IsDelayedL( mUpdatequeryUid ) );
+    CleanupStack::PopAndDestroy( updateQueryHistory );
+    if ( !isDelayed )
         {
         if ( ClientInBackgroundL() )
             {
@@ -1065,30 +1108,29 @@
             iEikEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );    
             }
  
-        HbMessageBox messageBox(HbMessageBox::MessageTypeQuestion); 
-        messageBox.setText(QString("Application update is available from Nokia. Update?"));
-        HbAction nowAction("Now");
-        HbAction laterAction("Later");
-        messageBox.setPrimaryAction(&nowAction);
-        messageBox.setSecondaryAction(&laterAction);
-        messageBox.setTimeout(HbPopup::NoTimeout);
-        messageBox.show();
-        iUpdateNow = ETrue;
-        //HbAction *selectedAction = messageBox.exec();
-        
-        /*if (selectedAction == messageBox.primaryAction())
-            {
-            IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryL() Now");
-            iUpdateNow = ETrue;
-            }
-        else if (selectedAction == messageBox.secondaryAction())
-            {
-            IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryL() Later");
-            updateQueryHistory->SetTimeL( iUpdatequeryUid );
-            }*/
+        HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); 
+        messageBox->setText(QString("Application update is available from Nokia. Update?"));
+        int actionCount = messageBox->actions().count();
+        for (int i=actionCount-1; i >= 0; i--)
+        { 
+            messageBox->removeAction(messageBox->actions().at(i));
         }
-    CleanupStack::PopAndDestroy( updateQueryHistory );
-    InformRequestObserver( KErrNone );  
+        mPrimaryAction = NULL;
+        mPrimaryAction = new HbAction("Now");
+        mSecondaryAction = NULL;
+        mSecondaryAction = new HbAction("Later");
+        messageBox->addAction(mPrimaryAction);
+        messageBox->addAction(mSecondaryAction);
+        messageBox->setTimeout(HbPopup::NoTimeout);
+        messageBox->setAttribute(Qt::WA_DeleteOnClose);
+        messageBox->open(this, SLOT(dialogFinished(HbAction*)));
+        mDialogState = ShowUpdateQuery;
+        }
+    else
+        {
+        InformRequestObserver( KErrNone );
+        }
+   
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryL() end");
     }
 
@@ -1099,11 +1141,11 @@
 // 
 // -----------------------------------------------------------------------------
 //  
-void IAUpdateEngine::HideApplicationInFSWL( TBool aHide ) const
+void IAUpdateEngine::HideApplicationInFSWL( bool aHide ) const
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HideApplicationInFSW() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] hide: %d", aHide );
-    TInt id = iEikEnv->RootWin().Identifier();
+    int id = iEikEnv->RootWin().Identifier();
 
     CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC( 
             iEikEnv->WsSession(), id );
@@ -1115,22 +1157,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// IAUpdateEngine::ShowResultsDialogCallbackL
-// ---------------------------------------------------------------------------
-//
-TInt IAUpdateEngine::ShowResultsDialogCallbackL( TAny* aPtr )
-    {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogCallbackL() begin");
-    IAUpdateEngine* engine = static_cast<IAUpdateEngine*>( aPtr );
-    //TRAPD( err, engine->ShowResultsDialogL() );
-    TRAP_IGNORE( engine->ShowResultsDialogL() );
-    //appUI->HandleLeaveErrorL( err );
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogCallbackL() end");
-    return KErrNone;
-    }
-
-
-// ---------------------------------------------------------------------------
 // IAUpdateEngine::UpdateQueryCallbackL
 // ---------------------------------------------------------------------------
 //
@@ -1158,28 +1184,44 @@
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::AutomaticCheckCallbackL() begin");
     IAUpdateEngine* engine= static_cast<IAUpdateEngine*>( aPtr ); 
     
-    TInt err = KErrNone;
-    CIAUpdateAutomaticCheck* automaticCheck = NULL;
-    TRAP( err, automaticCheck = CIAUpdateAutomaticCheck::NewL() ); 
+    int err = KErrNone;
+    if ( !engine->iAutomaticCheck )
+        {
+        TRAP( err, engine->iAutomaticCheck = CIAUpdateAutomaticCheck::NewL() ); 
+        }
     if ( err != KErrNone )
         {
         engine->HandleLeaveErrorL( err );
         }
     else
         {
-        CleanupStack::PushL( automaticCheck );
-        TRAP( err, automaticCheck->AcceptAutomaticCheckL() );
+        TRAP( err, engine->iAutomaticCheck->AcceptAutomaticCheckL() );
         if ( err != KErrNone )
             {
             engine->HandleLeaveErrorL( err );
             }   
         } 
-    
-    CleanupStack::PopAndDestroy( automaticCheck );
-    
+  
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::AutomaticCheckCallbackL() end");
     return KErrNone;
     }
 
-
-
+// ---------------------------------------------------------------------------
+// IAUpdateEngine::DoPossibleApplicationClose()
+// ---------------------------------------------------------------------------
+//  
+void IAUpdateEngine::DoPossibleApplicationClose()
+    {
+    //exit from result view if there are no update left
+    if ( iController->Nodes().Count() == 0 && iController->FwNodes().Count() == 0 )
+        {
+        qApp->quit();
+        }
+    else if ( mStartedFromApplication && 
+        iController->ResultsInfo().iCountCancelled == 0 &&
+        iController->ResultsInfo().iCountFailed == 0 )
+        {
+        qApp->quit();
+        }
+    }
+            
--- a/iaupdate/IAD/ui/src/iaupdatehistoryview.cpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   This module contains the implementation of IAUpdateHistoryView
-*                class member functions.
-*
-*/
-
-
-#include "iaupdatehistoryview.h"
-
-IAUpdateHistoryView::IAUpdateHistoryView()
-    {
-    // Create the view from DocML
-    }
-
-IAUpdateHistoryView::~IAUpdateHistoryView()
-    {
-    }
--- a/iaupdate/IAD/ui/src/iaupdatemainview.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatemainview.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -17,8 +17,8 @@
 */
 
 #include <hbaction.h>
-#include <qgraphicswidget>
-//#include <hblistview.h>
+#include <QgraphicsWidget>
+
 #include <hblistwidget.h>
 #include <hblistviewitem.h>
 #include <hblistwidgetitem.h>
@@ -27,22 +27,33 @@
 #include <hbdocumentloader.h>
 #include <xqconversions.h>
 #include <hbmessagebox.h>
+#include <hbtextitem.h>
 
 #include "iaupdatemainview.h"
 #include "iaupdateengine.h"
 #include "iaupdateagreement.h"
 #include "iaupdatedeputils.h"
+#include "iaupdatedialogutil.h"
+#include "iaupdateversion.h"
 
 #include "iaupdatedebug.h"
 
+
+
 const int KKiloByte = 1024;
 const int KMegaByte = 1024 * 1024;
 const int KMaxShownInKiloBytes = 10 * KMegaByte;
 
 
 IAUpdateMainView::IAUpdateMainView(IAUpdateEngine *engine):
-mEngine( engine )        
+mEngine(engine)        
 {
+    mDialogUtil = NULL;
+    mDialogState = NoDialog;
+    mPrimaryAction = NULL;
+    mNode = NULL;
+    mSelectionUpdate = false;
+    
     HbDocumentLoader loader;
     bool ok = false;
     loader.load(":/xml/iaupdate_mainview.docml", &ok);
@@ -51,7 +62,6 @@
     Q_ASSERT_X(ok, "Software update", "Invalid docml file");
     // Create the view from DocML
     
-    //QGraphicsWidget* widget = loader.findWidget("view");
     HbView* widget = qobject_cast<HbView*>(loader.findWidget("view"));
     Q_ASSERT_X(widget != 0, "Software update", "View not found");
     QString viewTitle(widget->title());
@@ -74,24 +84,16 @@
     connect(action_1, SIGNAL(triggered()), this, SLOT(handleSettings()));
     connect(action_2, SIGNAL(triggered()), this, SLOT(handleDisclaimer()));
 
-    //mListView = qobject_cast<HbListView*>( loader.findWidget("listView") ); 
     mListView = qobject_cast<HbListWidget*>( loader.findWidget("listWidget") );
-    //mListView = loader.findWidget("listWidget");
     mListView->setSelectionMode( HbAbstractItemView::MultiSelection );
     
+    connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
+            this, SLOT( handleDetails( HbAbstractViewItem *, const QPointF & ) ) ); 
+    
     HbListViewItem *prototype = mListView->listItemPrototype();
 
     prototype->setGraphicsSize(HbListViewItem::LargeIcon);
-    //prototype->setStretchingStyle(HbListViewItem::StretchLandscape);
-    //prototype->setSecondaryTextRowCount(1,1);
 
-    
-        
-    /*HbListWidgetItem* item = new HbListWidgetItem();
-    QStringList data;
-    data << "Test application" << "Critical";
-    item->setData(QVariant(data), Qt::DisplayRole);
-    mListWidget->addItem(item);*/
 }
     
 IAUpdateMainView::~IAUpdateMainView()
@@ -329,7 +331,7 @@
         //iListBox->HandleItemAdditionL();
         }
      connect(selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
-                    this, SLOT(handleSelectionChanged(QItemSelection)));     
+                    this, SLOT(handleSelectionChanged(QItemSelection,QItemSelection)));     
     
      IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh end");
      }
@@ -360,40 +362,81 @@
 
 void IAUpdateMainView::handleSettings()
 {
+    emit toSettingView();
 }
 
 void IAUpdateMainView::handleDisclaimer()
 {
-    CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
-    agreement->ShowAgreementL();
-    CleanupStack::PopAndDestroy( agreement);
+    if (!mDialogUtil)
+    {
+        mDialogUtil = new IAUpdateDialogUtil(this);
+    }
+    if (mDialogUtil)
+    {
+        HbAction *primaryAction = new HbAction("OK");
+        mDialogUtil->showAgreement(primaryAction);
+    }
+}
+
+void IAUpdateMainView::handleDetails( HbAbstractViewItem * item, const QPointF & )
+{
+ 
+    
+    int ind = item->modelIndex().row();
+    if (getNode(ind) != NULL)
+    {    
+        showDetails(*getNode(ind));
+    }
 }
 
-void IAUpdateMainView::handleSelectionChanged(QItemSelection itemSelection)
+
+void IAUpdateMainView::handleSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
 {
-    QModelIndexList indexList = itemSelection.indexes(); 
-    bool changedItemFound = false; 
-    for (int i = 0; !changedItemFound && i < mAllNodes.Count(); ++i)
+    if (!mSelectionUpdate)
     {
-        bool currentlySelected = false; 
-        for (int j = 0; !currentlySelected && j < indexList.count(); ++j)
+        bool changedItemFound = false; 
+        QModelIndexList indexList = selected.indexes();
+        for (int i = 0; !changedItemFound && i < indexList.count(); ++i)
+        {    
+            changedItemFound = true;
+            markListItem(true, indexList.at(i).row());
+        }
+        if (!changedItemFound)
         {
-            //QModelIndex modelIndex = indexList.at(j);
-            //modelIndex.row();
-            if (i == indexList.at(j).row())
-            {
-                currentlySelected = true;
+            indexList = deselected.indexes();
+            for (int i = 0; !changedItemFound && i < indexList.count(); ++i)
+            {    
+                changedItemFound = true;
+                markListItem(false, indexList.at(i).row());
             }
         }
-        if (currentlySelected !=  mAllNodes[i]->Base().IsSelected())
-        {
-            changedItemFound = true;
-            markListItem(currentlySelected,i);
+    }
+}
+
+
+void IAUpdateMainView::dialogFinished(HbAction *action)
+{
+    DialogState dialogState = mDialogState;
+    mDialogState = NoDialog;
+    
+    switch ( dialogState )
+    {
+        case Dependencies:
+            if (action == mPrimaryAction)
+            {
+                updateSelectionsToNodeArray(*mNode,mMark);
+            }
             updateSelectionsToList();
-        }
+            break;
+        case CannotOmit:    
+            break;
+        case Details:
+            break; 
+        default: 
+            break;
     }
+}
 
-}
 
 void IAUpdateMainView::getSelectedNodes(RPointerArray<MIAUpdateAnyNode> &selectedNodes) const
 {
@@ -432,7 +475,8 @@
     
     if (mAllNodes[index]->NodeType() == MIAUpdateAnyNode::ENodeTypeFw )
     {
-        mAllNodes[index]->Base().SetSelected(mark);       
+        mAllNodes[index]->Base().SetSelected(mark);   
+        updateSelectionsToList();
         return;
     }
     
@@ -454,12 +498,14 @@
                 if (err != KErrNone)
                 {
                     deps.Close();
+                    updateSelectionsToList();
                     return;
                 }
                 if (!getMandatoryNodes(mands))
                 {
                     // error when creating mandatory node list
                     mands.Close();
+                    updateSelectionsToList();
                     return;
                 }
             }
@@ -470,6 +516,7 @@
                 {
                     //show dialog  
                     showUpdateCannotOmitDialog();
+                    updateSelectionsToList();
                     return;
                 }
                 
@@ -478,6 +525,7 @@
                 if (err != KErrNone)
                 {
                     deps.Close();
+                    updateSelectionsToList();
                     return;
                 }
                 // item is not allowed to be unmarked if its dependant is mandatory
@@ -493,6 +541,7 @@
                 {
                     showUpdateCannotOmitDialog();
                     deps.Close();
+                    updateSelectionsToList();
                     return;
                 }
             }
@@ -560,39 +609,59 @@
                 }
                 else
                 {
-                    accepted = showDependenciesFoundDialog(text);
+                    mNode = node;
+                    mMark = mark;
+                    showDependenciesFoundDialog(text);
+                    return;
                 }
             }
-            
             if (accepted)
-            {
-                for(int j = 0; j < depCount; j++)
-                {
-                    int depNodeInd = mAllNodes.Find(deps[j]);
-                    mAllNodes[depNodeInd]->Base().SetSelected(mark);
-                }
-                deps.Close();
-                int nodeInd = mAllNodes.Find(node);
-                mAllNodes[nodeInd]->Base().SetSelected(mark);
+            {    
+                updateSelectionsToNodeArray(*node, mark);   
             }
-            else
+        }
+        
+    }
+    updateSelectionsToList();
+}       
+    
+void IAUpdateMainView::updateSelectionsToNodeArray(MIAUpdateNode &node, bool mark)   
+{    
+    RPointerArray<MIAUpdateNode> deps;  
+    TInt err = KErrNone;
+    if (mark)
+    {
+        TRAP(err,IAUpdateDepUtils::GetDependenciesL(node, mAllNodes, deps));
+    }
+    else
+    {
+        TRAP(err,IAUpdateDepUtils::GetDependantsL(node, mAllNodes, deps)); 
+    }
+    if (err  == KErrNone )
+    {    
+        int depCount = deps.Count(); 
+        for(int i = 0; i < depCount; i++)
+        {
+            int depNodeInd = mAllNodes.Find(deps[i]);
+            mAllNodes[depNodeInd]->Base().SetSelected(mark);
+        }
+        deps.Close();
+        int nodeInd = mAllNodes.Find(&node);
+        mAllNodes[nodeInd]->Base().SetSelected(mark);
+    }                
+    
+    //mark all of the mandatory items
+    if ( mark )
+    {    
+        RPointerArray<MIAUpdateAnyNode> mands;    
+        if (getMandatoryNodes(mands))
+        {
+            int mandCount = mands.Count();
+            if (mandCount > 0)
             {
-                //user rejects the dependency dialog
-                deps.Close();
-                if (mark)
+                for(int i = 0; i < mandCount; i++)
                 {
-                    mands.Close();
-                }
-                return;
-            }
-                
-            //mark all of the mandatory items
-            int mandCount = mands.Count();
-            if (mandCount > 0 && mark)
-            {
-                for(int j = 0; j < mandCount; j++)
-                {
-                    int mandNodeInd = mAllNodes.Find(mands[j]);
+                    int mandNodeInd = mAllNodes.Find(mands[i]);
                     mAllNodes[mandNodeInd]->Base().SetSelected(mark);
                     if (mAllNodes[mandNodeInd]->NodeType() == MIAUpdateAnyNode::ENodeTypeNormal)
                     {
@@ -603,30 +672,22 @@
                         if (err)
                         {
                             dependencies.Close(); 
-                            if (mark)
-                            {
-                                mands.Close();
-                            }
+                            mands.Close();
                             return;
                         }
-                        for(int k = 0; k < dependencies.Count(); k++)
+                        for(int j = 0; j < dependencies.Count(); j++)
                         {
-                            int depNodeInd = mAllNodes.Find(dependencies[k]);
+                            int depNodeInd = mAllNodes.Find(dependencies[j]);
                             mAllNodes[depNodeInd]->Base().SetSelected(true);
                         }
                         dependencies.Close();
                     }
                 }
             }
-            if (mark)
-            {
-                mands.Close();
-            }
-        }  
-        return;
         }
-    return;
-    }
+        mands.Close();
+    }  
+}
 
 
 bool IAUpdateMainView::getMandatoryNodes(RPointerArray<MIAUpdateAnyNode> &mandNodes) const
@@ -645,38 +706,48 @@
     return ret;
 }
 
-void IAUpdateMainView::showUpdateCannotOmitDialog() const
+void IAUpdateMainView::showUpdateCannotOmitDialog()
 {
-    HbMessageBox messageBox(HbMessageBox::MessageTypeInformation); 
-    messageBox.setText(QString("This required update cannot be omitted"));
-    HbAction okAction("Ok");
-    messageBox.setPrimaryAction(&okAction);
-    messageBox.setTimeout(HbPopup::StandardTimeout);
-    messageBox.show();
-    //messageBox.exec();
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    messageBox->setText(QString("This required update cannot be omitted"));
+    int actionCount = messageBox->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
+    }
+    HbAction *okAction = NULL;
+    okAction = new HbAction("Ok");
+    messageBox->addAction(okAction);
+    messageBox->setTimeout(HbPopup::StandardTimeout);
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    mDialogState = CannotOmit;
+    messageBox->open(this, SLOT(dialogFinished(HbAction*)));
 }
 
-bool IAUpdateMainView::showDependenciesFoundDialog(QString &text) const
+void IAUpdateMainView::showDependenciesFoundDialog(QString &text)
 {
-    bool accepted = false;
-    HbMessageBox messageBox(HbMessageBox::MessageTypeQuestion);
-    messageBox.setText(text);
-    HbAction continueAction("Continue");
-    messageBox.setPrimaryAction(&continueAction);
-    HbAction cancelAction("Cancel");
-    messageBox.setSecondaryAction(&cancelAction);
-    messageBox.setTimeout(HbPopup::NoTimeout);
-    messageBox.show();
-    //HbAction *selectedAction = messageBox.exec();
-    //if (selectedAction == messageBox.primaryAction())
-    {
-        accepted = true;
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+    messageBox->setText(text);
+    int actionCount = messageBox->actions().count();
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
     }
-    return accepted;
+    mPrimaryAction = NULL;
+    mPrimaryAction = new HbAction("Continue");
+    HbAction *secondaryAction = NULL;
+    secondaryAction = new HbAction("Cancel");
+    messageBox->addAction(mPrimaryAction);
+    messageBox->addAction(secondaryAction);
+    messageBox->setTimeout(HbPopup::NoTimeout);
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    mDialogState = Dependencies;
+    messageBox->open(this, SLOT(dialogFinished(HbAction*)));
 }
 
 void IAUpdateMainView::updateSelectionsToList()
 {
+    mSelectionUpdate = true;
     for(int i = 0; i < mAllNodes.Count(); ++i)
     {
         if ( mAllNodes[i]->Base().IsSelected() != mListView->selectionModel()->isSelected(mListView->model()->index(i,0)))
@@ -693,11 +764,151 @@
             mListView->selectionModel()->select(mListView->model()->index(i,0),selectionFlag);   
         }
     }
+    mSelectionUpdate = false;
 }
 
 
-                
-                
+MIAUpdateAnyNode* IAUpdateMainView::getNode(int index) const
+{
+    MIAUpdateAnyNode *currentNode = NULL;
+     
+    if (index >= 0 && index < mAllNodes.Count())
+    {
+        currentNode = mAllNodes[index];
+    }
+    return currentNode;
+}
                 
-                
-                
+void IAUpdateMainView::showDetails(MIAUpdateAnyNode& node)
+{  
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    messageBox->setIconVisible(false);
+            
+    QString text;
+    constructDetailsText(node,text); 
+    messageBox->setText(text);
+    int actionCount = messageBox->actions().count();
+    
+    for (int i=actionCount-1; i >= 0; i--)
+    { 
+        messageBox->removeAction(messageBox->actions().at(i));
+    }
+    HbAction *okAction = NULL;
+    okAction = new HbAction("Ok");
+    messageBox->addAction(okAction);
+    messageBox->setTimeout(HbPopup::NoTimeout);
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    mDialogState = Details;
+    messageBox->open(this, SLOT(dialogFinished(HbAction*)));                
+}                
+        
+
+void IAUpdateMainView::constructDetailsText(MIAUpdateAnyNode &node, QString &text)
+{
+    
+    text.append(QString("Name:"));
+    text.append(QString("<br />"));
+    QString name = XQConversions::s60DescToQString(node.Base().Name());
+    text.append(name);
+    if (node.NodeType() == MIAUpdateAnyNode::ENodeTypeFw)
+    {    
+        name.append(QString(" Device software"));
+    }
+        
+    text.append(QString("<br />"));
+    text.append(QString("<br />"));
+    
+    text.append(QString("Description:"));
+    text.append(QString("<br />"));
+    QString description;
+    if (node.NodeType() == MIAUpdateAnyNode::ENodeTypeFw)
+    {
+        description = QString("This update improves your device performance and brings you latest features.");
+    }
+    else
+    {    
+        description = XQConversions::s60DescToQString(node.Base().Description());
+    }    
+    text.append(description);
+    text.append(QString("<br />"));
+    text.append(QString("<br />"));
+    
+    
+    if (node.NodeType() == MIAUpdateAnyNode::ENodeTypeNormal)
+    {
+        MIAUpdateNode *iaupdateNode = static_cast<MIAUpdateNode*> (&node);
+        if (iaupdateNode->Type()!= MIAUpdateNode::EPackageTypeServicePack)
+        {
+            text.append(QString("Version:"));
+            text.append(QString("<br />"));
+            QString textVersion;
+            versionText(node.Base().Version(), textVersion);
+            text.append(textVersion);
+            text.append(QString("<br />"));
+            text.append(QString("<br />"));
+        }
+    }
+    if (node.NodeType() == MIAUpdateAnyNode::ENodeTypeFw)
+    {    
+        MIAUpdateFwNode *fwNode = static_cast<MIAUpdateFwNode*> (&node);
+        text.append(QString("Version:"));
+        text.append(QString("<br />"));
+        QString textVersion = XQConversions::s60DescToQString(fwNode->FwVersion1());
+        text.append(textVersion);
+        text.append(QString("<br />"));
+        text.append(QString("<br />"));
+    }
+    
+    int contentSize = node.Base().ContentSizeL();
+    if (contentSize > 0)
+    {
+        text.append(QString("Size:"));
+        text.append(QString("<br />"));
+        QString textFileSize;
+        fileSizeText(contentSize, textFileSize);
+        text.append(textFileSize);
+    }
+}
+
+void IAUpdateMainView::versionText(const TIAUpdateVersion &version, QString &versionText)
+{
+    QString stringMajor;
+    stringMajor.setNum(version.iMajor);
+    versionText.append(stringMajor);
+    versionText.append(QString("."));
+    QString stringMinor;
+    stringMinor.setNum(version.iMinor);
+    versionText.append(stringMinor);
+    versionText.append(QString("("));
+    QString stringBuild;
+    stringBuild.setNum(version.iBuild);
+    versionText.append(stringBuild);
+    versionText.append(QString(")"));
+}
+
+void IAUpdateMainView::fileSizeText(int fileSize, QString &text)
+{
+    int size = 0;
+    QString stringUnit;
+    
+    if (fileSize >= KMaxShownInKiloBytes )
+        {
+        stringUnit.append(" MB");
+        size = fileSize / KMegaByte;
+        if ( fileSize % KMegaByte != 0 )
+            {
+            size++;
+            }
+        }
+    else
+        {
+        stringUnit.append(" kB");
+        size = fileSize / KKiloByte;
+        if ( fileSize % KKiloByte != 0 )
+            {
+            size++;
+            }   
+        }
+    text.setNum(size);
+    text.append(stringUnit); 
+}
--- a/iaupdate/IAD/ui/src/iaupdatemainwindow.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatemainwindow.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -21,15 +21,16 @@
 #include "iaupdatemainwindow.h"
 #include "iaupdateengine.h"
 #include "iaupdatemainview.h"
-#include "iaupdatehistoryview.h"
+#include "iaupdatesettingdialog.h"
 
 
 // ViewManager Constructor
 IAUpdateMainWindow::IAUpdateMainWindow(IAUpdateEngine *engine)
 {
     // Add the views to the main window
-    //addHistoryView();
     addMainView(engine);
+    addSettingView();
+    
     // show the main window (which will display the last view that was added)
     show();   //temp
 }
@@ -46,19 +47,24 @@
     addView(mMainView);
 }
 
-void IAUpdateMainWindow::addHistoryView()
+
+void IAUpdateMainWindow::addSettingView()
 {
-    mHistoryView = new IAUpdateHistoryView();
-    addView(mHistoryView);
+    
+    mSettingView = new CIAUpdateSettingDialog(mMainView);
+    addView(mSettingView);
 }
 
-
 // Slots to handle view change
 void IAUpdateMainWindow::toMainView()
 {
     setCurrentView(mMainView);
 }
 
+void IAUpdateMainWindow::toSettingView()
+{
+    setCurrentView(mSettingView);
+}
 void IAUpdateMainWindow::refreshMainView(const RPointerArray<MIAUpdateNode>& nodes,
                                          const RPointerArray<MIAUpdateFwNode>& fwNodes,
                                          int error)
@@ -68,10 +74,15 @@
 } 
 
 
-void IAUpdateMainWindow::toHistoryView()
-{
-    setCurrentView(mHistoryView);
-}
 
 
+IAUpdateMainView* IAUpdateMainWindow::GetMainView()
+{
+    return mMainView;    
+}
+   
+CIAUpdateSettingDialog* IAUpdateMainWindow::GetSettingView()
+{
+    return mSettingView;}
 
+
--- a/iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -38,20 +38,20 @@
 {
 }
 
-void IAUpdateResultsDialog::showResults(const TIAUpdateResultsInfo &param)
+void IAUpdateResultsDialog::showResults(const TIAUpdateResultsInfo &param, QObject* receiver, const char* member )
 {
     QString buf;
     constructText(param,buf);
-    HbDialog dialog;
-    HbTextItem *text = new HbTextItem(&dialog);
+    HbDialog *dialog = new HbDialog;
+    HbTextItem *text = new HbTextItem(dialog);
     text->setFontSpec(HbFontSpec(HbFontSpec::Primary));
     text->setText(buf);
-    dialog.setContentWidget(text);
+    dialog->setContentWidget(text);
     HbAction *primaryAction = new HbAction("Ok");    
-    dialog.setPrimaryAction(primaryAction);
-    dialog.setTimeout(HbPopup::NoTimeout);
-    dialog.show();
-    //dialog.exec();    
+    dialog->addAction(primaryAction);
+    dialog->setTimeout(HbPopup::NoTimeout);
+    dialog->setAttribute(Qt::WA_DeleteOnClose);
+    dialog->open(receiver, member);
     return;  
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,367 @@
+/*
+* Copyright (c) 2010-2011 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 module contains the implementation of IAUpdateSettingDialog 
+*                class member functions.
+*
+*/
+
+#include <hbdataform.h>
+#include <hbdataformmodel.h>
+#include <centralrepository.h>
+#include <cmconnectionmethoddef.h>
+#include <cmdestination.h>
+#include <xqconversions.h>
+#include <hbaction.h> 
+
+#include "iaupdatesettingdialog.h"
+#include "iaupdateprivatecrkeys.h"
+
+
+/*
+Constructor. It creates a formwidget on the view. 
+*/
+CIAUpdateSettingDialog::CIAUpdateSettingDialog(QGraphicsItem* parent):HbView(parent)
+    {
+    
+    //setTitle("Software update");
+    
+    mSettingsForm = new HbDataForm(this);
+            
+
+    // open connection manager 
+    TRAPD(err,  mCmManager.OpenL()); 
+    qt_symbian_throwIfError(err);
+    
+    // destination field flag inititializations 
+    mSetByNwQuery = false; // dest set by user/by destination query
+    mConnected = false;    // already connected to query
+    mInitialized = false;  // field initialized ?
+    
+    // Initialize view
+    initializeView();
+    
+    //setWidget(mSettingsForm);
+    setWidget(mSettingsForm);
+    
+    // Create application settings ui
+    mApplSett = new CmApplSettingsUi(this);
+
+    // Create a back key action and set it as the default navigation
+    // action once the back key is pressed
+    mBackKey = new HbAction(Hb::BackNaviAction, this);
+    this->setNavigationAction(mBackKey);
+
+    connect(mBackKey, SIGNAL(triggered()), this, SLOT(showPreviousView()));
+
+    }
+
+/*
+Destructor
+*/
+CIAUpdateSettingDialog::~CIAUpdateSettingDialog()
+    {
+    // close connection manager 
+    mCmManager.Close();
+    }
+
+// ----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::toggleChange
+// 
+// ----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::toggleChange(QModelIndex startIn, QModelIndex /*endIn*/)
+{
+    // HLa: this should work
+    HbDataFormModelItem *itm = mModel->itemFromIndex(startIn);
+
+    // Destination ?
+    if ( startIn.row() == 0 )
+        {
+        // no query when initializing fields
+        if ( mInitialized )
+            {
+            // no query if field value set by destination query
+            if (!mSetByNwQuery )
+                {
+                queryDestination();
+                mSetByNwQuery = true;
+                }
+                else
+                {
+                mSetByNwQuery = false;
+                }
+            }
+        else
+            {
+            mInitialized = true;
+            }
+           
+        }
+    // Auto update ?
+    if ( startIn.row() == 1 )
+        {
+         int currentIndex = mAutoUpdateItem->contentWidgetData(QString("currentIndex")).toInt();
+        }
+}
+// ----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::queryDestination
+// 
+// ----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::queryDestination()
+  {
+        QFlags<CmApplSettingsUi::SelectionDialogItems> listItems;
+        QSet<CmApplSettingsUi::BearerTypeFilter> filter;
+        
+        // Show only destinations
+       listItems |= CmApplSettingsUi::ShowDestinations;
+       // listItems |= CmApplSettingsUi::ShowConnectionMethods;
+
+        mApplSett->setOptions(listItems, filter);
+        mApplSett->setSelection(mSelection);
+        
+        // Connect finished(uint) signal and handle result via it
+        if (!mConnected)
+            {
+            connect(mApplSett, SIGNAL(finished(uint)), this, SLOT(showResults(uint)));
+            mConnected = true;
+            }
+        
+        // Start CmApplSettingsUi
+        mApplSett->open();
+
+  }
+// ----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::showResults
+// 
+// ----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::showResults(uint retval)
+{
+    if (retval == CmApplSettingsUi::ApplSettingsErrorNone) {
+        mSelection = mApplSett->selection();
+        
+        uint destinationId = mSelection.id;
+        
+        QString idString;
+        
+        TRAPD( err, getDestinationNameL( destinationId, idString ) );
+        qt_symbian_throwIfError(err);
+
+        // Destination changed ?
+        if ( idString != mCurrentDest )
+            {
+            mCurrentDest = idString;
+            }
+    }
+   // inform toggleChange that change is not made by user
+    mSetByNwQuery = true;
+    mDestinationItem->setContentWidgetData(QString("text"), mCurrentDest);
+}
+
+// ----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::SaveSettingsL
+// 
+// ----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::saveSettingsL()
+    {
+    CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
+    TInt err = cenrep->StartTransaction( CRepository::EReadWriteTransaction );
+    User::LeaveIfError( err );
+    
+    cenrep->CleanupCancelTransactionPushL();
+    
+    // Set destination
+    TInt value = mSelection.id;
+    err = cenrep->Set( KIAUpdateAccessPoint, value ) ;
+    User::LeaveIfError( err );
+    
+    // Set auto update check
+    value = mAutoUpdateItem->contentWidgetData(QString("currentIndex")).toInt();
+    err = cenrep->Set( KIAUpdateAutoUpdateCheck, value ); 
+    User::LeaveIfError( err );
+    
+    TUint32 ignore = KErrNone;
+    User::LeaveIfError( cenrep->CommitTransaction( ignore ) );
+    CleanupStack::PopAndDestroy(); // CleanupCancelTransactionPushL()
+    CleanupStack::PopAndDestroy( cenrep );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::initializeFieldsL
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::initializeFieldsL()
+    {
+    CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
+    int destId = 0;
+    
+    // get access point id
+    User::LeaveIfError( cenrep->Get( KIAUpdateAccessPoint, destId ) );
+    
+    // save id
+    mSelection.id = destId;
+    
+    // On first time: show internet access point
+    if ( mSelection.id == 0 )
+        {
+        User::LeaveIfError(mSelection.id = getInternetSnapIdL());
+        }
+
+    // set destination name
+    TRAPD( err, getDestinationNameL( mSelection.id, mCurrentDest ) );
+   
+    if ( err == KErrNotFound )
+        { 
+        mSelection.id = 0;
+        }
+    else
+        {
+         // nothing to do ?
+         User::LeaveIfError( err );
+        }
+    mDestinationItem->setContentWidgetData(QString("text"), mCurrentDest);
+    
+    // set auto update value
+    int value = 0;
+    User::LeaveIfError( cenrep->Get( KIAUpdateAutoUpdateCheck, value ) );
+    mAutoUpdateItem->setContentWidgetData("currentIndex", value);
+    
+   
+    CleanupStack::PopAndDestroy( cenrep ); 
+
+    } 
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdateSettingDialog::getDestinationNameL
+//
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::getDestinationNameL( uint aItemUid, QString& aItemName )
+    {
+    
+    if ( aItemUid == 0 )
+        {
+        aItemUid = getInternetSnapIdL();
+        }
+
+    RCmDestination dest = mCmManager.DestinationL( aItemUid );
+    CleanupClosePushL( dest );
+    HBufC* temp = dest.NameLC();    
+    CleanupStack::Pop( temp );
+    CleanupStack::PopAndDestroy( &dest ); 
+    
+    aItemName = XQConversions::s60DescToQString( temp->Des() );
+
+    if ( aItemName.size() == 0 ) 
+        {
+        User::Leave(KErrNotFound);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// ActionView::initializeView
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateSettingDialog::initializeView()
+    {
+    
+    setTitle("Software update"); // txt_software_title_software_update
+    mSettingsForm->setHeading("Settings"); // txt_software_subhead_settings
+
+     //create a model class
+     HbDataFormModel *mModel = new HbDataFormModel();
+
+     // add Destination item
+     mDestinationItem = mModel->appendDataFormItem(
+         HbDataFormModelItem::ToggleValueItem, QString("Network connection")); // txt_software_formlabel_access_point
+
+     // add auto update item
+     mAutoUpdateItem = mModel->appendDataFormItem(
+        HbDataFormModelItem::ComboBoxItem, QString("Auto-check for updates")); // txt_software_setlabel_autocheck_for_updates
+     
+     // auto update selection values
+     QStringList list;
+     list.insert(0, QString("On")); // txt_software_setlabel_val_on
+     list.append(QString("Off")); // txt_software_setlabel_val_off
+     list.append(QString("On in home network")); // txt_software_setlabel_val_on_in_home_network
+     mAutoUpdateItem->setContentWidgetData("items", list);
+
+     // connect data changes for launching the access point selection dialog
+     connect(mModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), 
+                 this, SLOT(toggleChange(QModelIndex, QModelIndex)));
+
+     // connect to function called when data items are displayed
+     connect(mSettingsForm, SIGNAL(activated(QModelIndex)), 
+                      this, SLOT(activated(QModelIndex)));
+     
+     mSettingsForm->setModel(mModel);
+         
+     // set values for items
+     TRAPD(err, initializeFieldsL());
+     qt_symbian_throwIfError(err);
+}
+
+// -----------------------------------------------------------------------------
+// ActionView::getInternetSnapIdL
+// -----------------------------------------------------------------------------
+//
+uint CIAUpdateSettingDialog::getInternetSnapIdL()
+    {
+    TUint internetSnapId( 0 );
+    
+    RArray<TUint32> destinationIdArray;
+    mCmManager.AllDestinationsL( destinationIdArray );
+    
+    for ( TInt i = 0; i < destinationIdArray.Count(); i++ )
+        {
+        RCmDestination destination = mCmManager.DestinationL( destinationIdArray[i] );
+        CleanupClosePushL( destination );
+        
+        TUint32 metadata = destination.MetadataL( CMManager::ESnapMetadataPurpose );
+        if ( metadata == CMManager::ESnapPurposeInternet )
+            {
+            internetSnapId = destinationIdArray[i];
+            // Get the destination name with destination.NameLC() if need.
+            CleanupStack::PopAndDestroy( &destination );
+            break;
+            }
+        CleanupStack::PopAndDestroy( &destination );
+        }
+    destinationIdArray.Close();
+    
+    return internetSnapId;
+    
+    }
+
+void CIAUpdateSettingDialog::showPreviousView()
+{
+    // Save settings    
+    TRAPD(err,  saveSettingsL()); 
+    qt_symbian_throwIfError(err);
+    
+    // Switch view
+    emit toMainView();
+}
+
+void CIAUpdateSettingDialog::activated(const QModelIndex& index)
+{
+    if ( this->isActiveWindow() && index.row() == 0 )
+        {
+        }
+
+}
--- a/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -24,7 +24,6 @@
 #include <featurecontrol.h>
 #include <cmmanager.h>
 #include <qapplication.h>
-#include <hbmessagebox.h>
 #include <hbaction.h>
 #include <hbprogressdialog.h>
 #include <iaupdateparameters.h>
@@ -59,6 +58,7 @@
 #include "iaupdaterefreshhandler.h"
 #include "iaupdatenodeid.h"
 #include "iaupdatewaitdialog.h"
+#include "iaupdatedialogutil.h"
 #include "iaupdatedebug.h"
 
 
@@ -262,6 +262,7 @@
     delete iRoamingHandler;
     delete iParams;
     delete iRefreshHandler;
+    delete mDialogUtil;
 
     // If dialogs have not been released yet, release them now.
     // ProcessFinishedL() should normally be used for dialogs but
@@ -309,7 +310,7 @@
 void CIAUpdateUiController::CheckUpdatesL()
     {
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() begin");
-
+    
     iCountOfAvailableUpdates = 0;
     
     if ( iParams )
@@ -318,7 +319,7 @@
     	iParams = NULL;
         }
      
-    TBool agreementAccepted( EFalse ); 
+    TBool agreementAccepted( EFalse );
     if ( !ForcedRefresh() )
         {
         CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
@@ -330,10 +331,45 @@
             // Refresh from network is allowed when first time case 
             iRefreshFromNetworkDenied = EFalse;
             agreementAccepted = agreement->AcceptAgreementL();  
+            if (!agreementAccepted)
+                {
+                if ( !mDialogUtil )
+                    {
+                    mDialogUtil = new IAUpdateDialogUtil(NULL, this);
+                    }
+                if ( mDialogUtil )
+                    {
+                    mPrimaryAction = NULL;
+                    mPrimaryAction = new HbAction("Accept");
+                    HbAction *secondaryAction = NULL;
+                    secondaryAction = new HbAction("Decline");
+                    mDialogUtil->showAgreement(mPrimaryAction,secondaryAction);
+                    iDialogState = EAgreement;
+                    }
+                }
             }
         CleanupStack::PopAndDestroy( agreement );
         }
-  	             
+    if ( iDialogState != EAgreement )
+        {
+        AgreementHandledL();
+        }
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() end");
+    return;
+    }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateUiController:: AgreementHandledL
+// Updates the update item list.
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateUiController::AgreementHandledL()
+    {
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::AgreementHandledL() begin");
+    TBool agreementAccepted( EFalse );
+    CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
+    agreementAccepted = agreement->AgreementAcceptedL();
+    CleanupStack::PopAndDestroy( agreement );        
     if ( !agreementAccepted && !ForcedRefresh() )
         {
         if ( iRequestType == IAUpdateUiDefines::ECheckUpdates )
@@ -395,7 +431,7 @@
             }	
         }
 
-    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() end");
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::AgreementHandledL() end");
     }
 
 
@@ -417,13 +453,17 @@
                 
     if ( !IAUpdateUtils::SpaceAvailableInInternalDrivesL( iSelectedNodesArray ) )
         {
-            HbMessageBox messageBox(HbMessageBox::MessageTypeInformation); 
-            messageBox.setText(QString("Insufficient memory. Free some memory and try again."));
-            HbAction action("OK");
-            messageBox.setPrimaryAction(&action);
-            messageBox.setTimeout(HbPopup::NoTimeout);
-            messageBox.show();
-            //messageBox.exec();
+        if ( !mDialogUtil )
+            {
+            mDialogUtil = new IAUpdateDialogUtil(NULL, this);
+            }
+        if ( mDialogUtil )
+            {
+            mPrimaryAction = NULL;
+            mPrimaryAction = new HbAction("OK");
+            mDialogUtil->showInformation(QString("Insufficient memory. Free some memory and try again."), mPrimaryAction);
+            iDialogState = EInsufficientMemory;
+            }
         }
     else
         {
@@ -1549,6 +1589,35 @@
     }
 
 // -----------------------------------------------------------------------------
+// CIAUpdateUiController::dialogFinished
+// Called when dialog is finished.
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateUiController::dialogFinished(HbAction *action)
+    {
+    TDialogState dialogState = iDialogState;
+    iDialogState = ENoDialog;
+    
+    switch ( dialogState )
+        {
+        case EAgreement:
+            if ( action == mPrimaryAction )
+                 {
+                CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
+                agreement->SetAgreementAcceptedL();
+
+                CleanupStack::PopAndDestroy(agreement);
+                }
+            AgreementHandledL();        
+            break;
+        case EInsufficientMemory:    
+            break;
+        default: 
+            break;
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CIAUpdateUiController::HandleUiRefreshL
 // 
 // -----------------------------------------------------------------------------
@@ -2085,7 +2154,8 @@
 // 
 // ---------------------------------------------------------------------------
 //
-void CIAUpdateUiController::ShowUpdatingDialogL( TInt /*aTextResourceId*/,
+/*
+void CIAUpdateUiController::ShowUpdatingDialogL( TInt aTextResourceId,
                                                  const TDesC& aName,
                                                  TInt aNumber,
                                                  TInt aTotalCount )   
@@ -2124,7 +2194,7 @@
     CleanupStack::PopAndDestroy( stringArray );
 
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::ShowUpdatingDialogL() end");
-    }
+    }*/
  
 
 // ---------------------------------------------------------------------------
Binary file iaupdateapi_stub/conf/CI_iaupdate.confml has changed
Binary file iaupdateapi_stub/conf/iaupdate.confml has changed
Binary file iaupdateapi_stub/conf/iaupdate_2000F85A.crml has changed
--- a/iaupdateapi_stub/group/bld.inf	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdateapi_stub/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
@@ -25,6 +25,7 @@
 //Configuration tool migration
 ../conf/iaupdate.confml                    CONFML_EXPORT_PATH(iaupdate.confml,s60)
 ../conf/iaupdate_2000F85A.crml	           CRML_EXPORT_PATH(iaupdate_2000F85A.crml,s60)
+../conf/CI_iaupdate.confml                    CONFML_EXPORT_PATH(CI_iaupdate.confml,s60)
 
 ../rom/iaupdateapi.iby             CORE_MW_LAYER_IBY_EXPORT_PATH( iaupdateapi.iby )
 
--- a/installationservices/refsoftwareappmgr/group/security_referenceapplicationmanager.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/refsoftwareappmgr/group/security_referenceapplicationmanager.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_referenceapplicationmanager
 source	\sf\mw\appinstall\installationservices\refsoftwareappmgr
 binary	\sf\mw\appinstall\installationservices\refsoftwareappmgr\group	all
--- a/installationservices/refswinstallationplugin/group/security_sifrefplugin.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/refswinstallationplugin/group/security_sifrefplugin.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_sifrefplugin
 source	\sf\mw\appinstall\installationservices\refswinstallationplugin\
 binary	\sf\mw\appinstall\installationservices\refswinstallationplugin\group	all
--- a/installationservices/swcomponentregistry/bwins/scrclientu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/bwins/scrclientu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -9,7 +9,7 @@
 	?NewL@CGlobalComponentId@Usif@@SAPAV12@AAVRReadStream@@@Z @ 8 NONAME ; class Usif::CGlobalComponentId * Usif::CGlobalComponentId::NewL(class RReadStream &)
 	?NewL@CComponentEntry@Usif@@SAPAV12@AAVRReadStream@@@Z @ 9 NONAME ; class Usif::CComponentEntry * Usif::CComponentEntry::NewL(class RReadStream &)
 	?ExternalizeL@CLocalizableComponentInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 10 NONAME ; void Usif::CLocalizableComponentInfo::ExternalizeL(class RWriteStream &) const
-	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@ABVTDesC8@@@Z @ 11 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, class TDesC8 const &)
+	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@ABVTDesC8@@W4TDbOperator@12@2@Z @ 11 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, class TDesC8 const &, enum Usif::CComponentFilter::TDbOperator, enum Usif::CComponentFilter::TDbOperator)
 	?ComponentId@CComponentEntry@Usif@@QBEABHXZ @ 12 NONAME ; int const & Usif::CComponentEntry::ComponentId(void) const
 	?BinaryValue@CBinaryPropertyEntry@Usif@@QAEABVTDesC8@@XZ @ 13 NONAME ; class TDesC8 const & Usif::CBinaryPropertyEntry::BinaryValue(void)
 	?VersionTo@CVersionedComponentId@Usif@@QBEPBVTDesC16@@XZ @ 14 NONAME ; class TDesC16 const * Usif::CVersionedComponentId::VersionTo(void) const
@@ -69,7 +69,7 @@
 	?CreateTransactionL@RSoftwareComponentRegistry@Usif@@QAEXXZ @ 68 NONAME ; void Usif::RSoftwareComponentRegistry::CreateTransactionL(void)
 	?NewLC@CScrLogEntry@Usif@@SAPAV12@ABVTDesC16@@000W4TScrComponentOperationType@2@@Z @ 69 NONAME ; class Usif::CScrLogEntry * Usif::CScrLogEntry::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TScrComponentOperationType)
 	?SetSoftwareTypeL@CComponentFilter@Usif@@QAEXABVTDesC16@@@Z @ 70 NONAME ; void Usif::CComponentFilter::SetSoftwareTypeL(class TDesC16 const &)
-	?AddSoftwareTypeL@RSoftwareComponentRegistry@Usif@@QAEXABVTDesC16@@VTUid@@VTSecureId@@2ABV?$RPointerArray@VHBufC16@@@@PBV?$RPointerArray@VCLocalizedSoftwareTypeName@Usif@@@@@Z @ 71 NONAME ; void Usif::RSoftwareComponentRegistry::AddSoftwareTypeL(class TDesC16 const &, class TUid, class TSecureId, class TSecureId, class RPointerArray<class HBufC16> const &, class RPointerArray<class Usif::CLocalizedSoftwareTypeName> const *)
+	?AddSoftwareTypeL@RSoftwareComponentRegistry@Usif@@QAEXABVCSoftwareTypeRegInfo@2@@Z @ 71 NONAME ; void Usif::RSoftwareComponentRegistry::AddSoftwareTypeL(class TDesC16 const &, class TUid, class RArray<TSecureId>, class RPointerArray<class HBufC16> const &, class TDesC16 const &, class RPointerArray<class Usif::CLocalizedSoftwareTypeName> const *)
 	?NewL@CBinaryPropertyEntry@Usif@@SAPAV12@ABVTDesC16@@ABVTDesC8@@@Z @ 72 NONAME ; class Usif::CBinaryPropertyEntry * Usif::CBinaryPropertyEntry::NewL(class TDesC16 const &, class TDesC8 const &)
 	?IsKnownRevoked@CComponentEntry@Usif@@QBEHXZ @ 73 NONAME ; int Usif::CComponentEntry::IsKnownRevoked(void) const
 	?RetrieveLogEntriesL@RSoftwareComponentRegistry@Usif@@QBEXAAV?$RPointerArray@VCScrLogEntry@Usif@@@@PBVTDesC16@@@Z @ 74 NONAME ; void Usif::RSoftwareComponentRegistry::RetrieveLogEntriesL(class RPointerArray<class Usif::CScrLogEntry> &, class TDesC16 const *) const
@@ -87,7 +87,7 @@
 	?NewL@CVersionedComponentId@Usif@@SAPAV12@ABVCGlobalComponentId@2@PBVTDesC16@@1@Z @ 86 NONAME ; class Usif::CVersionedComponentId * Usif::CVersionedComponentId::NewL(class Usif::CGlobalComponentId const &, class TDesC16 const *, class TDesC16 const *)
 	?SetIsComponentKnownRevokedL@RSoftwareComponentRegistry@Usif@@QAEXHH@Z @ 87 NONAME ; void Usif::RSoftwareComponentRegistry::SetIsComponentKnownRevokedL(int, int)
 	??1CComponentEntry@Usif@@UAE@XZ @ 88 NONAME ; Usif::CComponentEntry::~CComponentEntry(void)
-	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@_J@Z @ 89 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, long long)
+	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@_JW4TDbOperator@12@2@Z @ 89 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, long long, enum Usif::CComponentFilter::TDbOperator, enum Usif::CComponentFilter::TDbOperator)
 	?NewLC@CComponentEntry@Usif@@SAPAV12@ABHABVTDesC16@@111H_JABW4TScomoState@2@ABV?$TBuf8@$0BK@@@11HHHH@Z @ 90 NONAME ; class Usif::CComponentEntry * Usif::CComponentEntry::NewLC(int const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, int, long long, enum Usif::TScomoState const &, class TBuf8<26> const &, class TDesC16 const &, class TDesC16 const &, int, int, int, int)
 	?NextFileSetL@RSoftwareComponentRegistryFilesList@Usif@@QBEXHAAV?$RPointerArray@VHBufC16@@@@@Z @ 91 NONAME ; void Usif::RSoftwareComponentRegistryFilesList::NextFileSetL(int, class RPointerArray<class HBufC16> &) const
 	?ConstructL@CLocalizedSoftwareTypeName@Usif@@AAEXABVTDesC16@@@Z @ 92 NONAME ; void Usif::CLocalizedSoftwareTypeName::ConstructL(class TDesC16 const &)
@@ -121,7 +121,7 @@
 	?DeleteFilePropertyL@RSoftwareComponentRegistry@Usif@@QAEXHABVTDesC16@@0@Z @ 120 NONAME ; void Usif::RSoftwareComponentRegistry::DeleteFilePropertyL(int, class TDesC16 const &, class TDesC16 const &)
 	?InternalizeL@CScrLogEntry@Usif@@QAEXAAVRReadStream@@@Z @ 121 NONAME ; void Usif::CScrLogEntry::InternalizeL(class RReadStream &)
 	??1CIntPropertyEntry@Usif@@UAE@XZ @ 122 NONAME ; Usif::CIntPropertyEntry::~CIntPropertyEntry(void)
-	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@0W4TLanguage@@@Z @ 123 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, class TDesC16 const &, enum TLanguage)
+	?AddPropertyL@CComponentFilter@Usif@@QAEXABVTDesC16@@0W4TLanguage@@W4TDbOperator@12@2@Z @ 123 NONAME ; void Usif::CComponentFilter::AddPropertyL(class TDesC16 const &, class TDesC16 const &, enum TLanguage, enum Usif::CComponentFilter::TDbOperator, enum Usif::CComponentFilter::TDbOperator)
 	?ExternalizeL@CComponentEntry@Usif@@QBEXAAVRWriteStream@@@Z @ 124 NONAME ; void Usif::CComponentEntry::ExternalizeL(class RWriteStream &) const
 	?DeleteComponentL@RSoftwareComponentRegistry@Usif@@QAEXH@Z @ 125 NONAME ; void Usif::RSoftwareComponentRegistry::DeleteComponentL(int)
 	?SoftwareTypeName@CGlobalComponentId@Usif@@QBEABVTDesC16@@XZ @ 126 NONAME ; class TDesC16 const & Usif::CGlobalComponentId::SoftwareTypeName(void) const
@@ -344,4 +344,18 @@
 	?NewL@CApplicationRegistrationData@Usif@@SAPAV12@AAVRReadStream@@@Z @ 343 NONAME ; class Usif::CApplicationRegistrationData * Usif::CApplicationRegistrationData::NewL(class RReadStream &)
 	?InternalizeL@TApplicationCharacteristics@Usif@@QAEXAAVRReadStream@@@Z @ 344 NONAME ; void Usif::TApplicationCharacteristics::InternalizeL(class RReadStream &)
 	??1CLauncherExecutable@Usif@@UAE@XZ @ 345 NONAME ; Usif::CLauncherExecutable::~CLauncherExecutable(void)
+	?ExternalizeL@CSoftwareTypeRegInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 346 NONAME ; void Usif::CSoftwareTypeRegInfo::ExternalizeL(class RWriteStream &) const
+	?SetMimeTypeL@CSoftwareTypeRegInfo@Usif@@QAEXABVTDesC16@@@Z @ 347 NONAME ; void Usif::CSoftwareTypeRegInfo::SetMimeTypeL(class TDesC16 const &)
+	?SetLauncherExecutableL@CSoftwareTypeRegInfo@Usif@@QAEXABVTDesC16@@@Z @ 348 NONAME ; void Usif::CSoftwareTypeRegInfo::SetLauncherExecutableL(class TDesC16 const &)
+	?NewL@CSoftwareTypeRegInfo@Usif@@SAPAV12@AAVRReadStream@@@Z @ 349 NONAME ; class Usif::CSoftwareTypeRegInfo * Usif::CSoftwareTypeRegInfo::NewL(class RReadStream &)
+	??1CSoftwareTypeRegInfo@Usif@@UAE@XZ @ 350 NONAME ; Usif::CSoftwareTypeRegInfo::~CSoftwareTypeRegInfo(void)
+	?NewL@CSoftwareTypeRegInfo@Usif@@SAPAV12@ABVTDesC16@@@Z @ 351 NONAME ; class Usif::CSoftwareTypeRegInfo * Usif::CSoftwareTypeRegInfo::NewL(class TDesC16 const &)
+	?SetLocalizedSoftwareTypeNameL@CSoftwareTypeRegInfo@Usif@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 352 NONAME ; void Usif::CSoftwareTypeRegInfo::SetLocalizedSoftwareTypeNameL(enum TLanguage, class TDesC16 const &)
+	?AccessMode@TCustomAccessInfo@Usif@@QBE?AW4TAccessMode@2@XZ @ 353 NONAME ; enum Usif::TAccessMode Usif::TCustomAccessInfo::AccessMode(void) const
+	?SecureId@TCustomAccessInfo@Usif@@QBE?AVTSecureId@@XZ @ 354 NONAME ; class TSecureId Usif::TCustomAccessInfo::SecureId(void) const
+	??0TCustomAccessInfo@Usif@@QAE@VTSecureId@@W4TAccessMode@1@@Z @ 355 NONAME ; Usif::TCustomAccessInfo::TCustomAccessInfo(class TSecureId, enum Usif::TAccessMode)
+	?NameOperator@TPropertyOperator@CComponentFilter@Usif@@QBE?AW4TDbOperator@23@XZ @ 356 NONAME ; enum Usif::CComponentFilter::TDbOperator Usif::CComponentFilter::TPropertyOperator::NameOperator(void) const
+	?ValueOperator@TPropertyOperator@CComponentFilter@Usif@@QBE?AW4TDbOperator@23@XZ @ 357 NONAME ; enum Usif::CComponentFilter::TDbOperator Usif::CComponentFilter::TPropertyOperator::ValueOperator(void) const
+	?InternalizeL@TPropertyOperator@CComponentFilter@Usif@@QAEXAAVRReadStream@@@Z @ 358 NONAME ; void Usif::CComponentFilter::TPropertyOperator::InternalizeL(class RReadStream &)
+	??0TPropertyOperator@CComponentFilter@Usif@@QAE@W4TDbOperator@12@0@Z @ 359 NONAME ; Usif::CComponentFilter::TPropertyOperator::TPropertyOperator(enum Usif::CComponentFilter::TDbOperator, enum Usif::CComponentFilter::TDbOperator)
 
--- a/installationservices/swcomponentregistry/eabi/scrclientu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/eabi/scrclientu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -17,9 +17,9 @@
 	_ZN4Usif15CComponentEntryD1Ev @ 16 NONAME
 	_ZN4Usif15CComponentEntryD2Ev @ 17 NONAME
 	_ZN4Usif16CComponentFilter10SetVendorLERK7TDesC16 @ 18 NONAME
-	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16RK6TDesC8 @ 19 NONAME
-	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16S3_9TLanguage @ 20 NONAME
-	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16x @ 21 NONAME
+	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16RK6TDesC8NS0_11TDbOperatorES7_ @ 19 NONAME
+	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16S3_9TLanguageNS0_11TDbOperatorES5_ @ 20 NONAME
+	_ZN4Usif16CComponentFilter12AddPropertyLERK7TDesC16xNS0_11TDbOperatorES4_ @ 21 NONAME
 	_ZN4Usif16CComponentFilter12SetRemovableEi @ 22 NONAME
 	_ZN4Usif16CComponentFilter14SetScomoStateLENS_11TScomoStateE @ 23 NONAME
 	_ZN4Usif16CComponentFilter15SetDrmProtectedEi @ 24 NONAME
@@ -80,7 +80,7 @@
 	_ZN4Usif26RSoftwareComponentRegistry13AddComponentLERK13RPointerArrayINS_25CLocalizableComponentInfoEERK7TDesC16PS7_NS_26TScrComponentOperationTypeE @ 79 NONAME
 	_ZN4Usif26RSoftwareComponentRegistry13AddComponentLERK7TDesC16S3_S3_PS2_NS_26TScrComponentOperationTypeE @ 80 NONAME
 	_ZN4Usif26RSoftwareComponentRegistry14SetVendorNameLEiRK7TDesC169TLanguage @ 81 NONAME
-	_ZN4Usif26RSoftwareComponentRegistry16AddSoftwareTypeLERK7TDesC164TUid9TSecureIdS5_RK13RPointerArrayI7HBufC16EPKS6_INS_26CLocalizedSoftwareTypeNameEE @ 82 NONAME
+	_ZN4Usif26RSoftwareComponentRegistry16AddSoftwareTypeLERKNS_20CSoftwareTypeRegInfoE @ 82 NONAME
 	_ZN4Usif26RSoftwareComponentRegistry16CompareVersionsLERK7TDesC16S3_ @ 83 NONAME
 	_ZN4Usif26RSoftwareComponentRegistry16DeleteComponentLEi @ 84 NONAME
 	_ZN4Usif26RSoftwareComponentRegistry16SetFilePropertyLEiRK7TDesC16S3_RK6TDesC8 @ 85 NONAME
@@ -380,4 +380,22 @@
 	_ZNK4Usif9CDataType12ExternalizeLER12RWriteStream @ 379 NONAME
 	_ZNK4Usif9CDataType4TypeEv @ 380 NONAME
 	_ZNK4Usif9CDataType8PriorityEv @ 381 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfo12SetMimeTypeLERK7TDesC16 @ 382 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfo22SetLauncherExecutableLERK7TDesC16 @ 383 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfo29SetLocalizedSoftwareTypeNameLE9TLanguageRK7TDesC16 @ 384 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfo4NewLER11RReadStream @ 385 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfo4NewLERK7TDesC16 @ 386 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfoD0Ev @ 387 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfoD1Ev @ 388 NONAME
+	_ZN4Usif20CSoftwareTypeRegInfoD2Ev @ 389 NONAME
+	_ZN4Usif17TCustomAccessInfoC1E9TSecureIdNS_11TAccessModeE @ 390 NONAME
+	_ZN4Usif17TCustomAccessInfoC2E9TSecureIdNS_11TAccessModeE @ 391 NONAME
+	_ZNK4Usif17TCustomAccessInfo10AccessModeEv @ 392 NONAME
+	_ZNK4Usif17TCustomAccessInfo8SecureIdEv @ 393 NONAME
+	_ZNK4Usif20CSoftwareTypeRegInfo12ExternalizeLER12RWriteStream @ 394 NONAME
+	_ZN4Usif16CComponentFilter17TPropertyOperator12InternalizeLER11RReadStream @ 395 NONAME
+	_ZN4Usif16CComponentFilter17TPropertyOperatorC1ENS0_11TDbOperatorES2_ @ 396 NONAME
+	_ZN4Usif16CComponentFilter17TPropertyOperatorC2ENS0_11TDbOperatorES2_ @ 397 NONAME
+	_ZNK4Usif16CComponentFilter17TPropertyOperator12NameOperatorEv @ 398 NONAME
+	_ZNK4Usif16CComponentFilter17TPropertyOperator13ValueOperatorEv @ 399 NONAME
 
--- a/installationservices/swcomponentregistry/group/bld.inf	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
@@ -35,6 +35,7 @@
 ../inc/appreginfo.h			SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(usif/scr/appreginfo.h)
 ../inc/scr.h 				SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(usif/scr/scr.h)
 ../inc/scrcommon.h 			SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(usif/scr/scrcommon.h)
+../inc/screntries_platform.h 			SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(usif/scr/screntries_platform.h)
 ../inc/scrcommon.inl 		SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(usif/scr/scrcommon.inl)
 
 // USIF common includes
--- a/installationservices/swcomponentregistry/group/security_softwarecomponentregistry.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/group/security_softwarecomponentregistry.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_softwarecomponentregistry
 source	\sf\mw\appinstall\installationservices\swcomponentregistry
 source	\sf\mw\appinstall\installationservices\swinstallationfw\common
--- a/installationservices/swcomponentregistry/inc/scr.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/inc/scr.h	Fri Jun 11 13:45:18 2010 +0300
@@ -34,6 +34,7 @@
 #include <usif/scr/appregentries.h>
 #include <scs/scsclient.h>
 #include <usif/scr/appreginfo.h>
+#include <usif/scr/screntries_platform.h>
 
 namespace Usif
 	{	 
@@ -766,7 +767,8 @@
 			Add a new software type name to the SCR database.
 			
 			N.B. This is a mutating function. Please see @see Usif::RSoftwareComponentRegistry.
-			
+			This can be called only by sisregistry.
+
 			@param aUniqueSwTypeName Non-localized unique software type name.
 			@param aSifPluginUid The SIF plug-in UID of the installer which is responsible for installing components with this software type
 			@param aInstallerSecureId The secure id of the installer which is responsible for installing components with this software type
@@ -778,7 +780,7 @@
             @leave A system-wide error code.
 			@internalTechnology
 		 */
-		IMPORT_C void AddSoftwareTypeL(const TDesC& aUniqueSwTypeName, TUid aSifPluginUid, TSecureId aInstallerSecureId, TSecureId aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypes, const RPointerArray<CLocalizedSoftwareTypeName>* aLocalizedSwTypeNames = NULL);
+		IMPORT_C void AddSoftwareTypeL(const Usif::CSoftwareTypeRegInfo& aSwTypeRegInfo);
 		
 		/**
 			Deletes a sofware type name entry and all its mime types from the registry.
--- a/installationservices/swcomponentregistry/inc/screntries.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/inc/screntries.h	Fri Jun 11 13:45:18 2010 +0300
@@ -32,1043 +32,1077 @@
 #include <usif/usifcommon.h>
 
 namespace Usif
-	{
-	// CONSTANTS
-	
-	/**
-		KUnspecifiedLocale means that the locale is not specified and locale resolving will be done by SCR.
-		First, the current locale with its downgraded languages (@see BaflUtils::GetDowngradePathL) is tried 
-		by SCR. If no value is found, then non-localized values are searched for. 
-	 */
-	static const TLanguage KUnspecifiedLocale = TLanguage(-1);
-	
-	/**
-		KNonLocalized means that only non-localized values are looked up by SCR.
-	 */
-	static const TLanguage KNonLocalized = TLanguage(0); 
-	
-	// CLASSES
-	
-		
-	NONSHARABLE_CLASS(CGlobalComponentId) : public CBase
-	/**
-		Encapsulates the global software component identifier which is a named, component level and nullable string.
-		that an installer may use to specify a deterministic identifier for the component that is unique within 
-		the context of that software type. This global component id would be the package UID for native applications 
-		or the midlet-names for Java etc 
-		
-		The global component id is consistent and equal on all devices. It is used to state dependencies 
-		and to check for the presence of installed software components of arbitrary types without each installer having 
-		to be aware of every other installers naming scheme.		
-	 */
-		{
-	public:
-		/**
-			Creates an empty global software component ID object.
-			@return A pointer to the newly allocated global software component ID object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CGlobalComponentId* NewLC();
-				
-		/**
-			Creates a global software component ID object.
-			@param aGlobalIdName A deterministic identifier for the component that is unique within the context of that software type.
-			@param aUniqueSwTypeName Non-localized unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@return A pointer to the newly allocated global software component ID object, if creation is successful.
-		 */ 
-		IMPORT_C static CGlobalComponentId* NewL(const TDesC& aGlobalIdName, const TDesC& aUniqueSwTypeName);
-		
-		/**
-			Creates a global software component ID object.
-			@param aGlobalIdName A deterministic identifier for the component that is unique within the context of that software type.
-			@param aUniqueSwTypeName Non-localized unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@return A pointer to the newly allocated global software component ID object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */ 
-		IMPORT_C static CGlobalComponentId* NewLC(const TDesC& aGlobalIdName, const TDesC& aUniqueSwTypeName);
-		
-		/**
-			Creates a global software component ID object from a stream.
-			@param aStream The stream to read the software component entry object from
-			@return A pointer to the newly allocated global software component ID object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CGlobalComponentId* NewL(RReadStream& aStream);
-				
-		/**
-			Externalises this CGlobalComponentId object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		 */
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-				
-		/**
-			Internalises this CGlobalComponentId object from a read stream.
-			@param aStream The stream from which the object is internalised.
-			@internalComponent
-		 */
-		IMPORT_C void InternalizeL(RReadStream& aStream);
-				
-		/** @return The global id name part (@see CGlobalComponentId::NewLC) of the global component id.*/
-		IMPORT_C const TDesC& GlobalIdName() const;
-			
-		/** @return The software type name part (@see CGlobalComponentId::NewLC) of the global component id. */
-		IMPORT_C const TDesC& SoftwareTypeName() const;
-		
-		IMPORT_C ~CGlobalComponentId();
-		
-	private:
-		CGlobalComponentId();
-		void ConstructL(const TDesC& aGlobalIdName, const TDesC& aSoftwareTypeName);
-		
-	private:
-		HBufC* iGlobalIdName;    	///< The global id name part of the global component id.
-		HBufC* iSoftwareTypeName; 	///< The software type name part of the global component id.
-		};
-	
-	
-	NONSHARABLE_CLASS(CVersionedComponentId) : public CBase
-	/**	 	
-	 	Class that represents a continuous set of versions for a particular component.
-		
-		This class is used for specifying dependencies, where a dependant component requires 
-		specific version(s) of the supplier to be present on the system. The version information 
-		is optional, i.e. this class can be used to represent any version of a component.
-		
-		If this class is used to represent a dependant component, it specifies the range of versions
-		of the dependency relationship defined by the dependant component. 
-	 */
-		{
-	public:
-		
-		/**
-			Creates an empty version component identifier object.
-			@return A pointer to the newly allocated version component identifier object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CVersionedComponentId* NewLC();
-				
-		/**
-			Creates a versioned component identifier object.
-			
-			N.B. The version parameters are optional and used to set the lower and upper limit of the version range. 
-				 It is also possible to set only an upper limit or a lower limit or none. If only one version 
-				 parameter is supplied then a lower limit will be set. In this case, there is no upper limit. 
-				 If the first version parameter is upplied with KNullDesC, then the second version parameter
-				 will be used to set an upper limit.
-			
-			@param aGlobalId The global software component identifier.
-			@param aVersionFrom The first version of the specified version range.
-			@param aVersionTo The last version of the specified version range.
-					
-			@return A pointer to the newly allocated versioned component identifier object, if creation is successful.
-		 */ 
-		IMPORT_C static CVersionedComponentId* NewL(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom=NULL, const TDesC* aVersionTo=NULL);
+    {
+    // CONSTANTS
+    
+    /**
+        KUnspecifiedLocale means that the locale is not specified and locale resolving will be done by SCR.
+        First, the current locale with its downgraded languages (@see BaflUtils::GetDowngradePathL) is tried 
+        by SCR. If no value is found, then non-localized values are searched for. 
+     */
+    static const TLanguage KUnspecifiedLocale = TLanguage(-1);
+    
+    /**
+        KNonLocalized means that only non-localized values are looked up by SCR.
+     */
+    static const TLanguage KNonLocalized = TLanguage(0); 
+    
+    // CLASSES
+    
+        
+    NONSHARABLE_CLASS(CGlobalComponentId) : public CBase
+    /**
+        Encapsulates the global software component identifier which is a named, component level and nullable string.
+        that an installer may use to specify a deterministic identifier for the component that is unique within 
+        the context of that software type. This global component id would be the package UID for native applications 
+        or the midlet-names for Java etc 
+        
+        The global component id is consistent and equal on all devices. It is used to state dependencies 
+        and to check for the presence of installed software components of arbitrary types without each installer having 
+        to be aware of every other installers naming scheme.        
+     */
+        {
+    public:
+        /**
+            Creates an empty global software component ID object.
+            @return A pointer to the newly allocated global software component ID object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CGlobalComponentId* NewLC();
+                
+        /**
+            Creates a global software component ID object.
+            @param aGlobalIdName A deterministic identifier for the component that is unique within the context of that software type.
+            @param aUniqueSwTypeName Non-localized unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
+            @return A pointer to the newly allocated global software component ID object, if creation is successful.
+         */ 
+        IMPORT_C static CGlobalComponentId* NewL(const TDesC& aGlobalIdName, const TDesC& aUniqueSwTypeName);
+        
+        /**
+            Creates a global software component ID object.
+            @param aGlobalIdName A deterministic identifier for the component that is unique within the context of that software type.
+            @param aUniqueSwTypeName Non-localized unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
+            @return A pointer to the newly allocated global software component ID object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */ 
+        IMPORT_C static CGlobalComponentId* NewLC(const TDesC& aGlobalIdName, const TDesC& aUniqueSwTypeName);
+        
+        /**
+            Creates a global software component ID object from a stream.
+            @param aStream The stream to read the software component entry object from
+            @return A pointer to the newly allocated global software component ID object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CGlobalComponentId* NewL(RReadStream& aStream);
+                
+        /**
+            Externalises this CGlobalComponentId object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+         */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+                
+        /**
+            Internalises this CGlobalComponentId object from a read stream.
+            @param aStream The stream from which the object is internalised.
+            @internalComponent
+         */
+        IMPORT_C void InternalizeL(RReadStream& aStream);
+                
+        /** @return The global id name part (@see CGlobalComponentId::NewLC) of the global component id.*/
+        IMPORT_C const TDesC& GlobalIdName() const;
+            
+        /** @return The software type name part (@see CGlobalComponentId::NewLC) of the global component id. */
+        IMPORT_C const TDesC& SoftwareTypeName() const;
+        
+        IMPORT_C ~CGlobalComponentId();
+        
+    private:
+        CGlobalComponentId();
+        void ConstructL(const TDesC& aGlobalIdName, const TDesC& aSoftwareTypeName);
+        
+    private:
+        HBufC* iGlobalIdName;       ///< The global id name part of the global component id.
+        HBufC* iSoftwareTypeName;   ///< The software type name part of the global component id.
+        };
+    
+    
+    NONSHARABLE_CLASS(CVersionedComponentId) : public CBase
+    /**     
+        Class that represents a continuous set of versions for a particular component.
+        
+        This class is used for specifying dependencies, where a dependant component requires 
+        specific version(s) of the supplier to be present on the system. The version information 
+        is optional, i.e. this class can be used to represent any version of a component.
+        
+        If this class is used to represent a dependant component, it specifies the range of versions
+        of the dependency relationship defined by the dependant component. 
+     */
+        {
+    public:
+        
+        /**
+            Creates an empty version component identifier object.
+            @return A pointer to the newly allocated version component identifier object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CVersionedComponentId* NewLC();
+                
+        /**
+            Creates a versioned component identifier object.
+            
+            N.B. The version parameters are optional and used to set the lower and upper limit of the version range. 
+                 It is also possible to set only an upper limit or a lower limit or none. If only one version 
+                 parameter is supplied then a lower limit will be set. In this case, there is no upper limit. 
+                 If the first version parameter is upplied with KNullDesC, then the second version parameter
+                 will be used to set an upper limit.
+            
+            @param aGlobalId The global software component identifier.
+            @param aVersionFrom The first version of the specified version range.
+            @param aVersionTo The last version of the specified version range.
+                    
+            @return A pointer to the newly allocated versioned component identifier object, if creation is successful.
+         */ 
+        IMPORT_C static CVersionedComponentId* NewL(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom=NULL, const TDesC* aVersionTo=NULL);
 
-		/**
-			Creates a versioned component identifier object.
-			For more information about the version parameters look at @see CVersionedComponentId::NewLC().
-			
-			@param aGlobalId The global software component identifier.
-			@param aVersionFrom The first version of the specified version range.  
-			@param aVersionTo The last version of the specified version range.
-			
-			@return A pointer to the newly allocated versioned component identifier object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */ 
-		IMPORT_C static CVersionedComponentId* NewLC(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom=NULL, const TDesC* aVersionTo=NULL);
-		
-		/**
-			Creates a versioned component identifier object from a stream.
-			@param aStream The stream to read the versioned component identifier object from
-			@return A pointer to the newly allocated versioned component identifier object, if creation is successful.
-			@internalComponent
-		  */
-		IMPORT_C static CVersionedComponentId* NewL(RReadStream& aStream);
+        /**
+            Creates a versioned component identifier object.
+            For more information about the version parameters look at @see CVersionedComponentId::NewLC().
+            
+            @param aGlobalId The global software component identifier.
+            @param aVersionFrom The first version of the specified version range.  
+            @param aVersionTo The last version of the specified version range.
+            
+            @return A pointer to the newly allocated versioned component identifier object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */ 
+        IMPORT_C static CVersionedComponentId* NewLC(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom=NULL, const TDesC* aVersionTo=NULL);
+        
+        /**
+            Creates a versioned component identifier object from a stream.
+            @param aStream The stream to read the versioned component identifier object from
+            @return A pointer to the newly allocated versioned component identifier object, if creation is successful.
+            @internalComponent
+          */
+        IMPORT_C static CVersionedComponentId* NewL(RReadStream& aStream);
 
-		/**
-			Internalises this CVersionedComponentId object from a read stream.
-			@param aStream The stream from which the object is internalised.
-			@internalComponent
-		 */
-		IMPORT_C void InternalizeL(RReadStream& aStream);
-		
-		/**
-			Externalises this CVersionedComponentId object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		 */
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		
-		/** @return The global id of the versioned component. */
-		IMPORT_C const CGlobalComponentId& GlobalId() const;
-		
-		/** @return The first version of the specified version range. NULL, if there is no lower limit for the version range. */
-		IMPORT_C const TDesC* VersionFrom() const;
-		
-		/** @return  The last version of the specified version range. NULL, if there is no upper limit for the version range. */
-		IMPORT_C const TDesC* VersionTo() const;
-		
-		IMPORT_C ~CVersionedComponentId();
-				
-	private:
-		CVersionedComponentId();
-		void ConstructL(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom, const TDesC* aVersionTo);
-		
-	private:
-		CGlobalComponentId* iGlobalId;  ///< The global id of the versioned component identifier.
-		HBufC* iVersionFrom;		///< The first version of the specified version range.
-		HBufC* iVersionTo;		///< The last version of the specified version range.
-		};
+        /**
+            Internalises this CVersionedComponentId object from a read stream.
+            @param aStream The stream from which the object is internalised.
+            @internalComponent
+         */
+        IMPORT_C void InternalizeL(RReadStream& aStream);
+        
+        /**
+            Externalises this CVersionedComponentId object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+         */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+        
+        /** @return The global id of the versioned component. */
+        IMPORT_C const CGlobalComponentId& GlobalId() const;
+        
+        /** @return The first version of the specified version range. NULL, if there is no lower limit for the version range. */
+        IMPORT_C const TDesC* VersionFrom() const;
+        
+        /** @return  The last version of the specified version range. NULL, if there is no upper limit for the version range. */
+        IMPORT_C const TDesC* VersionTo() const;
+        
+        IMPORT_C ~CVersionedComponentId();
+                
+    private:
+        CVersionedComponentId();
+        void ConstructL(const CGlobalComponentId& aGlobalId, const TDesC* aVersionFrom, const TDesC* aVersionTo);
+        
+    private:
+        CGlobalComponentId* iGlobalId;  ///< The global id of the versioned component identifier.
+        HBufC* iVersionFrom;        ///< The first version of the specified version range.
+        HBufC* iVersionTo;      ///< The last version of the specified version range.
+        };
 
-	
-	class CComponentEntry : public CBase
-	/**
-		Class that represents a software component entry stored in the SCR.
-	 */
-		{
-		friend class CScrRequestImpl;
-	public:
-		/**
-			Creates an empty software component entry object.
-			@return A pointer to the newly allocated software component object, if creation is successful.
-		 */
-		IMPORT_C static CComponentEntry* NewL();
-		
-		/**
-			Creates an empty software component entry object.
-			@return A pointer to the newly allocated software component object, if creation is successful.
-			        The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CComponentEntry* NewLC();
-		
-		/**
-			Creates a software component entry object from a stream.
-			@param aStream The stream to read the software component entry object from
-			@return A pointer to the newly allocated software component entry object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CComponentEntry* NewL(RReadStream& aStream);
-		
-		/**
-			Creates a software component entry object.
-			
-			@param aId	The unique ID of the software component.
-			@param aName The name of of the software component.
-			@param aVendor The vendor name of the software component.
-			@param aSwType The software type of the component.
-			@param aGlobalId The globally unique identifier of the component.
-			@param aRemovable Whether the component is removable. ETrue means the component is removable.
-			@param aSize The total size of the component at installation time in bytes.
-			@param aScomoState The SCOMO state of the component.
-			@param aInstalledDrives The set of drives that files for the software component were installed to. 
-			@param aVersion The version identifier of the software component.
-			@param aInstallTime The formatted install time string. The format is as following: YYYYMMDD:HHMMSS
-			@param aDrmProtected Whether the component is DRM protected. ETrue means the component is DRM protected.
-			@param aHidden Whether the component is displayed in the list of installed components. ETrue means the component is hidden.
-			@param aKnownRevoked Whether the component has been revoked. ETrue means that a revocation check was
-						           performed during or after the installation and the component was found to be revoked.
-			@param aOriginVerified Whether the installer has verified the originator of the component. ETrue means the installer 
-						            has verified the originator of the software component by using appropriate checking mechanisms.
-			@return A pointer to the newly allocated software component object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CComponentEntry* NewL(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType,
-											  const TDesC& aGlobalId, TBool aRemovable, TInt64 aSize, const TScomoState& aScomoState,
-											  const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
-											  TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
-		
-		/**
-			Creates a software component entry object.
-			
-			@param aId	The unique ID of the software component.
-			@param aName The name of of the software component.
-			@param aVendor The vendor name of the software component.
-			@param aSwType The software type of the component.
-			@param aGlobalId The globally unique identifier of the component.
-			@param aRemovable Whether the component is removable. ETrue means the component is removable.
-			@param aSize The total size of the component at installation time in bytes.
-			@param aScomoState The SCOMO state of the component.
-			@param aInstalledDrives The set of drives that files for the software component were installed to. 
-			@param aVersion The version identifier of the software component.
-			@param aInstallTime The formatted install time string. The format is as following: YYYYMMDD:HHMMSS	
-			@param aDrmProtected Whether the component is DRM protected. ETrue means the component is DRM protected.
-			@param aHidden Whether the component is displayed in the list of installed components. ETrue means the component is hidden.
-			@param aKnownRevoked Whether the component has been revoked. ETrue means that a revocation check was
-						           performed during or after the installation and the component was found to be revoked.
-			@param aOriginVerified Whether the installer has verified the originator of the component. ETrue means the installer 
-						            has verified the originator of the software component by using appropriate checking mechanisms.
-			@return A pointer to the newly allocated software component object, if creation is successful.
-			               The pointer is also put onto the cleanup stack.
-			@internalComponent
-		 */
-		IMPORT_C static CComponentEntry* NewLC(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType, 
-											   const TDesC& aGlobalId, TBool aRemovable, TInt64 aSize, const TScomoState& aScomoState, 
-											   const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
-											   TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
-		
-		IMPORT_C ~CComponentEntry();
-		
-		/**
-			Externalises this CComponentEntry object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		*/
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		
-		/**
-			Internalises this CComponentEntry object from a read stream.
-			@param aStream The stream from which the object is internalised.
-			@internalComponent
-		*/
-		IMPORT_C void InternalizeL(RReadStream& aStream);
-		
-		/** @return The unique ID of the software component. */
-		IMPORT_C const TComponentId& ComponentId() const; 
-		
-		/** @return The name of the software component. */
-		IMPORT_C const TDesC& Name() const;
-		
-		/** @return The vendor name of the software component. */
-		IMPORT_C const TDesC& Vendor() const;
-		
-		/** @return The software type name of the software component, e.g @see Usif::KSoftwareTypeNative. */
-		IMPORT_C const TDesC& SoftwareType() const;
-		
-		/** @return Globally unique component identifier. */
-		IMPORT_C const TDesC& GlobalId() const;
-		
-		/** @return Whether the software component is removable. ETrue means it is removable. */
-		IMPORT_C TBool IsRemovable() const;
-		
-		/** @return The total size of the component at installation time in bytes. */
-		IMPORT_C TInt64  ComponentSize() const;
-		
-		/** @return The SCOMO state of the software component. @see Usif::TScomoState */
-		IMPORT_C const TScomoState& ScomoState() const;
-		
-		/** @return The set of drives that files for the software component were installed to. */
-		IMPORT_C const TDriveList& InstalledDrives() const;
-		
-		/** @return The version identifier of the software component. */
-		IMPORT_C const TDesC& Version() const;
-		
-		/** @return The install time of the component. */
-		IMPORT_C TTime InstallTimeL() const;
-		
-		/** @return  Whether the component is DRM protected. ETrue means the component is DRM protected.*/
-		IMPORT_C TBool IsDrmProtected() const;
-		
-		/** @return  Whether the component is hidden in the list of installed components. ETrue means the component is hidden. */
-		IMPORT_C TBool IsHidden() const;
-		
-		/** @return  Whether the component has been revoked. ETrue means that a revocation check was performed
-				  during or after the installation and the component was found to be revoked.
-		 */
-		IMPORT_C TBool IsKnownRevoked() const;
-		
-		/** @return  Whether the installer has verified the originator of the component. ETrue means the installer 
-			             has verified the originator of the software component by using appropriate checking mechanisms.
-		 */
-		IMPORT_C TBool IsOriginVerified()const;
-		
-	private:
-		CComponentEntry();
-		void ConstructL(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType, const TDesC& aGlobalId, TBool aRemovable, 
-						TInt64 aSize, const TScomoState& aScomoState, const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
-						TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
-	private:
-		TComponentId iComponentId;	 ///< The unique id of the software component.
-		HBufC* iName;				 ///< Name of the software component.
-		HBufC* iVendor;				 ///< Vendor of the software component.
-		HBufC* iSwType;				 ///< Software type name of the component.
-		HBufC* iGlobalId;			 ///< Globally unique component identifier.
-		TBool iRemovable;			 ///< Whether the component is removable.
-		TInt64 iSize;				 ///< The total size of the component at installation time in bytes.
-		TScomoState iScomoState;	 ///< SCOMO state of the component.
-		TDriveList iInstalledDrives; ///< The set of drives that files for the software component were installed to.
-	    HBufC* iVersion;			 ///< Version identifier of the software component
-	    HBufC* iInstallTime;		 ///< The install time of the component. 
-	    TBool iDrmProtected;		 ///< Whether the component is DRM protected.
-	    TBool iHidden;				 ///< Whether the component is hidden in the list of installed components.
-	    TBool iKnownRevoked;		 ///< Whether the component has been revoked.
-	    TBool iOriginVerified;		 ///< Whether the installer has verified the originator of the component.
-		};
-		
-	class CPropertyEntry : public CBase
-	/**
-		Abstract base class for a software component property entry. 
-		Specifies the type of a software component property. Before getting a property value, 
-		the base property object must be converted to a derived property object (e.g. CIntPropertyEntry). 
-	 */
-		{
-	public:
-	/** 
-		Enumeration to indicate the type of the property.
-	 */
-	enum TPropertyType
-		{
-		EBinaryProperty = 1,	///< The property value is binary data. See @see CBinaryPropertyEntry.
-		EIntProperty,		///< The property value is integer. See @see CIntPropertyEntry.
-		ELocalizedProperty,  ///< The property is a localizable string. See @see CLocalizablePropertyEntry.
-		};	
-	public:
-		/**
-			Creates a base software component property object from a stream.
-			@param aStream The stream to read the software property object from.
-			@return A pointer to the newly allocated software property object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CPropertyEntry* NewL(RReadStream& aStream);
-		
-		/** @return The name of the property. */
-		IMPORT_C const TDesC& PropertyName() const;
-		
-		/** Virtual destructor for the component property object*/
-		IMPORT_C virtual ~CPropertyEntry();
-		
-		/**
-			Externalises a base/derived property object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		*/
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;		 
-		
-		/** @return The type of the property object. Implemented by derived classes. */
-		virtual CPropertyEntry::TPropertyType PropertyType() const = 0;
-		
-	protected:
-		CPropertyEntry();
-		void ConstructL(const TDesC& aPropertyName);
-	
-	private:
-		virtual void DoExternalizeL(RWriteStream &aStream) const = 0;
-		virtual void DoInternalizeL(RReadStream& aStream) = 0;
-		
-	private:	
-		HBufC* iPropertyName;      ///< The name of the property entry.
-		};
-	
-	class CIntPropertyEntry : public CPropertyEntry
-	/**
-		Class that represents an integer component property. 
-	 */
-		{
-	public:
-		/**
-			Creates an integer component property object.
-			
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-		 */
-		IMPORT_C static CIntPropertyEntry* NewL(const TDesC& aPropertyName, TInt64 aPropertyValue);
-		
-		/**
-			Creates an integer component property object.
-			
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CIntPropertyEntry* NewLC(const TDesC& aPropertyName, TInt64 aPropertyValue);
-		
-		IMPORT_C ~CIntPropertyEntry();
-		
-		/**
-		 	The implementation of pure virtual function from @see Usif::CPropertyEntry.
-		 	@return The type of the property object.
-		 */
-		IMPORT_C CPropertyEntry::TPropertyType PropertyType() const;
-		
-		/** @return The 32-bit integer value. */ 
-		IMPORT_C TInt IntValue();
-		
-		/** @return The 64-bit integer value. */ 
-		IMPORT_C TInt64 Int64Value();
-		
-	private:
-		void DoExternalizeL(RWriteStream& aStream) const;
-		void DoInternalizeL(RReadStream& aStream);
-		
-		CIntPropertyEntry();
-		CIntPropertyEntry(TInt64 aPropertyIntValue);
-		void ConstructL(const TDesC& aPropertyName);
-		static CIntPropertyEntry* NewLC();
-		friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
-		
-	private:
-		TInt64 iIntValue;   ///< The integer property value.
-		};
-	
-	class CBinaryPropertyEntry : public CPropertyEntry
-	/**
-		Class that represents a binary non-localizable 8-bit descriptor component property.		
-	*/
-		{
-	public:
-		/**
-			Creates a binary component property object.
-				
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-		 */
-		IMPORT_C static CBinaryPropertyEntry* NewL(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
-		
-		/**
-			Creates a binary component property object.
-						
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CBinaryPropertyEntry* NewLC(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
-		
-		IMPORT_C ~CBinaryPropertyEntry(); 
-		
-		/**
-			The implementation of pure virtual function from @see Usif::CPropertyEntry.
-			@return The type of the property object.
-		 */
-		IMPORT_C TPropertyType PropertyType() const;
-		
-		/** @return The binary property value. */ 
-		IMPORT_C const TDesC8& BinaryValue();
-	
-	private:
-		CBinaryPropertyEntry();
-		void ConstructL(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
-		void DoExternalizeL(RWriteStream& aStream) const;
-		void DoInternalizeL(RReadStream& aStream);
-	
-		static CBinaryPropertyEntry* NewLC();
-		friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
-		
-	private:
-		HBufC8* iValue; ///< The value of the binary property.
-		};
-	
-	NONSHARABLE_CLASS(CLocalizablePropertyEntry) : public CPropertyEntry
-	/**
-		Class that represents a localizable string component property.
-		
-		A localized component property is a string property which can have different values 
-		for different locales. A particular instance of a localized component property includes 
-		both the localized string value and the locale in question.
-	 */
-		{
-	public:
-		/**
-			Creates a localizable component property object.
-					
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@param aLocale The locale of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-		 */
-		IMPORT_C static CLocalizablePropertyEntry* NewL(const TDesC& aPropertyName, const TDesC& aPropertyValue, TLanguage aLocale);
-		
-		/**
-			Creates a localizable component property object.
-							
-			@param aPropertyName The name of the property.
-			@param aPropertyValue The value of the property.
-			@param aLocale The locale of the property.
-			@return A pointer to the newly allocated component property object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CLocalizablePropertyEntry* NewLC( const TDesC& aPropertyName, const TDesC& aPropertyValue, TLanguage aLocale);
-		
-		IMPORT_C ~CLocalizablePropertyEntry();
-		
-		/** The locale of the localizable property object. */
-		IMPORT_C TLanguage LocaleL() const;
-		
-		/**
-			The implementation of pure virtual function from @see Usif::CPropertyEntry.
-			@return The type of the property object.
-		 */
-		IMPORT_C TPropertyType PropertyType() const;
-		
-		/** @return The string property value. */
-		IMPORT_C const TDesC& StrValue() const;		
-		
-	private:
-		CLocalizablePropertyEntry();
-		CLocalizablePropertyEntry(TLanguage aLocale);
-		void DoExternalizeL(RWriteStream &aStream) const;
-		void DoInternalizeL(RReadStream& aStream);
-		static CLocalizablePropertyEntry* NewLC();
-		friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
-		void ConstructL(const TDesC& aPropertyName, const TDesC& aPropertyValue);
-		
-	private:
-		TLanguage iLocale; ///< The language code of the locale.
-		HBufC* iStrValue; ///< The string value of the property
-		};
-	
-	NONSHARABLE_CLASS(CComponentFilter) : public CBase
-	/**
-		A filter class which is used to filter the software components stored in the SCR.
-		An empty filter object is first created and then required filter keys are set separately.
-	 */
-		{
-		friend class CScrRequestImpl;
-	public:
-		/**
-			Creates an empty component filter object.
-			@return A pointer to the newly allocated component filter object, if creation is successful.
-		 */
-		IMPORT_C static CComponentFilter* NewL();
-		
-		/**
-			Creates an empty component filter object.
-			@return A pointer to the newly allocated component filter object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CComponentFilter* NewLC();
-		
-		/**
-			Creates a component filter object from a stream.
-			@param aStream The stream to read the component filter object from
-			@return A pointer to the newly allocated component filter object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CComponentFilter* NewL(RReadStream& aStream);
-		
-		~CComponentFilter();
-		
-		/**
-			Restricts the returned component names in the filter.
-			Please note that wildcards are not supported and matching is case-sensitive.
-			@param aName The name of the software component.
-		 */
-		IMPORT_C void SetNameL(const TDesC& aName);
-		
-		/**
-			Restricts the returned component vendor names in the filter.
-			Please note that wildcards are not supported and matching is case-sensitive.
-			@param aVendor The vendor name of the software component.
-		 */
-		IMPORT_C void SetVendorL(const TDesC& aVendor);
-		
-		/**
-			Restricts the returned component software types in the filter.
-			@param aSwType The software type name of the software component (e.g. @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava). 
-		*/
-		IMPORT_C void SetSoftwareTypeL(const TDesC& aSwType);
-		
-		/**
-			Sets whether the software component which is being searched for is removable.
-			@param aValue ETrue, if the software component is removable. Otherwise, EFalse.
-		 */
-		IMPORT_C void SetRemovable(TBool aValue);
-		
-		/**
-			Sets whether the software component which is being searched for is DRM protected.
-			@param aValue ETrue, if the software component is DRM protected. Otherwise, EFalse.
-		 */
-		IMPORT_C void SetDrmProtected(TBool aValue);
-		
-		/**
-			Sets whether the software component which is being searched for is hidden.
-			@param aValue ETrue, if the software component is hidden. Otherwise, EFalse.
-		 */
-		IMPORT_C void SetHidden(TBool aValue);
-		
-		/**
-			Sets whether the software component which is being searched for is known-revoked.
-			@param aValue ETrue, if the software component is known-revoked. Otherwise, EFalse.
-		 */
-		IMPORT_C void SetKnownRevoked(TBool aValue);
-		
-		/**
-			Sets whether the software component which is being searched for is origin-verified.
-			@param aValue ETrue, if the software component is origin-verified. Otherwise, EFalse.
-		 */
-		IMPORT_C void SetOriginVerified(TBool aValue);
-		
-		/**
-			Restricts the returned component SCOMO states in the filter.
-			See @see Usif::TScomoState for the list of SCOMO states.
-			@param aScomoState The SCOMO state of the software component.
-		 */
-		IMPORT_C void SetScomoStateL(TScomoState aScomoState);
-		
-		/**
-			Sets the set of drives that files of the software components were installed to.
-			If more than one drive is supplied, all software components which files were installed to
-			any of these drives are returned.
-		 */
-		IMPORT_C void SetInstalledDrivesL(const TDriveList& aDrives);
-		
-		/**
-			Adds a localizable property to the filter. Only the software components having 
-			this property with the specified value are returned by the filter. It is possible to 
-			add more than one property. In this case, the software components possessing all provided 
-			properties with the specified values are returned by the filter.
-			
-			For more information about searching for current locale variant of properties look at 
-			@see RSoftwareComponentRegistry::GetComponentPropertyL.
-			
-			If the locale is provided, the component will be returned only if the property exists 
-			for the specified locale. If the locale is not provided, or is equal to KUnspecifiedLocale,
-			then all software components which have the property with the specified value for any locale will
-			match this condition.
-			
-			@param aName The name of the property. Please note that wildcards are not supported and matching is case-insensitive.
-			@param aValue The value of the property.	
-			@param aLocale Optional. The language code of the property value.			
-					
-		 */
-		IMPORT_C void AddPropertyL(const TDesC& aName, const TDesC& aValue, TLanguage aLocale=KUnspecifiedLocale);
-		
-		/**
-			Adds an integer property to the filter. The software components having this
-			property with the specified value are enumerated. It is possible to add more than one property. 
-			In this case, the software components possessing all provided properties with the specified 
-			values are enumerated.
-			
-			@param aName The name of the property. Please note that wildcards are not supported and matching is case-insensitive.
-			@param aValue The value of the property.
-		 */
-		IMPORT_C void AddPropertyL(const TDesC& aName, TInt64 aValue);
-		
-		/**
-			Adds a binary 8-bit descriptor property to the filter. The software components having this
-			property with the specified value are enumerated. It is possible to add more than one property. 
-			In this case, the software components possessing all provided properties with the specified 
-			values are enumerated.
-			
-			@param aName The name of the property. Please note that wildcards are not supported and matching is case-insensitive.
-			@param aValue The value of the property.
-		 */
-		IMPORT_C void AddPropertyL(const TDesC& aName, const TDesC8& aValue);		
-		
-		/**
-		 	Sets a file name to filter the software components having registered this file.
-		 	Please note that wildcards are not supported and matching is case-insensitive.
-			
-			N.B. This call can be invoked multiple times for the same filter in order to request components which register a particular set of files.
-		 	@param aFile The fully qualified file path.
-		 */
-		IMPORT_C void SetFileL(const TDesC& aFile);
-		
-		/**
-			Externalises a component filter object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		*/
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		
-	private:
-		CComponentFilter();
-		void ConstructL();
-		void InternalizeL(RReadStream& aStream);
-		
-		enum TFieldsFlag
-			{
-			EName 			= 0x0001,
-			EVendor 		= 0x0002,
-			ESoftwareType   = 0x0004,
-			ERemovable 		= 0x0008,
-			EScomoState 	= 0x0010,
-			EInstalledDrive = 0x0020,
-			EProperty       = 0x0040,
-			EFile			= 0x0080,
-			EDrmProtected   = 0x0100,
-			EHidden		    = 0x0200,
-			EKnownRevoked   = 0x0400,
-			EOriginVerified = 0x0800
-			};
-		
-	private:
-		TUint16 iSetFlag;			 ///< Flag variable that shows what fields have been set
-		HBufC* iName;				 ///< Name for the software component
-		HBufC* iVendor;				 ///< Vendor for the software component
-		HBufC* iSwType;				 ///< Software type of the component.
-		TBool iRemovable;			 ///< Whether the software component is removable
-		TScomoState iScomoState;	 ///< SCOMO state for the software component
-		TDriveList iInstalledDrives; ///< Installed drives for the software component
-		RPointerArray<CPropertyEntry> iPropertyList; ///< The list of key properties
-		HBufC* iFile;				///< The full name of the file owned by the component
-		TBool iDrmProtected;		 ///< Whether the component is DRM protected.
-		TBool iHidden;				 ///< Whether the component is displayed in the list of installed components.
-		TBool iKnownRevoked;		 ///< Whether the component has been revoked.
-		TBool iOriginVerified;		 ///< Whether the installer has verified the originator of the component.
-		};
+    
+    class CComponentEntry : public CBase
+    /**
+        Class that represents a software component entry stored in the SCR.
+     */
+        {
+        friend class CScrRequestImpl;
+    public:
+        /**
+            Creates an empty software component entry object.
+            @return A pointer to the newly allocated software component object, if creation is successful.
+         */
+        IMPORT_C static CComponentEntry* NewL();
+        
+        /**
+            Creates an empty software component entry object.
+            @return A pointer to the newly allocated software component object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CComponentEntry* NewLC();
+        
+        /**
+            Creates a software component entry object from a stream.
+            @param aStream The stream to read the software component entry object from
+            @return A pointer to the newly allocated software component entry object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CComponentEntry* NewL(RReadStream& aStream);
+        
+        /**
+            Creates a software component entry object.
+            
+            @param aId  The unique ID of the software component.
+            @param aName The name of of the software component.
+            @param aVendor The vendor name of the software component.
+            @param aSwType The software type of the component.
+            @param aGlobalId The globally unique identifier of the component.
+            @param aRemovable Whether the component is removable. ETrue means the component is removable.
+            @param aSize The total size of the component at installation time in bytes.
+            @param aScomoState The SCOMO state of the component.
+            @param aInstalledDrives The set of drives that files for the software component were installed to. 
+            @param aVersion The version identifier of the software component.
+            @param aInstallTime The formatted install time string. The format is as following: YYYYMMDD:HHMMSS
+            @param aDrmProtected Whether the component is DRM protected. ETrue means the component is DRM protected.
+            @param aHidden Whether the component is displayed in the list of installed components. ETrue means the component is hidden.
+            @param aKnownRevoked Whether the component has been revoked. ETrue means that a revocation check was
+                                   performed during or after the installation and the component was found to be revoked.
+            @param aOriginVerified Whether the installer has verified the originator of the component. ETrue means the installer 
+                                    has verified the originator of the software component by using appropriate checking mechanisms.
+            @return A pointer to the newly allocated software component object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CComponentEntry* NewL(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType,
+                                              const TDesC& aGlobalId, TBool aRemovable, TInt64 aSize, const TScomoState& aScomoState,
+                                              const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
+                                              TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
+        
+        /**
+            Creates a software component entry object.
+            
+            @param aId  The unique ID of the software component.
+            @param aName The name of of the software component.
+            @param aVendor The vendor name of the software component.
+            @param aSwType The software type of the component.
+            @param aGlobalId The globally unique identifier of the component.
+            @param aRemovable Whether the component is removable. ETrue means the component is removable.
+            @param aSize The total size of the component at installation time in bytes.
+            @param aScomoState The SCOMO state of the component.
+            @param aInstalledDrives The set of drives that files for the software component were installed to. 
+            @param aVersion The version identifier of the software component.
+            @param aInstallTime The formatted install time string. The format is as following: YYYYMMDD:HHMMSS  
+            @param aDrmProtected Whether the component is DRM protected. ETrue means the component is DRM protected.
+            @param aHidden Whether the component is displayed in the list of installed components. ETrue means the component is hidden.
+            @param aKnownRevoked Whether the component has been revoked. ETrue means that a revocation check was
+                                   performed during or after the installation and the component was found to be revoked.
+            @param aOriginVerified Whether the installer has verified the originator of the component. ETrue means the installer 
+                                    has verified the originator of the software component by using appropriate checking mechanisms.
+            @return A pointer to the newly allocated software component object, if creation is successful.
+                           The pointer is also put onto the cleanup stack.
+            @internalComponent
+         */
+        IMPORT_C static CComponentEntry* NewLC(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType, 
+                                               const TDesC& aGlobalId, TBool aRemovable, TInt64 aSize, const TScomoState& aScomoState, 
+                                               const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
+                                               TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
+        
+        IMPORT_C ~CComponentEntry();
+        
+        /**
+            Externalises this CComponentEntry object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+        */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+        
+        /**
+            Internalises this CComponentEntry object from a read stream.
+            @param aStream The stream from which the object is internalised.
+            @internalComponent
+        */
+        IMPORT_C void InternalizeL(RReadStream& aStream);
+        
+        /** @return The unique ID of the software component. */
+        IMPORT_C const TComponentId& ComponentId() const; 
+        
+        /** @return The name of the software component. */
+        IMPORT_C const TDesC& Name() const;
+        
+        /** @return The vendor name of the software component. */
+        IMPORT_C const TDesC& Vendor() const;
+        
+        /** @return The software type name of the software component, e.g @see Usif::KSoftwareTypeNative. */
+        IMPORT_C const TDesC& SoftwareType() const;
+        
+        /** @return Globally unique component identifier. */
+        IMPORT_C const TDesC& GlobalId() const;
+        
+        /** @return Whether the software component is removable. ETrue means it is removable. */
+        IMPORT_C TBool IsRemovable() const;
+        
+        /** @return The total size of the component at installation time in bytes. */
+        IMPORT_C TInt64  ComponentSize() const;
+        
+        /** @return The SCOMO state of the software component. @see Usif::TScomoState */
+        IMPORT_C const TScomoState& ScomoState() const;
+        
+        /** @return The set of drives that files for the software component were installed to. */
+        IMPORT_C const TDriveList& InstalledDrives() const;
+        
+        /** @return The version identifier of the software component. */
+        IMPORT_C const TDesC& Version() const;
+        
+        /** @return The install time of the component. */
+        IMPORT_C TTime InstallTimeL() const;
+        
+        /** @return  Whether the component is DRM protected. ETrue means the component is DRM protected.*/
+        IMPORT_C TBool IsDrmProtected() const;
+        
+        /** @return  Whether the component is hidden in the list of installed components. ETrue means the component is hidden. */
+        IMPORT_C TBool IsHidden() const;
+        
+        /** @return  Whether the component has been revoked. ETrue means that a revocation check was performed
+                  during or after the installation and the component was found to be revoked.
+         */
+        IMPORT_C TBool IsKnownRevoked() const;
+        
+        /** @return  Whether the installer has verified the originator of the component. ETrue means the installer 
+                         has verified the originator of the software component by using appropriate checking mechanisms.
+         */
+        IMPORT_C TBool IsOriginVerified()const;
+        
+    private:
+        CComponentEntry();
+        void ConstructL(const TComponentId& aId, const TDesC& aName, const TDesC& aVendor, const TDesC& aSwType, const TDesC& aGlobalId, TBool aRemovable, 
+                        TInt64 aSize, const TScomoState& aScomoState, const TDriveList& aInstalledDrives, const TDesC& aVersion, const TDesC& aInstallTime,
+                        TBool aDrmProtected, TBool aHidden, TBool aKnownRevoked, TBool aOriginVerified);
+    private:
+        TComponentId iComponentId;   ///< The unique id of the software component.
+        HBufC* iName;                ///< Name of the software component.
+        HBufC* iVendor;              ///< Vendor of the software component.
+        HBufC* iSwType;              ///< Software type name of the component.
+        HBufC* iGlobalId;            ///< Globally unique component identifier.
+        TBool iRemovable;            ///< Whether the component is removable.
+        TInt64 iSize;                ///< The total size of the component at installation time in bytes.
+        TScomoState iScomoState;     ///< SCOMO state of the component.
+        TDriveList iInstalledDrives; ///< The set of drives that files for the software component were installed to.
+        HBufC* iVersion;             ///< Version identifier of the software component
+        HBufC* iInstallTime;         ///< The install time of the component. 
+        TBool iDrmProtected;         ///< Whether the component is DRM protected.
+        TBool iHidden;               ///< Whether the component is hidden in the list of installed components.
+        TBool iKnownRevoked;         ///< Whether the component has been revoked.
+        TBool iOriginVerified;       ///< Whether the installer has verified the originator of the component.
+        };
+        
+    class CPropertyEntry : public CBase
+    /**
+        Abstract base class for a software component property entry. 
+        Specifies the type of a software component property. Before getting a property value, 
+        the base property object must be converted to a derived property object (e.g. CIntPropertyEntry). 
+     */
+        {
+    public:
+    /** 
+        Enumeration to indicate the type of the property.
+     */
+    enum TPropertyType
+        {
+        EBinaryProperty = 1,    ///< The property value is binary data. See @see CBinaryPropertyEntry.
+        EIntProperty,       ///< The property value is integer. See @see CIntPropertyEntry.
+        ELocalizedProperty,  ///< The property is a localizable string. See @see CLocalizablePropertyEntry.
+        };  
+    
+    public:
+        /**
+            Creates a base software component property object from a stream.
+            @param aStream The stream to read the software property object from.
+            @return A pointer to the newly allocated software property object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CPropertyEntry* NewL(RReadStream& aStream);
+        
+        /** @return The name of the property. */
+        IMPORT_C const TDesC& PropertyName() const;
+        
+        /** Virtual destructor for the component property object*/
+        IMPORT_C virtual ~CPropertyEntry();
+        
+        /**
+            Externalises a base/derived property object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+        */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;         
+        
+        /** @return The type of the property object. Implemented by derived classes. */
+        virtual CPropertyEntry::TPropertyType PropertyType() const = 0;
+        
+    protected:
+        CPropertyEntry();
+        void ConstructL(const TDesC& aPropertyName);
+    
+    private:
+        virtual void DoExternalizeL(RWriteStream &aStream) const = 0;
+        virtual void DoInternalizeL(RReadStream& aStream) = 0;
+        
+    private:    
+        HBufC* iPropertyName;         ///< The name of the property entry.
+        };
+    
+    class CIntPropertyEntry : public CPropertyEntry
+    /**
+        Class that represents an integer component property. 
+     */
+        {
+    public:
+        /**
+            Creates an integer component property object.
+            
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+         */
+        IMPORT_C static CIntPropertyEntry* NewL(const TDesC& aPropertyName, TInt64 aPropertyValue);
+        
+        /**
+            Creates an integer component property object.
+            
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CIntPropertyEntry* NewLC(const TDesC& aPropertyName, TInt64 aPropertyValue);
+        
+        IMPORT_C ~CIntPropertyEntry();
+        
+        /**
+            The implementation of pure virtual function from @see Usif::CPropertyEntry.
+            @return The type of the property object.
+         */
+        IMPORT_C CPropertyEntry::TPropertyType PropertyType() const;
+        
+        /** @return The 32-bit integer value. */ 
+        IMPORT_C TInt IntValue();
+        
+        /** @return The 64-bit integer value. */ 
+        IMPORT_C TInt64 Int64Value();
+        
+    private:
+        void DoExternalizeL(RWriteStream& aStream) const;
+        void DoInternalizeL(RReadStream& aStream);
+        
+        CIntPropertyEntry();
+        CIntPropertyEntry(TInt64 aPropertyIntValue);
+        void ConstructL(const TDesC& aPropertyName);
+        static CIntPropertyEntry* NewLC();
+        friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
+        
+    private:
+        TInt64 iIntValue;   ///< The integer property value.
+        };
+    
+    class CBinaryPropertyEntry : public CPropertyEntry
+    /**
+        Class that represents a binary non-localizable 8-bit descriptor component property.     
+    */
+        {
+    public:
+        /**
+            Creates a binary component property object.
+                
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+         */
+        IMPORT_C static CBinaryPropertyEntry* NewL(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
+        
+        /**
+            Creates a binary component property object.
+                        
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CBinaryPropertyEntry* NewLC(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
+        
+        IMPORT_C ~CBinaryPropertyEntry(); 
+        
+        /**
+            The implementation of pure virtual function from @see Usif::CPropertyEntry.
+            @return The type of the property object.
+         */
+        IMPORT_C TPropertyType PropertyType() const;
+        
+        /** @return The binary property value. */ 
+        IMPORT_C const TDesC8& BinaryValue();
+    
+    private:
+        CBinaryPropertyEntry();
+        void ConstructL(const TDesC& aPropertyName, const TDesC8& aPropertyValue);
+        void DoExternalizeL(RWriteStream& aStream) const;
+        void DoInternalizeL(RReadStream& aStream);
+    
+        static CBinaryPropertyEntry* NewLC();
+        friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
+        
+    private:
+        HBufC8* iValue; ///< The value of the binary property.
+        };
+    
+    NONSHARABLE_CLASS(CLocalizablePropertyEntry) : public CPropertyEntry
+    /**
+        Class that represents a localizable string component property.
+        
+        A localized component property is a string property which can have different values 
+        for different locales. A particular instance of a localized component property includes 
+        both the localized string value and the locale in question.
+     */
+        {
+    public:
+        /**
+            Creates a localizable component property object.
+                    
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @param aLocale The locale of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+         */
+        IMPORT_C static CLocalizablePropertyEntry* NewL(const TDesC& aPropertyName, const TDesC& aPropertyValue, TLanguage aLocale);
+        
+        /**
+            Creates a localizable component property object.
+                            
+            @param aPropertyName The name of the property.
+            @param aPropertyValue The value of the property.
+            @param aLocale The locale of the property.
+            @return A pointer to the newly allocated component property object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CLocalizablePropertyEntry* NewLC( const TDesC& aPropertyName, const TDesC& aPropertyValue, TLanguage aLocale);
+        
+        IMPORT_C ~CLocalizablePropertyEntry();
+        
+        /** The locale of the localizable property object. */
+        IMPORT_C TLanguage LocaleL() const;
+        
+        /**
+            The implementation of pure virtual function from @see Usif::CPropertyEntry.
+            @return The type of the property object.
+         */
+        IMPORT_C TPropertyType PropertyType() const;
+        
+        /** @return The string property value. */
+        IMPORT_C const TDesC& StrValue() const;     
+        
+    private:
+        CLocalizablePropertyEntry();
+        CLocalizablePropertyEntry(TLanguage aLocale);
+        void DoExternalizeL(RWriteStream &aStream) const;
+        void DoInternalizeL(RReadStream& aStream);
+        static CLocalizablePropertyEntry* NewLC();
+        friend CPropertyEntry* CPropertyEntry::NewL(RReadStream& aStream);
+        void ConstructL(const TDesC& aPropertyName, const TDesC& aPropertyValue);
+        
+    private:
+        TLanguage iLocale; ///< The language code of the locale.
+        HBufC* iStrValue; ///< The string value of the property
+        };
+    
+    NONSHARABLE_CLASS(CComponentFilter) : public CBase
+    /**
+        A filter class which is used to filter the software components stored in the SCR.
+        An empty filter object is first created and then required filter keys are set separately.
+     */
+        {
+        friend class CScrRequestImpl;
+    public:
+        
+        enum TDbOperator
+            {
+            EEqual = 1,
+            ELike
+            };
+        
+        /**
+            Creates an empty component filter object.
+            @return A pointer to the newly allocated component filter object, if creation is successful.
+         */
+        IMPORT_C static CComponentFilter* NewL();
+        
+        /**
+            Creates an empty component filter object.
+            @return A pointer to the newly allocated component filter object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CComponentFilter* NewLC();
+        
+        /**
+            Creates a component filter object from a stream.
+            @param aStream The stream to read the component filter object from
+            @return A pointer to the newly allocated component filter object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CComponentFilter* NewL(RReadStream& aStream);
+        
+        ~CComponentFilter();
+        
+        /**
+            Restricts the returned component names in the filter.
+            Please note that wildcards are not supported and matching is case-sensitive.
+            @param aName The name of the software component.
+         */
+        IMPORT_C void SetNameL(const TDesC& aName);
+        
+        /**
+            Restricts the returned component vendor names in the filter.
+            Please note that wildcards are not supported and matching is case-sensitive.
+            @param aVendor The vendor name of the software component.
+         */
+        IMPORT_C void SetVendorL(const TDesC& aVendor);
+        
+        /**
+            Restricts the returned component software types in the filter.
+            @param aSwType The software type name of the software component (e.g. @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava). 
+        */
+        IMPORT_C void SetSoftwareTypeL(const TDesC& aSwType);
+        
+        /**
+            Sets whether the software component which is being searched for is removable.
+            @param aValue ETrue, if the software component is removable. Otherwise, EFalse.
+         */
+        IMPORT_C void SetRemovable(TBool aValue);
+        
+        /**
+            Sets whether the software component which is being searched for is DRM protected.
+            @param aValue ETrue, if the software component is DRM protected. Otherwise, EFalse.
+         */
+        IMPORT_C void SetDrmProtected(TBool aValue);
+        
+        /**
+            Sets whether the software component which is being searched for is hidden.
+            @param aValue ETrue, if the software component is hidden. Otherwise, EFalse.
+         */
+        IMPORT_C void SetHidden(TBool aValue);
+        
+        /**
+            Sets whether the software component which is being searched for is known-revoked.
+            @param aValue ETrue, if the software component is known-revoked. Otherwise, EFalse.
+         */
+        IMPORT_C void SetKnownRevoked(TBool aValue);
+        
+        /**
+            Sets whether the software component which is being searched for is origin-verified.
+            @param aValue ETrue, if the software component is origin-verified. Otherwise, EFalse.
+         */
+        IMPORT_C void SetOriginVerified(TBool aValue);
+        
+        /**
+            Restricts the returned component SCOMO states in the filter.
+            See @see Usif::TScomoState for the list of SCOMO states.
+            @param aScomoState The SCOMO state of the software component.
+         */
+        IMPORT_C void SetScomoStateL(TScomoState aScomoState);
+        
+        /**
+            Sets the set of drives that files of the software components were installed to.
+            If more than one drive is supplied, all software components which files were installed to
+            any of these drives are returned.
+         */
+        IMPORT_C void SetInstalledDrivesL(const TDriveList& aDrives);
+        
+        /**
+            Adds a localizable property to the filter. Only the software components having 
+            this property with the specified value are returned by the filter. It is possible to 
+            add more than one property. In this case, the software components possessing all provided 
+            properties with the specified values are returned by the filter.
+            
+            For more information about searching for current locale variant of properties look at 
+            @see RSoftwareComponentRegistry::GetComponentPropertyL.
+            
+            If the locale is provided, the component will be returned only if the property exists 
+            for the specified locale. If the locale is not provided, or is equal to KUnspecifiedLocale,
+            then all software components which have the property with the specified value for any locale will
+            match this condition.
+            
+            @param aName The name of the property. Please note that matching is case-insensitive.
+            @param aValue The value of the property.    
+            @param aLocale Optional. The language code of the property value.
+            @param aNameOperator The comparison operator (TDbOperator type) to be associated with the name.
+            @param aValueOperator The comparison operator (TDbOperator type) to be associated with the value.          
+                    
+         */
+        IMPORT_C void AddPropertyL(const TDesC& aName, const TDesC& aValue, TLanguage aLocale=KUnspecifiedLocale, 
+                TDbOperator aNameOperator = EEqual, TDbOperator aValueOperator = EEqual);
+        
+        /**
+            Adds an integer property to the filter. The software components having this
+            property with the specified value are enumerated. It is possible to add more than one property. 
+            In this case, the software components possessing all provided properties with the specified 
+            values are enumerated.
+            
+            @param aName The name of the property. Please note that matching is case-insensitive.
+            @param aValue The value of the property.
+            @param aNameOperator The comparison operator (TDbOperator type) to be associated with the name.
+            @param aValueOperator The comparison operator (TDbOperator type) to be associated with the value.          
+            
+         */
+        IMPORT_C void AddPropertyL(const TDesC& aName, TInt64 aValue, TDbOperator aNameOperator = EEqual, 
+                TDbOperator aValueOperator = EEqual);
+        
+        /**
+            Adds a binary 8-bit descriptor property to the filter. The software components having this
+            property with the specified value are enumerated. It is possible to add more than one property. 
+            In this case, the software components possessing all provided properties with the specified 
+            values are enumerated.
+            
+            @param aName The name of the property. Please note that matching is case-insensitive.
+            @param aValue The value of the property.
+            @param aNameOperator The comparison operator (TDbOperator type) to be associated with the name.
+            @param aValueOperator The comparison operator (TDbOperator type) to be associated with the value.          
+            
+         */
+        IMPORT_C void AddPropertyL(const TDesC& aName, const TDesC8& aValue, TDbOperator aNameOperator = EEqual, 
+                TDbOperator aValueOperator = EEqual);       
+        
+        /**
+            Sets a file name to filter the software components having registered this file.
+            Please note that wildcards are not supported and matching is case-insensitive.
+            
+            N.B. This call can be invoked multiple times for the same filter in order to request components which register a particular set of files.
+            @param aFile The fully qualified file path.
+         */
+        IMPORT_C void SetFileL(const TDesC& aFile);
+        
+        /**
+            Externalises a component filter object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+        */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+        
+    private:
+        CComponentFilter();
+        void ConstructL();
+        void InternalizeL(RReadStream& aStream);
+        
+        enum TFieldsFlag
+            {
+            EName           = 0x0001,
+            EVendor         = 0x0002,
+            ESoftwareType   = 0x0004,
+            ERemovable      = 0x0008,
+            EScomoState     = 0x0010,
+            EInstalledDrive = 0x0020,
+            EProperty       = 0x0040,
+            EFile           = 0x0080,
+            EDrmProtected   = 0x0100,
+            EHidden         = 0x0200,
+            EKnownRevoked   = 0x0400,
+            EOriginVerified = 0x0800
+            };
+        
+        class TPropertyOperator
+            {
+        public:
+            IMPORT_C TPropertyOperator(TDbOperator aNameOperator = EEqual, TDbOperator aValueOperator = EEqual);
+            void ExternalizeL(RWriteStream& aStream) const;
+            IMPORT_C void InternalizeL(RReadStream& aStream);  
+            IMPORT_C TDbOperator NameOperator() const;
+            IMPORT_C TDbOperator ValueOperator() const;
+        
+        private:
+            TDbOperator iNameOperator;
+            TDbOperator iValueOperator;
+            };
+        
+    private:
+        TUint16 iSetFlag;            ///< Flag variable that shows what fields have been set
+        HBufC* iName;                ///< Name for the software component
+        HBufC* iVendor;              ///< Vendor for the software component
+        HBufC* iSwType;              ///< Software type of the component.
+        TBool iRemovable;            ///< Whether the software component is removable
+        TScomoState iScomoState;     ///< SCOMO state for the software component
+        TDriveList iInstalledDrives; ///< Installed drives for the software component
+        RPointerArray<CPropertyEntry> iPropertyList; ///< The list of key properties
+        HBufC* iFile;               ///< The full name of the file owned by the component
+        TBool iDrmProtected;         ///< Whether the component is DRM protected.
+        TBool iHidden;               ///< Whether the component is displayed in the list of installed components.
+        TBool iKnownRevoked;         ///< Whether the component has been revoked.
+        TBool iOriginVerified;       ///< Whether the installer has verified the originator of the component.
+        RArray<TPropertyOperator> iPropertyOperatorList; ///< The list of operators associated with each property. 
+        };
 
-	
-	class CLocalizableCommonData : public CBase
-	/**
-		Base class which provides common functionality for localized information classes (e.g. CLocalizableComponentInfo). 
-		Please note that this class cannot be instantiated.
-	 */
-		{
-	public:
-		~CLocalizableCommonData();	
-		
-		/** @return The locale of the data. */
-		IMPORT_C TLanguage Locale() const;
-		
-	protected:
-		CLocalizableCommonData();
-		CLocalizableCommonData(TLanguage aLocale);
-		
-		void ExternalizeL(RWriteStream& aStream) const;
-		void InternalizeL(RReadStream& aStream);
-		
-	private:
-		TLanguage iLocale; ///< The language code of the locale.
-		};
-		
-	NONSHARABLE_CLASS(CLocalizableComponentInfo) : public CLocalizableCommonData
-	/**
-		This class contains the localizable information of a software component.
-		Component names and vendor names are localizable names and transferred to the SCR 
-		with the objects of this class.
-	 */
-		{
-	public:
-		/**
-			Creates a localizable component information object.
-			@param aName The name of the component.
-			@param aVendor The vendor of the component.
-			@param aLocale The language code of the object's locale.
-			@return A pointer to the newly allocated localizable component info object, if creation is successful.
-		 */
-		IMPORT_C static CLocalizableComponentInfo* NewL(const TDesC& aName, const TDesC& aVendor, TLanguage aLocale);
-		
-		/**
-			Creates a localizable component information object.
-			@param aName The name of the component.
-			@param aVendor The vendor of the component.
-			@param aLocale The language code of the object's locale.
-			@return A pointer to the newly allocated component information object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-		 */
-		IMPORT_C static CLocalizableComponentInfo* NewLC(const TDesC& aName, const TDesC& aVendor, TLanguage aLocale);
-		
-		/**
-			Creates a localizable component information from a stream.
-			@param aStream The stream to read the component information object from.
-			@return A pointer to the newly allocated component information object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CLocalizableComponentInfo* NewL(RReadStream& aStream);
-		
-		~CLocalizableComponentInfo();
-		
-		/**
-			Externalises a localizable component information object to a write stream.
-			@param aStream The stream to which the object is externalised.
-			@internalComponent
-		 */
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;	
-		
-		/** @return The localizable name of the component. */
-		IMPORT_C const TDesC& NameL() const;
-		
-		/** @return The localizable vendor name of the component. */
-		IMPORT_C const TDesC& VendorL() const;
-		
-	private:
-		CLocalizableComponentInfo();
-		CLocalizableComponentInfo(TLanguage aLocale);
-		void ConstructL(const TDesC& aName, const TDesC& aVendor);
-		void InternalizeL(RReadStream& aStream);
-		
-	private:
-		HBufC* iName;	   ///< The localizable component name.
-		HBufC* iVendor;    ///< The localizable component vendor name.
-		};
-	
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS	
-	NONSHARABLE_CLASS(CLocalizedSoftwareTypeName) : public CLocalizableCommonData
-		/**
-			This class contains localized software type names.
-			Software type names are localizable names and transferred to the SCR 
-			with the objects of this class.
-			
-			@internalTechnology
-		 */
-			{
-		public:	
-			/**
-				Creates a localized software type name object.
-				@param aName The name of the software type.
-				@param aLocale The language code of the object's locale.
-				@return A pointer to the newly allocated localized software type name object, if creation is successful.
-			 */
-			IMPORT_C static CLocalizedSoftwareTypeName* NewL(const TDesC& aName, TLanguage aLocale);
-			
-			/**
-				Creates a localized software type name object.
-				@param aName The name of the software type.
-				@param aLocale The language code of the object's locale.
-				@return A pointer to the newly allocated localized software type name object, if creation is successful.
-						The pointer is also put onto the cleanup stack.
-			 */
-			IMPORT_C static CLocalizedSoftwareTypeName* NewLC(const TDesC& aName, TLanguage aLocale);
-			
-			/**
-				Creates a localized software type name object from a stream.
-				@param aStream The stream to read the localized software type name object from.
-				@return A pointer to the newly allocated localized software type name object, if creation is successful.
-				@internalComponent
-			 */
-			IMPORT_C static CLocalizedSoftwareTypeName* NewL(RReadStream& aStream);
-			
-			~CLocalizedSoftwareTypeName();
-			
-			/**
-				Externalises a localized software type name object to a write stream.
-				@param aStream The stream to which the object is externalised.
-				@internalComponent
-			 */
-			IMPORT_C void ExternalizeL(RWriteStream& aStream) const;	
-			
-			/** @return The localized software type name. */
-			IMPORT_C const TDesC& NameL() const;
-			
-		private:
-			CLocalizedSoftwareTypeName();
-			CLocalizedSoftwareTypeName(TLanguage aLocale);
-			void ConstructL(const TDesC& aName);
-			void InternalizeL(RReadStream& aStream);
-			
-		private:
-			HBufC* iName;	   ///< The localized software type name.
-			};
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS	
-	
-	enum TScrComponentOperationType
-	/**
-		The type of the operation being performed on an SCR component. 
-	 */
-		{
-		EScrCompInstall =0,		///< A new SCR component is added.
-		EScrCompUnInstall,		///< A existing SCR component is removed.
-		EScrCompUpgrade,		///< An existing SCR component is updated.
-		EScrCompHidden			///< The component operation is hidden to the user. N.B. SCR doesn't save logs for this type of operation.
-		};
-	
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS	
-	NONSHARABLE_CLASS (CScrLogEntry) : public CBase
-	/**
-		Class that represents a software component log record generated by the SCR.
-	 */ 
-		{
-		friend class CScrRequestImpl;
-	public:
-		/**
-			Creates a log entry object.
-			@param aComponentName The name of the component.
-			@param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@param aGlobalId The global Id of the component.
-			@param aVersion The version of the component.
-			@param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
-			@return A pointer to the newly allocated log entry object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CScrLogEntry* NewL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
-		
-		/**
-			Creates a log entry object.
-			@param aComponentName The name of the component.
-			@param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@param aGlobalId The global Id of the component.
-			@param aVersion The version of the component.
-			@param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
-			@return A pointer to the newly allocated log entry object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-			@internalComponent		
-		 */
-		IMPORT_C static CScrLogEntry* NewLC(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
+    
+    class CLocalizableCommonData : public CBase
+    /**
+        Base class which provides common functionality for localized information classes (e.g. CLocalizableComponentInfo). 
+        Please note that this class cannot be instantiated.
+     */
+        {
+    public:
+        ~CLocalizableCommonData();  
+        
+        /** @return The locale of the data. */
+        IMPORT_C TLanguage Locale() const;
+        
+    protected:
+        CLocalizableCommonData();
+        CLocalizableCommonData(TLanguage aLocale);
+        
+        void ExternalizeL(RWriteStream& aStream) const;
+        void InternalizeL(RReadStream& aStream);
+        
+    private:
+        TLanguage iLocale; ///< The language code of the locale.
+        };
+        
+    NONSHARABLE_CLASS(CLocalizableComponentInfo) : public CLocalizableCommonData
+    /**
+        This class contains the localizable information of a software component.
+        Component names and vendor names are localizable names and transferred to the SCR 
+        with the objects of this class.
+     */
+        {
+    public:
+        /**
+            Creates a localizable component information object.
+            @param aName The name of the component.
+            @param aVendor The vendor of the component.
+            @param aLocale The language code of the object's locale.
+            @return A pointer to the newly allocated localizable component info object, if creation is successful.
+         */
+        IMPORT_C static CLocalizableComponentInfo* NewL(const TDesC& aName, const TDesC& aVendor, TLanguage aLocale);
+        
+        /**
+            Creates a localizable component information object.
+            @param aName The name of the component.
+            @param aVendor The vendor of the component.
+            @param aLocale The language code of the object's locale.
+            @return A pointer to the newly allocated component information object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+         */
+        IMPORT_C static CLocalizableComponentInfo* NewLC(const TDesC& aName, const TDesC& aVendor, TLanguage aLocale);
+        
+        /**
+            Creates a localizable component information from a stream.
+            @param aStream The stream to read the component information object from.
+            @return A pointer to the newly allocated component information object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CLocalizableComponentInfo* NewL(RReadStream& aStream);
+        
+        ~CLocalizableComponentInfo();
+        
+        /**
+            Externalises a localizable component information object to a write stream.
+            @param aStream The stream to which the object is externalised.
+            @internalComponent
+         */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;    
+        
+        /** @return The localizable name of the component. */
+        IMPORT_C const TDesC& NameL() const;
+        
+        /** @return The localizable vendor name of the component. */
+        IMPORT_C const TDesC& VendorL() const;
+        
+    private:
+        CLocalizableComponentInfo();
+        CLocalizableComponentInfo(TLanguage aLocale);
+        void ConstructL(const TDesC& aName, const TDesC& aVendor);
+        void InternalizeL(RReadStream& aStream);
+        
+    private:
+        HBufC* iName;      ///< The localizable component name.
+        HBufC* iVendor;    ///< The localizable component vendor name.
+        };
+    
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS    
+    NONSHARABLE_CLASS(CLocalizedSoftwareTypeName) : public CLocalizableCommonData
+        /**
+            This class contains localized software type names.
+            Software type names are localizable names and transferred to the SCR 
+            with the objects of this class.
+            
+            @internalTechnology
+         */
+            {
+        public: 
+            /**
+                Creates a localized software type name object.
+                @param aName The name of the software type.
+                @param aLocale The language code of the object's locale.
+                @return A pointer to the newly allocated localized software type name object, if creation is successful.
+             */
+            IMPORT_C static CLocalizedSoftwareTypeName* NewL(const TDesC& aName, TLanguage aLocale);
+            
+            /**
+                Creates a localized software type name object.
+                @param aName The name of the software type.
+                @param aLocale The language code of the object's locale.
+                @return A pointer to the newly allocated localized software type name object, if creation is successful.
+                        The pointer is also put onto the cleanup stack.
+             */
+            IMPORT_C static CLocalizedSoftwareTypeName* NewLC(const TDesC& aName, TLanguage aLocale);
+            
+            /**
+                Creates a localized software type name object from a stream.
+                @param aStream The stream to read the localized software type name object from.
+                @return A pointer to the newly allocated localized software type name object, if creation is successful.
+                @internalComponent
+             */
+            IMPORT_C static CLocalizedSoftwareTypeName* NewL(RReadStream& aStream);
+            
+            ~CLocalizedSoftwareTypeName();
+            
+            /**
+                Externalises a localized software type name object to a write stream.
+                @param aStream The stream to which the object is externalised.
+                @internalComponent
+             */
+            IMPORT_C void ExternalizeL(RWriteStream& aStream) const;    
+            
+            /** @return The localized software type name. */
+            IMPORT_C const TDesC& NameL() const;
+            
+        private:
+            CLocalizedSoftwareTypeName();
+            CLocalizedSoftwareTypeName(TLanguage aLocale);
+            void ConstructL(const TDesC& aName);
+            void InternalizeL(RReadStream& aStream);
+            
+        private:
+            HBufC* iName;      ///< The localized software type name.
+            };
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS   
+    
+    enum TScrComponentOperationType
+    /**
+        The type of the operation being performed on an SCR component. 
+     */
+        {
+        EScrCompInstall =0,     ///< A new SCR component is added.
+        EScrCompUnInstall,      ///< A existing SCR component is removed.
+        EScrCompUpgrade,        ///< An existing SCR component is updated.
+        EScrCompHidden          ///< The component operation is hidden to the user. N.B. SCR doesn't save logs for this type of operation.
+        };
+    
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS    
+    NONSHARABLE_CLASS (CScrLogEntry) : public CBase
+    /**
+        Class that represents a software component log record generated by the SCR.
+     */ 
+        {
+        friend class CScrRequestImpl;
+    public:
+        /**
+            Creates a log entry object.
+            @param aComponentName The name of the component.
+            @param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
+            @param aGlobalId The global Id of the component.
+            @param aVersion The version of the component.
+            @param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
+            @return A pointer to the newly allocated log entry object, if creation is successful.
+            @internalComponent
+         */
+        IMPORT_C static CScrLogEntry* NewL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
+        
+        /**
+            Creates a log entry object.
+            @param aComponentName The name of the component.
+            @param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
+            @param aGlobalId The global Id of the component.
+            @param aVersion The version of the component.
+            @param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
+            @return A pointer to the newly allocated log entry object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+            @internalComponent      
+         */
+        IMPORT_C static CScrLogEntry* NewLC(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
 
-	 	/**
-	 		Creates a log entry object from a stream.
-	 		@param aStream The stream to read the log entry object from.
-	 		@return A pointer to the newly allocated log entry object, if creation is successful.
-	 				The pointer is also put onto the cleanup stack.
-	 		@internalComponent
-	 	*/
-		IMPORT_C static CScrLogEntry* NewLC(RReadStream& aStream);
-		
-		~CScrLogEntry();
-		
-	 	/**
-		 	Write the object to a stream 
-		 
-		 	@param aStream The stream to write to
-		 	@internalComponent
-		 */
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		 
-		/**
-		 	Read the object from a stream
-		 
-		 	@param aStream The stream to read from.
-		 	@internalComponent
-		 */
-		IMPORT_C void InternalizeL(RReadStream& aStream) ;
-	    
-	    /**
-			@return The name of the component for which the log was generated.
-		 */
-		IMPORT_C const TDesC& ComponentName() const; 
-		
-		/**
-			@return The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-		 */
-		IMPORT_C const TDesC& SoftwareTypeName() const;
-		
-		/**
-			The UID.
-		 	@return The global ID of the component.
-		 */
-		IMPORT_C const TDesC& GlobalId() const; 
-				
-		/**
-			@return The version of the component.
-		 */
-		IMPORT_C const TDesC& ComponentVersion() const; 
-	    
-		/**
-			@return The time when the operation occured.
-		 */
-		IMPORT_C const TTime OperationTime() const; 
-			    
-	    /**
-		    @return The type of the component operation for the log record.
-		 */
-		IMPORT_C TScrComponentOperationType OperationType() const;
-		
-		/**
-			@return The component id of the log record.
-			@internalComponent
-		 */
-		IMPORT_C TComponentId ComponentId() const;
-	
-	private:
-		CScrLogEntry();
-		void ConstructL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
-		
-	private:	
-	    HBufC* iComponentName ;
-	    HBufC* iSwTypeName;
-		HBufC* iVersion;
-		TScrComponentOperationType iOpType ; 
-		TTime  iRecordTime ;   
-		HBufC* iGlobalId;
-		TComponentId iComponentId; 
-		};
-	
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS	
+        /**
+            Creates a log entry object from a stream.
+            @param aStream The stream to read the log entry object from.
+            @return A pointer to the newly allocated log entry object, if creation is successful.
+                    The pointer is also put onto the cleanup stack.
+            @internalComponent
+        */
+        IMPORT_C static CScrLogEntry* NewLC(RReadStream& aStream);
+        
+        ~CScrLogEntry();
+        
+        /**
+            Write the object to a stream 
+         
+            @param aStream The stream to write to
+            @internalComponent
+         */
+        IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+         
+        /**
+            Read the object from a stream
+         
+            @param aStream The stream to read from.
+            @internalComponent
+         */
+        IMPORT_C void InternalizeL(RReadStream& aStream) ;
+        
+        /**
+            @return The name of the component for which the log was generated.
+         */
+        IMPORT_C const TDesC& ComponentName() const; 
+        
+        /**
+            @return The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
+         */
+        IMPORT_C const TDesC& SoftwareTypeName() const;
+        
+        /**
+            The UID.
+            @return The global ID of the component.
+         */
+        IMPORT_C const TDesC& GlobalId() const; 
+                
+        /**
+            @return The version of the component.
+         */
+        IMPORT_C const TDesC& ComponentVersion() const; 
+        
+        /**
+            @return The time when the operation occured.
+         */
+        IMPORT_C const TTime OperationTime() const; 
+                
+        /**
+            @return The type of the component operation for the log record.
+         */
+        IMPORT_C TScrComponentOperationType OperationType() const;
+        
+        /**
+            @return The component id of the log record.
+            @internalComponent
+         */
+        IMPORT_C TComponentId ComponentId() const;
+    
+    private:
+        CScrLogEntry();
+        void ConstructL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
+        
+    private:    
+        HBufC* iComponentName ;
+        HBufC* iSwTypeName;
+        HBufC* iVersion;
+        TScrComponentOperationType iOpType ; 
+        TTime  iRecordTime ;   
+        HBufC* iGlobalId;
+        TComponentId iComponentId; 
+        };
+    
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS   
 
-	} // End of namespace Usif
+    } // End of namespace Usif
 
 #endif // SCRENTRIES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swcomponentregistry/inc/screntries_platform.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of 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 entry classes for Software Components Registry interface.
+*
+*/
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef SCRENTRIES_PARTNER_H
+#define SCRENTRIES_PARTNER_H
+
+#include <e32base.h>
+#include <s32strm.h>
+#include <f32file.h> 
+#include <usif/usifcommon.h>
+#include <usif/scr/screntries.h>
+#include <ct/rcpointerarray.h>
+
+namespace Usif
+	{
+    class CLocalizedSoftwareTypeName;
+
+    enum TAccessMode
+        {
+        ETransactionalSid   = 0x0001,    // Sids requiring component/application transactional support, usually Installers/Execution layers
+        EMaxAccessMode      = 0xFFFF
+        };
+    
+	NONSHARABLE_CLASS (TCustomAccessInfo)
+		{
+	public:
+	    IMPORT_C TSecureId SecureId() const;
+	    IMPORT_C TAccessMode AccessMode() const;
+	    IMPORT_C TCustomAccessInfo(TSecureId aSecureId, TAccessMode aAccessMode);
+			    
+	private:
+	    TAccessMode iAccessMode;
+	    TSecureId iSecureId;
+		};
+		
+	NONSHARABLE_CLASS (CSoftwareTypeRegInfo) : public CBase
+		{
+	public:
+		IMPORT_C static CSoftwareTypeRegInfo* NewL(const TDesC& aUniqueSoftwareTypeName);
+		IMPORT_C static CSoftwareTypeRegInfo* NewL(RReadStream& aStream);
+
+		IMPORT_C virtual ~CSoftwareTypeRegInfo();
+		
+		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+		inline void SetSifPluginUid(TUid aUid);
+		inline void SetCustomAccessL(TCustomAccessInfo aCustomAccessListInfo);
+		inline void SetCustomAccessL(TSecureId aSecureId, TAccessMode aAccessMode);
+		IMPORT_C void SetMimeTypeL(const TDesC& aMimeType);
+		IMPORT_C void SetLocalizedSoftwareTypeNameL(TLanguage aLanguage, const TDesC& aName);
+		IMPORT_C void SetLauncherExecutableL(const TDesC& aLauncherExecutable);
+
+		inline const TDesC& UniqueSoftwareTypeName() const;
+		inline TUid SifPluginUid() const;
+		inline RArray<TCustomAccessInfo> CustomAccessList() const;
+		
+		inline const RPointerArray<HBufC>& MimeTypes() const;
+		inline const RPointerArray<CLocalizedSoftwareTypeName>& LocalizedSoftwareTypeNames() const;
+		inline const TDesC& LauncherExecutable() const;
+
+	private:
+		CSoftwareTypeRegInfo();
+		void InternalizeL(RReadStream& aStream);
+
+		enum { EUniqueSwTypeNameMaxLength = 64,
+               ELauncherExecutableMaxLength = 512}; 
+
+		HBufC* iUniqueSoftwareTypeName;
+		TUid iSifPluginUid;
+		RArray<TCustomAccessInfo> iCustomAccessList;
+		RCPointerArray<HBufC> iMimeTypes;
+		RCPointerArray<CLocalizedSoftwareTypeName> iLocalizedSoftwareTypeNames;
+		HBufC* iLauncherExecutable;
+		};
+
+	inline void CSoftwareTypeRegInfo::SetSifPluginUid(TUid aUid)
+	    {
+	    iSifPluginUid = aUid;
+	    }
+
+	inline void CSoftwareTypeRegInfo::SetCustomAccessL(TCustomAccessInfo aCustomAccessList)
+	    {
+	    iCustomAccessList.AppendL(aCustomAccessList);
+	    }
+
+    inline void CSoftwareTypeRegInfo::SetCustomAccessL(TSecureId aSecureId, TAccessMode aAccessMode)
+        {
+        iCustomAccessList.AppendL(TCustomAccessInfo(aSecureId, aAccessMode));
+        }
+    
+	inline const TDesC& CSoftwareTypeRegInfo::UniqueSoftwareTypeName() const
+        {
+	    if (iUniqueSoftwareTypeName == NULL)
+	        {
+	        return KNullDesC;
+	        }
+	    return *iUniqueSoftwareTypeName;
+	    }
+
+	inline TUid CSoftwareTypeRegInfo::SifPluginUid() const
+        {
+	    return iSifPluginUid;
+	    }
+
+	inline RArray<TCustomAccessInfo> CSoftwareTypeRegInfo::CustomAccessList() const
+        {
+	    return iCustomAccessList;
+	    }
+	
+	const RPointerArray<HBufC>& CSoftwareTypeRegInfo::MimeTypes() const
+	    {
+	    return iMimeTypes;
+	    }
+
+	inline const RPointerArray<CLocalizedSoftwareTypeName>& CSoftwareTypeRegInfo::LocalizedSoftwareTypeNames() const
+	    {
+	    return iLocalizedSoftwareTypeNames;
+	    }
+	
+	inline const TDesC& CSoftwareTypeRegInfo::LauncherExecutable() const
+	    {
+	    if (iLauncherExecutable == NULL)
+	        {
+	        return KNullDesC;
+	        }
+	    return *iLauncherExecutable;
+	    }
+	    
+	} // End of namespace Usif
+
+#endif // SCRENTRIES_H
--- a/installationservices/swcomponentregistry/inc_private/scrrequestimpl.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/inc_private/scrrequestimpl.h	Fri Jun 11 13:45:18 2010 +0300
@@ -32,6 +32,7 @@
 #include "screntries.h"
 #include "appregentries.h"
 #include "appreginfo.h"
+#include <usif/scr/screntries_platform.h>
 
 namespace Usif
 	{
@@ -122,6 +123,7 @@
 		void FlushLogEntriesArrayL();
 		void GetIsComponentOnReadOnlyDriveL(const RMessage2& aMessage) const;
 		void GetIsComponentPresentL(const RMessage2& aMessage) const;
+		TBool IsComponentPresentL(TComponentId aComponentId) const;
 		void SetIsComponentPresentL(const RMessage2& aMessage);
 		
 		// SIF Requests
@@ -277,12 +279,6 @@
 			EFileUnregistered
 			};
 		
-		enum TAccessMode
-            {
-            ETransactionalSid   = 0x0001,    // Sids requiring component/application transactional support, usually Installers/Execution layers
-            EMaxAccessMode      = 0xFFFF
-            };
-		
 		class TRollbackParams
 			{
 		public:
@@ -326,7 +322,8 @@
 		CStatement* CreateStatementObjectWithLocaleL(const TDesC& aStatement, TLanguage aLocale, TInt aValuesNum,...) const;
 		CStatement* CreateStatementObjectWithLocaleNoDowngradeL(const TDesC& aStatement, TLanguage aLocale, TInt aValuesNum,...) const;
 		void BindStatementValuesL(CStatement& aStatement, TLanguage aLanguage, TInt aValuesNum, VA_LIST aList) const;
-		void GetComponentIdsHavingThePropertiesL(RArray<TComponentId>& aComponentIds, RPointerArray<CPropertyEntry> aProperties, TBool aDoIntersect) const;
+		void GetComponentIdsHavingThePropertiesL(RArray<TComponentId>& aComponentIds, RPointerArray<CPropertyEntry>& aProperties, RArray<CComponentFilter::TPropertyOperator>& aPropertyOperatorList, 
+                                                     TBool aDoIntersect) const;
 		CStatement* CreateStatementObjectForComponentLocalizablesLC(const TDesC& aName, const TDesC& aVendor, TUint aSetFlag, TComponentId aComponentId  = 0 ) const;
 		void GetComponentsHavingNameVendorL(RArray<TComponentId>& aComponentIds, const TDesC& aName, const TDesC& aVendor, TUint16 aSetFlag, TBool aDoIntersect) const;
 		CComponentEntry* GetNextComponentEntryL(CStatement& aStmt, CComponentFilter& aFilter, TLanguage aLocale, CCompViewSubsessionContext* aSubsessionContext) const;
@@ -348,7 +345,7 @@
 		void ReadAndSetCommonComponentPropertyL(const RMessage2& aMessage, const TDesC& aPropertyColumn);
 		TBool HasFilesOnDriveL(TDriveUnit aDrive, TComponentId aComponentId);
 		CStatement* OpenFileListStatementL(TComponentId aComponentId) const;
-		TBool IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, TUint32 aInstallerSecureId, TUint32 aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray);
+		TBool IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, RArray<TCustomAccessInfo>& aSidArray, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray, const TDesC& aLauncherExecutable);
 		void SubsessionAddLocalizableSoftwareTypeNameL(CStatement& aStmt, CComponentEntry& aEntry, TLanguage aLocale, CCompViewSubsessionContext* aSubsessionContext) const;
 		TBool IsDriveReadOnlyL(TInt driveIndex) const;
 		TBool CheckForMediaPresenceL(TComponentId aComponentId) const;
@@ -358,6 +355,7 @@
 		TBool GetAppUidForServiceIdL(const TInt ServiceId, TUid& aAppUid) const;
 		TBool GetNearestAppLanguageL(TLanguage aRequiredLocale,TUid aAppUid,TLanguage& aFinalAppLocale) const;
 		void GetNearestAppLanguageForOpaqueDataL(TLanguage aRequiredLocale,TUid aAppUid,TUid aServiceUid,TLanguage& aFinalAppLocale) const;
+		void GetOperatorStringL(CComponentFilter::TDbOperator aOperator, HBufC*& aOperatorString) const;
 
 		// DB Version management
 		void InitializeDbVersionL();
--- a/installationservices/swcomponentregistry/source/client/appregentries.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/client/appregentries.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -356,8 +356,18 @@
     }
 
 void COpaqueData::ConstructL(const TDesC8& aOpaqueData, TLanguage aLanguage)
-    {
-    iOpaqueData = aOpaqueData.AllocL();
+    {  
+	//if the length of opaque data is more than 4k, we will truncate it to 4k.
+    const TInt KMaxOpaqueDataLength = 4096;    
+    if (aOpaqueData.Length() > KMaxOpaqueDataLength)
+        {
+        iOpaqueData = HBufC8::NewL(KMaxOpaqueDataLength);
+        iOpaqueData->Des().Copy(aOpaqueData.Ptr(),KMaxOpaqueDataLength);
+        }
+    else
+        {
+        iOpaqueData = aOpaqueData.AllocL();
+        }
     iLanguage = aLanguage;
     }
 
--- a/installationservices/swcomponentregistry/source/client/scrclient.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/client/scrclient.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -436,49 +436,22 @@
 	return pluginUid;
 	}
 
-EXPORT_C void RSoftwareComponentRegistry::AddSoftwareTypeL(const TDesC& aUniqueSwTypeName, TUid aSifPluginUid, TSecureId aInstallerSecureId, TSecureId aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypes, const RPointerArray<CLocalizedSoftwareTypeName>* aLocalizedSwTypeNames)
+EXPORT_C void RSoftwareComponentRegistry::AddSoftwareTypeL(const CSoftwareTypeRegInfo& aSwTypeRegInfo)
 	{
-	DEBUG_PRINTF2(_L("Sending add a new software type (%S) request."), &aUniqueSwTypeName);
-	
-	if(!aMimeTypes.Count())
-		{
-		DEBUG_PRINTF(_L("MIME types list cannot be empty!"));
-		User::Leave(KErrArgument);
-		}
-	
-	// Concatenate aSifPluginUid, aInstallerSecureId, and aExecutionLayerSecureId in order to gain spare slots to send other data
-	RBuf8 uidString;
-	uidString.CreateL(3*KUidStringLen); // 3 UIDs will be concatenated
-	uidString.CleanupClosePushL();
-	uidString.AppendNumFixedWidth(aSifPluginUid.iUid, EHex, KUidStringLen);
-	uidString.AppendNumFixedWidth(aInstallerSecureId.iId, EHex, KUidStringLen);
-	uidString.AppendNumFixedWidth(aExecutionLayerSecureId.iId, EHex, KUidStringLen);
-	
-	// Externalize the MIME types of the newly added software type
-	HBufC8* mimeTypesBuf = ExternalizePointersArrayLC(aMimeTypes);
+	if(!aSwTypeRegInfo.MimeTypes().Count())
+	    {
+	    DEBUG_PRINTF(_L("MIME types list cannot be empty!"));
+	    User::Leave(KErrArgument);
+	    }
 	
-	// Externalize the unique and localizable names for the newly added software type
-	const RPointerArray<CLocalizedSoftwareTypeName> *localCopyOfSwTypeNames(0);
-	if(!aLocalizedSwTypeNames)
-		{// if aLocalizedSwTypeNames is not supplied, then create an empty one.
-		localCopyOfSwTypeNames = new(ELeave) RPointerArray<CLocalizedSoftwareTypeName>;
-		CleanupStack::PushL(const_cast<RPointerArray<CLocalizedSoftwareTypeName>* >(localCopyOfSwTypeNames));
-		}
-	else
-		{
-		localCopyOfSwTypeNames = aLocalizedSwTypeNames;
-		}
-	HBufC8* localizedNamesBuf = ExternalizePointersArrayLC(*localCopyOfSwTypeNames);		
-
-	TIpcArgs swTypeArgs(&aUniqueSwTypeName, &uidString, mimeTypesBuf, localizedNamesBuf);
+	RBuf8 buf;
+	buf.CleanupClosePushL();
+	ExternalizeRefObjectL(aSwTypeRegInfo, buf);
+	      
+	TIpcArgs swTypeArgs(&buf);
 	User::LeaveIfError(CallSessionFunction(EAddSoftwareType, swTypeArgs));
-	
-	CleanupStack::PopAndDestroy(localizedNamesBuf);
-	if(!aLocalizedSwTypeNames)
-		{// destroy the localCopyOfSwTypeNames if created locally
-		CleanupStack::PopAndDestroy(const_cast<RPointerArray<CLocalizedSoftwareTypeName>* >(localCopyOfSwTypeNames));
-		}
-	CleanupStack::PopAndDestroy(2, &uidString); // uidString, mimeTypesBuf
+ 
+	CleanupStack::PopAndDestroy();//buf, reginfo
 	}
 
 EXPORT_C void RSoftwareComponentRegistry::DeleteSoftwareTypeL(const TDesC& aUniqueSwTypeName, RPointerArray<HBufC>& aDeletedMimeTypes)
--- a/installationservices/swcomponentregistry/source/client/scrclientsubsessions.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/client/scrclientsubsessions.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -582,7 +582,7 @@
         DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the Application Registration view (Error:%d)"), err);
         User::Leave(err);
         }                
-    DEBUG_PRINTF(_L("Sending the request to create a component view on the server side."));
+    DEBUG_PRINTF(_L("Sending the request to create an applicaiton registry view on the server side."));
     TIpcArgs args(aLocale);
     User::LeaveIfError(CallSubsessionFunction(EOpenApplicationRegistrationInfoView, args));        
     }
@@ -599,7 +599,7 @@
         DEBUG_PRINTF2(_L("Failed to create the subsession to the SCR server for the Application Registration view with specified AppUids (Error:%d)"), err);
         User::Leave(err);
         }                
-    DEBUG_PRINTF(_L("Sending the request to create a component view on the server side."));
+    DEBUG_PRINTF(_L("Sending the request to create an applicaiton registry view on the server side."));
      
     TInt32 size = aAppRegAppUids.Count();
     const TInt32 maxBufSize= sizeof(TInt32)+ size*sizeof(TInt32);   // number of entries +  number of entry * size of AppUid stored as TUid
--- a/installationservices/swcomponentregistry/source/client/screntries.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/client/screntries.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -30,6 +30,7 @@
 #include "usiflog.h"
 #include <scs/streamingarray.h>
 #include <scs/cleanuputils.h>
+#include <usif/scr/screntries_platform.h>
 
 using namespace Usif;
 
@@ -841,6 +842,158 @@
 	return *iVendor;
 	}
 			
+/////////////////////////////
+// TCustomAccessInfo
+/////////////////////////////
+
+EXPORT_C TCustomAccessInfo::TCustomAccessInfo(TSecureId aSecureId, TAccessMode aAccessMode)
+    {
+    iSecureId = aSecureId;
+    iAccessMode = aAccessMode;
+    }
+
+EXPORT_C TSecureId TCustomAccessInfo::SecureId() const
+    {
+    return iSecureId;
+    }
+
+EXPORT_C TAccessMode TCustomAccessInfo::AccessMode() const
+    {
+    return iAccessMode;
+    }
+
+/////////////////////////////
+// CSoftwareTypeRegInfo
+/////////////////////////////
+
+EXPORT_C CSoftwareTypeRegInfo* CSoftwareTypeRegInfo::NewL(const TDesC& aUniqueSoftwareTypeName)
+	{
+	CSoftwareTypeRegInfo* self = new (ELeave) CSoftwareTypeRegInfo();
+	CleanupStack::PushL(self);
+	self->iUniqueSoftwareTypeName = HBufC::NewL(aUniqueSoftwareTypeName.Length());
+	self->iUniqueSoftwareTypeName->Des().Copy(aUniqueSoftwareTypeName);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+EXPORT_C CSoftwareTypeRegInfo* CSoftwareTypeRegInfo::NewL(RReadStream& aStream)
+	{
+	CSoftwareTypeRegInfo* self = new (ELeave) CSoftwareTypeRegInfo();
+	CleanupStack::PushL(self);
+	self->InternalizeL(aStream);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CSoftwareTypeRegInfo::CSoftwareTypeRegInfo()
+	{
+	}
+
+EXPORT_C CSoftwareTypeRegInfo::~CSoftwareTypeRegInfo()
+	{
+	delete iUniqueSoftwareTypeName;
+	iCustomAccessList.Close();
+	iMimeTypes.Close();
+	iLocalizedSoftwareTypeNames.Close();
+	delete iLauncherExecutable;
+	}
+
+EXPORT_C void CSoftwareTypeRegInfo::ExternalizeL(RWriteStream& aStream) const
+	{
+	aStream << *iUniqueSoftwareTypeName;
+	aStream << iSifPluginUid.iUid;
+	
+	//Sids
+	const TInt numSids = iCustomAccessList.Count();
+	aStream.WriteInt32L(numSids);
+	for (TInt i=0; i< numSids; ++i)
+	    {
+	    TUid sid = iCustomAccessList[i].SecureId();
+	    aStream << sid.iUid;
+	    aStream.WriteInt32L(iCustomAccessList[i].AccessMode());
+	    }
+	
+	// MIME types
+	const TInt numMimeTypes = iMimeTypes.Count();
+	aStream.WriteInt32L(numMimeTypes);
+	for (TInt i=0; i<numMimeTypes; ++i)
+		{
+		aStream << *iMimeTypes[i];
+		}
+	 
+	// Localized names
+	const TInt numLocalizedNames = iLocalizedSoftwareTypeNames.Count();
+	aStream.WriteInt32L(numLocalizedNames);
+	for (TInt i=0; i<numLocalizedNames; ++i)
+		{
+		aStream << *iLocalizedSoftwareTypeNames[i];
+		}
+
+	// Launcher executable
+	aStream << *iLauncherExecutable;
+	}
+
+void CSoftwareTypeRegInfo::InternalizeL(RReadStream& aStream)
+	{
+	ASSERT(iUniqueSoftwareTypeName == NULL);
+	
+	iUniqueSoftwareTypeName = HBufC::NewL(aStream, EUniqueSwTypeNameMaxLength);
+	
+	iSifPluginUid = TUid::Uid(aStream.ReadInt32L());
+	
+	// Sids
+	const TInt numSids = aStream.ReadInt32L();
+	for (TInt i=0; i<numSids; ++i)
+	    {
+	    TSecureId secId(TUid::Uid(aStream.ReadInt32L()));
+	    TCustomAccessInfo customAccessInfo(secId, static_cast<TAccessMode>(aStream.ReadInt32L()));
+	    iCustomAccessList.AppendL(customAccessInfo);
+	    }
+	        
+	// MIME types
+	const TInt numMimeTypes = aStream.ReadInt32L();
+	for (TInt i=0; i<numMimeTypes; ++i)
+		{
+		HBufC* mimeType = HBufC::NewLC(aStream, EUniqueSwTypeNameMaxLength);
+		iMimeTypes.AppendL(mimeType);
+		CleanupStack::Pop(mimeType);
+		}
+	
+	// Localized names
+	const TInt numLocalizedNames = aStream.ReadInt32L();
+	for (TInt i=0; i<numLocalizedNames; ++i)
+		{
+		CLocalizedSoftwareTypeName* name = CLocalizedSoftwareTypeName::NewL(aStream);
+		CleanupStack::PushL(name);
+		iLocalizedSoftwareTypeNames.AppendL(name);
+		CleanupStack::Pop(name);
+		}
+
+	iLauncherExecutable = HBufC::NewL(aStream, ELauncherExecutableMaxLength);
+	}
+
+EXPORT_C void CSoftwareTypeRegInfo::SetMimeTypeL(const TDesC& aMimeType)
+	{
+	HBufC* mimeType = HBufC::NewLC(aMimeType.Length());
+	mimeType->Des().Copy(aMimeType);
+	iMimeTypes.AppendL(mimeType);
+	CleanupStack::Pop(mimeType);
+	}
+
+EXPORT_C void CSoftwareTypeRegInfo::SetLocalizedSoftwareTypeNameL(TLanguage aLanguage, const TDesC& aName)
+	{
+	CLocalizedSoftwareTypeName* name = CLocalizedSoftwareTypeName::NewLC(aName, aLanguage);
+	iLocalizedSoftwareTypeNames.AppendL(name);
+	CleanupStack::Pop(name);
+	}
+
+EXPORT_C void CSoftwareTypeRegInfo::SetLauncherExecutableL(const TDesC& aLauncherExecutable)
+    {
+    HBufC* launcherExecutable = HBufC::NewLC(aLauncherExecutable.Length());
+    launcherExecutable->Des().Copy(aLauncherExecutable);
+    iLauncherExecutable = launcherExecutable;
+    CleanupStack::Pop(launcherExecutable);
+    }
 
 /////////////////////////////
 // CComponentFilter
@@ -858,6 +1011,7 @@
 	delete iSwType;
 	delete iFile;
 	iPropertyList.ResetAndDestroy();
+	iPropertyOperatorList.Reset();
 	}
 
 EXPORT_C CComponentFilter* CComponentFilter::NewL()
@@ -954,27 +1108,33 @@
 	iSetFlag |= EInstalledDrive;
 	}
 					
-EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, const TDesC& aValue, TLanguage aLocale)
+EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, const TDesC& aValue, TLanguage aLocale,
+        TDbOperator aNameOperator, TDbOperator aValueOperator)
 	{
 	CPropertyEntry *prop = CLocalizablePropertyEntry::NewLC(aName, aValue, aLocale);
 	iPropertyList.AppendL(prop);
 	CleanupStack::Pop(prop);
+	iPropertyOperatorList.AppendL(TPropertyOperator(aNameOperator, aValueOperator));
 	iSetFlag |= EProperty;
 	}
 
-EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, TInt64 aValue)
+EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, TInt64 aValue, TDbOperator aNameOperator, 
+        TDbOperator aValueOperator)
 	{
 	CPropertyEntry *prop = CIntPropertyEntry::NewLC(aName, aValue);
 	iPropertyList.AppendL(prop);
 	CleanupStack::Pop(prop);
+	iPropertyOperatorList.AppendL(TPropertyOperator(aNameOperator, aValueOperator));
 	iSetFlag |= EProperty;
 	}
 
-EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, const TDesC8& aValue)
+EXPORT_C void CComponentFilter::AddPropertyL(const TDesC& aName, const TDesC8& aValue, TDbOperator aNameOperator, 
+        TDbOperator aValueOperator)
 	{
 	CPropertyEntry *prop = CBinaryPropertyEntry::NewLC(aName, aValue);
 	iPropertyList.AppendL(prop);
 	CleanupStack::Pop(prop);
+	iPropertyOperatorList.AppendL(TPropertyOperator(aNameOperator, aValueOperator));
 	iSetFlag |= EProperty;	
 	}
 
@@ -995,6 +1155,7 @@
 	aStream << iInstalledDrives;
 	aStream << TCardinality(iRemovable);
 	ExternalizePointersArrayL(iPropertyList, aStream);
+	ExternalizeFixedLengthArrayL(iPropertyOperatorList, aStream);
 	aStream << *iFile;
 	aStream << TCardinality(iDrmProtected);
 	aStream << TCardinality(iHidden);
@@ -1019,6 +1180,8 @@
 	iRemovable = c;
 	iPropertyList.Reset();
 	InternalizePointersArrayL(iPropertyList, aStream);
+	iPropertyOperatorList.Reset();
+	InternalizeFixedLengthArrayL(iPropertyOperatorList, aStream);
 	DeleteObjectZ(iFile);
 	iFile = HBufC::NewL(aStream, KMaxTInt); // No restriction on length
 	// Read if it is DRM protected
@@ -1217,3 +1380,31 @@
 	{
 	return iComponentId;
 	}
+
+EXPORT_C CComponentFilter::TPropertyOperator::TPropertyOperator(TDbOperator aNameOperator, TDbOperator aValueOperator):
+        iNameOperator(aNameOperator),
+        iValueOperator(aValueOperator)
+    {
+    }
+
+void CComponentFilter::TPropertyOperator::ExternalizeL(RWriteStream& aStream) const
+    {
+    aStream.WriteInt32L(iNameOperator);
+    aStream.WriteInt32L(iValueOperator);
+    }
+
+EXPORT_C void CComponentFilter::TPropertyOperator::InternalizeL(RReadStream& aStream)
+    {
+    iNameOperator = static_cast<TDbOperator>(aStream.ReadInt32L());
+    iValueOperator = static_cast<TDbOperator>(aStream.ReadInt32L());
+    }
+
+EXPORT_C CComponentFilter::TDbOperator CComponentFilter::TPropertyOperator::NameOperator() const
+    {
+    return iNameOperator;
+    }
+
+EXPORT_C CComponentFilter::TDbOperator CComponentFilter::TPropertyOperator::ValueOperator() const
+    {
+    return iValueOperator;
+    }
--- a/installationservices/swcomponentregistry/source/server/scrrequestimpl.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/server/scrrequestimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -2456,95 +2456,150 @@
 	CleanupStack::PopAndDestroy(&tmp);
 	}
 
-void CScrRequestImpl::GetComponentIdsHavingThePropertiesL(RArray<TComponentId>& aComponentIds, RPointerArray<CPropertyEntry> aProperties, TBool aDoIntersect) const
-	{
-	// GROUP BY is added at the end to avoid fetching twice components which have the same localizable values for different locales
-	_LIT(KFindComponentsFromProperties, "SELECT ComponentId FROM ComponentProperties WHERE Name=? AND %S GROUP BY ComponentId;");
-	_LIT(KPropertyIntValue,"IntValue=?");
-	_LIT(KPropertyStrValue,"StrValue=?");
-	_LIT(KPropertyLocalizedValue,"StrValue=? AND Locale=?");
-			
-	TInt propCount = aProperties.Count();
-
-	HBufC *statementStr(0);
-	RArray<TComponentId> propCompIds;
-	CleanupClosePushL(propCompIds);
-	
-	for(TInt i=0; i<propCount; ++i)
-		{
-		switch(aProperties[i]->PropertyType())
-			{
-			case CPropertyEntry::EIntProperty:
-				statementStr = FormatStatementLC(KFindComponentsFromProperties, KPropertyIntValue().Length(), &KPropertyIntValue());
-				break;
-			case CPropertyEntry::EBinaryProperty:
-				statementStr = FormatStatementLC(KFindComponentsFromProperties, KPropertyStrValue().Length(), &KPropertyStrValue());
-				break;
-			case CPropertyEntry::ELocalizedProperty:
-				{
-				CLocalizablePropertyEntry *localizedProp = static_cast<CLocalizablePropertyEntry *>(aProperties[i]);
-				if (localizedProp->LocaleL() == KUnspecifiedLocale) // If the locale was not specified, then we match across all locales				
-					statementStr = FormatStatementLC(KFindComponentsFromProperties, KPropertyStrValue().Length(), &KPropertyStrValue());
-				else // Otherwise we match for a specific locale
-					statementStr = FormatStatementLC(KFindComponentsFromProperties, KPropertyLocalizedValue().Length(), &KPropertyLocalizedValue());
-				}
-				break;				
-			default:
-				DEBUG_PRINTF(_L8("The property type couldn't be recognized."));
-				User::Leave(KErrAbort);	
-			}
-				
-		CStatement *stmt = iDbHandle->PrepareStatementLC(*statementStr);
-		stmt->BindStrL(1, aProperties[i]->PropertyName());
-				
-		switch(aProperties[i]->PropertyType())
-			{
-			case CPropertyEntry::EIntProperty:
-				{
-				CIntPropertyEntry *intProp = static_cast<CIntPropertyEntry *>(aProperties[i]);
-				stmt->BindInt64L(2, intProp->Int64Value());
-				break;
-				}
-			case CPropertyEntry::EBinaryProperty:
-				{
-				CBinaryPropertyEntry *binaryProp = static_cast<CBinaryPropertyEntry *>(aProperties[i]);
-				stmt->BindBinaryL(2, binaryProp->BinaryValue());
-				break;
-				}
-			case CPropertyEntry::ELocalizedProperty:
-				{
-				CLocalizablePropertyEntry *localizedProp = static_cast<CLocalizablePropertyEntry *>(aProperties[i]);
-				stmt->BindStrL(2, localizedProp->StrValue());
-				if (localizedProp->LocaleL() != KUnspecifiedLocale)
-					stmt->BindIntL(3, localizedProp->LocaleL());
-				break;
-				}
-			default:
-				DEBUG_PRINTF(_L8("The property type couldn't be recognized."));
-				User::Leave(KErrAbort);	
-			}
-		
-		while(stmt->ProcessNextRowL())
-			{
-			User::LeaveIfError(propCompIds.InsertInOrder(stmt->IntColumnL(0)));
-			}
-		
-		CleanupStack::PopAndDestroy(2, statementStr); // stmt, statementStr
-		
-		if (aDoIntersect)
-			{
-			IntersectSortedArraysL(aComponentIds, propCompIds);
-			}
-		else
-			{
-			CopyFixedLengthArrayL(aComponentIds, propCompIds);
-			aDoIntersect = ETrue; // If many properties are present in the filter, we need to intersect the component Ids on further iterations
-			}
-		
-		propCompIds.Reset();
-		}
-	CleanupStack::PopAndDestroy(&propCompIds);
-	}
+void CScrRequestImpl::GetOperatorStringL(CComponentFilter::TDbOperator aOperator, HBufC*& aOperatorString) const
+    {
+    _LIT(KEqualOperator, "=");
+    _LIT(KLikeOperator, "LIKE");
+    
+    switch(aOperator)
+        {
+        case CComponentFilter::EEqual:
+            aOperatorString = KEqualOperator().AllocL();
+            break;
+            
+        case CComponentFilter::ELike:
+            aOperatorString = KLikeOperator().AllocL();
+            break;   
+            
+        default:
+            User::Leave(KErrArgument);
+			        
+        }      
+    }
+
+void CScrRequestImpl::GetComponentIdsHavingThePropertiesL(RArray<TComponentId>& aComponentIds, RPointerArray<CPropertyEntry>& aProperties, 
+                                                              RArray<CComponentFilter::TPropertyOperator>& aPropertyOperatorList, TBool aDoIntersect) const
+    {
+    // GROUP BY is added at the end to avoid fetching twice components which have the same localizable values for different locales
+    
+    _LIT(KFindComponentsFromProperties, "SELECT ComponentId FROM ComponentProperties WHERE NAME %S ? AND %S GROUP BY ComponentId;");
+
+    _LIT(KPropertyIntValue, "IntValue %S ?");
+    _LIT(KPropertyStrValue, "StrValue %S ?");
+    _LIT(KPropertyLocalizedValue, "StrValue %S ? AND Locale = ?");
+            
+    TInt propCount = aProperties.Count();
+
+    RArray<TComponentId> propCompIds;
+    CleanupClosePushL(propCompIds);
+    
+    for(TInt i=0; i<propCount; ++i)
+        {
+        //Retrieve the operators to be used to form this query.
+        CComponentFilter::TPropertyOperator propOperator = aPropertyOperatorList[i];
+       
+	   // Get the name operator.
+	    HBufC* nameOperator(0);
+        GetOperatorStringL(aPropertyOperatorList[i].NameOperator(), nameOperator);
+        CleanupStack::PushL(nameOperator);     
+        
+        // Get the value operator.
+        HBufC* valueOperator(0);
+        GetOperatorStringL(aPropertyOperatorList[i].ValueOperator(), valueOperator);
+        CleanupStack::PushL(valueOperator);
+        
+        // Create the value string based on the property type.
+        HBufC* valueString(0);
+        switch(aProperties[i]->PropertyType())
+            {            
+            case CPropertyEntry::EIntProperty:
+                {
+                valueString = FormatStatementLC(KPropertyIntValue, valueOperator->Length(), valueOperator);               
+                }
+
+                break;
+                
+            case CPropertyEntry::EBinaryProperty:
+                {
+                valueString = FormatStatementLC(KPropertyStrValue, valueOperator->Length(), valueOperator);            
+                }
+
+                break;
+            case CPropertyEntry::ELocalizedProperty:
+                {
+                CLocalizablePropertyEntry *localizedProp = static_cast<CLocalizablePropertyEntry *>(aProperties[i]);
+                if (localizedProp->LocaleL() == KUnspecifiedLocale) // If the locale was not specified, then we match across all locales  
+                    {
+                    valueString = FormatStatementLC(KPropertyStrValue, valueOperator->Length(), valueOperator);        
+                    }
+                else
+                    {
+                    valueString = FormatStatementLC(KPropertyLocalizedValue, valueOperator->Length(), valueOperator);                
+                    }
+                }
+                break;              
+            default:
+                DEBUG_PRINTF(_L8("The property type couldn't be recognized."));
+                User::Leave(KErrAbort); 
+            }
+        
+        // Prepare full statement using the name operator and the value string.
+        HBufC *statementStr = FormatStatementLC(KFindComponentsFromProperties, nameOperator->Length()+ valueString->Length(), 
+                                                    nameOperator, valueString); 
+        
+        // Create Sql statement.
+        CStatement *stmt = iDbHandle->PrepareStatementLC(*statementStr);
+        stmt->BindStrL(1, aProperties[i]->PropertyName());
+                
+        switch(aProperties[i]->PropertyType())
+            {
+            case CPropertyEntry::EIntProperty:
+                {
+                CIntPropertyEntry *intProp = static_cast<CIntPropertyEntry *>(aProperties[i]);
+                stmt->BindInt64L(2, intProp->Int64Value());
+                break;
+                }
+            case CPropertyEntry::EBinaryProperty:
+                {
+                CBinaryPropertyEntry *binaryProp = static_cast<CBinaryPropertyEntry *>(aProperties[i]);
+                stmt->BindBinaryL(2, binaryProp->BinaryValue());
+                break;
+                }
+            case CPropertyEntry::ELocalizedProperty:
+                {
+                CLocalizablePropertyEntry *localizedProp = static_cast<CLocalizablePropertyEntry *>(aProperties[i]);
+                stmt->BindStrL(2, localizedProp->StrValue());
+                if (localizedProp->LocaleL() != KUnspecifiedLocale)
+                    stmt->BindIntL(3, localizedProp->LocaleL());
+                break;
+                }
+            default:
+                DEBUG_PRINTF(_L8("The property type couldn't be recognized."));
+                User::Leave(KErrAbort); 
+            }
+        
+        while(stmt->ProcessNextRowL())
+            {
+            User::LeaveIfError(propCompIds.InsertInOrder(stmt->IntColumnL(0)));
+            }
+        
+        CleanupStack::PopAndDestroy(5, nameOperator);
+        
+        if (aDoIntersect)
+            {
+            IntersectSortedArraysL(aComponentIds, propCompIds);
+            }
+        else
+            {
+            CopyFixedLengthArrayL(aComponentIds, propCompIds);
+            aDoIntersect = ETrue; // If many properties are present in the filter, we need to intersect the component Ids on further iterations
+            }
+        
+        propCompIds.Reset();
+        }
+    CleanupStack::PopAndDestroy(&propCompIds);
+    }
+
 
 void ReallocStatementIfNeededL(RBuf& aStatementStr, TInt aAddedLength)
 	{
@@ -2700,7 +2755,7 @@
 	
 	if(aFilter.iSetFlag & CComponentFilter::EProperty)
 		{
-		GetComponentIdsHavingThePropertiesL(aComponentFilterSuperset, aFilter.iPropertyList, doIntersect);
+		GetComponentIdsHavingThePropertiesL(aComponentFilterSuperset, aFilter.iPropertyList, aFilter.iPropertyOperatorList, doIntersect);
 		// Inside the function, componentIds array is intersected with the components Ids which have the given properties.
 		doIntersect = ETrue;
 		aFilterSupersetInUse = ETrue;
@@ -2790,7 +2845,7 @@
 		  // and the provided names are retrieved from the ComponentLocalizables table.
 		CStatement *stmt = CreateStatementObjectForComponentLocalizablesLC(*aFilter.iName, *aFilter.iVendor, aFilter.iSetFlag, aComponentId);
 		TBool res = stmt->ProcessNextRowL();
-		// If the name and the vendor are not found, it means that there is a defect in this class, the filter shouldn't have returned the component in the first place		
+		// If the name and the vendor are not found, leave with KErrNotFound.
 		__ASSERT_ALWAYS(res, User::Leave(KErrNotFound)); 		
 		DeleteObjectZ(aEntry.iName);
 		aEntry.iName = stmt->StrColumnL(1).AllocL(); // Ownership is transferred to the entry object
@@ -2871,7 +2926,17 @@
 	TLanguage locale = TLanguage(aMessage.Int0());
 	
 	DeleteObjectZ(aEntry);
-	aEntry = GetNextComponentEntryL(*aStmt, *aFilter, locale, aSubsessionContext);
+	
+	TInt err(0);
+	do {
+       TRAP(err, aEntry = GetNextComponentEntryL(*aStmt, *aFilter, locale, aSubsessionContext));
+       }while(err == KErrNotFound);
+	
+	if(KErrNone != err)
+	    {
+        User::Leave(err);
+	    }
+	
 	TInt sizeSlot = 1;
 	if(!aEntry)
 		{
@@ -2898,9 +2963,19 @@
 	TLanguage locale = TLanguage(aMessage.Int1());
 	
 	aEntryList.ResetAndDestroy();
+	CComponentEntry *entry(0);
+	TInt err(0);
 	for(TInt i=0; i<maxArraySize; ++i)
 		{
-		CComponentEntry *entry = GetNextComponentEntryL(*aStmt, *aFilter, locale, aSubsessionContext);
+        do {
+           TRAP(err, entry = GetNextComponentEntryL(*aStmt, *aFilter, locale, aSubsessionContext));
+           }while(err == KErrNotFound);
+        
+        if(KErrNone != err)
+            {
+            User::Leave(err);
+            }		
+        
 		if(!entry)
 			{
 			break;
@@ -2912,6 +2987,7 @@
 	WriteArraySizeL(aMessage, 2, aEntryList);
 	}
 
+
 void CScrRequestImpl::NextComponentSetDataL(const RMessage2& aMessage, RPointerArray<CComponentEntry>& aEntryList) const
 	{
 	DEBUG_PRINTF(_L8("Returning the next component entry set."));
@@ -3121,14 +3197,16 @@
 	return !aLeft.CompareF(aRight);
 	}
 
-TBool CScrRequestImpl::IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, TUint32 aInstallerSecureId, TUint32 aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray)
+TBool CScrRequestImpl::IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, RArray<TCustomAccessInfo>& aSidArray, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray, const TDesC& aLauncherExecutable)
 	{
+	//Check if software type id exists
     if(!IsSoftwareTypeExistingL(aSwTypeId))
         {
         DEBUG_PRINTF2(_L8("IsSoftwareTypeExistingL: Software Type Id (%d) doesn't exist in the SCR."), aSwTypeId);
         return EFalse;
         }
     
+    //Check if sif plugin uid for the software type id is the same 
     TInt pluginUid(0);
     if(!GetSifPluginUidIInternalL(aSwTypeId, pluginUid))
         {
@@ -3141,33 +3219,50 @@
         DEBUG_PRINTF2(_L8("IsSoftwareTypeExistingL: SIF Plugin Uid doesn't match with the one in the SCR."), pluginUid);
         return EFalse;
         }
-        
-    TBool isInstallerSidPresent = EFalse;
-    TBool isExecutionLayerSidPresent = EFalse;
+    
+    //Check if launcher executable for the software type id is the same
+    HBufC *launcherExe;
+    _LIT(KSelectLauncherExecutable, "SELECT LauncherExecutable FROM SoftwareTypes WHERE SoftwareTypeId=?;");
+    CStatement* stmt = iDbHandle->PrepareStatementLC(KSelectLauncherExecutable);
+    stmt->BindIntL(1, aSwTypeId);
+
+    if(stmt->ProcessNextRowL())
+        {
+        launcherExe = stmt->StrColumnL(0).AllocLC();
+        if(launcherExe->Compare(aLauncherExecutable) != 0)
+            {
+            DEBUG_PRINTF(_L8("IsSoftwareTypeExistingL: Launcher Executable doesn't match with the one in the SCR."));
+            CleanupStack::PopAndDestroy(2, stmt);
+            return EFalse;
+            }
+        CleanupStack::PopAndDestroy(2, stmt);
+        }
+    else
+        {
+        DEBUG_PRINTF2(_L8("IsSoftwareTypeExistingL: Launcher Executable doesn't exist in the SCR for TypeId %d."), aSwTypeId);
+        CleanupStack::PopAndDestroy(stmt);
+        return EFalse;
+        }
+            
+    //Check if associated installer sid's for the software type id is the same
+    
     RArray<TSecureId> installerSids;
     CleanupClosePushL(installerSids);
     if(GetSidsForSoftwareTypeIdL(aSwTypeId, installerSids))
         {
-        TInt count = installerSids.Count();
-        for (TInt i = 0; i < count; i++)
+        for(TInt i=0; i<aSidArray.Count(); ++i)
             {
-            if (aInstallerSecureId == installerSids[i])
-                isInstallerSidPresent = ETrue;
-            if (aExecutionLayerSecureId == installerSids[i])
-                isExecutionLayerSidPresent = ETrue;
-
-			if(isInstallerSidPresent && isExecutionLayerSidPresent)
-				break;
+            if(KErrNotFound == installerSids.Find(aSidArray[i].SecureId()))
+                {
+                DEBUG_PRINTF(_L8("IsSoftwareTypeExistingL: One of the Sid doesn't match with the one in the SCR."));
+                CleanupStack::PopAndDestroy(&installerSids);
+                return EFalse;
+                }
             }
         }
     CleanupStack::PopAndDestroy(&installerSids);
     
-	if(!isInstallerSidPresent || !isExecutionLayerSidPresent)
-		{
-		DEBUG_PRINTF(_L8("IsSoftwareTypeExistingL: One of the UIDs is different from the one in the database."));
-		return EFalse;
-		}
-	
+	//Check if localized software type name for the software type id is the same
 	_LIT(KSelectSwTypeNames, "SELECT Locale,Name FROM SoftwareTypeNames WHERE SoftwareTypeId=? AND Locale!=?;");
 	CStatement* stmtNames = iDbHandle->PrepareStatementLC(KSelectSwTypeNames);
 	stmtNames->BindIntL(1, aSwTypeId);
@@ -3194,6 +3289,7 @@
 		return EFalse;
 		}
 	
+	//Check if mime type for the software type id is the same
 	_LIT(KSelectMimeTypes, "SELECT MimeType FROM MimeTypes WHERE SoftwareTypeId=?;");
 	CStatement* stmtMimes = iDbHandle->PrepareStatementLC(KSelectMimeTypes);
 	stmtMimes->BindIntL(1, aSwTypeId);
@@ -3235,54 +3331,46 @@
 	// the software type id of an installer. If the uniqe software type name of the installer is known, its hash
 	// is simply calculated to obtain its software type id.
 	
-	// Slot-0 contains Unique Software Type Name
-	HBufC *uniqueSwTypeName = ReadDescLC(aMessage, 0);
-	TUint32 swTypeId = HashCaseSensitiveL(*uniqueSwTypeName);
-	
-	// Slot-1 contains the concatenated values of SifPluginUid, InstallerSecureId and ExecutionLayerSecureId in turn.
-	HBufC8 *uidString = ReadDesc8LC(aMessage, 1);
+	CSoftwareTypeRegInfo *regInfo = ReadObjectFromMessageLC<CSoftwareTypeRegInfo>(aMessage, 0);
+	
+	HBufC* uniqueSwTypeName = HBufC::NewLC(regInfo->UniqueSoftwareTypeName().Length());
+	uniqueSwTypeName->Des().Copy(regInfo->UniqueSoftwareTypeName());
+
+	TUint32 swTypeId = HashCaseSensitiveL(regInfo->UniqueSoftwareTypeName());
+	    
 	TUint32 sifPluginUid (0);
-	TUint32 installerSecureId (0);
-	TUint32 executionLayerSecureId (0);
-	ParseUidHexStringL(*uidString, sifPluginUid, installerSecureId, executionLayerSecureId);
-	CleanupStack::PopAndDestroy(uidString);
-	
-	// Slot-2 contains the list of MIME types
-	RIpcReadStream mimeTypesReader;
-	CleanupClosePushL(mimeTypesReader);
-	mimeTypesReader.Open(aMessage, 2);
-				
-	RPointerArray<HBufC> mimeTypesArray;
-	CleanupResetAndDestroyPushL(mimeTypesArray);
-	InternalizePointersArrayL(mimeTypesArray, mimeTypesReader);
-	
-	// Slot-3 contains Localized Software Type Names
-	RIpcReadStream localizedNamesReader;
-	CleanupClosePushL(localizedNamesReader);
-	localizedNamesReader.Open(aMessage, 3);
-				
-	RPointerArray<CLocalizedSoftwareTypeName> localizedNamesArray;
-	CleanupResetAndDestroyPushL(localizedNamesArray);
-	InternalizePointersArrayL(localizedNamesArray, localizedNamesReader);
-	
-	if (IsSoftwareTypeExistingL(swTypeId, sifPluginUid, installerSecureId, executionLayerSecureId, mimeTypesArray, localizedNamesArray))
+	sifPluginUid = regInfo->SifPluginUid().iUid;
+	
+	RArray<TCustomAccessInfo> sidArray;
+	sidArray = regInfo->CustomAccessList();
+	
+	RPointerArray<HBufC> mimeTypesArray = regInfo->MimeTypes();
+	
+	RPointerArray<CLocalizedSoftwareTypeName> localizedNamesArray = regInfo->LocalizedSoftwareTypeNames();
+	
+	HBufC* launcherExecutable = HBufC::NewLC(regInfo->LauncherExecutable().Length());
+	launcherExecutable->Des().Copy(regInfo->LauncherExecutable());
+
+	if (IsSoftwareTypeExistingL(swTypeId, sifPluginUid, sidArray, mimeTypesArray, localizedNamesArray, *launcherExecutable))
 		{ // If the software type exists, do nothing and return;	
-		CleanupStack::PopAndDestroy(5, uniqueSwTypeName); // uniqueSwTypeName, mimeTypesReader, mimeTypesArray, localizedNamesReader, localizedNamesArray
+		CleanupStack::PopAndDestroy(3, regInfo); // uniqueSwTypeName, launcherExecutable, regInfo
 		return; 
 		}
 	
 	// First, insert the main record to SoftwareTypes table
-	// TODO: Have to insert the Launcher Executable name here
-	_LIT(KInsertSwType, "INSERT INTO SoftwareTypes(SoftwareTypeId,SifPluginUid) VALUES(?,?);");
-	TInt numberOfValuesSwType = 2;
-	ExecuteStatementL(KInsertSwType(), numberOfValuesSwType, EValueInteger, swTypeId, EValueInteger, sifPluginUid);
+	_LIT(KInsertSwType, "INSERT INTO SoftwareTypes(SoftwareTypeId,SifPluginUid,LauncherExecutable) VALUES(?,?,?);");
+	TInt numberOfValuesSwType = 3;
+	ExecuteStatementL(KInsertSwType(), numberOfValuesSwType, EValueInteger, swTypeId, EValueInteger, sifPluginUid, EValueString, launcherExecutable);
 	
 	_LIT(KInsertCustomAccess, "INSERT INTO CustomAccessList(SoftwareTypeId,SecureId,AccessMode) VALUES(?,?,?);");
 	TInt numberOfValuesCustomAccess = 3;
-	// TODO: This should be modified to insert more than 2 Sids
-	ExecuteStatementL(KInsertCustomAccess(), numberOfValuesCustomAccess, EValueInteger, swTypeId, EValueInteger, installerSecureId, EValueInteger, (TInt)ETransactionalSid);
-	ExecuteStatementL(KInsertCustomAccess(), numberOfValuesCustomAccess, EValueInteger, swTypeId, EValueInteger, executionLayerSecureId, EValueInteger, (TInt)ETransactionalSid);
-	
+	for(TInt i=0; i<sidArray.Count(); ++i)
+		{
+		TUint32 sid = sidArray[i].SecureId();
+		TAccessMode accessMode = sidArray[i].AccessMode();
+		ExecuteStatementL(KInsertCustomAccess(), numberOfValuesCustomAccess, EValueInteger, swTypeId, EValueInteger, sid, EValueInteger, accessMode);
+		}
+
 	// Then, insert MIME types of this software type into MimeTypes table
 	_LIT(KInsertMimeType, "INSERT INTO MimeTypes(SoftwareTypeId,MimeType) VALUES(?,?);");
 	TInt numberOfValuesMimeType = 2;
@@ -3304,7 +3392,7 @@
 		const TDesC& name = localizedNamesArray[i]->NameL();
 		ExecuteStatementL(KInsertSwTypeName(), numberOfValuesSwTypeName, EValueInteger, swTypeId, EValueInteger, locale, EValueString, &name);
 		}	
-	CleanupStack::PopAndDestroy(5, uniqueSwTypeName); // uniqueSwTypeName, mimeTypesReader, mimeTypesArray, localizedNamesReader, localizedNamesArray
+	CleanupStack::PopAndDestroy(3, regInfo); // uniqueSwTypeName, launcherExecutable, regInfo
 	}
 
 void CScrRequestImpl::DeleteSoftwareTypeL(const RMessage2& aMessage)
@@ -3580,30 +3668,37 @@
 void CScrRequestImpl::GetIsComponentPresentL(const RMessage2& aMessage) const
 	{
 	TComponentId componentId = GetComponentIdFromMsgL(aMessage);
-	DEBUG_PRINTF2(_L8("Checking if the component(%d) is available."), componentId);
-	
-	_LIT(KSelectCompPresent, "SELECT CompPresence FROM Components WHERE ComponentId=?;");
-	CStatement *stmt = iDbHandle->PrepareStatementLC(KSelectCompPresent);
-	stmt->BindIntL(1, componentId);
-	if(!stmt->ProcessNextRowL())
-		{
-		DEBUG_PRINTF2(_L8("Component (%d) couldn't be found in the SCR database."), componentId);
-		User::Leave(KErrNotFound);
-		}
-	TBool result = (stmt->IntColumnL(0) == 1);
-	CleanupStack::PopAndDestroy(stmt);
-	
-	// The default value for CompPresence is ETrue. So when we find that the SCR DB contains the 
-	// default property value we check if the drives registered by the component are present.   
-	if (result && !CheckForMediaPresenceL(componentId))
-		{
-		result = EFalse;
-		}
+	TBool result = IsComponentPresentL(componentId);
 				
 	TPckg<TBool> isCompPresent(result);	
 	aMessage.WriteL(1, isCompPresent);	
 	}
 
+
+TBool CScrRequestImpl::IsComponentPresentL(TComponentId componentId) const
+    {
+    DEBUG_PRINTF2(_L8("Checking if the component(%d) is available."), componentId);
+    
+    _LIT(KSelectCompPresent, "SELECT CompPresence FROM Components WHERE ComponentId=?;");
+    CStatement *stmt = iDbHandle->PrepareStatementLC(KSelectCompPresent);
+    stmt->BindIntL(1, componentId);
+    if(!stmt->ProcessNextRowL())
+        {
+        DEBUG_PRINTF2(_L8("Component (%d) couldn't be found in the SCR database."), componentId);
+        User::Leave(KErrNotFound);
+        }
+    TBool result = (stmt->IntColumnL(0) == 1);
+    CleanupStack::PopAndDestroy(stmt);
+    
+    // The default value for CompPresence is ETrue. So when we find that the SCR DB contains the 
+    // default property value we check if the drives registered by the component are present.   
+    if (result && !CheckForMediaPresenceL(componentId))
+        {
+        result = EFalse;
+        }
+    return result;
+    }
+
 void CScrRequestImpl::SetIsComponentPresentL(const RMessage2& aMessage)
 	{
 	DEBUG_PRINTF(_L8("Setting the component as present."));
@@ -3921,32 +4016,44 @@
 
 void CScrRequestImpl::NextAppInfoSizeL(const RMessage2& aMessage, TAppRegInfo*& aAppInfo, CAppInfoViewSubsessionContext* aSubsessionContext)
     {
-    if(aSubsessionContext->iAppInfoIndex < aSubsessionContext->iApps.Count())
+    while(1)
         {
-        TInt count1 = User::CountAllocCells();
-        aAppInfo = new(ELeave) TAppRegInfo;
-        TInt count2 = User::CountAllocCells();        
-        aAppInfo->iUid = (aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex]).iAppUid;
-
-        _LIT(KSelectAppFilename, "SELECT AppFile FROM AppRegistrationInfo WHERE AppUid=?;");
-        CStatement *stmt = iDbHandle->PrepareStatementLC(KSelectAppFilename);
-        stmt->BindIntL(1, aAppInfo->iUid.iUid);
-        stmt->ProcessNextRowL();
-        aAppInfo->iFullName = stmt->StrColumnL(0);
-        CleanupStack::PopAndDestroy(stmt);
-
-        if((aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex]).iLocale != KUnspecifiedLocale)
+        if(aSubsessionContext->iAppInfoIndex < aSubsessionContext->iApps.Count())
             {
-            GetCaptionAndShortCaptionInfoForLocaleL(aAppInfo->iUid, aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex].iLocale, aAppInfo->iShortCaption, aAppInfo->iCaption);
+            TBool isPresent = EFalse;
+            aAppInfo = new(ELeave) TAppRegInfo;               
+            aAppInfo->iUid = (aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex]).iAppUid;
+    
+            _LIT(KSelectAppFilename, "SELECT AppFile FROM AppRegistrationInfo WHERE AppUid=?;");
+            CStatement *stmt = iDbHandle->PrepareStatementLC(KSelectAppFilename);
+            stmt->BindIntL(1, aAppInfo->iUid.iUid);
+            if(stmt->ProcessNextRowL())
+                {
+                isPresent = ETrue;
+                aAppInfo->iFullName = stmt->StrColumnL(0);
+                }                   
+            CleanupStack::PopAndDestroy(stmt);
+            if(isPresent)
+                {
+                if((aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex]).iLocale != KUnspecifiedLocale)
+                    {
+                    GetCaptionAndShortCaptionInfoForLocaleL(aAppInfo->iUid, aSubsessionContext->iApps[aSubsessionContext->iAppInfoIndex].iLocale, aAppInfo->iShortCaption, aAppInfo->iCaption);
+                    }
+                aSubsessionContext->iAppInfoIndex++;
+                WriteObjectSizeL(aMessage, 1, aAppInfo);
+                break;
+                }
+            else
+                {
+                DeleteObjectZ(aAppInfo);
+                aSubsessionContext->iAppInfoIndex++;
+                }        
             }
-        aSubsessionContext->iAppInfoIndex++;
-        }
-    else
-        {
-        DEBUG_PRINTF(_L8("Reached the end of the view."));
-        }
-
-    WriteObjectSizeL(aMessage, 1, aAppInfo);
+        else
+            {
+            break;
+            }
+        }        
     }
 
 void CScrRequestImpl::NextAppInfoDataL(const RMessage2& aMessage, TAppRegInfo*& aAppInfo)
@@ -4182,7 +4289,7 @@
 void CScrRequestImpl::AddOpaqueDataL(TUid aAppUid, Usif::COpaqueData* aOpaqueDataEntry, TUid aServiceUid)
     {
 	DEBUG_PRINTF(_L8("Adding the Opaque Data details into SCR"));
-    const TInt KMaxOpaqueDataLength = 1024;
+    const TInt KMaxOpaqueDataLength = 4096;
     /* AppUid cannot be NULL since this function is invoked from AddApplicationEntryL */ 
     __ASSERT_DEBUG(aAppUid != TUid::Null(), User::Leave(KErrArgument));
     
@@ -4376,7 +4483,15 @@
     aSubsessionContext->iAppUids.Close();
     while(stmt->ProcessNextRowL())
         {
-        aSubsessionContext->iAppUids.AppendL(TUid::Uid(stmt->IntColumnL(0)));                  
+        TUid appUid = TUid::Uid(stmt->IntColumnL(0));
+        TComponentId componentId(0);
+        if(GetComponentIdForAppInternalL(appUid, componentId))
+	    	{
+	    	if(!componentId || IsComponentPresentL(componentId))
+            	{
+            	aSubsessionContext->iAppUids.AppendL(appUid);    
+            	}
+	    	}
         }
     CleanupStack::PopAndDestroy(stmt);  
     }
@@ -4404,10 +4519,14 @@
     for (TInt i =0; i<size ;i++)
         {
         TUid appUid = TUid::Uid(inStream.ReadInt32L());
-        if(CheckIfAppUidExistsL(appUid)) //Append only if AppUid is present in DB.
-            {
-            aSubsessionContext->iAppUids.AppendL(appUid);
-            }
+		TComponentId componentId(0);
+        if(GetComponentIdForAppInternalL(appUid, componentId)) // Check for application presence and fetch the corresponding ComponentId
+	    	{
+	    	if(!componentId || IsComponentPresentL(componentId)) // Check if the component is present
+            	{
+            	aSubsessionContext->iAppUids.AppendL(appUid);    
+            	}
+	    	}
         }
     
     CleanupStack::PopAndDestroy(2,bufToHoldAppUids); //bufToHoldAppUids, inStream
@@ -4448,7 +4567,7 @@
       }
     else
       {
-      DEBUG_PRINTF2(_L8("AppUid %d Not Found in th SCR"),aAppUid);       
+      DEBUG_PRINTF2(_L8("AppUid %d Not Found in the SCR"),aAppUid);       
       CleanupStack::PopAndDestroy(stmt);
       return EFalse;
       }
@@ -4569,43 +4688,54 @@
 
 void CScrRequestImpl::NextApplicationRegistrationInfoSizeL(const RMessage2& aMessage, CApplicationRegistrationData*& aApplicationRegistration, CAppRegistrySubsessionContext*  aSubsessionContext)
     {
-    DeleteObjectZ(aApplicationRegistration);
-    aApplicationRegistration = CApplicationRegistrationData::NewL();
-    if((aSubsessionContext->iAppRegIndex < aSubsessionContext->iAppUids.Count()))
+    while(1)
         {
-        TUid appUid = aSubsessionContext->iAppUids[aSubsessionContext->iAppRegIndex];
-            
-        //Populate the Application Registration Info
-        if(GetApplicationRegistrationInfoL(*aApplicationRegistration,appUid))
+        TBool dataFound = EFalse;
+        DeleteObjectZ(aApplicationRegistration);
+        aApplicationRegistration = CApplicationRegistrationData::NewL();
+        if((aSubsessionContext->iAppRegIndex < aSubsessionContext->iAppUids.Count()))
             {
-            //Populate File ownership info           
-            GetFileOwnershipInfoL(*aApplicationRegistration,appUid);
-               
-            //Populate service info
-            GetServiceInfoL(*aApplicationRegistration, appUid, aSubsessionContext->iLanguage);
-            
-            //Populate localizable appinfo including caption and icon info 
-            //and view data and its caption and icon info.            
-            GetLocalizableAppInfoL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage);
-            
-			GetAppRegOpaqueDataL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage);
-
-            GetAppPropertiesInfoL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage); 
+            TUid appUid = aSubsessionContext->iAppUids[aSubsessionContext->iAppRegIndex];
+                
+            //Populate the Application Registration Info
+            if(GetApplicationRegistrationInfoL(*aApplicationRegistration,appUid))
+                {
+                //Populate File ownership info           
+                GetFileOwnershipInfoL(*aApplicationRegistration,appUid);
+                   
+                //Populate service info
+                GetServiceInfoL(*aApplicationRegistration, appUid, aSubsessionContext->iLanguage);
+                
+                //Populate localizable appinfo including caption and icon info 
+                //and view data and its caption and icon info.            
+                GetLocalizableAppInfoL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage);
+                
+                GetAppRegOpaqueDataL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage);
+    
+                GetAppPropertiesInfoL(*aApplicationRegistration,appUid, aSubsessionContext->iLanguage); 
+                dataFound = ETrue;
+                }
+            else
+                {
+                DeleteObjectZ(aApplicationRegistration);
+                }
+                        
+            //Incrementing the index
+            aSubsessionContext->iAppRegIndex++;
+                        
+            if(dataFound)
+                {
+                WriteObjectSizeL(aMessage, 1, aApplicationRegistration);
+                break;
+                }
             }
         else
             {
+            DEBUG_PRINTF(_L8("Reached the end of the view."));
+            WriteIntValueL(aMessage, 1, 0);                
             DeleteObjectZ(aApplicationRegistration);
+            break;
             }
-        
-        //Incrementing the index
-        aSubsessionContext->iAppRegIndex++;
-        WriteObjectSizeL(aMessage, 1, aApplicationRegistration);  
-        }
-    else
-        {
-        DEBUG_PRINTF(_L8("Reached the end of the view."));
-        WriteIntValueL(aMessage, 1, 0);                
-        DeleteObjectZ(aApplicationRegistration);
         }
     }
 
--- a/installationservices/swcomponentregistry/source/server/scrsession.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/source/server/scrsession.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -400,12 +400,7 @@
 			if(aServer.IsTransactionInProgress())
 				{// A new transaction cannot be started if there is another in progress
 				User::Leave(KErrScrWriteOperationInProgress);
-				}
-			if(aServer.SubsessionCount() && !aServer.IsTheOnlySubsessionOwner(this))
-				{// If there is a subsession owned by another session, it is not allowed to start a new transaction.
-				 // Beacuse it is also not allowed to create a subsession if a transaction owned by another session is in progress.
-				User::Leave(KErrScrReadOperationInProgress);
-				}
+				}			
 			break;
 			}
 		case ERollbackTransaction:
@@ -437,8 +432,7 @@
 		case EAddComponentDependency:
 		case EDeleteComponentDependency:
 		case ESetIsComponentPresent:
-			{ 
-			ApplySubsessionConstraintL(aServer);
+			{ 			
 			// These mutating operations consist of a single mutating database statement.
 			// So, no need to create an implicit transaction
 			TBool createImplicitTransaction = EFalse; 
@@ -455,8 +449,7 @@
 		case EAddApplicationEntry:
 		case EDeleteApplicationEntries:
 		case EDeleteApplicationEntry:
-			{
-			ApplySubsessionConstraintL(aServer);
+			{			
 			// These mutating operations consist of two or more mutating database statements.
 			// Therefore, an implicit transaction is begun if an explicit one doesn't exist.
 			TBool createImplicitTransaction = ETrue; 
@@ -486,19 +479,29 @@
 	@return					New, initialized instance of CScrSubsession, ownership is transferred.
  */
 	{
+
 	TScrSessionFunction f = static_cast<TScrSessionFunction>(aFunction);
-	CScrServer *server = static_cast<CScrServer*>(&iServer);
-	
-	if(server->IsTransactionInProgress() && !server->IsTransactionOwner(this)) 
-		{
-		DEBUG_PRINTF(_L8("Transaction from another session is in progress. Subsession cannot be created!"));
-		User::Leave(KErrScrWriteOperationInProgress);
-		}
-	
+    CScrServer *server = static_cast<CScrServer*>(&iServer);
+    
 	switch(f)
 		{
+	    // Allow read operation even if another transaction is in progress for these views.
 		case ESubSessCreateComponentsView:
 			return CComponentViewSubsession::NewL(*this);
+        case ESubSessCreateAppRegistryView:
+            return CAppRegistrySubsession::NewL(*this);
+		}
+		
+	 // A read operation is disallowed for the following views incase a transaction from another session 
+	 // is already in progress. 
+    if(server->IsTransactionInProgress() && !server->IsTransactionOwner(this)) 
+        {
+        DEBUG_PRINTF(_L8("Transaction from another session is in progress. Subsession cannot be created!"));
+        User::Leave(KErrScrWriteOperationInProgress);
+        }   
+    
+	switch(f)
+	    {  
 		case ESubSessCreateFileList:
 			return CFileListSubsession::NewL(*this);
 		case ESubSessCreateAppInfoView:
@@ -507,8 +510,6 @@
 			return CApplicationRegInfoSubsession::NewL(*this);
 		case ESubSessCreateRegInfoForApp:
 		    return CRegInfoForApplicationSubsession::NewL(*this);
-		case ESubSessCreateAppRegistryView:
-		    return CAppRegistrySubsession::NewL(*this);
 		default:
 			User::Leave(KErrNotSupported);
 			/*lint -unreachable */
Binary file installationservices/swcomponentregistry/test/testdb/scr.db has changed
--- a/installationservices/swcomponentregistry/test/tscr/scripts/tscr.ini	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/scripts/tscr.ini	Fri Jun 11 13:45:18 2010 +0300
@@ -3147,6 +3147,8 @@
 [add_localized_software_type_with_missing_mime]
 OperationType=LocalizedMissingMime
 
+[add_multiple_sid_with_launcher_executable]
+OperationType=MultipleSidAndLauncherExecutable
 
 // SEC-SCR-API-0064
 [drives_management_register_files]
--- a/installationservices/swcomponentregistry/test/tscr/scripts/tscr.script	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/scripts/tscr.script	Fri Jun 11 13:45:18 2010 +0300
@@ -22,3 +22,4 @@
 RUN_SCRIPT z:\tusif\tscr\tscr_versioning.script
 RUN_SCRIPT z:\tusif\tscr\tscr_appreginfo.script
 RUN_SCRIPT z:\tusif\tscr\tscrapparc.script
+
--- a/installationservices/swcomponentregistry/test/tscr/scripts/tscr_api.script	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/scripts/tscr_api.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -538,7 +538,7 @@
 START_TESTCASE API-SEC-SCR-API-0031
 
 // First, try to create a reading sub-session while a transaction owned by another session is in progress
-RUN_TEST_STEP !Result=-10320 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini begin_before_subsession
+RUN_TEST_STEP 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini begin_before_subsession
 // Then, try to create a reading sub-session while a transaction owned by the same session is in progress
 // Also, try creating a transaction while a sub-session is in progress (opposite order)
 RUN_TEST_STEP 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini open_reading_in_same_session
@@ -552,9 +552,9 @@
 START_TESTCASE API-SEC-SCR-API-0032
 
 // First, try to begin a transaction while a reading sub-session created in another session is in progress
-RUN_TEST_STEP !Result=-10321 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini begin_after_subsession
+RUN_TEST_STEP 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini begin_after_subsession
 // Try doing a mutating operation while a subsession is in progress
-RUN_TEST_STEP !Result=-10321 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini mutating_operation_with_subsession
+RUN_TEST_STEP 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini mutating_operation_with_subsession
 // Then, try to begin a transaction while a reading sub-session created in the same session is in progress
 RUN_TEST_STEP 100 tscr SCRCreateTransaction z:\tusif\tscr\tscr.ini begin_after_subsession_in_same_session
 
@@ -1161,7 +1161,8 @@
 RUN_TEST_STEP 100 tscr SCRAddSoftwareType z:\tusif\tscr\tscr.ini add_localized_software_type_with_missing_name
 RUN_TEST_STEP 100 tscr SCRAddSoftwareType z:\tusif\tscr\tscr.ini add_localized_software_type_with_extra_mime
 RUN_TEST_STEP 100 tscr SCRAddSoftwareType z:\tusif\tscr\tscr.ini add_localized_software_type_with_missing_mime
-
+// Add multiple sid with launcher executable
+RUN_TEST_STEP 100 tscr SCRAddSoftwareType z:\tusif\tscr\tscr.ini add_multiple_sid_with_launcher_executable
 END_TESTCASE API-SEC-SCR-API-0063
 
 
--- a/installationservices/swcomponentregistry/test/tscr/scripts/tscr_performance.script	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/scripts/tscr_performance.script	Fri Jun 11 13:45:18 2010 +0300
@@ -46,3 +46,5 @@
 RUN_TEST_STEP 100 tscr SCRCopyDbFile z:\tusif\tscr\tscr.ini scr_restore_db
 RUN_TEST_STEP 100 tscr SCRDeleteDbFile z:\tusif\tscr\tscr.ini backup_file 
 
+// Run scr performance with app registration info
+RUN_SCRIPT z:\tusif\tscr\tscr_app_performance_cases.script
--- a/installationservices/swcomponentregistry/test/tscr/source/pluginmanagementsteps.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/source/pluginmanagementsteps.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -47,6 +47,7 @@
 	_LIT(KLocalizedSwTypeMissingName, "LocalizedWithMissingName");
 	_LIT(KLocalizedSwTypeExtraMime, "LocalizedExtraMime");
 	_LIT(KLocalizedSwTypeMissingMime, "LocalizedMissingMime");
+	_LIT(KMultipleSidAndLauncherExecutable, "MultipleSidAndLauncherExecutable");
 	
 	RScrAccessor::TAccessorOperationResult opResult = RScrAccessor::EOpSucessful;
 	
@@ -87,6 +88,10 @@
 		{
 		iScrAccessor.AddSoftwareTypeL(RScrAccessor::EAddLocalizedSoftwareTypeWithMissingMime, opResult, iTimeMeasuredExternally);
 		}
+	else if(KMultipleSidAndLauncherExecutable() == operationType)
+	    {
+	    iScrAccessor.AddSoftwareTypeL(RScrAccessor::EAddMultipleSidWithLauncherExecutable, opResult, iTimeMeasuredExternally);
+	    }
 	else
 		{
 		ERR_PRINTF2(_L("The operation type (%S) couldn't be recognised!"), &operationType);
--- a/installationservices/swcomponentregistry/test/tscr/source/subsessionsteps.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/source/subsessionsteps.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -388,6 +388,8 @@
     // Check if we need to verify the returned components
     // Performance tests don't need verification.
     TBool isVerification = EFalse;
+    TInt noOfEntriesMatched = 0;
+    TInt totalExpectedEntriesCount = aExpectedEntries.Count();
     GetBoolFromConfig(ConfigSection(), _L("IsVerification"), isVerification);
     while (1)
             {
@@ -396,7 +398,7 @@
             TInt returnedAppRegInfoCount = appRegInfoSet.Count(); 
             if (returnedAppRegInfoCount <= 0)
                 {
-                INFO_PRINTF2(_L("May be negative case... no entries found ...Entries count read is %d "),returnedAppRegInfoCount);
+                INFO_PRINTF2(_L("May be negative case... no entries found ...Entries count read is %d "),returnedAppRegInfoCount);                
 				appRegInfoSet.Close();
                 break;
                 }
@@ -418,28 +420,20 @@
                     
             for (TInt i = 0; i < returnedAppRegInfoCount; ++i)
                 {
-                if (!VerifyMatchingL(appRegInfoSet[i], aExpectedEntries))
-                   {
-                   
-                   SetTestStepResult(EFail);
-                   ERR_PRINTF2(_L("The API returned an unexpected entry with id 0x%x "), appRegInfoSet[i]->Uid());
-                   TAppRegInfo* tp=NULL;
-                   for (TInt i = 0; i<returnedAppRegInfoCount; i++ )
-                       {
-                       tp=appRegInfoSet[i];
-                       delete tp;
-                       }
-                   appRegInfoSet.Close();
-                   return;
-                   }
-                }
-                                TAppRegInfo* tp=NULL;
-                               for (TInt i = 0; i<returnedAppRegInfoCount; i++ )
-                                   {
-                               tp=appRegInfoSet[i];
-                               delete tp;
-                                   }
-            appRegInfoSet.Close();
+                if (VerifyMatchingL(appRegInfoSet[i], aExpectedEntries))                    
+                    {                                          
+                    ++noOfEntriesMatched;
+                    }
+                }            
+            TAppRegInfo* tp=NULL;
+            for(TInt i = 0; i<returnedAppRegInfoCount; ++i)
+               {
+               tp=appRegInfoSet[i];
+               delete tp;
+               }
+            appRegInfoSet.Close();     
+            if(noOfEntriesMatched == totalExpectedEntriesCount)
+                break;
             }
         
     VerifyNonReturnedEntriesL(aExpectedEntries); 
@@ -490,8 +484,8 @@
 	if(appinfoFilter)
 	    delete appinfoFilter;
 
-	TRAPD(err1,TestSessionL(noOfEntries, subSession, expectedAppRegEntries));
-	
+    TRAPD(err1,TestSessionL(noOfEntries, subSession, expectedAppRegEntries));
+
 	TInt count = expectedAppRegEntries.Count();
 	TAppRegInfo* tp=NULL;
 	for (TInt i = 0; i<count; i++ )
--- a/installationservices/swcomponentregistry/test/tscr/source/transactionmanagementsteps.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/source/transactionmanagementsteps.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -164,7 +164,7 @@
 		OpenSessionLC(session2);
 		OpenSubsessionLC(session1, subsession);
 		CreateTransactionL(session2);
-		CleanupStack::PopAndDestroy(3, &subsession);
+		CleanupStack::PopAndDestroy(3, &session1);
 		}
 	
 	TBool isBeginTransactionInTheSameSession(EFalse);
@@ -174,7 +174,7 @@
 		OpenSessionLC(session1);
 		OpenSubsessionLC(session1, subsession);
 		CreateTransactionL(session1);
-		CleanupStack::PopAndDestroy(2, &subsession);
+		CleanupStack::PopAndDestroy(2, &session1);
 		}
 		
 	TBool isBeginAfterAnotherBegin(EFalse);
--- a/installationservices/swcomponentregistry/test/tscraccessor/inc/tscraccessor_client.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscraccessor/inc/tscraccessor_client.h	Fri Jun 11 13:45:18 2010 +0300
@@ -43,6 +43,7 @@
 		EAddLocalizedSoftwareTypeWithMissingName,
 		EAddLocalizedSoftwareTypeWithExtraMime,
 		EAddLocalizedSoftwareTypeWithMissingMime,
+		EAddMultipleSidWithLauncherExecutable
 		};
 	
 	enum TAccessorOperationResult
--- a/installationservices/swcomponentregistry/test/tscraccessor/source/tscraccessor_server_session.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscraccessor/source/tscraccessor_server_session.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -31,7 +31,7 @@
 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <scs/cleanuputils.h>
 #include <usif/usiferror.h>
-
+#include <usif/scr/screntries_platform.h>
 using namespace Usif;
 
 /////////////////////// Utility functions //////////////////////////////
@@ -167,7 +167,7 @@
 	CleanupStack::PopAndDestroy(&buf);
 	}
 
-TInt AddSoftwareTypeL(RSoftwareComponentRegistry& aScrSession, const TDesC& aUniqueSwTypeName, TUid aSifPluginUid, TSecureId aInstallerSid, TSecureId aExecutionLayerSid, const TDesC& aBaseMimeTypeName, TInt aMimeTypeNum, const TDesC& aBaseSwTypeName, TInt aSwTypesNum, RScrAccessor::TAccessorOperationResult& aOpResult)
+TInt AddSoftwareTypeL(RSoftwareComponentRegistry& aScrSession, const TDesC& aUniqueSwTypeName, TUid aSifPluginUid, RArray<TCustomAccessInfo> aInstallerSids, const TDesC& aBaseMimeTypeName, TInt aMimeTypeNum, const TDesC& aBaseSwTypeName, TInt aSwTypesNum, const TDesC& aLauncherExecutable, RScrAccessor::TAccessorOperationResult& aOpResult)
 	{
 	RPointerArray<HBufC> mimeTypesArray;
 	CleanupResetAndDestroyPushL(mimeTypesArray);
@@ -186,9 +186,33 @@
 	else
 		mimeType2BChecked = KNullDesC().AllocLC();
 	
-	TRAPD(err, aScrSession.AddSoftwareTypeL(aUniqueSwTypeName, aSifPluginUid, aInstallerSid, aExecutionLayerSid, mimeTypesArray, plocalizedSwNames));
+	Usif::CSoftwareTypeRegInfo* swType = Usif::CSoftwareTypeRegInfo::NewL(aUniqueSwTypeName);
+	CleanupStack::PushL(swType);
+	swType->SetSifPluginUid(aSifPluginUid);
+	for(TInt i=0;i<aInstallerSids.Count(); ++i)
+		{
+		swType->SetCustomAccessL(aInstallerSids[i]);
+		}
+	if(aMimeTypeNum)
+	    {
+	    for(TInt i=0;i<mimeTypesArray.Count(); ++i)
+	        {
+	        swType->SetMimeTypeL(mimeTypesArray[i]->Des());
+	        }
+        }
+	
+	swType->SetLauncherExecutableL(aLauncherExecutable);
+	if(plocalizedSwNames)
+	    {
+	    for(TInt i=0;i<plocalizedSwNames->Count(); ++i)
+	        {
+	        swType->SetLocalizedSoftwareTypeNameL(plocalizedSwNames->operator [](i)->Locale(), plocalizedSwNames->operator [](i)->NameL());
+	        }
+	    }
+	
+	TRAPD(err, aScrSession.AddSoftwareTypeL(*swType));
 	VerifySoftwareTypeAdditionL(err, aOpResult, aScrSession, *mimeType2BChecked, aSifPluginUid);
-	CleanupStack::PopAndDestroy(3, &mimeTypesArray); // mimeTypesArray, localizedSwNames, mimeType2BChecked
+	CleanupStack::PopAndDestroy(4, &mimeTypesArray); // mimeTypesArray, localizedSwNames, mimeType2BChecked
 	return err;
 	}
 
@@ -217,7 +241,12 @@
 			RScrAccessor::TAccessorOperationType opType = static_cast<RScrAccessor::TAccessorOperationType>(aMessage.Int0());
 			
 			TUid localizedSifPluginUid = {0xA01B7222};
-			_LIT_SECURE_ID(localizedInstallerSid, 0x10285BC9);					
+			RArray<TCustomAccessInfo> locSidArray;
+			CleanupClosePushL(locSidArray);
+			               
+			TCustomAccessInfo id1(TSecureId(0x10285BC9), static_cast<TAccessMode>(1));
+			locSidArray.AppendL(id1);
+			                    
 			_LIT(KMimeTypeBaseNameLocalized, "test_mimetype_localizedinstaller");
 			_LIT(KSwTypeBaseLocalizableName, "test_localizedinstaller_name");
 			_LIT(KSwTypeUniqueNameLocalized, "test_localizedinstaller_uniquename");
@@ -227,67 +256,100 @@
 				case RScrAccessor::EAddNonLocalizedSoftwareType:
 					{	
 					TUid sifPluginUid = {0xA01B7211};
-					_LIT_SECURE_ID(installerSid, 0x10285BC9);
-					_LIT_SECURE_ID(executionLayerSid, 0xAAEEDD11);
-					
+			
+					RArray<TCustomAccessInfo> sidArray;
+					CleanupClosePushL(sidArray);
+					    
+					TCustomAccessInfo id1(TSecureId(0x10285BC9), static_cast<TAccessMode>(1));
+					TCustomAccessInfo id2(TSecureId(0xAAEEDD11), static_cast<TAccessMode>(1));
+					sidArray.AppendL(id1);
+					sidArray.AppendL(id2);
+					    
 					_LIT(KMimeTypeBaseName, "test_mimetype_nonlocalizedinstaller");
 					_LIT(KSwTypeUniqueName, "test_nonlocalizedinstaller_uniquename");
 										
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueName, sifPluginUid, installerSid, executionLayerSid, KMimeTypeBaseName, 2, KNullDesC, 0, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueName, sifPluginUid, sidArray,  KMimeTypeBaseName, 2, KNullDesC, 0, KNullDesC, opResult);
+					CleanupStack::PopAndDestroy(&sidArray);
 					break;
 					}
 				case RScrAccessor::EAddLocalizedSoftwareType:
 					{
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 2, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 2, KNullDesC, opResult);
 					break;
 					}
 				case RScrAccessor::EAddSofwtareTypeWithoutMimeTypes:
 					{
 					TUid sifPluginUid = {0xA01B7333};
-					_LIT_SECURE_ID(installerSid, 0x10285BC9);
-										
+					RArray<TCustomAccessInfo> sidArray;
+					CleanupClosePushL(sidArray);
+					                    
+					TCustomAccessInfo id1(TSecureId(0x10285BC9), static_cast<TAccessMode>(1));
+					sidArray.AppendL(id1);	
 					_LIT(KSwTypeUniqueName, "test_nomimeinstaller_uniquename");
 					
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueName, sifPluginUid, installerSid, installerSid, KNullDesC, 0, KNullDesC, 0, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueName, sifPluginUid, sidArray, KNullDesC, 0, KNullDesC, 0, KNullDesC, opResult);
+					CleanupStack::PopAndDestroy(&sidArray);
 					break;
 					} 
 				case RScrAccessor::EAddLocalizedSoftwareTypeWithDifferentPluginUid:
 					{
 					TUid localizedDifferentSifPluginUid = {0xCC1B7333};
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedDifferentSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 2, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedDifferentSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 2, KNullDesC, opResult);
 					if(KErrAlreadyExists == err)
 						err = KErrNone; // The expected result is KErrAlreadyExists. So return no error to the test client.
 					break;
 					}
 				case RScrAccessor::EAddLocalizedSoftwareTypeWithExtraName:
 					{
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 3, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 3, KNullDesC, opResult);
 					if(KErrAlreadyExists == err)
 						err = KErrNone; // The expected result is KErrAlreadyExists. So return no error to the test client.
 					break;
 					}
 				case RScrAccessor::EAddLocalizedSoftwareTypeWithMissingName:
 					{
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 1, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 2, KSwTypeBaseLocalizableName, 1, KNullDesC, opResult);
 					if(KErrAlreadyExists == err)
 						err = KErrNone; // The expected result is KErrAlreadyExists. So return no error to the test client.
 					break;
 					}
 				case RScrAccessor::EAddLocalizedSoftwareTypeWithExtraMime:
 					{
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 3, KSwTypeBaseLocalizableName, 2, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 3, KSwTypeBaseLocalizableName, 2, KNullDesC, opResult);
 					if(KErrAlreadyExists == err)
 						err = KErrNone; // The expected result is KErrAlreadyExists. So return no error to the test client.
 					break;
 					}
 				case RScrAccessor::EAddLocalizedSoftwareTypeWithMissingMime:
 					{
-					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, localizedInstallerSid, localizedInstallerSid, KMimeTypeBaseNameLocalized, 1, KSwTypeBaseLocalizableName, 2, opResult);
+					err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueNameLocalized, localizedSifPluginUid, locSidArray, KMimeTypeBaseNameLocalized, 1, KSwTypeBaseLocalizableName, 2, KNullDesC, opResult);
 					if(KErrAlreadyExists == err)
 						err = KErrNone; // The expected result is KErrAlreadyExists. So return no error to the test client.
 					break;
-					}				
+					}
+				case RScrAccessor::EAddMultipleSidWithLauncherExecutable:
+				    {
+				    TUid sifPluginUid = {0xA01B7212};
+				    _LIT(KSwTypeUniqueName, "test_uniquename");
+				    _LIT(KMimeTypeBaseName, "test_mimetype");
+				    _LIT(KLauncherExecutable, "LauncherExecutable");
+				    RArray<TCustomAccessInfo> sidArray;
+				    CleanupClosePushL(sidArray);
+				                            
+				    TCustomAccessInfo id1(TSecureId(0x10285BC9), static_cast<TAccessMode>(1));
+				    TCustomAccessInfo id2(TSecureId(0xAAEEDD11), static_cast<TAccessMode>(1));
+				    TCustomAccessInfo id3(TSecureId(0xAAEEEE11), static_cast<TAccessMode>(1));
+
+				    sidArray.AppendL(id1);
+				    sidArray.AppendL(id2);
+				    sidArray.AppendL(id3);
+				    
+				    err = AddSoftwareTypeL(Server().ScrSession(), KSwTypeUniqueName, sifPluginUid, sidArray, KMimeTypeBaseName, 1, KNullDesC, 0, KLauncherExecutable, opResult);
+				    CleanupStack::PopAndDestroy(&sidArray);
+				    break;
+				    }
 				} // switch(opType)
+			CleanupStack::PopAndDestroy(&locSidArray);
 			actualTestDuration = StopTimer(timer);
 			break;
 			}
--- a/installationservices/swcomponentregistry/test/tscrapparc/source/appreginfoapparcsteps.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscrapparc/source/appreginfoapparcsteps.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1093,6 +1093,10 @@
         isFinish = ETrue;
         }
         
+    if(isFinish)
+        {
+        break;
+        }
     
     if (count != actualAppRegDataCount)
         {
@@ -1118,7 +1122,7 @@
       index++;
         }
     
-    if(isFinish || isError)
+    if(isError)
         {
         break;
         }    
--- a/installationservices/swi/bwins/sislauncherclientU.DEF	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/bwins/sislauncherclientU.DEF	Fri Jun 11 13:45:18 2010 +0300
@@ -10,7 +10,7 @@
 	?StartDocumentL@RSisLauncherSession@Swi@@QAEXABVTDesC16@@H@Z @ 9 NONAME ; void Swi::RSisLauncherSession::StartDocumentL(class TDesC16 const &, int)
 	?NotifyNewAppsL@RSisLauncherSession@Swi@@QAEXABV?$RPointerArray@VTDesC16@@@@@Z @ 10 NONAME ; void Swi::RSisLauncherSession::NotifyNewAppsL(class RPointerArray<class TDesC16> const &)
 	?CheckApplicationInUseL@RSisLauncherSession@Swi@@QAEXVTUid@@@Z @ 11 NONAME ABSENT ; void Swi::RSisLauncherSession::CheckApplicationInUseL(class TUid)
-	?ParseSwTypeRegFileL@RSisLauncherSession@Swi@@QAEXAAVRFile@@AAV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@@Z @ 12 NONAME ; void Swi::RSisLauncherSession::ParseSwTypeRegFileL(class RFile &, class RPointerArray<class Swi::CSoftwareTypeRegInfo> &)
+	?ParseSwTypeRegFileL@RSisLauncherSession@Swi@@QAEXAAVRFile@@AAV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@@Z @ 12 NONAME ; void Swi::RSisLauncherSession::ParseSwTypeRegFileL(class RFile &, class RPointerArray<class USif::CSoftwareTypeRegInfo> &)
 	?UnregisterSifLauncherMimeTypesL@RSisLauncherSession@Swi@@QAEXABV?$RPointerArray@VHBufC8@@@@@Z @ 13 NONAME ; void Swi::RSisLauncherSession::UnregisterSifLauncherMimeTypesL(class RPointerArray<class HBufC8> const &)
 	?RegisterSifLauncherMimeTypesL@RSisLauncherSession@Swi@@QAEXABV?$RPointerArray@VHBufC8@@@@@Z @ 14 NONAME ; void Swi::RSisLauncherSession::RegisterSifLauncherMimeTypesL(class RPointerArray<class HBufC8> const &)
 	?RunAfterEcomNotificationL@RSisLauncherSession@Swi@@QAEXABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@@Z @ 15 NONAME ; void Swi::RSisLauncherSession::RunAfterEcomNotificationL(class RPointerArray<class Swi::CSisRegistryFileDescription> const &)
--- a/installationservices/swi/bwins/sisregistryclient_v2U.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/bwins/sisregistryclient_v2U.def	Fri Jun 11 13:45:18 2010 +0300
@@ -182,8 +182,8 @@
 	?RollbackTransactionL@RSisRegistryWritableSession@Swi@@QAEXXZ @ 181 NONAME ; void Swi::RSisRegistryWritableSession::RollbackTransactionL(void)
 	?SerializedSize@CSisRegistryFileDescription@Swi@@QBEKXZ @ 182 NONAME ; unsigned long Swi::CSisRegistryFileDescription::SerializedSize(void) const
 	?IsFileRegisteredL@RSisRegistrySession@Swi@@QAEHABVTDesC16@@@Z @ 183 NONAME ; int Swi::RSisRegistrySession::IsFileRegisteredL(class TDesC16 const &)
-	?UpdateEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplication@2@ABVTDesC8@@ABV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@_J@Z @ 184 NONAME ; void Swi::RSisRegistryWritableSession::UpdateEntryL(class Swi::CApplication const &, class TDesC8 const &, class RPointerArray<class Swi::CSoftwareTypeRegInfo> const &, long long)
-	?AddEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplication@2@ABVTDesC8@@ABV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@_J@Z @ 185 NONAME ; void Swi::RSisRegistryWritableSession::AddEntryL(class Swi::CApplication const &, class TDesC8 const &, class RPointerArray<class Swi::CSoftwareTypeRegInfo> const &, long long)
+	?UpdateEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplication@2@ABVTDesC8@@ABV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@_J@Z @ 184 NONAME ; void Swi::RSisRegistryWritableSession::UpdateEntryL(class Swi::CApplication const &, class TDesC8 const &, class RPointerArray<class Usif::CSoftwareTypeRegInfo> const &, long long)
+	?AddEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplication@2@ABVTDesC8@@ABV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@_J@Z @ 185 NONAME ; void Swi::RSisRegistryWritableSession::AddEntryL(class Swi::CApplication const &, class TDesC8 const &, class RPointerArray<class Usif::CSoftwareTypeRegInfo> const &, long long)
 	?GetComponentIdForUidL@RSisRegistrySession@Swi@@QAEHABVTUid@@@Z @ 186 NONAME ; int Swi::RSisRegistrySession::GetComponentIdForUidL(class TUid const &)
 	?SetNameL@CSisRegistryPackage@Swi@@QAEXABVTDesC16@@@Z @ 187 NONAME ; void Swi::CSisRegistryPackage::SetNameL(class TDesC16 const &)
 	??0RSisRegistryHelper@Swi@@QAE@XZ @ 188 NONAME ABSENT ; Swi::RSisRegistryHelper::RSisRegistryHelper(void)
--- a/installationservices/swi/bwins/swtypereginfou.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/bwins/swtypereginfou.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,7 @@
 EXPORTS
-	?SetLocalizedSoftwareTypeNameL@CSoftwareTypeRegInfo@Swi@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 1 NONAME ; void Swi::CSoftwareTypeRegInfo::SetLocalizedSoftwareTypeNameL(enum TLanguage, class TDesC16 const &)
-	?UnserializeUniqueSwTypeNamesL@SoftwareTypeRegInfoUtils@Swi@@SAXABVTDesC16@@AAV?$RArray@VTPtrC16@@@@@Z @ 2 NONAME ; void Swi::SoftwareTypeRegInfoUtils::UnserializeUniqueSwTypeNamesL(class TDesC16 const &, class RArray<class TPtrC16> &)
-	??1CLocalizedSoftwareTypeName@Swi@@UAE@XZ @ 3 NONAME ; Swi::CLocalizedSoftwareTypeName::~CLocalizedSoftwareTypeName(void)
-	?ExternalizeL@CLocalizedSoftwareTypeName@Swi@@QBEXAAVRWriteStream@@@Z @ 4 NONAME ; void Swi::CLocalizedSoftwareTypeName::ExternalizeL(class RWriteStream &) const
-	?SerializeArrayL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@AAVRBuf8@@@Z @ 5 NONAME ; void Swi::SoftwareTypeRegInfoUtils::SerializeArrayL(class RPointerArray<class Swi::CSoftwareTypeRegInfo> const &, class RBuf8 &)
-	?NewL@CLocalizedSoftwareTypeName@Swi@@SAPAV12@AAVRReadStream@@@Z @ 6 NONAME ; class Swi::CLocalizedSoftwareTypeName * Swi::CLocalizedSoftwareTypeName::NewL(class RReadStream &)
-	?SerializeUniqueSwTypeNamesL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@AAVRBuf16@@@Z @ 7 NONAME ; void Swi::SoftwareTypeRegInfoUtils::SerializeUniqueSwTypeNamesL(class RPointerArray<class Swi::CSoftwareTypeRegInfo> const &, class RBuf16 &)
-	??1CSoftwareTypeRegInfo@Swi@@UAE@XZ @ 8 NONAME ; Swi::CSoftwareTypeRegInfo::~CSoftwareTypeRegInfo(void)
-	?UnserializeArrayL@SoftwareTypeRegInfoUtils@Swi@@SAXAAVRReadStream@@AAV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@@Z @ 9 NONAME ; void Swi::SoftwareTypeRegInfoUtils::UnserializeArrayL(class RReadStream &, class RPointerArray<class Swi::CSoftwareTypeRegInfo> &)
-	?NewL@CLocalizedSoftwareTypeName@Swi@@SAPAV12@ABVTDesC16@@W4TLanguage@@@Z @ 10 NONAME ; class Swi::CLocalizedSoftwareTypeName * Swi::CLocalizedSoftwareTypeName::NewL(class TDesC16 const &, enum TLanguage)
-	?NewL@CSoftwareTypeRegInfo@Swi@@SAPAV12@ABVTDesC16@@@Z @ 11 NONAME ; class Swi::CSoftwareTypeRegInfo * Swi::CSoftwareTypeRegInfo::NewL(class TDesC16 const &)
-	?NewL@CSoftwareTypeRegInfo@Swi@@SAPAV12@AAVRReadStream@@@Z @ 12 NONAME ; class Swi::CSoftwareTypeRegInfo * Swi::CSoftwareTypeRegInfo::NewL(class RReadStream &)
-	?ExtractMimeTypesL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Swi@@@@AAV?$RPointerArray@VHBufC8@@@@@Z @ 13 NONAME ; void Swi::SoftwareTypeRegInfoUtils::ExtractMimeTypesL(class RPointerArray<class Swi::CSoftwareTypeRegInfo> const &, class RPointerArray<class HBufC8> &)
-	?ExternalizeL@CSoftwareTypeRegInfo@Swi@@QBEXAAVRWriteStream@@@Z @ 14 NONAME ; void Swi::CSoftwareTypeRegInfo::ExternalizeL(class RWriteStream &) const
-	?NewLC@CLocalizedSoftwareTypeName@Swi@@SAPAV12@ABVTDesC16@@W4TLanguage@@@Z @ 15 NONAME ; class Swi::CLocalizedSoftwareTypeName * Swi::CLocalizedSoftwareTypeName::NewLC(class TDesC16 const &, enum TLanguage)
-	?SetMimeTypeL@CSoftwareTypeRegInfo@Swi@@QAEXABVTDesC16@@@Z @ 16 NONAME ; void Swi::CSoftwareTypeRegInfo::SetMimeTypeL(class TDesC16 const &)
-	?ExternalizedSize@CSoftwareTypeRegInfo@Swi@@QBEHXZ @ 17 NONAME ; int Swi::CSoftwareTypeRegInfo::ExternalizedSize(void) const
+	?UnserializeUniqueSwTypeNamesL@SoftwareTypeRegInfoUtils@Swi@@SAXABVTDesC16@@AAV?$RArray@VTPtrC16@@@@@Z @ 1 NONAME ; void Swi::SoftwareTypeRegInfoUtils::UnserializeUniqueSwTypeNamesL(class TDesC16 const &, class RArray<class TPtrC16> &)
+	?SerializeArrayL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@AAVRBuf8@@@Z @ 2 NONAME ; void Swi::SoftwareTypeRegInfoUtils::SerializeArrayL(class RPointerArray<class Usif::CSoftwareTypeRegInfo> const &, class RBuf8 &)
+	?ExtractMimeTypesL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@AAV?$RPointerArray@VHBufC8@@@@@Z @ 3 NONAME ; void Swi::SoftwareTypeRegInfoUtils::ExtractMimeTypesL(class RPointerArray<class Usif::CSoftwareTypeRegInfo> const &, class RPointerArray<class HBufC8> &)
+	?SerializeUniqueSwTypeNamesL@SoftwareTypeRegInfoUtils@Swi@@SAXABV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@AAVRBuf16@@@Z @ 4 NONAME ; void Swi::SoftwareTypeRegInfoUtils::SerializeUniqueSwTypeNamesL(class RPointerArray<class Usif::CSoftwareTypeRegInfo> const &, class RBuf16 &)
+	?UnserializeArrayL@SoftwareTypeRegInfoUtils@Swi@@SAXAAVRReadStream@@AAV?$RPointerArray@VCSoftwareTypeRegInfo@Usif@@@@@Z @ 5 NONAME ; void Swi::SoftwareTypeRegInfoUtils::UnserializeArrayL(class RReadStream &, class RPointerArray<class Usif::CSoftwareTypeRegInfo> &)
 
--- a/installationservices/swi/eabi/sislauncherclientU.DEF	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/eabi/sislauncherclientU.DEF	Fri Jun 11 13:45:18 2010 +0300
@@ -9,7 +9,7 @@
 	_ZN3Swi19RSisLauncherSession7ConnectEv @ 8 NONAME
 	_ZN3Swi19RSisLauncherSession9ShutdownLERK6RArrayI4TUidEi @ 9 NONAME
 	_ZN3Swi19RSisLauncherSession14NotifyNewAppsLERK13RPointerArrayI7TDesC16E @ 10 NONAME
-	_ZN3Swi19RSisLauncherSession19ParseSwTypeRegFileLER5RFileR13RPointerArrayINS_20CSoftwareTypeRegInfoEE @ 11 NONAME
+	_ZN3Swi19RSisLauncherSession19ParseSwTypeRegFileLER5RFileR13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEE @ 11 NONAME
 	_ZN3Swi19RSisLauncherSession29RegisterSifLauncherMimeTypesLERK13RPointerArrayI6HBufC8E @ 12 NONAME
 	_ZN3Swi19RSisLauncherSession31UnregisterSifLauncherMimeTypesLERK13RPointerArrayI6HBufC8E @ 13 NONAME
 	_ZN3Swi19RSisLauncherSession25RunAfterEcomNotificationLERK13RPointerArrayINS_27CSisRegistryFileDescriptionEE @ 14 NONAME
--- a/installationservices/swi/eabi/sisregistryclient_v2U.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/eabi/sisregistryclient_v2U.def	Fri Jun 11 13:45:18 2010 +0300
@@ -204,8 +204,8 @@
 	_ZN3Swi27RSisRegistryWritableSession20RollbackTransactionLEv @ 203 NONAME
 	_ZNK3Swi27CSisRegistryFileDescription14SerializedSizeEv @ 204 NONAME
 	_ZN3Swi19RSisRegistrySession17IsFileRegisteredLERK7TDesC16 @ 205 NONAME
-	_ZN3Swi27RSisRegistryWritableSession12UpdateEntryLERKNS_12CApplicationERK6TDesC8RK13RPointerArrayINS_20CSoftwareTypeRegInfoEEx @ 206 NONAME
-	_ZN3Swi27RSisRegistryWritableSession9AddEntryLERKNS_12CApplicationERK6TDesC8RK13RPointerArrayINS_20CSoftwareTypeRegInfoEEx @ 207 NONAME
+	_ZN3Swi27RSisRegistryWritableSession12UpdateEntryLERKNS_12CApplicationERK6TDesC8RK13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEEx @ 206 NONAME
+	_ZN3Swi27RSisRegistryWritableSession9AddEntryLERKNS_12CApplicationERK6TDesC8RK13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEEx @ 207 NONAME
 	_ZN3Swi19RSisRegistrySession21GetComponentIdForUidLERK4TUid @ 208 NONAME
 	_ZN3Swi19CSisRegistryPackage8SetNameLERK7TDesC16 @ 209 NONAME
 	_ZN3Swi18RSisRegistryHelper23GetEquivalentLanguagesLE9TLanguageR6RArrayIS1_E @ 210 NONAME ABSENT
--- a/installationservices/swi/eabi/swtypereginfou.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/eabi/swtypereginfou.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,27 +1,7 @@
 EXPORTS
-	_ZN3Swi20CSoftwareTypeRegInfo12SetMimeTypeLERK7TDesC16 @ 1 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfo29SetLocalizedSoftwareTypeNameLE9TLanguageRK7TDesC16 @ 2 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfo4NewLER11RReadStream @ 3 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfo4NewLERK7TDesC16 @ 4 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfoD0Ev @ 5 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfoD1Ev @ 6 NONAME
-	_ZN3Swi20CSoftwareTypeRegInfoD2Ev @ 7 NONAME
-	_ZN3Swi24SoftwareTypeRegInfoUtils15SerializeArrayLERK13RPointerArrayINS_20CSoftwareTypeRegInfoEER5RBuf8 @ 8 NONAME
-	_ZN3Swi24SoftwareTypeRegInfoUtils17ExtractMimeTypesLERK13RPointerArrayINS_20CSoftwareTypeRegInfoEERS1_I6HBufC8E @ 9 NONAME
-	_ZN3Swi24SoftwareTypeRegInfoUtils17UnserializeArrayLER11RReadStreamR13RPointerArrayINS_20CSoftwareTypeRegInfoEE @ 10 NONAME
-	_ZN3Swi24SoftwareTypeRegInfoUtils27SerializeUniqueSwTypeNamesLERK13RPointerArrayINS_20CSoftwareTypeRegInfoEER6RBuf16 @ 11 NONAME
-	_ZN3Swi24SoftwareTypeRegInfoUtils29UnserializeUniqueSwTypeNamesLERK7TDesC16R6RArrayI7TPtrC16E @ 12 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeName4NewLER11RReadStream @ 13 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeName4NewLERK7TDesC169TLanguage @ 14 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeName5NewLCERK7TDesC169TLanguage @ 15 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeNameD0Ev @ 16 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeNameD1Ev @ 17 NONAME
-	_ZN3Swi26CLocalizedSoftwareTypeNameD2Ev @ 18 NONAME
-	_ZNK3Swi20CSoftwareTypeRegInfo12ExternalizeLER12RWriteStream @ 19 NONAME
-	_ZNK3Swi20CSoftwareTypeRegInfo16ExternalizedSizeEv @ 20 NONAME
-	_ZNK3Swi26CLocalizedSoftwareTypeName12ExternalizeLER12RWriteStream @ 21 NONAME
-	_ZTIN3Swi20CSoftwareTypeRegInfoE @ 22 NONAME
-	_ZTIN3Swi26CLocalizedSoftwareTypeNameE @ 23 NONAME
-	_ZTVN3Swi20CSoftwareTypeRegInfoE @ 24 NONAME
-	_ZTVN3Swi26CLocalizedSoftwareTypeNameE @ 25 NONAME
+	_ZN3Swi24SoftwareTypeRegInfoUtils15SerializeArrayLERK13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEER5RBuf8 @ 1 NONAME
+	_ZN3Swi24SoftwareTypeRegInfoUtils17ExtractMimeTypesLERK13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEERS1_I6HBufC8E @ 2 NONAME
+	_ZN3Swi24SoftwareTypeRegInfoUtils17UnserializeArrayLER11RReadStreamR13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEE @ 3 NONAME
+	_ZN3Swi24SoftwareTypeRegInfoUtils27SerializeUniqueSwTypeNamesLERK13RPointerArrayIN4Usif20CSoftwareTypeRegInfoEER6RBuf16 @ 4 NONAME
+	_ZN3Swi24SoftwareTypeRegInfoUtils29UnserializeUniqueSwTypeNamesLERK7TDesC16R6RArrayI7TPtrC16E @ 5 NONAME
 
--- a/installationservices/swi/group/bld.inf	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
@@ -124,7 +124,9 @@
 installserver.mmp
 uiss.mmp
 backuprestore.mmp
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 swisidchecker.mmp
+#endif
 pkgremover.mmp
 #ifndef __WINS__
 sishelper_tshell.mmp
@@ -462,6 +464,9 @@
 ../test/tuiscriptadaptors/scripts/testwritableswicertstore.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testwritableswicertstore.script
 ../test/tuiscriptadaptors/scripts/tuiscriptadaptors.ini /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tuiscriptadaptors.ini
 ../test/tuiscriptadaptors/scripts/tuiscriptadaptors.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tuiscriptadaptors.script
+../test/tuiscriptadaptors/scripts/nonusiftuiscriptadaptors.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/nonusiftuiscriptadaptors.script
+../test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.ini /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.ini
+../test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.script
 ../test/tuiscriptadaptors/scripts/tuiscriptadaptors_winscw.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tuiscriptadaptors_winscw.script
 ../test/tuiscriptadaptors/scripts/testvids.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testvids.script
 ../test/tuiscriptadaptors/scripts/testvids.ini /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testvids.ini
--- a/installationservices/swi/group/security_swi.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/group/security_swi.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_swi
 source	\sf\mw\appinstall\installationservices\swi\bwins
 source \sf\mw\appinstall\installationservices\swi\docs
--- a/installationservices/swi/group/sisregistryserver.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/group/sisregistryserver.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -28,6 +28,8 @@
 // minimum 4KB maximum 2MB (twice the maximum default)
 EPOCHEAPSIZE	0x1000 0x200000
 
+epocprocesspriority low
+
 target sisregistryserver.exe
 targettype exe
 
--- a/installationservices/swi/group/swtypereginfo.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/group/swtypereginfo.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -34,8 +34,11 @@
 SOURCE swtypereginfo.cpp
 
 USERINCLUDE ../inc/swi
+USERINCLUDE ../source/sisregistry/common
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY euser.lib efsrv.lib estor.lib
+LIBRARY 	scrclient.lib
+LIBRARY 	ipcstream.lib
 SMPSAFE
--- a/installationservices/swi/inc/sislauncherclient.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/sislauncherclient.h	Fri Jun 11 13:45:18 2010 +0300
@@ -31,6 +31,7 @@
 #include "sislauncherdefs.h"
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
 #include <usif/scr/appregentries.h>
+#include <usif/scr/screntries_platform.h>
 #endif
 const TInt KDefaultShutdownTimeout = 10000000;
 
@@ -142,7 +143,7 @@
     IMPORT_C void RunAfterEcomNotificationL(const RPointerArray<CSisRegistryFileDescription>& aFileList);
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    IMPORT_C void ParseSwTypeRegFileL(RFile& aFile, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
+    IMPORT_C void ParseSwTypeRegFileL(RFile& aFile, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
 
     IMPORT_C void RegisterSifLauncherMimeTypesL(const RPointerArray<HBufC8>& aMimeTypes);
 
--- a/installationservices/swi/inc/sisregistrywritablesession.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/sisregistrywritablesession.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 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"
@@ -31,9 +31,11 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #include <usif/usifcommon.h>
 #include <usif/scr/appregentries.h>
+#include <usif/scr/screntries_platform.h>
 #endif
 namespace Swi
 {
+
 class CApplication;
 class CSisRegistryPackage;
 
@@ -188,7 +190,7 @@
 	 * @param aTransactionID The TransactionID for IntegrityServices provided by Swis of TInt64 type
 	 *
 	 */
-	IMPORT_C void AddEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
+	IMPORT_C void AddEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
 
 	/**
 	 * Updates the registry entry representing a package containing a Layered Execution Environment.
@@ -202,7 +204,7 @@
 	 * @param aTransactionID The TransactionID for IntegrityServices provided by Swis of TInt64 type
 	 *
 	 */
-	IMPORT_C void UpdateEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
+	IMPORT_C void UpdateEntryL(const CApplication& aApplication, const TDesC8& aController, const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, TInt64 aTransactionID);
 
 	IMPORT_C void AddEntryL(const Usif::CApplicationRegistrationData& aApparcRegFileData, const CSisRegistryPackage& aSisRegistryPackage);
 	IMPORT_C void UpdateEntryL(const CApplication& aApplication, const Usif::CApplicationRegistrationData& aApparcRegFileData, const CSisRegistryPackage& aSisRegistryPackage);
--- a/installationservices/swi/inc/swi.iby	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/swi.iby	Fri Jun 11 13:45:18 2010 +0300
@@ -66,7 +66,9 @@
 
 ECOM_PLUGIN(recsisx.dll, 0x10202DD0.rsc)
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ECOM_PLUGIN(swisidchecker.dll, 10281FBC.rsc)
+#endif
 
 #include "swiconfig.iby"
 #include "swidaemon.iby"
--- a/installationservices/swi/inc/swi/swtypereginfo.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/swi/swtypereginfo.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -29,152 +29,23 @@
 #include <e32base.h>
 #include <s32mem.h>
 #include <ct/rcpointerarray.h>
+#include <usif/scr/screntries_platform.h>
 
 namespace Swi
 	{
 	_LIT(KTxtSoftwareTypeComponentProperty, "softwareTypes");
 
-	class CLocalizedSoftwareTypeName : public CBase
-		{
-	public:
-		IMPORT_C static CLocalizedSoftwareTypeName* NewL(const TDesC& aName, TLanguage aLocale);
-		IMPORT_C static CLocalizedSoftwareTypeName* NewLC(const TDesC& aName, TLanguage aLocale);
-		IMPORT_C static CLocalizedSoftwareTypeName* NewL(RReadStream& aStream);
-		
-		IMPORT_C virtual ~CLocalizedSoftwareTypeName();
-		
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		
-		inline const TDesC& Name() const;
-		inline TLanguage Locale() const;
-		
-	private:
-		CLocalizedSoftwareTypeName();
-		CLocalizedSoftwareTypeName(TLanguage aLocale);
-
-		void InternalizeL(RReadStream& aStream);
-		
-	private:
-		HBufC* iName;
-		TLanguage iLocale;
-		};
-
-// ##########################################################################################
-
-	class CSoftwareTypeRegInfo : public CBase
-		{
-	public:
-		IMPORT_C static CSoftwareTypeRegInfo* NewL(const TDesC& aUniqueSoftwareTypeName);
-		IMPORT_C static CSoftwareTypeRegInfo* NewL(RReadStream& aStream);
-
-		IMPORT_C virtual ~CSoftwareTypeRegInfo();
-		
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		IMPORT_C TInt ExternalizedSize() const;
-
-		inline void SetSifPluginUid(TUid aUid);
-		inline void SetInstallerSecureId(TSecureId aSecureId);
-		inline void SetExecutionLayerSecureId(TSecureId aSecureId);
-		IMPORT_C void SetMimeTypeL(const TDesC& aMimeType);
-		IMPORT_C void SetLocalizedSoftwareTypeNameL(TLanguage aLanguage, const TDesC& aName);
-
-		inline const TDesC& UniqueSoftwareTypeName() const;
-		inline TUid SifPluginUid() const;
-		inline TSecureId InstallerSecureId() const;
-		inline TSecureId ExecutionLayerSecureId() const;
-		inline const RPointerArray<HBufC>& MimeTypes() const;
-		inline const RPointerArray<CLocalizedSoftwareTypeName>& LocalizedSoftwareTypeNames() const;
-
-	private:
-		CSoftwareTypeRegInfo();
-		void InternalizeL(RReadStream& aStream);
-
-		enum { EUniqueSwTypeNameMaxLength = 32 }; 
-
-		HBufC* iUniqueSoftwareTypeName;
-		TUid iSifPluginUid;
-		TSecureId iInstallerSecureId;
-		TSecureId iExecutionLayerSecureId;
-		RCPointerArray<HBufC> iMimeTypes;
-		RCPointerArray<CLocalizedSoftwareTypeName> iLocalizedSoftwareTypeNames;
-		};
-
-// ##########################################################################################
-
 	class SoftwareTypeRegInfoUtils
 		{
 	public:
-		IMPORT_C static void SerializeArrayL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray);
-		IMPORT_C static void UnserializeArrayL(RReadStream& aStream, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
-		IMPORT_C static void SerializeUniqueSwTypeNamesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames);
+		IMPORT_C static void SerializeArrayL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray);
+		IMPORT_C static void UnserializeArrayL(RReadStream& aStream, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
+		IMPORT_C static void SerializeUniqueSwTypeNamesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames);
 		IMPORT_C static void UnserializeUniqueSwTypeNamesL(const TDesC& aSerializedNames, RArray<TPtrC>& aUniqueSwTypeNames);
-		IMPORT_C static void ExtractMimeTypesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes);
+		IMPORT_C static void ExtractMimeTypesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes);
 	public:
 		enum { KUniqueNameSeparator = 0x1E };  // 'record separator'
 		};
-
-// ##########################################################################################
-
-	inline const TDesC& CLocalizedSoftwareTypeName::Name() const
-		{
-		return *iName;
-		}
-
-	inline TLanguage CLocalizedSoftwareTypeName::Locale() const
-		{
-		return iLocale;
-		}
-
-// ##########################################################################################
-
-	inline void CSoftwareTypeRegInfo::SetSifPluginUid(TUid aUid)
-		{
-		iSifPluginUid = aUid;
-		}
-
-	inline void CSoftwareTypeRegInfo::SetInstallerSecureId(TSecureId aSecureId)
-		{
-		iInstallerSecureId = aSecureId;
-		}
-
-	inline void CSoftwareTypeRegInfo::SetExecutionLayerSecureId(TSecureId aSecureId)
-		{
-		iExecutionLayerSecureId = aSecureId;
-		}
-
-	inline const TDesC& CSoftwareTypeRegInfo::UniqueSoftwareTypeName() const
-		{
-		if (iUniqueSoftwareTypeName == NULL)
-			{
-			return KNullDesC;
-			}
-		return *iUniqueSoftwareTypeName;
-		}
-
-	inline TUid CSoftwareTypeRegInfo::SifPluginUid() const
-		{
-		return iSifPluginUid;
-		}
-
-	TSecureId CSoftwareTypeRegInfo::InstallerSecureId() const
-		{
-		return iInstallerSecureId;
-		}
-
-	TSecureId CSoftwareTypeRegInfo::ExecutionLayerSecureId() const
-		{
-		return iInstallerSecureId;
-		}
-
-	const RPointerArray<HBufC>& CSoftwareTypeRegInfo::MimeTypes() const
-		{
-		return iMimeTypes;
-		}
-
-	const RPointerArray<CLocalizedSoftwareTypeName>& CSoftwareTypeRegInfo::LocalizedSoftwareTypeNames() const
-		{
-		return iLocalizedSoftwareTypeNames;
-		}
 	}
 
 #endif // SWTYPEREGINFO_H
--- a/installationservices/swi/inc/switextshell.iby	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/switextshell.iby	Fri Jun 11 13:45:18 2010 +0300
@@ -30,7 +30,9 @@
 #include <ocsp.iby>
 
 // This iby file also includes the http libraries needed for ocsp testing
+#ifndef __APPARC_IBY__
 #include <http.iby>
+#endif
 #include "hash.iby"
 
 #include "ups.iby" // Security utilities 9.5
@@ -63,35 +65,43 @@
 
 // Core SWI code
 file=ABI_DIR\BUILD_DIR\installserver.exe			sys\bin\installserver.exe
-file=ABI_DIR\BUILD_DIR\plan.dll 				sys\bin\plan.dll
 file=ABI_DIR\BUILD_DIR\sishelper_tshell.dll			sys\bin\sishelper.dll
-file=ABI_DIR\BUILD_DIR\swidataprovider.dll 			sys\bin\swidataprovider.dll 
 file=ABI_DIR\BUILD_DIR\sisxfile.dll 				sys\bin\sisxfile.dll 
-file=ABI_DIR\BUILD_DIR\siscontroller.dll 			sys\bin\siscontroller.dll 
 file=ABI_DIR\BUILD_DIR\sisresult.dll				sys\bin\sisresult.dll
 file=ABI_DIR\BUILD_DIR\uiss.dll					sys\bin\uiss.dll
+
+#ifndef __APPARC_IBY__
+file=ABI_DIR\BUILD_DIR\plan.dll 				sys\bin\plan.dll
+file=ABI_DIR\BUILD_DIR\swidataprovider.dll 			sys\bin\swidataprovider.dll 
+file=ABI_DIR\BUILD_DIR\siscontroller.dll 			sys\bin\siscontroller.dll 
 file=ABI_DIR\BUILD_DIR\uissclient.dll 				sys\bin\uissclient.dll 
 
 file=ABI_DIR\BUILD_DIR\sisregistryclient.dll			sys\bin\sisregistryclient.dll
 file=ABI_DIR\BUILD_DIR\sisregistryserver.exe			sys\bin\sisregistryserver.exe
 file=ABI_DIR\BUILD_DIR\sislauncherclient.dll			sys\bin\sislauncherclient.dll
 file=ABI_DIR\BUILD_DIR\sislauncherserver_tshell.exe		sys\bin\sislauncherserver.exe
+#endif
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#ifndef __APPARC_IBY__
 file=ABI_DIR\BUILD_DIR\apprscparser.dll			sys\bin\apprscparser.dll
 file=ABI_DIR\BUILD_DIR\swtypereginfo.dll		sys\bin\swtypereginfo.dll
 #endif
+#endif
 
 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 file=ABI_DIR\BUILD_DIR\integrityservices.dll			sys\bin\integrityservices.dll
 #endif
 
+#ifndef __APPARC_IBY__
 file=ABI_DIR\BUILD_DIR\ocspsupport.exe				sys\bin\ocspsupport.exe
 file=ABI_DIR\BUILD_DIR\ocspsupportclient.dll 			sys\bin\ocspsupportclient.dll 
 file=ABI_DIR\BUILD_DIR\devinfosupportcommon.dll			sys\bin\devinfosupportcommon.dll
 file=ABI_DIR\BUILD_DIR\devinfosupport.exe			sys\bin\devinfosupport.exe
 file=ABI_DIR\BUILD_DIR\devinfosupportclient.dll 		sys\bin\devinfosupportclient.dll 
 file=ABI_DIR\BUILD_DIR\securitymanager.dll			sys\bin\securitymanager.dll
+#endif
+
 file=ABI_DIR\BUILD_DIR\backuprestore.dll			sys\bin\backuprestore.dll
 file=ABI_DIR\BUILD_DIR\cafdataprovider.dll			sys\bin\cafdataprovider.dll
 file=ABI_DIR\BUILD_DIR\pkgremover.dll				sys\bin\pkgremover.dll
@@ -100,9 +110,10 @@
 // Core SWI - 9.5
 REM Including swiplugin.iby instead explicitly mentioning the files to avoid duplicate includes 
 #include "swiplugin.iby"
+#ifndef __APPARC_IBY__
 file=ABI_DIR\BUILD_DIR\swiobserverclient.dll 			sys\bin\swiobserverclient.dll
 file=ABI_DIR\BUILD_DIR\swiobserver.exe 				sys\bin\swiobserver.exe
-
+#endif
 
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
--- a/installationservices/swi/inc/tswi.iby	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/inc/tswi.iby	Fri Jun 11 13:45:18 2010 +0300
@@ -317,8 +317,12 @@
 #endif //SECURITY_NORMAL_SWICERTSTORE__
 
 // tuiscriptadaptors (unit test for SWIS)
+
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini \tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.script \tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.script
+data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini \tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini
+data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.script \tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.script
+data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\nonusiftuiscriptadaptors.script \tswi\tuiscriptadaptors\scripts\nonusiftuiscriptadaptors.script
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuileavedialog.script \tswi\tuiscriptadaptors\scripts\tuileavedialog.script
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\tuileavedialogasync.script \tswi\tuiscriptadaptors\scripts\tuileavedialogasync.script
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\leavedialog_armv5.ini \tswi\tuiscriptadaptors\scripts\leavedialog.ini
@@ -347,6 +351,7 @@
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\testdevicelanguages.ini \tswi\tuiscriptadaptors\scripts\testdevicelanguages.ini
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\testdevicelanguages.script \tswi\tuiscriptadaptors\scripts\testdevicelanguages.script
 #ifdef __SECURITY_NORMAL_SWICERTSTORE__
+
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\testpreinstalled_h2.script \tswi\tuiscriptadaptors\scripts\testpreinstalled.script
 #else
 data = \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\testpreinstalled_delete.script \tswi\tuiscriptadaptors\scripts\testpreinstalled_delete.script
--- a/installationservices/swi/source/apprscparser/apprscparser.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/apprscparser/apprscparser.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -526,9 +526,10 @@
                 CResourceFile* currLocalizableFile = iLocalizableRscArray[i]->iRscFile;                
                 currLocalizableFile->ConfirmSignatureL();
                 HBufC8* data = NULL;
-                TRAPD(err, data = currLocalizableFile->AllocReadL(aResourceId));                
+                TRAPD(err, data = currLocalizableFile->AllocReadL(aResourceId));                  
                 if(err == KErrNone)
                     {
+                    DEBUG_PRINTF3(_L8("Opaque Data read (length %d) from the localizable resouce file : %S"), data->Length(), data);
                     CleanupStack::PushL(data);
                     Usif::COpaqueData* opaqueData = Usif::COpaqueData::NewL(*data, iLocalizableRscArray[i]->iLanguage);
                     aOpaqueDataArray.AppendL(opaqueData);
@@ -541,6 +542,7 @@
             // Expecting opaque data to be in the registration file
             __ASSERT_ALWAYS(aRegistrationFile, Panic(EPanicNullPointer));
             HBufC8* data = aRegistrationFile->AllocReadLC(aResourceId);
+            DEBUG_PRINTF3(_L8("Opaque Data read (length %d) from the registration resouce file : %S"), data->Length(), data);
             Usif::COpaqueData* opaqueData = Usif::COpaqueData::NewL(*data, TLanguage(0));
             aOpaqueDataArray.AppendL(opaqueData);
             CleanupStack::PopAndDestroy(data);
--- a/installationservices/swi/source/certstoretobin/Swicertstoretobin.pl	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/certstoretobin/Swicertstoretobin.pl	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 # Copyright (c) 2005-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"
+# 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".
 #
--- a/installationservices/swi/source/pkgremover/pkgremover.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/pkgremover/pkgremover.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -25,6 +25,7 @@
 #include "installclientserver.h"
 #include <swi/pkgremover.h>
 #include <connect/sbdefs.h>
+#include "cleanuputils.h"
 
 // Maximum buffer size
 const TInt KMaxBufferSize = 1024;
@@ -43,6 +44,7 @@
 /*static*/
 EXPORT_C void UninstalledSisPackages::ListL(TDriveNumber aDrive, RPointerArray<CUninstalledPackageEntry>& aPackageList)
 	{
+	CleanupResetAndDestroyPushL(aPackageList);
 	aPackageList.ResetAndDestroy();
 
 	// Check if SWIS is busy
@@ -150,6 +152,7 @@
 
 	// Shutdown InstallServer and SisHelper
 	CleanupStack::PopAndDestroy(2, &server);
+	CleanupStack::Pop(&aPackageList);
 	}
 
 /*static*/
--- a/installationservices/swi/source/sisfile/swtypereginfo.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisfile/swtypereginfo.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -17,237 +17,49 @@
 
 
 #include "swtypereginfo.h"
-
+#include "arrayutils.h"
+#include "ipcutil.h"
 using namespace Swi;
 
-CLocalizedSoftwareTypeName::CLocalizedSoftwareTypeName()
-	{
-	}
-
-CLocalizedSoftwareTypeName::CLocalizedSoftwareTypeName(TLanguage aLocale)
-	:	iLocale(aLocale)
-	{
-	}
-
-EXPORT_C CLocalizedSoftwareTypeName::~CLocalizedSoftwareTypeName()
-	{
-	delete iName;
-	}
-
-EXPORT_C CLocalizedSoftwareTypeName* CLocalizedSoftwareTypeName::NewL(const TDesC& aName, TLanguage aLocale)
-	{
-	CLocalizedSoftwareTypeName *self = CLocalizedSoftwareTypeName::NewLC(aName, aLocale);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-EXPORT_C CLocalizedSoftwareTypeName* CLocalizedSoftwareTypeName::NewLC(const TDesC& aName, TLanguage aLocale)
-	{
-	CLocalizedSoftwareTypeName *self = new(ELeave) CLocalizedSoftwareTypeName(aLocale);
-	CleanupStack::PushL(self);
-	self->iName = aName.AllocL();
-	return self;
-	}
-
-EXPORT_C CLocalizedSoftwareTypeName* CLocalizedSoftwareTypeName::NewL(RReadStream& aStream)
-	{
-	CLocalizedSoftwareTypeName* self = new(ELeave) CLocalizedSoftwareTypeName();
-	CleanupStack::PushL(self);
-	self->InternalizeL(aStream);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-EXPORT_C void CLocalizedSoftwareTypeName::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream.WriteInt32L(iLocale);
-	aStream << *iName;
-	}
-
-void CLocalizedSoftwareTypeName::InternalizeL(RReadStream& aStream)
-	{
-	TLanguage locale = static_cast<TLanguage>(aStream.ReadInt32L());
-	iLocale = locale;
-
-	delete iName;
-	iName = HBufC::NewL(aStream, KMaxTInt); // No restriction on length
-	}
-
-// ##########################################################################################
-
-EXPORT_C CSoftwareTypeRegInfo* CSoftwareTypeRegInfo::NewL(const TDesC& aUniqueSoftwareTypeName)
-	{
-	CSoftwareTypeRegInfo* self = new (ELeave) CSoftwareTypeRegInfo();
-	CleanupStack::PushL(self);
-	self->iUniqueSoftwareTypeName = HBufC::NewL(aUniqueSoftwareTypeName.Length());
-	self->iUniqueSoftwareTypeName->Des().Copy(aUniqueSoftwareTypeName);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-EXPORT_C CSoftwareTypeRegInfo* CSoftwareTypeRegInfo::NewL(RReadStream& aStream)
-	{
-	CSoftwareTypeRegInfo* self = new (ELeave) CSoftwareTypeRegInfo();
-	CleanupStack::PushL(self);
-	self->InternalizeL(aStream);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CSoftwareTypeRegInfo::CSoftwareTypeRegInfo()
-	{
-	}
-
-EXPORT_C CSoftwareTypeRegInfo::~CSoftwareTypeRegInfo()
-	{
-	delete iUniqueSoftwareTypeName;
-	iMimeTypes.Close();
-	iLocalizedSoftwareTypeNames.Close();
-	}
-
-EXPORT_C void CSoftwareTypeRegInfo::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream << *iUniqueSoftwareTypeName;
-	aStream << iSifPluginUid.iUid;
-	
-	TUid installerUid = iInstallerSecureId;
-	aStream << installerUid.iUid;
-	
-	TUid executionLayerUid = iExecutionLayerSecureId;
-	aStream << executionLayerUid.iUid;
-	
-	// MIME types
-	const TInt numMimeTypes = iMimeTypes.Count();
-	aStream.WriteInt32L(numMimeTypes);
-	for (TInt i=0; i<numMimeTypes; ++i)
-		{
-		aStream << *iMimeTypes[i];
-		}
-	 
-	// Localized names
-	const TInt numLocalizedNames = iLocalizedSoftwareTypeNames.Count();
-	aStream.WriteInt32L(numLocalizedNames);
-	for (TInt i=0; i<numLocalizedNames; ++i)
-		{
-		aStream << *iLocalizedSoftwareTypeNames[i];
-		}
-	}
-
-EXPORT_C TInt CSoftwareTypeRegInfo::ExternalizedSize() const
-	{
-	TInt size = sizeof(TUid) + sizeof(TSecureId) + sizeof(TSecureId);
-	size += sizeof(TInt) + iUniqueSoftwareTypeName->Size();
-	
-	// MIME types
-	const TInt numMimeTypes = iMimeTypes.Count();
-	size += sizeof(TInt);
-	for (TInt i=0; i<numMimeTypes; ++i)
-		{
-		size += sizeof(TInt) + iMimeTypes[i]->Size();
-		}
-	 
-	// Localized names
-	const TInt numLocalizedNames = iLocalizedSoftwareTypeNames.Count();
-	size += sizeof(TInt);
-	for (TInt i=0; i<numLocalizedNames; ++i)
-		{
-		size += sizeof(TInt) + sizeof(TInt) + iLocalizedSoftwareTypeNames[i]->Name().Size();
-		}
-
-	return size;
-	}
-
-void CSoftwareTypeRegInfo::InternalizeL(RReadStream& aStream)
-	{
-	ASSERT(iUniqueSoftwareTypeName == NULL);
-	
-	iUniqueSoftwareTypeName = HBufC::NewL(aStream, EUniqueSwTypeNameMaxLength);
-	
-	iSifPluginUid = TUid::Uid(aStream.ReadInt32L());
-	iInstallerSecureId = TUid::Uid(aStream.ReadInt32L());
-	iExecutionLayerSecureId = TUid::Uid(aStream.ReadInt32L());
-	
-	// MIME types
-	const TInt numMimeTypes = aStream.ReadInt32L();
-	for (TInt i=0; i<numMimeTypes; ++i)
-		{
-		HBufC* mimeType = HBufC::NewLC(aStream, EUniqueSwTypeNameMaxLength);
-		iMimeTypes.AppendL(mimeType);
-		CleanupStack::Pop(mimeType);
-		}
-	
-	// Localized names
-	const TInt numLocalizedNames = aStream.ReadInt32L();
-	for (TInt i=0; i<numLocalizedNames; ++i)
-		{
-		CLocalizedSoftwareTypeName* name = CLocalizedSoftwareTypeName::NewL(aStream);
-		CleanupStack::PushL(name);
-		iLocalizedSoftwareTypeNames.AppendL(name);
-		CleanupStack::Pop(name);
-		}
-	}
-
-EXPORT_C void CSoftwareTypeRegInfo::SetMimeTypeL(const TDesC& aMimeType)
-	{
-	HBufC* mimeType = HBufC::NewLC(aMimeType.Length());
-	mimeType->Des().Copy(aMimeType);
-	iMimeTypes.AppendL(mimeType);
-	CleanupStack::Pop(mimeType);
-	}
-
-EXPORT_C void CSoftwareTypeRegInfo::SetLocalizedSoftwareTypeNameL(TLanguage aLanguage, const TDesC& aName)
-	{
-	CLocalizedSoftwareTypeName* name = CLocalizedSoftwareTypeName::NewLC(aName, aLanguage);
-	iLocalizedSoftwareTypeNames.AppendL(name);
-	CleanupStack::Pop(name);
-	}
-
-// ##########################################################################################
-
-EXPORT_C void SoftwareTypeRegInfoUtils::SerializeArrayL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray)
+EXPORT_C void SoftwareTypeRegInfoUtils::SerializeArrayL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray)
 	{
 	TInt bufLen = sizeof(TInt);
 	const TInt count = aSwTypeRegInfoArray.Count();
 	for (TInt i=0; i<count; ++i)
-		{
-		bufLen += aSwTypeRegInfoArray[i]->ExternalizedSize();
-		}
+	    {
+	    bufLen += GetObjectSizeL(aSwTypeRegInfoArray[i]);
+	    }
 
 	aSerializedArray.ReAllocL(aSerializedArray.Length()+bufLen);
 	RDesWriteStream ws(aSerializedArray);
 	CleanupClosePushL(ws);
 
-	ws.WriteInt32L(count);
-	for (TInt i=0; i<count; ++i)
-		{
-		const CSoftwareTypeRegInfo& info = *aSwTypeRegInfoArray[i];
-		ws << info;
-		}
+	ExternalizePointerArrayL(aSwTypeRegInfoArray, ws);
 
 	ws.CommitL();
 	CleanupStack::PopAndDestroy(&ws);
 	}
 
-EXPORT_C void SoftwareTypeRegInfoUtils::UnserializeArrayL(RReadStream& aStream, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
+EXPORT_C void SoftwareTypeRegInfoUtils::UnserializeArrayL(RReadStream& aStream, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
 	{
 	const TInt numElems = aStream.ReadInt32L();
 	for (TInt i=0; i<numElems; ++i)
 		{
-		CSoftwareTypeRegInfo* info = CSoftwareTypeRegInfo::NewL(aStream);
+		Usif::CSoftwareTypeRegInfo* info = Usif::CSoftwareTypeRegInfo::NewL(aStream);
 		CleanupStack::PushL(info);
 		aSwTypeRegInfoArray.AppendL(info);
 		CleanupStack::Pop(info);
 		}
 	}
 
-EXPORT_C void SoftwareTypeRegInfoUtils::SerializeUniqueSwTypeNamesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames)
+EXPORT_C void SoftwareTypeRegInfoUtils::SerializeUniqueSwTypeNamesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames)
 	{
 	const TInt numNames = aSwTypeRegInfoArray.Count();
 	
 	TInt bufLen = 0;
 	for (TInt i=0; i<numNames; ++i)
 		{
-		const CSoftwareTypeRegInfo& info = *aSwTypeRegInfoArray[i];
+		const Usif::CSoftwareTypeRegInfo& info = *aSwTypeRegInfoArray[i];
 		bufLen += info.UniqueSoftwareTypeName().Length() + sizeof(TChar);
 		}
 	
@@ -255,7 +67,7 @@
 	
 	for (TInt i=0; i<numNames; ++i)
 		{
-		const CSoftwareTypeRegInfo& info = *aSwTypeRegInfoArray[i];
+		const Usif::CSoftwareTypeRegInfo& info = *aSwTypeRegInfoArray[i];
 		aSerializedNames.Append(info.UniqueSoftwareTypeName());
 		aSerializedNames.Append(static_cast<TChar>(KUniqueNameSeparator));
 		}
@@ -283,7 +95,7 @@
 		}
 	}
 
-EXPORT_C void SoftwareTypeRegInfoUtils::ExtractMimeTypesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes)
+EXPORT_C void SoftwareTypeRegInfoUtils::ExtractMimeTypesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes)
 	{
 	for (TInt i=0; i<aSwTypeRegInfoArray.Count(); ++i)
 		{
--- a/installationservices/swi/source/sislauncher/client/sislauncherclient.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sislauncher/client/sislauncherclient.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -303,7 +303,7 @@
     }
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-EXPORT_C void RSisLauncherSession::ParseSwTypeRegFileL(RFile& aFile, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
+EXPORT_C void RSisLauncherSession::ParseSwTypeRegFileL(RFile& aFile, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
     {
     // Pack the file handle
     TIpcArgs ipcArgs;
@@ -476,35 +476,32 @@
 
 EXPORT_C void RSisLauncherSession::NotifyNewAppsL(const RArray<TAppUpdateInfo>& aAppUpdateInfo)
     {
-    if (aAppUpdateInfo.Count() > 0)
+    TInt bufLen = sizeof(TInt);
+    const TInt appCount = aAppUpdateInfo.Count();
+    for (TInt i=0; i<appCount; ++i)
         {
-        TInt bufLen = sizeof(TInt);
-        const TInt appCount = aAppUpdateInfo.Count();
-        for (TInt i=0; i<appCount; ++i)
-            {
-            bufLen += GetObjectSizeL(&aAppUpdateInfo[i]);
-            }
+        bufLen += GetObjectSizeL(&aAppUpdateInfo[i]);
+        }
 
-        HBufC8* buffer = HBufC8::NewLC(bufLen);
-        TPtr8 bufPtr(buffer->Des());
+    HBufC8* buffer = HBufC8::NewLC(bufLen);
+    TPtr8 bufPtr(buffer->Des());
 
-        RDesWriteStream ws(bufPtr);
-        CleanupClosePushL(ws);
+    RDesWriteStream ws(bufPtr);
+    CleanupClosePushL(ws);
 
-        ws.WriteInt32L(appCount);
-        for (TInt i=0; i<appCount; ++i)
-            {
-            const TAppUpdateInfo& info = aAppUpdateInfo[i];
-            ws << info;
-            }
-        ws.CommitL();
-        CleanupStack::PopAndDestroy(&ws);
-        
-        TIpcArgs ipcArgs(&bufPtr);
-        User::LeaveIfError(SendReceive(ENotifyApparcForApps, ipcArgs));
+    ws.WriteInt32L(appCount);
+    for (TInt i=0; i<appCount; ++i)
+        {
+        const TAppUpdateInfo& info = aAppUpdateInfo[i];
+        ws << info;
+        }
+    ws.CommitL();
+    CleanupStack::PopAndDestroy(&ws);
+    
+    TIpcArgs ipcArgs(&bufPtr);
+    User::LeaveIfError(SendReceive(ENotifyApparcForApps, ipcArgs));
 
-        CleanupStack::PopAndDestroy(buffer);
-        }
+    CleanupStack::PopAndDestroy(buffer);
     }
 
 EXPORT_C TAppUpdateInfo::TAppUpdateInfo()
--- a/installationservices/swi/source/sislauncher/server/sislauncherserver.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/sislauncherserver.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -561,7 +561,7 @@
     CleanupClosePushL(apaSession);
 
     // UI frameworks advise ignoring the return code
-    // Proceeding even if force registration fails so that installtion is not aborted
+    // Proceeding even if force registration fails so that installation is not aborted
     apaSession.ForceRegistration(aApplicationRegistrationData);
     CleanupStack::PopAndDestroy();
     }
--- a/installationservices/swi/source/sislauncher/server/sislaunchersession.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/sislaunchersession.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -47,6 +47,7 @@
 #include "apprscparser.h"
 #include "ipcutil.h"
 #include <usif/scr/appregentries.h>
+#include <usif/scr/screntries_platform.h>
 #include "sislauncherclient.h" 
 #endif
 
@@ -343,7 +344,7 @@
             if (Server().BootUpMode() == KTextShell) 
                 {
                 // emulator tests running in textshell or in textshell ROM (#def SWI_TEXTSHELL_ROM)
-                DEBUG_PRINTF(_L8("Sis Launcher Server - textshell - skipping notification of new applications."));
+                DEBUG_PRINTF(_L8("Sis Launcher Server - TextShell - skipping notification of new applications (ENotifyNewApps)."));
                 }
             else
                 {
@@ -417,14 +418,14 @@
             if (Server().BootUpMode() == KTextShell) 
                 {
                 // emulator tests running in textshell or in textshell ROM (#def SWI_TEXTSHELL_ROM)
-                DEBUG_PRINTF(_L8("Sis Launcher Server - textshell - skipping notification of new applications."));
+                DEBUG_PRINTF(_L8("Sis Launcher Server - TextShell - Skipping notification of force registered applications."));
                 }
             else
                 {
                 // emulatore running with GUI
                 #ifndef SWI_TEXTSHELL_ROM
                 Server().NotifyNewAppsL(appRegInfo);
-            #endif // SWI_TEXTSHELL_ROM
+                #endif // SWI_TEXTSHELL_ROM
                 }
             appRegInfo.ResetAndDestroy();
             CleanupStack::PopAndDestroy(2);
@@ -433,9 +434,17 @@
             }
         case ENotifyApparcForApps:
             {
-            #ifndef SWI_TEXTSHELL_ROM
-            NotifyApparcForAppsL(aMessage);  
-            #endif
+            if (Server().BootUpMode() == KTextShell) 
+                {
+                DEBUG_PRINTF(_L8("Sis Launcher Server - TextShell - Skipping notification of applications (ENotifyApparcForApps)."));
+                }
+            else
+                {
+                #ifndef SWI_TEXTSHELL_ROM
+                NotifyApparcForAppsL(aMessage);  
+                #endif
+                }
+            aMessage.Complete(KErrNone);
             break;
             }
 #endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
@@ -583,7 +592,7 @@
     User::LeaveIfError(file.Read(bufPtr));
 
     // Parse the registration file
-    RCPointerArray<CSoftwareTypeRegInfo> regInfoArray;
+	RCPointerArray<Usif::CSoftwareTypeRegInfo> regInfoArray;
     CleanupClosePushL(regInfoArray);
     
     CSoftwareTypeRegInfoParser* parser = CSoftwareTypeRegInfoParser::NewL();
@@ -602,16 +611,24 @@
 #ifndef SWI_TEXTSHELL_ROM
 void CSisLauncherSession::NotifyApparcForAppsL(const RMessage2& aMessage)
     {
+    DEBUG_PRINTF(_L8("Sending the notification to AppArc."));
     RIpcReadStream readStream;
     readStream.Open(aMessage, 0);
     CleanupClosePushL(readStream);    
     RArray<TApaAppUpdateInfo> apparcAppInfoArray;
-    CleanupClosePushL(apparcAppInfoArray);        
+    CleanupClosePushL(apparcAppInfoArray);
+    
     RApaLsSession apaSession;
-    User::LeaveIfError(apaSession.Connect());
+    TInt err = apaSession.Connect();
+    if(KErrNone != err)
+        {
+        DEBUG_PRINTF2(_L8("RApaLsSession::Connect failed with %d. Notification to AppArc failed."), err);
+        User::LeaveIfError(err);
+        }
     CleanupClosePushL(apaSession);
     TApaAppUpdateInfo::TApaAppAction appaction = TApaAppUpdateInfo::EAppNotPresent;
     const TInt numElems = readStream.ReadInt32L();
+    DEBUG_PRINTF2(_L8("Number of applications to be notified is %d."), numElems);
     //Convert the local structure into the structure required by apparc
     for (TInt i=0; i<numElems; ++i)
         {
@@ -631,14 +648,15 @@
         DEBUG_PRINTF2(_L("Action is %d"), appInfo.iAction);         
         }    
     
-    if(numElems > 0)
+    err = 0;
+    TRAP(err, err = apaSession.UpdateAppListL(apparcAppInfoArray));
+    if(KErrNone != err)
         {
-        apaSession.UpdateAppListL(apparcAppInfoArray);
+        DEBUG_PRINTF2(_L8("RApaLsSession::UpdateAppListL failed with %d. Notification to AppArc failed."), err);
+        User::LeaveIfError(err);
         }
-        
-    CleanupStack::PopAndDestroy(3, &readStream);
-    aMessage.Complete(KErrNone);
-       
+
+    CleanupStack::PopAndDestroy(3, &readStream);       
     }
 
 void CSisLauncherSession::RegisterSifLauncherMimeTypesL(const RMessage2& aMessage)
--- a/installationservices/swi/source/sislauncher/server/swtypereginfoparser.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/swtypereginfoparser.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -33,9 +33,11 @@
 	_LIT8(KNodeLocalizedName, "localizedName");
 	_LIT8(KNodeMimeType, "mimeType");
 	_LIT8(KNodeSifPluginUid, "sifPluginUid");
-	_LIT8(KNodeInstallerSecureId, "installerSecureId");
-	_LIT8(KNodeExecutionLayerSecureId, "executionLayerSecureId");
-	
+    _LIT8(KNodeCustomAcess, "CustomAcess");
+    _LIT8(KNodeSecureId, "SecureId");
+    _LIT8(KNodeAccessMode, "AccessMode");
+    _LIT8(KNodeLauncherExecutable, "launcherExecutable");
+    
 	_LIT8(KAttrSoftwareTypeName, "name");
 	_LIT8(KAttrLanguage, "language");
 
@@ -118,7 +120,7 @@
 	iNodes.Close();
 	}
 
-void CSoftwareTypeRegInfoParser::ParseL(const TDesC8& aDocument, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
+void CSoftwareTypeRegInfoParser::ParseL(const TDesC8& aDocument, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray)
 	{
 	iSwTypeRegInfoArray = &aSwTypeRegInfoArray;
 	
@@ -175,7 +177,7 @@
 			{
 			PushNodeL(ENodeSoftwareType, ENodeSoftwareTypeRegistrationData);
 			HBufC* softwareTypeName = AttributeLC(aAttributes, KAttrSoftwareTypeName);
-			CSoftwareTypeRegInfo* regInfo = CSoftwareTypeRegInfo::NewL(*softwareTypeName);
+			Usif::CSoftwareTypeRegInfo* regInfo = Usif::CSoftwareTypeRegInfo::NewL(*softwareTypeName);
 			CleanupStack::PushL(regInfo);
 			iSwTypeRegInfoArray->AppendL(regInfo);
 			CleanupStack::Pop();
@@ -202,16 +204,28 @@
 			ASSERT(iSwTypeRegInfoArray->Count() > 0);
 			PushNodeL(ENodeSifPluginUid, ENodeSoftwareType);
 			break;
-		
-		case ENodeInstallerSecureId:
-			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			PushNodeL(ENodeInstallerSecureId, ENodeSoftwareType);
-			break;
-		
-		case ENodeExecutionLayerSecureId:
-			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			PushNodeL(ENodeExecutionLayerSecureId, ENodeSoftwareType);
-			break;
+			
+		case ENodeCustomAccess:
+		    {
+		    ASSERT(iSwTypeRegInfoArray->Count() > 0);
+		    PushNodeL(ENodeCustomAccess, ENodeSoftwareType);
+		    HBufC* secureId = AttributeLC(aAttributes, KNodeSecureId);
+		    secureId->Des().TrimAll();
+		    iSecureId = TUid::Uid(Str2IntL(*secureId, EHex));
+		    CleanupStack::PopAndDestroy(secureId);
+		    
+		    HBufC* accessMode = AttributeLC(aAttributes, KNodeAccessMode);
+		    iAccessMode = static_cast<TInt>(Str2IntL(*accessMode));
+		    CleanupStack::PopAndDestroy(accessMode);
+		    }
+		    break;
+		   
+		case ENodeLauncherExecutable:
+		    {
+		    ASSERT(iSwTypeRegInfoArray->Count() > 0);
+		    PushNodeL(ENodeLauncherExecutable, ENodeSoftwareType);
+		    }
+		    break;
 
 		default:
 			User::Leave(KErrInvalidSoftwareTypeRegistrationFile);
@@ -237,13 +251,13 @@
 		}
 	iNodes.Remove(lastIdx);
 
-	RPointerArray<CSoftwareTypeRegInfo>& infoArray = *iSwTypeRegInfoArray;
+	RPointerArray<Usif::CSoftwareTypeRegInfo>& infoArray = *iSwTypeRegInfoArray;
 	switch (node)
 		{
 		case ENodeLocalizedName:
 			{
 			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
+			Usif::CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
 			HBufC* name = ConvertBufferTo16bitL(*iContentChunks);
 			CleanupStack::PushL(name);
 			name->Des().TrimAll();
@@ -255,7 +269,7 @@
 		case ENodeMimeType:
 			{
 			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
+			Usif::CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
 			HBufC* mimeType = ConvertBufferTo16bitL(*iContentChunks);
 			CleanupStack::PushL(mimeType);
 			mimeType->Des().TrimAll();
@@ -268,28 +282,31 @@
 			{
 			ASSERT(iSwTypeRegInfoArray->Count() > 0);
 			iContentChunks->Des().TrimAll();
-			CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
+			Usif::CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
 			regInfo.SetSifPluginUid(Str2UidL(*iContentChunks));
 			}
 			break;
-		
-		case ENodeInstallerSecureId:
-			{
-			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			iContentChunks->Des().TrimAll();
-			CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
-			regInfo.SetInstallerSecureId(Str2UidL(*iContentChunks));
-			}
-			break;
-		
-		case ENodeExecutionLayerSecureId:
-			{
-			ASSERT(iSwTypeRegInfoArray->Count() > 0);
-			iContentChunks->Des().TrimAll();
-			CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
-			regInfo.SetExecutionLayerSecureId(Str2UidL(*iContentChunks));
-			}
-			break;
+
+		case ENodeCustomAccess:
+		    {
+		    ASSERT(iSwTypeRegInfoArray->Count() > 0);
+		    iContentChunks->Des().TrimAll();
+		    Usif::CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
+		    regInfo.SetCustomAccessL(iSecureId, static_cast<Usif::TAccessMode>(iAccessMode));
+		    }
+		    break;
+		    
+		case ENodeLauncherExecutable:
+		    {
+		    ASSERT(iSwTypeRegInfoArray->Count() > 0);
+		    Usif::CSoftwareTypeRegInfo& regInfo = *infoArray[infoArray.Count()-1];
+		    HBufC* launcherExecutable = ConvertBufferTo16bitL(*iContentChunks);
+		    CleanupStack::PushL(launcherExecutable);
+		    launcherExecutable->Des().TrimAll();
+		    regInfo.SetLauncherExecutableL(*launcherExecutable);
+		    CleanupStack::PopAndDestroy(launcherExecutable);        
+		    }
+		    break;
 		}
 	
 	if (iContentChunks != NULL)
@@ -312,8 +329,8 @@
 		case ENodeLocalizedName:
 		case ENodeMimeType:
 		case ENodeSifPluginUid:
-		case ENodeInstallerSecureId:
-		case ENodeExecutionLayerSecureId:
+		case ENodeCustomAccess:  
+		case ENodeLauncherExecutable:
 			AddContentChunkL(aBytes);
 			break;
 
@@ -370,14 +387,6 @@
 		{
 		return ENodeSifPluginUid;
 		}
-	else if (aName == KNodeInstallerSecureId)
-		{
-		return ENodeInstallerSecureId;
-		}
-	else if (aName == KNodeExecutionLayerSecureId)
-		{
-		return ENodeExecutionLayerSecureId;
-		}
 	else if (aName == KNodeSoftwareType)
 		{
 		return ENodeSoftwareType;
@@ -386,6 +395,14 @@
 		{
 		return ENodeSoftwareTypeRegistrationData;
 		}
+	else if (aName == KNodeCustomAcess)
+	    {
+	    return ENodeCustomAccess;
+	    }
+	else if (aName == KNodeLauncherExecutable)
+	    {
+	    return ENodeLauncherExecutable;
+	    }
 	else
 		{
 		return ENodeNone;
--- a/installationservices/swi/source/sislauncher/server/swtypereginfoparser.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/swtypereginfoparser.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -38,7 +38,7 @@
 		static CSoftwareTypeRegInfoParser* NewL();
 		virtual ~CSoftwareTypeRegInfoParser();
 		
-		void ParseL(const TDesC8& aDocument, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
+		void ParseL(const TDesC8& aDocument, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
 
 	private:
 		// From MContentHandler
@@ -58,9 +58,11 @@
 	private:
 		CSoftwareTypeRegInfoParser();
 		
-		RPointerArray<CSoftwareTypeRegInfo>* iSwTypeRegInfoArray;
+		RPointerArray<Usif::CSoftwareTypeRegInfo>* iSwTypeRegInfoArray;
 		HBufC8* iContentChunks;
 		TLanguage iLocalizedNameLanguage;
+		TSecureId iSecureId;
+		TInt iAccessMode;
 		
 		enum TXmlNode
 			{
@@ -70,8 +72,8 @@
 			ENodeLocalizedName,
 			ENodeMimeType,
 			ENodeSifPluginUid,
-			ENodeInstallerSecureId,
-			ENodeExecutionLayerSecureId
+			ENodeCustomAccess,
+			ENodeLauncherExecutable
 			};
 		RArray<TXmlNode> iNodes;
 		
--- a/installationservices/swi/source/sisregistry/client/sisregistryentry.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/client/sisregistryentry.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 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"
@@ -315,6 +315,8 @@
 
 EXPORT_C void RSisRegistryEntry::AugmentationsL(RPointerArray<HBufC>& aPackageNames, RPointerArray<HBufC>& aVendorNames)
 	{
+	CleanupResetAndDestroyPushL(aPackageNames);
+    CleanupResetAndDestroyPushL(aVendorNames);
 	HBufC8* buffer = RSisRegistryEntry::SendReceiveBufferLC(EPackageAugmentations);
 	
 	// create a stream based on the buffer
@@ -340,6 +342,7 @@
 		CleanupStack::Pop(2, vendor);	//vendor package, 
 		}
 	CleanupStack::PopAndDestroy(3, buffer);// buffer, stream, packages
+	CleanupStack::Pop(2, &aPackageNames);
 	}
 
 EXPORT_C void RSisRegistryEntry::AugmentationsL(RPointerArray<CSisRegistryPackage>& aPackages)
@@ -392,6 +395,7 @@
 
 EXPORT_C void RSisRegistryEntry::ControllersL(RPointerArray<HBufC8>& aControllers)
 	{
+	CleanupResetAndDestroyPushL(aControllers);
 	HBufC8* buffer = SendReceiveBufferLC(EControllers);
 	
 	// this call returns pure data, so we don't incur the overheads of the streamstore
@@ -413,6 +417,7 @@
 		}
 	
 	CleanupStack::PopAndDestroy(buffer);
+	CleanupStack::Pop(&aControllers);
 	}
 
 EXPORT_C TChar RSisRegistryEntry::SelectedDriveL()
--- a/installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -106,7 +106,7 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 EXPORT_C void RSisRegistryWritableSession::AddEntryL(const CApplication& aApplication,
 													 const TDesC8& aController,
-													 const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray,
+													 const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray,
 													 TInt64 aTransactionID)
 	{
 	RBuf8 serializedArray;
@@ -223,7 +223,7 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 EXPORT_C void RSisRegistryWritableSession::UpdateEntryL(const CApplication& aApplication, 
 														const TDesC8& aController,
-														const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray,
+														const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray,
 														TInt64 aTransactionID)
 	{
 	RBuf8 serializedArray;
--- a/installationservices/swi/source/sisregistry/common/sisregistryhelperclient.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/common/sisregistryhelperclient.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -42,6 +42,7 @@
 
 EXPORT_C void RSisRegistryHelper::GetEquivalentLanguagesL(TLanguage aLangId,RArray<TLanguage>& aEquivLangs)
 	{
+	CleanupClosePushL(aEquivLangs);
 	// calculate the likely size of the data transfer buffer
 	const TInt KMaxBufSize=
 		sizeof(TInt)+                 // number of entries
@@ -69,4 +70,5 @@
 		}
 	// cleanup
 	CleanupStack::PopAndDestroy(2, buf); // buf
+	CleanupStack::Pop(&aEquivLangs);
 	}
--- a/installationservices/swi/source/sisregistry/server/siscontrollerverifier.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/siscontrollerverifier.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -96,9 +96,11 @@
 void CSisControllerVerifier::CompleteRequestL()
 	{
 	TPckg<TBool> packageResult(isVerified);
-
-	iMessage.WriteL(EIpcArgument0, packageResult);
-	iMessage.Complete(KErrNone);
+	if ( !iMessage.IsNull() )
+		{
+		iMessage.WriteL(EIpcArgument0, packageResult);
+		iMessage.Complete(KErrNone);
+		}
 	}
 	
 TInt CSisControllerVerifier::RunError(TInt)
--- a/installationservices/swi/source/sisregistry/server/sisregistryserver.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserver.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -121,14 +121,14 @@
 	iShutdown = NULL; //required in case the server dies before the session
 	}
 
-CSession2* CSisRegistryServer::NewSessionL(const TVersion& aClientVersion, const RMessage2&) const
+CSession2* CSisRegistryServer::NewSessionL(const TVersion& aClientVersion, const RMessage2& aMessage) const
 //
 // Create a new client session. This should really check the version number.
 //
 	{
 	if (aClientVersion == TVersion(1,0,0))
 		{
-		return new(ELeave) CSisRegistrySession();	
+		return new(ELeave) CSisRegistrySession(aMessage.SecureId());
 		}
 	else
 		{
--- a/installationservices/swi/source/sisregistry/server/sisregistryserverconst.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserverconst.h	Fri Jun 11 13:45:18 2010 +0300
@@ -49,8 +49,8 @@
 _LIT(KLogDir, "\\sys\\install\\log.txt");
 
 //Location of application registration resource files
-_LIT(KApparcRegFilePath, "\\private\\10003a3f\\apps\\");
-_LIT(KApparcRegFileImportPath, "\\private\\10003a3f\\import\\apps\\");
+_LIT(KApparcRegFilePath, "\\private\\10003a3f\\apps\\*.rsc");
+_LIT(KApparcRegFileImportPath, "\\private\\10003a3f\\import\\apps\\*.rsc");
 }
 
 #endif // __SISREGISTRYSERVERCONST_H__
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -31,6 +31,8 @@
 #include <swi/sistruststatus.h>
 #include <swi/sisregistrylog.h>
 #include <scs/ipcstream.h>
+#include <startupdomainpskeys.h>
+#include <e32const.h>
 
 #include "sislauncherclient.h"
 #include "swtypereginfo.h"
@@ -90,20 +92,45 @@
 	// Create a session with the Software Component Registry
 	User::LeaveIfError(iScrSession.Connect());
 
+	iIsFirstInit = IsFirstInvocationL();
+	
+#ifdef __WINSCW__
+	_LIT_SECURE_ID(KAppArcSID, 0x10003A3F);
+	if (KAppArcSID.iId == iClientSid.iId)
+	    {
+        DEBUG_PRINTF(_L8("SIS Registry Server: Init for a connection from AppArc"));
+        ProcessRomApplicationsL();
+	    }
+	else
+	    {
+        if (iIsFirstInit)
+            {
+            DEBUG_PRINTF2(_L8("SIS Registry Server: Init for a connection from SID 0x%X"), iClientSid.iId);
+            ProcessRomStubsL();
+            }
+	    }
+#else
 	TInt res = KErrNone;
 	TRAP(res , res = IsFirmwareUpdatedL());
-	
-	if (IsFirstInvocationL() || res )
+		
+	if (iIsFirstInit || res)
 		{
-		isFwUpdated = ETrue;
+		if (res)
+		    {
+		    iIsFwUpdated = ETrue;
+		    }
+
 		FirstInvocationInitL();
-		TRAP(res, UpdateRecentFWVersionL(););
-		if (res != KErrNone)
-			{
-			// log that
-			DEBUG_PRINTF2(_L8("Updating recent Firmware Version failed with error code = %d."), res);
-			}
+		if (iIsFwUpdated)
+		    {
+			TRAP(res, UpdateRecentFWVersionL());
+			if (res != KErrNone)
+                {
+                DEBUG_PRINTF2(_L8("Updating recent Firmware Version failed with error code = %d."), res);
+                }
+		    }		
 		}
+#endif
 	}
 
 CSisRegistrySession::~CSisRegistrySession()
@@ -135,48 +162,88 @@
 	return firstInvocation;
 	}
 
+void CSisRegistrySession::ProcessRomStubsL()
+    {
+    DEBUG_PRINTF(_L8("SIS Registry Server - Starting processing of ROM Stub sis files"));
+    iScrSession.CreateTransactionL();
+    ProcessRomDriveL();
+    iScrSession.CommitTransactionL();       
+        
+    // Create a file in <systemdrive>:\sys to mark a successful initialization
+    // so that we don't come here again (unless firmware is upgraded in which case <systemdrive>:\sys 
+    // should be cleaned
+    RBuf fileName;
+    CleanupClosePushL(fileName);
+    fileName.CreateL(KMaxPath);
+    TDriveUnit drive(iSystemDrive);
+    fileName = drive.Name();
+    fileName.Append(KSWIRegFirstInitFile);
+    RFile file;
+    CleanupClosePushL(file);
+    file.Replace(iFs, fileName, EFileWrite | EFileShareAny);
+    CleanupStack::PopAndDestroy(2, &fileName);  // file
+    
+    DEBUG_PRINTF(_L8("SIS Registry Server - Completed processing of ROM Stub sis files"));
+    }
+
+void CSisRegistrySession::ProcessRomApplicationsL()
+    {
+    TComponentId compId = 0;
+    DEBUG_PRINTF(_L8("SIS Registry Server - Deleteing all existing ROM applications."));
+    ScrHelperUtil::DeleteApplicationEntriesL(iScrSession, compId);
+    
+    //Register all apps found in \private\10003a3f\apps
+    TDriveUnit romDrive(SisRegistryUtil::SystemRomDrive());
+    RBuf romApparcRegFilePath;
+    romApparcRegFilePath.CreateL(romDrive.Name(), KMaxPath);
+    CleanupClosePushL(romApparcRegFilePath);
+    romApparcRegFilePath.Append(KApparcRegFilePath);
+    RegisterAllInRomAppL(romApparcRegFilePath);
+
+    //Register all apps found in \private\10003a3f\import\apps
+    romApparcRegFilePath = romDrive.Name();
+    romApparcRegFilePath.Append(KApparcRegFileImportPath);
+    RegisterAllInRomAppL(romApparcRegFilePath);
+    CleanupStack::PopAndDestroy(&romApparcRegFilePath);
+    
+    DEBUG_PRINTF(_L8("SIS Registry Server - Completed processing of all existing ROM applications."));
+    }
+
 // Does initialization required when run after very first boot of phone (or after firmware upgrade)
-// Method is only invoked when such a state is detected
+// Method is only invoked when such a state is detected (only in device, NOT in emulator)
 // Leaves behind a file in <systemdrive>:\sys to mark a successful initialization 
 void CSisRegistrySession::FirstInvocationInitL()
 	{
 	// Add the ROM installed stub details to SCR
 	// Create an SCR transaction, so that entries won't be added to the SCR if the function leaves
-	iScrSession.CreateTransactionL();
-	ProcessRomDriveL();
-	iScrSession.CommitTransactionL();
+    TInt value(EIdlePhase1NOK);
+    RProperty::Get(KPSUidStartup, KPSIdlePhase1Ok, value);
 	
-	TComponentId compId = 0;
-	DEBUG_PRINTF(_L8("SIS Registry Server - Deleteing all existing ROM applications."));
-	ScrHelperUtil::DeleteApplicationEntriesL(iScrSession, compId);
-
-	//Register all apps found in \private\10003a3f\apps
-	TDriveUnit romDrive(SisRegistryUtil::SystemRomDrive());
-	RBuf romApparcRegFilePath;
-	romApparcRegFilePath.CreateL(romDrive.Name(), KMaxPath);
-	CleanupClosePushL(romApparcRegFilePath);
-    romApparcRegFilePath.Append(KApparcRegFilePath);
-	RegisterAllInRomAppL(romApparcRegFilePath);
+    TBool isFromSWIDaemon = EFalse;
+    _LIT_SECURE_ID(KSWIDaemonSID, 0x10202DCE);
+    if (KSWIDaemonSID.iId == iClientSid.iId)
+        { 
+        isFromSWIDaemon = ETrue;
+        }
+	if ((value == EIdlePhase1Ok || isFromSWIDaemon) && iIsFirstInit)
+	    {
+        ProcessRomStubsL();
+	    }
 
-	//Register all apps found in \private\10003a3f\import\apps.
-	romApparcRegFilePath = romDrive.Name();
-	romApparcRegFilePath.Append(KApparcRegFileImportPath);
-	RegisterAllInRomAppL(romApparcRegFilePath);
-	CleanupStack::PopAndDestroy(&romApparcRegFilePath);
-	
-	// Create a file in <systemdrive>:\sys to mark a successful initialization
-	// so that we don't come here again (unless firmware is upgraded in which case <systemdrive>:\sys 
-	// should be cleaned
-	RBuf fileName;
-	CleanupClosePushL(fileName);
-	fileName.CreateL(KMaxPath);
-	TDriveUnit drive(iSystemDrive);
-	fileName = drive.Name();
-	fileName.Append(KSWIRegFirstInitFile);
-	RFile file;
-	CleanupClosePushL(file);
-	file.Replace(iFs, fileName, EFileWrite | EFileShareAny);
-	CleanupStack::PopAndDestroy(2, &fileName);	// file
+	if (iIsFwUpdated)
+	    {
+		// Delete the SisRegistry marker file
+        RBuf fileName;
+        CleanupClosePushL(fileName);
+        fileName.CreateL(KMaxPath);
+        TDriveUnit drive(iSystemDrive);
+        fileName = drive.Name();
+        fileName.Append(KSWIRegFirstInitFile);
+        iFs.Delete(fileName);
+        CleanupStack::PopAndDestroy(&fileName);
+
+        ProcessRomApplicationsL();
+	    }
 	}
 
 //
@@ -584,31 +651,13 @@
 	readStream.Open(aMessage, 3);
 	CleanupClosePushL(readStream);
 	
-	RCPointerArray<CSoftwareTypeRegInfo> swTypeRegInfoArray;
+	RCPointerArray<Usif::CSoftwareTypeRegInfo> swTypeRegInfoArray;
 	CleanupClosePushL(swTypeRegInfoArray);
 	SoftwareTypeRegInfoUtils::UnserializeArrayL(readStream, swTypeRegInfoArray);
 	
 	for (TInt i=0; i<swTypeRegInfoArray.Count(); ++i)
 		{
-		const CSoftwareTypeRegInfo& info = *swTypeRegInfoArray[i];
-		const RPointerArray<CLocalizedSoftwareTypeName>& locSwTypeNames = info.LocalizedSoftwareTypeNames();
-		RCPointerArray<Usif::CLocalizedSoftwareTypeName> scrSwTypeNames;
-		CleanupClosePushL(scrSwTypeNames);
-		for (TInt i=0; i<locSwTypeNames.Count(); ++i)
-			{
-			scrSwTypeNames.AppendL(Usif::CLocalizedSoftwareTypeName::NewLC(locSwTypeNames[i]->Name(), locSwTypeNames[i]->Locale()));
-			CleanupStack::Pop();
-			}
-
-		DEBUG_PRINTF2(_L("Sis Registry Server - Adding software type: %S"), &info.UniqueSoftwareTypeName());
-
-		iScrSession.AddSoftwareTypeL(info.UniqueSoftwareTypeName(),
-									 info.SifPluginUid(),
-									 info.InstallerSecureId(),
-									 info.ExecutionLayerSecureId(),
-									 info.MimeTypes(),
-									 &scrSwTypeNames);
-		CleanupStack::PopAndDestroy(&scrSwTypeNames);
+		iScrSession.AddSoftwareTypeL(*swTypeRegInfoArray[i]);
 		}
 	
 	RBuf uniqueNames;
@@ -1158,26 +1207,26 @@
 	
 	aMessage.ReadL(EIpcArgument0, executableSid);
 
-	// componentId and index of the first matching Sid in CompSID<index> array gets populated 
-	// by call to GetCompIdAndCompSidIndexL().The value of index is redundant here.
-	TComponentId componentId = 0;
-	TInt index = 0;
-	GetCompIdAndCompSidIndexL(sid, componentId, index);
+	// Retrieve the component Id's list for the Sid.
+	RArray<TComponentId> componentIdList;
+	CleanupClosePushL(componentIdList);
 	
-	if(componentId == KErrNotFound)
+	GetComponentIdsForSidL(sid, componentIdList);
+	
+	if(componentIdList.Count() == 0)
 		{
 		User::Leave(KErrNotFound);
 		}
 		
 	CSisRegistryPackage *package = NULL;
-	ScrHelperUtil::ReadFromScrL(iScrSession, componentId, package);
+	ScrHelperUtil::ReadFromScrL(iScrSession, componentIdList[0], package);
 	CleanupStack::PushL(package);
 	
 	DEBUG_PRINTF5(_L("Sis Registry Server - SID 0x%08x is owned by package UID: 0x%08x, Name: %S, Vendor: %S."),
 		sid.iUid, package->Uid().iUid, &(package->Name()), &(package->Vendor()));
 	
 	SisRegistryUtil::SendDataL(aMessage, *package, EIpcArgument1);
-	CleanupStack::PopAndDestroy(package);
+	CleanupStack::PopAndDestroy(2, &componentIdList);
 	
 	}
 
@@ -1196,19 +1245,13 @@
 
 	// Obtain the componentId and array index of CompSID<index> custom property matching a given aSid.
 	TComponentId componentId = 0;
-	TInt index = 0;
-	GetCompIdAndCompSidIndexL(sid, componentId, index, thirdParameter);
+	HBufC* fileName = SidToFileNameL(sid, componentId, thirdParameter);
 	
 	if(componentId == KErrNotFound)
 		{
 		User::Leave(KErrNotFound);
 		}
-
-  	// retrieve the CompSidFileName property value , based on the index obtained.
-  	TBuf<KSmlBufferSize> compSidFileName(KEmptyString);
-  	compSidFileName.Format(KCompSidFileNameFormat, index);
-		
-	HBufC* fileName = GetStrPropertyValueL(iScrSession, componentId, compSidFileName);
+	
 	CleanupStack::PushL(fileName);
 	DEBUG_PRINTF3(_L("Sis Registry Server - SID 0x%08x maps to file '%S'."),
 		sid.iUid, fileName);
@@ -1343,17 +1386,18 @@
 	aMessage.ReadL(EIpcArgument0, uid);
 	
 	TBool isPresent = EFalse;
-	TComponentId componentId = 0;
-	TInt index = 0;
+	RArray<TComponentId> componentIdList;
+	CleanupClosePushL(componentIdList);
 	
-	// If the supplied SID is present in SCR, then a call to GetCompIdAndCompSidIndexL succeeds.
-	// Else the componenetId will result in KErrNotFound.	
-	GetCompIdAndCompSidIndexL(uid(), componentId, index);
-	if(componentId != KErrNotFound)
+	// If the supplied SID is present in SCR, then a call to GetComponentIdsForSidL succeeds.
+	// Else componentIdList would be empty.	
+	GetComponentIdsForSidL(uid(), componentIdList);
+	
+	if(componentIdList.Count() != 0)
 		{
 		isPresent = ETrue;
 		}
-
+	CleanupStack::PopAndDestroy(&componentIdList);
 	DEBUG_CODE_SECTION(
 		if (isPresent)
 			{
@@ -1700,7 +1744,7 @@
 	return compId;
 	}
 	
-void CSisRegistrySession::AddAppEntryL(TComponentId aCompId, TUid aUid)
+void CSisRegistrySession::AddAppsFromStubL(TComponentId aCompId, TUid aUid)
     {
     TInt startingFileNo = 0;
     TInt fileCount = 0;
@@ -1750,7 +1794,15 @@
 			User::LeaveIfError(file.Open(fs, appFile, EFileRead));
 			Usif::CApplicationRegistrationData* appRegData  = launcher.SyncParseResourceFileL(file, appLanguages);
 			CleanupStack::PushL(appRegData);
-			ScrHelperUtil::AddApplicationEntryL(iScrSession, aCompId, *appRegData);
+			
+			TRAPD(err, ScrHelperUtil::AddApplicationEntryL(iScrSession, aCompId, *appRegData));
+			if (err == KErrAlreadyExists)
+                {
+                // Delete the existing application entry, which is not associated with any package 
+                ScrHelperUtil::DeleteApplicationEntryL(iScrSession, appRegData->AppUid());
+                ScrHelperUtil::AddApplicationEntryL(iScrSession, aCompId, *appRegData);
+                }
+			
 			CleanupStack::PopAndDestroy(appRegData);
 			CleanupStack::PopAndDestroy(2, buf);
 			}
@@ -2222,66 +2274,91 @@
 	CleanupStack::PopAndDestroy(&entryList);
 	}
 
-void CSisRegistrySession::GetCompIdAndCompSidIndexL(const TUid& aSid, TComponentId& aComponentId, TInt& aIndex, TInt aExpectedDrive)
-	{
+void CSisRegistrySession::GetComponentIdsForSidL(TUid aSid, RArray<TComponentId>& aComponentIds)
+	{   
+    _LIT(KComponentSidPropertyRegex, "CompSid%");
 	CComponentFilter* componentFilter = CComponentFilter::NewLC();
 	componentFilter->SetSoftwareTypeL(KSoftwareTypeNative);	
-	componentFilter->AddPropertyL(KCompSidsPresent, 1);
-		
-	// Retrieve the componentId of all the components with SIDs from the SCR.
-	RArray<TComponentId> componentIdList;
-	CleanupClosePushL(componentIdList);
-	iScrSession.GetComponentIdsL(componentIdList, componentFilter);
-		
-	TInt componentCount = componentIdList.Count();
-	RArray<TUid> sidArray;
-	CleanupClosePushL(sidArray);
-	TBool sidMatchFound = EFalse;
-
-	for(TInt i = 0; i < componentCount && !sidMatchFound; ++i)
-		{
-		TComponentId componentId = componentIdList[i];
-		sidArray.Reset();
-		ScrHelperUtil::InternalizeSidArrayL(iScrSession, componentId, sidArray);
-		
-		// index of the first matching SID in the array.
-		aIndex = sidArray.Find(aSid);	
-		if(aIndex == KErrNotFound)
-			continue;
+	componentFilter->AddPropertyL(KComponentSidPropertyRegex, static_cast<TUint>(aSid.iUid), CComponentFilter::ELike, CComponentFilter::EEqual);		
+	
+	// Retrieve all component Id's 
+	iScrSession.GetComponentIdsL(aComponentIds, componentFilter);
+	
+	CleanupStack::PopAndDestroy(componentFilter);
+	}
+	
 
-		// If the search is narrowed to a particular drive, get the file name and check whether it matches the drive
-		if (aExpectedDrive != -1)
-			{
-			TBuf<KSmlBufferSize> compSidFileName(KEmptyString);
-			compSidFileName.Format(KCompSidFileNameFormat, aIndex);
+HBufC* CSisRegistrySession::SidToFileNameL(TUid aSid, TComponentId& aComponentId, TInt aExpectedDrive)
+    {    
+    aComponentId = KErrNotFound;
+    RArray<TComponentId> componentIdList;
+    CleanupClosePushL(componentIdList);
+    
+    // Retrieve the component Id's.
+    GetComponentIdsForSidL(aSid, componentIdList);
+    
+    if(componentIdList.Count() == 0)
+        {
+        CleanupStack::PopAndDestroy(&componentIdList);
+        return NULL;
+        }
+    
+    RArray<TUid> sidArray;
+    CleanupClosePushL(sidArray);
+    TInt index(0);
+    TBuf<KSmlBufferSize> compSidFileName(KEmptyString);
+    HBufC* fileName = NULL;
+    
+    
+    if(aExpectedDrive == -1)
+        {
+        // No drive specified, just return the first component Id and the corresponding Sid index.  
+        aComponentId = componentIdList[0];
+        sidArray.Reset();
+        ScrHelperUtil::InternalizeSidArrayL(iScrSession, aComponentId, sidArray);
+        index = sidArray.Find(aSid);   
+        compSidFileName.Format(KCompSidFileNameFormat, index);   
+        fileName = GetStrPropertyValueL(iScrSession, aComponentId, compSidFileName); 
+        }
+    else
+        {
+        // If the search is narrowed to a particular drive, get the file name and check whether it matches the drive
+    
+        for(TInt i=0; i<componentIdList.Count(); ++i)
+            {
+            sidArray.Reset();
+            ScrHelperUtil::InternalizeSidArrayL(iScrSession, componentIdList[i], sidArray);
+            index = sidArray.Find(aSid);
+            
+            compSidFileName.Format(KCompSidFileNameFormat, index); 
+            fileName = GetStrPropertyValueL(iScrSession, componentIdList[i], compSidFileName);   
+			CleanupStack::PushL(fileName);
+          
+            if (fileName->Length() == 0)
+                {
+				 CleanupStack::PopAndDestroy(fileName);
+                 fileName = NULL;
+                 continue;
+                }
+            
+            TInt drive; 
+            User::LeaveIfError(RFs::CharToDrive((*fileName)[0], drive));
+            if(drive != aExpectedDrive)
+                {
+                CleanupStack::PopAndDestroy(fileName);
+                fileName = NULL;
+                continue;
+                }        
+            
+            //Expected drive found !
+            aComponentId = componentIdList[i];
+			CleanupStack::Pop(fileName);
+            break;
+            }     
+        } 	
+	CleanupStack::PopAndDestroy(2, &componentIdList);	
+	return fileName; // Ownership with caller.
 			
-			HBufC* fileName = GetStrPropertyValueL(iScrSession, componentId, compSidFileName);
-			CleanupStack::PushL(fileName);			
-			if (fileName->Length() == 0)
-				{
-				CleanupStack::PopAndDestroy(fileName);
-				continue;
-				}
-			TInt drive; 
- 			User::LeaveIfError(RFs::CharToDrive((*fileName)[0], drive));
- 			if(drive != aExpectedDrive)
- 				{
-				CleanupStack::PopAndDestroy(fileName);
- 				continue;
- 				}			
-			CleanupStack::PopAndDestroy(fileName);
-			}
-			
-		aComponentId = componentId;
-		sidMatchFound = ETrue;
-		}
-	
-	CleanupStack::PopAndDestroy(3, componentFilter); // componentIdList and sidArray.
-	if(!sidMatchFound)
-		{
-		// No component contains aSid.
-		aComponentId = KErrNotFound;
-		}
 	}
 
 TBool CSisRegistrySession::ModifiableL(const TDesC& aFileName)
@@ -2462,7 +2539,7 @@
 	TBool overwriteRegEntry = EFalse;
 	
     TBool isStubRegistered = IsRegisteredL(object->Uid(), object->Name());
-    if ( isFwUpdated && isStubRegistered )
+    if ( iIsFirstInit && isStubRegistered )
 	    {
 		TComponentId compId = ScrHelperUtil::GetComponentIdL(iScrSession, object->Uid(), object->Index());
 		TSisPackageTrust trustStatus;
@@ -2494,7 +2571,7 @@
 		{
 		// update cache or just call refresh
 		TComponentId compId = AddEntryL(*object, Usif::EScrCompHidden); // EScrCompHidden is supplied not to create any log for the ROM controller on the SCR side.
-	    AddAppEntryL(compId, object->Uid());
+		AddAppsFromStubL(compId, object->Uid());
 		
 		// store a copy of the controller
 		HBufC* name = SisRegistryUtil::BuildControllerFileNameLC(object->Uid(), object->Index(),
@@ -2760,28 +2837,29 @@
 
 void CSisRegistrySession::UpdateRecentFWVersionL()
     {
-        //Write a cache of the ROM version to a separate stream
-        //Build the filename for the cache file
-        TChar sysDrive = RFs::GetSystemDriveChar();
-        TInt maxSizeofFileName = KROMVersionStringCacheDir().Length() + KROMVersionStringCacheFileName().Length() + 1;
-        RBuf romVersionCacheFileName;
-        romVersionCacheFileName.CreateL(maxSizeofFileName);
-        romVersionCacheFileName.CleanupClosePushL();
-        romVersionCacheFileName.Append(sysDrive);
-        romVersionCacheFileName.Append(KROMVersionStringCacheDir());
-        romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
-        
-        //Read the length & value from it, if any.
-        RFileWriteStream romVerStream;
-        User::LeaveIfError(romVerStream.Replace(iFs,romVersionCacheFileName,EFileWrite));
-        CleanupClosePushL(romVerStream);
-        TBuf<KInfoBufLength> version;
-        GetSWVersion(version);
+    //Write a cache of the ROM version to a separate stream
+    //Build the filename for the cache file
+    TChar sysDrive = RFs::GetSystemDriveChar();
+    TInt maxSizeofFileName = KROMVersionStringCacheDir().Length() + KROMVersionStringCacheFileName().Length() + 1;
+    RBuf romVersionCacheFileName;
+    romVersionCacheFileName.CreateL(maxSizeofFileName);
+    romVersionCacheFileName.CleanupClosePushL();
+    romVersionCacheFileName.Append(sysDrive);
+    romVersionCacheFileName.Append(KROMVersionStringCacheDir());
+    romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
+    
+    iFs.MkDirAll(romVersionCacheFileName);
+    //Read the length & value from it, if any.
+    RFileWriteStream romVerStream;
+    User::LeaveIfError(romVerStream.Replace(iFs,romVersionCacheFileName,EFileWrite));
+    CleanupClosePushL(romVerStream);
+    TBuf<KInfoBufLength> version;
+    GetSWVersion(version);
 
-        // Write even if SysUtil returns err since all conditions are taken care during restore.
-        romVerStream.WriteUint32L(version.Length());
-        romVerStream.WriteL(version);
-        CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
+    // Write even if SysUtil returns err since all conditions are taken care during restore.
+    romVerStream.WriteUint32L(version.Length());
+    romVerStream.WriteL(version);
+    CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
     }
 
 void CSisRegistrySession::AppRegInfoEntryL(const RMessage2& aMessage)
@@ -2894,7 +2972,7 @@
 		appLanguages.AppendL(User::Language());
 		for (TInt index = 0; index < count; ++index)
 			{
-			appRegFileName = aRomApparcRegFilePath;
+			appRegFileName = TParsePtrC(aRomApparcRegFilePath).DriveAndPath();
 			appRegFileName.Append((*dir)[index].iName);
 			RFile file;
 			CleanupClosePushL(file);
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Fri Jun 11 13:45:18 2010 +0300
@@ -86,6 +86,8 @@
 	TInt GetAugmentationCountL(const TUid& aUid);
 	TBool IdentifyControllerL(Usif::TComponentId aComponentId, const TDesC& aFileName); // Used by CSisRegistrySubSession
 
+	CSisRegistrySession(TSecureId aClientSid);
+	
 private:
 	~CSisRegistrySession();
 	
@@ -172,7 +174,7 @@
 	TUint FixedDrivesL() const;
 	Usif::TComponentId AddRegistryEntryL(CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aController, Usif::TScrComponentOperationType aOpType);
 	Usif::TComponentId AddEntryL(CSisRegistryObject& aObject, Usif::TScrComponentOperationType aOpType);
-	void AddAppEntryL(Usif::TComponentId aCompId, TUid aUid);
+	void AddAppsFromStubL(Usif::TComponentId aCompId, TUid aUid);
 	void AddControllerL(const CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aBuffer, const TInt aDrive);
 	void AddCleanupInfrastructureL(CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aControllerBuffer);
 	TUint CreateSubsessionHandleL(const TUid& aPackageUid);
@@ -185,7 +187,8 @@
 	void ProcessRemovableDriveL(TInt aDrive);
 	void DiscoverControllersL(const TDesC& aRegistryPath, const TDesC& aDirectoryName);
 	void ExecuteUninstallLogL(const TDesC& aUninstallLogFile, const TDesC& aControllerFile);
-	void GetCompIdAndCompSidIndexL(const TUid& aSid, Usif::TComponentId& aComponentId, TInt& aIndex, TInt aExpectedDrive = -1);
+	void GetComponentIdsForSidL(TUid aSid, RArray<Usif::TComponentId>& aComponentIds);
+	HBufC* SidToFileNameL(TUid aSid, Usif::TComponentId& aComponentId, TInt aExpectedDrive);
 	TBool ModifiableL(const TDesC& aFileName);
 	CHashContainer* HashL(const TDesC& aFileName);
 	void RemovablePackageListL(RPointerArray<CSisRegistryPackage>& aPackages);
@@ -193,10 +196,10 @@
 	void RegisterInRomControllerL(const TDesC& aFileName);
 	void RegisterSoftwareTypesL(Usif::TComponentId aComponentId, const RMessage2& aMessage);
 	void UnregisterSoftwareTypesL(Usif::TComponentId aComponentId);
-
 	
-	TBool IsFirmwareUpdatedL();
-	 
+	void ProcessRomStubsL();
+	void ProcessRomApplicationsL();
+	TBool IsFirmwareUpdatedL();	 
 	void  UpdateRecentFWVersionL(); 
 	TInt GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames);
 
@@ -216,7 +219,9 @@
 	// Session handle to Software Component Registry
 	Usif::RSoftwareComponentRegistry iScrSession;
 
-	TBool isFwUpdated;
+	TSecureId iClientSid;
+	TBool iIsFwUpdated;
+	TBool iIsFirstInit;
 	};
 
 inline RFs& CSisRegistrySession::Fs()
@@ -235,6 +240,12 @@
 	return iScrSession;
 	}
 
+inline CSisRegistrySession::CSisRegistrySession(TSecureId aClientSid)
+    :CSession2()
+    {
+    iClientSid = aClientSid;
+    }
+
 } //namespace
 
 #endif // __SISREGISTRYSERVERSESSION_H__
--- a/installationservices/swi/source/sisregistry/server_legacy/sisregistrycache.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server_legacy/sisregistrycache.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 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"
@@ -1147,6 +1147,7 @@
 void CSisRegistryCache::GenerateControllersArrayL(const CSisRegistryObject& aObject, 
 												RPointerArray<HBufC8>& aControllers)
 	{
+	CleanupResetAndDestroyPushL(aControllers);
 	aControllers.ResetAndDestroy();
 	
 	// read the controller for every member of the list	
@@ -1158,6 +1159,7 @@
 		aControllers.AppendL(buffer);
 		CleanupStack::Pop(buffer);
 		}
+	CleanupStack::Pop(&aControllers);
 	}	
 		
 void CSisRegistryCache::AddControllerL(const CSisRegistryObject& aObject, 
--- a/installationservices/swi/source/swis/server/installationplanner.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installationplanner.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1196,58 +1196,58 @@
             CleanupStack::PopAndDestroy(targetFileName);  	    
             }                   
             
-            //Here we do extraction of rsc files ,before extracting files we check if there is an enough space on the disk(C drive)
-            //to extract the files then extract the file to a temporary location and
-            //check if it is a registration resource file(using target path) then store it into an array.     
-            TInt noOfFilesToBeExtracted = listOfFilesToBeExtracted.Count();            
-            DEBUG_PRINTF2(_L("Total number resource files (registration/localizable)to be extracted is %d"), noOfFilesToBeExtracted);            
-            if(0 != noOfFilesToBeExtracted)
-                {	
-                
-                //Check if there is enough space to extract the resource (registration or localizable) files    
-                if(totalApplicationDataSize > currentAvailableDriveSpace)
-                    {
-                    //No memory to extract the file
-                    User::LeaveIfError(KErrDiskFull);
-                    }
+        //Here we do extraction of rsc files ,before extracting files we check if there is an enough space on the disk(C drive)
+        //to extract the files then extract the file to a temporary location and
+        //check if it is a registration resource file(using target path) then store it into an array.     
+        TInt noOfFilesToBeExtracted = listOfFilesToBeExtracted.Count();            
+        DEBUG_PRINTF2(_L("Total number resource files (registration/localizable)to be extracted is %d"), noOfFilesToBeExtracted);            
+        if(0 != noOfFilesToBeExtracted)
+            {	
+            
+            //Check if there is enough space to extract the resource (registration or localizable) files    
+            if(totalApplicationDataSize > currentAvailableDriveSpace)
+                {
+                //No memory to extract the file
+                User::LeaveIfError(KErrDiskFull);
+                }
+            
+            //Extraction of rsc file to a temporary location and if it is a reg resource filr append t to an array for parsing
+            for (TInt i = 0 ; i < noOfFilesToBeExtracted ; i++)
+                {
+                TFileName resourceFileName;    
+                _LIT(KResourceFileNameFmt, "%c:\\resource\\install\\temp\\0x%08x\\%S"); // Pakage Uid  
+                TFileName finalToBeExtracted = TParsePtrC(listOfFilesToBeExtracted[i]->Target()).NameAndExt();              	             	                 
+                resourceFileName.Format(KResourceFileNameFmt, TUint(systemDrive), aController.Info().Uid().Uid().iUid,
+                        &finalToBeExtracted);
                 
-                //Extraction of rsc file to a temporary location and if it is a reg resource filr append t to an array for parsing
-                for (TInt i = 0 ; i < noOfFilesToBeExtracted ; i++)
-                    {
-                    TFileName resourceFileName;    
-                    _LIT(KResourceFileNameFmt, "%c:\\resource\\install\\temp\\0x%08x\\%S"); // Pakage Uid  
-                    TFileName finalToBeExtracted = TParsePtrC(listOfFilesToBeExtracted[i]->Target()).NameAndExt();              	             	                 
-                    resourceFileName.Format(KResourceFileNameFmt, TUint(systemDrive), aController.Info().Uid().Uid().iUid,
-                            &finalToBeExtracted);
-                    
-                     TInt err = fs.MkDirAll(resourceFileName);
-                     if (err!= KErrNone && err != KErrAlreadyExists)
-                         User::LeaveIfError(err);                                           
+                 TInt err = fs.MkDirAll(resourceFileName);
+                 if (err!= KErrNone && err != KErrAlreadyExists)
+                     User::LeaveIfError(err);                                           
+                              
+                 RFile resourceFile;    
+                 User::LeaveIfError(resourceFile.Replace(fs, resourceFileName, 
+                     EFileStream|EFileWrite|EFileRead|EFileShareExclusive));
+                 CleanupClosePushL(resourceFile);	         	         
+                 
+                 // Extract resource file to a temporary file.
+                 DEBUG_PRINTF2(_L("Current resource file (registration/localizable) to be extraced is %S"), &resourceFileName);
+                 User::LeaveIfError(iSisHelper.ExtractFileL(fs, resourceFile,
+                         listOfFilesToBeExtracted[i]->Index(), application->AbsoluteDataIndex(), UiHandler()));	 
+                 
+                 CleanupStack::PopAndDestroy(&resourceFile);
                                   
-                     RFile resourceFile;    
-                     User::LeaveIfError(resourceFile.Replace(fs, resourceFileName, 
-                         EFileStream|EFileWrite|EFileRead|EFileShareExclusive));
-                     CleanupClosePushL(resourceFile);	         	         
+                 // If target of the file is apparc's private folder then it is registration resource file for an app
+                 TParsePtrC filename(listOfFilesToBeExtracted[i]->Target());
+                 if (filename.Path().Left(KApparcRegDir().Length()).CompareF(KApparcRegDir) == 0)
+                     {
+                     HBufC* regResourceFileName = resourceFileName.AllocL();
                      
-                     // Extract resource file to a temporary file.
-                     DEBUG_PRINTF2(_L("Current resource file (registration/localizable) to be extraced is %S"), &resourceFileName);
-                     User::LeaveIfError(iSisHelper.ExtractFileL(fs, resourceFile,
-                             listOfFilesToBeExtracted[i]->Index(), application->AbsoluteDataIndex(), UiHandler()));	 
-                     
-                     CleanupStack::PopAndDestroy(&resourceFile);
-                                      
-                     // If target of the file is apparc's private folder then it is registration resource file for an app
-                     TParsePtrC filename(listOfFilesToBeExtracted[i]->Target());
-                     if (filename.Path().Left(KApparcRegDir().Length()).CompareF(KApparcRegDir) == 0)
-                         {
-                         HBufC* regResourceFileName = resourceFileName.AllocL();
-                         
-                         regFilesArray.AppendL(regResourceFileName);   	             
-                         }   
-                     }
-                //Since the files have been extracted the available disk space is reduced
-                currentAvailableDriveSpace -= totalApplicationDataSize;                
-                }            
+                     regFilesArray.AppendL(regResourceFileName);   	             
+                     }   
+                 }
+            //Since the files have been extracted the available disk space is reduced
+            currentAvailableDriveSpace -= totalApplicationDataSize;                
+            }            
     
         DEBUG_PRINTF(_L8("Finished extracting all resource files (registration/localizable) successfuly"));
         //Pass each registration resource file to the parser to fetch the app info  and then if icon file is present fetch the icon file
@@ -1297,109 +1297,122 @@
             HBufC* iconFileName = NULL;
             TInt fileSize = 0 ;
             
-            //If localizable info for an app is present then get the localized group name else get it from app registration data 
+            //If localizable info for an app is present get the localized group name, else get it from app registration data 
             if(0 == aLocalizableAppInfoList.Count())
                 {
-                groupName = appData->GroupName().AllocLC();
-                DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
+                if(appData->GroupName().Length())
+                    {
+                    groupName = appData->GroupName().AllocLC();
+                    DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
+                    }
                 //Since locale does not exists no need to extract, create CNativeApplicationInfo without iconFileName
-                applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, *groupName, *iconFileName);  
+                applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), _L(""));  
                 }
             else
                 {
                 Usif::CLocalizableAppInfo* localizedInfo = NULL;
                 const Usif::CCaptionAndIconInfo* captionAndIconInfo = NULL;
                 localizedInfo = aLocalizableAppInfoList[0];
-                groupName = localizedInfo->GroupName().AllocLC();	
+                if(localizedInfo->GroupName().Length())
+                    {
+                    groupName = localizedInfo->GroupName().AllocLC();
+                    }
                 captionAndIconInfo = localizedInfo->CaptionAndIconInfo();
                 //Check if caption and icon info for an app is present or not, if present extract the icon file.
                 if(captionAndIconInfo)
                     {
-                    TBuf<100> finalIconFileName;	            
-                    iconFileName = captionAndIconInfo->IconFileName().AllocLC();
+                    if(captionAndIconInfo->IconFileName().Length())
+                        iconFileName = captionAndIconInfo->IconFileName().AllocLC();
+                    
                     if(iconFileName != NULL)
-                      {	              
-                      finalIconFileName = TParsePtrC(*iconFileName).NameAndExt();
+                        {
+                        TBuf<100> finalIconFileName;
+                        finalIconFileName = TParsePtrC(*iconFileName).NameAndExt();
+                        
+                        _LIT(KIconFileNameFmt, "%c:\\resource\\install\\icon\\0x%08x\\%S");     // Applicaiton Uid
+                        iconFile.Format(KIconFileNameFmt, TUint(systemDrive), appuid.iUid,
+                        &finalIconFileName);
+                        
+                        TInt err = fs.MkDirAll(iconFile);
+                        if (err!= KErrNone && err != KErrAlreadyExists)
+                        User::LeaveIfError(err);
+                        
+                        //Find from the list of files to be copied , the file description of the icon file returned by the parser
+                        for(TInt k = 0; k < listOfFilesToBeAdded.Count() ; k++)
+                            {                      
+                            currentFileDescription = listOfFilesToBeAdded[k];
+                            if(TParsePtrC(currentFileDescription->Target()).NameAndExt().Compare(finalIconFileName))
+                                {
+                                break;
+                                }
+                            }	              
+                        //Check if there is enough space to extract the icon file           
+                        fileSize = currentFileDescription->UncompressedLength();
+                        if(currentAvailableDriveSpace <  fileSize)
+                            {
+                            //No memory to extract the file
+                            User::LeaveIfError(KErrDiskFull);
+                            }
                         
-                      _LIT(KIconFileNameFmt, "%c:\\resource\\install\\icon\\0x%08x\\%S");     // Applicaiton Uid
-                      iconFile.Format(KIconFileNameFmt, TUint(systemDrive), appuid.iUid,
-                            &finalIconFileName);
-                      
-                      TInt err = fs.MkDirAll(iconFile);
-                      if (err!= KErrNone && err != KErrAlreadyExists)
-                          User::LeaveIfError(err);
-                      
-                      //Find from the list of files to be copied , the file description of the icon file returned by the parser
-                      for(TInt k = 0; k < listOfFilesToBeAdded.Count() ; k++)
-                          {                      
-                          currentFileDescription = listOfFilesToBeAdded[k];
-                          if(TParsePtrC(currentFileDescription->Target()).NameAndExt().Compare(finalIconFileName))
-                              {
-                              break;
-                              }
-                          }	              
-                      //Check if there is enough space to extract the icon file           
-                      fileSize = currentFileDescription->UncompressedLength();
-                      if(currentAvailableDriveSpace <  fileSize)
-                         {
-                         //No memory to extract the file
-                         User::LeaveIfError(KErrDiskFull);
-                         }
-                      
-                      //Extracting the icon file to a temp location
-                      RFile tempIconFile;
-                      TInt index = 1;
-                      TBuf<10>  integerAppendStr;
-                      // Check if file already exists, if yes then create file with another name (e.g. *_1 or *_2)
-                      while(1)
-                          {	                  
-                          err = tempIconFile.Create(fs, iconFile, EFileStream|EFileWrite|EFileRead|EFileShareExclusive);
-                          if(err == KErrAlreadyExists)
-                              {	                     
-                              integerAppendStr.TrimAll();
-                              integerAppendStr.Format(_L("%d"), index++);
-                              TInt pos = iconFile.Length()-TParsePtrC(iconFile).Ext().Length();
-                              iconFile.Insert(pos,integerAppendStr);	                      
-                              }
-                          else if(err == KErrNone)
-                              {
-                              //Everthing is fine, proceed	                      
-                              break;               
-                              }
-                          else
-                              {
-                              tempIconFile.Close();
-                              User::Leave(err);
-                              }
-                          }
-                      CleanupClosePushL(tempIconFile);  
-                      
-                      DEBUG_PRINTF2(_L("Icon file to be extraced is %S"), &iconFile);
-                      User::LeaveIfError(iSisHelper.ExtractFileL(fs, tempIconFile, listOfFilesToBeAdded[i]->Index(), application->AbsoluteDataIndex(), UiHandler())); 	              
-                      DEBUG_PRINTF(_L8("Finished extracting Icon file successfuly"));
-                      //After copy the available disk space is reduced
-                      currentAvailableDriveSpace -= fileSize;
-                      CleanupStack::PopAndDestroy(2,iconFileName);  //file,iconFileSize
-                      
-                      //Create CNativeApplicationInfo with iconFileName
-                      applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, *groupName, iconFile);                  
-                      }
+                        //Extracting the icon file to a temp location
+                        RFile tempIconFile;
+                        TInt index = 1;
+                        TBuf<10>  integerAppendStr;
+                        // Check if file already exists, if yes then create file with another name (e.g. *_1 or *_2)
+                        while(1)
+                            {	                  
+                            err = tempIconFile.Create(fs, iconFile, EFileStream|EFileWrite|EFileRead|EFileShareExclusive);
+                            if(err == KErrAlreadyExists)
+                                {	                     
+                                integerAppendStr.TrimAll();
+                                integerAppendStr.Format(_L("%d"), index++);
+                                TInt pos = iconFile.Length()-TParsePtrC(iconFile).Ext().Length();
+                                iconFile.Insert(pos,integerAppendStr);	                      
+                                }
+                            else if(err == KErrNone)
+                                {
+                                //Everthing is fine, proceed	                      
+                                break;               
+                                }
+                            else
+                                {
+                                tempIconFile.Close();
+                                User::Leave(err);
+                                }
+                            }
+                        CleanupClosePushL(tempIconFile);  
+                        
+                        DEBUG_PRINTF2(_L("Icon file to be extraced is %S"), &iconFile);
+                        User::LeaveIfError(iSisHelper.ExtractFileL(fs, tempIconFile, listOfFilesToBeAdded[i]->Index(), application->AbsoluteDataIndex(), UiHandler())); 	              
+                        DEBUG_PRINTF(_L8("Finished extracting Icon file successfuly"));
+                        //After copy the available disk space is reduced
+                        currentAvailableDriveSpace -= fileSize;
+                        CleanupStack::PopAndDestroy(2,iconFileName);  //file,iconFileSize
+                        
+                        //Create CNativeApplicationInfo with iconFileName
+                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), iconFile);                  
+                        }
                     else
-                      {
-                      //Since iconFileName does not exists no need to extract, create CNativeApplicationInfo without iconName
-                      applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, *groupName, *iconFileName);  
-                      }
-                }
-             }	    
-           
+                        {
+                        //Since iconFileName does not exists no need to extract, create CNativeApplicationInfo without iconName
+                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), _L(""));  
+                        }
+                    }
+                }	    
+
             DEBUG_PRINTF2(_L("Application Uid 0x%08x"), appuid);
             DEBUG_PRINTF2(_L("Application Name %S"), appname);
-            DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
-            DEBUG_PRINTF2(_L("Application Icon File Name %S"), &iconFile);
+            if(groupName)
+                DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
+            if(iconFile.Length())
+                DEBUG_PRINTF2(_L("Application Icon File Name %S"), &iconFile);
                              
             const_cast <Sis::CController&>(aController).AddApplicationInfoL(applicationInfo);
             CleanupStack::Pop(applicationInfo);
-            CleanupStack::PopAndDestroy(3, appData);	//groupName,appName,appData
+            if(groupName)
+                CleanupStack::PopAndDestroy(3, appData);	//groupName,appName,appData
+            else
+                CleanupStack::PopAndDestroy(2, appData);    //appName,appData
             languages.Close();	    
             }
               
@@ -1418,7 +1431,7 @@
 	// Some files may need to be questioned of overwrite only when the planner is not in info collection mode.
 	if (!IsInInfoCollectionMode())	
 	#endif
-	 //Some files may need to be questioned of overwrite
+	//Some files may need to be questioned of overwrite
 		WarnEclipseOverWriteL(*application);
  	
  	// Reset the file list array for next controller use
--- a/installationservices/swi/source/swis/server/installationprocessor.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installationprocessor.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -582,6 +582,10 @@
 	iFilesToCopyCurrent = 0;
 	iFilesToCopy.ResetAndDestroy();
 	iApparcRegFiles.ResetAndDestroy();
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	iApparcRegFilesForParsing.ResetAndDestroy();
+	iApparcRegFileData.ResetAndDestroy();
+#endif
 	return ETrue;
 	}
 	
@@ -995,7 +999,6 @@
 	iFilesToCopy.ResetAndDestroy();
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
-	
 	RArray<TAppUpdateInfo> affectedApps;    
 	CleanupClosePushL(affectedApps);
 	const CApplication& application = ApplicationL();
@@ -1274,7 +1277,7 @@
            DEBUG_PRINTF2(_L("AppUid is 0x%x"), affectedApps[i].iAppUid);
            DEBUG_PRINTF2(_L("Action is %d"), affectedApps[i].iAction);
            }   
-        const_cast<CPlan&>(Plan()).ResetAffectedApps();
+        //const_cast<CPlan&>(Plan()).ResetAffectedApps();
         const_cast<CPlan&>(Plan()).SetAffectedApps(affectedApps);
         
         CleanupStack::PopAndDestroy(2, &componentIds);
--- a/installationservices/swi/source/swis/server/installationprocessor.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installationprocessor.h	Fri Jun 11 13:45:18 2010 +0300
@@ -359,7 +359,7 @@
 	
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	/** The list of the software types to be registered read from the XML registration file. */
-	RCPointerArray<CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
+	RCPointerArray<Usif::CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
 	RPointerArray<Usif::CApplicationRegistrationData> iApparcRegFileData;
    /**
      * The list of Apparc registration files to parse to populate SCR
--- a/installationservices/swi/source/swis/server/installmachine.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installmachine.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -81,7 +81,7 @@
 	RSisLauncherSession launcher;
 	CleanupClosePushL(launcher);
 	User::LeaveIfError(launcher.Connect());
-	RPointerArray<Usif::CApplicationRegistrationData> emptyAppRegDataArray;
+	RArray<TAppUpdateInfo> emptyAppRegDataArray;
 	launcher.NotifyNewAppsL(emptyAppRegDataArray);
 	CleanupStack::PopAndDestroy(&launcher);
 	}
@@ -540,25 +540,23 @@
 	             
             // Read-in the values of the settings - KAllowSelfSignedInstallKey. 
             // These will retain the default values if any error occurs.
-
 	        TRAPD(err, (allowSelfSigned = secSettingsSession.SettingValueL(KUidInstallationRepository , KAllowSelfSignedInstallKey)));
-
-	        if( err == KErrNone || err == KErrSettingNotFound || err == KErrNotFound || err == KErrCorrupt)
-				{
-                 if (err == KErrCorrupt)
-	                {
-                         DEBUG_PRINTF(_L8("Install Machine - CenRep file 2002cff6.txt is corrupt. Using Default Value to Install."));
-	                }
-				                  
-	             if (!allowSelfSigned || !SecurityAlertL(ETrue))
-					{
-	                 User::Leave(KErrCancel);
-					}
-				}
-	        else
-				{
-	              User::Leave(err);
-				}
+            if (err == KErrNone || err == KErrSettingNotFound || err == KErrNotFound || err == KErrCorrupt)
+                {
+                if (err == KErrCorrupt)
+                    {
+                    DEBUG_PRINTF(_L8("Install Machine - CenRep file 2002cff6.txt is corrupt. Using Default Value to Install."));
+                    }
+                
+                if (!allowSelfSigned || !SecurityAlertL(ETrue))
+                    {
+                    User::Leave(KErrCancel);
+                    }
+                }
+            else
+                {
+                User::Leave(err);
+                }
             CleanupStack::PopAndDestroy(&secSettingsSession);    	         			
 			break;
 		    }		   
@@ -632,11 +630,12 @@
 		}		
 		
 	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-	// Forcibly skip the OCSP check and directly go to the prerequisites checking state when the 
-	// machine runs in component information collection mode. OCSP would introduce latency which is not expected when retrieving component info
+	// Forcibly skip the OCSP & prerequisites checking and directly go to the plan installation state when the 
+	// machine runs in component information collection mode. OCSP would introduce latency which is not expected 
+	// when retrieving component info.
 	if(iInstallMachine.IsInInfoMode())
 		{	
-		return static_cast<TState*>(&iInstallMachine.iCheckPrerequisitesState);
+		return static_cast<TState*>(&iInstallMachine.iPlanInstallationState);
 		}
 	#endif
 
@@ -1428,10 +1427,6 @@
 			}
 		}
 	
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-	DeRegisterForceRegisteredAppsL();
-#endif
-
     iInstallMachine.CompleteSelf();
 	iInstallMachine.SetActive();
 	}
--- a/installationservices/swi/source/swis/server/installswtypehelper.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installswtypehelper.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -61,7 +61,7 @@
 			return ETrue;
 			}
 
-		void ParseRegFileL(RFs& aFs, const TDesC& aFileName, RPointerArray<CSoftwareTypeRegInfo>& aInfoArray)
+		void ParseRegFileL(RFs& aFs, const TDesC& aFileName, RPointerArray<Usif::CSoftwareTypeRegInfo>& aInfoArray)
 			{
 			// Open the file for reading
 			RFile file;
@@ -112,7 +112,7 @@
 			CleanupStack::PopAndDestroy(2, &file); // launcher
 			}
 
-		void RegisterMimeTypesL(const RPointerArray<CSoftwareTypeRegInfo>& aInfoArray)
+		void RegisterMimeTypesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aInfoArray)
 			{
 			const TInt numElems = aInfoArray.Count();
 			if (numElems == 0)
--- a/installationservices/swi/source/swis/server/installswtypehelper.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/installswtypehelper.h	Fri Jun 11 13:45:18 2010 +0300
@@ -28,6 +28,7 @@
 #define INSTALLSWTYPEHELPER_H
 
 #include <e32std.h>
+#include <usif/scr/screntries_platform.h>
 
 namespace Swi 
 	{
@@ -49,14 +50,14 @@
 		@param aFileName The file name of an XML file to be parsed.
 		@param aInfoArray The output array of registration info objects read from the aFileName.
 		*/
-		void ParseRegFileL(RFs& aFs, const TDesC& aFileName, RPointerArray<CSoftwareTypeRegInfo>& aInfoArray);
+		void ParseRegFileL(RFs& aFs, const TDesC& aFileName, RPointerArray<Usif::CSoftwareTypeRegInfo>& aInfoArray);
 
 		/**
 		Registers software type MIME types to the AppArc. Each Layered Execution Environment must register its
 		MIME types so the SifLauncher may handle installation requests.
 		@param aInfoArray The array of registration info objects describing new software types to be registered.
 		*/
-		void RegisterMimeTypesL(const RPointerArray<CSoftwareTypeRegInfo>& aInfoArray);
+		void RegisterMimeTypesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aInfoArray);
 		}
 	}
 
--- a/installationservices/swi/source/swis/server/planner.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/planner.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -231,6 +231,11 @@
 	// tree.
 	RPointerArray<CSisRegistryPackage> plannedPackages;
 	CleanupResetAndDestroy<RPointerArray<CSisRegistryPackage> >::PushL(plannedPackages);
+
+	// Add the root node in the planned packages, so that it is not added again (as a node in the tree)
+	// in case of a cyclic dependency.	
+	CSisRegistryPackage* rootPackage = CSisRegistryPackage::NewL(currentNode->PackageL());
+	plannedPackages.AppendL(rootPackage);
 	
 	while(ETrue)
 		{
--- a/installationservices/swi/source/swis/server/restoreprocessor.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/restoreprocessor.h	Fri Jun 11 13:45:18 2010 +0300
@@ -154,7 +154,7 @@
 		Usif::RStsSession& iStsSession;
 		RSisRegistryWritableSession& iRegistrySession;
 		/** The list of software types to be registered found in the XML registration file. */
-		RCPointerArray<CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
+		RCPointerArray<Usif::CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
 		/**
         * The list of Apparc registration files to parse to populate SCR
         */ 
--- a/installationservices/swi/source/swis/server/sidcache.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/sidcache.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -22,6 +22,7 @@
 #include <s32file.h>
 #include <e32uid.h>
 #include <f32file.h>
+#include <e32ldr_private.h>
 #include "securityinfo.h"
 
 namespace Swi 
--- a/installationservices/swi/source/swis/server/statemachine.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/source/swis/server/statemachine.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -20,7 +20,9 @@
 #include "log.h"
 #include "plan.h"
 #include "swispubsubdefs.h"
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
 #include <usif/scr/appregentries.h>
+#endif
 
 namespace Swi
 {
@@ -348,16 +350,13 @@
 		// re-generate the sisregistry cache .. very time consuming!
 		ResetRegistryCache();
 		}
-#endif
-
-	
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#else
 	// Deregister the force registered applications from AppArc
 	DEBUG_PRINTF(_L8("Deregistering the force registered applications with AppArc"));
 	RSisLauncherSession launcher;
 	CleanupClosePushL(launcher);
 	User::LeaveIfError(launcher.Connect());
-	RPointerArray<Usif::CApplicationRegistrationData> emptyAppRegDataArray;
+	RArray<TAppUpdateInfo> emptyAppRegDataArray;
 	launcher.NotifyNewAppsL(emptyAppRegDataArray);
 	CleanupStack::PopAndDestroy(&launcher);
 #endif
--- a/installationservices/swi/test/swicaptests/registrycaptest.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/swicaptests/registrycaptest.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -411,7 +411,7 @@
 		CheckFailL(err, _L("UpdateEntryL"));
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-		RCPointerArray<CSoftwareTypeRegInfo> regInfoArray;
+		RCPointerArray<Usif::CSoftwareTypeRegInfo> regInfoArray;
 		CleanupClosePushL(regInfoArray);
 		
 		TRAP(err, session.AddEntryL(*app, *buffer, regInfoArray, id));
--- a/installationservices/swi/test/swicaptests/swilaunchercaptest.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/swicaptests/swilaunchercaptest.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -160,7 +160,7 @@
 	
 	User::LeaveIfError(file.Open(fs, testDocFileOnSysDrive , EFileShareExclusive|EFileRead));
 	
-	RCPointerArray<Swi::CSoftwareTypeRegInfo> regInfoArray;
+	RCPointerArray<Usif::CSoftwareTypeRegInfo> regInfoArray;
 	CleanupClosePushL(regInfoArray);
 	
 	TRAP(err, launcher.ParseSwTypeRegFileL(file, regInfoArray));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/embed/cyclic_dependency_base.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,13 @@
+; This test file tests embedded cyclic dependencies.
+
+;Languages
+&EN
+
+;Header
+#{"cyclic_dependency_base"}, (0x811118FD), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+@"cyclic_dependency_embedded.sis",(0x811111E0)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/cyclic_dependency_embedded.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,15 @@
+; This test file tests cyclic dependencies.
+
+;Languages
+&EN
+
+;Header
+#{"cyclic_dependency_embedded"}, (0x811111E0), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+(0x811118FD), 1, 2, 3, {"cyclic_dependency_base"}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/swiappregintegration_multipleapp_performance.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,70 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of 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:
+; SA package containing complete resource files for English and French
+;
+
+;Languages
+&EN, FR
+
+#{"swiappregintegration_base01_EN","swiappregintegration_base01_FR"},(0x80010003),1,1,1,TYPE=SA
+
+;Localised Vendor name
+%{"Vendor_EN","Vendor_FR"}
+
+;Unique Vendor name
+:"Vendor"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_base01.exe" - "!:\sys\bin\swiappregintegration_base01.exe"
+
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_base01_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.rsc" -"!:\resource\apps\swiappregintegration_base01_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_rsc.mbm"
+
+if supported_language=01
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.r01" -"!:\resource\apps\swiappregintegration_base01_loc.r01"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_01.mbm"
+endif
+
+if supported_language=02
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.r02" -"!:\resource\apps\swiappregintegration_base01_loc.r02"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_02.mbm"
+endif
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration02.exe" - "!:\sys\bin\swiappregintegration02.exe"
+
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_loc.rsc" -"!:\resource\apps\swiappregintegration02_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration02_rsc.mbm"
+
+if supported_language=01
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_loc.r01" -"!:\resource\apps\swiappregintegration02_loc.r01"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration02_01.mbm"
+endif
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_case05.exe" - "!:\sys\bin\swiappregintegration_case05.exe"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case05\swiappregintegration_case05_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_case05_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case05\swiappregintegration_case05_loc.rsc" - "!:\resource\apps\swiappregintegration_case05_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration.mbm"
+
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_case06.exe" - "!:\sys\bin\swiappregintegration_case06.exe"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case06\swiappregintegration_case06_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case06\swiappregintegration_case06_loc.rsc" - "!:\resource\apps\swiappregintegration_case06_loc.rsc"
+
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_case07.exe" - "!:\sys\bin\swiappregintegration_case07.exe"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case07\swiappregintegration_case07_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_case07_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case07\swiappregintegration_case07_loc.rsc" - "!:\resource\apps\swiappregintegration_case07_loc.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/swiappregintegration_twoapps_performance.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,54 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of 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:
+; SA package containing complete resource files for English and French
+;
+
+;Languages
+&EN, FR
+
+#{"swiappregintegration_base01_EN","swiappregintegration_base01_FR"},(0x80010003),1,1,1,TYPE=SA
+
+;Localised Vendor name
+%{"Vendor_EN","Vendor_FR"}
+
+;Unique Vendor name
+:"Vendor"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_base01.exe" - "!:\sys\bin\swiappregintegration_base01.exe"
+
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_base01_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.rsc" -"!:\resource\apps\swiappregintegration_base01_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_rsc.mbm"
+
+if supported_language=01
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.r01" -"!:\resource\apps\swiappregintegration_base01_loc.r01"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_01.mbm"
+endif
+
+if supported_language=02
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_loc.r02" -"!:\resource\apps\swiappregintegration_base01_loc.r02"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration_base01_02.mbm"
+endif
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration02.exe" - "!:\sys\bin\swiappregintegration02.exe"
+
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_loc.rsc" -"!:\resource\apps\swiappregintegration02_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration02_rsc.mbm"
+
+if supported_language=01
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_loc.r01" -"!:\resource\apps\swiappregintegration02_loc.r01"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration02_01.mbm"
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/test_appreg_entries_armv5.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of 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:
+; 
+;
+
+;Languages
+&EN
+
+#{"test_appreg_entries_EN"},(0x80010009),1,1,1
+
+;Localised Vendor name
+%{"Vendor_EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\swiappregintegration_case06.exe" - "!:\sys\bin\swiappregintegration_case06.exe"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case06\swiappregintegration_case06_reg.rsc" - "!:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration_case06\swiappregintegration_case06_loc.rsc" - "!:\resource\apps\swiappregintegration_case06_loc.rsc"
+"\epoc32\data\z\tswi\tuiscriptadaptors\data\swiappregintegration01\swiappregintegration.mbm"  -"!:\resource\apps\swiappregintegration.mbm"
+
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_05.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_05.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_06.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_06.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_07.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_07.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_08.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_08.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_09.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_09.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_10.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/interpretsis_testcase_10.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -1,18 +1,3 @@
-;
-; 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: 
-;
 ;
 ; Install file for multi-lingual application
 ; supporting two language variants.
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 ; 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"
+; 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".
 ;
--- a/installationservices/swi/test/testexes/swtypereginfo_invalid1.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_invalid1.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg5</mimeType>
 		<sifPluginUid>F02866EF</sifPluginUid>
-		<installerSecureId>F0285BCB</installerSecureId>
-		<executionLayerSecureId>F0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="F0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="F0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid1</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_invalid2.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_invalid2.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid2</launcherExecutable>
 	</softwareType1>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_invalid3.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_invalid3.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,15 +6,17 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid3a</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType">
 		<localizedName language="15">testSwTypeLoc15</localizedName>
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg2</mimeType>
 		<sifPluginUid>C02866EF</sifPluginUid>
-		<installerSecureId>C0285BCB</installerSecureId>
-		<executionLayerSecureId>C0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="C0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="C0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid3b</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_invalid4.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_invalid4.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,15 +6,17 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid4a</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType2">
 		<localizedName language="15">testSwTypeLoc15</localizedName>
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg2</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>C0285BCB</installerSecureId>
-		<executionLayerSecureId>C0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="C0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="C0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid4b</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_invalid5.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_invalid5.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,15 +6,17 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid5a</launcherExecutable>
 	</softwareType>
 	<softwareType name="native">
 		<localizedName language="15">testSwTypeLoc15</localizedName>
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg2</mimeType>
 		<sifPluginUid>C02866EF</sifPluginUid>
-		<installerSecureId>C0285BCB</installerSecureId>
-		<executionLayerSecureId>C0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="C0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="C0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalid5b</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_native_invalid1.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_native_invalid1.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>application/vnd.symbian.install</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExenativeinvalid1</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_valid1.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_valid1.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid1</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_valid1_invalidupgrade.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_valid1_invalidupgrade.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCC</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCC" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExeinvalidupgrade</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_valid2.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_valid2.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,8 +6,9 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid2</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType2">
 		<localizedName language="1">
@@ -22,11 +23,8 @@
 		<sifPluginUid>
 			122866EF
 		</sifPluginUid>
-		<installerSecureId>
-			12285BCB
-		</installerSecureId>
-		<executionLayerSecureId>
-			82285DE0
-		</executionLayerSecureId>
+		<CustomAcess SecureId="12285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="82285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid2b</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/testexes/swtypereginfo_valid3.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/testexes/swtypereginfo_valid3.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,27 +6,31 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>text/sif-testpkg1</mimeType>
 		<sifPluginUid>A02866EF</sifPluginUid>
-		<installerSecureId>A0285BCB</installerSecureId>
-		<executionLayerSecureId>A0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="A0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="A0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid3a</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType2">
 		<mimeType>text/sif-testpkg2</mimeType>
 		<sifPluginUid>B02866EF</sifPluginUid>
-		<installerSecureId>B0285BCB</installerSecureId>
-		<executionLayerSecureId>B0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="B0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="B0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid3b</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType3">
 		<mimeType>text/sif-testpkg3</mimeType>
 		<sifPluginUid>C02866EF</sifPluginUid>
-		<installerSecureId>C0285BCB</installerSecureId>
-		<executionLayerSecureId>C0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="C0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="C0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid3c</launcherExecutable>
 	</softwareType>
 	<softwareType name="testSoftwareType4">
 		<localizedName language="5">testSwTypeLoc5</localizedName>
 		<localizedName language="3">testSwTypeLoc3</localizedName>
 		<mimeType>text/sif-testpkg4</mimeType>
 		<sifPluginUid>D02866EF</sifPluginUid>
-		<installerSecureId>D0285BCB</installerSecureId>
-		<executionLayerSecureId>D0285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="D0285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="D0285DE0" AccessMode="1"/>
+		<launcherExecutable>testExevalid3d</launcherExecutable>
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swi/test/tsisregistrytest/sessionstep.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/sessionstep.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -173,8 +173,8 @@
 	RPointerArray<Swi::CSisRegistryPackage> packages;
 	//StartTimer again to ignore time taken to read from config file
 	StartTimer();
+	CleanupResetAndDestroyPushL(packages);
 	iRegistryEntry.EmbeddingPackagesL(packages);
-	CleanupResetAndDestroyPushL(packages);
 	
 	if(packages.Count() != embeddingPkgCount)
 		{
--- a/installationservices/swi/test/tsisregistrytest_legacy/sessionstep.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest_legacy/sessionstep.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -138,10 +138,9 @@
 	    return TestStepResult();
 	    }
 	CleanupClosePushL(entry);
-	
+
+	CleanupResetAndDestroyPushL(packages);
 	entry.EmbeddingPackagesL(packages);
-	CleanupResetAndDestroyPushL(packages);
-	
 	
 	if(packages.Count() != embeddingPkgCount)
 		{
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/nonusiftuiscriptadaptors.script	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,42 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of 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
+// SWIS unit (integration) tests
+PRINT Run all SWIS tests
+LOAD_SUITE tuiscriptadaptors
+
+//! @SYMTestCaseID 		API-SEC-DEF082510-0001
+//! @SYMTestCaseDesc		Import ECOM plugins for apparc SidChecker interface - required by INC069526
+//! @SYMDEF			DEF082510
+//! @SYMTestPriority		High
+//! @SYMTestType		CIT
+//! @SYMTestStatus		3. Released
+//! @SYMTestActions 		Verify Sid presence query via plugni works.
+//! @SYMTestExpectedResults	Present when present, absent when absent
+//! @SYMDevelopedForRelease	Mike
+
+START_TESTCASE API-SEC-DEF082510-0001
+
+RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_absent
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe
+RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_present
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini u_exe
+RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_absent
+
+END_TESTCASE API-SEC-DEF082510-0001
+
+// Ensure that SWIS shuts down after the above tests to make sure heap checks run
+RUN_TEST_STEP 5 tuiscriptadaptors SwisNotRunning
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation.ini	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation.ini	Fri Jun 11 13:45:18 2010 +0300
@@ -430,4 +430,97 @@
 delete4=e:\resources\new_resources.txt
 
 
+//APPINS-SWI-PROP-0001
+[install_test_appreg_entries_armv5]
+sis=z:\tswi\tsis\data\test_appreg_entries_armv5.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple_drive_e.xml
+numexist=4
+exist0=e:\sys\bin\swiappregintegration_case06.exe
+exist1=e:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc
+exist2=e:\resource\apps\swiappregintegration_case06_loc.rsc
+exist3=e:\resource\apps\swiappregintegration.mbm
 
+[backup_files_armv5_test_appreg_entries]
+numcopy=5
+source0=e:\private\10202dce\80010009_0.sis
+dest0=c:\80010009_0.sis
+source1=e:\sys\bin\swiappregintegration_case06.exe
+dest1=c:\swiappregintegration_case06.exe
+source2=e:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc
+dest2=c:\swiappregintegration_case06_reg.rsc
+source3=e:\resource\apps\swiappregintegration_case06_loc.rsc
+dest3=c:\swiappregintegration_case06_loc.rsc
+source4=e:\resource\apps\swiappregintegration.mbm
+dest4=c:\swiappregintegration.mbm
+
+[uninstall_test_appreg_entries_armv5]
+uid=80010009
+script=z:\tswi\tuiscriptadaptors\scripts\simple_drive_e.xml
+
+[copy_to_mmc_armv5_test_appreg_entries]
+numcopy=6
+source0=c:\80010009_0.sis
+dest0=e:\private\10202dce\80010009_0.sis
+source1=c:\80010009_0.sis
+dest1=e:\80010009_0.sis
+source2=c:\swiappregintegration_case06.exe
+dest2=e:\sys\bin\swiappregintegration_case06.exe
+source3=c:\swiappregintegration_case06_reg.rsc
+dest3=e:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc
+source4=c:\swiappregintegration_case06_loc.rsc
+dest4=e:\resource\apps\swiappregintegration_case06_loc.rsc
+source5=c:\swiappregintegration.mbm
+dest5=e:\resource\apps\swiappregintegration.mbm
+
+[cleanup_backup_armv5_test_appreg_entries]
+numdelete=5
+delete0=c:\80010009_0.sis
+delete1=c:\swiappregintegration_case06.exe
+delete2=c:\swiappregintegration_case06_reg.rsc
+delete3=c:\swiappregintegration_case06_loc.rsc
+delete4=c:\swiappregintegration.mbm
+
+[install_stub_armv5_test_appreg_entries]
+sis=e:\80010009_0.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple_drive_e.xml
+numexist=4
+exist0=e:\sys\bin\swiappregintegration_case06.exe
+exist1=e:\private\10003a3f\import\apps\swiappregintegration_case06_reg.rsc
+exist2=e:\resource\apps\swiappregintegration_case06_loc.rsc
+exist3=e:\resource\apps\swiappregintegration.mbm
+
+[uninstall_armv5_test_appreg_entries]
+uid=80010009
+script=z:\tswi\tuiscriptadaptors\scripts\simple_drive_e.xml
+
+[verify_case06_base_armv5]
+AppRegEntriesConfigCount=1
+configsection0 = verify_case06_base_data_armv5
+CompareWithDb=True
+
+[verify_case06_base_data_armv5]
+AppUid=90000006
+AppFile=E:\sys\bin\swiappregintegration_case06.exe
+Attributes=0
+Hidden=0
+Embeddability=0
+NewFile=0
+Launch=0
+GroupName=GroupI
+DefaultScreenNumber=2
+AppOpaqueDataInfoCount=0
+OwnedFileCount=0
+ServiceInfoCount=0
+LocalizableAppInfoCount=1
+LocAppLanguage0=0
+LocShortCaption0=HW_RSC
+LocCaption0=HelloWorld_RSC
+LocNumberOfAppIcons0=127
+LocIconFileName0=C:\resource\apps\swiappregintegration.mbm
+LocGroupName0=Group_RSC
+PropertiesCount=0
+
+[temp_files]
+DbFilePath=e:\resource\apps\swiappregintegration.mbm
+JournalFilePath=e:\resource\apps\swiappregintegration.mbm
+
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation_arm.script	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tpropagation_arm.script	Fri Jun 11 13:45:18 2010 +0300
@@ -17,6 +17,8 @@
 // SWIS unit (integration) tests
 PRINT Propagation tests running...
 LOAD_SUITE tuiscriptadaptors
+LOAD_SUITE tscrapparc
+LOAD_SUITE tscr
 
 //! @SYMTestCaseID 		API-SEC-Propagation-HW-0001
 //! @SYMTestCaseDesc 		Tests that a propagation will install correctly with a modified version of one of the files listed in the stub file.
@@ -256,4 +258,36 @@
 END_TESTCASE API-SEC-SWI-PREQ1912-MP-HW-0002
 
 
+//! @SYMTestCaseID 		APPINS-SWI-PROP-HW-0001
+//! @SYMTestCaseDesc 		Tests that a propagation will install as per required and the SCR db is populated correctly
+//! @SYMTestPriority 		Medium
+//! @SYMTestActions 		Simulate a propagation installation and verify the contents retrieved from SCR db.
+//! @SYMTestExpectedResults 	Required application's details correctly retrieved from the db.
 
+START_TESTCASE APPINS-SWI-PROP-HW-0001
+
+RUN_TEST_STEP_RESULT -21 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini E
+DELAY 2000
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini E
+
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini install_test_appreg_entries_armv5
+RUN_TEST_STEP 100 tscrapparc ScrGetApplicationRegistrationView z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini verify_case06_base_armv5
+RUN_TEST_STEP 100 tuiscriptadaptors SwiCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini backup_files_armv5_test_appreg_entries
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini uninstall_test_appreg_entries_armv5
+
+RUN_TEST_STEP 100 tuiscriptadaptors SwiCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini copy_to_mmc_armv5_test_appreg_entries
+RUN_TEST_STEP 100 tuiscriptadaptors SwiDeleteFilesStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini cleanup_backup_armv5_test_appreg_entries
+
+RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini E
+DELAY 2000
+RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini E
+DELAY 2000
+
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini install_stub_armv5_test_appreg_entries
+RUN_TEST_STEP 100 tscrapparc ScrGetApplicationRegistrationView z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini verify_case06_base_armv5
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini uninstall_armv5_test_appreg_entries
+
+END_TESTCASE APPINS-SWI-PROP-HW-0001
+
+// Deleting the temporary files, but not the SCR DB. Here we are reusing the step to delete something under resource\apps
+RUN_TEST_STEP 100 tscr SCRDeleteDbFile z:\tswi\tuiscriptadaptors\scripts\tpropagation.ini temp_files
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.ini	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.ini	Fri Jun 11 13:45:18 2010 +0300
@@ -1382,4 +1382,19 @@
 
 [u_smlsyncagent]
 uid=10009f46
-script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
\ No newline at end of file
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[cyclicDependency_A]
+sis=z:\tswi\tsis\data\cyclic_dependency_base.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[cyclicDependency_B]
+sis=z:\tswi\tsis\data\cyclic_dependency_embedded.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[cyclicDependency_U_B]
+uid=811111E0
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[cyclicDependency_Uid]
+packageUid=811118FD
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.script	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of the License "Eclipse Public License v1.0"
@@ -806,27 +806,6 @@
 END_TESTCASE API-SEC-DEF076366-0001
 
 
-//! @SYMTestCaseID 		API-SEC-DEF082510-0001
-//! @SYMTestCaseDesc		Import ECOM plugins for apparc SidChecker interface - required by INC069526
-//! @SYMDEF			DEF082510
-//! @SYMTestPriority		High
-//! @SYMTestType		CIT
-//! @SYMTestStatus		3. Released
-//! @SYMTestActions 		Verify Sid presence query via plugni works.
-//! @SYMTestExpectedResults	Present when present, absent when absent
-//! @SYMDevelopedForRelease	Mike
-
-START_TESTCASE API-SEC-DEF082510-0001
-
-RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_absent
-RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe
-RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_present
-RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini u_exe
-RUN_TEST_STEP 100 tuiscriptadaptors QuerySidViaApparcPlugin z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini exe_absent
-
-END_TESTCASE API-SEC-DEF082510-0001
-
-
 //! @SYMTestCaseID 		API-SEC-BOGUS_LOGO-0001
 //! @SYMTestCaseDesc		Installs a SIS file with a bogus logo
 //! @SYMDEF			DEF087165 
@@ -1326,6 +1305,19 @@
 
 END_TESTCASE API-SEC-SWIREG-Hidden-0004
 
+//! @SYMTestCaseID SEC-cyclicDependency-PDEF145405
+//! @SYMTestCaseDesc User installs a package(A) with dependency on package (B), then installs package B with dependency on A, then unistalls pkg B
+//! @SYMDEF  INC
+//! @SYMTestPriority High
+//! @SYMTestActions  Install SA pkg and then Install another SA package, Uninstall second SA
+//! @SYMTestExpectedResults The SIS gets installed and uninstalled successfully
 
+
+START_TESTCASE cyclicDependency
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini cyclicDependency_A
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini cyclicDependency_B
+RUN_TEST_STEP 100 tuiscriptadaptors RemoveWithLastDependent z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini cyclicDependency_Uid
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.ini cyclicDependency_U_B
+END_TESTCASE cyclicDependency
 // Ensure that SWIS shuts down after the above tests to make sure heap checks run
 RUN_TEST_STEP 5 tuiscriptadaptors SwisNotRunning
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.ini	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,59 @@
+[swiappregintegration_performance]
+MaxDuration=2000
+sis=z:\tswi\tsis\data\swiappregintegration01.sis
+script=z:\tswi\tuiscriptadaptors\scripts\devlangsel.xml
+devicelanguage0=01
+devicelanguage1=03
+devicelanguage2=24
+
+[swiappregintegration_nolang_performance]
+MaxDuration=1700
+sis=z:\tswi\tsis\data\swiappregintegration01.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[swiappregintegration_sa_app_performance]
+MaxDuration=1500
+sis=z:\tusif\tsif\data\swiappregintegration_case08_sa2.sis
+script=z:\tswi\tuiscriptadaptors\scripts\devlangsel.xml
+devicelanguage0=01
+
+[swiappregintegration_no_app_performance]
+MaxDuration=1500
+sis=z:\tusif\tsif\data\swiappregintegration_case08_sa1.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[swiappregintegration_oneapp_performance]
+MaxDuration=1500
+sis=z:\tswi\tsis\data\swiappregintegration_base01.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[swiappregintegration_twoapps_performance]
+MaxDuration=1500
+sis=z:\tswi\tsis\data\swiappregintegration_twoapps_performance.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[basic_noapp_performance]
+MaxDuration=1500
+sis=z:\tswi\tsis\data\simple1.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[u_basic_noapp_performance]
+uid=80008880
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[u_swiappregintegration_base01]
+uid=80010003
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[u_swiappregintegration_case01]
+uid=80010002
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[swiappregintegration_multipleapp_performance]
+MaxDuration=2000
+sis=z:\tswi\tsis\data\swiappregintegration_multipleapp_performance.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[u_swiappregintegration_no_app]
+uid=80010099
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tuiscriptadaptors_app_performance.script	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,105 @@
+//
+// 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 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
+// SWIS unit (integration) tests
+PRINT Run all SWIS tests
+LOAD_SUITE tuiscriptadaptors
+LOAD_SUITE tSisRegistryTest
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0001
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having an executable
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file an exe
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0001
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini basic_noapp_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_basic_noapp_performance
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0001
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0002
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having complete appregistration data for EN, GE and IF
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file having complete appregistration data
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0002
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_case01
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0002
+
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0003
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having complete appregistration data for EN, GE and IF
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file having complete appregistration data with zero device supported languages
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0003
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_nolang_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_case01
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0003
+
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0004
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having an application with registration resouce file and localized data (3 loc files)
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file having a single application with minimal data (app data, loclized App Info and Caption and icon info)
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0004
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_oneapp_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_base01
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0004
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0005
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having two applications with registration resouce file and localized data (3 and 2 loc files)
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file having two applications with minimal data (app data, loclized App Info and Caption and icon info)
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0005
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_twoapps_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_base01
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0005
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0006
+//! @SYMTestCaseDesc		Tests the performance of Installation of a SIS file having five applications with registration resouce file and localized data (3,2,1,1 and 1 loc files)
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installs a SIS file having two applications with minimal data (app data, loclized App Info and Caption and icon info)
+//! @SYMTestExpectedResults	File installs sucessfull
+
+START_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0006
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_multipleapp_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_base01
+END_TESTCASE APPINSTALL-SWI-APPREG-INTEGRATION-0006
+
+// Ensure that SWIS shuts down after the above tests to make sure heap checks run
+RUN_TEST_STEP 5 tuiscriptadaptors SwisNotRunning
+
+//! @SYMTestCaseID		APPINSTALL-SWI-APPREG-PERFORMANCE-0007
+//! @SYMTestCaseDesc		Tests the performance of upgrade of a SIS file which delivers some files and upgrade delivering no files.
+//! @SYMTestPriority		Medium
+//! @SYMTestActions		Installation succeeds
+//! @SYMTestExpectedResults	File installs sucessfully
+
+START_TESTCASE APPINSTALL-SWI-APPREG-PERFORMANCE-0007
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_sa_app_performance
+RUN_TEST_STEP 100 tuiscriptadaptors InstallPerformanceStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini swiappregintegration_no_app_performance
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.ini u_swiappregintegration_no_app
+END_TESTCASE APPINSTALL-SWI-APPREG-PERFORMANCE-0007
+
+
--- a/installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -36,7 +36,9 @@
 
 #include "dessisdataprovider.h"
 #include "cafsisdataprovider.h"
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #include <apsidchecker.h>
+#endif
 #include <e32math.h>
 
 using namespace Swi;
@@ -756,6 +758,7 @@
 
 	iAsyncLauncher=CAsyncLauncher::NewL();
 	User::LeaveIfError(RProperty::Get(KUidSystemCategory, KSystemStartupModeKey, iBootMode));
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #ifndef SWI_TEXTSHELL_ROM
 	if (iBootMode != KTextShell) 
 		{
@@ -771,6 +774,9 @@
 	// we always get the boot mode as 0 , reset the value to 1.
 	iBootMode = KTextShell;
 #endif
+#else
+	iBootMode = KTextShell;
+#endif
 	iNotificationCount = 0;
 	}
 
@@ -784,6 +790,7 @@
 
 	delete iWatchdog;
 	iWatchdog=0;
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #ifndef SWI_TEXTSHELL_ROM
 	if (iBootMode != KTextShell)
 		{
@@ -791,6 +798,7 @@
 		delete iSwiSidChecker;
 		}
 #endif
+#endif
 	CActiveScheduler::Install(0);
 	delete iScheduler;
 	iScheduler=0;
--- a/installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/tswisasyncstep.h	Fri Jun 11 13:45:18 2010 +0300
@@ -119,7 +119,9 @@
  * @test
  * @internalComponent
  */
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 class CAppSidChecker;
+#endif
 class CAsyncManager : public CActive
 	{
 public:
@@ -189,9 +191,9 @@
 	CWatchdog* iWatchdog;
 
 	Swi::CAsyncLauncher* iAsyncLauncher;
-
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	CAppSidChecker *iSwiSidChecker;
-
+#endif
 	TInt iNotificationCount;
 	TInt iBootMode;
 	};
--- a/installationservices/swi/test/tuiscriptadaptors/tswisserver.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/tswisserver.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -133,6 +133,8 @@
 	// install steps
 	if (aStepName == KSwisInstallStep)	// Install with file name
 		testStep = new CSwisInstallStep(CSwisInstallStep::EUseFileName);
+	else if (aStepName == KSwisInstallPerformanceStep)
+	    testStep = new CSwisInstallStep(CSwisInstallStep::ECheckInstallPerformance);
 	else if (aStepName == KSwisInstallFHStep)	// Install with file handle
 		testStep = new CSwisInstallStep(CSwisInstallStep::EUseFileHandle);
 	else if (aStepName == KSwisInstallMemStep)	// Install with CDesDataProvider
@@ -235,6 +237,8 @@
 		testStep = new CSwisUninstallPkgsStep(CSwisUninstallPkgsStep::EPkgDetails);
 	else if (aStepName == KSwisGetPublishedUidArrayStep)  // Get Published Package Uid's Array
 	        testStep = new CSwisCheckPublishUidStep();
+	else if (aStepName == KSwisRemoveWithLastDependent)  // Set RemoveWithLastDependent
+		testStep = new CSwisSetRemoveWithLastDependent();
 	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	else if (aStepName == KCheckSCRFieldStep)	// Check the SCR components' 'Origin Verified', 'Known Revoked', 'DRM Ptotected' field values.
 		testStep = new CCheckScrFieldStep();
--- a/installationservices/swi/test/tuiscriptadaptors/tswisstep.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/tswisstep.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -907,6 +907,10 @@
 		case EUseFileName:
 			SetTestStepName(KSwisInstallStep);
 			break;
+			
+		case ECheckInstallPerformance:
+		    SetTestStepName(KSwisInstallPerformanceStep);
+		    break;
 		
 		case EUseCAF:
 			SetTestStepName(KSwisInstallCAFStep);
@@ -1212,6 +1216,13 @@
 	return TestStepResult();
 	}
 
+void CSwisInstallStep::PrintPerformanceLog(TTime aTime)
+    {
+    _LIT(KPerformanceTestInfo, "PERFORMANCE_LOG_INFORMATION");
+    TDateTime timer = aTime.DateTime();
+    INFO_PRINTF6(_L("%S,%d:%d:%d:%d"), &KPerformanceTestInfo(), timer.Hour(), timer.Minute(), timer.Second(), timer.MicroSecond());
+    }
+
 TInt CSwisInstallStep::DoInstallL(CInstallPrefs& aInstallPrefs)
 	{
 	switch (iInstallType)
@@ -1226,6 +1237,51 @@
 			return error;
 			}
 
+		case ECheckInstallPerformance:
+		    {
+		    _LIT(KMaxDurationName, "MaxDuration");
+            _LIT(KMaxTestCaseDuration, "TEST_CASE_MAXIMUM_ALLOWED_DURATION");
+            _LIT(KActualTestCaseDuration, "TEST_CASE_ACTUAL_DURATION");
+            
+            TInt maxDuration = 0;
+            if(!GetIntFromConfig(ConfigSection(), KMaxDurationName, maxDuration))
+                {
+                ERR_PRINTF2(_L("%S could not be found in configuration."), &KMaxDurationName());
+                User::Leave(KErrNotFound);
+                }
+            
+		    TInt error;
+		    TTime startTime, endTime;
+		    startTime.HomeTime(); // Set the start time
+		    PrintPerformanceLog(startTime);
+		    
+            if (iUseDeviceLanguages)
+                error = Launcher::Install(*iUi, iSisFileName, aInstallPrefs, iDeviceLanguages);
+            else
+                error = Launcher::Install(*iUi, iSisFileName, aInstallPrefs);
+            
+            // Calculate the time taken for installation in milliseconds
+            endTime.HomeTime();
+            PrintPerformanceLog(endTime);            
+            TTimeIntervalMicroSeconds duration = endTime.MicroSecondsFrom(startTime);
+            TInt actualDuration = I64INT(duration.Int64())/1000;
+            
+            INFO_PRINTF3(_L("%S,%d"), &KMaxTestCaseDuration(), maxDuration);
+            INFO_PRINTF3(_L("%S,%d"), &KActualTestCaseDuration(), actualDuration);
+                        
+            if(actualDuration <= maxDuration)
+                {
+                INFO_PRINTF2(_L("This test meets performance requirement (Duration=%d)."), actualDuration);
+                }
+            else
+                {
+                ERR_PRINTF2(_L("This test does not meet performance requirement (Duration=%d)."), actualDuration);
+                error = KErrGeneral;
+                SetTestStepResult(EFail);
+                }
+                
+            return error;
+		    }
 
 		case EUseOpenFileName:
 		// open the file as a shared for readers only
@@ -2023,18 +2079,21 @@
 
 CSwisMmcStep::~CSwisMmcStep()
 	{
+	#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	#ifndef SWI_TEXTSHELL_ROM
 	if (iBootMode != KTextShell)
 		{
 		delete iSwiSidChecker;
 		}
 	#endif
+	#endif
 	}
 
 TVerdict CSwisMmcStep::doTestStepPreambleL()
 	{
 	// Get the System Startup Mode
 	User::LeaveIfError(RProperty::Get(KUidSystemCategory, KSystemStartupModeKey, iBootMode));
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
 #ifndef SWI_TEXTSHELL_ROM
 	if (iBootMode != KTextShell)
 		{
@@ -2052,6 +2111,9 @@
 	// we always get the boot mode as 0 , reset the value to 1.
 	iBootMode = KTextShell;
 #endif
+#else
+	iBootMode = KTextShell;
+#endif
 
 	RFs fs;
 	User::LeaveIfError(fs.Connect());
@@ -2342,6 +2404,7 @@
 						}
 			
 					TInt presentMatchingDrives = 0;
+					#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 					for(TInt drive=EDriveA; drive<=EDriveZ; ++drive)
 						{
 							if(iSwiSidChecker->AppRegisteredAt(sid, drive))
@@ -2351,7 +2414,7 @@
 								INFO_PRINTF2(_L("AppRegisteredAt returned true for drive: %d"), drive);
 								}  
 						}
-			
+					#endif
 					if(presentMatchingDrives != expectMatchingDrives)
 						{
 						WARN_PRINTF4(_L("Matching drives mismatch for exe, SID = 0x%x - expected %d got %d"), 
@@ -2956,6 +3019,7 @@
 // to duplicate it here so we can load the apparc plugin to be able to test it.
 //
 //const TUid KAppSidCheckerInterfaceUid = {0x10281FBB};
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #ifndef SWI_TEXTSHELL_ROM
 const TUid KAppSidCheckerInterfaceUidv2 = {0x20007D8C};
 
@@ -2973,4 +3037,40 @@
 	return reinterpret_cast<CAppSidChecker*>(ptr);
 	}
 #endif
+#endif
+/////
+//Step to Set RemoveWithLastDependent property
+/////
+
+CSwisSetRemoveWithLastDependent::CSwisSetRemoveWithLastDependent()
+    {
+    }
+
+CSwisSetRemoveWithLastDependent::~CSwisSetRemoveWithLastDependent()
+    {
+    }
+
+TVerdict CSwisSetRemoveWithLastDependent::doTestStepL()
+    {
+    RSisRegistrySession registrySession;
+    User::LeaveIfError(registrySession.Connect());
+    CleanupClosePushL(registrySession);
+    
+    TInt packageUid = 0;
+    GetHexFromConfig(ConfigSection(),_L("packageUid"),packageUid);    
+    TUid expectedPkgUid = TUid::Uid(packageUid);
+    RSisRegistryEntry regEntry;
+    CleanupClosePushL(regEntry);
+    User::LeaveIfError(regEntry.Open(registrySession, expectedPkgUid));
+    TRAPD(err, regEntry.SetRemoveWithLastDependentL(expectedPkgUid));
+    if(KErrNone == err)
+        SetTestStepResult(EPass);
+    else
+        SetTestStepResult(EFail);
+
+    CleanupStack::PopAndDestroy(2, &registrySession);
+    return TestStepResult();
+    
+    }
+
 // End of file
--- a/installationservices/swi/test/tuiscriptadaptors/tswisstep.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/tswisstep.h	Fri Jun 11 13:45:18 2010 +0300
@@ -32,11 +32,14 @@
 #include <swi/sistruststatus.h>
 
 #include <e32base.h>
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #ifndef SWI_TEXTSHELL_ROM		
 #include <apsidchecker.h>
 #else
 class CAppSidChecker;
 #endif
+#endif
 
 namespace Swi
 	{
@@ -221,7 +224,7 @@
 class CSwisInstallStep : public CSwisTestStep
 	{
 public:
-	enum TInstallType { EUseFileHandle, EUseMemory, EUseFileName, EUseCAF, EUseOpenFileName, ECheckExitValue};
+	enum TInstallType { EUseFileHandle, EUseMemory, EUseFileName, EUseCAF, EUseOpenFileName, ECheckExitValue, ECheckInstallPerformance};
 
 	CSwisInstallStep(TInstallType aInstallType, TBool aDoCancelTest = EFalse);
 	~CSwisInstallStep();
@@ -231,6 +234,7 @@
 private:
 	TInt DoInstallL(Swi::CInstallPrefs& aInstallPrefs);
 	void GetFilesToHoldOpenL();
+	void PrintPerformanceLog(TTime aTime);
 
 private:
 	TFileName iSisFileName; // name of the file to install
@@ -332,6 +336,7 @@
 #endif
 
 _LIT(KSwisInstallStep, "InstallStep");
+_LIT(KSwisInstallPerformanceStep, "InstallPerformanceStep");
 _LIT(KSwisInstallFHStep, "InstallFHStep"); // install using file handles
 _LIT(KSwisInstallMemStep, "InstallMemStep"); // install from memory
 _LIT(KSwisInstallCAFStep, "InstallCAFStep"); // install from CAF
@@ -370,6 +375,7 @@
 _LIT(KSwisRemoveUninstallPkgsStep, "RemoveUninstallPkgsStep");
 _LIT(KSwisGetPackageDetails, "GetPackageDetails");
 _LIT(KSwisGetPublishedUidArrayStep, "GetPublishedUidArrayStep");
+_LIT(KSwisRemoveWithLastDependent, "RemoveWithLastDependent");
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 _LIT(KCheckSCRFieldStep, "CheckSCRFieldStep");
 _LIT(KCheckSCRCompPropertyStep, "CheckSCRCompPropertyStep");
@@ -486,9 +492,13 @@
 	TInt iDrive;
 	TInt iBootMode;
 	TChar iDriveChar;
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #ifndef SWI_TEXTSHELL_ROM
 	CAppSidChecker *iSwiSidChecker;
 #endif
+#endif
+
 	};
 	
 /**
@@ -513,4 +523,11 @@
 TBool iJustDefineProperty;
 	};
 
+class CSwisSetRemoveWithLastDependent : public CSwisTestStep
+    {
+public:    
+    CSwisSetRemoveWithLastDependent();
+    ~CSwisSetRemoveWithLastDependent();
+    virtual TVerdict doTestStepL();
+    };
 #endif // __TSWISSTEP_H__
--- a/installationservices/swiconfig/group/install_config.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swiconfig/group/install_config.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	install_config
 source  	\sf\mw\appinstall\installationservices\swiconfig
 binary  	\sf\mw\appinstall\installationservices\swiconfig\group all
--- a/installationservices/swidevicetools/group/security_switools_device.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swidevicetools/group/security_switools_device.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_switools_device
 source	\sf\mw\appinstall\installationservices\swidevicetools
 binary	\sf\mw\appinstall\installationservices\swidevicetools\group	all
--- a/installationservices/swinstallationfw/bwins/siftransportu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/bwins/siftransportu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,82 +1,85 @@
 EXPORTS
-	?PrepareResultsForIpcL@COpaqueNamedParams@Usif@@QAEXAAVTIpcArgs@@H@Z @ 1  NONAME ; void Usif::COpaqueNamedParams::PrepareResultsForIpcL(class TIpcArgs &, int)
-	?HasCapability@TSecurityContext@Usif@@QBEHW4TCapability@@@Z @ 2  NONAME ; int Usif::TSecurityContext::HasCapability(enum TCapability) const
-	?NewL@CComponentInfo@Usif@@SAPAV12@XZ @ 3  NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewL(void)
-	?CancelOperation@RSifTransportClient@Usif@@QAEXXZ @ 4  NONAME ; void Usif::RSifTransportClient::CancelOperation(void)
-	??0TTransportTaskParams@Usif@@QAE@XZ @ 5  NONAME ; Usif::TTransportTaskParams::TTransportTaskParams(void)
-	?HasCapabilityL@TSecurityContext@Usif@@QBEXW4TCapability@@@Z @ 6  NONAME ; void Usif::TSecurityContext::HasCapabilityL(enum TCapability) const
-	?Authenticity@CNode@CComponentInfo@Usif@@QBE?AW4TAuthenticity@3@XZ @ 7  NONAME ; enum Usif::TAuthenticity Usif::CComponentInfo::CNode::Authenticity(void) const
-	?SetRootNodeAsChildL@CComponentInfo@Usif@@QAEXAAVCNode@12@@Z @ 8  NONAME ; void Usif::CComponentInfo::SetRootNodeAsChildL(class Usif::CComponentInfo::CNode &)
-	?Activate@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@@Z @ 9  NONAME ; void Usif::RSifTransportClient::Activate(int, class TRequestStatus &)
-	?NewSifTransportServerLC@CSifTransportServer@Usif@@SAPAVCScsServer@@XZ @ 10  NONAME ; class CScsServer * Usif::CSifTransportServer::NewSifTransportServerLC(void)
-	?NewLC@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 11  NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewLC(void)
-	?Uninstall@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@H@Z @ 12  NONAME ; void Usif::RSifTransportClient::Uninstall(int, class TRequestStatus &, int)
-	?InstallStatus@CNode@CComponentInfo@Usif@@QBE?AW4TInstallStatus@3@XZ @ 13  NONAME ; enum Usif::TInstallStatus Usif::CComponentInfo::CNode::InstallStatus(void) const
-	?Cleanup@COpaqueNamedParams@Usif@@QAEXXZ @ 14  NONAME ; void Usif::COpaqueNamedParams::Cleanup(void)
-	??0RSifTransportClient@Usif@@QAE@XZ @ 15  NONAME ; Usif::RSifTransportClient::RSifTransportClient(void)
-	?CountL@COpaqueNamedParams@Usif@@QBEHXZ @ 16  NONAME ; int Usif::COpaqueNamedParams::CountL(void) const
-	?SecurityContext@CSifTransportTask@Usif@@IBEPBVTSecurityContext@2@XZ @ 17  NONAME ; class Usif::TSecurityContext const * Usif::CSifTransportTask::SecurityContext(void) const
-	?RootNodeL@CComponentInfo@Usif@@QBEABVCNode@12@XZ @ 18  NONAME ; class Usif::CComponentInfo::CNode const & Usif::CComponentInfo::RootNodeL(void) const
-	??1CNode@CComponentInfo@Usif@@UAE@XZ @ 19  NONAME ; Usif::CComponentInfo::CNode::~CNode(void)
-	?GetComponentInfo@RSifTransportClient@Usif@@QAEXABVTDesC16@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 20  NONAME ; void Usif::RSifTransportClient::GetComponentInfo(class TDesC16 const &, class Usif::CComponentInfo &, class TRequestStatus &)
-	?Deactivate@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@@Z @ 21  NONAME ; void Usif::RSifTransportClient::Deactivate(int, class TRequestStatus &)
-	?Install@RSifTransportClient@Usif@@QAEXAAVRFile@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 22  NONAME ; void Usif::RSifTransportClient::Install(class RFile &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	?ExternalizeL@COpaqueNamedParams@Usif@@QBEXAAVRWriteStream@@@Z @ 23  NONAME ; void Usif::COpaqueNamedParams::ExternalizeL(class RWriteStream &) const
-	?FileHandle@CSifTransportTask@Usif@@IAEPAVRFile@@XZ @ 24  NONAME ; class RFile * Usif::CSifTransportTask::FileHandle(void)
-	?Vendor@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 25  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Vendor(void) const
-	?ComponentName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 26  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::ComponentName(void) const
-	?NewLC@CNode@CComponentInfo@Usif@@SAPAV123@ABVTDesC16@@000W4TScomoState@3@W4TInstallStatus@3@H0W4TAuthenticity@3@ABVTCapabilitySet@@HHHPAV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@PAV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@@Z @ 27  NONAME ; class Usif::CComponentInfo::CNode * Usif::CComponentInfo::CNode::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TScomoState, enum Usif::TInstallStatus, int, class TDesC16 const &, enum Usif::TAuthenticity, class TCapabilitySet const &, int, int, int, class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> *, class RPointerArray<class Usif::CComponentInfo::CNode> *)
-	??0TSecurityContext@Usif@@AAE@ABVRMessage2@@@Z @ 28  NONAME ; Usif::TSecurityContext::TSecurityContext(class RMessage2 const &)
-	??1COpaqueNamedParams@Usif@@UAE@XZ @ 29  NONAME ; Usif::COpaqueNamedParams::~COpaqueNamedParams(void)
-	?SoftwareTypeName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 30  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::SoftwareTypeName(void) const
-	?UserGrantableCaps@CNode@CComponentInfo@Usif@@QBEABVTCapabilitySet@@XZ @ 31  NONAME ; class TCapabilitySet const & Usif::CComponentInfo::CNode::UserGrantableCaps(void) const
-	?CancelImpl@CSifTransportTask@Usif@@MAEXXZ @ 32  NONAME ; void Usif::CSifTransportTask::CancelImpl(void)
-	?CustomResults@CSifTransportTask@Usif@@IAEPAVCOpaqueNamedParams@2@XZ @ 33  NONAME ; class Usif::COpaqueNamedParams * Usif::CSifTransportTask::CustomResults(void)
-	?IntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@@Z @ 34  NONAME ; int Usif::COpaqueNamedParams::IntByNameL(class TDesC16 const &) const
-	?Install@RSifTransportClient@Usif@@QAEXAAVRFile@@AAVTRequestStatus@@H@Z @ 35  NONAME ; void Usif::RSifTransportClient::Install(class RFile &, class TRequestStatus &, int)
-	?StringByNameL@COpaqueNamedParams@Usif@@QBEABVTDesC16@@ABV3@@Z @ 36  NONAME ; class TDesC16 const & Usif::COpaqueNamedParams::StringByNameL(class TDesC16 const &) const
-	??0CSifTransportTask@Usif@@IAE@AAUTTransportTaskParams@1@H@Z @ 37  NONAME ; Usif::CSifTransportTask::CSifTransportTask(struct Usif::TTransportTaskParams &, int)
-	??1CSifTransportTask@Usif@@MAE@XZ @ 38  NONAME ; Usif::CSifTransportTask::~CSifTransportTask(void)
-	?ScomoState@CNode@CComponentInfo@Usif@@QBE?AW4TScomoState@3@XZ @ 39  NONAME ; enum Usif::TScomoState Usif::CComponentInfo::CNode::ScomoState(void) const
-	?AddIntL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@H@Z @ 40  NONAME ; void Usif::COpaqueNamedParams::AddIntL(class TDesC16 const &, int)
-	?Install@RSifTransportClient@Usif@@QAEXABVTDesC16@@AAVTRequestStatus@@H@Z @ 41  NONAME ; void Usif::RSifTransportClient::Install(class TDesC16 const &, class TRequestStatus &, int)
-	?Children@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@XZ @ 42  NONAME ; class RPointerArray<class Usif::CComponentInfo::CNode> const & Usif::CComponentInfo::CNode::Children(void) const
-	?FileName@CSifTransportTask@Usif@@IBEPBVTDesC16@@XZ @ 43  NONAME ; class TDesC16 const * Usif::CSifTransportTask::FileName(void) const
-	?Uninstall@RSifTransportClient@Usif@@QAEXHABVCOpaqueNamedParams@2@AAV32@AAVTRequestStatus@@H@Z @ 44  NONAME ; void Usif::RSifTransportClient::Uninstall(int, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	?PrepareForIpcL@CComponentInfo@Usif@@QAEXAAVTIpcArgs@@H@Z @ 45  NONAME ; void Usif::CComponentInfo::PrepareForIpcL(class TIpcArgs &, int)
-	?GetComponentInfo@RSifTransportClient@Usif@@QAEXAAVRFile@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 46  NONAME ; void Usif::RSifTransportClient::GetComponentInfo(class RFile &, class Usif::CComponentInfo &, class TRequestStatus &)
-	?NewLC@CComponentInfo@Usif@@SAPAV12@XZ @ 47  NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewLC(void)
-	?GetIntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@AAH@Z @ 48  NONAME ; int Usif::COpaqueNamedParams::GetIntByNameL(class TDesC16 const &, int &) const
-	?SetRootNodeL@CComponentInfo@Usif@@QAEXPAVCNode@12@@Z @ 49  NONAME ; void Usif::CComponentInfo::SetRootNodeL(class Usif::CComponentInfo::CNode *)
-	?CustomArguments@CSifTransportTask@Usif@@IBEPBVCOpaqueNamedParams@2@XZ @ 50  NONAME ; class Usif::COpaqueNamedParams const * Usif::CSifTransportTask::CustomArguments(void) const
-	?GetNamesL@COpaqueNamedParams@Usif@@QBEXAAV?$RPointerArray@VHBufC16@@@@@Z @ 51  NONAME ; void Usif::COpaqueNamedParams::GetNamesL(class RPointerArray<class HBufC16> &) const
-	?MaxInstalledSize@CNode@CComponentInfo@Usif@@QBEHXZ @ 52  NONAME ; int Usif::CComponentInfo::CNode::MaxInstalledSize(void) const
-	?Version@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 53  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Version(void) const
-	?RequestStatus@CSifTransportTask@Usif@@IAEPAVTRequestStatus@@XZ @ 54  NONAME ; class TRequestStatus * Usif::CSifTransportTask::RequestStatus(void)
-	?Install@RSifTransportClient@Usif@@QAEXABVTDesC16@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 55  NONAME ; void Usif::RSifTransportClient::Install(class TDesC16 const &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	?AddStringL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@0@Z @ 56  NONAME ; void Usif::COpaqueNamedParams::AddStringL(class TDesC16 const &, class TDesC16 const &)
-	?ExternalizeL@CComponentInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 57  NONAME ; void Usif::CComponentInfo::ExternalizeL(class RWriteStream &) const
-	?AddChildL@CNode@CComponentInfo@Usif@@QAEXPAV123@@Z @ 58  NONAME ; void Usif::CComponentInfo::CNode::AddChildL(class Usif::CComponentInfo::CNode *)
-	?ComponentId@CNode@CComponentInfo@Usif@@QBEHXZ @ 59  NONAME ; int Usif::CComponentInfo::CNode::ComponentId(void) const
-	?ComponentId@CSifTransportTask@Usif@@IBEHXZ @ 60  NONAME ; int Usif::CSifTransportTask::ComponentId(void) const
-	?StartTransportServer@Usif@@YAHABVTDesC16@@ABVTVersion@@P6APAVCSifTransportTask@1@W4TTaskType@TransportTaskFactory@1@AAUTTransportTaskParams@1@@ZH@Z @ 61  NONAME ; int Usif::StartTransportServer(class TDesC16 const &, class TVersion const &, class Usif::CSifTransportTask * (*)(enum Usif::TransportTaskFactory::TTaskType, struct Usif::TTransportTaskParams &), int)
-	?Close@RSifTransportClient@Usif@@QAEXXZ @ 62  NONAME ; void Usif::RSifTransportClient::Close(void)
-	?SecureId@TSecurityContext@Usif@@QBE?AVTSecureId@@XZ @ 63  NONAME ; class TSecureId Usif::TSecurityContext::SecureId(void) const
-	?NewL@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 64  NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewL(void)
-	?Connect@RSifTransportClient@Usif@@QAEHABVTDesC16@@ABVTVersion@@0VTUid@@@Z @ 65  NONAME ; int Usif::RSifTransportClient::Connect(class TDesC16 const &, class TVersion const &, class TDesC16 const &, class TUid)
-	??1CComponentInfo@Usif@@UAE@XZ @ 66  NONAME ; Usif::CComponentInfo::~CComponentInfo(void)
-	?GlobalComponentId@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 67  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::GlobalComponentId(void) const
-	?ComponentInfo@CSifTransportTask@Usif@@IAEPAVCComponentInfo@2@XZ @ 68  NONAME ; class Usif::CComponentInfo * Usif::CSifTransportTask::ComponentInfo(void)
-	?InternalizeL@COpaqueNamedParams@Usif@@QAEXAAVRReadStream@@@Z @ 69  NONAME ; void Usif::COpaqueNamedParams::InternalizeL(class RReadStream &)
-	?PrepareArgumentsForIpcL@COpaqueNamedParams@Usif@@QBEXAAVTIpcArgs@@H@Z @ 70  NONAME ; void Usif::COpaqueNamedParams::PrepareArgumentsForIpcL(class TIpcArgs &, int) const
-	?HasExecutable@CNode@CComponentInfo@Usif@@QBEHXZ @ 71  NONAME ; int Usif::CComponentInfo::CNode::HasExecutable(void) const
-	?GroupName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 72  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::GroupName(void) const
-	?IconFileName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 73  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::IconFileName(void) const
-	?NewLC@CApplicationInfo@CComponentInfo@Usif@@SAPAV123@ABVTUid@@ABVTDesC16@@11@Z @ 74  NONAME ; class Usif::CComponentInfo::CApplicationInfo * Usif::CComponentInfo::CApplicationInfo::NewLC(class TUid const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
-	?DriveSeletionRequired@CNode@CComponentInfo@Usif@@QBEHXZ @ 75  NONAME ; int Usif::CComponentInfo::CNode::DriveSeletionRequired(void) const
-	?AppUid@CApplicationInfo@CComponentInfo@Usif@@QBEABVTUid@@XZ @ 76  NONAME ; class TUid const & Usif::CComponentInfo::CApplicationInfo::AppUid(void) const
-	??1CApplicationInfo@CComponentInfo@Usif@@UAE@XZ @ 77  NONAME ; Usif::CComponentInfo::CApplicationInfo::~CApplicationInfo(void)
-	?Applications@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@XZ @ 78  NONAME ; class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> const & Usif::CComponentInfo::CNode::Applications(void) const
-	?Name@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 79  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::Name(void) const
-	
+	?PrepareResultsForIpcL@COpaqueNamedParams@Usif@@QAEXAAVTIpcArgs@@H@Z @ 1 NONAME ; void Usif::COpaqueNamedParams::PrepareResultsForIpcL(class TIpcArgs &, int)
+	?HasCapability@TSecurityContext@Usif@@QBEHW4TCapability@@@Z @ 2 NONAME ; int Usif::TSecurityContext::HasCapability(enum TCapability) const
+	?NewL@CComponentInfo@Usif@@SAPAV12@XZ @ 3 NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewL(void)
+	?CancelOperation@RSifTransportClient@Usif@@QAEXXZ @ 4 NONAME ; void Usif::RSifTransportClient::CancelOperation(void)
+	??0TTransportTaskParams@Usif@@QAE@XZ @ 5 NONAME ; Usif::TTransportTaskParams::TTransportTaskParams(void)
+	?HasCapabilityL@TSecurityContext@Usif@@QBEXW4TCapability@@@Z @ 6 NONAME ; void Usif::TSecurityContext::HasCapabilityL(enum TCapability) const
+	?Authenticity@CNode@CComponentInfo@Usif@@QBE?AW4TAuthenticity@3@XZ @ 7 NONAME ; enum Usif::TAuthenticity Usif::CComponentInfo::CNode::Authenticity(void) const
+	?SetRootNodeAsChildL@CComponentInfo@Usif@@QAEXAAVCNode@12@@Z @ 8 NONAME ; void Usif::CComponentInfo::SetRootNodeAsChildL(class Usif::CComponentInfo::CNode &)
+	?Activate@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@@Z @ 9 NONAME ; void Usif::RSifTransportClient::Activate(int, class TRequestStatus &)
+	?NewSifTransportServerLC@CSifTransportServer@Usif@@SAPAVCScsServer@@XZ @ 10 NONAME ; class CScsServer * Usif::CSifTransportServer::NewSifTransportServerLC(void)
+	?NewLC@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 11 NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewLC(void)
+	?Uninstall@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@H@Z @ 12 NONAME ; void Usif::RSifTransportClient::Uninstall(int, class TRequestStatus &, int)
+	?InstallStatus@CNode@CComponentInfo@Usif@@QBE?AW4TInstallStatus@3@XZ @ 13 NONAME ; enum Usif::TInstallStatus Usif::CComponentInfo::CNode::InstallStatus(void) const
+	?Cleanup@COpaqueNamedParams@Usif@@QAEXXZ @ 14 NONAME ; void Usif::COpaqueNamedParams::Cleanup(void)
+	??0RSifTransportClient@Usif@@QAE@XZ @ 15 NONAME ; Usif::RSifTransportClient::RSifTransportClient(void)
+	?CountL@COpaqueNamedParams@Usif@@QBEHXZ @ 16 NONAME ; int Usif::COpaqueNamedParams::CountL(void) const
+	?SecurityContext@CSifTransportTask@Usif@@IBEPBVTSecurityContext@2@XZ @ 17 NONAME ; class Usif::TSecurityContext const * Usif::CSifTransportTask::SecurityContext(void) const
+	?RootNodeL@CComponentInfo@Usif@@QBEABVCNode@12@XZ @ 18 NONAME ; class Usif::CComponentInfo::CNode const & Usif::CComponentInfo::RootNodeL(void) const
+	??1CNode@CComponentInfo@Usif@@UAE@XZ @ 19 NONAME ; Usif::CComponentInfo::CNode::~CNode(void)
+	?GetComponentInfo@RSifTransportClient@Usif@@QAEXABVTDesC16@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 20 NONAME ; void Usif::RSifTransportClient::GetComponentInfo(class TDesC16 const &, class Usif::CComponentInfo &, class TRequestStatus &)
+	?Deactivate@RSifTransportClient@Usif@@QAEXHAAVTRequestStatus@@@Z @ 21 NONAME ; void Usif::RSifTransportClient::Deactivate(int, class TRequestStatus &)
+	?Install@RSifTransportClient@Usif@@QAEXAAVRFile@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 22 NONAME ; void Usif::RSifTransportClient::Install(class RFile &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	?ExternalizeL@COpaqueNamedParams@Usif@@QBEXAAVRWriteStream@@@Z @ 23 NONAME ; void Usif::COpaqueNamedParams::ExternalizeL(class RWriteStream &) const
+	?FileHandle@CSifTransportTask@Usif@@IAEPAVRFile@@XZ @ 24 NONAME ; class RFile * Usif::CSifTransportTask::FileHandle(void)
+	?Vendor@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 25 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Vendor(void) const
+	?ComponentName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 26 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::ComponentName(void) const
+	?NewLC@CNode@CComponentInfo@Usif@@SAPAV123@ABVTDesC16@@000W4TScomoState@3@W4TInstallStatus@3@H0W4TAuthenticity@3@ABVTCapabilitySet@@HHHPAV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@PAV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@@Z @ 27 NONAME ; class Usif::CComponentInfo::CNode * Usif::CComponentInfo::CNode::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TScomoState, enum Usif::TInstallStatus, int, class TDesC16 const &, enum Usif::TAuthenticity, class TCapabilitySet const &, int, int, int, class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> *, class RPointerArray<class Usif::CComponentInfo::CNode> *)
+	??0TSecurityContext@Usif@@AAE@ABVRMessage2@@@Z @ 28 NONAME ; Usif::TSecurityContext::TSecurityContext(class RMessage2 const &)
+	??1COpaqueNamedParams@Usif@@UAE@XZ @ 29 NONAME ; Usif::COpaqueNamedParams::~COpaqueNamedParams(void)
+	?SoftwareTypeName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 30 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::SoftwareTypeName(void) const
+	?UserGrantableCaps@CNode@CComponentInfo@Usif@@QBEABVTCapabilitySet@@XZ @ 31 NONAME ; class TCapabilitySet const & Usif::CComponentInfo::CNode::UserGrantableCaps(void) const
+	?CancelImpl@CSifTransportTask@Usif@@MAEXXZ @ 32 NONAME ; void Usif::CSifTransportTask::CancelImpl(void)
+	?CustomResults@CSifTransportTask@Usif@@IAEPAVCOpaqueNamedParams@2@XZ @ 33 NONAME ; class Usif::COpaqueNamedParams * Usif::CSifTransportTask::CustomResults(void)
+	?IntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@@Z @ 34 NONAME ; int Usif::COpaqueNamedParams::IntByNameL(class TDesC16 const &) const
+	?Install@RSifTransportClient@Usif@@QAEXAAVRFile@@AAVTRequestStatus@@H@Z @ 35 NONAME ; void Usif::RSifTransportClient::Install(class RFile &, class TRequestStatus &, int)
+	?StringByNameL@COpaqueNamedParams@Usif@@QBEABVTDesC16@@ABV3@@Z @ 36 NONAME ; class TDesC16 const & Usif::COpaqueNamedParams::StringByNameL(class TDesC16 const &) const
+	??0CSifTransportTask@Usif@@IAE@AAUTTransportTaskParams@1@H@Z @ 37 NONAME ; Usif::CSifTransportTask::CSifTransportTask(struct Usif::TTransportTaskParams &, int)
+	??1CSifTransportTask@Usif@@MAE@XZ @ 38 NONAME ; Usif::CSifTransportTask::~CSifTransportTask(void)
+	?ScomoState@CNode@CComponentInfo@Usif@@QBE?AW4TScomoState@3@XZ @ 39 NONAME ; enum Usif::TScomoState Usif::CComponentInfo::CNode::ScomoState(void) const
+	?AddIntL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@H@Z @ 40 NONAME ; void Usif::COpaqueNamedParams::AddIntL(class TDesC16 const &, int)
+	?Install@RSifTransportClient@Usif@@QAEXABVTDesC16@@AAVTRequestStatus@@H@Z @ 41 NONAME ; void Usif::RSifTransportClient::Install(class TDesC16 const &, class TRequestStatus &, int)
+	?Children@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@XZ @ 42 NONAME ; class RPointerArray<class Usif::CComponentInfo::CNode> const & Usif::CComponentInfo::CNode::Children(void) const
+	?FileName@CSifTransportTask@Usif@@IBEPBVTDesC16@@XZ @ 43 NONAME ; class TDesC16 const * Usif::CSifTransportTask::FileName(void) const
+	?Uninstall@RSifTransportClient@Usif@@QAEXHABVCOpaqueNamedParams@2@AAV32@AAVTRequestStatus@@H@Z @ 44 NONAME ; void Usif::RSifTransportClient::Uninstall(int, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	?PrepareForIpcL@CComponentInfo@Usif@@QAEXAAVTIpcArgs@@H@Z @ 45 NONAME ; void Usif::CComponentInfo::PrepareForIpcL(class TIpcArgs &, int)
+	?GetComponentInfo@RSifTransportClient@Usif@@QAEXAAVRFile@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 46 NONAME ; void Usif::RSifTransportClient::GetComponentInfo(class RFile &, class Usif::CComponentInfo &, class TRequestStatus &)
+	?NewLC@CComponentInfo@Usif@@SAPAV12@XZ @ 47 NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewLC(void)
+	?GetIntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@AAH@Z @ 48 NONAME ; int Usif::COpaqueNamedParams::GetIntByNameL(class TDesC16 const &, int &) const
+	?SetRootNodeL@CComponentInfo@Usif@@QAEXPAVCNode@12@@Z @ 49 NONAME ; void Usif::CComponentInfo::SetRootNodeL(class Usif::CComponentInfo::CNode *)
+	?CustomArguments@CSifTransportTask@Usif@@IBEPBVCOpaqueNamedParams@2@XZ @ 50 NONAME ; class Usif::COpaqueNamedParams const * Usif::CSifTransportTask::CustomArguments(void) const
+	?GetNamesL@COpaqueNamedParams@Usif@@QBEXAAV?$RPointerArray@VHBufC16@@@@@Z @ 51 NONAME ; void Usif::COpaqueNamedParams::GetNamesL(class RPointerArray<class HBufC16> &) const
+	?MaxInstalledSize@CNode@CComponentInfo@Usif@@QBEHXZ @ 52 NONAME ; int Usif::CComponentInfo::CNode::MaxInstalledSize(void) const
+	?Version@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 53 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Version(void) const
+	?RequestStatus@CSifTransportTask@Usif@@IAEPAVTRequestStatus@@XZ @ 54 NONAME ; class TRequestStatus * Usif::CSifTransportTask::RequestStatus(void)
+	?Install@RSifTransportClient@Usif@@QAEXABVTDesC16@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 55 NONAME ; void Usif::RSifTransportClient::Install(class TDesC16 const &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	?AddStringL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@0@Z @ 56 NONAME ; void Usif::COpaqueNamedParams::AddStringL(class TDesC16 const &, class TDesC16 const &)
+	?ExternalizeL@CComponentInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 57 NONAME ; void Usif::CComponentInfo::ExternalizeL(class RWriteStream &) const
+	?AddChildL@CNode@CComponentInfo@Usif@@QAEXPAV123@@Z @ 58 NONAME ; void Usif::CComponentInfo::CNode::AddChildL(class Usif::CComponentInfo::CNode *)
+	?ComponentId@CNode@CComponentInfo@Usif@@QBEHXZ @ 59 NONAME ; int Usif::CComponentInfo::CNode::ComponentId(void) const
+	?ComponentId@CSifTransportTask@Usif@@IBEHXZ @ 60 NONAME ; int Usif::CSifTransportTask::ComponentId(void) const
+	?StartTransportServer@Usif@@YAHABVTDesC16@@ABVTVersion@@P6APAVCSifTransportTask@1@W4TTaskType@TransportTaskFactory@1@AAUTTransportTaskParams@1@@ZH@Z @ 61 NONAME ; int Usif::StartTransportServer(class TDesC16 const &, class TVersion const &, class Usif::CSifTransportTask * (*)(enum Usif::TransportTaskFactory::TTaskType, struct Usif::TTransportTaskParams &), int)
+	?Close@RSifTransportClient@Usif@@QAEXXZ @ 62 NONAME ; void Usif::RSifTransportClient::Close(void)
+	?SecureId@TSecurityContext@Usif@@QBE?AVTSecureId@@XZ @ 63 NONAME ; class TSecureId Usif::TSecurityContext::SecureId(void) const
+	?NewL@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 64 NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewL(void)
+	?Connect@RSifTransportClient@Usif@@QAEHABVTDesC16@@ABVTVersion@@0VTUid@@@Z @ 65 NONAME ; int Usif::RSifTransportClient::Connect(class TDesC16 const &, class TVersion const &, class TDesC16 const &, class TUid)
+	??1CComponentInfo@Usif@@UAE@XZ @ 66 NONAME ; Usif::CComponentInfo::~CComponentInfo(void)
+	?GlobalComponentId@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 67 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::GlobalComponentId(void) const
+	?ComponentInfo@CSifTransportTask@Usif@@IAEPAVCComponentInfo@2@XZ @ 68 NONAME ; class Usif::CComponentInfo * Usif::CSifTransportTask::ComponentInfo(void)
+	?InternalizeL@COpaqueNamedParams@Usif@@QAEXAAVRReadStream@@@Z @ 69 NONAME ; void Usif::COpaqueNamedParams::InternalizeL(class RReadStream &)
+	?PrepareArgumentsForIpcL@COpaqueNamedParams@Usif@@QBEXAAVTIpcArgs@@H@Z @ 70 NONAME ; void Usif::COpaqueNamedParams::PrepareArgumentsForIpcL(class TIpcArgs &, int) const
+	?HasExecutable@CNode@CComponentInfo@Usif@@QBEHXZ @ 71 NONAME ; int Usif::CComponentInfo::CNode::HasExecutable(void) const
+	?GroupName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 72 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::GroupName(void) const
+	?IconFileName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 73 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::IconFileName(void) const
+	?NewLC@CApplicationInfo@CComponentInfo@Usif@@SAPAV123@ABVTUid@@ABVTDesC16@@11@Z @ 74 NONAME ; class Usif::CComponentInfo::CApplicationInfo * Usif::CComponentInfo::CApplicationInfo::NewLC(class TUid const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
+	?DriveSeletionRequired@CNode@CComponentInfo@Usif@@QBEHXZ @ 75 NONAME ; int Usif::CComponentInfo::CNode::DriveSeletionRequired(void) const
+	?AppUid@CApplicationInfo@CComponentInfo@Usif@@QBEABVTUid@@XZ @ 76 NONAME ; class TUid const & Usif::CComponentInfo::CApplicationInfo::AppUid(void) const
+	??1CApplicationInfo@CComponentInfo@Usif@@UAE@XZ @ 77 NONAME ; Usif::CComponentInfo::CApplicationInfo::~CApplicationInfo(void)
+	?Applications@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@XZ @ 78 NONAME ; class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> const & Usif::CComponentInfo::CNode::Applications(void) const
+	?Name@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 79 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::Name(void) const
+	?StringArrayByNameL@COpaqueNamedParams@Usif@@QBEABV?$RPointerArray@VHBufC16@@@@ABVTDesC16@@@Z @ 80 NONAME ; class RPointerArray<class HBufC16> const & Usif::COpaqueNamedParams::StringArrayByNameL(class TDesC16 const &) const
+	?AddIntArrayL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@ABV?$RArray@H@@@Z @ 81 NONAME ; void Usif::COpaqueNamedParams::AddIntArrayL(class TDesC16 const &, class RArray<int> const &)
+	?AddStringArrayL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 82 NONAME ; void Usif::COpaqueNamedParams::AddStringArrayL(class TDesC16 const &, class RPointerArray<class HBufC16> const &)
+	?IntArrayByNameL@COpaqueNamedParams@Usif@@QBEABV?$RArray@H@@ABVTDesC16@@@Z @ 83 NONAME ; class RArray<int> const & Usif::COpaqueNamedParams::IntArrayByNameL(class TDesC16 const &) const
 
--- a/installationservices/swinstallationfw/bwins/sifu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/bwins/sifu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,67 +1,71 @@
 EXPORTS
-	?PrepareResultsForIpcL@COpaqueNamedParams@Usif@@QAEXAAVTIpcArgs@@H@Z @ 1  NONAME ; void Usif::COpaqueNamedParams::PrepareResultsForIpcL(class TIpcArgs &, int)
-	?HasCapability@TSecurityContext@Usif@@QBEHW4TCapability@@@Z @ 2  NONAME ; int Usif::TSecurityContext::HasCapability(enum TCapability) const
-	?SoftwareTypeName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 3  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::SoftwareTypeName(void) const
-	?NewL@CComponentInfo@Usif@@SAPAV12@XZ @ 4  NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewL(void)
-	?UserGrantableCaps@CNode@CComponentInfo@Usif@@QBEABVTCapabilitySet@@XZ @ 5  NONAME ; class TCapabilitySet const & Usif::CComponentInfo::CNode::UserGrantableCaps(void) const
-	?IntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@@Z @ 6  NONAME ; int Usif::COpaqueNamedParams::IntByNameL(class TDesC16 const &) const
-	?HasCapabilityL@TSecurityContext@Usif@@QBEXW4TCapability@@@Z @ 7  NONAME ; void Usif::TSecurityContext::HasCapabilityL(enum TCapability) const
-	?Close@RSoftwareInstall@Usif@@QAEXXZ @ 8  NONAME ; void Usif::RSoftwareInstall::Close(void)
-	?Authenticity@CNode@CComponentInfo@Usif@@QBE?AW4TAuthenticity@3@XZ @ 9  NONAME ; enum Usif::TAuthenticity Usif::CComponentInfo::CNode::Authenticity(void) const
-	?SetRootNodeAsChildL@CComponentInfo@Usif@@QAEXAAVCNode@12@@Z @ 10  NONAME ; void Usif::CComponentInfo::SetRootNodeAsChildL(class Usif::CComponentInfo::CNode &)
-	?Uninstall@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@H@Z @ 11  NONAME ; void Usif::RSoftwareInstall::Uninstall(int, class TRequestStatus &, int)
-	?StringByNameL@COpaqueNamedParams@Usif@@QBEABVTDesC16@@ABV3@@Z @ 12  NONAME ; class TDesC16 const & Usif::COpaqueNamedParams::StringByNameL(class TDesC16 const &) const
-	?ScomoState@CNode@CComponentInfo@Usif@@QBE?AW4TScomoState@3@XZ @ 13  NONAME ; enum Usif::TScomoState Usif::CComponentInfo::CNode::ScomoState(void) const
-	?Install@RSoftwareInstall@Usif@@QAEXABVTDesC16@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 14  NONAME ; void Usif::RSoftwareInstall::Install(class TDesC16 const &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	?AddIntL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@H@Z @ 15  NONAME ; void Usif::COpaqueNamedParams::AddIntL(class TDesC16 const &, int)
-	?NewLC@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 16  NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewLC(void)
-	?InstallStatus@CNode@CComponentInfo@Usif@@QBE?AW4TInstallStatus@3@XZ @ 17  NONAME ; enum Usif::TInstallStatus Usif::CComponentInfo::CNode::InstallStatus(void) const
-	?Children@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@XZ @ 18  NONAME ; class RPointerArray<class Usif::CComponentInfo::CNode> const & Usif::CComponentInfo::CNode::Children(void) const
-	?Cleanup@COpaqueNamedParams@Usif@@QAEXXZ @ 19  NONAME ; void Usif::COpaqueNamedParams::Cleanup(void)
-	?CancelOperation@RSoftwareInstall@Usif@@QAEXXZ @ 20  NONAME ; void Usif::RSoftwareInstall::CancelOperation(void)
-	?PrepareForIpcL@CComponentInfo@Usif@@QAEXAAVTIpcArgs@@H@Z @ 21  NONAME ; void Usif::CComponentInfo::PrepareForIpcL(class TIpcArgs &, int)
-	?NewLC@CComponentInfo@Usif@@SAPAV12@XZ @ 22  NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewLC(void)
-	?CountL@COpaqueNamedParams@Usif@@QBEHXZ @ 23  NONAME ; int Usif::COpaqueNamedParams::CountL(void) const
-	?SetRootNodeL@CComponentInfo@Usif@@QAEXPAVCNode@12@@Z @ 24  NONAME ; void Usif::CComponentInfo::SetRootNodeL(class Usif::CComponentInfo::CNode *)
-	?GetIntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@AAH@Z @ 25  NONAME ; int Usif::COpaqueNamedParams::GetIntByNameL(class TDesC16 const &, int &) const
-	?MaxInstalledSize@CNode@CComponentInfo@Usif@@QBEHXZ @ 26  NONAME ; int Usif::CComponentInfo::CNode::MaxInstalledSize(void) const
-	?GetNamesL@COpaqueNamedParams@Usif@@QBEXAAV?$RPointerArray@VHBufC16@@@@@Z @ 27  NONAME ; void Usif::COpaqueNamedParams::GetNamesL(class RPointerArray<class HBufC16> &) const
-	?Version@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 28  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Version(void) const
-	?RootNodeL@CComponentInfo@Usif@@QBEABVCNode@12@XZ @ 29  NONAME ; class Usif::CComponentInfo::CNode const & Usif::CComponentInfo::RootNodeL(void) const
-	??1CNode@CComponentInfo@Usif@@UAE@XZ @ 30  NONAME ; Usif::CComponentInfo::CNode::~CNode(void)
-	?GetComponentInfo@RSoftwareInstall@Usif@@QAEXABVTDesC16@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 31  NONAME ; void Usif::RSoftwareInstall::GetComponentInfo(class TDesC16 const &, class Usif::CComponentInfo &, class TRequestStatus &)
-	?Uninstall@RSoftwareInstall@Usif@@QAEXHABVCOpaqueNamedParams@2@AAV32@AAVTRequestStatus@@H@Z @ 32  NONAME ; void Usif::RSoftwareInstall::Uninstall(int, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	?Deactivate@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@@Z @ 33  NONAME ; void Usif::RSoftwareInstall::Deactivate(int, class TRequestStatus &)
-	?AddStringL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@0@Z @ 34  NONAME ; void Usif::COpaqueNamedParams::AddStringL(class TDesC16 const &, class TDesC16 const &)
-	?AddChildL@CNode@CComponentInfo@Usif@@QAEXPAV123@@Z @ 35  NONAME ; void Usif::CComponentInfo::CNode::AddChildL(class Usif::CComponentInfo::CNode *)
-	?ComponentId@CNode@CComponentInfo@Usif@@QBEHXZ @ 36  NONAME ; int Usif::CComponentInfo::CNode::ComponentId(void) const
-	?ExternalizeL@CComponentInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 37  NONAME ; void Usif::CComponentInfo::ExternalizeL(class RWriteStream &) const
-	??0RSoftwareInstall@Usif@@QAE@XZ @ 38  NONAME ; Usif::RSoftwareInstall::RSoftwareInstall(void)
-	?SecureId@TSecurityContext@Usif@@QBE?AVTSecureId@@XZ @ 39  NONAME ; class TSecureId Usif::TSecurityContext::SecureId(void) const
-	?Activate@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@@Z @ 40  NONAME ; void Usif::RSoftwareInstall::Activate(int, class TRequestStatus &)
-	?ExternalizeL@COpaqueNamedParams@Usif@@QBEXAAVRWriteStream@@@Z @ 41  NONAME ; void Usif::COpaqueNamedParams::ExternalizeL(class RWriteStream &) const
-	?Install@RSoftwareInstall@Usif@@QAEXABVTDesC16@@AAVTRequestStatus@@H@Z @ 42  NONAME ; void Usif::RSoftwareInstall::Install(class TDesC16 const &, class TRequestStatus &, int)
-	?Vendor@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 43  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Vendor(void) const
-	?NewL@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 44  NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewL(void)
-	?GetComponentInfo@RSoftwareInstall@Usif@@QAEXAAVRFile@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 45  NONAME ; void Usif::RSoftwareInstall::GetComponentInfo(class RFile &, class Usif::CComponentInfo &, class TRequestStatus &)
-	?ComponentName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 46  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::ComponentName(void) const
-	?Connect@RSoftwareInstall@Usif@@QAEHXZ @ 47  NONAME ; int Usif::RSoftwareInstall::Connect(void)
-	?Install@RSoftwareInstall@Usif@@QAEXAAVRFile@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 48  NONAME ; void Usif::RSoftwareInstall::Install(class RFile &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
-	??1CComponentInfo@Usif@@UAE@XZ @ 49  NONAME ; Usif::CComponentInfo::~CComponentInfo(void)
-	?NewLC@CNode@CComponentInfo@Usif@@SAPAV123@ABVTDesC16@@000W4TScomoState@3@W4TInstallStatus@3@H0W4TAuthenticity@3@ABVTCapabilitySet@@HHHPAV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@PAV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@@Z @ 50  NONAME ; class Usif::CComponentInfo::CNode * Usif::CComponentInfo::CNode::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TScomoState, enum Usif::TInstallStatus, int, class TDesC16 const &, enum Usif::TAuthenticity, class TCapabilitySet const &, int, int, int, class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> *, class RPointerArray<class Usif::CComponentInfo::CNode> *)
-	??0TSecurityContext@Usif@@AAE@ABVRMessage2@@@Z @ 51  NONAME ; Usif::TSecurityContext::TSecurityContext(class RMessage2 const &)
-	?GlobalComponentId@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 52  NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::GlobalComponentId(void) const
-	?PrepareArgumentsForIpcL@COpaqueNamedParams@Usif@@QBEXAAVTIpcArgs@@H@Z @ 53  NONAME ; void Usif::COpaqueNamedParams::PrepareArgumentsForIpcL(class TIpcArgs &, int) const
-	?InternalizeL@COpaqueNamedParams@Usif@@QAEXAAVRReadStream@@@Z @ 54  NONAME ; void Usif::COpaqueNamedParams::InternalizeL(class RReadStream &)
-	??1COpaqueNamedParams@Usif@@UAE@XZ @ 55  NONAME ; Usif::COpaqueNamedParams::~COpaqueNamedParams(void)
-	?Install@RSoftwareInstall@Usif@@QAEXAAVRFile@@AAVTRequestStatus@@H@Z @ 56  NONAME ; void Usif::RSoftwareInstall::Install(class RFile &, class TRequestStatus &, int)
-	?HasExecutable@CNode@CComponentInfo@Usif@@QBEHXZ @ 57  NONAME ; int Usif::CComponentInfo::CNode::HasExecutable(void) const
-	?GroupName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 58  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::GroupName(void) const
-	?DriveSeletionRequired@CNode@CComponentInfo@Usif@@QBEHXZ @ 59  NONAME ; int Usif::CComponentInfo::CNode::DriveSeletionRequired(void) const
-	?IconFileName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 60  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::IconFileName(void) const
-	?AppUid@CApplicationInfo@CComponentInfo@Usif@@QBEABVTUid@@XZ @ 61  NONAME ; class TUid const & Usif::CComponentInfo::CApplicationInfo::AppUid(void) const
-	?NewLC@CApplicationInfo@CComponentInfo@Usif@@SAPAV123@ABVTUid@@ABVTDesC16@@11@Z @ 62  NONAME ; class Usif::CComponentInfo::CApplicationInfo * Usif::CComponentInfo::CApplicationInfo::NewLC(class TUid const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
-	?Applications@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@XZ @ 63  NONAME ; class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> const & Usif::CComponentInfo::CNode::Applications(void) const
-	??1CApplicationInfo@CComponentInfo@Usif@@UAE@XZ @ 64  NONAME ; Usif::CComponentInfo::CApplicationInfo::~CApplicationInfo(void)
-	?Name@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 65  NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::Name(void) const
-	
+	?PrepareResultsForIpcL@COpaqueNamedParams@Usif@@QAEXAAVTIpcArgs@@H@Z @ 1 NONAME ; void Usif::COpaqueNamedParams::PrepareResultsForIpcL(class TIpcArgs &, int)
+	?HasCapability@TSecurityContext@Usif@@QBEHW4TCapability@@@Z @ 2 NONAME ; int Usif::TSecurityContext::HasCapability(enum TCapability) const
+	?SoftwareTypeName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 3 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::SoftwareTypeName(void) const
+	?NewL@CComponentInfo@Usif@@SAPAV12@XZ @ 4 NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewL(void)
+	?UserGrantableCaps@CNode@CComponentInfo@Usif@@QBEABVTCapabilitySet@@XZ @ 5 NONAME ; class TCapabilitySet const & Usif::CComponentInfo::CNode::UserGrantableCaps(void) const
+	?IntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@@Z @ 6 NONAME ; int Usif::COpaqueNamedParams::IntByNameL(class TDesC16 const &) const
+	?HasCapabilityL@TSecurityContext@Usif@@QBEXW4TCapability@@@Z @ 7 NONAME ; void Usif::TSecurityContext::HasCapabilityL(enum TCapability) const
+	?Close@RSoftwareInstall@Usif@@QAEXXZ @ 8 NONAME ; void Usif::RSoftwareInstall::Close(void)
+	?Authenticity@CNode@CComponentInfo@Usif@@QBE?AW4TAuthenticity@3@XZ @ 9 NONAME ; enum Usif::TAuthenticity Usif::CComponentInfo::CNode::Authenticity(void) const
+	?SetRootNodeAsChildL@CComponentInfo@Usif@@QAEXAAVCNode@12@@Z @ 10 NONAME ; void Usif::CComponentInfo::SetRootNodeAsChildL(class Usif::CComponentInfo::CNode &)
+	?Uninstall@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@H@Z @ 11 NONAME ; void Usif::RSoftwareInstall::Uninstall(int, class TRequestStatus &, int)
+	?StringByNameL@COpaqueNamedParams@Usif@@QBEABVTDesC16@@ABV3@@Z @ 12 NONAME ; class TDesC16 const & Usif::COpaqueNamedParams::StringByNameL(class TDesC16 const &) const
+	?ScomoState@CNode@CComponentInfo@Usif@@QBE?AW4TScomoState@3@XZ @ 13 NONAME ; enum Usif::TScomoState Usif::CComponentInfo::CNode::ScomoState(void) const
+	?Install@RSoftwareInstall@Usif@@QAEXABVTDesC16@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 14 NONAME ; void Usif::RSoftwareInstall::Install(class TDesC16 const &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	?AddIntL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@H@Z @ 15 NONAME ; void Usif::COpaqueNamedParams::AddIntL(class TDesC16 const &, int)
+	?NewLC@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 16 NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewLC(void)
+	?InstallStatus@CNode@CComponentInfo@Usif@@QBE?AW4TInstallStatus@3@XZ @ 17 NONAME ; enum Usif::TInstallStatus Usif::CComponentInfo::CNode::InstallStatus(void) const
+	?Children@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@XZ @ 18 NONAME ; class RPointerArray<class Usif::CComponentInfo::CNode> const & Usif::CComponentInfo::CNode::Children(void) const
+	?Cleanup@COpaqueNamedParams@Usif@@QAEXXZ @ 19 NONAME ; void Usif::COpaqueNamedParams::Cleanup(void)
+	?CancelOperation@RSoftwareInstall@Usif@@QAEXXZ @ 20 NONAME ; void Usif::RSoftwareInstall::CancelOperation(void)
+	?PrepareForIpcL@CComponentInfo@Usif@@QAEXAAVTIpcArgs@@H@Z @ 21 NONAME ; void Usif::CComponentInfo::PrepareForIpcL(class TIpcArgs &, int)
+	?NewLC@CComponentInfo@Usif@@SAPAV12@XZ @ 22 NONAME ; class Usif::CComponentInfo * Usif::CComponentInfo::NewLC(void)
+	?CountL@COpaqueNamedParams@Usif@@QBEHXZ @ 23 NONAME ; int Usif::COpaqueNamedParams::CountL(void) const
+	?SetRootNodeL@CComponentInfo@Usif@@QAEXPAVCNode@12@@Z @ 24 NONAME ; void Usif::CComponentInfo::SetRootNodeL(class Usif::CComponentInfo::CNode *)
+	?GetIntByNameL@COpaqueNamedParams@Usif@@QBEHABVTDesC16@@AAH@Z @ 25 NONAME ; int Usif::COpaqueNamedParams::GetIntByNameL(class TDesC16 const &, int &) const
+	?MaxInstalledSize@CNode@CComponentInfo@Usif@@QBEHXZ @ 26 NONAME ; int Usif::CComponentInfo::CNode::MaxInstalledSize(void) const
+	?GetNamesL@COpaqueNamedParams@Usif@@QBEXAAV?$RPointerArray@VHBufC16@@@@@Z @ 27 NONAME ; void Usif::COpaqueNamedParams::GetNamesL(class RPointerArray<class HBufC16> &) const
+	?Version@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 28 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Version(void) const
+	?RootNodeL@CComponentInfo@Usif@@QBEABVCNode@12@XZ @ 29 NONAME ; class Usif::CComponentInfo::CNode const & Usif::CComponentInfo::RootNodeL(void) const
+	??1CNode@CComponentInfo@Usif@@UAE@XZ @ 30 NONAME ; Usif::CComponentInfo::CNode::~CNode(void)
+	?GetComponentInfo@RSoftwareInstall@Usif@@QAEXABVTDesC16@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 31 NONAME ; void Usif::RSoftwareInstall::GetComponentInfo(class TDesC16 const &, class Usif::CComponentInfo &, class TRequestStatus &)
+	?Uninstall@RSoftwareInstall@Usif@@QAEXHABVCOpaqueNamedParams@2@AAV32@AAVTRequestStatus@@H@Z @ 32 NONAME ; void Usif::RSoftwareInstall::Uninstall(int, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	?Deactivate@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@@Z @ 33 NONAME ; void Usif::RSoftwareInstall::Deactivate(int, class TRequestStatus &)
+	?AddStringL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@0@Z @ 34 NONAME ; void Usif::COpaqueNamedParams::AddStringL(class TDesC16 const &, class TDesC16 const &)
+	?AddChildL@CNode@CComponentInfo@Usif@@QAEXPAV123@@Z @ 35 NONAME ; void Usif::CComponentInfo::CNode::AddChildL(class Usif::CComponentInfo::CNode *)
+	?ComponentId@CNode@CComponentInfo@Usif@@QBEHXZ @ 36 NONAME ; int Usif::CComponentInfo::CNode::ComponentId(void) const
+	?ExternalizeL@CComponentInfo@Usif@@QBEXAAVRWriteStream@@@Z @ 37 NONAME ; void Usif::CComponentInfo::ExternalizeL(class RWriteStream &) const
+	??0RSoftwareInstall@Usif@@QAE@XZ @ 38 NONAME ; Usif::RSoftwareInstall::RSoftwareInstall(void)
+	?SecureId@TSecurityContext@Usif@@QBE?AVTSecureId@@XZ @ 39 NONAME ; class TSecureId Usif::TSecurityContext::SecureId(void) const
+	?Activate@RSoftwareInstall@Usif@@QAEXHAAVTRequestStatus@@@Z @ 40 NONAME ; void Usif::RSoftwareInstall::Activate(int, class TRequestStatus &)
+	?ExternalizeL@COpaqueNamedParams@Usif@@QBEXAAVRWriteStream@@@Z @ 41 NONAME ; void Usif::COpaqueNamedParams::ExternalizeL(class RWriteStream &) const
+	?Install@RSoftwareInstall@Usif@@QAEXABVTDesC16@@AAVTRequestStatus@@H@Z @ 42 NONAME ; void Usif::RSoftwareInstall::Install(class TDesC16 const &, class TRequestStatus &, int)
+	?Vendor@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 43 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::Vendor(void) const
+	?NewL@COpaqueNamedParams@Usif@@SAPAV12@XZ @ 44 NONAME ; class Usif::COpaqueNamedParams * Usif::COpaqueNamedParams::NewL(void)
+	?GetComponentInfo@RSoftwareInstall@Usif@@QAEXAAVRFile@@AAVCComponentInfo@2@AAVTRequestStatus@@@Z @ 45 NONAME ; void Usif::RSoftwareInstall::GetComponentInfo(class RFile &, class Usif::CComponentInfo &, class TRequestStatus &)
+	?ComponentName@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 46 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::ComponentName(void) const
+	?Connect@RSoftwareInstall@Usif@@QAEHXZ @ 47 NONAME ; int Usif::RSoftwareInstall::Connect(void)
+	?Install@RSoftwareInstall@Usif@@QAEXAAVRFile@@ABVCOpaqueNamedParams@2@AAV42@AAVTRequestStatus@@H@Z @ 48 NONAME ; void Usif::RSoftwareInstall::Install(class RFile &, class Usif::COpaqueNamedParams const &, class Usif::COpaqueNamedParams &, class TRequestStatus &, int)
+	??1CComponentInfo@Usif@@UAE@XZ @ 49 NONAME ; Usif::CComponentInfo::~CComponentInfo(void)
+	?NewLC@CNode@CComponentInfo@Usif@@SAPAV123@ABVTDesC16@@000W4TScomoState@3@W4TInstallStatus@3@H0W4TAuthenticity@3@ABVTCapabilitySet@@HHHPAV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@PAV?$RPointerArray@VCNode@CComponentInfo@Usif@@@@@Z @ 50 NONAME ; class Usif::CComponentInfo::CNode * Usif::CComponentInfo::CNode::NewLC(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TScomoState, enum Usif::TInstallStatus, int, class TDesC16 const &, enum Usif::TAuthenticity, class TCapabilitySet const &, int, int, int, class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> *, class RPointerArray<class Usif::CComponentInfo::CNode> *)
+	??0TSecurityContext@Usif@@AAE@ABVRMessage2@@@Z @ 51 NONAME ; Usif::TSecurityContext::TSecurityContext(class RMessage2 const &)
+	?GlobalComponentId@CNode@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 52 NONAME ; class TDesC16 const & Usif::CComponentInfo::CNode::GlobalComponentId(void) const
+	?PrepareArgumentsForIpcL@COpaqueNamedParams@Usif@@QBEXAAVTIpcArgs@@H@Z @ 53 NONAME ; void Usif::COpaqueNamedParams::PrepareArgumentsForIpcL(class TIpcArgs &, int) const
+	?InternalizeL@COpaqueNamedParams@Usif@@QAEXAAVRReadStream@@@Z @ 54 NONAME ; void Usif::COpaqueNamedParams::InternalizeL(class RReadStream &)
+	??1COpaqueNamedParams@Usif@@UAE@XZ @ 55 NONAME ; Usif::COpaqueNamedParams::~COpaqueNamedParams(void)
+	?Install@RSoftwareInstall@Usif@@QAEXAAVRFile@@AAVTRequestStatus@@H@Z @ 56 NONAME ; void Usif::RSoftwareInstall::Install(class RFile &, class TRequestStatus &, int)
+	?HasExecutable@CNode@CComponentInfo@Usif@@QBEHXZ @ 57 NONAME ; int Usif::CComponentInfo::CNode::HasExecutable(void) const
+	?GroupName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 58 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::GroupName(void) const
+	?DriveSeletionRequired@CNode@CComponentInfo@Usif@@QBEHXZ @ 59 NONAME ; int Usif::CComponentInfo::CNode::DriveSeletionRequired(void) const
+	?IconFileName@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 60 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::IconFileName(void) const
+	?AppUid@CApplicationInfo@CComponentInfo@Usif@@QBEABVTUid@@XZ @ 61 NONAME ; class TUid const & Usif::CComponentInfo::CApplicationInfo::AppUid(void) const
+	?NewLC@CApplicationInfo@CComponentInfo@Usif@@SAPAV123@ABVTUid@@ABVTDesC16@@11@Z @ 62 NONAME ; class Usif::CComponentInfo::CApplicationInfo * Usif::CComponentInfo::CApplicationInfo::NewLC(class TUid const &, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
+	?Applications@CNode@CComponentInfo@Usif@@QBEABV?$RPointerArray@VCApplicationInfo@CComponentInfo@Usif@@@@XZ @ 63 NONAME ; class RPointerArray<class Usif::CComponentInfo::CApplicationInfo> const & Usif::CComponentInfo::CNode::Applications(void) const
+	??1CApplicationInfo@CComponentInfo@Usif@@UAE@XZ @ 64 NONAME ; Usif::CComponentInfo::CApplicationInfo::~CApplicationInfo(void)
+	?Name@CApplicationInfo@CComponentInfo@Usif@@QBEABVTDesC16@@XZ @ 65 NONAME ; class TDesC16 const & Usif::CComponentInfo::CApplicationInfo::Name(void) const
+	?AddIntArrayL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@ABV?$RArray@H@@@Z @ 66 NONAME ; void Usif::COpaqueNamedParams::AddIntArrayL(class TDesC16 const &, class RArray<int> const &)
+	?AddStringArrayL@COpaqueNamedParams@Usif@@QAEXABVTDesC16@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 67 NONAME ; void Usif::COpaqueNamedParams::AddStringArrayL(class TDesC16 const &, class RPointerArray<class HBufC16> const &)
+	?StringArrayByNameL@COpaqueNamedParams@Usif@@QBEABV?$RPointerArray@VHBufC16@@@@ABVTDesC16@@@Z @ 68 NONAME ; class RPointerArray<class HBufC16> const & Usif::COpaqueNamedParams::StringArrayByNameL(class TDesC16 const &) const
+	?IntArrayByNameL@COpaqueNamedParams@Usif@@QBEABV?$RArray@H@@ABVTDesC16@@@Z @ 69 NONAME ; class RArray<int> const & Usif::COpaqueNamedParams::IntArrayByNameL(class TDesC16 const &) const
+
--- a/installationservices/swinstallationfw/eabi/siftransportu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/eabi/siftransportu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,110 +1,122 @@
 EXPORTS
 	_ZN4Usif14CComponentInfo12SetRootNodeLEPNS0_5CNodeE @ 1 NONAME
 	_ZN4Usif14CComponentInfo14PrepareForIpcLER8TIpcArgsi @ 2 NONAME
-	_ZN4Usif14CComponentInfo19SetRootNodeAsChildLERNS0_5CNodeE @ 3 NONAME
-	_ZN4Usif14CComponentInfo4NewLEv @ 4 NONAME
-	_ZN4Usif14CComponentInfo5CNode5NewLCERK7TDesC16S4_S4_S4_NS_11TScomoStateENS_14TInstallStatusEiS4_NS_13TAuthenticityERK14TCapabilitySetiiiP13RPointerArrayINS0_16CApplicationInfoEEPSB_IS1_E @ 5 NONAME
-	_ZN4Usif14CComponentInfo5CNode9AddChildLEPS1_ @ 6 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD0Ev @ 7 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD1Ev @ 8 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD2Ev @ 9 NONAME
-	_ZN4Usif14CComponentInfo5NewLCEv @ 10 NONAME
-	_ZN4Usif14CComponentInfoD0Ev @ 11 NONAME
-	_ZN4Usif14CComponentInfoD1Ev @ 12 NONAME
-	_ZN4Usif14CComponentInfoD2Ev @ 13 NONAME
-	_ZN4Usif16TSecurityContextC1ERK9RMessage2 @ 14 NONAME
-	_ZN4Usif16TSecurityContextC2ERK9RMessage2 @ 15 NONAME
-	_ZN4Usif17CSifTransportTask10CancelImplEv @ 16 NONAME
-	_ZN4Usif17CSifTransportTask10FileHandleEv @ 17 NONAME
-	_ZN4Usif17CSifTransportTask13ComponentInfoEv @ 18 NONAME
-	_ZN4Usif17CSifTransportTask13CustomResultsEv @ 19 NONAME
-	_ZN4Usif17CSifTransportTask13RequestStatusEv @ 20 NONAME
-	_ZN4Usif17CSifTransportTaskC2ERNS_20TTransportTaskParamsEi @ 21 NONAME
-	_ZN4Usif17CSifTransportTaskD0Ev @ 22 NONAME
-	_ZN4Usif17CSifTransportTaskD1Ev @ 23 NONAME
-	_ZN4Usif17CSifTransportTaskD2Ev @ 24 NONAME
-	_ZN4Usif18COpaqueNamedParams10AddStringLERK7TDesC16S3_ @ 25 NONAME
-	_ZN4Usif18COpaqueNamedParams12InternalizeLER11RReadStream @ 26 NONAME
-	_ZN4Usif18COpaqueNamedParams21PrepareResultsForIpcLER8TIpcArgsi @ 27 NONAME
-	_ZN4Usif18COpaqueNamedParams4NewLEv @ 28 NONAME
-	_ZN4Usif18COpaqueNamedParams5NewLCEv @ 29 NONAME
-	_ZN4Usif18COpaqueNamedParams7AddIntLERK7TDesC16i @ 30 NONAME
-	_ZN4Usif18COpaqueNamedParams7CleanupEv @ 31 NONAME
-	_ZN4Usif18COpaqueNamedParamsD0Ev @ 32 NONAME
-	_ZN4Usif18COpaqueNamedParamsD1Ev @ 33 NONAME
-	_ZN4Usif18COpaqueNamedParamsD2Ev @ 34 NONAME
-	_ZN4Usif19CSifTransportServer23NewSifTransportServerLCEv @ 35 NONAME
-	_ZN4Usif19RSifTransportClient10DeactivateEiR14TRequestStatus @ 36 NONAME
-	_ZN4Usif19RSifTransportClient15CancelOperationEv @ 37 NONAME
-	_ZN4Usif19RSifTransportClient16GetComponentInfoER5RFileRNS_14CComponentInfoER14TRequestStatus @ 38 NONAME
-	_ZN4Usif19RSifTransportClient16GetComponentInfoERK7TDesC16RNS_14CComponentInfoER14TRequestStatus @ 39 NONAME
-	_ZN4Usif19RSifTransportClient5CloseEv @ 40 NONAME
-	_ZN4Usif19RSifTransportClient7ConnectERK7TDesC16RK8TVersionS3_4TUid @ 41 NONAME
-	_ZN4Usif19RSifTransportClient7InstallER5RFileR14TRequestStatusi @ 42 NONAME
-	_ZN4Usif19RSifTransportClient7InstallER5RFileRKNS_18COpaqueNamedParamsERS3_R14TRequestStatusi @ 43 NONAME
-	_ZN4Usif19RSifTransportClient7InstallERK7TDesC16R14TRequestStatusi @ 44 NONAME
-	_ZN4Usif19RSifTransportClient7InstallERK7TDesC16RKNS_18COpaqueNamedParamsERS4_R14TRequestStatusi @ 45 NONAME
-	_ZN4Usif19RSifTransportClient8ActivateEiR14TRequestStatus @ 46 NONAME
-	_ZN4Usif19RSifTransportClient9UninstallEiR14TRequestStatusi @ 47 NONAME
-	_ZN4Usif19RSifTransportClient9UninstallEiRKNS_18COpaqueNamedParamsERS1_R14TRequestStatusi @ 48 NONAME
-	_ZN4Usif19RSifTransportClientC1Ev @ 49 NONAME
-	_ZN4Usif19RSifTransportClientC2Ev @ 50 NONAME
-	_ZN4Usif20StartTransportServerERK7TDesC16RK8TVersionPFPNS_17CSifTransportTaskENS_20TransportTaskFactory9TTaskTypeERNS_20TTransportTaskParamsEEi @ 51 NONAME
-	_ZN4Usif20TTransportTaskParamsC1Ev @ 52 NONAME
-	_ZN4Usif20TTransportTaskParamsC2Ev @ 53 NONAME
-	_ZNK4Usif14CComponentInfo12ExternalizeLER12RWriteStream @ 54 NONAME
-	_ZNK4Usif14CComponentInfo5CNode10ScomoStateEv @ 55 NONAME
-	_ZNK4Usif14CComponentInfo5CNode11ComponentIdEv @ 56 NONAME
-	_ZNK4Usif14CComponentInfo5CNode12AuthenticityEv @ 57 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13ComponentNameEv @ 58 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13InstallStatusEv @ 59 NONAME
-	_ZNK4Usif14CComponentInfo5CNode16MaxInstalledSizeEv @ 60 NONAME
-	_ZNK4Usif14CComponentInfo5CNode16SoftwareTypeNameEv @ 61 NONAME
-	_ZNK4Usif14CComponentInfo5CNode17GlobalComponentIdEv @ 62 NONAME
-	_ZNK4Usif14CComponentInfo5CNode17UserGrantableCapsEv @ 63 NONAME
-	_ZNK4Usif14CComponentInfo5CNode6VendorEv @ 64 NONAME
-	_ZNK4Usif14CComponentInfo5CNode7VersionEv @ 65 NONAME
-	_ZNK4Usif14CComponentInfo5CNode8ChildrenEv @ 66 NONAME
-	_ZNK4Usif14CComponentInfo9RootNodeLEv @ 67 NONAME
-	_ZNK4Usif16TSecurityContext13HasCapabilityE11TCapability @ 68 NONAME
-	_ZNK4Usif16TSecurityContext14HasCapabilityLE11TCapability @ 69 NONAME
-	_ZNK4Usif16TSecurityContext8SecureIdEv @ 70 NONAME
-	_ZNK4Usif17CSifTransportTask11ComponentIdEv @ 71 NONAME
-	_ZNK4Usif17CSifTransportTask15CustomArgumentsEv @ 72 NONAME
-	_ZNK4Usif17CSifTransportTask15SecurityContextEv @ 73 NONAME
-	_ZNK4Usif17CSifTransportTask8FileNameEv @ 74 NONAME
-	_ZNK4Usif18COpaqueNamedParams10IntByNameLERK7TDesC16 @ 75 NONAME
-	_ZNK4Usif18COpaqueNamedParams12ExternalizeLER12RWriteStream @ 76 NONAME
-	_ZNK4Usif18COpaqueNamedParams13GetIntByNameLERK7TDesC16Ri @ 77 NONAME
-	_ZNK4Usif18COpaqueNamedParams13StringByNameLERK7TDesC16 @ 78 NONAME
-	_ZNK4Usif18COpaqueNamedParams23PrepareArgumentsForIpcLER8TIpcArgsi @ 79 NONAME
-	_ZNK4Usif18COpaqueNamedParams6CountLEv @ 80 NONAME
-	_ZNK4Usif18COpaqueNamedParams9GetNamesLER13RPointerArrayI7HBufC16E @ 81 NONAME
-	_ZTIN4Usif14CComponentInfo5CNodeE @ 82 NONAME
-	_ZTIN4Usif14CComponentInfoE @ 83 NONAME
-	_ZTIN4Usif17CSifTransportTaskE @ 84 NONAME
-	_ZTIN4Usif18COpaqueNamedParamsE @ 85 NONAME
-	_ZTIN4Usif19CSifTransportServerE @ 86 NONAME
-	_ZTIN4Usif20CSifTransportRequestE @ 87 NONAME
-	_ZTIN4Usif20CSifTransportSessionE @ 88 NONAME
-	_ZTVN4Usif14CComponentInfo5CNodeE @ 89 NONAME
-	_ZTVN4Usif14CComponentInfoE @ 90 NONAME
-	_ZTVN4Usif17CSifTransportTaskE @ 91 NONAME
-	_ZTVN4Usif18COpaqueNamedParamsE @ 92 NONAME
-	_ZTVN4Usif19CSifTransportServerE @ 93 NONAME
-	_ZTVN4Usif20CSifTransportRequestE @ 94 NONAME
-	_ZTVN4Usif20CSifTransportSessionE @ 95 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13HasExecutableEv @ 96 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfo5NewLCERK4TUidRK7TDesC16S7_S7_ @ 97 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD0Ev @ 98 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD1Ev @ 99 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD2Ev @ 100 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo12IconFileNameEv @ 101 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo4NameEv @ 102 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo6AppUidEv @ 103 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo9GroupNameEv @ 104 NONAME
-	_ZNK4Usif14CComponentInfo5CNode12ApplicationsEv @ 105 NONAME
-	_ZNK4Usif14CComponentInfo5CNode21DriveSeletionRequiredEv @ 106 NONAME
-	_ZTIN4Usif14CComponentInfo16CApplicationInfoE @ 107 NONAME
-	_ZTVN4Usif14CComponentInfo16CApplicationInfoE @ 108 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfo5NewLCERK4TUidRK7TDesC16S7_S7_ @ 3 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD0Ev @ 4 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD1Ev @ 5 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD2Ev @ 6 NONAME
+	_ZN4Usif14CComponentInfo19SetRootNodeAsChildLERNS0_5CNodeE @ 7 NONAME
+	_ZN4Usif14CComponentInfo4NewLEv @ 8 NONAME
+	_ZN4Usif14CComponentInfo5CNode5NewLCERK7TDesC16S4_S4_S4_NS_11TScomoStateENS_14TInstallStatusEiS4_NS_13TAuthenticityERK14TCapabilitySetiiiP13RPointerArrayINS0_16CApplicationInfoEEPSB_IS1_E @ 9 NONAME
+	_ZN4Usif14CComponentInfo5CNode9AddChildLEPS1_ @ 10 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD0Ev @ 11 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD1Ev @ 12 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD2Ev @ 13 NONAME
+	_ZN4Usif14CComponentInfo5NewLCEv @ 14 NONAME
+	_ZN4Usif14CComponentInfoD0Ev @ 15 NONAME
+	_ZN4Usif14CComponentInfoD1Ev @ 16 NONAME
+	_ZN4Usif14CComponentInfoD2Ev @ 17 NONAME
+	_ZN4Usif16TSecurityContextC1ERK9RMessage2 @ 18 NONAME
+	_ZN4Usif16TSecurityContextC2ERK9RMessage2 @ 19 NONAME
+	_ZN4Usif17CSifTransportTask10CancelImplEv @ 20 NONAME
+	_ZN4Usif17CSifTransportTask10FileHandleEv @ 21 NONAME
+	_ZN4Usif17CSifTransportTask13ComponentInfoEv @ 22 NONAME
+	_ZN4Usif17CSifTransportTask13CustomResultsEv @ 23 NONAME
+	_ZN4Usif17CSifTransportTask13RequestStatusEv @ 24 NONAME
+	_ZN4Usif17CSifTransportTaskC2ERNS_20TTransportTaskParamsEi @ 25 NONAME
+	_ZN4Usif17CSifTransportTaskD0Ev @ 26 NONAME
+	_ZN4Usif17CSifTransportTaskD1Ev @ 27 NONAME
+	_ZN4Usif17CSifTransportTaskD2Ev @ 28 NONAME
+	_ZN4Usif18COpaqueNamedParams10AddStringLERK7TDesC16S3_ @ 29 NONAME
+	_ZN4Usif18COpaqueNamedParams12AddIntArrayLERK7TDesC16RK6RArrayIiE @ 30 NONAME
+	_ZN4Usif18COpaqueNamedParams12InternalizeLER11RReadStream @ 31 NONAME
+	_ZN4Usif18COpaqueNamedParams15AddStringArrayLERK7TDesC16RK13RPointerArrayI7HBufC16E @ 32 NONAME
+	_ZN4Usif18COpaqueNamedParams21PrepareResultsForIpcLER8TIpcArgsi @ 33 NONAME
+	_ZN4Usif18COpaqueNamedParams4NewLEv @ 34 NONAME
+	_ZN4Usif18COpaqueNamedParams5NewLCEv @ 35 NONAME
+	_ZN4Usif18COpaqueNamedParams7AddIntLERK7TDesC16i @ 36 NONAME
+	_ZN4Usif18COpaqueNamedParams7CleanupEv @ 37 NONAME
+	_ZN4Usif18COpaqueNamedParamsD0Ev @ 38 NONAME
+	_ZN4Usif18COpaqueNamedParamsD1Ev @ 39 NONAME
+	_ZN4Usif18COpaqueNamedParamsD2Ev @ 40 NONAME
+	_ZN4Usif19CSifTransportServer23NewSifTransportServerLCEv @ 41 NONAME
+	_ZN4Usif19RSifTransportClient10DeactivateEiR14TRequestStatus @ 42 NONAME
+	_ZN4Usif19RSifTransportClient15CancelOperationEv @ 43 NONAME
+	_ZN4Usif19RSifTransportClient16GetComponentInfoER5RFileRNS_14CComponentInfoER14TRequestStatus @ 44 NONAME
+	_ZN4Usif19RSifTransportClient16GetComponentInfoERK7TDesC16RNS_14CComponentInfoER14TRequestStatus @ 45 NONAME
+	_ZN4Usif19RSifTransportClient5CloseEv @ 46 NONAME
+	_ZN4Usif19RSifTransportClient7ConnectERK7TDesC16RK8TVersionS3_4TUid @ 47 NONAME
+	_ZN4Usif19RSifTransportClient7InstallER5RFileR14TRequestStatusi @ 48 NONAME
+	_ZN4Usif19RSifTransportClient7InstallER5RFileRKNS_18COpaqueNamedParamsERS3_R14TRequestStatusi @ 49 NONAME
+	_ZN4Usif19RSifTransportClient7InstallERK7TDesC16R14TRequestStatusi @ 50 NONAME
+	_ZN4Usif19RSifTransportClient7InstallERK7TDesC16RKNS_18COpaqueNamedParamsERS4_R14TRequestStatusi @ 51 NONAME
+	_ZN4Usif19RSifTransportClient8ActivateEiR14TRequestStatus @ 52 NONAME
+	_ZN4Usif19RSifTransportClient9UninstallEiR14TRequestStatusi @ 53 NONAME
+	_ZN4Usif19RSifTransportClient9UninstallEiRKNS_18COpaqueNamedParamsERS1_R14TRequestStatusi @ 54 NONAME
+	_ZN4Usif19RSifTransportClientC1Ev @ 55 NONAME
+	_ZN4Usif19RSifTransportClientC2Ev @ 56 NONAME
+	_ZN4Usif20StartTransportServerERK7TDesC16RK8TVersionPFPNS_17CSifTransportTaskENS_20TransportTaskFactory9TTaskTypeERNS_20TTransportTaskParamsEEi @ 57 NONAME
+	_ZN4Usif20TTransportTaskParamsC1Ev @ 58 NONAME
+	_ZN4Usif20TTransportTaskParamsC2Ev @ 59 NONAME
+	_ZNK4Usif14CComponentInfo12ExternalizeLER12RWriteStream @ 60 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo12IconFileNameEv @ 61 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo4NameEv @ 62 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo6AppUidEv @ 63 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo9GroupNameEv @ 64 NONAME
+	_ZNK4Usif14CComponentInfo5CNode10ScomoStateEv @ 65 NONAME
+	_ZNK4Usif14CComponentInfo5CNode11ComponentIdEv @ 66 NONAME
+	_ZNK4Usif14CComponentInfo5CNode12ApplicationsEv @ 67 NONAME
+	_ZNK4Usif14CComponentInfo5CNode12AuthenticityEv @ 68 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13ComponentNameEv @ 69 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13HasExecutableEv @ 70 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13InstallStatusEv @ 71 NONAME
+	_ZNK4Usif14CComponentInfo5CNode16MaxInstalledSizeEv @ 72 NONAME
+	_ZNK4Usif14CComponentInfo5CNode16SoftwareTypeNameEv @ 73 NONAME
+	_ZNK4Usif14CComponentInfo5CNode17GlobalComponentIdEv @ 74 NONAME
+	_ZNK4Usif14CComponentInfo5CNode17UserGrantableCapsEv @ 75 NONAME
+	_ZNK4Usif14CComponentInfo5CNode21DriveSeletionRequiredEv @ 76 NONAME
+	_ZNK4Usif14CComponentInfo5CNode6VendorEv @ 77 NONAME
+	_ZNK4Usif14CComponentInfo5CNode7VersionEv @ 78 NONAME
+	_ZNK4Usif14CComponentInfo5CNode8ChildrenEv @ 79 NONAME
+	_ZNK4Usif14CComponentInfo9RootNodeLEv @ 80 NONAME
+	_ZNK4Usif16TSecurityContext13HasCapabilityE11TCapability @ 81 NONAME
+	_ZNK4Usif16TSecurityContext14HasCapabilityLE11TCapability @ 82 NONAME
+	_ZNK4Usif16TSecurityContext8SecureIdEv @ 83 NONAME
+	_ZNK4Usif17CSifTransportTask11ComponentIdEv @ 84 NONAME
+	_ZNK4Usif17CSifTransportTask15CustomArgumentsEv @ 85 NONAME
+	_ZNK4Usif17CSifTransportTask15SecurityContextEv @ 86 NONAME
+	_ZNK4Usif17CSifTransportTask8FileNameEv @ 87 NONAME
+	_ZNK4Usif18COpaqueNamedParams10IntByNameLERK7TDesC16 @ 88 NONAME
+	_ZNK4Usif18COpaqueNamedParams12ExternalizeLER12RWriteStream @ 89 NONAME
+	_ZNK4Usif18COpaqueNamedParams13GetIntByNameLERK7TDesC16Ri @ 90 NONAME
+	_ZNK4Usif18COpaqueNamedParams13StringByNameLERK7TDesC16 @ 91 NONAME
+	_ZNK4Usif18COpaqueNamedParams15IntArrayByNameLERK7TDesC16 @ 92 NONAME
+	_ZNK4Usif18COpaqueNamedParams18StringArrayByNameLERK7TDesC16 @ 93 NONAME
+	_ZNK4Usif18COpaqueNamedParams23PrepareArgumentsForIpcLER8TIpcArgsi @ 94 NONAME
+	_ZNK4Usif18COpaqueNamedParams6CountLEv @ 95 NONAME
+	_ZNK4Usif18COpaqueNamedParams9GetNamesLER13RPointerArrayI7HBufC16E @ 96 NONAME
+	_ZTIN4Usif11CStringItemE @ 97 NONAME
+	_ZTIN4Usif12CIntegerItemE @ 98 NONAME
+	_ZTIN4Usif14CComponentInfo16CApplicationInfoE @ 99 NONAME
+	_ZTIN4Usif14CComponentInfo5CNodeE @ 100 NONAME
+	_ZTIN4Usif14CComponentInfoE @ 101 NONAME
+	_ZTIN4Usif16CStringArrayItemE @ 102 NONAME
+	_ZTIN4Usif17CIntegerArrayItemE @ 103 NONAME
+	_ZTIN4Usif17CSifTransportTaskE @ 104 NONAME
+	_ZTIN4Usif19CSifTransportServerE @ 105 NONAME
+	_ZTIN4Usif20CSifTransportRequestE @ 106 NONAME
+	_ZTIN4Usif20CSifTransportSessionE @ 107 NONAME
+	_ZTIN4Usif9CItemBaseE @ 108 NONAME
+	_ZTVN4Usif11CStringItemE @ 109 NONAME
+	_ZTVN4Usif12CIntegerItemE @ 110 NONAME
+	_ZTVN4Usif14CComponentInfo16CApplicationInfoE @ 111 NONAME
+	_ZTVN4Usif14CComponentInfo5CNodeE @ 112 NONAME
+	_ZTVN4Usif14CComponentInfoE @ 113 NONAME
+	_ZTVN4Usif16CStringArrayItemE @ 114 NONAME
+	_ZTVN4Usif17CIntegerArrayItemE @ 115 NONAME
+	_ZTVN4Usif17CSifTransportTaskE @ 116 NONAME
+	_ZTVN4Usif19CSifTransportServerE @ 117 NONAME
+	_ZTVN4Usif20CSifTransportRequestE @ 118 NONAME
+	_ZTVN4Usif20CSifTransportSessionE @ 119 NONAME
+	_ZTVN4Usif9CItemBaseE @ 120 NONAME
 
--- a/installationservices/swinstallationfw/eabi/sifu.def	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/eabi/sifu.def	Fri Jun 11 13:45:18 2010 +0300
@@ -1,85 +1,97 @@
-EXPORTS
+EXPORTS	
 	_ZN4Usif14CComponentInfo12SetRootNodeLEPNS0_5CNodeE @ 1 NONAME
 	_ZN4Usif14CComponentInfo14PrepareForIpcLER8TIpcArgsi @ 2 NONAME
-	_ZN4Usif14CComponentInfo19SetRootNodeAsChildLERNS0_5CNodeE @ 3 NONAME
-	_ZN4Usif14CComponentInfo4NewLEv @ 4 NONAME
-	_ZN4Usif14CComponentInfo5CNode5NewLCERK7TDesC16S4_S4_S4_NS_11TScomoStateENS_14TInstallStatusEiS4_NS_13TAuthenticityERK14TCapabilitySetiiiP13RPointerArrayINS0_16CApplicationInfoEEPSB_IS1_E @ 5 NONAME
-	_ZN4Usif14CComponentInfo5CNode9AddChildLEPS1_ @ 6 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD0Ev @ 7 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD1Ev @ 8 NONAME
-	_ZN4Usif14CComponentInfo5CNodeD2Ev @ 9 NONAME
-	_ZN4Usif14CComponentInfo5NewLCEv @ 10 NONAME
-	_ZN4Usif14CComponentInfoD0Ev @ 11 NONAME
-	_ZN4Usif14CComponentInfoD1Ev @ 12 NONAME
-	_ZN4Usif14CComponentInfoD2Ev @ 13 NONAME
-	_ZN4Usif16RSoftwareInstall10DeactivateEiR14TRequestStatus @ 14 NONAME
-	_ZN4Usif16RSoftwareInstall15CancelOperationEv @ 15 NONAME
-	_ZN4Usif16RSoftwareInstall16GetComponentInfoER5RFileRNS_14CComponentInfoER14TRequestStatus @ 16 NONAME
-	_ZN4Usif16RSoftwareInstall16GetComponentInfoERK7TDesC16RNS_14CComponentInfoER14TRequestStatus @ 17 NONAME
-	_ZN4Usif16RSoftwareInstall5CloseEv @ 18 NONAME
-	_ZN4Usif16RSoftwareInstall7ConnectEv @ 19 NONAME
-	_ZN4Usif16RSoftwareInstall7InstallER5RFileR14TRequestStatusi @ 20 NONAME
-	_ZN4Usif16RSoftwareInstall7InstallER5RFileRKNS_18COpaqueNamedParamsERS3_R14TRequestStatusi @ 21 NONAME
-	_ZN4Usif16RSoftwareInstall7InstallERK7TDesC16R14TRequestStatusi @ 22 NONAME
-	_ZN4Usif16RSoftwareInstall7InstallERK7TDesC16RKNS_18COpaqueNamedParamsERS4_R14TRequestStatusi @ 23 NONAME
-	_ZN4Usif16RSoftwareInstall8ActivateEiR14TRequestStatus @ 24 NONAME
-	_ZN4Usif16RSoftwareInstall9UninstallEiR14TRequestStatusi @ 25 NONAME
-	_ZN4Usif16RSoftwareInstall9UninstallEiRKNS_18COpaqueNamedParamsERS1_R14TRequestStatusi @ 26 NONAME
-	_ZN4Usif16RSoftwareInstallC1Ev @ 27 NONAME
-	_ZN4Usif16RSoftwareInstallC2Ev @ 28 NONAME
-	_ZN4Usif16TSecurityContextC1ERK9RMessage2 @ 29 NONAME
-	_ZN4Usif16TSecurityContextC2ERK9RMessage2 @ 30 NONAME
-	_ZN4Usif18COpaqueNamedParams10AddStringLERK7TDesC16S3_ @ 31 NONAME
-	_ZN4Usif18COpaqueNamedParams12InternalizeLER11RReadStream @ 32 NONAME
-	_ZN4Usif18COpaqueNamedParams21PrepareResultsForIpcLER8TIpcArgsi @ 33 NONAME
-	_ZN4Usif18COpaqueNamedParams4NewLEv @ 34 NONAME
-	_ZN4Usif18COpaqueNamedParams5NewLCEv @ 35 NONAME
-	_ZN4Usif18COpaqueNamedParams7AddIntLERK7TDesC16i @ 36 NONAME
-	_ZN4Usif18COpaqueNamedParams7CleanupEv @ 37 NONAME
-	_ZN4Usif18COpaqueNamedParamsD0Ev @ 38 NONAME
-	_ZN4Usif18COpaqueNamedParamsD1Ev @ 39 NONAME
-	_ZN4Usif18COpaqueNamedParamsD2Ev @ 40 NONAME
-	_ZNK4Usif14CComponentInfo12ExternalizeLER12RWriteStream @ 41 NONAME
-	_ZNK4Usif14CComponentInfo5CNode10ScomoStateEv @ 42 NONAME
-	_ZNK4Usif14CComponentInfo5CNode11ComponentIdEv @ 43 NONAME
-	_ZNK4Usif14CComponentInfo5CNode12AuthenticityEv @ 44 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13ComponentNameEv @ 45 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13InstallStatusEv @ 46 NONAME
-	_ZNK4Usif14CComponentInfo5CNode16MaxInstalledSizeEv @ 47 NONAME
-	_ZNK4Usif14CComponentInfo5CNode16SoftwareTypeNameEv @ 48 NONAME
-	_ZNK4Usif14CComponentInfo5CNode17GlobalComponentIdEv @ 49 NONAME
-	_ZNK4Usif14CComponentInfo5CNode17UserGrantableCapsEv @ 50 NONAME
-	_ZNK4Usif14CComponentInfo5CNode6VendorEv @ 51 NONAME
-	_ZNK4Usif14CComponentInfo5CNode7VersionEv @ 52 NONAME
-	_ZNK4Usif14CComponentInfo5CNode8ChildrenEv @ 53 NONAME
-	_ZNK4Usif14CComponentInfo9RootNodeLEv @ 54 NONAME
-	_ZNK4Usif16TSecurityContext13HasCapabilityE11TCapability @ 55 NONAME
-	_ZNK4Usif16TSecurityContext14HasCapabilityLE11TCapability @ 56 NONAME
-	_ZNK4Usif16TSecurityContext8SecureIdEv @ 57 NONAME
-	_ZNK4Usif18COpaqueNamedParams10IntByNameLERK7TDesC16 @ 58 NONAME
-	_ZNK4Usif18COpaqueNamedParams12ExternalizeLER12RWriteStream @ 59 NONAME
-	_ZNK4Usif18COpaqueNamedParams13GetIntByNameLERK7TDesC16Ri @ 60 NONAME
-	_ZNK4Usif18COpaqueNamedParams13StringByNameLERK7TDesC16 @ 61 NONAME
-	_ZNK4Usif18COpaqueNamedParams23PrepareArgumentsForIpcLER8TIpcArgsi @ 62 NONAME
-	_ZNK4Usif18COpaqueNamedParams6CountLEv @ 63 NONAME
-	_ZNK4Usif18COpaqueNamedParams9GetNamesLER13RPointerArrayI7HBufC16E @ 64 NONAME
-	_ZTIN4Usif14CComponentInfo5CNodeE @ 65 NONAME
-	_ZTIN4Usif14CComponentInfoE @ 66 NONAME
-	_ZTIN4Usif18COpaqueNamedParamsE @ 67 NONAME
-	_ZTVN4Usif14CComponentInfo5CNodeE @ 68 NONAME
-	_ZTVN4Usif14CComponentInfoE @ 69 NONAME
-	_ZTVN4Usif18COpaqueNamedParamsE @ 70 NONAME
-	_ZNK4Usif14CComponentInfo5CNode13HasExecutableEv @ 71 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfo5NewLCERK4TUidRK7TDesC16S7_S7_ @ 72 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD0Ev @ 73 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD1Ev @ 74 NONAME
-	_ZN4Usif14CComponentInfo16CApplicationInfoD2Ev @ 75 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo12IconFileNameEv @ 76 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo4NameEv @ 77 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo6AppUidEv @ 78 NONAME
-	_ZNK4Usif14CComponentInfo16CApplicationInfo9GroupNameEv @ 79 NONAME
-	_ZNK4Usif14CComponentInfo5CNode12ApplicationsEv @ 80 NONAME
-	_ZNK4Usif14CComponentInfo5CNode21DriveSeletionRequiredEv @ 81 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfo5NewLCERK4TUidRK7TDesC16S7_S7_ @ 3 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD0Ev @ 4 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD1Ev @ 5 NONAME
+	_ZN4Usif14CComponentInfo16CApplicationInfoD2Ev @ 6 NONAME
+	_ZN4Usif14CComponentInfo19SetRootNodeAsChildLERNS0_5CNodeE @ 7 NONAME
+	_ZN4Usif14CComponentInfo4NewLEv @ 8 NONAME
+	_ZN4Usif14CComponentInfo5CNode5NewLCERK7TDesC16S4_S4_S4_NS_11TScomoStateENS_14TInstallStatusEiS4_NS_13TAuthenticityERK14TCapabilitySetiiiP13RPointerArrayINS0_16CApplicationInfoEEPSB_IS1_E @ 9 NONAME
+	_ZN4Usif14CComponentInfo5CNode9AddChildLEPS1_ @ 10 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD0Ev @ 11 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD1Ev @ 12 NONAME
+	_ZN4Usif14CComponentInfo5CNodeD2Ev @ 13 NONAME
+	_ZN4Usif14CComponentInfo5NewLCEv @ 14 NONAME
+	_ZN4Usif14CComponentInfoD0Ev @ 15 NONAME
+	_ZN4Usif14CComponentInfoD1Ev @ 16 NONAME
+	_ZN4Usif14CComponentInfoD2Ev @ 17 NONAME
+	_ZN4Usif16RSoftwareInstall10DeactivateEiR14TRequestStatus @ 18 NONAME
+	_ZN4Usif16RSoftwareInstall15CancelOperationEv @ 19 NONAME
+	_ZN4Usif16RSoftwareInstall16GetComponentInfoER5RFileRNS_14CComponentInfoER14TRequestStatus @ 20 NONAME
+	_ZN4Usif16RSoftwareInstall16GetComponentInfoERK7TDesC16RNS_14CComponentInfoER14TRequestStatus @ 21 NONAME
+	_ZN4Usif16RSoftwareInstall5CloseEv @ 22 NONAME
+	_ZN4Usif16RSoftwareInstall7ConnectEv @ 23 NONAME
+	_ZN4Usif16RSoftwareInstall7InstallER5RFileR14TRequestStatusi @ 24 NONAME
+	_ZN4Usif16RSoftwareInstall7InstallER5RFileRKNS_18COpaqueNamedParamsERS3_R14TRequestStatusi @ 25 NONAME
+	_ZN4Usif16RSoftwareInstall7InstallERK7TDesC16R14TRequestStatusi @ 26 NONAME
+	_ZN4Usif16RSoftwareInstall7InstallERK7TDesC16RKNS_18COpaqueNamedParamsERS4_R14TRequestStatusi @ 27 NONAME
+	_ZN4Usif16RSoftwareInstall8ActivateEiR14TRequestStatus @ 28 NONAME
+	_ZN4Usif16RSoftwareInstall9UninstallEiR14TRequestStatusi @ 29 NONAME
+	_ZN4Usif16RSoftwareInstall9UninstallEiRKNS_18COpaqueNamedParamsERS1_R14TRequestStatusi @ 30 NONAME
+	_ZN4Usif16RSoftwareInstallC1Ev @ 31 NONAME
+	_ZN4Usif16RSoftwareInstallC2Ev @ 32 NONAME
+	_ZN4Usif16TSecurityContextC1ERK9RMessage2 @ 33 NONAME
+	_ZN4Usif16TSecurityContextC2ERK9RMessage2 @ 34 NONAME
+	_ZN4Usif18COpaqueNamedParams10AddStringLERK7TDesC16S3_ @ 35 NONAME
+	_ZN4Usif18COpaqueNamedParams12AddIntArrayLERK7TDesC16RK6RArrayIiE @ 36 NONAME
+	_ZN4Usif18COpaqueNamedParams12InternalizeLER11RReadStream @ 37 NONAME
+	_ZN4Usif18COpaqueNamedParams15AddStringArrayLERK7TDesC16RK13RPointerArrayI7HBufC16E @ 38 NONAME
+	_ZN4Usif18COpaqueNamedParams21PrepareResultsForIpcLER8TIpcArgsi @ 39 NONAME
+	_ZN4Usif18COpaqueNamedParams4NewLEv @ 40 NONAME
+	_ZN4Usif18COpaqueNamedParams5NewLCEv @ 41 NONAME
+	_ZN4Usif18COpaqueNamedParams7AddIntLERK7TDesC16i @ 42 NONAME
+	_ZN4Usif18COpaqueNamedParams7CleanupEv @ 43 NONAME
+	_ZN4Usif18COpaqueNamedParamsD0Ev @ 44 NONAME
+	_ZN4Usif18COpaqueNamedParamsD1Ev @ 45 NONAME
+	_ZN4Usif18COpaqueNamedParamsD2Ev @ 46 NONAME
+	_ZNK4Usif14CComponentInfo12ExternalizeLER12RWriteStream @ 47 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo12IconFileNameEv @ 48 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo4NameEv @ 49 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo6AppUidEv @ 50 NONAME
+	_ZNK4Usif14CComponentInfo16CApplicationInfo9GroupNameEv @ 51 NONAME
+	_ZNK4Usif14CComponentInfo5CNode10ScomoStateEv @ 52 NONAME
+	_ZNK4Usif14CComponentInfo5CNode11ComponentIdEv @ 53 NONAME
+	_ZNK4Usif14CComponentInfo5CNode12ApplicationsEv @ 54 NONAME
+	_ZNK4Usif14CComponentInfo5CNode12AuthenticityEv @ 55 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13ComponentNameEv @ 56 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13HasExecutableEv @ 57 NONAME
+	_ZNK4Usif14CComponentInfo5CNode13InstallStatusEv @ 58 NONAME
+	_ZNK4Usif14CComponentInfo5CNode16MaxInstalledSizeEv @ 59 NONAME
+	_ZNK4Usif14CComponentInfo5CNode16SoftwareTypeNameEv @ 60 NONAME
+	_ZNK4Usif14CComponentInfo5CNode17GlobalComponentIdEv @ 61 NONAME
+	_ZNK4Usif14CComponentInfo5CNode17UserGrantableCapsEv @ 62 NONAME
+	_ZNK4Usif14CComponentInfo5CNode21DriveSeletionRequiredEv @ 63 NONAME
+	_ZNK4Usif14CComponentInfo5CNode6VendorEv @ 64 NONAME
+	_ZNK4Usif14CComponentInfo5CNode7VersionEv @ 65 NONAME
+	_ZNK4Usif14CComponentInfo5CNode8ChildrenEv @ 66 NONAME
+	_ZNK4Usif14CComponentInfo9RootNodeLEv @ 67 NONAME
+	_ZNK4Usif16TSecurityContext13HasCapabilityE11TCapability @ 68 NONAME
+	_ZNK4Usif16TSecurityContext14HasCapabilityLE11TCapability @ 69 NONAME
+	_ZNK4Usif16TSecurityContext8SecureIdEv @ 70 NONAME
+	_ZNK4Usif18COpaqueNamedParams10IntByNameLERK7TDesC16 @ 71 NONAME
+	_ZNK4Usif18COpaqueNamedParams12ExternalizeLER12RWriteStream @ 72 NONAME
+	_ZNK4Usif18COpaqueNamedParams13GetIntByNameLERK7TDesC16Ri @ 73 NONAME
+	_ZNK4Usif18COpaqueNamedParams13StringByNameLERK7TDesC16 @ 74 NONAME
+	_ZNK4Usif18COpaqueNamedParams15IntArrayByNameLERK7TDesC16 @ 75 NONAME
+	_ZNK4Usif18COpaqueNamedParams18StringArrayByNameLERK7TDesC16 @ 76 NONAME
+	_ZNK4Usif18COpaqueNamedParams23PrepareArgumentsForIpcLER8TIpcArgsi @ 77 NONAME
+	_ZNK4Usif18COpaqueNamedParams6CountLEv @ 78 NONAME
+	_ZNK4Usif18COpaqueNamedParams9GetNamesLER13RPointerArrayI7HBufC16E @ 79 NONAME
+	_ZTIN4Usif11CStringItemE @ 80 NONAME
+	_ZTIN4Usif12CIntegerItemE @ 81 NONAME
 	_ZTIN4Usif14CComponentInfo16CApplicationInfoE @ 82 NONAME
-	_ZTVN4Usif14CComponentInfo16CApplicationInfoE @ 83 NONAME
+	_ZTIN4Usif14CComponentInfo5CNodeE @ 83 NONAME
+	_ZTIN4Usif14CComponentInfoE @ 84 NONAME
+	_ZTIN4Usif16CStringArrayItemE @ 85 NONAME
+	_ZTIN4Usif17CIntegerArrayItemE @ 86 NONAME
+	_ZTIN4Usif9CItemBaseE @ 87 NONAME
+	_ZTVN4Usif11CStringItemE @ 88 NONAME
+	_ZTVN4Usif12CIntegerItemE @ 89 NONAME
+	_ZTVN4Usif14CComponentInfo16CApplicationInfoE @ 90 NONAME
+	_ZTVN4Usif14CComponentInfo5CNodeE @ 91 NONAME
+	_ZTVN4Usif14CComponentInfoE @ 92 NONAME
+	_ZTVN4Usif16CStringArrayItemE @ 93 NONAME
+	_ZTVN4Usif17CIntegerArrayItemE @ 94 NONAME
+	_ZTVN4Usif9CItemBaseE @ 95 NONAME
 
--- a/installationservices/swinstallationfw/group/security_softwareinstallframework.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/group/security_softwareinstallframework.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_softwareinstallframework
 source	\sf\mw\appinstall\installationservices\swinstallationfw
 source	\sf\mw\appinstall\installationservices\swinstallationfw\test
--- a/installationservices/swinstallationfw/group/sif.mmp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/group/sif.mmp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -33,6 +33,7 @@
 SOURCE sif.cpp sifcommon.cpp
 
 USERINCLUDE ../inc
+USERINCLUDE ../inc_private
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
--- a/installationservices/swinstallationfw/inc/sifcommon.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/inc/sifcommon.h	Fri Jun 11 13:45:18 2010 +0300
@@ -32,6 +32,7 @@
 
 namespace Usif
     {
+    class MOpaqueParam;
 
     /**
         This enumeration defines the possible values of the status of an installation package. This status
@@ -423,7 +424,7 @@
         This class is designed for sending opaque params across the process boundary. For example, a SIF
         client may use it to send custom arguments to the SIF server or receive custom results.
     */
-    class COpaqueNamedParams : public CBase
+    NONSHARABLE_CLASS(COpaqueNamedParams) : public CBase
         {
     public:
         /**
@@ -494,17 +495,40 @@
             @leave System wide error code
         */
         IMPORT_C void AddStringL(const TDesC& aName, const TDesC& aValue);
+        
+        /**
+            Adds a string array param to this object. If a param with the same name already exists it gets overwritten.
+
+            @param aName The name of the string param to be added.
+            @param aValueArray The array of value string params to be added.
+            @leave KErrOverflow if the size of the name or any value in the string array being added exceeds 128 bytes or
+            the memory allocated for all the params added to this container exceeds 512 bytes.
+            @leave System wide error code.
+        */
+        IMPORT_C void AddStringArrayL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray);        
 
         /**
             Adds an integer param to this object. If a param with the same name already exists it gets overwritten.
 
             @param aName The name of the integer param to be added.
             @param aValue The value of the integer param to be added.
-            @leave KErrOverflow if the size of the name the integer param being added exceeds 128 bytes or
+            @leave KErrOverflow if the size of the name being added exceeds 128 bytes or
             the memory allocated for all the params added to this container exceeds 512 bytes.
             @leave System wide error code
         */
         IMPORT_C void AddIntL(const TDesC& aName, TInt aValue);
+        
+        /**
+            Adds an integer array param to this object. If a param with the same name already exists it gets overwritten.
+
+            @param aName The name of the integer param to be added.
+            @param aValueArray The array of value integer params to be added.
+            @leave KErrOverflow if the size of the name being added exceeds 128 bytes or
+            the memory allocated for all the params added to this container exceeds 512 bytes.
+            @leave System wide error code.
+        */
+        IMPORT_C void AddIntArrayL(const TDesC& aName, const RArray<TInt>& aValueArray);
+        
 
         /**
             Returns the list of the names of params added to the object.
@@ -524,6 +548,16 @@
             @leave System wide error code
         */
         IMPORT_C const TDesC& StringByNameL(const TDesC& aName) const;
+        
+        /**
+            Gets a reference to the string array param identified by aName.
+
+            @param aName The name of the string param to be obtained.
+            @return The string array param.
+            @leave KErrNotFound if aName is not found.
+			@leave System wide error code.
+        */
+        IMPORT_C const RPointerArray<HBufC>& StringArrayByNameL(const TDesC& aName) const;        
 
         /**
             Returns the integer param identified by aName.
@@ -544,6 +578,16 @@
             @leave Or other system-wide error code.
         */
         IMPORT_C TInt IntByNameL(const TDesC& aName) const;
+        
+        /**
+            Returns the integer array param identified by aName.
+
+            @param aName The name of the integer param to be obtained.
+            @return The integer array param.
+            @leave KErrNotFound if aName is not found.
+            @leave Or other system-wide error code.
+        */
+        IMPORT_C const RArray<TInt>& IntArrayByNameL(const TDesC& aName) const;        
 
         /**
             Empties the container and frees all memory allocated to the params.
@@ -564,32 +608,22 @@
         void ConstInternalizeL(RReadStream& aStream) const;
         void ConstCleanup() const;
         void CleanupExternalBuffer() const;
-        void VerifyExternalizedSizeForNewParamL(TInt aNameSize, TInt aValueSize) const;
-        void VerifyExternalizedSizeForExistingParamL(TInt aOldValueSize, TInt aNewValueSize) const;
-
-        struct TItem
-            {
-            HBufC* iName;
-            HBufC* iValue;
-            };
-        RArray<TItem> iParams;
-
+        void VerifyExternalizedSizeForNewParamArrayL(TInt aNameSize, TInt aValueSize) const;
+        void VerifyExternalizedSizeForExistingParamArrayL(TInt aOldValueSize, TInt aNewValueSize) const;
+        void AddOpaqueParamL(MOpaqueParam* aItemBase);
+private:
+        RPointerArray<MOpaqueParam> iParams;
+        
         mutable HBufC8* iExternalBuffer;
         mutable TPtr8 iExternalBufferPtr;
         mutable TBool iDeferredInternalization;
         mutable TInt iExternalizedSize;
 
-        enum
-            {
-            // An arbitrary limit for the length of a single descriptor (the name or value of a param)
-            KMaxDescriptorLength = 128,
-            // An arbitrary size of the internal buffer for sending the component info across the process boundary
-            KMaxExternalizedSize = 512
-            };
-
         };
 
 	/**
+        Input Opaque Parameters:
+
 		Pre-defined opaque arguments and results:
 		"InstallInactive" - Yes/No 
 		If provided in the opaque installation parameters, requests the installation of
@@ -616,7 +650,10 @@
 		Action in case of OCSP warnings 
 
 		"AllowUpgrade" - TSifPolicy
-		Allow an upgrade (if yes, upgrade the data as well) 
+		Allow an upgrade (if yes, upgrade of the application) 
+
+		"AllowUpgradeData" - TSifPolicy
+		Whether private data of the application to be retained or removed during the upgrade
 
 		"InstallOptionalItems" - TSifPolicy
 		Install optional items in package 
@@ -666,6 +703,10 @@
 		"AllowIncompatible" -  TSifPolicy
 		Check if installation of incompatible packages is allowed 
 
+        
+
+		Output Opaque parameters:
+
 		"ComponentId" - Array of TUInt
 		If returned in the custom results, provides the id's of the newly added components
 		after an install. Please note that not all installers (i.e. SIF Plugins) may support this.
@@ -696,6 +737,7 @@
 	_LIT(KSifInParam_PerformOCSP, "PerformOCSP");
 	_LIT(KSifInParam_IgnoreOCSPWarnings, "IgnoreOCSPWarnings");
 	_LIT(KSifInParam_AllowUpgrade, "AllowUpgrade");
+	_LIT(KSifInParam_AllowUpgradeData, "AllowUpgradeData");
 	_LIT(KSifInParam_InstallOptionalItems, "InstallOptionalItems");
 	_LIT(KSifInParam_AllowUntrusted, "AllowUntrusted");
 	_LIT(KSifInParam_GrantCapabilities, "GrantCapabilities");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swinstallationfw/inc_private/sifcommon_internal.h	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of 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: 
+* sifcommon_internal.h.
+*
+*/
+
+/**
+ @file
+ @released
+ @internal
+*/
+
+#ifndef __SIFCOMMON_INTERNAL_H__
+#define __SIFCOMMON_INTERNAL_H__
+
+namespace Usif {
+
+const TUint KMaxOpaqueParamsDescriptorSize = 128;
+const TUint KMaxOpaqueParamsExternalizedSize = 512;
+
+class MOpaqueParam
+    {
+public:
+    enum TType
+        {
+        EString,
+        EStringArray,
+        EInteger,
+        EIntegerArray
+        };
+    
+    virtual void ExternalizeL(RWriteStream& aStream) const = 0;
+    virtual void InternalizeL(RReadStream& aStream) = 0;
+    virtual const HBufC& Name() const = 0;
+    virtual TType Type() const = 0;
+    virtual TInt ValueSize() const = 0;
+    virtual ~MOpaqueParam() {}
+    };
+
+class CItemBase : public CBase, public MOpaqueParam
+    {
+public:
+    void ExternalizeL(RWriteStream& aStream) const;
+    void InternalizeL(RReadStream& aStream);
+    const HBufC& Name() const;
+    TType Type() const;
+    TInt ValueSize() const;
+    ~CItemBase();
+    
+protected:
+    CItemBase(TType aType);
+    void SetValueSize(TInt aSize);
+    void VerifyExternalizedSizeForParamL(TUint aValueSize) const;
+    void SetNameL(const TDesC& aName);
+    
+private:
+    HBufC* iName;
+    TType iType;
+    TUint iSize;
+    };
+class CStringItem : public CItemBase
+    {
+public:
+    static CStringItem* NewL(RReadStream& aStream);
+    static CStringItem* NewL(const TDesC& aName, const TDesC& aValue);
+    void ExternalizeL(RWriteStream& aStream) const;
+    void InternalizeL(RReadStream& aStream);  
+    const HBufC& Name() const;
+    TType Type() const;
+    TInt ValueSize() const;
+    const TDesC& StringValue() const;
+    ~CStringItem();
+    
+private:
+    CStringItem();
+    void ConstructL(const TDesC& aName, const TDesC& aValue);
+    
+private:
+    HBufC* iString;
+    };
+
+class CStringArrayItem : public CItemBase
+    {
+public:
+    static CStringArrayItem* NewL(RReadStream& aStream);
+    static CStringArrayItem* NewL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray);
+    void ExternalizeL(RWriteStream& aStream) const;
+    void InternalizeL(RReadStream& aStream);
+    const HBufC& Name() const;
+    TType Type() const;
+    TInt ValueSize() const;
+    const RPointerArray<HBufC>& StringArrayValue() const;
+    ~CStringArrayItem();
+    
+private:
+    void ConstructL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray);
+    CStringArrayItem();
+    
+private:
+    RPointerArray<HBufC> iStringArray;    
+    };
+
+class CIntegerItem : public CItemBase
+    {
+public:
+    static CIntegerItem* NewL(RReadStream& aStream);
+    static CIntegerItem* NewL(const TDesC& aName, TInt aValue);
+    void ExternalizeL(RWriteStream& aStream) const;
+    void InternalizeL(RReadStream& aStream);
+    const HBufC& Name() const;
+    TType Type() const;
+    TInt ValueSize() const;
+    TInt IntegerValue() const;
+    ~CIntegerItem();
+    
+private:
+    CIntegerItem(TInt aValue);
+    void ConstructL(const TDesC& aName);
+    
+private:
+    TInt iInteger;
+    };
+
+class CIntegerArrayItem : public CItemBase
+    {
+public:
+    static CIntegerArrayItem* NewL(RReadStream& aStream);
+    static CIntegerArrayItem* NewL(const TDesC& aName, const RArray<TInt>& aValueArray);
+    void ExternalizeL(RWriteStream& aStream) const;
+    void InternalizeL(RReadStream& aStream);
+    const HBufC& Name() const;
+    TType Type() const;
+    TInt ValueSize() const;
+    const RArray<TInt>& IntegerArrayValue() const;
+    ~CIntegerArrayItem();
+    
+private:
+    CIntegerArrayItem();
+    void ConstructL(const TDesC& aName, const RArray<TInt>& aValueArray);
+    
+private:
+    RArray<TInt> iIntegerArray;
+    };
+
+
+} //namespace 
+
+#endif //__SIFCOMMON_INTERNAL_H__
--- a/installationservices/swinstallationfw/source/sifcommon.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/source/sifcommon.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -19,6 +19,9 @@
 #include <f32file.h>
 #include <usif/sif/sifcommon.h>
 #include <s32mem.h>
+#include <scs/cleanuputils.h>
+#include <scs/streamingarray.h>
+#include "sifcommon_internal.h"
 
 using namespace Usif;
 
@@ -558,7 +561,7 @@
 // ##########################################################################################
 
 COpaqueNamedParams::COpaqueNamedParams()
-	: iExternalBuffer(NULL), iExternalBufferPtr(NULL, 0, 0), iDeferredInternalization(EFalse), iExternalizedSize(sizeof(TInt))
+	: iExternalBuffer(NULL), iExternalBufferPtr(NULL, 0, 0), iDeferredInternalization(EFalse), iExternalizedSize(2*sizeof(TInt))
 	{
 	}
 
@@ -581,22 +584,20 @@
 	return self;
 	}
 
-void COpaqueNamedParams::VerifyExternalizedSizeForNewParamL(TInt aNameSize, TInt aValueSize) const
+void COpaqueNamedParams::VerifyExternalizedSizeForNewParamArrayL(TInt aNameSize, TInt aValueSize) const
 	{
 	const TInt load = 2*sizeof(TInt) + aNameSize + aValueSize;
-	if (aNameSize > KMaxDescriptorLength || aValueSize > KMaxDescriptorLength ||
-		iExternalizedSize + load > KMaxExternalizedSize)
+	if (aNameSize > KMaxOpaqueParamsDescriptorSize || iExternalizedSize + load > KMaxOpaqueParamsExternalizedSize)
 		{
 		User::Leave(KErrOverflow);
 		}
 	iExternalizedSize += load;
 	}
 
-void COpaqueNamedParams::VerifyExternalizedSizeForExistingParamL(TInt aOldValueSize, TInt aNewValueSize) const
+void COpaqueNamedParams::VerifyExternalizedSizeForExistingParamArrayL(TInt aOldValueSize, TInt aNewValueSize) const
 	{
 	const TInt diff = aNewValueSize - aOldValueSize;
-	if (aNewValueSize > KMaxDescriptorLength ||
-		iExternalizedSize + diff > KMaxExternalizedSize)
+	if (iExternalizedSize + diff > KMaxOpaqueParamsExternalizedSize)
 		{
 		User::Leave(KErrOverflow);
 		}
@@ -605,43 +606,60 @@
 
 EXPORT_C void COpaqueNamedParams::AddStringL(const TDesC& aName, const TDesC& aValue)
 	{
-	HBufC* value = HBufC::NewLC(aValue.Length());
-	TPtr bufValue(value->Des());
-	bufValue.Copy(aValue);
+	CStringItem* stringItem = CStringItem::NewL(aName, aValue);
+	CleanupStack::PushL(stringItem);
+	
+	AddOpaqueParamL(stringItem);
+    CleanupStack::Pop(stringItem);
+	}
 
-	const TInt len = iParams.Count();
-	for (TInt i=0; i<len; ++i)
-		{
-		if (iParams[i].iName->CompareF(aName) == 0)
-			{
-			VerifyExternalizedSizeForExistingParamL(iParams[i].iValue->Size(), value->Size());
-			delete iParams[i].iValue;
-			iParams[i].iValue = value;
-			CleanupStack::Pop(value);
-			return;
-			}
-		}
-
-	VerifyExternalizedSizeForNewParamL(aName.Size(), aValue.Size());
-
-	HBufC* name = HBufC::NewLC(aName.Length());
-	TPtr bufName(name->Des());
-	bufName.Copy(aName);
-
-	TItem item = {name, value};
-	iParams.AppendL(item);
-
-	CleanupStack::Pop(2, value);
-	}
+EXPORT_C void COpaqueNamedParams::AddStringArrayL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray)
+    {
+    CStringArrayItem* stringArray = CStringArrayItem::NewL(aName, aValueArray);
+    CleanupStack::PushL(stringArray);
+    
+    AddOpaqueParamL(stringArray);
+    CleanupStack::Pop(stringArray);
+    }
 
 EXPORT_C void COpaqueNamedParams::AddIntL(const TDesC& aName, TInt aValue)
 	{
-  	// Assumption: the code below won't be compiled in __KERNEL_MODE__ so HBufC is always defined as HBufC16
-  	TBuf<sizeof(TInt)/2> buf;
-  	buf.Copy(reinterpret_cast<TUint16*>(&aValue), sizeof(TInt)/2);
-	AddStringL(aName, buf);
+	CIntegerItem* integer = CIntegerItem::NewL(aName, aValue);
+    CleanupStack::PushL(integer);
+    
+    AddOpaqueParamL(integer);
+    CleanupStack::Pop(integer);	
 	}
 
+EXPORT_C void COpaqueNamedParams::AddIntArrayL(const TDesC& aName, const RArray<TInt>& aValueArray)
+    {
+    CIntegerArrayItem* integerArray = CIntegerArrayItem::NewL(aName, aValueArray);
+    CleanupStack::PushL(integerArray);
+    
+    AddOpaqueParamL(integerArray);
+    CleanupStack::Pop(integerArray);     
+    }
+
+void COpaqueNamedParams::AddOpaqueParamL(MOpaqueParam* aItemBase)
+    {
+    const TInt count = iParams.Count();
+        
+    for (TInt i=0; i<count; ++i)
+        {
+        if (iParams[i]->Name().CompareF(aItemBase->Name()) == 0)
+            {
+            VerifyExternalizedSizeForExistingParamArrayL(iParams[i]->ValueSize(), aItemBase->ValueSize());
+            
+            delete iParams[i];
+            iParams[i] = aItemBase;
+            return;
+            }
+        }
+
+    VerifyExternalizedSizeForNewParamArrayL(aItemBase->Name().Size(), aItemBase->ValueSize());
+    iParams.AppendL(aItemBase); 
+    }
+
 EXPORT_C void COpaqueNamedParams::GetNamesL(RPointerArray<HBufC>& aNames) const
 	{
 	InternalizeFromExternalBufferL();
@@ -649,10 +667,7 @@
 	const TInt len = iParams.Count();
 	for (TInt i=0; i<len; ++i)
 		{
-		const TDesC& ref = *iParams[i].iName;
-		HBufC* name = HBufC::NewLC(ref.Length());
-		TPtr bufName(name->Des());
-		bufName.Copy(ref);
+		HBufC* name = iParams[i]->Name().AllocLC();
 		aNames.AppendL(name);
 		CleanupStack::Pop(name);
 		}
@@ -662,39 +677,59 @@
 	{
 	InternalizeFromExternalBufferL();
 
-	TInt len = iParams.Count();
-	aStream.WriteInt32L(len);
-	for (TInt i=0; i<len; ++i)
+	TInt count = iParams.Count();
+	aStream.WriteInt32L(count);
+	for (TInt i=0; i<count; ++i)
 		{
-		aStream << *iParams[i].iName;
-		aStream << *iParams[i].iValue;
+		aStream.WriteInt32L(iParams[i]->Type());
+		iParams[i]->ExternalizeL(aStream);
 		}
+	
+	aStream.WriteInt32L(iExternalizedSize);
 	}
 
 EXPORT_C void COpaqueNamedParams::InternalizeL(RReadStream& aStream)
 	{
-	Cleanup();
 	ConstInternalizeL(aStream);
 	}
 
 void COpaqueNamedParams::ConstInternalizeL(RReadStream& aStream) const
 	{
-	RArray<TItem>& refParams = const_cast<RArray<TItem>&>(iParams);
+    ConstCleanup();
+	RPointerArray<MOpaqueParam>& refParams = const_cast<RPointerArray<MOpaqueParam>& >(iParams);
 	
-	TInt len = aStream.ReadInt32L();
-	for (TInt i=0; i<len; ++i)
+	TInt count = aStream.ReadInt32L();
+	for (TInt i=0; i<count; ++i)
 		{
-		HBufC* name = HBufC::NewLC(aStream, KMaxDescriptorLength);
-		HBufC* value = HBufC::NewLC(aStream, KMaxDescriptorLength);
-
-		// We need to update iExternalizedSize here because its value must correspond to the params beind added from aStream
-		VerifyExternalizedSizeForNewParamL(name->Size(), value->Size());
-
-		TItem item = {name, value};
-		refParams.AppendL(item);
-
-		CleanupStack::Pop(2, name);
+		MOpaqueParam::TType type = static_cast<MOpaqueParam::TType>(aStream.ReadInt32L());
+	    MOpaqueParam* param(0);
+		switch(type)
+		    {
+		    case MOpaqueParam::EString:
+		        param = CStringItem::NewL(aStream);
+		        break;
+		        
+            case MOpaqueParam::EStringArray:
+                param = CStringArrayItem::NewL(aStream);
+                break;
+                
+            case MOpaqueParam::EInteger:
+                param = CIntegerItem::NewL(aStream);
+                break;     
+                
+            case MOpaqueParam::EIntegerArray:
+                param = CIntegerArrayItem::NewL(aStream);
+                break;     
+                
+            default:
+                User::Leave(KErrCorrupt);
+		    }
+		CleanupStack::PushL(param);
+		refParams.AppendL(param);
+		CleanupStack::Pop(param);
 		}
+		
+	iExternalizedSize = aStream.ReadInt32L();
 	}
 
 EXPORT_C void COpaqueNamedParams::PrepareArgumentsForIpcL(TIpcArgs& aIpcArgs, TInt aIndex) const
@@ -717,7 +752,7 @@
 	{
 	delete iExternalBuffer;
 	iExternalBuffer = NULL;
-	iExternalBuffer = HBufC8::NewL(KMaxExternalizedSize);
+	iExternalBuffer = HBufC8::NewL(KMaxOpaqueParamsExternalizedSize);
 	iExternalBufferPtr.Set(iExternalBuffer->Des());
 	
 	RDesWriteStream ws(iExternalBufferPtr);
@@ -735,8 +770,6 @@
 	if (iDeferredInternalization)
 		{
 		iDeferredInternalization = EFalse;
-
-		ConstCleanup();
 		
 		RDesReadStream rs(*iExternalBuffer);
 		CleanupClosePushL(rs);
@@ -751,28 +784,57 @@
 	{
 	InternalizeFromExternalBufferL();
 	
-	const TInt len = iParams.Count();
-	for (TInt i=0; i<len; ++i)
+	const TInt count = iParams.Count();
+	for (TInt i=0; i<count; ++i)
 		{
-		if (iParams[i].iName->CompareF(aName) == 0)
+		if (iParams[i]->Type() == MOpaqueParam::EString && iParams[i]->Name().CompareF(aName) == 0)
 			{
-			return *iParams[i].iValue;
+			CStringItem* string = static_cast<CStringItem*>(iParams[i]);
+			return string->StringValue();
 			}
 		}
+	
 	return KNullDesC;    
 	}
 
+EXPORT_C const RPointerArray<HBufC>& COpaqueNamedParams::StringArrayByNameL(const TDesC& aName) const
+    {
+    InternalizeFromExternalBufferL();
+  
+    const TInt count = iParams.Count();
+    TInt i;
+    for (i=0; i<count; ++i)
+        {
+        if (iParams[i]->Type() == MOpaqueParam::EStringArray && iParams[i]->Name().CompareF(aName) == 0)
+            {
+            break;
+            }
+        }
+    
+    if(i == count)
+        {
+        User::Leave(KErrNotFound); 
+        }
+    CStringArrayItem* stringArray = static_cast<CStringArrayItem*>(iParams[i]);  
+    return stringArray->StringArrayValue();
+    }
+
 EXPORT_C TBool COpaqueNamedParams::GetIntByNameL(const TDesC& aName, TInt& aValue) const
 	{
 	InternalizeFromExternalBufferL();
-
-	const TDesC& value = StringByNameL(aName);
-	if (value == KNullDesC)
-		{
-		return EFalse;
-		}
-	aValue = *(reinterpret_cast<const TUint*>(value.Ptr()));
-	return ETrue;
+	
+    const TInt count = iParams.Count();
+    for (TInt i=0; i<count; ++i)
+        {
+        if (iParams[i]->Type() == MOpaqueParam::EInteger && iParams[i]->Name().CompareF(aName) == 0)
+            {
+            CIntegerItem* integer = static_cast<CIntegerItem*>(iParams[i]); 
+            aValue = integer->IntegerValue();
+            return ETrue;
+            }
+        }
+    
+    return EFalse;
 	}
 
 EXPORT_C TInt COpaqueNamedParams::IntByNameL(const TDesC& aName) const
@@ -787,6 +849,28 @@
 	return val;
 	}
 
+EXPORT_C  const RArray<TInt>& COpaqueNamedParams::IntArrayByNameL(const TDesC& aName) const
+    {  
+    InternalizeFromExternalBufferL();
+  
+    const TInt count = iParams.Count();
+    TInt i;
+    for (i=0; i<count; ++i)
+        {
+        if (iParams[i]->Type() == MOpaqueParam::EIntegerArray && iParams[i]->Name().CompareF(aName) == 0)
+            {
+            break;
+            }
+        }
+    
+    if(i == count)
+        {
+        User::Leave(KErrNotFound); 
+        }
+    CIntegerArrayItem* integerArray = static_cast<CIntegerArrayItem*>(iParams[i]);      
+    return integerArray->IntegerArrayValue();
+    }
+
 EXPORT_C TInt COpaqueNamedParams::CountL() const
 	{
 	InternalizeFromExternalBufferL();
@@ -801,16 +885,10 @@
 void COpaqueNamedParams::ConstCleanup() const
 	{
 	// Cleanup internal params
-	iExternalizedSize = sizeof(TInt);
-
-	const TInt len = iParams.Count();
-	for (TInt i=0; i<len; ++i)
-		{
-		delete iParams[i].iName;
-		delete iParams[i].iValue;
-		}
-	RArray<TItem>& refParams = const_cast<RArray<TItem>&>(iParams);
-	refParams.Reset();
+	iExternalizedSize = 2*sizeof(TInt);
+	
+	RPointerArray<MOpaqueParam>& refParams = const_cast<RPointerArray<MOpaqueParam>&>(iParams);
+	refParams.ResetAndDestroy();
 	}
 
 	void COpaqueNamedParams::CleanupExternalBuffer() const
@@ -819,3 +897,367 @@
 	iExternalBuffer = NULL;
 	iDeferredInternalization = EFalse;
 	}
+	
+
+/*
+ * SifCommon internal classes
+ */
+
+
+CItemBase::CItemBase(TType aType):
+    iType(aType)
+    {
+    
+    }
+
+CItemBase::TType CItemBase::Type() const
+    {
+    return iType;
+    }
+
+void CItemBase::SetNameL(const TDesC& aName)
+    {
+    delete iName;
+    iName = aName.AllocL();
+    }
+
+
+CItemBase::~CItemBase()
+    {
+    delete iName;
+    }
+
+const HBufC& CItemBase::Name() const
+    {
+    return *iName;
+    }
+
+void CItemBase::SetValueSize(TInt aSize)
+    {
+    iSize = aSize;
+    }
+
+TInt CItemBase::ValueSize() const
+    {
+    return iSize;
+    }
+
+void CItemBase::VerifyExternalizedSizeForParamL(TUint aValueSize) const
+    {
+    if(aValueSize > KMaxOpaqueParamsDescriptorSize)
+        {
+        User::Leave(KErrOverflow);
+        }
+    }
+
+void CItemBase::ExternalizeL(RWriteStream& aStream) const
+    {
+    aStream << Name();
+    aStream.WriteInt32L(iSize);
+    }
+
+void CItemBase::InternalizeL (RReadStream& aStream)
+    {
+    delete iName;
+    iName = HBufC::NewL(aStream, KMaxOpaqueParamsDescriptorSize);
+    iSize = aStream.ReadInt32L();
+    }
+    
+/*
+ * CStringItem
+ */
+CStringItem::CStringItem():
+    CItemBase(EString)
+    {
+    
+    }
+
+CStringItem* CStringItem::NewL(const TDesC& aName, const TDesC& aValue)
+    {
+    CStringItem* self = new(ELeave)CStringItem();
+    CleanupStack::PushL(self);
+    self->ConstructL(aName, aValue);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CStringItem* CStringItem::NewL(RReadStream& aStream)
+    {   
+    CStringItem *self = new(ELeave)CStringItem();
+    CleanupStack::PushL(self);
+    self->InternalizeL(aStream);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void CStringItem::ConstructL(const TDesC& aName, const TDesC& aValue)
+    {
+    VerifyExternalizedSizeForParamL(aValue.Size());
+    SetNameL(aName);
+    iString = aValue.AllocL();
+    SetValueSize(iString->Size());
+    }
+
+CStringItem::~CStringItem()
+    {
+    delete iString;
+    }
+
+void CStringItem::ExternalizeL(RWriteStream& aStream) const
+    {
+    aStream << *iString;
+    }
+
+void CStringItem::InternalizeL(RReadStream& aStream)
+    {
+    CItemBase::InternalizeL(aStream);
+    delete iString;
+    iString = HBufC::NewL(aStream, KMaxOpaqueParamsDescriptorSize);
+    }
+
+const TDesC& CStringItem::StringValue() const
+    {
+    return *iString;
+    }
+
+const HBufC& CStringItem::Name() const
+    {
+    return CItemBase::Name(); 
+    }
+
+MOpaqueParam::TType CStringItem::Type() const
+    {
+    return CItemBase::Type();
+    }
+
+TInt CStringItem::ValueSize() const
+    {
+    return CItemBase::ValueSize();
+    }
+/*
+ * CStringArrayItem
+ */
+
+CStringArrayItem::CStringArrayItem():
+    CItemBase(EStringArray)
+    {
+    
+    }
+
+CStringArrayItem* CStringArrayItem::NewL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray)
+    {
+    CStringArrayItem* self = new(ELeave)CStringArrayItem();
+    CleanupStack::PushL(self);
+    self->ConstructL(aName, aValueArray);
+    CleanupStack::Pop(self);    
+    return self;
+    }
+
+CStringArrayItem* CStringArrayItem::NewL(RReadStream& aStream)
+    {   
+    CStringArrayItem *self = new(ELeave)CStringArrayItem();
+    CleanupStack::PushL(self);    
+    self->InternalizeL(aStream);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void CStringArrayItem::ConstructL(const TDesC& aName, const RPointerArray<HBufC>& aValueArray)
+    {
+    SetNameL(aName);
+    for(TInt i=0; i< aValueArray.Count(); ++i)
+        {
+        VerifyExternalizedSizeForParamL(aValueArray[i]->Size());
+        HBufC* value = aValueArray[i]->AllocLC();
+        iStringArray.AppendL(value);
+        SetValueSize(ValueSize()+ value->Size());
+        CleanupStack::Pop();
+        }
+    }
+
+void CStringArrayItem::ExternalizeL(RWriteStream& aStream) const
+    {
+    CItemBase::ExternalizeL(aStream);
+    ExternalizePointersArrayL(iStringArray, aStream);
+    }
+
+void CStringArrayItem::InternalizeL(RReadStream& aStream)
+    {
+    CItemBase::InternalizeL(aStream);
+    iStringArray.ResetAndDestroy();
+    InternalizePointersArrayL(iStringArray, aStream);
+    }
+
+const RPointerArray<HBufC>& CStringArrayItem:: StringArrayValue() const
+    {
+    return iStringArray;
+    }
+
+const HBufC& CStringArrayItem::Name() const
+    {
+    return CItemBase::Name(); 
+    }
+
+MOpaqueParam::TType CStringArrayItem::Type() const
+    {
+    return CItemBase::Type();
+    }
+
+TInt CStringArrayItem::ValueSize() const
+    {
+    return CItemBase::ValueSize();
+    }
+
+CStringArrayItem::~CStringArrayItem()
+    {
+    iStringArray.ResetAndDestroy();
+    }
+
+/*
+ * CIntegerItem
+ */
+
+CIntegerItem::CIntegerItem(TInt aValue):
+    CItemBase(EInteger),
+    iInteger(aValue)
+    {
+    
+    }
+
+CIntegerItem* CIntegerItem::NewL(const TDesC& aName, TInt aValue)
+    {
+    CIntegerItem* self = new(ELeave)CIntegerItem(aValue);
+    CleanupStack::PushL(self);
+    self->ConstructL(aName);
+    CleanupStack::Pop(self);  
+    return self;
+    }
+
+CIntegerItem* CIntegerItem::NewL(RReadStream& aStream)
+    {   
+    CIntegerItem *self = new(ELeave)CIntegerItem(0);
+    CleanupStack::PushL(self);
+    self->InternalizeL(aStream);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void CIntegerItem::ConstructL(const TDesC& aName)
+    {
+    SetNameL(aName);
+    SetValueSize(sizeof(TInt));
+    }
+
+void CIntegerItem::ExternalizeL(RWriteStream& aStream) const
+    {
+    CItemBase::ExternalizeL(aStream);
+    aStream.WriteInt32L(iInteger);
+    }
+
+void CIntegerItem::InternalizeL(RReadStream& aStream)
+    {
+    CItemBase::InternalizeL(aStream);
+    iInteger = aStream.ReadInt32L();
+    }
+
+TInt CIntegerItem::IntegerValue() const
+    {
+    return iInteger;
+    }
+
+const HBufC& CIntegerItem::Name() const
+    {
+    return CItemBase::Name(); 
+    }
+
+MOpaqueParam::TType CIntegerItem::Type() const
+    {
+    return CItemBase::Type();
+    }
+
+TInt CIntegerItem::ValueSize() const
+    {
+    return CItemBase::ValueSize();
+    }
+
+CIntegerItem::~CIntegerItem()
+    {
+    }
+
+/*
+ * CIntegerArrayItem
+ */
+
+CIntegerArrayItem::CIntegerArrayItem():
+    CItemBase(EIntegerArray)
+    {
+    
+    }
+
+CIntegerArrayItem* CIntegerArrayItem::NewL(const TDesC& aName, const RArray<TInt>& aValueArray)
+    {
+    CIntegerArrayItem* self = new(ELeave)CIntegerArrayItem();
+    CleanupStack::PushL(self);
+    self->ConstructL(aName, aValueArray);
+    CleanupStack::Pop(self);    
+    return self;
+    }
+
+CIntegerArrayItem* CIntegerArrayItem::NewL(RReadStream& aStream)
+    {   
+    CIntegerArrayItem *self = new(ELeave)CIntegerArrayItem();
+    CleanupStack::PushL(self);    
+    self->InternalizeL(aStream);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+void CIntegerArrayItem::ConstructL(const TDesC& aName, const RArray<TInt>& aValueArray)
+    {
+    SetNameL(aName);
+    
+    for(TInt i=0; i<aValueArray.Count(); ++i)
+        {
+        iIntegerArray.AppendL(aValueArray[i]);
+        SetValueSize(ValueSize()+sizeof(TInt));
+        }
+    }
+
+void CIntegerArrayItem::ExternalizeL(RWriteStream& aStream) const
+    {
+    CItemBase::ExternalizeL(aStream);
+    ExternalizeFixedLengthArrayL(iIntegerArray, aStream);
+    }
+
+void CIntegerArrayItem::InternalizeL(RReadStream& aStream)
+    {
+    CItemBase::InternalizeL(aStream);
+    iIntegerArray.Reset();
+    InternalizeFixedLengthArrayL(iIntegerArray, aStream);
+    }
+
+const RArray<TInt>& CIntegerArrayItem::IntegerArrayValue() const
+    {
+    return iIntegerArray;
+    }
+
+const HBufC& CIntegerArrayItem::Name() const
+    {
+    return CItemBase::Name(); 
+    }
+
+MOpaqueParam::TType CIntegerArrayItem::Type() const
+    {
+    return CItemBase::Type();
+    }
+
+TInt CIntegerArrayItem::ValueSize() const
+    {
+    return CItemBase::ValueSize();
+    }
+
+CIntegerArrayItem::~CIntegerArrayItem()
+    {
+    iIntegerArray.Close();
+    }
--- a/installationservices/swinstallationfw/test/securitytests/source/scrpluginmanagement.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/test/securitytests/source/scrpluginmanagement.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -65,17 +65,40 @@
 	// First, add a new sofwtare type
 	_LIT(KSwTypeName, "usifsecuritytestsoftwaretype");
 	TUid sifPluginUid = {0xA01B7211};
-	_LIT_SECURE_ID(installerSecureId, 0xAAFFEE11);
-	_LIT_SECURE_ID(executionLayerSecureId, 0xAAEEDD11);
+	
+	RArray<TCustomAccessInfo> sidArray;
+	CleanupClosePushL(sidArray);
+	
+	TCustomAccessInfo id1(TSecureId(0xAAFFEE11), static_cast<TAccessMode>(1));
+	TCustomAccessInfo id2(TSecureId(0xAAEEDD11), static_cast<TAccessMode>(1));
+
+	sidArray.AppendL(id1);
+	sidArray.AppendL(id2);
 	
 	_LIT(KMimeType, "usifsecuritytestmimetype");
 	RPointerArray<HBufC> mimeTypes;
 	CleanupResetAndDestroyPushL(mimeTypes);
 	mimeTypes.Append(KMimeType().AllocL());
 	
-	TRAP(err, scrSession.AddSoftwareTypeL(KSwTypeName, sifPluginUid, installerSecureId, executionLayerSecureId, mimeTypes));
+	_LIT(KLauncherExecutable, "usifsecuritytestLauncherExec");
+	
+	Usif::CSoftwareTypeRegInfo* swType = Usif::CSoftwareTypeRegInfo::NewL(KSwTypeName);
+	CleanupStack::PushL(swType);
+	swType->SetSifPluginUid(sifPluginUid);
+	for(TInt i=0;i<sidArray.Count(); ++i)
+		{
+		swType->SetCustomAccessL(sidArray[i]);
+		}
+	for(TInt i=0;i<mimeTypes.Count(); ++i)
+		{
+		swType->SetMimeTypeL(mimeTypes[i]->Des());
+		}
+
+	swType->SetLauncherExecutableL(KLauncherExecutable);
+	
+	TRAP(err, scrSession.AddSoftwareTypeL(*swType));
 	CheckFailL(err, _L("AddSoftwareTypeL"));
-	CleanupStack::PopAndDestroy(&mimeTypes);
+	CleanupStack::PopAndDestroy(3, &sidArray);
 	
 	// Then, delete the newly added sofwtare type. 
 	RPointerArray<HBufC> deletedMimeTypes;
--- a/installationservices/swinstallationfw/test/tusif/scripts/data/swtype.dtd	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/scripts/data/swtype.dtd	Fri Jun 11 13:45:18 2010 +0300
@@ -1,6 +1,6 @@
 <!ELEMENT LayeredExecutionEnvironments (softwareType+)>
 
-<!ELEMENT softwareType (localizedName*,mimeType+,sifPluginUid,installerSecureId,executionLayerSecureId)>
+<!ELEMENT softwareType (localizedName*,mimeType+,sifPluginUid,CustomAcess*,launcherExecutable)>
 <!ATTLIST softwareType name CDATA #REQUIRED>
 
 <!ELEMENT localizedName (#PCDATA)>
@@ -8,6 +8,7 @@
 
 <!ELEMENT sifPluginUid (#PCDATA)>
 
-<!ELEMENT installerSecureId (#PCDATA)>
+<!ELEMENT CustomAcess (#PCDATA)>
+<!ATTLIST CustomAcess SecureId CDATA #REQUIRED AccessMode CDATA #REQUIRED>
 
-<!ELEMENT executionLayerSecureId (#PCDATA)>
\ No newline at end of file
+<!ELEMENT launcherExecutable (#PCDATA)>
--- a/installationservices/swinstallationfw/test/tusif/scripts/data/swtypereginfo.xml	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/scripts/data/swtypereginfo.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -6,7 +6,8 @@
 		<localizedName language="31">testSwTypeLoc31</localizedName>
 		<mimeType>binary/sif-testpkg</mimeType>
 		<sifPluginUid>102866EF</sifPluginUid>
-		<installerSecureId>10285BCB</installerSecureId>
-		<executionLayerSecureId>80285DE0</executionLayerSecureId>
+		<CustomAcess SecureId="10285BCB" AccessMode="1"/>
+		<CustomAcess SecureId="80285DE0" AccessMode="1"/>
+		<launcherExecutable>testLauncherExecutable</launcherExecutable>		
 	</softwareType>
 </LayeredExecutionEnvironments>
--- a/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -25,6 +25,7 @@
 #include "tsifsuitedefs.h"
 #include <usif/sif/sifcommon.h>
 #include <ct/rcpointerarray.h>
+#include <scs/cleanuputils.h>
 
 using namespace Usif;
 
@@ -297,11 +298,35 @@
 	
 	_LIT(KStringValue1, "value 1");
 	_LIT(KStringValue2, "value 2");
+	_LIT(KStringValue3, "value 3");
 
 	const TInt KIntValue1 = 111;
 	const TInt KIntValue2 = 222;
 	const TInt KIntValue3 = 333;
 	
+	//String Array
+	RPointerArray<HBufC> stringArray;
+	CleanupResetAndDestroyPushL(stringArray);
+	
+	HBufC* stringPtr = KStringValue1().AllocLC();
+	stringArray.AppendL(stringPtr);
+	CleanupStack::Pop();
+	
+    stringPtr = KStringValue2().AllocLC();
+    stringArray.AppendL(stringPtr);
+    CleanupStack::Pop();
+    
+    stringPtr = KStringValue3().AllocLC();
+    stringArray.AppendL(stringPtr);
+    CleanupStack::Pop(); 
+    
+    //Int Array
+    RArray<TInt> intArray;
+    CleanupClosePushL(intArray);
+    intArray.AppendL(KIntValue1);
+    intArray.AppendL(KIntValue2);
+    intArray.AppendL(KIntValue3);
+    
 	/*  NewL */
 	COpaqueNamedParams* params1 = COpaqueNamedParams::NewL();
 	CleanupStack::PushL(params1);
@@ -330,6 +355,13 @@
 		INFO_PRINTF1(_L("TestOpaqueNamedParamsL: 'StringByNameL for an existing param' failed"));
 		User::Leave(KErrGeneral);
 		}
+	//Added as string , trying to retrieve as int.
+    TRAPD(err, params1->IntByNameL(KParamName1));
+    if(err != KErrNotFound)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: 'IntByNameL for an existing param' failed"));
+        User::Leave(KErrGeneral);
+        }	
 	// StringByNameL for a non-existing param
 	if (params1->StringByNameL(KParamName2) != KNullDesC)
 		{
@@ -368,7 +400,7 @@
 		User::Leave(KErrGeneral);
 		}
 	// IntByNameL for a non-existing param
-	TRAPD(err, params2->IntByNameL(KParamName2));
+	TRAP(err, params2->IntByNameL(KParamName2));
 	if (err != KErrNotFound)
 		{
 		INFO_PRINTF1(_L("TestOpaqueNamedParamsL: 'IntByNameL for a non-existing param' failed"));
@@ -435,4 +467,81 @@
 		}
 
 	CleanupStack::PopAndDestroy(4, params2);
+
+	COpaqueNamedParams* params4 = COpaqueNamedParams::NewLC();
+	
+	params4->AddStringArrayL(KParamName1, stringArray);
+	
+	const RPointerArray<HBufC>& strArray = params4->StringArrayByNameL(KParamName1);
+	if(*strArray[0] != KStringValue1 || *strArray[1] != KStringValue2 || *strArray[2] != KStringValue3)
+	    {
+	    INFO_PRINTF1(_L("TestOpaqueNamedParamsL: StringArrayByNameL failed"));
+	    User::Leave(err);
+	    }
+
+	TRAP(err, const RArray<TInt>& intArray1 = params4->IntArrayByNameL(KParamName1));
+    if(err != KErrNotFound)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: IntArrayByNameL failed"));
+        User::Leave(err);  
+        }	
+	//Append a big string ( greater than 128 bytes)
+	HBufC* largeString = HBufC::NewLC(150);
+	largeString->Des().FillZ(150);
+	stringArray.AppendL(largeString);
+	CleanupStack::Pop();
+	
+	TRAP(err, params4->AddStringArrayL(KParamName1, stringArray));
+	  
+	if(err != KErrOverflow)
+	    {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: AddStringArrayL overflow check failed"));
+        User::Leave(err);	    
+	    }
+	
+	stringArray.ResetAndDestroy();
+	// Few large strings
+    HBufC* bigString2 = HBufC::NewLC(64);
+    bigString2->Des().FillZ(64);
+    stringArray.AppendL(bigString2);
+    CleanupStack::Pop();
+    
+    HBufC* bigString3 = HBufC::NewLC(64);
+    bigString3->Des().FillZ(64);
+    stringArray.AppendL(bigString3);
+    CleanupStack::Pop();
+
+    HBufC* bigString4 = HBufC::NewLC(64);
+    bigString4->Des().FillZ(64);
+    stringArray.AppendL(bigString4);
+    CleanupStack::Pop();
+    
+     HBufC* bigString5 = HBufC::NewLC(64);
+     bigString5->Des().FillZ(64);
+     stringArray.AppendL(bigString5);
+     CleanupStack::Pop();
+     
+     TRAP(err, params4->AddStringArrayL(KParamName1, stringArray));
+      
+      if(err != KErrOverflow)
+          {
+          INFO_PRINTF1(_L("TestOpaqueNamedParamsL: AddStringArrayL overflow check failed"));
+          User::Leave(err);       
+          }    
+	params4->AddIntArrayL(KParamName1, intArray);
+    const RArray<TInt>& RefIntArray = params4->IntArrayByNameL(KParamName1);
+    if(RefIntArray[0] != KIntValue1 || RefIntArray[1] != KIntValue2 || RefIntArray[2] != KIntValue3)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: IntArrayByNameL failed"));
+        User::Leave(err);
+        }	
+    
+    TRAP(err, const RPointerArray<HBufC>& strArray1 = params4->StringArrayByNameL(KParamName1));
+	if(err != KErrNotFound)
+	    {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: StringArrayByNameL failed"));
+        User::Leave(err);  
+	    }
+
+	CleanupStack::PopAndDestroy(3, &stringArray);
 	}
--- a/installationservices/switestfw/group/install_testframework.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/switestfw/group/install_testframework.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	install_testframework
 source	\sf\mw\appinstall\installationservices\switestfw\bwins
 source	\sf\mw\appinstall\installationservices\switestfw\eabi
--- a/installationservices/switestfw/test/autotesting/runswiromtests_9.5.bat	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/runswiromtests_9.5.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of the License "Eclipse Public License v1.0"
@@ -103,6 +103,9 @@
 testexecute z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors.script
 move c:\logs\testexecute\tuiscriptadaptors.htm e:\testresults\tuiscriptadaptors.htm
 
+testexecute z:\tswi\tuiscriptadaptors\scripts\nonusiftuiscriptadaptors.script
+move c:\logs\testexecute\nonusiftuiscriptadaptors.htm e:\testresults\nonusiftuiscriptadaptors.htm
+
 testexecute z:\tswi\tuiscriptadaptors\scripts\tuninstallpkgs_h4.script
 move c:\logs\testexecute\tuninstallpkgs_h4.htm e:\testresults\tuninstallpkgs_h4.htm
 
--- a/installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of the License "Eclipse Public License v1.0"
@@ -62,6 +62,9 @@
 testexecute z:\tswi\tsisregistrytest\scripts\tsisregistry_performance.script
 move c:\logs\testexecute\tsisregistry_performance.htm e:\testresults\tsisregistry_performance.htm
 
+testexecute z:\tswi\tuiscriptadaptors\scripts\tuiscriptadaptors_app_performance.script
+move c:\logs\testexecute\tuiscriptadaptors_app_performance.htm e:\testresults\tuiscriptadaptors_app_performance.htm
+
 REM Run recognizer tests
 md c:\trecog
 copy /s z:\trecog\* c:\trecog
--- a/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Fri Jun 11 13:45:18 2010 +0300
@@ -26,7 +26,7 @@
 {9.5}=Common,SWI,IntegrityServices,SisTools,SwiTools95Only,SwiTools,Misc,ToolsLegacy,UptoMCL
 {9.6}=Common,SWI,IntegrityServices,SisTools,SwiTools95Only,SwiTools,Misc,ToolsLegacy,UptoMCL
 {future}=Common,SWI,SisTools,SwiTools,USIF,Misc,ToolsNew,SwiDiran
-{tb92}=Common,SWI,IntegrityServices,SisTools,SwiTools95Only,SwiTools,Misc,ToolsLegacy,UptoMCL
+{tb92}=Common,SWI,IntegrityServices,SisTools,SwiTools95Only,SwiTools,Misc,ToolsLegacy,UptoMCL,NonUSIFMCL
 {tb101}=Common,SWI,SisTools,SwiTools,USIF,Misc,ToolsNew,SwiDiran
 
 
@@ -122,6 +122,9 @@
 TESTEXECUTE, \logs\testexecute\tstartuprecovery.htm,, \tswi\tintegrityservices\scripts\tstartuprecovery.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tintegrityservices\scripts\batchfiles\recoverystartup_pre.bat,
 TESTEXECUTE, \logs\testexecute\tintegrityservices.htm,, -Dstartupmode=1 -- \tswi\tintegrityservices\scripts\tintegrityservices.script, 300, UDEB#UREL,,
 
+[NonUSIFMCL]
+TESTEXECUTE, \logs\testexecute\nonusiftuiscriptadaptors.htm,, \tswi\tuiscriptadaptors\scripts\nonusiftuiscriptadaptors.script, 10000, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\tuiscriptadaptors_pre.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\tuiscriptadaptors_post.bat
+
 [SWI]
 TESTEXECUTE, \logs\testexecute\testfotaupdate1.htm,,    -Dstartupmode=1 -- \tswi\tuiscriptadaptors\scripts\testfotaupdate1.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testfotaupdate1_pre.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testfotaupdate1_post.bat
 TESTEXECUTE, \logs\testexecute\testfotaupdate2.htm,,    -Dstartupmode=1 -- \tswi\tuiscriptadaptors\scripts\testfotaupdate2.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testfotaupdate2_pre.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testfotaupdate2_post.bat
--- a/installationservices/swtransactionservices/group/security_softwaretransactionservices.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swtransactionservices/group/security_softwaretransactionservices.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_softwaretransactionservices
 source	\sf\mw\appinstall\installationservices\swtransactionservices
 binary	\sf\mw\appinstall\installationservices\swtransactionservices\group	all
--- a/installationservices/swtransactionservices/inc_private/integrityservices.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swtransactionservices/inc_private/integrityservices.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -28,6 +28,7 @@
 
 #include <e32base.h>
 #include <f32file.h>
+#include <e32ldr_private.h>
 #include <usif/sts/stsdefs.h>
 #include "integrityservicesevent.h"
 
@@ -199,15 +200,6 @@
 		 */
 		static void RollbackAllL();
 
-
-		/**
-		 * Creates a backup file by copying the source to a defined backup name. This MUST be used for executables.
-		 * The source files will then be deleted by invoking RLoader::Delete
-		 * @param aSource	the file to backup
-		 * @param aBackup	the name of the backup file
-		*/
-		void CopyToBackupL(const TDesC& aSource, const TDesC& aBackup);
-
 		/**
 		 * Failure types - indicate when to simulate power failure during
 		 * testing
--- a/installationservices/swtransactionservices/inc_private/operationfunctions.h	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swtransactionservices/inc_private/operationfunctions.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -27,6 +27,8 @@
 
 #include <e32base.h>
 #include <f32file.h>
+#include <e32ldr_private.h>
+#include <e32uid.h>
 
 namespace Usif
 {
--- a/installationservices/swtransactionservices/source/server/integrityservices.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swtransactionservices/source/server/integrityservices.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -131,43 +131,6 @@
 		}			
 }
 
-void CIntegrityServices::CopyToBackupL(const TDesC& aSource, const TDesC& aBackup)
-{
-	// Copying a file isn't atomic so we create a temporary backup file first
-	RBuf backupTmpName;
-	backupTmpName.Create(aBackup.Length() + 4);
-	CleanupClosePushL(backupTmpName);
-	backupTmpName.Copy(aBackup);
-	_LIT(KTmpExt, ".tmp");
-	backupTmpName.Append(KTmpExt);
-	
-	// Copying a file is not an atomic operation so add the temporary
-	// file to the journal to enable cleanup if a power failure occurs before
-	// the rename
-	SimulatePowerFailureL(EFailAddingTempFile, EBeforeJournal, backupTmpName);
-	RegisterTemporaryL(backupTmpName);
-	SimulatePowerFailureL(EFailAddingTempFile, EAfterJournal, backupTmpName);	
-		
-	CFileMan* fileMan = CFileMan::NewL(iFs);
-	CleanupStack::PushL(fileMan);
-		
-	TInt err = fileMan->Copy(aSource, backupTmpName);
-	DEBUG_PRINTF4(_L("CIntegrityServices::CopyToBackupL() - Copying %S to %S, err %d"), &aSource, &backupTmpName, err);
-	User::LeaveIfError(err);
-	
-	// Backup is complete, use RFs::Rename as atomic 'commit' of backup
-	err = iFs.Rename(backupTmpName, aBackup);			
-	DEBUG_PRINTF2(_L("CIntegrityServices::CopyToBackupL() - Commit backup returned error %d"), err);	
-	User::LeaveIfError(err);	
-	CleanupStack::PopAndDestroy(2, &backupTmpName); // backupTmpName, fileMan 
-	
-	//  Now the backup is safe the original can be deleted
-	err = iLoader.Delete(aSource);
-	DEBUG_PRINTF3(_L("CIntegrityServices::CopyToBackupL() - RLoader::Delete %S returned error %d"), &aSource, err);
-	User::LeaveIfError(err);
-}
-
-
  void CIntegrityServices::RegisterNewL(const TDesC& aFileName)
 	{
 	DEBUG_PRINTF3(_L("CIntegrityServices::RegisterNewL() - Session %X, File: %S."),	iTransactionID, &aFileName);
@@ -253,19 +216,9 @@
 		VerifyMkDirErrorL(err);
 
 		SimulatePowerFailureL(EFailRemovingFile, EBeforeAction, aFileName);
-		_LIT(KSysBinMatch, "?:\\sys\\bin\\*");
-		if (localFilename.MatchF(KSysBinMatch) == 0)
-		{
-			// A copy is slower than a rename to only use the 
-			// demand paging safe API for files in sys\bin
-			CopyToBackupL(localFilename, backupFileName);			
-		}
-		else
-		{
 			err = iFs.Rename(localFilename, backupFileName);
 			DEBUG_PRINTF4(_L("CIntegrityServices::RemoveL() - Renamed %S as %S error %d"), &localFilename, &backupFileName, err);
 			User::LeaveIfError(err);
-		}				
 		SimulatePowerFailureL(EFailRemovingFile, EAfterAction, aFileName);
 		}
 	else
--- a/installationservices/swtransactionservices/source/server/operationfunctions.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/installationservices/swtransactionservices/source/server/operationfunctions.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -23,12 +23,18 @@
 */
 
 #include "operationfunctions.h"
-
 #include "integritytree.h"
+#include "usiflog.h"
 
 namespace Usif
 {
 
+TBool IsBinary(const TEntry& aEntry)
+    {
+    return (aEntry[0].iUid == KExecutableImageUidValue || aEntry[0].iUid == KDynamicLibraryUidValue) ? ETrue : EFalse;
+    }
+
+
 void VerifyDeletionErrorL(TInt err)
 	{
 	if (err != KErrNone && err != KErrNotFound && err != KErrPathNotFound)
@@ -38,6 +44,7 @@
 void IntegrityDeleteFileL(const TDesC& aPath, CIntegrityTreeLeaf* aLeaf, RFs& aFs, 
 							   RLoader& aLoader, CFileMan& aFileMan)
 	{
+    _LIT(KSysBin, "\\sys\\bin");
 	RBuf name;
 	name.CreateL(aPath, KMaxFileName);
 	CleanupClosePushL(name);
@@ -58,17 +65,76 @@
 			User::LeaveIfError(aFileMan.RmDir(name));
 			}
 		else
-			{
-			User::LeaveIfError(aLoader.Delete(name));
+			{			
+            if ( aLeaf->Type() == EBackupFile ) // Implies a commit operation is in progress
+                {
+                
+                 if ( IsBinary(entry) )
+                     {
+                     // Forming the file name so the renamed file can be under sys/bin
+					 // for special delete mechanism using RLoader::Delete
+                     RBuf tmpName;
+                     TParsePtrC fileName(name);
+                     tmpName.CreateL(name.Length() + KSysBin.iTypeLength);
+                     CleanupClosePushL(tmpName);
+
+                     tmpName.Append(fileName.Drive());
+                     tmpName.Append(KSysBin);
+                     tmpName.Append(fileName.Path());
+                     tmpName.Append(fileName.NameAndExt());
+
+					 DEBUG_PRINTF3(_L("Integrity Services - Renaming %S to %S"), &name, &tmpName);
+                     aFileMan.Rename(name,tmpName,CFileMan::EOverWrite);
+                     User::LeaveIfError(aLoader.Delete(tmpName)); // Using RLoader delete for paged binaries
+					 DEBUG_PRINTF2(_L("Integrity Services - Deleted renamed file %S"), &tmpName);
+
+					 // prune the directory tree if possible
+                     RemoveDirectoryTreeL(aFs, tmpName);
+                     CleanupStack::PopAndDestroy(&tmpName);
+                     }
+                 else
+                     {
+                     User::LeaveIfError(aFileMan.Delete(name));
+                     }
+                }
+            else
+                {
+				// Need to use RLoader Delete which can be used during deletion of Added files during Rollback
+                User::LeaveIfError(aLoader.Delete(name));
+                }
 			}
 			
 		// prune the directory tree if possible
 		RemoveDirectoryTreeL(aFs, name);
 		}
-	else
+	else if(err != KErrNotFound && err != KErrPathNotFound)
 		{
-		VerifyDeletionErrorL(err);
+		DEBUG_PRINTF3(_L("Integrity Services - error %d removing %S"), err, &name);
+		User::Leave(err);
 		}
+	else
+	    {
+
+		DEBUG_PRINTF3(_L("Integrity Services - error %d removing %S"), err, &name);
+
+	    // Check for any renamed files to move it to sys/bin for special delete mechanism
+	    RBuf tmpName;
+	    TParsePtrC fileName(name);
+	    tmpName.CreateL(name.Length() + KSysBin.iTypeLength);
+	    CleanupClosePushL(tmpName);
+
+	    tmpName.Append(fileName.Drive());
+	    tmpName.Append(KSysBin);
+	    tmpName.Append(fileName.Path());
+	    tmpName.Append(fileName.NameAndExt());
+		DEBUG_PRINTF2(_L("Integrity Services - Removing  %S renamed binary files if any"), &tmpName);
+
+	    aLoader.Delete(tmpName);
+		// prune the directory tree if possible
+	    RemoveDirectoryTreeL(aFs, tmpName);
+	    CleanupStack::PopAndDestroy(&tmpName);
+	    }
+
 	CleanupStack::PopAndDestroy(&name);
 	}
 
--- a/ncdengine/engine/accesspointmanager/src/catalogsaccesspointmanagerimpl.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/ncdengine/engine/accesspointmanager/src/catalogsaccesspointmanagerimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -537,7 +537,7 @@
 TInt CCatalogsAccessPointManager::AccessPointIdL(
     const TDesC& aNameSpace,
     const MCatalogsAccessPointManager::TAction& aAction,
-    const TUid& /* aClientUid */,
+    const TUid& aClientUid,
     TUint32& aAccessPointId ) 
     {
     DLTRACEIN((_L("Namespace: %S, Action: %d, clientUid: %d"), &aNameSpace, aAction, aClientUid.iUid));
@@ -565,7 +565,7 @@
     const TDesC& aNameSpace,
     const TDesC& aCatalogId,
     const MCatalogsAccessPointManager::TAction& aAction,
-    const TUid& /* aClientUid */,
+    const TUid& aClientUid,
     TUint32& aAccessPointId) 
     {
     DLTRACEIN((_L("Namespace: %S, CatalogId: %S, Action: %d, clientUid: %d"), &aNameSpace, &aCatalogId, aAction, aClientUid.iUid));
@@ -592,7 +592,7 @@
 TInt CCatalogsAccessPointManager::AccessPointIdL(
     const CNcdNodeIdentifier& aNodeIdentifier,
     const MCatalogsAccessPointManager::TAction& aAction,
-    const TUid& /* aClientUid */,
+    const TUid& aClientUid,
     TUint32& aAccessPointId) 
     {
     DLTRACEIN((_L("Namespace: %S, NodeId: %S, Action: %d, clientUid: %d"),
--- a/ncdengine/provider/deviceinteraction/inc/ncddeviceserviceimpl.h	Thu May 27 12:58:35 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncddeviceserviceimpl.h	Fri Jun 11 13:45:18 2010 +0300
@@ -218,10 +218,6 @@
      */
     TAknSkinSrvSkinPackageLocation SkinLocationFromPath( const TDesC& aPath );
     
-#ifdef GET_DEVICE_ID_FROM_USERAGENT    
-    HBufC8* UserAgentL() const;
-#endif    
-    
     void GetPhoneLC( RTelServer& aServer, RPhone& aPhone );
 
     void GetSubscriberId();
--- a/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -38,7 +38,7 @@
 #endif
 
 #ifdef GET_DEVICE_ID_FROM_USERAGENT
-    #include <CUserAgent.h>
+    #include <sysversioninfo.h>
 #endif
 
 #include "catalogs_device_config.h"
@@ -681,31 +681,17 @@
     return KCatalogsOverrideDeviceId().AllocLC();
 #endif    
 
-#ifdef GET_DEVICE_ID_FROM_USERAGENT    
-    // Assume the device id begins with "Nokia" and ends with "/"
-    HBufC8* userAgent = UserAgentL();
-    CleanupStack::PushL( userAgent );
-    TInt offset = userAgent->Find( _L8( "Nokia" ));
-    if ( offset == KErrNotFound )
-        {
-        DLTRACEOUT(("No Nokia"));
-        CleanupStack::PopAndDestroy( userAgent );
-        return KNullDesC().AllocLC();
-        }
-    TPtrC8 id = userAgent->Des().Mid( offset );
-    offset = id.Locate( '/' );
-    if ( offset == KErrNotFound )
-        {
-        DLTRACEOUT(("no /"));
-        CleanupStack::PopAndDestroy( userAgent );
-        return KNullDesC().AllocLC();
-        }
-    TPtrC8 id2 = id.Left( offset );
-    HBufC* devId = HBufC::NewL( id2.Length() );
-    devId->Des().Copy( id2 );
-    CleanupStack::PopAndDestroy( userAgent );
-    CleanupStack::PushL( devId );
-    DLTRACEOUT(( _L("devId: %S"), devId ));
+#ifdef GET_DEVICE_ID_FROM_USERAGENT  
+    
+    // Get model version.
+    TBuf< KSysVersionInfoTextLength > modelVersion;
+    User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+        SysVersionInfo::EModelVersion, modelVersion ) );
+    
+    // Create buffer.
+    HBufC* devId = HBufC::NewLC( modelVersion.Length() );
+    devId->Des().Append( modelVersion );
+    DLTRACEOUT(( _L("devId: %S"), variantInfo ));
     return devId;
     
 #else // Get devId from CTelephony
@@ -751,36 +737,16 @@
     
     if ( !iDeviceModel )
         {
-        // Get manufacturer 
-        HBufC8* manufacturer = Des16ToDes8LC( DeviceManufacturerL() );
-        
-        HBufC8* userAgent = UserAgentL();
-        CleanupStack::PushL( userAgent );
-        
-        TInt offset = userAgent->FindF( *manufacturer ); 
-        if ( offset == KErrNotFound )
-            {
-            DLTRACEOUT(("Device manufacturer not found"));
-            CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-            return KNullDesC();
-            }
+        // Get model version.
+        TBuf< KSysVersionInfoTextLength > modelVersion;
+        User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+            SysVersionInfo::EModelVersion, modelVersion ) );
+    
+        // Create buffer.
+        iDeviceModel = HBufC::NewL( modelVersion.Length() );
+        iDeviceModel->Des().Append( modelVersion );
+        }
         
-        // Strip manufacturer of the string    
-        TPtrC8 id = userAgent->Des().Mid( offset + manufacturer->Length() );
-        
-        // Locate the end of the device model
-        offset = id.Locate( '/' );
-        if ( offset == KErrNotFound )
-            {
-            DLTRACE(("no /"));
-            CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-            return KNullDesC();
-            }
-        TPtrC8 id2 = id.Left( offset );
-        iDeviceModel = Des8ToDes16L( id2 );                        
-        
-        CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-        }
     DLTRACEOUT(( _L("device model: %S"), iDeviceModel ));
     return *iDeviceModel;
 #endif // CATALOGS_OVERRIDE_MODEL   
@@ -853,30 +819,6 @@
         }
     return EAknsSrvPhone;
     }
-    
-
-// ---------------------------------------------------------------------------
-// On SDK 3.0 UA looks like this:
-// Mozilla/4.0 ( compatible; MSIE 5.0; Series60/3.0 Nokia6630/4.06.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) 
-// ---------------------------------------------------------------------------
-#ifdef GET_DEVICE_ID_FROM_USERAGENT
-
-HBufC8* CNcdDeviceService::UserAgentL() const
-    {
-    DLTRACEIN((""));
-#ifndef CATALOGS_OVERRIDE_USERAGENT    
-    CUserAgent* ua = CUserAgent::NewL();
-    CleanupStack::PushL( ua );
-    HBufC8* uas = ua->UserAgentL();
-    CleanupStack::PopAndDestroy( ua );
-    DLTRACEOUT(("UserAgent: %S", uas));
-    return uas;
-#else // CATALOGS_OVERRIDE_USERAGENT
-    return KCatalogsOverrideUserAgent().AllocL(); 
-#endif    
-    }
-
-#endif    
 
 // ---------------------------------------------------------------------------
 // GetPhoneLC
--- a/ncdengine/provider/protocol/inc/ncdxmlheaders.h	Thu May 27 12:58:35 2010 +0300
+++ b/ncdengine/provider/protocol/inc/ncdxmlheaders.h	Fri Jun 11 13:45:18 2010 +0300
@@ -28,12 +28,12 @@
 // All necessary XML DOM parser headers are included here
 #ifdef S60_3_2_WK14_OR_NEWER
 // Filenames in 3.2 from week 14 onwards
-    #include <xmlengdom.h>
-    #include <xmlengdomimplementation.h>
-    #include <xmlengdocument.h>
-    #include <xmlengserializationoptions.h>
-    #include <xmlengxestrings.h>
-    #include <xmlengutils.h>
+    #include <xml/dom/xmlengdom.h>
+    #include <xml/dom/xmlengdomimplementation.h>
+    #include <xml/dom/xmlengdocument.h>
+    #include <xml/dom/xmlengserializationoptions.h>
+    #include <xml/utils/xmlengxestrings.h>
+    #include <xml/utils/xmlengutils.h>
 #else
 
 // Filenames in 3.1
--- a/package_definition_v2.xml	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="appinstall" name="Application Installation" levels="tool framework generic api">
-    <collection id="appinstaller" name="Application Installer" level="generic">
-      <component id="appmngr2" filter="s60" name="Application Manager 2" introduced="^2">
-        <unit bldFile="appinstaller/appmngr2/group"/>
-      </component>
-      <component id="appinstui" filter="s60" name="Application Installer UI" introduced="^2">
-        <unit bldFile="appinstaller/appinstui/group"/>
-      </component>
-    </collection>
-    <collection id="ncdengine" name="Nokia Content Discover" level="framework">
-      <component id="ncdengine_engine" filter="s60" name="NCD Engine" introduced="^1">
-        <unit bldFile="ncdengine/engine/group"/>
-      </component>
-      <component id="debuglogger" filter="s60" name="NCD Debug Logger" introduced="^1">
-        <!-- <unit bldFile="ncdengine/debuglogger/group"/> -->
-      </component>
-      <component id="ncdengine_build" filter="s60" name="NCD Build" introduced="^1">
-        <unit bldFile="ncdengine/group"/>
-      </component>
-    </collection>
-    <collection id="iaupdateapi_stub" name="IA Update API Stub" level="api">
-      <component id="iaupdateapi_stub_build" name="IA Update API Stub Build" filter="s60" introduced="^2">
-        <unit bldFile="iaupdateapi_stub/group"/>
-      </component>
-    </collection>
-    <collection id="iaupdate" name="Independent Apps Update" level="api">
-      <component id="iad" name="Software Update" filter="s60" introduced="^2">
-        <unit bldFile="iaupdate/iad/group"/>
-      </component>
-      <component id="iaupdate_help" filter="s60" name="IA Update Help" introduced="^2">
-        <unit bldFile="iaupdate/help/group"/>
-      </component>
-      <component id="iaupdate_build" filter="s60" name="IA Update Build" introduced="^2">
-        <unit bldFile="iaupdate/group"/>
-      </component>
-    </collection>
-    <collection id="installationservices" name="Installation Services" level="generic">
-      <component id="swi" name="Secure Software Install" purpose="optional">
-        <unit bldFile="installationservices/swi/group" mrp="installationservices/swi/group/security_swi.mrp"/>
-      </component>
-      <component id="swidevicetools" name="Secure Software Install Device Tools" introduced="8.1" purpose="development">
-        <unit bldFile="installationservices/swidevicetools/group" mrp="installationservices/swidevicetools/group/security_switools_device.mrp"/>
-      </component>
-      <component id="swcomponentregistry" name="Software Component Registry" introduced="^4" purpose="mandatory">
-        <unit bldFile="installationservices/swcomponentregistry/group" mrp="installationservices/swcomponentregistry/group/security_softwarecomponentregistry.mrp"/>
-      </component>
-      <component id="swinstallationfw" name="Software Installation Framework" introduced="^4" purpose="optional">
-        <unit bldFile="installationservices/swinstallationfw/group" mrp="installationservices/swinstallationfw/group/security_softwareinstallframework.mrp"/>
-      </component>
-      <component id="swtransactionservices" name="Software Transaction Services" introduced="^4" purpose="optional">
-        <unit bldFile="installationservices/swtransactionservices/group" mrp="installationservices/swtransactionservices/group/security_softwaretransactionservices.mrp"/>
-      </component>
-      <component id="refswinstallationplugin" name="Reference Software Installation Plugin" introduced="^4" purpose="development" class="plugin">
-        <unit bldFile="installationservices/refswinstallationplugin/group" mrp="installationservices/refswinstallationplugin/group/security_sifrefplugin.mrp"/>
-      </component>
-      <component id="refsoftwareappmgr" name="Reference Software Application Manager" introduced="^4" purpose="development">
-        <unit bldFile="installationservices/refsoftwareappmgr/group" mrp="installationservices/refsoftwareappmgr/group/security_referenceapplicationmanager.mrp"/>
-      </component>
-      <component id="switestfw" name="Software Install Test Framework" deprecated="^3" introduced="7.0" purpose="development" filter="test">
-        <unit mrp="installationservices/switestfw/group/install_testframework.mrp" bldFile="installationservices/switestfw/group"/>
-      </component>
-      <component id="swiconfig" name="Software Install Config" introduced="9.1" purpose="optional" class="config">
-        <unit bldFile="installationservices/swiconfig/group" mrp="installationservices/swiconfig/group/install_config.mrp"/>
-      </component>
-    </collection>
-    <collection id="secureswitools" name="Secure Software Install Tools" level="tool">
-      <component id="makekeys" name="MakeKeys" filter="gt" introduced="6.0" purpose="optional" target="desktop">
-        <unit bldFile="secureswitools/makekeys/group" mrp="secureswitools/makekeys/group/security_makekeys.mrp"/>
-      </component>
-      <component id="swianalysistoolkit" name="SWI Analysis Toolkit" purpose="development" target="desktop">
-        <unit bldFile="secureswitools/swianalysistoolkit/group" mrp="secureswitools/swianalysistoolkit/group/security_switools.mrp"/>
-      </component>
-      <component id="openssllib" name="OpenSSL Library" purpose="optional" target="desktop">
-        <unit mrp="secureswitools/openssllib/security_openssl.mrp"/>
-      </component>
-      <component id="swisistools" name="Secure Software Install SIS Tools" purpose="optional" target="desktop">
-        <unit bldFile="secureswitools/swisistools/group" mrp="secureswitools/swisistools/group/security_sistools.mrp"/>
-      </component>
-    </collection>
-    <collection id="appinstall_info" name="Application Installation Info" level="api">
-      <component id="appinstall_pub" filter="s60" name="Application Installation Public Interfaces" class="api">
-        <unit bldFile="appinstall_pub/group"/>
-        <!-- <unit bldFile="appinstall_pub/startup_list_management_api/tsrc/bc/startuplistmanagementapi/selfsignedstartupapp/group"/> -->
-        <!-- <unit bldFile="appinstall_pub/startup_list_management_api/tsrc/bc/startuplistmanagementapi/startupapp/group"/> -->
-      </component>
-      <component id="appinstall_plat" filter="s60" name="Application Installation Platform Interfaces" class="api">
-        <unit bldFile="appinstall_plat/group"/>
-        <unit bldFile="appinstall_plat/appmngr2runtimeapi/tsrc/group"/>
-        <!-- <unit bldFile="appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest"/> -->
-      </component>
-      <component id="appinstall_test" filter="s60" name="Application Installation Test" purpose="development">
-        <!-- <unit bldFile="tsrc/group"/> -->
-      </component>
-      <component id="appinstall_metadata" name="Application Installation Metadata" class="config" introduced="^2" purpose="development" target="desktop">
-        <unit mrp="appinstall_info/appinstall_metadata/appinstall_metadata.mrp"/>
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/secureswitools/makekeys/group/security_makekeys.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/makekeys/group/security_makekeys.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_makekeys
 source	\sf\mw\appinstall\secureswitools\makekeys
 #binary	\security\makekeys\group tools
--- a/secureswitools/makekeys/src/MAKEKEYS.CPP	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/makekeys/src/MAKEKEYS.CPP	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 * 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"
+* 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".
 *
--- a/secureswitools/makekeys/src/openssllicense.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/makekeys/src/openssllicense.h	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 * 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"
+* 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".
 *
--- a/secureswitools/swianalysistoolkit/group/security_switools.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/security_switools.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_switools
 source	\sf\mw\appinstall\secureswitools\swianalysistoolkit
 binary	\sf\mw\appinstall\secureswitools\swianalysistoolkit\group	all
--- a/secureswitools/swisistools/group/bld.inf	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
@@ -1732,6 +1732,7 @@
 ../test/tinterpretsisinteg/interpretsism0010_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism0010_db.bat
 ../test/tinterpretsisinteg/interpretsism0011_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism0011_db.bat
 ../test/tinterpretsisinteg/interpretsism0016c_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism0016c_db.bat
+../test/tinterpretsisinteg/interpretsism001a_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism001a_db.bat
 ../test/tinterpretsisinteg/interpretsism001_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism001_db.bat
 ../test/tinterpretsisinteg/interpretsism002_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism002_db.bat
 ../test/tinterpretsisinteg/interpretsism003_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism003_db.bat
@@ -1812,6 +1813,7 @@
 ../test/tinterpretsisinteg/makesism0010_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism0010_db.bat
 ../test/tinterpretsisinteg/makesism0011_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism0011_db.bat
 ../test/tinterpretsisinteg/makesism0016c_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism0016c_db.bat
+../test/tinterpretsisinteg/makesism001a_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism001a_db.bat 
 ../test/tinterpretsisinteg/makesism001_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism001_db.bat 
 ../test/tinterpretsisinteg/makesism002_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism002_db.bat 
 ../test/tinterpretsisinteg/makesism003_db.bat /epoc32/winscw/c/tswi/tinterpretsisinteg/makesism003_db.bat 
@@ -1905,6 +1907,9 @@
 ../test/tinterpretsisinteg/testdatascr/base_r.pkg /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatascr/base_r.pkg
 ../test/tinterpretsisinteg/testdatascr/hiddensa.pkg /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatascr/hiddensa.pkg
 
+../test/tinterpretsisinteg/TestElseIfData/TestElseIf.pkg /epoc32/winscw/c/tswi/tinterpretsisinteg/TestElseIfData/TestElseIf.pkg
+../test/tinterpretsisinteg/TestElseIfData/file0 /epoc32/winscw/c/tswi/tinterpretsisinteg/TestElseIfData/file0
+
 // exports for scrtool
 ../test/tscrtool/tscrtool.ini				/epoc32/winscw/c/tswi/tscrtool/tscrtool.ini
 ../test/tscrtool/tscrtool.pl				/epoc32/winscw/c/tswi/tscrtool/tscrtool.pl
--- a/secureswitools/swisistools/group/security_sistools.mrp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/group/security_sistools.mrp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,19 +1,3 @@
-#
-# 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: 
-#
-
 component	security_sistools
 source	\sf\mw\appinstall\secureswitools\swisistools
 binary	\sf\mw\appinstall\secureswitools\swisistools\group	all
--- a/secureswitools/swisistools/source/dumpsis/options.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/options.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 * 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"
+* 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".
 *
--- a/secureswitools/swisistools/source/interpretsis/openssllicense.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsis/openssllicense.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-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"
+// 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".
 //
--- a/secureswitools/swisistools/source/interpretsislib/dbhelper.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/dbhelper.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -46,6 +46,50 @@
 	else 
 		dbName = wstring2string(aDrivePath) + "\\sys\\install\\scr\\provisioned\\scr.db";
 
+	std::wstring wdbname(string2wstring(dbName));
+	//Create the SCR DB if not present in the System Drive
+	if(!FileExists(wdbname))
+		{
+		const char* epocRoot = getenv("EPOCROOT");
+		if(NULL == epocRoot)
+			{
+				std::string emsg(" EPOCROOT environment variable not specified.");
+				int retCode = ExceptionCodes::EEnvNotSpecified;
+				throw InterpretSisError(emsg,retCode);
+			}
+		std::string epocRootStr(epocRoot); 
+
+		#ifndef __TOOLS2_LINUX__
+		std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32\\tools\\create_db.xml";
+		#else
+		std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32/tools/create_db.xml";
+		#endif
+
+		if(FileExists(swEnvInfo))
+			{
+			std::string executable = "scrtool.exe";
+			std::string command;
+			
+			command = executable + " -c " + dbName + " -f " + wstring2string(swEnvInfo);
+			
+			std::cout << "Creating DB : " << command << std::endl;
+			
+			int error = system(command.c_str());
+			if(error != 0)
+				{
+					std::string err = "Scrtool failed to create the database.";
+					throw InterpretSisError(err, DATABASE_UPDATE_FAILED);
+				}
+			}
+		else
+			{
+				LERROR(L"Failed to create the database.");
+				std::string emessage(" XML file /epoc32/tools/create_db.xml which contains software environment information is not found.");
+				int returnCode = ExceptionCodes::EFileNotPresent;
+				throw InterpretSisError(emessage,returnCode);
+			}
+		}
+
 	try
 		{
 		iScrDbHandler = new CDbProcessor(dllName, dbName);		
--- a/secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -95,14 +95,14 @@
     }
 
 
-ExpressionResult ExpressionEvaluator::Evaluate(const CSISExpression* aExpression)
+ExpressionResult ExpressionEvaluator::Evaluate(const CSISExpression* aExpression, bool aLogInfo )
     {
 	Require(aExpression);
-	return Evaluate(*aExpression);
+	return Evaluate(*aExpression, aLogInfo);
     }
 
 
-ExpressionResult ExpressionEvaluator::Evaluate(const CSISExpression& aExpression)
+ExpressionResult ExpressionEvaluator::Evaluate(const CSISExpression& aExpression, bool aLogInfo)
     {
 	if (++iExpressionDepth > KMaxExpressionDepth)
 	    {
@@ -122,8 +122,8 @@
 	case CSISExpression::EBinOpGreaterThanOrEqual:
 	case CSISExpression::EBinOpLessThanOrEqual:
         {
-		const ExpressionResult resultLeft = Evaluate( aExpression.LHS() );
-		const ExpressionResult resultRight = Evaluate( aExpression.RHS() );
+		const ExpressionResult resultLeft = Evaluate( aExpression.LHS(), aLogInfo );
+		const ExpressionResult resultRight = Evaluate( aExpression.RHS(), aLogInfo  );
         //
 	    switch (aExpression.Operator())
 	        {
@@ -152,41 +152,41 @@
     
     case CSISExpression::ELogOpAnd:
 		{
-		ExpressionResult tmp1 = Evaluate(aExpression.LHS());
-		ExpressionResult tmp2 = Evaluate(aExpression.RHS());
+		ExpressionResult tmp1 = Evaluate(aExpression.LHS(), aLogInfo );
+		ExpressionResult tmp2 = Evaluate(aExpression.RHS(), aLogInfo );
 		iTempResult = ExpressionResult(tmp1.BoolValue() && tmp2.BoolValue());
 		break;
 		}
 
 	case CSISExpression::ELogOpOr:
 		{
-		ExpressionResult tmp1 = Evaluate(aExpression.LHS());
+		ExpressionResult tmp1 = Evaluate(aExpression.LHS(), aLogInfo );
 		if (tmp1.BoolValue())
     		{
 			iTempResult = ExpressionResult(true);
 	    	}
 		else
 		    {
-			iTempResult = ExpressionResult(Evaluate(aExpression.RHS())).BoolValue();
+			iTempResult = ExpressionResult(Evaluate(aExpression.RHS(), aLogInfo)).BoolValue();
 		    }
 		break;
 		}
 
 	case CSISExpression::EUnaryOpNot:
-		iTempResult=!Evaluate(aExpression.RHS());
+		iTempResult=!Evaluate(aExpression.RHS(), aLogInfo );
 		break;
 
 	case CSISExpression::EFuncAppProperties:
         {
-        const TUint32 resultLeft = Evaluate( aExpression.LHS() ).IntegerValue();
-        const TUint32 resultRight = Evaluate( aExpression.RHS() ).IntegerValue();
+        const TUint32 resultLeft = Evaluate( aExpression.LHS(), aLogInfo  ).IntegerValue();
+        const TUint32 resultRight = Evaluate( aExpression.RHS(), aLogInfo  ).IntegerValue();
         //
 		iTempResult = iExpEnv.ApplicationProperty( resultLeft, resultRight );
 		break;
         }
 
 	case CSISExpression::EFuncDevProperties:
-		iTempResult = ExpressionResult(iExpEnv.Package(Evaluate(aExpression.RHS()).IntegerValue()));
+		iTempResult = ExpressionResult(iExpEnv.Package(Evaluate(aExpression.RHS(), aLogInfo ).IntegerValue()));
 		break;
 
 	case CSISExpression::EFuncExists:
@@ -218,7 +218,7 @@
 			}
 		else
 			{
-			iTempResult = ExpressionResult(iExpEnv.FindFile(pS.GetString()));
+			iTempResult = ExpressionResult(iExpEnv.FindFile(pS.GetString(), aLogInfo));
 			}
 		}
 		break;
@@ -238,7 +238,7 @@
 	case CSISExpression::EPrimTypeVariable:
 		{
         const int variableId = aExpression.IntValue();
-        const int variableValue = iExpEnv.Variable( variableId );
+        const int variableValue = iExpEnv.Variable( variableId, aLogInfo);
         //
 		iTempResult = ExpressionResult( variableValue );
 		break;
@@ -292,7 +292,7 @@
     }
 
 
-bool ExpressionEnvironment::FindFile( const std::wstring& aFileName )
+bool ExpressionEnvironment::FindFile( const std::wstring& aFileName, bool aLogInfo )
     {
     bool fileExists = false;
 
@@ -308,7 +308,10 @@
     if ( fileName.length() >= 1 && fileName[ 0 ] == L'\\' )
         {
         // Bad file name?
-  		LWARN(L"\tAssuming file path \'" << aFileName << L"\' refers to Z:" );
+		if( aLogInfo )
+			{
+			LWARN(L"\tAssuming file path \'" << aFileName << L"\' refers to Z:" );
+			}  		
         fileName = L"Z:" + fileName;
         }
 
@@ -355,11 +358,14 @@
 		throw InvalidSis( "", error, INVALID_SIS );
         }
     //
-    std::ostringstream stream;
-    stream << "\tIF EXISTS(\'" << narrowFileName << "\') => " << fileExists;
-    std::string msg = stream.str();
-    std::wstring finalMessage = Utf8ToUcs2( msg );
-    LINFO( finalMessage );
+	if(aLogInfo)
+		{
+		std::ostringstream stream;
+		stream << "\tIF EXISTS(\'" << narrowFileName << "\') => " << fileExists;
+		std::string msg = stream.str();
+		std::wstring finalMessage = Utf8ToUcs2( msg );
+		LINFO( finalMessage );
+		}
     //
     return fileExists;
     }
@@ -396,7 +402,7 @@
     }
 
 
-int ExpressionEnvironment::Variable( int aVariableId )
+int ExpressionEnvironment::Variable( int aVariableId, bool aLogInfo )
     {
     int result = 0;
 
@@ -417,23 +423,32 @@
 			if (!iSisFile.IsSupportedLanguage((TUint32)result))
 				{
 				int firstLanguage = iSisFile.GetLanguage(); // get the first language
-				std::ostringstream stream;
-				stream << "Input language " << result << " is not supported by SIS file. Using first language " <<firstLanguage;
-				std::string msg = stream.str();
-				std::wstring finalMessage = Utf8ToUcs2( msg );
-				LWARN( finalMessage );	
+				if(aLogInfo)
+					{
+					std::ostringstream stream;
+					stream << "Input language " << result << " is not supported by SIS file. Using first language " <<firstLanguage;
+					std::string msg = stream.str();
+					std::wstring finalMessage = Utf8ToUcs2( msg );
+					LWARN( finalMessage );	
+					}
 				result = firstLanguage;
 				}
 			}
-        std::ostringstream stream;
-        stream << "\tIF " << attributeName << " ... where [" << attributeName << " = " << result << "]";
-        std::string msg = stream.str();
-        std::wstring finalMessage = Utf8ToUcs2( msg );
-        LINFO( finalMessage );
+        if(aLogInfo)
+			{
+			std::ostringstream stream;
+			stream << "\tIF " << attributeName << " ... where [" << attributeName << " = " << result << "]";
+			std::string msg = stream.str();
+			std::wstring finalMessage = Utf8ToUcs2( msg );
+			LINFO( finalMessage );
+			}
         }
 	else if ( aVariableId == KVariableLanguage )
     	{
-		LWARN(L"Disregarding language selection. Using ELangEnglish");
+		if(aLogInfo)
+			{
+			LWARN(L"Disregarding language selection. Using ELangEnglish");
+			}
 		result = 1;
     	}
     else
--- a/secureswitools/swisistools/source/interpretsislib/expressionevaluator.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/expressionevaluator.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -50,7 +50,7 @@
 	 * Check whether a file exists, corresponds to EXISTS() function in package
 	 * format.
 	 */
-	bool FindFile(const std::wstring& aFileName);
+	bool FindFile(const std::wstring& aFileName, bool aLogInfo = true);
 
 	/**
 	 * Queries an application property, which is a key,value pair associated 
@@ -64,7 +64,7 @@
 	 */
 	bool Package(TUint32 aKey);
 
-	int Variable( int aVariableId );
+	int Variable( int aVariableId, bool aLogInfo = true );
 
 	const std::wstring GetPackageName();
 
@@ -258,8 +258,8 @@
 	void SetFile(const SisFile& aSisFile);
 	void SetRegistry(const SisRegistry& aSisRegistry);
 	
-	ExpressionResult Evaluate(const CSISExpression& aExpression);
-	ExpressionResult Evaluate(const CSISExpression* aExpression);
+	ExpressionResult Evaluate(const CSISExpression& aExpression, bool aLogInfo = true);
+	ExpressionResult Evaluate(const CSISExpression* aExpression, bool aLogInfo = true);
 
 private:
 	void Require(const void *aPointer) const;
--- a/secureswitools/swisistools/source/interpretsislib/installer.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/installer.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -255,6 +255,56 @@
 	}
 }
 
+void Installer::ProcessConditionalBlockWarnings(const CSISInstallBlock& aInstallBlock, 
+											  ExpressionEvaluator& aEvaluator,
+											  const SisFile& aFile
+											  ) 
+	{
+	const CSISArray<CSISIf, CSISFieldRoot::ESISIf>& ifs = aInstallBlock.Ifs();
+	for (int i = 0; i < ifs.size(); ++i)
+		{
+		const CSISIf& ifBlock = ifs[i];
+
+		if (ifBlock.WasteOfSpace())
+			{
+			return;
+			}
+
+		// Main expression
+		if ( aEvaluator.Evaluate(ifBlock.Expression(),false).BoolValue() )
+			{
+			ProcessInstallBlockWarnings(ifBlock.InstallBlock(), aFile);
+			ProcessConditionalBlockWarnings(ifBlock.InstallBlock(), aEvaluator, aFile);
+			continue;
+			}
+		
+		int elseCount = ifBlock.ElseIfCount();
+		for (int i = 0; i < elseCount; ++i)
+			{
+			const CSISElseIf& elseIfBlock = ifBlock.ElseIf(i) ;
+			if ( aEvaluator.Evaluate(elseIfBlock.Expression(),false).BoolValue())
+				{
+				ProcessInstallBlockWarnings(elseIfBlock.InstallBlock(), aFile);
+				ProcessConditionalBlockWarnings(elseIfBlock.InstallBlock(), aEvaluator, aFile);
+				break;	// Stop processing else if blocks
+				}
+			}
+		} 
+	}
+
+void Installer::ProcessInstallBlockWarnings(const CSISInstallBlock& aInstallBlock, const SisFile& aFile)
+	{
+	aFile.ProcessEmbeddedFileWarning(aInstallBlock);
+	
+	std::string error;
+	bool result = aFile.ProcessInstallOptionsWarning(aInstallBlock,error);	
+	if(result == false)
+		{
+		std::string x;
+		throw InvalidSis(Ucs2ToUtf8(aFile.GetPackageName(),x),
+			error, SIS_NOT_SUPPORTED);
+		}
+	}
 
 TInt Installer::Install(const InstallSISFile& aInstallSISFile)
 {
@@ -273,6 +323,9 @@
 	// check file is acceptable
 	file.CheckValid();
 
+	const CSISController& ctrl = file.GetController();	
+	ProcessConditionalBlockWarnings(ctrl.InstallBlock(), *iExpressionEvaluator, file);
+	
 	if (!DependenciesOk(file))
 	{
 		return MISSING_DEPENDENCY;
--- a/secureswitools/swisistools/source/interpretsislib/installer.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/installer.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -120,6 +120,12 @@
 	void FilterNonBlockingFilesOfFilename(const SisFile& aFile, const std::wstring& target);
 	void WarnEclipseOverWrite(const SisFile& aFile);
 
+	void ProcessConditionalBlockWarnings(const CSISInstallBlock& aInstallBlock, 
+												  ExpressionEvaluator& aEvaluator,
+												  const SisFile& aFile
+												  ); 
+	void ProcessInstallBlockWarnings(const CSISInstallBlock& aInstallBlock, const SisFile& aFile);
+
 	// Adorned methods
 	void AdornedProcessingOfFile(const std::wstring& aTarget, std::wstring& aUnadornedName, 
 										std::list<std::wstring>& aAdornedFileNamesFound);
--- a/secureswitools/swisistools/source/interpretsislib/sisfile.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisfile.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -169,7 +169,7 @@
 }
 
 void SisFile::CheckValid() const
-	{
+{
 	std::string error;
 
 	CSISInfo::TSISInstallationType installType = iContents.Controller().SISInfo().InstallationType();
@@ -198,11 +198,26 @@
 	failed = failed || !success;
 
 	const CSISInstallBlock& blk = iContents.Controller().InstallBlock();
+	success = ProcessInstallOptionsWarning( blk, error);
 
-	int fileCount = blk.FileCount();
+	failed = failed || !success;
+
+	if (failed)
+		{
+		std::string x;
+		throw InvalidSis(Ucs2ToUtf8(this->GetPackageName(),x),
+			error, SIS_NOT_SUPPORTED);
+		}
+	}
+
+bool SisFile::ProcessInstallOptionsWarning(const CSISInstallBlock& aInstallBlock, std::string& aError)
+	{
+	bool success = true;
+
+	int fileCount = aInstallBlock.FileCount();
 	for(int i = 0; i < fileCount; ++i)
 		{
-		const CSISFileDescription& fD = blk.FileDescription(i);
+		const CSISFileDescription& fD = aInstallBlock.FileDescription(i);
         const CSISFileDescription::TSISFileOperation operation = fD.Operation();
 		std::wstring target(fD.Target().GetString());
         //
@@ -257,19 +272,12 @@
 		//
         if (!success)
     		{
-			error += "SIS File contains install options : "+operation;
+			aError += "SIS File contains install options : "+operation;
 			break;
 	    	}
 		}
-	failed = failed || !success;
+	}
 
-	if (failed)
-		{
-		std::string x;
-		throw InvalidSis(Ucs2ToUtf8(this->GetPackageName(),x),
-			error, SIS_NOT_SUPPORTED);
-		}
-	}
 
 std::wstring SisFile::GetVendorName() const
 	{
@@ -436,8 +444,7 @@
 				ProcessInstallBlock(ifElseBlock.InstallBlock(), aFiles, aEvaluator, aDrivePath, aInstallingDrive);
 				break;	// Stop processing else if blocks
 				}
-			// Process the rest of the files
-			GetInstallableFiles(aFiles, ifElseBlock.InstallBlock(), aDrivePath, aInstallingDrive);
+			
 			}
 		} 
 	}
@@ -458,6 +465,18 @@
 	return pkgs;
 }
 
+void SisFile::ProcessEmbeddedFileWarning(const CSISInstallBlock& aInstallBlock) const
+	{
+	TControllerMap embeddedCtls;
+	aInstallBlock.GetEmbeddedControllers(embeddedCtls, false);
+	for (TControllerMapConstIter iter = embeddedCtls.begin(); iter != embeddedCtls.end(); ++iter)
+		{
+		const CSISController* ctrl = iter->second;
+		const CSISInfo& info = ctrl->SISInfo();			
+		LWARN(L" Embedded Package not installed: UID " << std::hex << info.UID1() );
+		}
+	}
+
 bool SisFile::IsSupportedLanguage(TUint32 aLanguage) const
 {
 	bool result = false;
--- a/secureswitools/swisistools/source/interpretsislib/sisfile.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisfile.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 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"
@@ -96,6 +96,10 @@
 	void MakeSISStub(std::wstring& aFileName);
 	
 	const CSISController& GetController(); 
+	
+	void ProcessEmbeddedFileWarning(const CSISInstallBlock& aInstallBlock) const;
+
+	bool ProcessInstallOptionsWarning(const CSISInstallBlock& aInstallBlock, std::string& aError);
 
 private:
 	void GetInstallableFiles(	InstallableFiles& aFiles, 
--- a/secureswitools/swisistools/source/makesis/makesis.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/makesis/makesis.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -1,7 +1,7 @@
 // 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"
+// 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".
 //
--- a/secureswitools/swisistools/source/makesis/openssllicense.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/makesis/openssllicense.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-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"
+// 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".
 //
--- a/secureswitools/swisistools/source/rscparser/apsecutils.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/apsecutils.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -103,7 +103,7 @@
  * @param aIsSidProtected returns ETrue if application SID is in the protected range
  * @return KErrNone if succesful, error code otherwise
  */
-TInt CApaSecurityUtils::CheckAppSecurity( const Ptr16 aAppFilename, 
+TInt CApaSecurityUtils::CheckAppSecurity( const Ptr16& aAppFilename, 
                                            TBool& aHasWriteDeviceDataCap, 
                                            TBool& aIsSidProtected,
                                            const std::string& aDerivedPath)
--- a/secureswitools/swisistools/source/rscparser/apsecutils.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/apsecutils.h	Fri Jun 11 13:45:18 2010 +0300
@@ -33,7 +33,7 @@
 class CApaSecurityUtils
     {
 public:
-    static TInt CheckAppSecurity( const Ptr16 aAppFilename, 
+    static TInt CheckAppSecurity( const Ptr16& aAppFilename, 
                                            TBool& aHasWriteDeviceDataCap, 
                                            TBool& aIsSidProtected,
                                            const std::string& aDerivedPath);
--- a/secureswitools/swisistools/source/scrtool/data/create_db.xml	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/scrtool/data/create_db.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -9,7 +9,7 @@
 	<SQLQuery>CREATE TABLE SoftwareTypeNames(NameId INTEGER PRIMARY KEY NOT NULL,SoftwareTypeId INTEGER NOT NULL,Locale INTEGER DEFAULT 0,Name TEXT NOT NULL);</SQLQuery>
 	<SQLQuery>CREATE INDEX idx_SoftwareTypeNames_SoftwareTypeId ON SoftwareTypeNames(SoftwareTypeId);</SQLQuery>
 	<SQLQuery>CREATE INDEX idx_SoftwareTypeNames_Name ON SoftwareTypeNames(Name);</SQLQuery>
-	<SQLQuery>CREATE TABLE SoftwareTypes(SoftwareTypeId INTEGER PRIMARY KEY NOT NULL,SifPluginUid INTEGER,LauncherExecutable TEXT);</SQLQuery>
+	<SQLQuery>CREATE TABLE SoftwareTypes(SoftwareTypeId INTEGER PRIMARY KEY NOT NULL,SifPluginUid INTEGER,LauncherExecutable TEXT DEFAULT '');</SQLQuery>
 	<SQLQuery>CREATE TABLE CustomAccessList(AccessId INTEGER PRIMARY KEY AUTOINCREMENT,SoftwareTypeId INTEGER NOT NULL,SecureId INTEGER NOT NULL,AccessMode INTEGER DEFAULT 0);</SQLQuery>
 	<SQLQuery>CREATE TABLE MimeTypes(MimeTypeId INTEGER PRIMARY KEY NOT NULL,SoftwareTypeId INTEGER NOT NULL,MimeType TEXT NOT NULL UNIQUE COLLATE NOCASE);</SQLQuery>
 	<SQLQuery>CREATE INDEX idx_MimeTypes_SoftwareTypeId ON MimeTypes(SoftwareTypeId);</SQLQuery>
--- a/secureswitools/swisistools/source/signsis/openssllicense.h	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/signsis/openssllicense.h	Fri Jun 11 13:45:18 2010 +0300
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-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"
+// 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".
 //
--- a/secureswitools/swisistools/source/signsis/parameter.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/source/signsis/parameter.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -2,7 +2,7 @@
 * 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"
+* 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".
 *
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinFileOutputStream.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: BinFileOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(BINFILEOUTPUTSTREAM_HPP)
-#define BINFILEOUTPUTSTREAM_HPP
-
-#include <xercesc/framework/BinOutputStream.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLUTIL_EXPORT BinFileOutputStream : public BinOutputStream
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-
-    ~BinFileOutputStream();
-
-    BinFileOutputStream
-    (
-        const   XMLCh* const    fileName
-        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    BinFileOutputStream
-    (
-         const   char* const     fileName
-       , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    bool getIsOpen() const;
-    unsigned int getSize() const;
-    void reset();
-
-
-    // -----------------------------------------------------------------------
-    //  Implementation of the input stream interface
-    // -----------------------------------------------------------------------
-    virtual unsigned int curPos() const;
-
-    virtual void writeBytes
-    (
-          const XMLByte* const      toGo
-        , const unsigned int        maxToWrite
-    );
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    BinFileOutputStream(const BinFileOutputStream&);
-    BinFileOutputStream& operator=(const BinFileOutputStream&); 
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fSource
-    //      The source file that we represent. The FileHandle type is defined
-    //      per platform.
-    // -----------------------------------------------------------------------
-    FileHandle              fSource;
-    MemoryManager* const    fMemoryManager;
-};
-
-
-// ---------------------------------------------------------------------------
-//  BinFileOutputStream: Getter methods
-// ---------------------------------------------------------------------------
-inline bool BinFileOutputStream::getIsOpen() const
-{
-    return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinMemOutputStream.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: BinMemOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#ifndef BINMEMOUTPUTSTREAM_HEADER_GUARD_
-#define BINMEMOUTPUTSTREAM_HEADER_GUARD_
-
-#include <xercesc/framework/BinOutputStream.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLUTIL_EXPORT BinMemOutputStream : public BinOutputStream 
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-
-    ~BinMemOutputStream();
-
-    BinMemOutputStream
-    (
-         int                     initCapacity = 1023
-       , MemoryManager* const    manager      = XMLPlatformUtils::fgMemoryManager
-    );
-
-    // -----------------------------------------------------------------------
-    //  Implementation of the output stream interface
-    // -----------------------------------------------------------------------
-    virtual unsigned int curPos() const;
-
-    virtual void writeBytes
-    (
-      const XMLByte*     const      toGo
-    , const unsigned int            maxToWrite
-    ) ;
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    const XMLByte* getRawBuffer() const;
-
-    unsigned int getSize() const;
-    void reset();
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented methods.
-    // -----------------------------------------------------------------------
-    BinMemOutputStream(const BinMemOutputStream&);
-    BinMemOutputStream& operator=(const BinMemOutputStream&);
-
-    // -----------------------------------------------------------------------
-    //  Private helpers
-    // -----------------------------------------------------------------------
-    void insureCapacity(const unsigned int extraNeeded);
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fDataBuf
-    //      The pointer to the buffer data. Its grown as needed. Its always
-    //      one larger than fCapacity, to leave room for the null terminator.
-    //
-    //  fIndex
-    //      The current index into the buffer, as characters are appended
-    //      to it. If its zero, then the buffer is empty.
-    //
-    //  fCapacity
-    //      The current capacity of the buffer. Its actually always one
-    //      larger, to leave room for the null terminator.
-    //
-    // -----------------------------------------------------------------------
-    MemoryManager*  fMemoryManager;
-    XMLByte*        fDataBuf;
-    unsigned int    fIndex;
-    unsigned int    fCapacity;
-
-};
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
-
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/CharTypeTables.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: CharTypeTables.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(CHARTYPETABLES_HPP)
-#define CHARTYPETABLES_HPP
-
-#include <xercesc/util/XercesDefs.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-// ---------------------------------------------------------------------------
-//  These are character type lookup tables. They are included into XMLReader
-//  but are in their own private header in order to keep from making that
-//  file unreadable.
-//
-//  THE RANGES and SINGLES MUST BE IN NUMERICAL ORDER, because the lookup
-//  method will use this info to short circuit the search!
-// ---------------------------------------------------------------------------
-static const XMLCh gBaseChars[] =
-{
-    // Ranges
-        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
-    ,   0x00F8, 0x00FF
-    ,   0x0100, 0x0131, 0x0134, 0x013E, 0x0141, 0x0148, 0x014A, 0x017E
-    ,   0x0180, 0x01C3, 0x01CD, 0x01F0, 0x01F4, 0x01F5, 0x01FA, 0x0217
-    ,   0x0250, 0x02A8, 0x02BB, 0x02C1, 0x0388, 0x038A, 0x038E, 0x03A1
-    ,   0x03A3, 0x03CE, 0x03D0, 0x03D6, 0x03E2, 0x03F3, 0x0401, 0x040C
-    ,   0x040E, 0x044F, 0x0451, 0x045C, 0x045E, 0x0481, 0x0490, 0x04C4
-    ,   0x04C7, 0x04C8, 0x04CB, 0x04CC, 0x04D0, 0x04EB, 0x04EE, 0x04F5
-    ,   0x04F8, 0x04F9, 0x0531, 0x0556, 0x0561, 0x0586, 0x05D0, 0x05EA
-    ,   0x05F0, 0x05F2, 0x0621, 0x063A, 0x0641, 0x064A, 0x0671, 0x06B7
-    ,   0x06BA, 0x06BE, 0x06C0, 0x06CE, 0x06D0, 0x06D3, 0x06E5, 0x06E6
-    ,   0x0905, 0x0939, 0x0958, 0x0961, 0x0985, 0x098C, 0x098F, 0x0990
-    ,   0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B6, 0x09B9, 0x09DC, 0x09DD
-    ,   0x09DF, 0x09E1, 0x09F0, 0x09F1, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10
-    ,   0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36
-    ,   0x0A38, 0x0A39, 0x0A59, 0x0A5C, 0x0A72, 0x0A74, 0x0A85, 0x0A8B
-    ,   0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3
-    ,   0x0AB5, 0x0AB9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28
-    ,   0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B36, 0x0B39, 0x0B5C, 0x0B5D
-    ,   0x0B5F, 0x0B61, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95
-    ,   0x0B99, 0x0B9A, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA
-    ,   0x0BAE, 0x0BB5, 0x0BB7, 0x0BB9, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10
-    ,   0x0C12, 0x0C28, 0x0C2A, 0x0C33, 0x0C35, 0x0C39, 0x0C60, 0x0C61
-    ,   0x0C85, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3
-    ,   0x0CB5, 0x0CB9, 0x0CE0, 0x0CE1, 0x0D05, 0x0D0C, 0x0D0E, 0x0D10
-    ,   0x0D12, 0x0D28, 0x0D2A, 0x0D39, 0x0D60, 0x0D61, 0x0E01, 0x0E2E
-    ,   0x0E32, 0x0E33, 0x0E40, 0x0E45, 0x0E81, 0x0E82, 0x0E87, 0x0E88
-    ,   0x0E94, 0x0E97, 0x0E99, 0x0E9F, 0x0EA1, 0x0EA3, 0x0EAA, 0x0EAB
-    ,   0x0EAD, 0x0EAE, 0x0EB2, 0x0EB3, 0x0EC0, 0x0EC4, 0x0F40, 0x0F47
-    ,   0x0F49, 0x0F69, 0x10A0, 0x10C5, 0x10D0, 0x10F6, 0x1102, 0x1103
-    ,   0x1105, 0x1107, 0x110B, 0x110C, 0x110E, 0x1112, 0x1154, 0x1155
-    ,   0x115F, 0x1161, 0x116D, 0x116E, 0x1172, 0x1173, 0x11AE, 0x11AF
-    ,   0x11B7, 0x11B8, 0x11BC, 0x11C2, 0x1E00, 0x1E9B, 0x1EA0, 0x1EF9
-    ,   0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D
-    ,   0x1F50, 0x1F57, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC
-    ,   0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB
-    ,   0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x212A, 0x212B
-    ,   0x2180, 0x2182, 0x3041, 0x3094, 0x30A1, 0x30FA, 0x3105, 0x312C
-    ,   0xAC00, 0xD7A3
-    ,   0x00
-
-    // Singles
-    ,   0x0386, 0x038C, 0x03DA, 0x03DC, 0x03DE, 0x03E0, 0x0559, 0x06D5
-    ,   0x093D, 0x09B2, 0x0A5E, 0x0A8D, 0x0ABD, 0x0AE0, 0x0B3D, 0x0B9C
-    ,   0x0CDE, 0x0E30, 0x0E84, 0x0E8A, 0x0E8D, 0x0EA5, 0x0EA7, 0x0EB0
-    ,   0x0EBD, 0x1100, 0x1109, 0x113C, 0x113E, 0x1140, 0x114C, 0x114E
-    ,   0x1150, 0x1159, 0x1163, 0x1165, 0x1167, 0x1169, 0x1175, 0x119E
-    ,   0x11A8, 0x11AB, 0x11BA, 0x11EB, 0x11F0, 0x11F9, 0x1F59, 0x1F5B
-    ,   0x1F5D, 0x1FBE, 0x2126, 0x212E
-    ,   0x00
-};
-
-
-static const XMLCh gCombiningChars[] =
-{
-    // Ranges
-        0x0300, 0x0345, 0x0360, 0x0361, 0x0483, 0x0486, 0x0591, 0x05A1
-    ,   0x05A3, 0x05B9, 0x05BB, 0x05BD, 0x05C1, 0x05C2, 0x064B, 0x0652
-    ,   0x06D6, 0x06DC, 0x06DD, 0x06DF, 0x06E0, 0x06E4
-    ,   0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0901, 0x0903, 0x093E, 0x094C
-    ,   0x0951, 0x0954, 0x0962, 0x0963, 0x0981, 0x0983, 0x09C0, 0x09C4
-    ,   0x09C7, 0x09C8, 0x09CB, 0x09CD, 0x09E2, 0x09E3, 0x0A40, 0x0A42
-    ,   0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A70, 0x0A71, 0x0A81, 0x0A83
-    ,   0x0ABE, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0B01, 0x0B03
-    ,   0x0B3E, 0x0B43, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, 0x0B56, 0x0B57
-    ,   0x0B82, 0x0B83, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD
-    ,   0x0C01, 0x0C03, 0x0C3E, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D
-    ,   0x0C55, 0x0C56, 0x0C82, 0x0C83, 0x0CBE, 0x0CC4, 0x0CC6, 0x0CC8
-    ,   0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0D02, 0x0D03, 0x0D3E, 0x0D43
-    ,   0x0D46, 0x0D48, 0x0D4A, 0x0D4D, 0x0E34, 0x0E3A, 0x0E47, 0x0E4E
-    ,   0x0EB4, 0x0EB9, 0x0EBB, 0x0EBC, 0x0EC8, 0x0ECD, 0x0F18, 0x0F19
-    ,   0x0F71, 0x0F84, 0x0F86, 0x0F8B, 0x0F90, 0x0F95, 0x0F99, 0x0FAD
-    ,   0x0FB1, 0x0FB7, 0x20D0, 0x20DC, 0x302A, 0x302F
-    ,   0x00
-
-    // Singles
-    ,   0x05BF, 0x05C4, 0x0670
-    ,   0x093C, 0x094D, 0x09BC, 0x09BE, 0x09BF, 0x09D7, 0x0A02
-    ,   0x0A3C, 0x0A3E, 0x0A3F, 0x0ABC, 0x0B3C, 0x0BD7, 0x0D57, 0x0E31
-    ,   0x0EB1, 0x0F35, 0x0F37, 0x0F39, 0x0F3E, 0x0F3F, 0x0F97, 0x0FB9
-    ,   0x20E1, 0x3099, 0x309A
-    ,   0x00
-};
-
-
-static const XMLCh gDigitChars[] =
-{
-    // Ranges
-        0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x0966, 0x096F
-    ,   0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, 0x0B66, 0x0B6F
-    ,   0x0BE7, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, 0x0D66, 0x0D6F
-    ,   0x0E50, 0x0E59, 0x0ED0, 0x0ED9, 0x0F20, 0x0F29
-    ,   0x00
-
-    // Singles
-    ,   0x00
-};
-
-
-static const XMLCh gIdeographicChars[] =
-{
-    // Ranges
-        0x3021, 0x3029, 0x4E00, 0x9FA5
-    ,   0x00
-
-    // Singles
-    ,   0x3007
-    ,   0x00
-};
-
-static const XMLCh gExtenderChars[] =
-{
-    // Ranges
-        0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE
-    ,   0x00
-
-    // Singles
-    ,   0x00B7, 0x02D0, 0x02D1, 0x0387, 0x0640, 0x0E46, 0x0EC6, 0x3005
-    ,   0x00
-};
-
-
-static const XMLCh gPublicIdChars[] =
-{
-    // Ranges
-        0x0023, 0x0025, 0x0027, 0x003B, 0x003F, 0x005A, 0x0061, 0x007A
-    ,   0x00
-
-    // Singles
-    ,   0x000A, 0x000D, 0x0020, 0x0021, 0x003D, 0x005F
-    ,   0x00
-};
-
-
-static const XMLCh gWhitespaceChars[] =
-{
-    // Ranges
-        0x00
-
-    ,   0x0020, 0x0009, 0x000D, 0x000A
-    ,   0x00
-};
-
-
-static const XMLCh gXMLChars[] =
-{
-    // Ranges
-        0x0020, 0xD7FF, 0xE000, 0xFFFD
-    ,   0x00
-
-    ,   0x0009, 0x000D, 0x000A
-    ,   0x00
-};
-
-// The following are for XML 1.1
-static const XMLCh gWhitespaceChars1_1[] =
-{
-    // Ranges
-        0x00
-
-    ,   0x0020, 0x0009, 0x000D, 0x000A, 0x0085, 0x2028
-    ,   0x00
-};
-
-static const XMLCh gFirstNameChars1_1[] =
-{
-    // Ranges
-    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
-        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
-    ,   0x00F8, 0x02FF, 0x0370, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
-    ,   0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF, 0xF900, 0xFDCF
-    ,   0xFDF0, 0xFFFD
-    ,   0x00
-
-    ,   0x003A, 0x005F
-    ,   0x00
-
-};
-
-static const XMLCh gNameChars1_1[] =
-{
-    // Ranges
-    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
-        0x0030, 0x0039, 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6
-    ,   0x00D8, 0x00F6, 0x00F8, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
-    ,   0x203F, 0x2040, 0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF
-    ,   0xF900, 0xFDCF, 0xFDF0, 0xFFFD
-    ,   0x00
-
-    ,   0x002D, 0x002E, 0x003A, 0x005F, 0x00B7
-    ,   0x00
-};
-
-static const XMLCh gXMLChars1_1[] =
-{
-    // Ranges
-        0x0020, 0x007E, 0x00A0, 0xD7FF, 0xE000, 0xFFFD
-    ,   0x00
-
-    ,   0x0009, 0x000D, 0x000A, 0x0085
-    ,   0x00
-};
-
-static const XMLCh gControl_Chars1_1[] =
-{
-    // Ranges
-        0x0001, 0x001F, 0x007F, 0x009F
-    ,   0x00
-
-    ,   0x00
-};
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/DGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: DGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(DGXMLSCANNER_HPP)
-#define DGXMLSCANNER_HPP
-
-#include <xercesc/internal/XMLScanner.hpp>
-#include <xercesc/util/ValueVectorOf.hpp>
-#include <xercesc/util/NameIdPool.hpp>
-#include <xercesc/validators/common/Grammar.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class DTDElementDecl;
-class DTDGrammar;
-class DTDValidator;
-
-//  This is an integrated scanner class, which does DTD/XML Schema grammar
-//  processing.
-class XMLPARSER_EXPORT DGXMLScanner : public XMLScanner
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    DGXMLScanner
-    (
-          XMLValidator* const  valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-    DGXMLScanner
-    (
-          XMLDocumentHandler* const docHandler
-        , DocTypeHandler* const     docTypeHandler
-        , XMLEntityHandler* const   entityHandler
-        , XMLErrorReporter* const   errReporter
-        , XMLValidator* const       valToAdopt
-        , GrammarResolver* const    grammarResolver
-        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
-    );
-    virtual ~DGXMLScanner();
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner public virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const;
-    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
-    virtual unsigned int resolveQName
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        ,       int&                prefixColonPos
-    );
-    virtual void scanDocument
-    (
-        const   InputSource&    src
-    );
-    virtual bool scanNext(XMLPScanToken& toFill);
-    virtual Grammar* loadGrammar
-    (
-        const   InputSource&    src
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-
-    virtual Grammar::GrammarType getCurrentGrammarType() const;
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    DGXMLScanner();
-    DGXMLScanner(const DGXMLScanner&);
-    DGXMLScanner& operator=(const DGXMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanCDSection();
-    virtual void scanCharData(XMLBuffer& toToUse);
-    virtual EntityExpRes scanEntityRef
-    (
-        const   bool    inAttVal
-        ,       XMLCh&  firstCh
-        ,       XMLCh&  secondCh
-        ,       bool&   escaped
-    );
-    virtual void scanDocTypeDecl();
-    virtual void scanReset(const InputSource& src);
-    virtual void sendCharData(XMLBuffer& toSend);
-    virtual InputSource* resolveSystemId(const XMLCh* const sysId
-                                        ,const XMLCh* const pubId); 
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void commonInit();
-    void cleanUp();
-
-    unsigned int buildAttList
-    (
-        const unsigned int                attCount
-        ,       XMLElementDecl*             elemDecl
-        ,       RefVectorOf<XMLAttr>&       toFill
-    );
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        , const ElemStack::MapModes mode
-    );
-    void updateNSMap
-    (
-        const   XMLCh* const attrPrefix
-        , const XMLCh* const attrLocalName
-        , const XMLCh* const attrValue
-    );
-    void scanAttrListforNameSpaces(RefVectorOf<XMLAttr>* theAttrList, int attCount, XMLElementDecl* elemDecl);
-
-    // -----------------------------------------------------------------------
-    //  Private scanning methods
-    // -----------------------------------------------------------------------
-    bool scanAttValue
-    (
-        const   XMLAttDef* const    attDef
-        , const XMLCh *const        attrName
-        ,       XMLBuffer&          toFill
-    );
-    bool scanContent();
-    void scanEndTag(bool& gotData);
-    bool scanStartTag(bool& gotData);
-    bool scanStartTagNS(bool& gotData);
-
-    // -----------------------------------------------------------------------
-    //  Grammar preparsing methods
-    // -----------------------------------------------------------------------
-    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fRawAttrList
-    //      During the initial scan of the attributes we can only do a raw
-    //      scan for key/value pairs. So this vector is used to store them
-    //      until they can be processed (and put into fAttrList.)
-    //
-    //  fDTDValidator
-    //      The DTD validator instance.
-    //
-    //  fElemState
-    //  fElemStateSize
-    //      Stores an element next state from DFA content model - used for
-    //      wildcard validation
-    //
-    // fDTDElemNonDeclPool
-    //     registry of "faulted-in" DTD element decls
-    // fElemCount
-    //      count of the number of start tags seen so far (starts at 1).
-    //      Used for duplicate attribute detection/processing of required/defaulted attributes
-    // fAttDefRegistry
-    //      mapping from XMLAttDef instances to the count of the last
-    //      start tag where they were utilized.
-    // fUndeclaredAttrRegistry
-    //      mapping of attr QNames to the count of the last start tag in which they occurred
-    //
-    // -----------------------------------------------------------------------
-    ValueVectorOf<XMLAttr*>*    fAttrNSList;
-    DTDValidator*               fDTDValidator;
-    DTDGrammar*                 fDTDGrammar;
-    NameIdPool<DTDElementDecl>* fDTDElemNonDeclPool;
-    unsigned int                fElemCount;
-    RefHashTableOf<unsigned int>* fAttDefRegistry;
-    RefHashTableOf<unsigned int>* fUndeclaredAttrRegistry;
-};
-
-inline const XMLCh* DGXMLScanner::getName() const
-{
-    return XMLUni::fgDGXMLScanner;
-}
-
-inline Grammar::GrammarType DGXMLScanner::getCurrentGrammarType() const
-{
-    return Grammar::DTDGrammarType;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ElemStack.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,587 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: ElemStack.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(ELEMSTACK_HPP)
-#define ELEMSTACK_HPP
-
-#include <xercesc/util/StringPool.hpp>
-#include <xercesc/util/QName.hpp>
-#include <xercesc/util/ValueVectorOf.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLElementDecl;
-class Grammar;
-
-struct PrefMapElem : public XMemory
-{
-    unsigned int        fPrefId;
-    unsigned int        fURIId;
-};
-
-//
-//  During the scan of content, we have to keep up with the nesting of
-//  elements (for validation and wellformedness purposes) and we have to
-//  have places to remember namespace (prefix to URI) mappings.
-//
-//  We only have to keep a stack of the current path down through the tree
-//  that we are currently scanning, and keep track of any children of any
-//  elements along that path.
-//
-//  So, this data structure is a stack, which represents the current path
-//  through the tree that we've worked our way down to. For each node in
-//  the stack, there is an array of element ids that represent the ids of
-//  the child elements scanned so far. Upon exit from that element, its
-//  array of child elements is validated.
-//
-//  Since we have the actual XMLElementDecl in the stack nodes, when its time
-//  to validate, we just extract the content model from that element decl
-//  and validate. All the required data falls easily to hand. Note that we
-//  actually have some derivative of XMLElementDecl, which is specific to
-//  the validator used, but the abstract API is sufficient for the needs of
-//  the scanner.
-//
-//  Since the namespace support also requires the storage of information on
-//  a nested element basis, this structure also holds the namespace info. For
-//  each level, the prefixes defined at that level (and the namespaces that
-//  they map to) are stored.
-//
-class XMLPARSER_EXPORT ElemStack : public XMemory
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Class specific data types
-    //
-    //  These really should be private, but some of the compilers we have to
-    //  support are too dumb to deal with that.
-    //
-    //  PrefMapElem
-    //      fURIId is the id of the URI from the validator's URI map. The
-    //      fPrefId is the id of the prefix from our own prefix pool. The
-    //      namespace stack consists of these elements.
-    //
-    //  StackElem
-    //      fThisElement is the basic element decl for the current element.
-    //      The fRowCapacity is how large fChildIds has grown so far.
-    //      fChildCount is how many of them are valid right now.
-    //
-    //      The fMapCapacity is how large fMap has grown so far. fMapCount
-    //      is how many of them are valid right now.
-    //
-    //      Note that we store the reader number we were in when we found the
-    //      start tag. We'll use this at the end tag to test for unbalanced
-    //      markup in entities.
-    //
-    //  MapModes
-    //      When a prefix is mapped to a namespace id, it matters whether the
-    //      QName being mapped is an attribute or name. Attributes are not
-    //      affected by an sibling xmlns attributes, whereas elements are
-    //      affected by its own xmlns attributes.
-    // -----------------------------------------------------------------------
-    struct StackElem : public XMemory
-    {
-        XMLElementDecl*     fThisElement;
-        unsigned int        fReaderNum;
-
-        unsigned int        fChildCapacity;
-        unsigned int        fChildCount;
-        QName**             fChildren;
-
-        PrefMapElem*        fMap;
-        unsigned int        fMapCapacity;
-        unsigned int        fMapCount;
-
-        bool                fValidationFlag;
-        bool                fCommentOrPISeen;
-        bool                fReferenceEscaped;
-        int                 fCurrentScope;
-        Grammar*            fCurrentGrammar;
-        unsigned int        fCurrentURI;
-        XMLCh *             fSchemaElemName;
-        unsigned int        fSchemaElemNameMaxLen;
-        
-        int                 fPrefixColonPos;
-    };
-
-    enum MapModes
-    {
-        Mode_Attribute
-        , Mode_Element
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    ElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-    ~ElemStack();
-
-
-    // -----------------------------------------------------------------------
-    //  Stack access
-    // -----------------------------------------------------------------------
-    unsigned int addLevel();
-    unsigned int addLevel(XMLElementDecl* const toSet, const unsigned int readerNum);
-    const StackElem* popTop();
-
-
-    // -----------------------------------------------------------------------
-    //  Stack top access
-    // -----------------------------------------------------------------------
-    unsigned int addChild(QName* const child, const bool toParent);
-    const StackElem* topElement() const;
-    void setElement(XMLElementDecl* const toSet, const unsigned int readerNum);
-
-    void setValidationFlag(bool validationFlag);
-    bool getValidationFlag();
-
-    inline void setCommentOrPISeen();
-    inline bool getCommentOrPISeen() const;
-
-    inline void setReferenceEscaped();
-    inline bool getReferenceEscaped() const;
-
-    void setCurrentScope(int currentScope);
-    int getCurrentScope();
-
-    void setCurrentGrammar(Grammar* currentGrammar);
-    Grammar* getCurrentGrammar();
-
-    void setCurrentURI(unsigned int uri);
-    unsigned int getCurrentURI();
-
-    inline void setCurrentSchemaElemName(const XMLCh * const schemaElemName);
-    inline XMLCh *getCurrentSchemaElemName();
-
-    void setPrefixColonPos(int colonPos);
-    int getPrefixColonPos() const;
-
-    // -----------------------------------------------------------------------
-    //  Prefix map methods
-    // -----------------------------------------------------------------------
-    void addPrefix
-    (
-        const   XMLCh* const    prefixToAdd
-        , const unsigned int    uriId
-    );
-    unsigned int mapPrefixToURI
-    (
-        const   XMLCh* const    prefixToMap
-        , const MapModes        mode
-        ,       bool&           unknown
-    )   const;
-    ValueVectorOf<PrefMapElem*>* getNamespaceMap() const;
-    unsigned int getPrefixId(const XMLCh* const prefix) const;
-    const XMLCh* getPrefixForId(unsigned int prefId) const;
-
-    // -----------------------------------------------------------------------
-    //  Miscellaneous methods
-    // -----------------------------------------------------------------------
-    bool isEmpty() const;
-    void reset
-    (
-        const   unsigned int    emptyId
-        , const unsigned int    unknownId
-        , const unsigned int    xmlId
-        , const unsigned int    xmlNSId
-    );
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    ElemStack(const ElemStack&);
-    ElemStack& operator=(const ElemStack&);
-
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void expandMap(StackElem* const toExpand);
-    void expandStack();
-
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fEmptyNamespaceId
-    //      This is the special URI id for the "" namespace, which is magic
-    //      because of the xmlns="" operation.
-    //
-    //  fGlobalPoolId
-    //      This is a special URI id that is returned when the namespace
-    //      prefix is "" and no one has explicitly mapped that prefix to an
-    //      explicit URI (or when they explicitly clear any such mapping,
-    //      which they can also do.) And also its prefix pool id, which is
-    //      stored here for fast access.
-    //
-    //  fPrefixPool
-    //      This is the prefix pool where prefixes are hashed and given unique
-    //      ids. These ids are used to track prefixes in the element stack.
-    //
-    //  fStack
-    //  fStackCapacity
-    //  fStackTop
-    //      This the stack array. Its an array of pointers to StackElem
-    //      structures. The capacity is the current high water mark of the
-    //      stack. The top is the current top of stack (i.e. the part of it
-    //      being used.)
-    //
-    //  fUnknownNamespaceId
-    //      This is the URI id for the special URI that is assigned to any
-    //      prefix which has not been mapped. This lets us keep going after
-    //      issuing the error.
-    //
-    //  fXMLNamespaceId
-    //  fXMLPoolId
-    //  fXMLNSNamespaceId
-    //  fXMLNSPoolId
-    //      These are the URI ids for the special URIs that are assigned to
-    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
-    //      which is stored here for fast access.
-    // -----------------------------------------------------------------------
-    unsigned int                 fEmptyNamespaceId;
-    unsigned int                 fGlobalPoolId;
-    XMLStringPool                fPrefixPool;
-    StackElem**                  fStack;
-    unsigned int                 fStackCapacity;
-    unsigned int                 fStackTop;
-    unsigned int                 fUnknownNamespaceId;
-    unsigned int                 fXMLNamespaceId;
-    unsigned int                 fXMLPoolId;
-    unsigned int                 fXMLNSNamespaceId;
-    unsigned int                 fXMLNSPoolId;
-    ValueVectorOf<PrefMapElem*>* fNamespaceMap;
-    MemoryManager*               fMemoryManager;
-};
-
-
-class XMLPARSER_EXPORT WFElemStack : public XMemory
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Class specific data types
-    //
-    //  These really should be private, but some of the compilers we have to
-    //  support are too dumb to deal with that.
-    //
-    //  PrefMapElem
-    //      fURIId is the id of the URI from the validator's URI map. The
-    //      fPrefId is the id of the prefix from our own prefix pool. The
-    //      namespace stack consists of these elements.
-    //
-    //  StackElem
-    //      fThisElement is the basic element decl for the current element.
-    //      The fRowCapacity is how large fChildIds has grown so far.
-    //      fChildCount is how many of them are valid right now.
-    //
-    //      The fMapCapacity is how large fMap has grown so far. fMapCount
-    //      is how many of them are valid right now.
-    //
-    //      Note that we store the reader number we were in when we found the
-    //      start tag. We'll use this at the end tag to test for unbalanced
-    //      markup in entities.
-    //
-    //  MapModes
-    //      When a prefix is mapped to a namespace id, it matters whether the
-    //      QName being mapped is an attribute or name. Attributes are not
-    //      affected by an sibling xmlns attributes, whereas elements are
-    //      affected by its own xmlns attributes.
-    // -----------------------------------------------------------------------
-    struct StackElem : public XMemory
-    {
-        int                 fTopPrefix;        
-        unsigned int        fCurrentURI;
-        unsigned int        fReaderNum;
-        unsigned int        fElemMaxLength;
-        XMLCh*              fThisElement;
-    };
-
-    enum MapModes
-    {
-        Mode_Attribute
-        , Mode_Element
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    WFElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-    ~WFElemStack();
-
-
-    // -----------------------------------------------------------------------
-    //  Stack access
-    // -----------------------------------------------------------------------
-    unsigned int addLevel();
-    unsigned int addLevel(const XMLCh* const toSet, const unsigned int toSetLen,
-                          const unsigned int readerNum);
-    const StackElem* popTop();
-
-
-    // -----------------------------------------------------------------------
-    //  Stack top access
-    // -----------------------------------------------------------------------
-    const StackElem* topElement() const;
-    void setElement(const XMLCh* const toSet, const unsigned int toSetLen,
-                    const unsigned int readerNum);
-
-    void setCurrentURI(unsigned int uri);
-    unsigned int getCurrentURI();
-
-    // -----------------------------------------------------------------------
-    //  Prefix map methods
-    // -----------------------------------------------------------------------
-    void addPrefix
-    (
-        const   XMLCh* const    prefixToAdd
-        , const unsigned int    uriId
-    );
-    unsigned int mapPrefixToURI
-    (
-        const   XMLCh* const    prefixToMap
-        , const MapModes        mode
-        ,       bool&           unknown
-    )   const;
-
-
-    // -----------------------------------------------------------------------
-    //  Miscellaneous methods
-    // -----------------------------------------------------------------------
-    bool isEmpty() const;
-    void reset
-    (
-        const   unsigned int    emptyId
-        , const unsigned int    unknownId
-        , const unsigned int    xmlId
-        , const unsigned int    xmlNSId
-    );
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    WFElemStack(const WFElemStack&);
-    WFElemStack& operator=(const WFElemStack&);
-
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void expandMap();
-    void expandStack();
-
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fEmptyNamespaceId
-    //      This is the special URI id for the "" namespace, which is magic
-    //      because of the xmlns="" operation.
-    //
-    //  fGlobalPoolId
-    //      This is a special URI id that is returned when the namespace
-    //      prefix is "" and no one has explicitly mapped that prefix to an
-    //      explicit URI (or when they explicitly clear any such mapping,
-    //      which they can also do.) And also its prefix pool id, which is
-    //      stored here for fast access.
-    //
-    //  fPrefixPool
-    //      This is the prefix pool where prefixes are hashed and given unique
-    //      ids. These ids are used to track prefixes in the element stack.
-    //
-    //  fStack
-    //  fStackCapacity
-    //  fStackTop
-    //      This the stack array. Its an array of pointers to StackElem
-    //      structures. The capacity is the current high water mark of the
-    //      stack. The top is the current top of stack (i.e. the part of it
-    //      being used.)
-    //
-    //  fUnknownNamespaceId
-    //      This is the URI id for the special URI that is assigned to any
-    //      prefix which has not been mapped. This lets us keep going after
-    //      issuing the error.
-    //
-    //  fXMLNamespaceId
-    //  fXMLPoolId
-    //  fXMLNSNamespaceId
-    //  fXMLNSPoolId
-    //      These are the URI ids for the special URIs that are assigned to
-    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
-    //      which is stored here for fast access.
-    // -----------------------------------------------------------------------
-    unsigned int    fEmptyNamespaceId;
-    unsigned int    fGlobalPoolId;
-    unsigned int    fStackCapacity;
-    unsigned int    fStackTop;
-    unsigned int    fUnknownNamespaceId;
-    unsigned int    fXMLNamespaceId;
-    unsigned int    fXMLPoolId;
-    unsigned int    fXMLNSNamespaceId;
-    unsigned int    fXMLNSPoolId;
-    unsigned int    fMapCapacity;
-    PrefMapElem*    fMap;
-    StackElem**     fStack;
-    XMLStringPool   fPrefixPool;
-    MemoryManager*  fMemoryManager;
-};
-
-
-// ---------------------------------------------------------------------------
-//  ElemStack: Miscellaneous methods
-// ---------------------------------------------------------------------------
-inline bool ElemStack::isEmpty() const
-{
-    return (fStackTop == 0);
-}
-
-inline bool ElemStack::getValidationFlag()
-{
-    return fStack[fStackTop-1]->fValidationFlag;
-}
-
-inline void ElemStack::setValidationFlag(bool validationFlag)
-{
-    fStack[fStackTop-1]->fValidationFlag = validationFlag;
-    return;
-}
-
-inline bool ElemStack::getCommentOrPISeen() const
-{
-    return fStack[fStackTop-1]->fCommentOrPISeen;
-}
-
-inline void ElemStack::setCommentOrPISeen()
-{
-    fStack[fStackTop-1]->fCommentOrPISeen = true;
-    return;
-}
-
-inline bool ElemStack::getReferenceEscaped() const
-{
-    return fStack[fStackTop-1]->fReferenceEscaped;
-}
-
-inline void ElemStack::setReferenceEscaped()
-{
-    fStack[fStackTop-1]->fReferenceEscaped = true;
-    return;
-}
-
-inline void ElemStack::setCurrentSchemaElemName(const XMLCh * const schemaElemName)
-{
-    unsigned int schemaElemNameLen = XMLString::stringLen(schemaElemName);
-    unsigned int stackPos = fStackTop-1;
-    
-    if(fStack[stackPos]->fSchemaElemNameMaxLen <= schemaElemNameLen)
-    {
-        XMLCh *tempStr = fStack[stackPos]->fSchemaElemName;
-        fStack[stackPos]->fSchemaElemNameMaxLen = schemaElemNameLen << 1;
-        fStack[stackPos]->fSchemaElemName = (XMLCh *)fMemoryManager->allocate((fStack[stackPos]->fSchemaElemNameMaxLen)*sizeof(XMLCh));
-        fMemoryManager->deallocate(tempStr);
-    }
-    XMLString::copyString(fStack[stackPos]->fSchemaElemName, schemaElemName);
-}
-
-inline XMLCh *ElemStack::getCurrentSchemaElemName()
-{
-    return fStack[fStackTop-1]->fSchemaElemName;
-}
-
-inline int ElemStack::getCurrentScope()
-{
-    return fStack[fStackTop-1]->fCurrentScope;
-}
-
-inline void ElemStack::setCurrentScope(int currentScope)
-{
-    fStack[fStackTop-1]->fCurrentScope = currentScope;
-    return;
-}
-
-inline Grammar* ElemStack::getCurrentGrammar()
-{
-    return fStack[fStackTop-1]->fCurrentGrammar;
-}
-
-inline void ElemStack::setCurrentGrammar(Grammar* currentGrammar)
-{
-    fStack[fStackTop-1]->fCurrentGrammar = currentGrammar;
-    return;
-}
-
-inline unsigned int ElemStack::getCurrentURI()
-{
-    return fStack[fStackTop-1]->fCurrentURI;
-}
-
-inline void ElemStack::setCurrentURI(unsigned int uri)
-{
-    fStack[fStackTop-1]->fCurrentURI = uri;
-    return;
-}
-
-inline unsigned int ElemStack::getPrefixId(const XMLCh* const prefix) const
-{
-    return fPrefixPool.getId(prefix);
-}
-
-inline const XMLCh* ElemStack::getPrefixForId(unsigned int prefId) const
-{
-    return fPrefixPool.getValueForId(prefId);
-}
-
-inline void ElemStack::setPrefixColonPos(int colonPos)
-{
-    fStack[fStackTop-1]->fPrefixColonPos = colonPos;
-}
- 
-inline int ElemStack::getPrefixColonPos() const {
-    return fStack[fStackTop-1]->fPrefixColonPos;
-}
-
-// ---------------------------------------------------------------------------
-//  WFElemStack: Miscellaneous methods
-// ---------------------------------------------------------------------------
-inline bool WFElemStack::isEmpty() const
-{
-    return (fStackTop == 0);
-}
-
-inline unsigned int WFElemStack::getCurrentURI()
-{
-    return fStack[fStackTop-1]->fCurrentURI;
-}
-
-inline void WFElemStack::setCurrentURI(unsigned int uri)
-{
-    fStack[fStackTop-1]->fCurrentURI = uri;
-    return;
-}
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/EndOfEntityException.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: EndOfEntityException.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(ENDOFENTITYEXCEPTION_HPP)
-#define ENDOFENTITYEXCEPTION_HPP
-
-#include <xercesc/util/XercesDefs.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLEntityDecl;
-
-//
-//  This class is only used internally. Its thrown by the ReaderMgr class,
-//  when an entity ends, and is caught in the scanner. This tells the scanner
-//  that an entity has ended, and allows it to do the right thing according
-//  to what was going on when the entity ended.
-//
-//  Since its internal, it does not bother implementing XMLException.
-//
-class XMLPARSER_EXPORT EndOfEntityException
-{
-public:
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    EndOfEntityException(       XMLEntityDecl*  entityThatEnded
-                        , const unsigned int    readerNum) :
-
-        fEntity(entityThatEnded)
-        , fReaderNum(readerNum)
-    {
-    }
-
-    EndOfEntityException(const EndOfEntityException& toCopy) :
-
-        fEntity(toCopy.fEntity)
-        , fReaderNum(toCopy.fReaderNum)
-    {
-    }
-
-    ~EndOfEntityException()
-    {
-    }
-
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    XMLEntityDecl& getEntity();
-    const XMLEntityDecl& getEntity() const;
-    unsigned int getReaderNum() const;
-
-
-private :
-    // -----------------------------------------------------------------------
-    // Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    EndOfEntityException& operator = (const  EndOfEntityException&);
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fEntity
-    //      This is a reference to the entity that ended, causing this
-    //      exception.
-    //
-    //  fReaderNum
-    //      The unique reader number of the reader that was handling this
-    //      entity. This is used to know whether a particular entity has
-    //      ended.
-    // -----------------------------------------------------------------------
-    XMLEntityDecl*  fEntity;
-    unsigned int    fReaderNum;
-};
-
-
-// ---------------------------------------------------------------------------
-//  EndOfEntityException: Getter methods
-// ---------------------------------------------------------------------------
-inline XMLEntityDecl& EndOfEntityException::getEntity()
-{
-    return *fEntity;
-}
-
-inline const XMLEntityDecl& EndOfEntityException::getEntity() const
-{
-    return *fEntity;
-}
-
-inline unsigned int EndOfEntityException::getReaderNum() const
-{
-    return fReaderNum;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IANAEncodings.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,813 +0,0 @@
-#if !defined(IANAENCODINGS_HPP)
-#define IANAENCODINGS_HPP
-
-#include <xercesc/util/XercesDefs.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-// ----------------------------------------------------------------
-//  This file was generated from the IANA charset source.
-//  so do not edit this file directly!!
-// ----------------------------------------------------------------
-
-const XMLCh gEncodingArray[][46] =
-{
-    { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0036,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x00 }
-  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0039,0x0031,0x00 }
-  , { 0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0055,0x0053,0x00 }
-  , { 0x0055,0x0053,0x002D,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0075,0x0073,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0033,0x0036,0x0037,0x00 }
-  , { 0x0063,0x0070,0x0033,0x0036,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0054,0x0046,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0036,0x0034,0x0036,0x0055,0x0054,0x0046,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0062,0x0061,0x0073,0x0069,0x0063,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0072,0x0065,0x0066,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0062,0x0061,0x0073,0x0069,0x0063,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x00 }
-  , { 0x0069,0x0072,0x0076,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0049,0x006E,0x0074,0x006C,0x0052,0x0065,0x0066,0x0056,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x00 }
-  , { 0x0042,0x0053,0x005F,0x0034,0x0037,0x0033,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0047,0x0042,0x00 }
-  , { 0x0067,0x0062,0x00 }
-  , { 0x0075,0x006B,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0055,0x006E,0x0069,0x0074,0x0065,0x0064,0x004B,0x0069,0x006E,0x0067,0x0064,0x006F,0x006D,0x00 }
-  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x00 }
-  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x002D,0x0041,0x0044,0x0044,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x0041,0x0044,0x0044,0x00 }
-  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x00 }
-  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x002D,0x0041,0x0044,0x0044,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x0041,0x0044,0x0044,0x00 }
-  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0042,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x00 }
-  , { 0x0046,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x00 }
-  , { 0x0073,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x00 }
-  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0043,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x0032,0x00 }
-  , { 0x0073,0x0065,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x0046,0x006F,0x0072,0x004E,0x0061,0x006D,0x0065,0x0073,0x00 }
-  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0039,0x00 }
-  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0039,0x00 }
-  , { 0x004B,0x0053,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x00 }
-  , { 0x006B,0x006F,0x0072,0x0065,0x0061,0x006E,0x00 }
-  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0030,0x0031,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004B,0x0052,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004B,0x0052,0x00 }
-  , { 0x0045,0x0055,0x0043,0x002D,0x004B,0x0052,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x004B,0x0052,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x002D,0x0045,0x0058,0x0054,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x006A,0x0070,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x00 }
-  , { 0x006B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
-  , { 0x0078,0x0030,0x0032,0x0030,0x0031,0x002D,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x006A,0x0070,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x0072,0x006F,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x00 }
-  , { 0x006A,0x0070,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0054,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0049,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0049,0x0074,0x0061,0x006C,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0050,0x0054,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0036,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0045,0x0053,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0037,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0037,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
-  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x002D,0x006F,0x006C,0x0064,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x004F,0x006C,0x0064,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0039,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
-  , { 0x0044,0x0049,0x004E,0x005F,0x0036,0x0036,0x0030,0x0030,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0031,0x00 }
-  , { 0x0064,0x0065,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x0045,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0031,0x0047,0x0065,0x0072,0x006D,0x0061,0x006E,0x00 }
-  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x005F,0x0028,0x0031,0x0039,0x0037,0x0033,0x0029,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0035,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
-  , { 0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0037,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0033,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0037,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0036,0x0031,0x0039,0x0037,0x0038,0x00 }
-  , { 0x0042,0x0053,0x005F,0x0076,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0037,0x0042,0x0053,0x0056,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
-  , { 0x0049,0x004E,0x0049,0x0053,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0039,0x0049,0x004E,0x0049,0x0053,0x00 }
-  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0030,0x0049,0x004E,0x0049,0x0053,0x0038,0x00 }
-  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0031,0x0049,0x004E,0x0049,0x0053,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x003A,0x0031,0x0039,0x0038,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x0031,0x0039,0x0038,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0038,0x003A,0x0031,0x0039,0x0038,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
-  , { 0x0047,0x0042,0x005F,0x0031,0x0039,0x0038,0x0038,0x002D,0x0038,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0037,0x00 }
-  , { 0x0063,0x006E,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x004E,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0037,0x0047,0x0042,0x0031,0x0039,0x0038,0x0038,0x00 }
-  , { 0x0047,0x0042,0x005F,0x0032,0x0033,0x0031,0x0032,0x002D,0x0038,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0038,0x00 }
-  , { 0x0063,0x0068,0x0069,0x006E,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0038,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x0038,0x0030,0x00 }
-  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0030,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x00 }
-  , { 0x006E,0x006F,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0031,0x00 }
-  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0031,0x00 }
-  , { 0x006E,0x006F,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0031,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0032,0x00 }
-  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x00 }
-  , { 0x0066,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
-  , { 0x0076,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x002D,0x0073,0x0075,0x0070,0x0070,0x006C,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0037,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0037,0x0030,0x0056,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x0053,0x0075,0x0070,0x0070,0x0031,0x00 }
-  , { 0x0050,0x0054,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0034,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x0032,0x00 }
-  , { 0x0045,0x0053,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0035,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x0032,0x00 }
-  , { 0x004D,0x0053,0x005A,0x005F,0x0037,0x0037,0x0039,0x0035,0x002E,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0048,0x0055,0x00 }
-  , { 0x0068,0x0075,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0036,0x0048,0x0075,0x006E,0x0067,0x0061,0x0072,0x0069,0x0061,0x006E,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0037,0x00 }
-  , { 0x0078,0x0030,0x0032,0x0030,0x0038,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0038,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0037,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0030,0x0038,0x00 }
-  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
-  , { 0x0041,0x0053,0x004D,0x004F,0x005F,0x0034,0x0034,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0039,0x0030,0x0033,0x0036,0x00 }
-  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0039,0x0041,0x0053,0x004D,0x004F,0x0034,0x0034,0x0039,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0030,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0061,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0031,0x00 }
-  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0061,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0031,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0061,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x002D,0x004F,0x0043,0x0052,0x002D,0x0042,0x00 }
-  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0039,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0033,0x00 }
-  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0033,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x0061,0x0064,0x0064,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0034,0x00 }
-  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0034,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0035,0x00 }
-  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0035,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x0061,0x0064,0x0064,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0036,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0036,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x006B,0x0061,0x006E,0x0061,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0032,0x0030,0x0033,0x0033,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0038,0x00 }
-  , { 0x0065,0x0031,0x0033,0x0062,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0033,0x0033,0x00 }
-  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0031,0x0031,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0039,0x00 }
-  , { 0x0043,0x0053,0x0041,0x005F,0x0054,0x0035,0x0030,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
-  , { 0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0039,0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0030,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x006C,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0031,0x0039,0x00 }
-  , { 0x0043,0x0050,0x0038,0x0031,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
-  , { 0x006C,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
-  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0037,0x0062,0x0069,0x0074,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0032,0x0054,0x0036,0x0031,0x0037,0x0062,0x0069,0x0074,0x00 }
-  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0038,0x0062,0x0069,0x0074,0x00 }
-  , { 0x0054,0x002E,0x0036,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0054,0x0036,0x0031,0x0038,0x0062,0x0069,0x0074,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
-  , { 0x006C,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0030,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
-  , { 0x006C,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
-  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0031,0x0045,0x0043,0x004D,0x0041,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x00 }
-  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0061,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0031,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0031,0x00 }
-  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0032,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0032,0x00 }
-  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0067,0x0072,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0033,0x0043,0x0053,0x0041,0x005A,0x0032,0x0034,0x0033,0x0034,0x0031,0x0039,0x0038,0x0035,0x0067,0x0072,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0037,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
-  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0034,0x00 }
-  , { 0x0041,0x0053,0x004D,0x004F,0x002D,0x0037,0x0030,0x0038,0x00 }
-  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0041,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0045,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
-  , { 0x0045,0x004C,0x004F,0x0054,0x005F,0x0039,0x0032,0x0038,0x00 }
-  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0038,0x00 }
-  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
-  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
-  , { 0x0054,0x002E,0x0031,0x0030,0x0031,0x002D,0x0047,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0038,0x0054,0x0031,0x0030,0x0031,0x0047,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
-  , { 0x0068,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0045,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
-  , { 0x0043,0x0053,0x004E,0x005F,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x0039,0x0043,0x0053,0x004E,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
-  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0059,0x0055,0x00 }
-  , { 0x006A,0x0073,0x00 }
-  , { 0x0079,0x0075,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0031,0x004A,0x0055,0x0053,0x0049,0x0042,0x0031,0x0030,0x0030,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0061,0x0064,0x0064,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0054,0x0065,0x0078,0x0074,0x0043,0x006F,0x006D,0x006D,0x00 }
-  , { 0x0049,0x0045,0x0043,0x005F,0x0050,0x0032,0x0037,0x002D,0x0031,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0033,0x0049,0x0045,0x0043,0x0050,0x0032,0x0037,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
-  , { 0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x0073,0x0065,0x0072,0x0062,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0036,0x00 }
-  , { 0x0073,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0036,0x0053,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
-  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x006D,0x0061,0x0063,0x00 }
-  , { 0x006D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0037,0x004D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x003A,0x0031,0x0039,0x0038,0x0039,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
-  , { 0x006C,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
-  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0063,0x0063,0x0069,0x0074,0x0074,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x0047,0x0072,0x0065,0x0065,0x006B,0x0043,0x0043,0x0049,0x0054,0x0054,0x00 }
-  , { 0x004E,0x0043,0x005F,0x004E,0x0043,0x0030,0x0030,0x002D,0x0031,0x0030,0x003A,0x0038,0x0031,0x00 }
-  , { 0x0063,0x0075,0x0062,0x0061,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0055,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0031,0x0043,0x0075,0x0062,0x0061,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0032,0x0035,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0033,0x0037,0x0041,0x0064,0x0064,0x00 }
-  , { 0x0047,0x004F,0x0053,0x0054,0x005F,0x0031,0x0039,0x0037,0x0036,0x0038,0x002D,0x0037,0x0034,0x00 }
-  , { 0x0053,0x0054,0x005F,0x0053,0x0045,0x0056,0x005F,0x0033,0x0035,0x0038,0x002D,0x0038,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0033,0x0047,0x004F,0x0053,0x0054,0x0031,0x0039,0x0037,0x0036,0x0038,0x0037,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0073,0x0075,0x0070,0x0070,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0034,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x002D,0x0032,0x002D,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0053,0x0075,0x0070,0x0070,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0031,0x0030,0x0033,0x0036,0x0037,0x002D,0x0062,0x006F,0x0078,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0036,0x0037,0x0042,0x006F,0x0078,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0037,0x00 }
-  , { 0x006C,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x003A,0x0031,0x0039,0x0039,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x006C,0x0061,0x0070,0x00 }
-  , { 0x006C,0x0061,0x0070,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0038,0x004C,0x0061,0x0070,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0031,0x0032,0x002D,0x0031,0x0039,0x0039,0x0030,0x00 }
-  , { 0x0078,0x0030,0x0032,0x0031,0x0032,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0039,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0039,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0031,0x0032,0x0031,0x0039,0x0039,0x0030,0x00 }
-  , { 0x0044,0x0053,0x005F,0x0032,0x0030,0x0038,0x0039,0x00 }
-  , { 0x0044,0x0053,0x0032,0x0030,0x0038,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x004B,0x00 }
-  , { 0x0064,0x006B,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
-  , { 0x0075,0x0073,0x002D,0x0064,0x006B,0x00 }
-  , { 0x0063,0x0073,0x0055,0x0053,0x0044,0x004B,0x00 }
-  , { 0x0064,0x006B,0x002D,0x0075,0x0073,0x00 }
-  , { 0x0063,0x0073,0x0044,0x004B,0x0055,0x0053,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
-  , { 0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0061,0x006C,0x0066,0x0057,0x0069,0x0064,0x0074,0x0068,0x004B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
-  , { 0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004B,0x0052,0x00 }
-  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0055,0x0043,0x0053,0x0034,0x00 }
-  , { 0x0044,0x0045,0x0043,0x002D,0x004D,0x0043,0x0053,0x00 }
-  , { 0x0064,0x0065,0x0063,0x00 }
-  , { 0x0063,0x0073,0x0044,0x0045,0x0043,0x004D,0x0043,0x0053,0x00 }
-  , { 0x0068,0x0070,0x002D,0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
-  , { 0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
-  , { 0x0072,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x0052,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
-  , { 0x006D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
-  , { 0x006D,0x0061,0x0063,0x00 }
-  , { 0x0063,0x0073,0x004D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
-  , { 0x0063,0x0070,0x0030,0x0033,0x0037,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0075,0x0073,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0061,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0077,0x0074,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x006E,0x006C,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x004E,0x0054,0x00 }
-  , { 0x0063,0x0070,0x0030,0x0033,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0037,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0045,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0037,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0052,0x00 }
-  , { 0x0063,0x0070,0x0032,0x0037,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x0044,0x004B,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x004E,0x004F,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0037,0x0038,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0069,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0073,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0038,0x0030,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0074,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x0045,0x00 }
-  , { 0x0063,0x0070,0x0032,0x0038,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0038,0x0034,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0065,0x0073,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
-  , { 0x0043,0x0050,0x0032,0x0038,0x0035,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0062,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
-  , { 0x0063,0x0070,0x0032,0x0039,0x0030,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
-  , { 0x0063,0x0070,0x0032,0x0039,0x0037,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
-  , { 0x0063,0x0070,0x0034,0x0032,0x0030,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
-  , { 0x0063,0x0070,0x0034,0x0032,0x0033,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
-  , { 0x0063,0x0070,0x0034,0x0032,0x0034,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0068,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0034,0x0033,0x0037,0x00 }
-  , { 0x0063,0x0070,0x0034,0x0033,0x0037,0x00 }
-  , { 0x0034,0x0033,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0043,0x006F,0x0064,0x0065,0x0050,0x0061,0x0067,0x0065,0x0034,0x0033,0x0037,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
-  , { 0x0043,0x0050,0x0035,0x0030,0x0030,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0062,0x0065,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0068,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0037,0x0037,0x0035,0x00 }
-  , { 0x0063,0x0070,0x0037,0x0037,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0037,0x0037,0x0035,0x0042,0x0061,0x006C,0x0074,0x0069,0x0063,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0030,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0035,0x0030,0x00 }
-  , { 0x0038,0x0035,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0035,0x0030,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0035,0x0031,0x00 }
-  , { 0x0038,0x0035,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0032,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0035,0x0032,0x00 }
-  , { 0x0038,0x0035,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0070,0x0038,0x0035,0x0032,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0035,0x0035,0x00 }
-  , { 0x0038,0x0035,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0035,0x0037,0x00 }
-  , { 0x0038,0x0035,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0030,0x00 }
-  , { 0x0038,0x0036,0x0030,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0031,0x00 }
-  , { 0x0038,0x0036,0x0031,0x00 }
-  , { 0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0032,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0032,0x00 }
-  , { 0x0038,0x0036,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0036,0x0032,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0033,0x00 }
-  , { 0x0038,0x0036,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0035,0x00 }
-  , { 0x0038,0x0036,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0036,0x00 }
-  , { 0x0038,0x0036,0x0036,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
-  , { 0x0043,0x0050,0x0038,0x0036,0x0038,0x00 }
-  , { 0x0063,0x0070,0x002D,0x0061,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0036,0x0039,0x00 }
-  , { 0x0038,0x0036,0x0039,0x00 }
-  , { 0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
-  , { 0x0043,0x0050,0x0038,0x0037,0x0030,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0072,0x006F,0x0065,0x0063,0x0065,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0079,0x0075,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
-  , { 0x0043,0x0050,0x0038,0x0037,0x0031,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0038,0x0030,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
-  , { 0x0063,0x0070,0x0038,0x0039,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
-  , { 0x0063,0x0070,0x0039,0x0030,0x0033,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
-  , { 0x0063,0x0070,0x0039,0x0030,0x0034,0x00 }
-  , { 0x0039,0x0030,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
-  , { 0x0043,0x0050,0x0039,0x0030,0x0035,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0074,0x0072,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
-  , { 0x0043,0x0050,0x0039,0x0031,0x0038,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
-  , { 0x0043,0x0050,0x0031,0x0030,0x0032,0x0036,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x002D,0x0041,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x0041,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0041,0x002D,0x0046,0x0052,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0043,0x0041,0x0046,0x0052,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x002D,0x0041,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x0041,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x002D,0x0041,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x0041,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0052,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0052,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0049,0x0054,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0050,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0050,0x0054,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0041,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0041,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0053,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x004B,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x004B,0x00 }
-  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x0053,0x00 }
-  , { 0x0055,0x004E,0x004B,0x004E,0x004F,0x0057,0x004E,0x002D,0x0038,0x0042,0x0049,0x0054,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0038,0x0042,0x0069,0x0054,0x00 }
-  , { 0x004D,0x004E,0x0045,0x004D,0x004F,0x004E,0x0049,0x0043,0x00 }
-  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x006F,0x006E,0x0069,0x0063,0x00 }
-  , { 0x004D,0x004E,0x0045,0x004D,0x00 }
-  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x00 }
-  , { 0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0063,0x0073,0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0056,0x0049,0x0051,0x0052,0x00 }
-  , { 0x0063,0x0073,0x0056,0x0049,0x0051,0x0052,0x00 }
-  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0052,0x00 }
-  , { 0x0063,0x0073,0x004B,0x004F,0x0049,0x0038,0x0052,0x00 }
-  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0055,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
-  , { 0x0050,0x0043,0x002D,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x002D,0x0038,0x0035,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0039,0x002D,0x002D,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0075,0x0073,0x002D,0x0033,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x0065,0x002D,0x0032,0x0037,0x0033,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x006B,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x006E,0x006F,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0069,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0073,0x0065,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0074,0x002D,0x0032,0x0038,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0065,0x0073,0x002D,0x0032,0x0038,0x0034,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0067,0x0062,0x002D,0x0032,0x0038,0x0035,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0072,0x002D,0x0032,0x0039,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x002D,0x0035,0x0030,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
-  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
-  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
-  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0073,0x002D,0x0038,0x0037,0x0031,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
-  , { 0x0042,0x0069,0x0067,0x0035,0x002D,0x0048,0x004B,0x0053,0x0043,0x0053,0x00 }
-  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x00 }
-  , { 0x0053,0x0043,0x0053,0x0055,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x0042,0x0045,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x004C,0x0045,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x00 }
-  , { 0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x0042,0x0045,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x004C,0x0045,0x00 }
-  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x002D,0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x0055,0x0054,0x0046,0x0037,0x00 }
-  , { 0x0055,0x0054,0x0046,0x002D,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0033,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x0039,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x003A,0x0031,0x0039,0x0039,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
-  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0038,0x00 }
-  , { 0x0069,0x0073,0x006F,0x002D,0x0063,0x0065,0x006C,0x0074,0x0069,0x0063,0x00 }
-  , { 0x006C,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0036,0x00 }
-  , { 0x00 }
-  , { 0x0047,0x0042,0x004B,0x00 }
-  , { 0x0043,0x0050,0x0039,0x0033,0x0036,0x00 }
-  , { 0x004D,0x0053,0x0039,0x0033,0x0036,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0039,0x0033,0x0036,0x00 }
-  , { 0x0047,0x0042,0x0031,0x0038,0x0030,0x0033,0x0030,0x00 }
-  , { 0x004A,0x0049,0x0053,0x005F,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0063,0x0073,0x004A,0x0049,0x0053,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0053,0x0068,0x0069,0x0066,0x0074,0x005F,0x004A,0x0049,0x0053,0x00 }
-  , { 0x004D,0x0053,0x005F,0x004B,0x0061,0x006E,0x006A,0x0069,0x00 }
-  , { 0x0063,0x0073,0x0053,0x0068,0x0069,0x0066,0x0074,0x004A,0x0049,0x0053,0x00 }
-  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0050,0x0061,0x0063,0x006B,0x0065,0x0064,0x005F,0x0046,0x006F,0x0072,0x006D,0x0061,0x0074,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0050,0x006B,0x0064,0x0046,0x006D,0x0074,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0045,0x0055,0x0043,0x002D,0x004A,0x0050,0x00 }
-  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0046,0x0069,0x0078,0x0065,0x0064,0x005F,0x0057,0x0069,0x0064,0x0074,0x0068,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0046,0x0069,0x0078,0x0057,0x0069,0x0064,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0042,0x0061,0x0073,0x0069,0x0063,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x004A,0x002D,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0038,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0037,0x0036,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0037,0x0036,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0034,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0034,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0035,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0030,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0030,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0031,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
-  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
-  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
-  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0063,0x0073,0x0041,0x0064,0x006F,0x0062,0x0065,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0055,0x0053,0x00 }
-  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0055,0x0053,0x00 }
-  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
-  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
-  , { 0x0050,0x0043,0x0038,0x002D,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x002D,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
-  , { 0x0050,0x0043,0x0038,0x002D,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
-  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
-  , { 0x0049,0x0042,0x004D,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
-  , { 0x0049,0x0042,0x004D,0x002D,0x0054,0x0068,0x0061,0x0069,0x00 }
-  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0054,0x0068,0x0061,0x0069,0x00 }
-  , { 0x0048,0x0050,0x002D,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
-  , { 0x0048,0x0050,0x002D,0x0050,0x0069,0x002D,0x0066,0x006F,0x006E,0x0074,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0069,0x0046,0x006F,0x006E,0x0074,0x00 }
-  , { 0x0048,0x0050,0x002D,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
-  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0053,0x004D,0x0061,0x0074,0x0068,0x00 }
-  , { 0x0048,0x0050,0x002D,0x0044,0x0065,0x0073,0x006B,0x0054,0x006F,0x0070,0x00 }
-  , { 0x0063,0x0073,0x0048,0x0050,0x0044,0x0065,0x0073,0x006B,0x0074,0x006F,0x0070,0x00 }
-  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x004D,0x0061,0x0074,0x0068,0x00 }
-  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x004D,0x0061,0x0074,0x0068,0x00 }
-  , { 0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x002D,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0063,0x0073,0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
-  , { 0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x0031,0x004A,0x00 }
-  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004A,0x00 }
-  , { 0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
-  , { 0x0063,0x0073,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
-  , { 0x0042,0x0069,0x0067,0x0035,0x00 }
-  , { 0x0063,0x0073,0x0042,0x0069,0x0067,0x0035,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0030,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0031,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0032,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0033,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0034,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0035,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0036,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0037,0x00 }
-  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0038,0x00 }
-  , { 0x0054,0x0049,0x0053,0x002D,0x0036,0x0032,0x0030,0x00 }
-  , { 0x0048,0x005A,0x002D,0x0047,0x0042,0x002D,0x0032,0x0033,0x0031,0x0032,0x00 }
-
-};
-const unsigned int gEncodingArraySize = 791;
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
-
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: IGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(IGXMLSCANNER_HPP)
-#define IGXMLSCANNER_HPP
-
-#include <xercesc/internal/XMLScanner.hpp>
-#include <xercesc/util/KVStringPair.hpp>
-#include <xercesc/util/NameIdPool.hpp>
-#include <xercesc/util/RefHash3KeysIdPool.hpp>
-#include <xercesc/validators/common/Grammar.hpp>
-#include <xercesc/validators/schema/SchemaElementDecl.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class DTDElementDecl;
-class DTDGrammar;
-class DTDValidator;
-class SchemaValidator;
-class IdentityConstraintHandler;
-class IdentityConstraint;
-class ContentLeafNameTypeVector;
-class SchemaAttDef;
-class XMLContentModel;
-class XSModel;
-class PSVIAttributeList;
-class PSVIElement;
-
-//  This is an integrated scanner class, which does DTD/XML Schema grammar
-//  processing.
-class XMLPARSER_EXPORT IGXMLScanner : public XMLScanner
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    IGXMLScanner
-    (
-        XMLValidator* const valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-    IGXMLScanner
-    (
-          XMLDocumentHandler* const docHandler
-        , DocTypeHandler* const     docTypeHandler
-        , XMLEntityHandler* const   entityHandler
-        , XMLErrorReporter* const   errReporter
-        , XMLValidator* const       valToAdopt
-        , GrammarResolver* const    grammarResolver
-        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
-    );
-    virtual ~IGXMLScanner();
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner public virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const;
-    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
-    virtual unsigned int resolveQName
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        ,       int&                prefixColonPos
-    );
-    virtual void scanDocument
-    (
-        const   InputSource&    src
-    );
-    virtual bool scanNext(XMLPScanToken& toFill);
-    virtual Grammar* loadGrammar
-    (
-        const   InputSource&    src
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-
-    virtual Grammar::GrammarType getCurrentGrammarType() const;
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    IGXMLScanner();
-    IGXMLScanner(const IGXMLScanner&);
-    IGXMLScanner& operator=(const IGXMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanCDSection();
-    virtual void scanCharData(XMLBuffer& toToUse);
-    virtual EntityExpRes scanEntityRef
-    (
-        const   bool    inAttVal
-        ,       XMLCh&  firstCh
-        ,       XMLCh&  secondCh
-        ,       bool&   escaped
-    );
-    virtual void scanDocTypeDecl();
-    virtual void scanReset(const InputSource& src);
-    virtual void sendCharData(XMLBuffer& toSend);
-    virtual InputSource* resolveSystemId(const XMLCh* const sysId
-                                        ,const XMLCh* const pubId);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void commonInit();
-    void cleanUp();
-
-    unsigned int buildAttList
-    (
-        const   RefVectorOf<KVStringPair>&  providedAttrs
-        , const unsigned int                attCount
-        ,       XMLElementDecl*             elemDecl
-        ,       RefVectorOf<XMLAttr>&       toFill
-    );
-    bool normalizeAttValue
-    (
-        const   XMLAttDef* const    attDef
-        , const XMLCh* const       name 
-        , const XMLCh* const        value
-        ,       XMLBuffer&          toFill
-    );
-    bool normalizeAttRawValue
-    (
-        const   XMLCh* const        attrName
-        , const XMLCh* const        value
-        ,       XMLBuffer&          toFill
-    );
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        , const ElemStack::MapModes mode
-    );
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        ,       XMLBuffer&          uriBufToFill
-        , const ElemStack::MapModes mode
-    );
-    void updateNSMap
-    (
-        const   XMLCh* const    attrName
-        , const XMLCh* const    attrValue        
-    );
-    void updateNSMap
-    (
-        const   XMLCh* const    attrName
-        , const XMLCh* const    attrValue
-        , const int             colonPosition
-    );
-    void scanRawAttrListforNameSpaces(int attCount);
-    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
-    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
-    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
-    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
-                              const XMLContentModel* const cm,
-                              const unsigned int parentElemDepth);
-    bool anyAttributeValidation(SchemaAttDef* attWildCard,
-                                unsigned int uriId,
-                                bool& skipThisOne,
-                                bool& laxThisOne);
-    void resizeElemState();
-    void processSchemaLocation(XMLCh* const schemaLoc);
-
-    void resizeRawAttrColonList();
-
-    unsigned int resolveQNameWithColon
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        , const int                 prefixColonPos
-    );
-    // -----------------------------------------------------------------------
-    //  Private scanning methods
-    // -----------------------------------------------------------------------
-    bool basicAttrValueScan
-    (
-        const   XMLCh* const    attrName
-        ,       XMLBuffer&      toFill
-    );
-    unsigned int rawAttrScan
-    (
-        const   XMLCh* const                elemName
-        ,       RefVectorOf<KVStringPair>&  toFill
-        ,       bool&                       isEmpty
-    );
-    bool scanAttValue
-    (
-        const   XMLAttDef* const    attDef
-        , const   XMLCh* const      attrName
-        ,       XMLBuffer&          toFill
-    );
-    bool scanContent();
-    void scanEndTag(bool& gotData);
-    bool scanStartTag(bool& gotData);
-    bool scanStartTagNS(bool& gotData);
-
-    // -----------------------------------------------------------------------
-    //  IdentityConstraints Activation methods
-    // -----------------------------------------------------------------------
-    inline bool toCheckIdentityConstraint()  const;
-
-    // -----------------------------------------------------------------------
-    //  Grammar preparsing methods
-    // -----------------------------------------------------------------------
-    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
-    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
-
-    // -----------------------------------------------------------------------
-    //  PSVI handling methods
-    // -----------------------------------------------------------------------
-    void endElementPSVI(SchemaElementDecl* const elemDecl,
-                        DatatypeValidator* const memberDV);
-    void resetPSVIElemContext();
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fRawAttrList
-    //      During the initial scan of the attributes we can only do a raw
-    //      scan for key/value pairs. So this vector is used to store them
-    //      until they can be processed (and put into fAttrList.)
-    //
-    //  fDTDValidator
-    //      The DTD validator instance.
-    //
-    //  fSchemaValidator
-    //      The Schema validator instance.
-    //
-    //  fSeeXsi
-    //      This flag indicates a schema has been seen.
-    //
-    //  fElemState
-    //  fElemStateSize
-    //      Stores an element next state from DFA content model - used for
-    //      wildcard validation
-    //
-    // fDTDElemNonDeclPool
-    //      registry of "faulted-in" DTD element decls
-    // fSchemaElemNonDeclPool
-    //      registry for elements without decls in the grammar
-    // fElemCount
-    //      count of the number of start tags seen so far (starts at 1).
-    //      Used for duplicate attribute detection/processing of required/defaulted attributes
-    // fAttDefRegistry
-    //      mapping from XMLAttDef instances to the count of the last
-    //      start tag where they were utilized.
-    // fUndeclaredAttrRegistry
-    //      mapping of attr QNames to the count of the last start tag in which they occurred
-    // fUndeclaredAttrRegistryNS
-    //      mapping of namespaceId/localName pairs to the count of the last
-    //      start tag in which they occurred.
-    //  fPSVIAttrList
-    //      PSVI attribute list implementation that needs to be
-    //      filled when a PSVIHandler is registered
-    //
-    // -----------------------------------------------------------------------
-    bool                                    fSeeXsi;
-    Grammar::GrammarType                    fGrammarType;
-    unsigned int                            fElemStateSize;
-    unsigned int*                           fElemState;
-    XMLBuffer                               fContent;
-    RefVectorOf<KVStringPair>*              fRawAttrList;
-    unsigned int                            fRawAttrColonListSize;
-    int*                                    fRawAttrColonList;
-    DTDValidator*                           fDTDValidator;
-    SchemaValidator*                        fSchemaValidator;
-    DTDGrammar*                             fDTDGrammar;
-    IdentityConstraintHandler*              fICHandler;
-    ValueVectorOf<XMLCh*>*                  fLocationPairs;
-    NameIdPool<DTDElementDecl>*             fDTDElemNonDeclPool;
-    RefHash3KeysIdPool<SchemaElementDecl>*  fSchemaElemNonDeclPool;
-    unsigned int                            fElemCount;
-    RefHashTableOf<unsigned int>*           fAttDefRegistry;
-    RefHashTableOf<unsigned int>*           fUndeclaredAttrRegistry;
-    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
-    PSVIAttributeList *                     fPSVIAttrList;
-    XSModel*                                fModel;
-    PSVIElement*                            fPSVIElement;
-    ValueStackOf<bool>*                     fErrorStack;
-    PSVIElemContext                         fPSVIElemContext;
-};
-
-inline const XMLCh* IGXMLScanner::getName() const
-{
-    return XMLUni::fgIGXMLScanner;
-}
-
-inline bool IGXMLScanner::toCheckIdentityConstraint()  const
-{
-    return fValidate && fIdentityConstraintChecking && fICHandler;
-}
-
-inline Grammar::GrammarType IGXMLScanner::getCurrentGrammarType() const
-{
-    return fGrammarType;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerArrayImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: MemoryManagerArrayImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(MEMORYMANAGERARRAYIMPL_HPP)
-#define MEMORYMANAGERARRAYIMPL_HPP
-
-#include <xercesc/framework/MemoryManager.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-/**
-  * Configurable memory manager
-  *
-  * <p>This is specialized version of a Xerces
-  *    memory manager, which allocates memory using
-  *    using new[](size) syntax. Such memory may
-  *    legally be deleted with delete[].
-  * </p>
-  * <p>This version is used in special cases where it is desired
-  *    that allocated memory be able to be delete[]d.
-  * </p>
-  */
-
-class XMLUTIL_EXPORT MemoryManagerArrayImpl : public MemoryManager
-{
-public:
-
-    /** @name Constructor */
-    //@{
-
-    /**
-      * Default constructor
-      */
-    MemoryManagerArrayImpl()
-    {
-    }
-    //@}
-
-    /** @name Destructor */
-    //@{
-
-    /**
-      * Default destructor
-      */
-    virtual ~MemoryManagerArrayImpl()
-    {
-    }
-    //@}
-
-    /** @name The virtual methods in MemoryManager */
-    //@{
-
-    /**
-      * This method allocates requested memory.
-      *
-      * @param size The requested memory size
-      *
-      * @return A pointer to the allocated memory
-      */
-    virtual void* allocate(size_t size);
-
-    /**
-      * This method deallocates memory
-      *
-      * @param p The pointer to the allocated memory to be deleted
-      */
-    virtual void deallocate(void* p);
-
-    //@}
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    MemoryManagerArrayImpl(const MemoryManagerArrayImpl&);
-    MemoryManagerArrayImpl& operator=(const MemoryManagerArrayImpl&);
-
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: MemoryManagerImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(MEMORYMANAGERIMPL_HPP)
-#define MEMORYMANAGERIMPL_HPP
-
-#include <xercesc/framework/MemoryManager.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-/**
-  * Configurable memory manager
-  *
-  * <p>This is Xerces default implementation of the memory
-  *    manager interface, which will be instantiated and used
-  *    in the absence of an application's memory manager.
-  * </p>
-  */
-
-class XMLUTIL_EXPORT MemoryManagerImpl : public MemoryManager
-{
-public:
-
-    /** @name Constructor */
-    //@{
-
-    /**
-      * Default constructor
-      */
-    MemoryManagerImpl()
-    {
-    }
-    //@}
-
-    /** @name Destructor */
-    //@{
-
-    /**
-      * Default destructor
-      */
-    virtual ~MemoryManagerImpl()
-    {
-    }
-    //@}
-
-    /** @name The virtual methods in MemoryManager */
-    //@{
-
-    /**
-      * This method allocates requested memory.
-      *
-      * @param size The requested memory size
-      *
-      * @return A pointer to the allocated memory
-      */
-    virtual void* allocate(size_t size);
-
-    /**
-      * This method deallocates memory
-      *
-      * @param p The pointer to the allocated memory to be deleted
-      */
-    virtual void deallocate(void* p);
-
-    //@}
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    MemoryManagerImpl(const MemoryManagerImpl&);
-    MemoryManagerImpl& operator=(const MemoryManagerImpl&);
-
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ReaderMgr.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: ReaderMgr.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(READERMGR_HPP)
-#define READERMGR_HPP
-
-#include <xercesc/internal/XMLReader.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-#include <xercesc/util/RefStackOf.hpp>
-#include <xercesc/sax/Locator.hpp>
-#include <xercesc/framework/XMLBuffer.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLEntityDecl;
-class XMLEntityHandler;
-class XMLDocumentHandler;
-class XMLScanner;
-
-
-// ---------------------------------------------------------------------------
-//  This class is used by the scanner. The scanner must deal with expansion
-//  of entities, some of which are totally different files (external parsed
-//  entities.) It does so by pushing readers onto a stack. The top reader is
-//  the one it wants to read out of, but that one must be popped when it is
-//  empty. To keep that logic from being all over the place, the scanner
-//  talks to the reader manager, which handles the stack and popping off
-//  used up readers.
-// ---------------------------------------------------------------------------
-class XMLPARSER_EXPORT ReaderMgr :   public XMemory 
-                                   , public Locator
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Class specific types
-    // -----------------------------------------------------------------------
-    struct LastExtEntityInfo : public XMemory
-    {
-        const   XMLCh*          systemId;
-        const   XMLCh*          publicId;
-                XMLSSize_t      lineNumber;
-                XMLSSize_t      colNumber;
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    ReaderMgr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-    ~ReaderMgr();
-
-
-    // -----------------------------------------------------------------------
-    //  Convenience scanning methods
-    //
-    //  This are all convenience methods that work in terms of the core
-    //  character spooling methods.
-    // -----------------------------------------------------------------------
-    bool atEOF() const;
-    bool getName(XMLBuffer& toFill);
-    bool getQName(XMLBuffer& toFill, int* colonPosition);
-    bool getNameToken(XMLBuffer& toFill);
-    XMLCh getNextChar();
-    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
-    void movePlainContentChars(XMLBuffer &dest);
-    void getSpaces(XMLBuffer& toFill);
-    void getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
-    bool isEmpty() const;
-    bool lookingAtChar(const XMLCh toCheck);
-    bool lookingAtSpace();
-    XMLCh peekNextChar();
-    bool skipIfQuote(XMLCh& chGotten);
-    void skipPastChar(const XMLCh toSkip);
-    bool skipPastSpaces(bool inDecl = false);
-    void skipToChar(const XMLCh toSkipTo);
-    bool skippedChar(const XMLCh toSkip);
-    bool skippedSpace();
-    bool skippedString(const XMLCh* const toSkip);
-    void skipQuotedString(const XMLCh quoteCh);
-    XMLCh skipUntilIn(const XMLCh* const listToSkip);
-    XMLCh skipUntilInOrWS(const XMLCh* const listToSkip);
-    bool peekString(const XMLCh* const toPeek);
-
-
-    // -----------------------------------------------------------------------
-    //  Control methods
-    // -----------------------------------------------------------------------
-    void cleanStackBackTo(const unsigned int readerNum);
-    XMLReader* createReader
-    (
-        const   InputSource&        src
-        , const bool                xmlDecl
-        , const XMLReader::RefFrom  refFrom
-        , const XMLReader::Types    type
-        , const XMLReader::Sources  source
-        , const bool                calcSrsOfs = true
-    );
-    XMLReader* createReader
-    (
-        const   XMLCh* const        sysId
-        , const XMLCh* const        pubId
-        , const bool                xmlDecl
-        , const XMLReader::RefFrom  refFrom
-        , const XMLReader::Types    type
-        , const XMLReader::Sources  source
-        ,       InputSource*&       srcToFill
-        , const bool                calcSrcOfs = true
-        , const bool                disableDefaultEntityResolution = false
-    );
-    XMLReader* createReader
-    (
-        const   XMLCh* const        baseURI
-        , const XMLCh* const        sysId
-        , const XMLCh* const        pubId
-        , const bool                xmlDecl
-        , const XMLReader::RefFrom  refFrom
-        , const XMLReader::Types    type
-        , const XMLReader::Sources  source
-        ,       InputSource*&       srcToFill
-        , const bool                calcSrcOfs = true
-        , const bool                disableDefaultEntityResolution = false
-    );
-    XMLReader* createIntEntReader
-    (
-        const   XMLCh* const        sysId
-        , const XMLReader::RefFrom  refFrom
-        , const XMLReader::Types    type
-        , const XMLCh* const        dataBuf
-        , const unsigned int        dataLen
-        , const bool                copyBuf
-        , const bool                calcSrcOfs = true
-    );
-    bool isScanningPERefOutOfLiteral() const;
-    bool pushReader
-    (
-                XMLReader* const        reader
-        ,       XMLEntityDecl* const    entity
-    );
-    void reset();
-
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    const XMLCh* getCurrentEncodingStr() const;
-    const XMLEntityDecl* getCurrentEntity() const;
-    XMLEntityDecl* getCurrentEntity();
-    const XMLReader* getCurrentReader() const;
-    XMLReader* getCurrentReader();
-    unsigned int getCurrentReaderNum() const;
-    unsigned int getReaderDepth() const;
-    void getLastExtEntityInfo(LastExtEntityInfo& lastInfo) const;
-    unsigned int getSrcOffset() const;
-    bool getThrowEOE() const;
-
-
-    // -----------------------------------------------------------------------
-    //  Setter methods
-    // -----------------------------------------------------------------------
-    void setEntityHandler(XMLEntityHandler* const newHandler);
-    void setThrowEOE(const bool newValue);
-    void setXMLVersion(const XMLReader::XMLVersion version);
-    void setStandardUriConformant(const bool newValue);
-
-    // -----------------------------------------------------------------------
-    //  Implement the SAX Locator interface
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getPublicId() const;
-    virtual const XMLCh* getSystemId() const;
-    virtual XMLSSize_t getLineNumber() const;
-    virtual XMLSSize_t getColumnNumber() const;
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    const XMLReader* getLastExtEntity(const XMLEntityDecl*& itsEntity) const;
-    bool popReader();
-
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    ReaderMgr(const ReaderMgr&);
-    ReaderMgr& operator=(const ReaderMgr&);
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fCurEntity
-    //      This is the current top of stack entity. We pull it off the stack
-    //      and store it here for efficiency.
-    //
-    //  fCurReader
-    //      This is the current top of stack reader. We pull it off the
-    //      stack and store it here for efficiency.
-    //
-    //  fEntityHandler
-    //      This is the installed entity handler. Its installed via the
-    //      scanner but he passes it on to us since we need it the most, in
-    //      process of creating external entity readers.
-    //
-    //  fEntityStack
-    //      We need to keep up with which of the pushed readers are pushed
-    //      entity values that are being spooled. This is done to avoid the
-    //      problem of recursive definitions. This stack consists of refs to
-    //      EntityDecl objects for the pushed entities.
-    //
-    //  fNextReaderNum
-    //      This is the reader serial number value. Each new reader that is
-    //      created from this reader is given a successive number. This lets
-    //      us catch things like partial markup errors and such.
-    //
-    //  fReaderStack
-    //      This is the stack of reader references. We own all the readers
-    //      and destroy them when they are used up.
-    //
-    //  fThrowEOE
-    //      This flag controls whether we throw an exception when we hit an
-    //      end of entity. The scanner doesn't really need to know about ends
-    //      of entities in the int/ext subsets, so it will turn this flag off
-    //      until it gets into the content usually.
-    //
-    //  fXMLVersion
-    //      Enum to indicate if each Reader should be created as XML 1.1 or
-    //      XML 1.0 conformant
-    //
-    //  fStandardUriConformant
-    //      This flag controls whether we force conformant URI
-    // -----------------------------------------------------------------------
-    XMLEntityDecl*              fCurEntity;
-    XMLReader*                  fCurReader;
-    XMLEntityHandler*           fEntityHandler;
-    RefStackOf<XMLEntityDecl>*  fEntityStack;
-    unsigned int                fNextReaderNum;
-    RefStackOf<XMLReader>*      fReaderStack;
-    bool                        fThrowEOE;
-    XMLReader::XMLVersion       fXMLVersion;
-    bool                        fStandardUriConformant;
-    MemoryManager*              fMemoryManager;
-};
-
-
-
-// ---------------------------------------------------------------------------
-//  ReaderMgr: Inlined methods
-//
-//  NOTE: We cannot put these in alphabetical and type order as we usually
-//  do because some of the compilers we have to support are too stupid to
-//  understand out of order inlines!
-// ---------------------------------------------------------------------------
-inline unsigned int ReaderMgr::getCurrentReaderNum() const
-{
-    return fCurReader->getReaderNum();
-}
-
-inline const XMLReader* ReaderMgr::getCurrentReader() const
-{
-    return fCurReader;
-}
-
-inline XMLReader* ReaderMgr::getCurrentReader()
-{
-    return fCurReader;
-}
-
-inline bool ReaderMgr::getName(XMLBuffer& toFill)
-{
-    toFill.reset();
-    return fCurReader->getName(toFill, false);
-}
-
-inline bool ReaderMgr::getQName(XMLBuffer& toFill, int *colonPosition)
-{
-    toFill.reset();
-    return fCurReader->getQName(toFill, colonPosition);
-}
-
-inline bool ReaderMgr::getNameToken(XMLBuffer& toFill)
-{
-    toFill.reset();
-    return fCurReader->getName(toFill, true);
-}
-
-inline bool ReaderMgr::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
-{
-    return fCurReader->getNextCharIfNot(chNotToGet, chGotten);
-}
-
-inline void ReaderMgr::movePlainContentChars(XMLBuffer &dest)
-{
-    fCurReader->movePlainContentChars(dest);
-}
-
-inline bool ReaderMgr::getThrowEOE() const
-{
-    return fThrowEOE;
-}
-
-inline unsigned int ReaderMgr::getSrcOffset() const
-{
-    return fCurReader? fCurReader->getSrcOffset() : 0;
-}
-
-inline bool ReaderMgr::lookingAtChar(const XMLCh chToCheck)
-{
-    return (chToCheck == peekNextChar());
-}
-
-inline bool ReaderMgr::lookingAtSpace()
-{
-    XMLCh c = peekNextChar();
-    return fCurReader->isWhitespace(c);
-}
-
-inline void ReaderMgr::setThrowEOE(const bool newValue)
-{
-    fThrowEOE = newValue;
-}
-
-inline void ReaderMgr::setStandardUriConformant(const bool newValue)
-{
-    fStandardUriConformant = newValue;
-}
-
-inline bool ReaderMgr::skippedString(const XMLCh* const toSkip)
-{
-    return fCurReader->skippedString(toSkip);
-}
-
-inline void ReaderMgr::skipToChar(const XMLCh toSkipTo)
-{
-	XMLCh nextCh = 0;
-    do
-    {
-        // Get chars until we find the one to skip
-        nextCh = getNextChar();
-	} 
-    // Break out at end of input or the char to skip
-	while((nextCh != toSkipTo) && nextCh!=0);
-}
-
-inline void ReaderMgr::skipPastChar(const XMLCh toSkipPast)
-{
-	XMLCh nextCh = 0;
-    do
-    {
-        // Get chars until we find the one to skip
-        nextCh = getNextChar();
-	} 
-	while((nextCh != toSkipPast) && nextCh!=0);
-}
-
-inline bool ReaderMgr::peekString(const XMLCh* const toPeek)
-{
-    return fCurReader->peekString(toPeek);
-}
-
-inline void ReaderMgr::setEntityHandler(XMLEntityHandler* const newHandler)
-{
-    fEntityHandler = newHandler;
-}
-
-inline void ReaderMgr::setXMLVersion(const XMLReader::XMLVersion version)
-{
-    fXMLVersion = version;
-    fCurReader->setXMLVersion(version);
-}
-
-//
-//  This is a simple class to temporarily change the 'throw at end of entity'
-//  flag of the reader manager. There are some places where we need to
-//  turn this on and off on a scoped basis.
-//
-class XMLPARSER_EXPORT ThrowEOEJanitor
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and destructor
-    // -----------------------------------------------------------------------
-    ThrowEOEJanitor(ReaderMgr* mgrTarget, const bool newValue) :
-
-        fOld(mgrTarget->getThrowEOE())
-        , fMgr(mgrTarget)
-    {
-        mgrTarget->setThrowEOE(newValue);
-    }
-
-    ~ThrowEOEJanitor()
-    {
-        fMgr->setThrowEOE(fOld);
-    };
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------    
-    ThrowEOEJanitor(const ThrowEOEJanitor&);
-    ThrowEOEJanitor& operator=(const ThrowEOEJanitor&);
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fOld
-    //      The previous value of the flag, which we replaced during ctor,
-    //      and will replace during dtor.
-    //
-    //  fMgr
-    //      A pointer to the reader manager we are going to set/reset the
-    //      flag on.
-    // -----------------------------------------------------------------------
-    bool        fOld;
-    ReaderMgr*  fMgr;
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/SGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: SGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(SGXMLSCANNER_HPP)
-#define SGXMLSCANNER_HPP
-
-#include <xercesc/internal/XMLScanner.hpp>
-#include <xercesc/util/KVStringPair.hpp>
-#include <xercesc/util/ValueHashTableOf.hpp>
-#include <xercesc/util/RefHash3KeysIdPool.hpp>
-#include <xercesc/validators/common/Grammar.hpp>
-#include <xercesc/validators/schema/SchemaElementDecl.hpp>
-
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class SchemaGrammar;
-class SchemaValidator;
-class IdentityConstraintHandler;
-class IdentityConstraint;
-class ContentLeafNameTypeVector;
-class SchemaAttDef;
-class XMLContentModel;
-class XSModel;
-class PSVIAttributeList;
-class PSVIElement;
-
-//  This is a scanner class, which process XML Schema grammar.
-class XMLPARSER_EXPORT SGXMLScanner : public XMLScanner
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    SGXMLScanner
-    (
-        XMLValidator* const       valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-    );
-    SGXMLScanner
-    (
-        XMLDocumentHandler* const docHandler
-        , DocTypeHandler* const   docTypeHandler
-        , XMLEntityHandler* const entityHandler
-        , XMLErrorReporter* const errReporter
-        , XMLValidator* const     valToAdopt
-        , GrammarResolver* const  grammarResolver
-        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-    );
-    virtual ~SGXMLScanner();
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner public virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const;
-    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
-    virtual unsigned int resolveQName
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        ,       int&                prefixColonPos
-    );
-    virtual void scanDocument
-    (
-        const   InputSource&    src
-    );
-    virtual bool scanNext(XMLPScanToken& toFill);
-    virtual Grammar* loadGrammar
-    (
-        const   InputSource&    src
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-    virtual Grammar::GrammarType getCurrentGrammarType() const;
-
-protected:
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanReset(const InputSource& src);
-
-    // -----------------------------------------------------------------------
-    //  SGXMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual bool scanStartTag(bool& gotData);
-    virtual void scanEndTag(bool& gotData);
-
-    // -----------------------------------------------------------------------
-    //  Helper methods
-    // -----------------------------------------------------------------------
-    unsigned int buildAttList
-    (
-        const   RefVectorOf<KVStringPair>&  providedAttrs
-        , const unsigned int                attCount
-        ,       XMLElementDecl*             elemDecl
-        ,       RefVectorOf<XMLAttr>&       toFill
-    );
-    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
-                              const XMLContentModel* const cm,
-                              const unsigned int parentElemDepth);
-    unsigned int rawAttrScan
-    (
-        const   XMLCh* const                elemName
-        ,       RefVectorOf<KVStringPair>&  toFill
-        ,       bool&                       isEmpty
-    );
-    void updateNSMap
-    (
-        const   XMLCh* const    attrName
-        , const XMLCh* const    attrValue
-    );
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        , const ElemStack::MapModes mode
-    );
-    void resizeElemState();
-
-    void updateNSMap
-    (
-        const   XMLCh* const    attrName
-        , const XMLCh* const    attrValue
-        , const int             colonPosition
-    );
-    void resizeRawAttrColonList();
-    unsigned int resolveQNameWithColon
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        , const int                 prefixColonPos
-    );
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fRawAttrList
-    //      During the initial scan of the attributes we can only do a raw
-    //      scan for key/value pairs. So this vector is used to store them
-    //      until they can be processed (and put into fAttrList.)
-    //
-    //  fSchemaValidator
-    //      The Schema validator instance.
-    //
-    //  fSeeXsi
-    //      This flag indicates a schema has been seen.
-    //
-    //  fElemState
-    //  fElemStateSize
-    //      Stores an element next state from DFA content model - used for
-    //      wildcard validation
-    //
-    // fElemNonDeclPool
-    //      registry for elements without decls in the grammar
-    // fElemCount
-    //      count of the number of start tags seen so far (starts at 1).
-    //      Used for duplicate attribute detection/processing of required/defaulted attributes
-    // fAttDefRegistry
-    //      mapping from XMLAttDef instances to the count of the last
-    //      start tag where they were utilized.
-    // fUndeclaredAttrRegistryNS
-    //      mapping of namespaceId/localName pairs to the count of the last
-    //      start tag in which they occurred.
-    //  fPSVIAttrList
-    //      PSVI attribute list implementation that needs to be
-    //      filled when a PSVIHandler is registered
-    //
-    // -----------------------------------------------------------------------
-    bool                                    fSeeXsi;
-    Grammar::GrammarType                    fGrammarType;
-    unsigned int                            fElemStateSize;
-    unsigned int*                           fElemState;
-    XMLBuffer                               fContent;
-    ValueHashTableOf<XMLCh>*                fEntityTable;
-    RefVectorOf<KVStringPair>*              fRawAttrList;
-    unsigned int                            fRawAttrColonListSize;
-    int*                                    fRawAttrColonList;
-    SchemaGrammar*                          fSchemaGrammar;
-    SchemaValidator*                        fSchemaValidator;
-    IdentityConstraintHandler*              fICHandler;
-    RefHash3KeysIdPool<SchemaElementDecl>*  fElemNonDeclPool;
-    unsigned int                            fElemCount;
-    RefHashTableOf<unsigned int>*           fAttDefRegistry;
-    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
-    PSVIAttributeList *                     fPSVIAttrList;
-    XSModel*                                fModel;
-    PSVIElement*                            fPSVIElement;
-    ValueStackOf<bool>*                     fErrorStack;
-    PSVIElemContext                         fPSVIElemContext;
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    SGXMLScanner();
-    SGXMLScanner(const SGXMLScanner&);
-    SGXMLScanner& operator=(const SGXMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanCDSection();
-    virtual void scanCharData(XMLBuffer& toToUse);
-    virtual EntityExpRes scanEntityRef
-    (
-        const   bool    inAttVal
-        ,       XMLCh&  firstCh
-        ,       XMLCh&  secondCh
-        ,       bool&   escaped
-    );
-    virtual void scanDocTypeDecl();
-    virtual void sendCharData(XMLBuffer& toSend);
-    virtual InputSource* resolveSystemId(const XMLCh* const sysId
-                                        ,const XMLCh* const pubId);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void commonInit();
-    void cleanUp();
-
-    bool normalizeAttValue
-    (
-        const   XMLAttDef* const    attDef
-        , const XMLCh* const        attrName 
-        , const XMLCh* const        value
-        ,       XMLBuffer&          toFill
-    );
-    bool normalizeAttRawValue
-    (
-        const   XMLCh* const        attrName
-        , const XMLCh* const        value
-        ,       XMLBuffer&          toFill
-    );
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        ,       XMLBuffer&          uriBufToFill
-        , const ElemStack::MapModes mode
-    );
-    void scanRawAttrListforNameSpaces(int attCount);
-    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
-    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
-    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
-    bool anyAttributeValidation(SchemaAttDef* attWildCard,
-                                unsigned int uriId,
-                                bool& skipThisOne,
-                                bool& laxThisOne);
-
-    // -----------------------------------------------------------------------
-    //  Private scanning methods
-    // -----------------------------------------------------------------------
-    bool basicAttrValueScan
-    (
-        const   XMLCh* const    attrName
-        ,       XMLBuffer&      toFill
-    );
-    bool scanAttValue
-    (
-        const   XMLAttDef* const    attDef
-        ,       XMLBuffer&          toFill
-    );
-    bool scanContent();
-
-    // -----------------------------------------------------------------------
-    //  IdentityConstraints Activation methods
-    // -----------------------------------------------------------------------
-    inline bool toCheckIdentityConstraint()  const;
-
-    // -----------------------------------------------------------------------
-    //  Grammar preparsing methods
-    // -----------------------------------------------------------------------
-    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
-
-    // -----------------------------------------------------------------------
-    //  PSVI handling methods
-    // -----------------------------------------------------------------------
-    void endElementPSVI(SchemaElementDecl* const elemDecl,
-                        DatatypeValidator* const memberDV);
-    void resetPSVIElemContext();
-};
-
-inline const XMLCh* SGXMLScanner::getName() const
-{
-    return XMLUni::fgSGXMLScanner;
-}
-
-inline bool SGXMLScanner::toCheckIdentityConstraint()  const
-{
-    return fValidate && fIdentityConstraintChecking && fICHandler;
-}
-
-inline Grammar::GrammarType SGXMLScanner::getCurrentGrammarType() const
-{
-    return fGrammarType;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ValidationContextImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: ValidationContextImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(VALIDATION_CONTEXTIMPL_HPP)
-#define VALIDATION_CONTEXTIMPL_HPP
-
-#include <xercesc/framework/ValidationContext.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-class ElemStack;
-
-class XMLPARSER_EXPORT ValidationContextImpl : public ValidationContext
-{
-public :
-    // -----------------------------------------------------------------------
-    /** @name Virtual destructor for derived classes */
-    // -----------------------------------------------------------------------
-    //@{
-
-    /**
-      * virtual destructor
-      *
-      */
-    virtual ~ValidationContextImpl();
-
-    ValidationContextImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
-
-    //@}
-
-    // -----------------------------------------------------------------------
-    /** @name The ValidationContextImpl Interface */
-    // -----------------------------------------------------------------------
-    //@{
-
-    /**
-      * IDRefList
-      *
-      */
-    virtual RefHashTableOf<XMLRefInfo>*  getIdRefList() const;
-
-    virtual void                         setIdRefList(RefHashTableOf<XMLRefInfo>* const);
-
-    virtual void                         clearIdRefList();
-
-    virtual void                         addId(const XMLCh * const );
-
-    virtual void                         addIdRef(const XMLCh * const );
-
-    virtual void                         toCheckIdRefList(bool);
-
-    /**
-      * EntityDeclPool
-      *
-      */
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
-
-    virtual const NameIdPool<DTDEntityDecl>* setEntityDeclPool(const NameIdPool<DTDEntityDecl>* const);    
-           
-    virtual void                             checkEntity(const XMLCh * const ) const;
-
-
-    /**
-      * Union datatype handling
-      *
-      */
-
-    virtual DatatypeValidator * getValidatingMemberType() const;
-    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) ;
-
-    /**
-      * QName datatype handling
-      * Create default implementations for source code compatibility
-      */
-    virtual bool isPrefixUnknown(XMLCh* prefix);
-    virtual void setElemStack(ElemStack* elemStack);
-
-    //@}
-  
-private:
-    // -----------------------------------------------------------------------
-    /** name  Unimplemented copy constructor and operator= */
-    // -----------------------------------------------------------------------
-    //@{
-    ValidationContextImpl(const ValidationContextImpl& );
-    ValidationContextImpl& operator=(const ValidationContextImpl& );
-    //@}
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fIDRefList:  owned/adopted
-    //      This is a list of XMLRefInfo objects. This member lets us do all
-    //      needed ID-IDREF balancing checks.
-    //
-    //  fEntityDeclPool: referenced only
-    //      This is a pool of EntityDecl objects, which contains all of the
-    //      general entities that are declared in the DTD subsets, plus the
-    //      default entities (such as &gt; &lt; ...) defined by the XML Standard.
-    //
-    //  fToAddToList
-    //  fValidatingMemberType
-    //      The member type in a union that actually
-    //      validated some text.  Note that the validationContext does not
-    //      own this object, and the value of getValidatingMemberType
-    //      will not be accurate unless the type of the most recently-validated
-    //      element/attribute is in fact a union datatype.
-    //  fElemStack
-    //      Need access to elemstack to look up URI's that are inscope.
-    // -----------------------------------------------------------------------
-
-    RefHashTableOf<XMLRefInfo>*         fIdRefList;
-    const NameIdPool<DTDEntityDecl>*    fEntityDeclPool;
-    bool                                fToCheckIdRefList;
-    DatatypeValidator *                 fValidatingMemberType;    
-    ElemStack*      fElemStack;
-
-};
-
-
-
-inline DatatypeValidator * ValidationContextImpl::getValidatingMemberType() const
-{
-    return fValidatingMemberType;
-}
-
-inline void ValidationContextImpl::setValidatingMemberType(DatatypeValidator * validatingMemberType) 
-{
-    fValidatingMemberType = validatingMemberType;
-}
-
-inline void ValidationContextImpl::setElemStack(ElemStack* elemStack) {
-    fElemStack = elemStack;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
-
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttrListImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: VecAttrListImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(VECATTRLISTIMPL_HPP)
-#define VECATTRLISTIMPL_HPP
-
-#include <xercesc/sax/AttributeList.hpp>
-#include <xercesc/framework/XMLAttr.hpp>
-#include <xercesc/util/RefVectorOf.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLPARSER_EXPORT VecAttrListImpl : public XMemory, public AttributeList
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    VecAttrListImpl();
-    ~VecAttrListImpl();
-
-
-    // -----------------------------------------------------------------------
-    //  Implementation of the attribute list interface
-    // -----------------------------------------------------------------------
-    virtual unsigned int getLength() const;
-    virtual const XMLCh* getName(const unsigned int index) const;
-    virtual const XMLCh* getType(const unsigned int index) const;
-    virtual const XMLCh* getValue(const unsigned int index) const;
-    virtual const XMLCh* getType(const XMLCh* const name) const;
-    virtual const XMLCh* getValue(const XMLCh* const name) const;
-    virtual const XMLCh* getValue(const char* const name) const;
-
-
-    // -----------------------------------------------------------------------
-    //  Setter methods
-    // -----------------------------------------------------------------------
-    void setVector
-    (
-        const   RefVectorOf<XMLAttr>* const srcVec
-        , const unsigned int                count
-        , const bool                        adopt = false
-    );
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    VecAttrListImpl(const VecAttrListImpl&);
-    VecAttrListImpl& operator=(const VecAttrListImpl&);
-
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fAdopt
-    //      Indicates whether the passed vector is to be adopted or not. If
-    //      so, we destroy it when we are destroyed (and when a new vector is
-    //      set!)
-    //
-    //  fCount
-    //      The count of elements in the vector that should be considered
-    //      valid. This is an optimization to allow vector elements to be
-    //      reused over and over but a different count of them be valid for
-    //      each use.
-    //
-    //  fVector
-    //      The vector that provides the backing for the list.
-    // -----------------------------------------------------------------------
-    bool                        fAdopt;
-    unsigned int                fCount;
-    const RefVectorOf<XMLAttr>* fVector;
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttributesImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: VecAttributesImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(VECATTRIBUTESIMPL_HPP)
-#define VECATTRIBUTESIMPL_HPP
-
-#include <xercesc/sax2/Attributes.hpp>
-#include <xercesc/framework/XMLAttr.hpp>
-#include <xercesc/util/RefVectorOf.hpp>
-#include <xercesc/internal/XMLScanner.hpp>
-#include <xercesc/framework/XMLBuffer.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLPARSER_EXPORT VecAttributesImpl : public Attributes
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    VecAttributesImpl();
-    ~VecAttributesImpl();
-
-
-    // -----------------------------------------------------------------------
-    //  Implementation of the attributes interface
-    // -----------------------------------------------------------------------
-    virtual unsigned int getLength() const ;
-
-	virtual const XMLCh* getURI(const unsigned int index) const;
-    virtual const XMLCh* getLocalName(const unsigned int index) const ;
-    virtual const XMLCh* getQName(const unsigned int index) const ;
-    virtual const XMLCh* getType(const unsigned int index) const ;
-    virtual const XMLCh* getValue(const unsigned int index) const ;
-
-	virtual int getIndex(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
-	virtual int getIndex(const XMLCh* const qName ) const  ;
-
-	virtual const XMLCh* getType(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
-    virtual const XMLCh* getType(const XMLCh* const qName) const ;
-
-    virtual const XMLCh* getValue(const XMLCh* const qName) const;
-	virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
-
-
-    // -----------------------------------------------------------------------
-    //  Setter methods
-    // -----------------------------------------------------------------------
-    void setVector
-    (
-        const   RefVectorOf<XMLAttr>* const srcVec
-        , const unsigned int                count
-		, const XMLScanner * const		scanner
-        , const bool                        adopt = false
-    );
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    VecAttributesImpl(const VecAttributesImpl&);
-    VecAttributesImpl& operator=(const VecAttributesImpl&);
-
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fAdopt
-    //      Indicates whether the passed vector is to be adopted or not. If
-    //      so, we destroy it when we are destroyed (and when a new vector is
-    //      set!)
-    //
-    //  fCount
-    //      The count of elements in the vector that should be considered
-    //      valid. This is an optimization to allow vector elements to be
-    //      reused over and over but a different count of them be valid for
-    //      each use.
-    //
-    //  fVector
-    //      The vector that provides the backing for the list.
-	//
-	//	fScanner
-	//		This is a pointer to the in use Scanner, so that we can resolve
-	//		namespace URIs from UriIds
-	//
-	//	fURIBuffer
-	//		A temporary buffer which is re-used when getting namespace URI's
-    // -----------------------------------------------------------------------
-    bool                        fAdopt;
-    unsigned int                fCount;
-    const RefVectorOf<XMLAttr>* fVector;
-	const XMLScanner *		fScanner ;
-	//XMLBuffer				    fURIBuffer ;
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif // ! VECATTRIBUTESIMPL_HPP
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: WFXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(WFXMLSCANNER_HPP)
-#define WFXMLSCANNER_HPP
-
-#include <xercesc/internal/XMLScanner.hpp>
-#include <xercesc/util/ValueHashTableOf.hpp>
-#include <xercesc/util/ValueVectorOf.hpp>
-#include <xercesc/validators/DTD/DTDElementDecl.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-
-//  This is a a non-validating scanner. No DOCTYPE or XML Schema processing
-//  will take place.
-class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    WFXMLScanner
-    (
-        XMLValidator* const       valToAdopt
-        , GrammarResolver* const  grammarResolver
-        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-    );
-    WFXMLScanner
-    (
-        XMLDocumentHandler* const docHandler
-        , DocTypeHandler* const   docTypeHandler
-        , XMLEntityHandler* const entityHandler
-        , XMLErrorReporter* const errReporter
-        , XMLValidator* const     valToAdopt
-        , GrammarResolver* const  grammarResolver
-        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-    );
-    virtual ~WFXMLScanner();
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner public virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const;
-    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
-    virtual unsigned int resolveQName
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        ,       int&                prefixColonPos
-    );
-    virtual void scanDocument
-    (
-        const   InputSource&    src
-    );
-    virtual bool scanNext(XMLPScanToken& toFill);
-    virtual Grammar* loadGrammar
-    (
-        const   InputSource&    src
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    WFXMLScanner();
-    WFXMLScanner(const WFXMLScanner&);
-    WFXMLScanner& operator=(const WFXMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanCDSection();
-    virtual void scanCharData(XMLBuffer& toToUse);
-    virtual EntityExpRes scanEntityRef
-    (
-        const   bool    inAttVal
-        ,       XMLCh&  firstCh
-        ,       XMLCh&  secondCh
-        ,       bool&   escaped
-    );
-    virtual void scanDocTypeDecl();
-    virtual void scanReset(const InputSource& src);
-    virtual void sendCharData(XMLBuffer& toSend);
-    virtual InputSource* resolveSystemId(const XMLCh* const sysId
-                                        ,const XMLCh* const pubId);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void commonInit();
-    void cleanUp();
-    unsigned int resolvePrefix
-    (
-        const   XMLCh* const        prefix
-        , const ElemStack::MapModes mode
-    );
-
-    // -----------------------------------------------------------------------
-    //  Private scanning methods
-    // -----------------------------------------------------------------------
-    bool scanAttValue
-    (
-        const   XMLCh* const    attrName
-        ,       XMLBuffer&      toFill
-    );
-    bool scanContent();
-    void scanEndTag(bool& gotData);
-    bool scanStartTag(bool& gotData);
-    bool scanStartTagNS(bool& gotData);
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fEntityTable
-    //      This the table that contains the default entity entries.
-    //
-    //  fAttrNameHashList
-    //      This contains the hash value for attribute names. It's used when
-    //      checking for duplicate attributes.
-    //
-    //  fAttrNSList
-    //      This contains XMLAttr objects that we need to map their prefixes
-    //      to URIs when namespace is enabled.
-    //
-    // -----------------------------------------------------------------------
-    unsigned int                       fElementIndex;
-    RefVectorOf<XMLElementDecl>*       fElements;
-    ValueHashTableOf<XMLCh>*           fEntityTable;
-    ValueVectorOf<unsigned int>*       fAttrNameHashList;
-    ValueVectorOf<XMLAttr*>*           fAttrNSList;
-    RefHashTableOf<XMLElementDecl>*    fElementLookup;  
-};
-
-inline const XMLCh* WFXMLScanner::getName() const
-{
-    return XMLUni::fgWFXMLScanner;
-}
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XMLGrammarPoolImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLGrammarPoolImplIMPL_HPP)
-#define XMLGrammarPoolImplIMPL_HPP
-
-#include <xercesc/framework/XMLGrammarPool.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLSynchronizedStringPool;
-
-class XMLUTIL_EXPORT XMLGrammarPoolImpl : public XMLGrammarPool
-{
-public :
-    // -----------------------------------------------------------------------
-    /** @name constructor and destructor */
-    // -----------------------------------------------------------------------
-    //@{
-
-    XMLGrammarPoolImpl(MemoryManager* const memMgr);
-
-    ~XMLGrammarPoolImpl();
-    //@}
-
-    // -----------------------------------------------------------------------
-    /** @name Implementation of Grammar Pool Interface */
-    // -----------------------------------------------------------------------
-    //@{
-   
-    /**
-      * cacheGrammar
-      *
-      * Provide the grammar pool with an opportunity
-      * to cache the given grammar.  If the pool does not choose to do so,
-      * it should return false; otherwise, it should return true, so that
-      * the caller knows whether the grammar has been adopted.
-      *
-      * @param gramToCache: the Grammar to be cached in the grammar pool
-      * @return true if the grammar pool has elected to cache the grammar (in which case
-      * it is assumed to have adopted it); false if it does not cache it
-	  *
-      */
-    virtual bool           cacheGrammar(Grammar* const               gramToCache);
-    
-
-    /**
-      * retrieveGrammar
-      *
-      * @param gramDesc: the Grammar Description used to search for grammar
-	  *                  cached in the grammar pool
-	  *
-      */
-    virtual Grammar*       retrieveGrammar(XMLGrammarDescription* const gramDesc);
-    
-        
-    /**
-      * orphanGrammar
-      *
-	  * grammar removed from the grammar pool and owned by the caller
-      *
-      * @param nameSpaceKey: Key used to search for grammar in the grammar pool
-	  *
-      */
-    virtual Grammar*       orphanGrammar(const XMLCh* const nameSpaceKey);  
-
-
-    /**
-     * Get an enumeration of the cached Grammars in the Grammar pool
-     *
-     * @return enumeration of the cached Grammars in Grammar pool
-     */
-    virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const;
-
-    /**
-      * clear
-      *
-	  * all grammars are removed from the grammar pool and deleted.
-      * @return true if the grammar pool was cleared. false if it did not.
-      */
-    virtual bool           clear();
-        
-    /**
-      * lockPool
-      *
-	  * When this method is called by the application, the 
-      * grammar pool should stop adding new grammars to the cache.
-      */
-    virtual void           lockPool();
-    
-    /**
-      * unlockPool
-      *
-	  * After this method has been called, the grammar pool implementation
-      * should return to its default behaviour when cacheGrammars(...) is called.
-      *
-      * For PSVI support any previous XSModel that was produced will be deleted.
-      */
-    virtual void           unlockPool();
-
-    //@}
-
-    // -----------------------------------------------------------------------
-    /** @name  Implementation of Factory interface */
-    // -----------------------------------------------------------------------
-    //@{
-
-    /**
-      * createDTDGrammar
-      *
-      */
-    virtual DTDGrammar*            createDTDGrammar();
-
-    /**
-      * createSchemaGrammar
-      *
-      */
-    virtual SchemaGrammar*         createSchemaGrammar();
-                    
-    /**
-      * createDTDDescription
-      *
-      */	
-    virtual XMLDTDDescription*     createDTDDescription(const XMLCh* const systemId);
-    /**
-      * createSchemaDescription
-      *
-      */		
-    virtual XMLSchemaDescription*  createSchemaDescription(const XMLCh* const targetNamespace);
-    //@}
-	
-    // -----------------------------------------------------------------------
-    /** @name  schema component model support */
-    // -----------------------------------------------------------------------                                                        
-    //@{
-
-    /***
-      * Return an XSModel derived from the components of all SchemaGrammars
-      * in the grammar pool.  If the pool is locked, this should
-      * be a thread-safe operation.  It should return null if and only if
-      * the pool is empty.
-      *
-      * Calling getXSModel() on an unlocked grammar pool may result in the
-      * creation of a new XSModel with the old XSModel being deleted.  The
-      * function will return a different address for the XSModel if it has
-      * changed.
-      *
-      * In this implementation, when the pool is not locked a new XSModel will be
-      * computed each this time the pool is called if the pool has changed (and the
-      * previous one will be destroyed at that time).  When the lockPool()
-      * method is called, an XSModel will be generated and returned whenever this method is called
-      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
-      * operation is called.  The XSModel will not be serialized,
-      * but will be recreated if a deserialized pool is in the 
-      * locked state.
-      *
-      * @deprecated (shouldn't use address to determine if XSModel changed)
-      */
-    virtual XSModel *getXSModel();
-
-    /***
-      * Return an XSModel derived from the components of all SchemaGrammars
-      * in the grammar pool.  If the pool is locked, this should
-      * be a thread-safe operation.  
-      *
-      * NOTE: The function should NEVER return NULL.  If there are no grammars in
-      *       the pool it should return an XSModel containing the Schema for Schema.
-      *
-      * Calling getXSModel() on an unlocked grammar pool may result in the
-      * creation of a new XSModel with the old XSModel being deleted.
-      * The bool parameter will indicate if the XSModel was changed.
-      *  
-      * In this implementation, when the pool is not locked a new XSModel will be
-      * computed each this time the pool is called if the pool has changed (and the
-      * previous one will be destroyed at that time).  When the lockPool()
-      * method is called, an XSModel will be generated and returned whenever this method is called
-      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
-      * operation is called.  The XSModel will not be serialized,
-      * but will be recreated if a deserialized pool is in the 
-      * locked state.
-      *      
-      */
-    virtual XSModel *getXSModel(bool& XSModelWasChanged);
-
-    // @}
-    // -----------------------------------------------------------------------
-    /** @name  Getter */
-    // -----------------------------------------------------------------------                                                        
-    //@{
-
-    /**
-      * Return an XMLStringPool for use by validation routines.  
-      * Implementations should not create a string pool on each call to this
-      * method, but should maintain one string pool for all grammars
-      * for which this pool is responsible.
-      */
-    virtual XMLStringPool *getURIStringPool();
-
-    // @}
-
-    // -----------------------------------------------------------------------
-    // serialization and deserialization support
-    // -----------------------------------------------------------------------
-
-    /***
-      *
-      * Multiple serializations
-      *
-      *    For multiple serializations, if the same file name is given, then the 
-      *    last result will be in the file (overwriting mode), if different file 
-      *    names are given, then there are multiple data stores for each serialization.
-      *
-      * Multiple deserializations
-      * 
-      *    Not supported
-      *
-      * Versioning
-      *
-      *    Only binary data serialized with the current XercesC Version and
-      *    SerializationLevel is supported.
-      *
-      * Clean up
-      *
-      *    In the event of an exception thrown due to a corrupted data store during 
-      *    deserialization, this implementation may not be able to clean up all resources 
-      *    allocated, and therefore it is the client application's responsibility to 
-      *    clean up those unreleased resources.
-      *
-      * Coupling of Grammars and StringPool
-      *
-      *    This implementation assumes that StringPool shall always be 
-      *    serialized/deserialized together with the grammars. In the case that such a
-      *    coupling is not desired, client application can modify this behaviour by 
-      *    either derivate from this imlementation and overwrite the serializeGrammars()
-      *    and/or deserializeGrammars() to decouple grammars and string pool, or
-      *    Once deserializeGrammars() is done, insert another StringPool through
-      *    setStringPool().
-      *
-      *    Client application shall be aware of the unpredicatable/undefined consequence 
-      *    of this decoupling.
-      */
-
-    virtual void     serializeGrammars(BinOutputStream* const); 
-    virtual void     deserializeGrammars(BinInputStream* const); 
-
-private:
-
-    virtual void    createXSModel();
-
-    void
-    cleanUp();
-
-    // -----------------------------------------------------------------------
-    /** name  Unimplemented copy constructor and operator= */
-    // -----------------------------------------------------------------------
-    //@{
-    XMLGrammarPoolImpl(const XMLGrammarPoolImpl& );
-    XMLGrammarPoolImpl& operator=(const XMLGrammarPoolImpl& );
-    //@}
-
-    // -----------------------------------------------------------------------
-    //
-    // fGrammarRegistry: 
-    //
-	//    container
-    // fStringPool
-    //    grammars need a string pool for URI -> int mappings
-    // fSynchronizedStringPool
-    //      When the grammar pool is locked, provide a string pool
-    //      that can be updated in a thread-safe manner.
-    // fLocked
-    //      whether the pool has been locked
-    //
-    // -----------------------------------------------------------------------
-    RefHashTableOf<Grammar>*            fGrammarRegistry; 
-    XMLStringPool*                      fStringPool;
-    XMLSynchronizedStringPool*          fSynchronizedStringPool;
-    XSModel*                            fXSModel;
-    bool                                fLocked;
-    bool                                fXSModelIsValid;
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLInternalErrorHandler.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XMLInternalErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLINTERNALERRORHANDLER_HPP)
-#define XMLINTERNALERRORHANDLER_HPP
-
-#include <xercesc/util/XercesDefs.hpp>
-#include <xercesc/sax/ErrorHandler.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLInternalErrorHandler : public ErrorHandler
-{
-public:
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    XMLInternalErrorHandler(ErrorHandler* userHandler = 0) :
-       fSawWarning(false),
-       fSawError(false),
-       fSawFatal(false),
-       fUserErrorHandler(userHandler)
-    {
-    }
-
-    ~XMLInternalErrorHandler()
-    {
-    }
-
-    // -----------------------------------------------------------------------
-    //  Implementation of the error handler interface
-    // -----------------------------------------------------------------------
-    void warning(const SAXParseException& toCatch);
-    void error(const SAXParseException& toCatch);
-    void fatalError(const SAXParseException& toCatch);
-    void resetErrors();
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    bool getSawWarning() const;
-    bool getSawError() const;
-    bool getSawFatal() const;
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fSawWarning
-    //      This is set if we get any warning, and is queryable via a getter
-    //      method.
-    //
-    //  fSawError
-    //      This is set if we get any errors, and is queryable via a getter
-    //      method.
-    //
-    //  fSawFatal
-    //      This is set if we get any fatal, and is queryable via a getter
-    //      method.
-    //
-    //  fUserErrorHandler
-    //      This is the error handler from user
-    // -----------------------------------------------------------------------
-    bool    fSawWarning;
-    bool    fSawError;
-    bool    fSawFatal;
-    ErrorHandler* fUserErrorHandler;
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    XMLInternalErrorHandler(const XMLInternalErrorHandler&);
-    XMLInternalErrorHandler& operator=(const XMLInternalErrorHandler&);
-};
-
-inline bool XMLInternalErrorHandler::getSawWarning() const
-{
-    return fSawWarning;
-}
-
-inline bool XMLInternalErrorHandler::getSawError() const
-{
-    return fSawError;
-}
-
-inline bool XMLInternalErrorHandler::getSawFatal() const
-{
-    return fSawFatal;
-}
-
-inline void XMLInternalErrorHandler::warning(const SAXParseException& toCatch)
-{
-    fSawWarning = true;
-    if (fUserErrorHandler)
-        fUserErrorHandler->warning(toCatch);
-}
-
-inline void XMLInternalErrorHandler::error(const SAXParseException& toCatch)
-{
-    fSawError = true;
-    if (fUserErrorHandler)
-        fUserErrorHandler->error(toCatch);
-}
-
-inline void XMLInternalErrorHandler::fatalError(const SAXParseException& toCatch)
-{
-    fSawFatal = true;
-    if (fUserErrorHandler)
-        fUserErrorHandler->fatalError(toCatch);
-}
-
-inline void XMLInternalErrorHandler::resetErrors()
-{
-    fSawWarning = false;
-    fSawError = false;
-    fSawFatal = false;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLReader.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,783 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XMLReader.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLREADER_HPP)
-#define XMLREADER_HPP
-
-#include <xercesc/util/XMLChar.hpp>
-#include <xercesc/framework/XMLRecognizer.hpp>
-#include <xercesc/framework/XMLBuffer.hpp>
-#include <xercesc/util/TranscodingException.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class InputSource;
-class BinInputStream;
-class ReaderMgr;
-class XMLScanner;
-class XMLTranscoder;
-
-
-// ---------------------------------------------------------------------------
-//  Instances of this class are used to manage the content of entities. The
-//  scanner maintains a stack of these, one for each entity (this means entity
-//  in the sense of any parsed file or internal entity) currently being
-//  scanned. This class, given a binary input stream will handle reading in
-//  the data and decoding it from its external decoding into the internal
-//  Unicode format. Once internallized, this class provides the access
-//  methods to read in the data in various ways, maintains line and column
-//  information, and provides high performance character attribute checking
-//  methods.
-//
-//  This is NOT to be derived from.
-//
-// ---------------------------------------------------------------------------
-class XMLPARSER_EXPORT XMLReader : public XMemory
-{
-public:
-    // -----------------------------------------------------------------------
-    //  Public types
-    // -----------------------------------------------------------------------
-    enum Types
-    {
-        Type_PE
-        , Type_General
-    };
-
-    enum Sources
-    {
-        Source_Internal
-        , Source_External
-    };
-
-    enum RefFrom
-    {
-        RefFrom_Literal
-        , RefFrom_NonLiteral
-    };
-
-    enum XMLVersion
-    {
-        XMLV1_0
-        , XMLV1_1
-        , XMLV_Unknown
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Public, query methods
-    // -----------------------------------------------------------------------
-    bool isAllSpaces
-    (
-        const   XMLCh* const    toCheck
-        , const unsigned int    count
-    ) const;
-
-    bool containsWhiteSpace
-    (
-        const   XMLCh* const    toCheck
-        , const unsigned int    count
-    ) const;
-
-
-    bool isXMLLetter(const XMLCh toCheck) const;
-    bool isFirstNameChar(const XMLCh toCheck) const;
-    bool isNameChar(const XMLCh toCheck) const;    
-    bool isPlainContentChar(const XMLCh toCheck) const;
-    bool isSpecialStartTagChar(const XMLCh toCheck) const;
-    bool isXMLChar(const XMLCh toCheck) const;
-    bool isWhitespace(const XMLCh toCheck) const;
-    bool isControlChar(const XMLCh toCheck) const;
-    bool isPublicIdChar(const XMLCh toCheck) const;
-    bool isFirstNCNameChar(const XMLCh toCheck) const;
-    bool isNCNameChar(const XMLCh toCheck) const;    
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    XMLReader
-    (
-        const   XMLCh* const          pubId
-        , const XMLCh* const          sysId
-        ,       BinInputStream* const streamToAdopt
-        , const RefFrom               from
-        , const Types                 type
-        , const Sources               source
-        , const bool                  throwAtEnd = false
-        , const bool                  calculateSrcOfs = true
-        , const XMLVersion            xmlVersion = XMLV1_0
-        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    XMLReader
-    (
-        const   XMLCh* const          pubId
-        , const XMLCh* const          sysId
-        ,       BinInputStream* const streamToAdopt
-        , const XMLCh* const          encodingStr
-        , const RefFrom               from
-        , const Types                 type
-        , const Sources               source
-        , const bool                  throwAtEnd = false
-        , const bool                  calculateSrcOfs = true
-        , const XMLVersion            xmlVersion = XMLV1_0
-        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    XMLReader
-    (
-        const   XMLCh* const          pubId
-        , const XMLCh* const          sysId
-        ,       BinInputStream* const streamToAdopt
-        , XMLRecognizer::Encodings    encodingEnum
-        , const RefFrom               from
-        , const Types                 type
-        , const Sources               source
-        , const bool                  throwAtEnd = false
-        , const bool                  calculateSrcOfs = true
-        , const XMLVersion            xmlVersion = XMLV1_0
-        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    ~XMLReader();
-
-
-    // -----------------------------------------------------------------------
-    //  Character buffer management methods
-    // -----------------------------------------------------------------------
-    unsigned long charsLeftInBuffer() const;
-    bool refreshCharBuffer();
-
-
-    // -----------------------------------------------------------------------
-    //  Scanning methods
-    // -----------------------------------------------------------------------
-    bool getName(XMLBuffer& toFill, const bool token);
-    bool getQName(XMLBuffer& toFill, int* colonPosition);
-    bool getNextChar(XMLCh& chGotten);
-    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
-    void movePlainContentChars(XMLBuffer &dest);
-    bool getSpaces(XMLBuffer& toFill);
-    bool getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
-    bool peekNextChar(XMLCh& chGotten);
-    bool skipIfQuote(XMLCh& chGotten);
-    bool skipSpaces(bool& skippedSomething, bool inDecl = false);
-    bool skippedChar(const XMLCh toSkip);
-    bool skippedSpace();
-    bool skippedString(const XMLCh* const toSkip);
-    bool peekString(const XMLCh* const toPeek);
-
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    XMLSSize_t getColumnNumber() const;
-    const XMLCh* getEncodingStr() const;
-    XMLSSize_t getLineNumber() const;
-    bool getNoMoreFlag() const;
-    const XMLCh* getPublicId() const;
-    unsigned int getReaderNum() const;
-    RefFrom getRefFrom() const;
-    Sources getSource() const;
-    unsigned int getSrcOffset() const;
-    const XMLCh* getSystemId() const;
-    bool getThrowAtEnd() const;
-    Types getType() const;
-
-
-    // -----------------------------------------------------------------------
-    //  Setter methods
-    // -----------------------------------------------------------------------
-    bool setEncoding
-    (
-        const   XMLCh* const    newEncoding
-    );
-    void setReaderNum(const unsigned int newNum);
-    void setThrowAtEnd(const bool newValue);
-    void setXMLVersion(const XMLVersion version);
-
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    XMLReader(const XMLReader&);
-    XMLReader& operator=(const XMLReader&);
-
-    // ---------------------------------------------------------------------------
-    //  Class Constants
-    //
-    //  kCharBufSize
-    //      The size of the character spool buffer that we use. Its not terribly
-    //      large because its just getting filled with data from a raw byte
-    //      buffer as we go along. We don't want to decode all the text at
-    //      once before we find out that there is an error.
-    //
-    //      NOTE: This is a size in characters, not bytes.
-    //
-    //  kRawBufSize
-    //      The size of the raw buffer from which raw bytes are spooled out
-    //      as we transcode chunks of data. As it is emptied, it is filled back
-    //      in again from the source stream.
-    // ---------------------------------------------------------------------------
-    enum Constants
-    {
-        kCharBufSize        = 16 * 1024
-        , kRawBufSize       = 48 * 1024
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void checkForSwapped();
-
-    void doInitCharSizeChecks();
-
-    void doInitDecode();
-
-    XMLByte getNextRawByte
-    (
-        const   bool            eoiOk
-    );
-
-    void refreshRawBuffer();
-
-    void setTranscoder
-    (
-        const   XMLCh* const    newEncoding
-    );
-
-    unsigned int xcodeMoreChars
-    (
-                XMLCh* const            bufToFill
-        ,       unsigned char* const    charSizes
-        , const unsigned int            maxChars
-    );
-
-    void handleEOL
-    (
-              XMLCh&   curCh
-            , bool     inDecl = false
-    );
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fCharIndex
-    //      The index into the character buffer. When this hits fCharsAvail
-    //      then its time to refill.
-    //
-    //  fCharBuf
-    //      A buffer that the reader manager fills up with transcoded
-    //      characters a small amount at a time.
-    //
-    //  fCharsAvail
-    //      The characters currently available in the character buffer.
-    //
-    //  fCharSizeBuf
-    //      This buffer is an array that contains the number of source chars
-    //      eaten to create each char in the fCharBuf buffer. So the entry
-    //      fCharSizeBuf[x] is the number of source chars that were eaten
-    //      to make the internalized char fCharBuf[x]. This only contains
-    //      useful data if fSrcOfsSupported is true.
-    //
-    //  fCharOfsBuf
-    //      This buffer is an array that contains the offset in the
-    //      fRawByteBuf buffer of each char in the fCharBuf buffer. It
-    //      only contains useful data if fSrcOfsSupported is true.
-    //
-    //  fCurCol
-    //  fCurLine
-    //      The current line and column that we are in within this reader's
-    //      text.
-    //
-    //  fEncoding
-    //      This is the rough encoding setting. This enum is set during
-    //      construction and just tells us the rough family of encoding that
-    //      we are doing.
-    //
-    //  fEncodingStr
-    //      This is the name of the encoding we are using. It will be
-    //      provisionally set during construction, from the auto-sensed
-    //      encoding. But it might be overridden when the XMLDecl is finally
-    //      seen by the scanner. It can also be forced to a particular
-    //      encoding, in which case fForcedEncoding is set.
-    //
-    //  fForcedEncoding
-    //      If the encoding if forced then this is set and all other
-    //      information will be ignored. This encoding will be taken as
-    //      gospel. This is done by calling an alternate constructor.
-    //
-    //  fNoMore
-    //      This is set when the source text is exhausted. It lets us know
-    //      quickly that no more text is available.
-    //
-    //  fRawBufIndex
-    //      The current index into the raw byte buffer. When its equal to
-    //      fRawBytesAvail then we need to read another buffer.
-    //
-    //  fRawByteBuf
-    //      This is the raw byte buffer that is used to spool out bytes
-    //      from into the fCharBuf buffer, as we transcode in blocks.
-    //
-    //  fRawBytesAvail
-    //      The number of bytes currently available in the raw buffer. This
-    //      helps deal with the last buffer's worth, which will usually not
-    //      be a full one.
-    //
-    //  fReaderNum
-    //      Each reader from a particular reader manager (which means from a
-    //      particular document) is given a unique number. The reader manager
-    //      sets these numbers. They are used to catch things like partial
-    //      markup errors.
-    //
-    //  fRefFrom
-    //      This flag is provided in the ctor, and tells us if we represent
-    //      some entity being expanded inside a literal. Sometimes things
-    //      happen differently inside and outside literals.
-    //
-    //  fPublicId
-    //  fSystemId
-    //      These are the system and public ids of the source that this
-    //      reader is reading.
-    //
-    //  fSentTrailingSpace
-    //      If we are a PE entity being read and we not referenced from a
-    //      literal, then a leading and trailing space must be faked into the
-    //      data. This lets us know we've done the trailing space already (so
-    //      we don't just keep doing it again and again.)
-    //
-    //  fSource
-    //      Indicates whether the content this reader is spooling as already
-    //      been internalized. This will prevent multiple processing of
-    //      whitespace when an already internalized entity is being spooled
-    //      out.
-    //
-    //  fSpareChar
-    //      Some encodings can create two chars in an atomic way, e.g.
-    //      surrogate pairs. We might not be able to store both, so we store
-    //      it here until the next buffer transcoding operation.
-    //
-    //  fSrcOfsBase
-    //      This is the base offset within the source of this entity. Values
-    //      in the curent fCharSizeBuf array are relative to this value.
-    //
-    //  fSrcOfsSupported
-    //      This flag is set to indicate whether source byte offset info
-    //      is supported. For intrinsic encodings, its always set since we
-    //      can always support it. For transcoder based encodings, we ask
-    //      the transcoder if it supports it or not.
-    //
-    //  fStream
-    //      This is the input stream that provides the data for the reader.
-    //      Its always treated as a raw byte stream. The derived class will
-    //      ask for buffers of text from it and will handle making some
-    //      sense of it.
-    //
-    //  fSwapped
-    //      If the encoding is one of the ones we do intrinsically, and its
-    //      in a different byte order from our native order, then this is
-    //      set to remind us to byte swap it during transcoding.
-    //
-    //  fThrowAtEnd
-    //      Indicates whether the reader manager should throw an end of entity
-    //      exception at the end of this reader instance. This is usually
-    //      set for top level external entity references. It overrides the
-    //      reader manager's global flag that controls throwing at the end
-    //      of entities. Defaults to false.
-    //
-    //  fTranscoder
-    //      If the encoding is not one that we handle intrinsically, then
-    //      we use an an external transcoder to do it. This class is an
-    //      abstraction that allows us to use pluggable external transcoding
-    //      services (via XMLTransService in util.)
-    //
-    //  fType
-    //      Indicates whether this reader represents a PE or not. If this
-    //      flag is true and the fInLiteral flag is false, then we will put
-    //      out an extra space at the end.
-    //
-    //  fgCharCharsTable;
-    //      Pointer to XMLChar table, depends on XML version
-    //
-    //  fNEL
-    //      Boolean indicates if NEL and LSEP should be recognized as NEL
-    //
-    //  fXMLVersion
-    //      Enum to indicate if this Reader is conforming to XML 1.0 or XML 1.1
-    // -----------------------------------------------------------------------
-    unsigned int                fCharIndex;
-    XMLCh                       fCharBuf[kCharBufSize];
-    unsigned int                fCharsAvail;
-    unsigned char               fCharSizeBuf[kCharBufSize];
-    unsigned int                fCharOfsBuf[kCharBufSize];
-    XMLSSize_t                  fCurCol;
-    XMLSSize_t                  fCurLine;
-    XMLRecognizer::Encodings    fEncoding;
-    XMLCh*                      fEncodingStr;
-    bool                        fForcedEncoding;
-    bool                        fNoMore;
-    XMLCh*                      fPublicId;
-    unsigned int                fRawBufIndex;
-    XMLByte                     fRawByteBuf[kRawBufSize];
-    unsigned int                fRawBytesAvail;
-    unsigned int                fReaderNum;
-    RefFrom                     fRefFrom;
-    bool                        fSentTrailingSpace;
-    Sources                     fSource;
-    unsigned int                fSrcOfsBase;
-    bool                        fSrcOfsSupported;
-    bool                        fCalculateSrcOfs;
-    XMLCh*                      fSystemId;
-    BinInputStream*             fStream;
-    bool                        fSwapped;
-    bool                        fThrowAtEnd;
-    XMLTranscoder*              fTranscoder;
-    Types                       fType;
-    XMLByte*                    fgCharCharsTable;
-    bool                        fNEL;
-    XMLVersion                  fXMLVersion;
-    MemoryManager*              fMemoryManager;
-};
-
-
-// ---------------------------------------------------------------------------
-//  XMLReader: Public, query methods
-// ---------------------------------------------------------------------------
-inline bool XMLReader::isNameChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gNameCharMask) != 0);
-}
-
-inline bool XMLReader::isNCNameChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gNCNameCharMask) != 0);
-}
-
-inline bool XMLReader::isPlainContentChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gPlainContentCharMask) != 0);
-}
-
-
-inline bool XMLReader::isFirstNameChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0);
-}
-
-inline bool XMLReader::isFirstNCNameChar(const XMLCh toCheck) const
-{
-    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0) 
-            && (toCheck != chColon));
-}
-
-inline bool XMLReader::isSpecialStartTagChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gSpecialStartTagCharMask) != 0);
-}
-
-inline bool XMLReader::isXMLChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gXMLCharMask) != 0);
-}
-
-inline bool XMLReader::isXMLLetter(const XMLCh toCheck) const
-{
-    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0)
-            && (toCheck != chColon) && (toCheck != chUnderscore));
-}
-
-inline bool XMLReader::isWhitespace(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gWhitespaceCharMask) != 0);
-}
-
-inline bool XMLReader::isControlChar(const XMLCh toCheck) const
-{
-    return ((fgCharCharsTable[toCheck] & gControlCharMask) != 0);
-}
-
-// ---------------------------------------------------------------------------
-//  XMLReader: Buffer management methods
-// ---------------------------------------------------------------------------
-inline unsigned long XMLReader::charsLeftInBuffer() const
-{
-    return fCharsAvail - fCharIndex;
-}
-
-
-// ---------------------------------------------------------------------------
-//  XMLReader: Getter methods
-// ---------------------------------------------------------------------------
-inline XMLSSize_t XMLReader::getColumnNumber() const
-{
-    return fCurCol;
-}
-
-inline const XMLCh* XMLReader::getEncodingStr() const
-{
-    return fEncodingStr;
-}
-
-inline XMLSSize_t XMLReader::getLineNumber() const
-{
-    return fCurLine;
-}
-
-inline bool XMLReader::getNoMoreFlag() const
-{
-    return fNoMore;
-}
-
-inline const XMLCh* XMLReader::getPublicId() const
-{
-    return fPublicId;
-}
-
-inline unsigned int XMLReader::getReaderNum() const
-{
-    return fReaderNum;
-}
-
-inline XMLReader::RefFrom XMLReader::getRefFrom() const
-{
-    return fRefFrom;
-}
-
-inline XMLReader::Sources XMLReader::getSource() const
-{
-    return fSource;
-}
-
-inline const XMLCh* XMLReader::getSystemId() const
-{
-    return fSystemId;
-}
-
-inline bool XMLReader::getThrowAtEnd() const
-{
-    return fThrowAtEnd;
-}
-
-inline XMLReader::Types XMLReader::getType() const
-{
-    return fType;
-}
-
-// ---------------------------------------------------------------------------
-//  XMLReader: Setter methods
-// ---------------------------------------------------------------------------
-inline void XMLReader::setReaderNum(const unsigned int newNum)
-{
-    fReaderNum = newNum;
-}
-
-inline void XMLReader::setThrowAtEnd(const bool newValue)
-{
-    fThrowAtEnd = newValue;
-}
-
-inline void XMLReader::setXMLVersion(const XMLVersion version)
-{
-    fXMLVersion = version;
-    if (version == XMLV1_1) {
-        fNEL = true;
-        fgCharCharsTable = XMLChar1_1::fgCharCharsTable1_1;
-    }
-    else {
-        fNEL = XMLChar1_0::enableNEL;
-        fgCharCharsTable = XMLChar1_0::fgCharCharsTable1_0;
-    }
-
-}
-
-
-
-// ---------------------------------------------------------------------------
-//
-//  XMLReader: movePlainContentChars()
-//
-//       Move as many plain (no special handling of any sort required) content
-//       characters as possible from this reader to the supplied destination buffer.
-//
-//       This is THE hottest performance spot in the parser.
-//
-// ---------------------------------------------------------------------------
-inline void XMLReader::movePlainContentChars(XMLBuffer &dest)
-{
-    unsigned int count = fCharIndex;
-
-    while (fCharIndex < fCharsAvail)
-    {
-        if (!isPlainContentChar(fCharBuf[fCharIndex]))
-            break;
-        fCharIndex++;
-    }
-
-    if (count != fCharIndex)
-    {
-        fCurCol    += (fCharIndex - count);
-        dest.append(&fCharBuf[count], fCharIndex - count);
-    }
-}
-
-
-// ---------------------------------------------------------------------------
-//  XMLReader: getNextCharIfNot() method inlined for speed
-// ---------------------------------------------------------------------------
-inline bool XMLReader::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
-{
-    //
-    //  See if there is at least a char in the buffer. Else, do the buffer
-    //  reload logic.
-    //
-    if (fCharIndex >= fCharsAvail)
-    {
-        // If fNoMore is set, then we have nothing else to give
-        if (fNoMore)
-            return false;
-
-        // Try to refresh
-        if (!refreshCharBuffer())
-            return false;
-    }
-
-    // Check the next char
-    if (fCharBuf[fCharIndex] == chNotToGet)
-        return false;
-
-    // Its not the one we want to skip so bump the index
-    chGotten = fCharBuf[fCharIndex++];
-
-    // Handle end of line normalization and line/col member maintenance.
-    //
-    // we can have end-of-line combinations with a leading
-    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
-    //
-    // 0000000000001101 chCR
-    // 0000000000001010 chLF
-    // 0000000010000101 chNEL
-    // 0010000000101000 chLineSeparator
-    // -----------------------
-    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
-    //
-    // if the result of the logical-& operation is
-    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
-    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
-    //
-    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
-    {
-        fCurCol++;
-    } else
-    {
-        handleEOL(chGotten, false);
-    }
-
-    return true;
-}
-
-// ---------------------------------------------------------------------------
-//  XMLReader: getNextChar() method inlined for speed
-// ---------------------------------------------------------------------------
-inline bool XMLReader::getNextChar(XMLCh& chGotten)
-{
-    //
-    //  See if there is at least a char in the buffer. Else, do the buffer
-    //  reload logic.
-    //
-    if (fCharIndex >= fCharsAvail)
-    {
-        // If fNoMore is set, then we have nothing else to give
-        if (fNoMore)
-            return false;
-
-        // Try to refresh
-        if (!refreshCharBuffer())
-            return false;
-    }
-
-    chGotten = fCharBuf[fCharIndex++];
-
-    // Handle end of line normalization and line/col member maintenance.
-    //
-    // we can have end-of-line combinations with a leading
-    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
-    //
-    // 0000000000001101 chCR
-    // 0000000000001010 chLF
-    // 0000000010000101 chNEL
-    // 0010000000101000 chLineSeparator
-    // -----------------------
-    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
-    //
-    // if the result of the logical-& operation is
-    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
-    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
-    //
-    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
-    {
-        fCurCol++;
-    } else
-    {
-        handleEOL(chGotten, false);
-    }
-
-    return true;
-}
-
-
-// ---------------------------------------------------------------------------
-//  XMLReader: peekNextChar() method inlined for speed
-// ---------------------------------------------------------------------------
-inline bool XMLReader::peekNextChar(XMLCh& chGotten)
-{
-    //
-    //  If there is something still in the buffer, get it. Else do the reload
-    //  scenario.
-    //
-    if (fCharIndex >= fCharsAvail)
-    {
-        // Try to refresh the buffer
-        if (!refreshCharBuffer())
-        {
-            chGotten = chNull;
-            return false;
-        }
-    }
-
-    chGotten = fCharBuf[fCharIndex];
-
-    //
-    //  Even though we are only peeking, we have to act the same as the
-    //  normal char get method in regards to newline normalization, though
-    //  its not as complicated as the actual character getting method's.
-    //
-    if ((chGotten == chCR || (fNEL && (chGotten == chNEL || chGotten == chLineSeparator)))
-        && (fSource == Source_External))
-        chGotten = chLF;
-
-    return true;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1388 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLSCANNER_HPP)
-#define XMLSCANNER_HPP
-
-#include <xercesc/framework/XMLBufferMgr.hpp>
-#include <xercesc/framework/XMLErrorCodes.hpp>
-#include <xercesc/framework/XMLRefInfo.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-#include <xercesc/util/NameIdPool.hpp>
-#include <xercesc/util/RefHashTableOf.hpp>
-#include <xercesc/util/SecurityManager.hpp>
-#include <xercesc/internal/ReaderMgr.hpp>
-#include <xercesc/internal/ElemStack.hpp>
-#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
-#include <xercesc/framework/XMLAttr.hpp>
-#include <xercesc/framework/ValidationContext.hpp>
-#include <xercesc/validators/common/GrammarResolver.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class InputSource;
-class XMLDocumentHandler;
-class XMLEntityHandler;
-class ErrorHandler;
-class DocTypeHandler;
-class XMLPScanToken;
-class XMLStringPool;
-class Grammar;
-class XMLValidator;
-class MemoryManager;
-class PSVIHandler;
-
-
-struct PSVIElemContext
-{
-    bool               fIsSpecified;
-    bool               fErrorOccurred;
-    int                fElemDepth;
-    int                fFullValidationDepth;
-    int                fNoneValidationDepth;
-    DatatypeValidator* fCurrentDV;
-    ComplexTypeInfo*   fCurrentTypeInfo;
-    const XMLCh*       fNormalizedValue;
-};
-
-//  This is the mondo scanner class, which does the vast majority of the
-//  work of parsing. It handles reading in input and spitting out events
-//  to installed handlers.
-class XMLPARSER_EXPORT XMLScanner : public XMemory, public XMLBufferFullHandler
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Public class types
-    //
-    //  NOTE: These should really be private, but some of the compilers we
-    //  have to deal with are too stupid to understand this.
-    //
-    //  DeclTypes
-    //      Used by scanXMLDecl() to know what type of decl it should scan.
-    //      Text decls have slightly different rules from XMLDecls.
-    //
-    //  EntityExpRes
-    //      These are the values returned from the entity expansion method,
-    //      to indicate how it went.
-    //
-    //  XMLTokens
-    //      These represent the possible types of input we can get while
-    //      scanning content.
-    //
-    //  ValScheme
-    //      This indicates what the scanner should do in terms of validation.
-    //      'Auto' means if there is any int/ext subset, then validate. Else,
-    //      don't.
-    // -----------------------------------------------------------------------
-    enum DeclTypes
-    {
-        Decl_Text
-        , Decl_XML
-    };
-
-    enum EntityExpRes
-    {
-        EntityExp_Pushed
-        , EntityExp_Returned
-        , EntityExp_Failed
-    };
-
-    enum XMLTokens
-    {
-        Token_CData
-        , Token_CharData
-        , Token_Comment
-        , Token_EndTag
-        , Token_EOF
-        , Token_PI
-        , Token_StartTag
-        , Token_Unknown
-    };
-
-    enum ValSchemes
-    {
-        Val_Never
-        , Val_Always
-        , Val_Auto
-    };
-
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    XMLScanner
-    (
-        XMLValidator* const valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-    XMLScanner
-    (
-        XMLDocumentHandler* const  docHandler
-        , DocTypeHandler* const    docTypeHandler
-        , XMLEntityHandler* const  entityHandler
-        , XMLErrorReporter* const  errReporter
-        , XMLValidator* const      valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-    virtual ~XMLScanner();
-
-
-    // -----------------------------------------------------------------------
-    //  Error emitter methods
-    // -----------------------------------------------------------------------
-    bool emitErrorWillThrowException(const XMLErrs::Codes toEmit);
-    void emitError(const XMLErrs::Codes toEmit);
-    void emitError
-    (
-        const   XMLErrs::Codes    toEmit
-        , const XMLCh* const        text1
-        , const XMLCh* const        text2 = 0
-        , const XMLCh* const        text3 = 0
-        , const XMLCh* const        text4 = 0
-    );
-    void emitError
-    (
-        const   XMLErrs::Codes    toEmit
-        , const char* const         text1
-        , const char* const         text2 = 0
-        , const char* const         text3 = 0
-        , const char* const         text4 = 0
-    );
-    void emitError
-    (
-        const   XMLErrs::Codes    toEmit
-        , const XMLExcepts::Codes   originalErrorCode
-        , const XMLCh* const        text1 = 0
-        , const XMLCh* const        text2 = 0
-        , const XMLCh* const        text3 = 0
-        , const XMLCh* const        text4 = 0
-    );
-
-    // -----------------------------------------------------------------------
-    //  Implementation of XMLBufferFullHandler interface
-    // -----------------------------------------------------------------------
-
-    virtual bool bufferFull(XMLBuffer& toSend)
-    {
-        sendCharData(toSend);
-        return true;
-    }
-
-    virtual Grammar::GrammarType getCurrentGrammarType() const;
-
-    // -----------------------------------------------------------------------
-    //  Public pure virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const = 0;
-    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool() = 0;
-    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const = 0;
-    virtual unsigned int resolveQName
-    (
-        const   XMLCh* const        qName
-        ,       XMLBuffer&          prefixBufToFill
-        , const short               mode
-        ,       int&                prefixColonPos
-    ) = 0;
-    virtual void scanDocument
-    (
-        const   InputSource&    src
-    ) = 0;
-    virtual bool scanNext(XMLPScanToken& toFill) = 0;
-    virtual Grammar* loadGrammar
-    (
-        const   InputSource&    src
-        , const short           grammarType
-        , const bool            toCache = false
-    ) = 0;
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    const XMLDocumentHandler* getDocHandler() const;
-    XMLDocumentHandler* getDocHandler();
-    const DocTypeHandler* getDocTypeHandler() const;
-    DocTypeHandler* getDocTypeHandler();
-    bool getDoNamespaces() const;
-    ValSchemes getValidationScheme() const;
-    bool getDoSchema() const;
-    bool getValidationSchemaFullChecking() const;
-    bool getIdentityConstraintChecking() const;
-    const XMLEntityHandler* getEntityHandler() const;
-    XMLEntityHandler* getEntityHandler();
-    const XMLErrorReporter* getErrorReporter() const;
-    XMLErrorReporter* getErrorReporter();
-    const ErrorHandler* getErrorHandler() const;
-    ErrorHandler* getErrorHandler();
-    const PSVIHandler* getPSVIHandler() const;
-    PSVIHandler* getPSVIHandler();
-    bool getExitOnFirstFatal() const;
-    bool getValidationConstraintFatal() const;
-    RefHashTableOf<XMLRefInfo>* getIDRefList();
-    const RefHashTableOf<XMLRefInfo>* getIDRefList() const;
-
-    ValidationContext*   getValidationContext();
-
-    bool getInException() const;
-    /*bool getLastExtLocation
-    (
-                XMLCh* const    sysIdToFill
-        , const unsigned int    maxSysIdChars
-        ,       XMLCh* const    pubIdToFill
-        , const unsigned int    maxPubIdChars
-        ,       XMLSSize_t&     lineToFill
-        ,       XMLSSize_t&     colToFill
-    ) const;*/
-    const Locator* getLocator() const;
-    const ReaderMgr* getReaderMgr() const;
-    unsigned int getSrcOffset() const;
-    bool getStandalone() const;
-    const XMLValidator* getValidator() const;
-    XMLValidator* getValidator();
-    int getErrorCount();
-    const XMLStringPool* getURIStringPool() const;
-    XMLStringPool* getURIStringPool();
-    bool getHasNoDTD() const;
-    XMLCh* getExternalSchemaLocation() const;
-    XMLCh* getExternalNoNamespaceSchemaLocation() const;
-    SecurityManager* getSecurityManager() const;
-    bool getLoadExternalDTD() const;
-    bool getNormalizeData() const;
-    bool isCachingGrammarFromParse() const;
-    bool isUsingCachedGrammarInParse() const;
-    bool getCalculateSrcOfs() const;
-    Grammar* getRootGrammar() const;
-    XMLReader::XMLVersion getXMLVersion() const;
-    MemoryManager* getMemoryManager() const;
-    ValueVectorOf<PrefMapElem*>* getNamespaceContext() const;
-    unsigned int getPrefixId(const XMLCh* const prefix) const;
-    const XMLCh* getPrefixForId(unsigned int prefId) const;
-
-    bool getGenerateSyntheticAnnotations() const;
-    bool getValidateAnnotations() const;
-    bool getIgnoreCachedDTD() const;
-    bool getIgnoreAnnotations() const;
-    bool getDisableDefaultEntityResolution() const;
-    bool getSkipDTDValidation() const;
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    /**
-      * When an attribute name has no prefix, unlike elements, it is not mapped
-      * to the global namespace. So, in order to have something to map it to
-      * for practical purposes, a id for an empty URL is created and used for
-      * such names.
-      *
-      * @return The URL pool id of the URL for an empty URL "".
-      */
-    unsigned int getEmptyNamespaceId() const;
-
-    /**
-      * When a prefix is found that has not been mapped, an error is issued.
-      * However, if the parser has been instructed not to stop on the first
-      * fatal error, it needs to be able to continue. To do so, it will map
-      * that prefix tot his magic unknown namespace id.
-      *
-      * @return The URL pool id of the URL for the unknown prefix
-      *         namespace.
-      */
-    unsigned int getUnknownNamespaceId() const;
-
-    /**
-      * The prefix 'xml' is a magic prefix, defined by the XML spec and
-      * requiring no prior definition. This method returns the id for the
-      * intrinsically defined URL for this prefix.
-      *
-      * @return The URL pool id of the URL for the 'xml' prefix.
-      */
-    unsigned int getXMLNamespaceId() const;
-
-    /**
-      * The prefix 'xmlns' is a magic prefix, defined by the namespace spec
-      * and requiring no prior definition. This method returns the id for the
-      * intrinsically defined URL for this prefix.
-      *
-      * @return The URL pool id of the URL for the 'xmlns' prefix.
-      */
-    unsigned int getXMLNSNamespaceId() const;
-
-    /**
-      * This method find the passed URI id in its URI pool and
-      * copy the text of that URI into the passed buffer.
-      */
-    bool getURIText
-    (
-        const   unsigned int    uriId
-        ,       XMLBuffer&      uriBufToFill
-    )   const;
-
-    const XMLCh* getURIText(const   unsigned int    uriId) const;
-
-    /* tell if the validator comes from user */
-    bool isValidatorFromUser();
-
-    /* tell if standard URI are forced */
-    bool getStandardUriConformant() const;
-
-    // -----------------------------------------------------------------------
-    //  Setter methods
-    // -----------------------------------------------------------------------
-    void setDocHandler(XMLDocumentHandler* const docHandler);
-    void setDocTypeHandler(DocTypeHandler* const docTypeHandler);
-    void setDoNamespaces(const bool doNamespaces);
-    void setEntityHandler(XMLEntityHandler* const docTypeHandler);
-    void setErrorReporter(XMLErrorReporter* const errHandler);
-    void setErrorHandler(ErrorHandler* const handler);
-    void setPSVIHandler(PSVIHandler* const handler);
-    void setURIStringPool(XMLStringPool* const stringPool);
-    void setExitOnFirstFatal(const bool newValue);
-    void setValidationConstraintFatal(const bool newValue);
-    void setValidationScheme(const ValSchemes newScheme);
-    void setValidator(XMLValidator* const valToAdopt);
-    void setDoSchema(const bool doSchema);
-    void setValidationSchemaFullChecking(const bool schemaFullChecking);
-    void setIdentityConstraintChecking(const bool identityConstraintChecking);
-    void setHasNoDTD(const bool hasNoDTD);
-    void cacheGrammarFromParse(const bool newValue);
-    void useCachedGrammarInParse(const bool newValue);
-    void setRootElemName(XMLCh* rootElemName);
-    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
-    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
-    void setExternalSchemaLocation(const char* const schemaLocation);
-    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
-    void setSecurityManager(SecurityManager* const securityManager);
-    void setLoadExternalDTD(const bool loadDTD);
-    void setNormalizeData(const bool normalizeData);
-    void setCalculateSrcOfs(const bool newValue);
-    void setParseSettings(XMLScanner* const refScanner);
-    void setStandardUriConformant(const bool newValue);
-    void setInputBufferSize(const size_t bufferSize);
-
-    void setGenerateSyntheticAnnotations(const bool newValue);
-    void setValidateAnnotations(const bool newValue);
-    void setIgnoredCachedDTD(const bool newValue);
-    void setIgnoreAnnotations(const bool newValue);
-    void setDisableDefaultEntityResolution(const bool newValue);
-    void setSkipDTDValidation(const bool newValue);
-
-    // -----------------------------------------------------------------------
-    //  Mutator methods
-    // -----------------------------------------------------------------------
-    void incrementErrorCount(void);			// For use by XMLValidator
-
-    // -----------------------------------------------------------------------
-    //  Deprecated methods as of 3.2.0. Use getValidationScheme() and
-    //  setValidationScheme() instead.
-    // -----------------------------------------------------------------------
-    bool getDoValidation() const;
-    void setDoValidation(const bool validate);
-
-    // -----------------------------------------------------------------------
-    //  Document scanning methods
-    //
-    //  scanDocument() does the entire source document. scanFirst(),
-    //  scanNext(), and scanReset() support a progressive parse.
-    // -----------------------------------------------------------------------
-    void scanDocument
-    (
-        const   XMLCh* const    systemId
-    );
-    void scanDocument
-    (
-        const   char* const     systemId
-    );
-
-    bool scanFirst
-    (
-        const   InputSource&    src
-        ,       XMLPScanToken&  toFill
-    );
-    bool scanFirst
-    (
-        const   XMLCh* const    systemId
-        ,       XMLPScanToken&  toFill
-    );
-    bool scanFirst
-    (
-        const   char* const     systemId
-        ,       XMLPScanToken&  toFill
-    );
-
-    void scanReset(XMLPScanToken& toFill);
-
-    bool checkXMLDecl(bool startWithAngle);
-
-    // -----------------------------------------------------------------------
-    //  Grammar preparsing methods
-    // -----------------------------------------------------------------------
-    Grammar* loadGrammar
-    (
-        const   XMLCh* const    systemId
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-    Grammar* loadGrammar
-    (
-        const   char* const     systemId
-        , const short           grammarType
-        , const bool            toCache = false
-    );
-
-    // -----------------------------------------------------------------------
-    //  Notification that lazy data has been deleted
-    // -----------------------------------------------------------------------
-	static void reinitScannerMutex();
-	static void reinitMsgLoader();
-
-protected:
-    // -----------------------------------------------------------------------
-    //  Protected pure virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanCDSection() = 0;
-    virtual void scanCharData(XMLBuffer& toToUse) = 0;
-    virtual EntityExpRes scanEntityRef
-    (
-        const   bool    inAttVal
-        ,       XMLCh&  firstCh
-        ,       XMLCh&  secondCh
-        ,       bool&   escaped
-    ) = 0;
-    virtual void scanDocTypeDecl() = 0;
-    virtual void scanReset(const InputSource& src) = 0;
-    virtual void sendCharData(XMLBuffer& toSend) = 0;
-
-    //return owned by the caller
-    virtual InputSource* resolveSystemId(const XMLCh* const /*sysId*/
-                                        ,const XMLCh* const /*pubId*/) {return 0;};
-
-    // -----------------------------------------------------------------------
-    //  Protected scanning methods
-    // -----------------------------------------------------------------------
-    bool scanCharRef(XMLCh& toFill, XMLCh& second);
-    void scanComment();
-    bool scanEq(bool inDecl = false);
-    void scanMiscellaneous();
-    void scanPI();
-    void scanProlog();
-    void scanXMLDecl(const DeclTypes type);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId, const XMLCh* const pubId);
-    void checkIDRefs();
-    bool isLegalToken(const XMLPScanToken& toCheck);
-    XMLTokens senseNextToken(unsigned int& orgReader);
-    void initValidator(XMLValidator* theValidator);
-    inline void resetValidationContext();
-    unsigned int *getNewUIntPtr();
-    void resetUIntPool();
-    void recreateUIntPool();
-
-    inline
-    void setAttrDupChkRegistry
-         (
-            const unsigned int &attrNumber
-          ,       bool         &toUseHashTable
-         );
-
-    // -----------------------------------------------------------------------
-    //  Data members
-    //
-    //  fBufferSize
-    //      Maximum input buffer size
-    //
-    //  fAttrList
-    //      Every time we get a new element start tag, we have to pass to
-    //      the document handler the attributes found. To make it more
-    //      efficient we keep this ref vector of XMLAttr objects around. We
-    //      just reuse it over and over, allowing it to grow to meet the
-    //      peak need.
-    //
-    //  fBufMgr
-    //      This is a manager for temporary buffers used during scanning.
-    //      For efficiency we must use a set of static buffers, but we have
-    //      to insure that they are not incorrectly reused. So this manager
-    //      provides the smarts to hand out buffers as required.
-    //
-    //  fDocHandler
-    //      The client code's document handler. If zero, then no document
-    //      handler callouts are done. We don't adopt it.
-    //
-    //  fDocTypeHandler
-    //      The client code's document type handler (used by DTD Validator).
-    //
-    //  fDoNamespaces
-    //      This flag indicates whether the client code wants us to do
-    //      namespaces or not. If the installed validator indicates that it
-    //      has to do namespaces, then this is ignored.
-    //
-    //  fEntityHandler
-    //      The client code's entity handler. If zero, then no entity handler
-    //      callouts are done. We don't adopt it.
-    //
-    //  fErrorReporter
-    //      The client code's error reporter. If zero, then no error reporter
-    //      callouts are done. We don't adopt it.
-    //
-    //  fErrorHandler
-    //      The client code's error handler.  Need to store this info for
-    //      Schema parse error handling.
-    //
-    //  fPSVIHandler
-    //      The client code's PSVI handler.
-    //
-    //  fExitOnFirstFatal
-    //      This indicates whether we bail out on the first fatal XML error
-    //      or not. It defaults to true, which is the strict XML way, but it
-    //      can be changed.
-    //
-    //  fValidationConstraintFatal
-    //      This indicates whether we treat validation constraint errors as
-    //      fatal errors or not. It defaults to false, but it can be changed.
-    //
-    //  fIDRefList
-    //      This is a list of XMLRefInfo objects. This member lets us do all
-    //      needed ID-IDREF balancing checks.
-    //
-    //  fInException
-    //      To avoid a circular freakout when we catch an exception and emit
-    //      it, which would normally throw again if the 'fail on first error'
-    //      flag is one.
-    //
-    //  fReaderMgr
-    //      This is the reader manager, from which we get characters. It
-    //      manages the reader stack for us, and provides a lot of convenience
-    //      methods to do specialized checking for chars, sequences of chars,
-    //      skipping chars, etc...
-    //
-    //  fScannerId
-    //  fSequenceId
-    //      These are used for progressive parsing, to make sure that the
-    //      client code does the right thing at the right time.
-    //
-    //  fStandalone
-    //      Indicates whether the document is standalone or not. Defaults to
-    //      no, but can be overridden in the XMLDecl.
-    //
-    //  fHasNoDTD
-    //      Indicates the document has no DTD or has only an internal DTD subset
-    //      which contains no parameter entity references.
-    //
-    //  fValidate
-    //      Indicates whether any validation should be done. This is defined
-    //      by the existence of a Grammar together with fValScheme.
-    //
-    //  fValidator
-    //      The installed validator. We look at them via the abstract
-    //      validator interface, and don't know what it actual is.
-    //      Either point to user's installed validator, or fDTDValidator
-    //      or fSchemaValidator.
-    //
-    //  fValidatorFromUser
-    //      This flag indicates whether the validator was installed from
-    //      user.  If false, then the validator was created by the Scanner.
-    //
-    //  fValScheme
-    //      This is the currently set validation scheme. It defaults to
-    //      'never', but can be set by the client.
-    //
-    //  fErrorCount
-    //		The number of errors we've encountered.
-    //
-    //  fDoSchema
-    //      This flag indicates whether the client code wants Schema to
-    //      be processed or not.
-    //
-    //  fSchemaFullChecking
-    //      This flag indicates whether the client code wants full Schema
-    //      constraint checking.
-    //
-    //  fIdentityConstraintChecking
-    //      This flag indicates whether the client code wants Identity
-    //      Constraint checking, defaulted to true to maintain backward
-    //      compatibility (to minimize supprise)
-    //
-    //  fAttName
-    //  fAttValue
-    //  fCDataBuf
-    //  fNameBuf
-    //  fQNameBuf
-    //  fPrefixBuf
-    //      For the most part, buffers are obtained from the fBufMgr object
-    //      on the fly. However, for the start tag scan, we have a set of
-    //      fixed buffers for performance reasons. These are used a lot and
-    //      there are a number of them, so asking the buffer manager each
-    //      time for new buffers is a bit too much overhead.
-    //
-    //  fEmptyNamespaceId
-    //      This is the id of the empty namespace URI. This is a special one
-    //      because of the xmlns="" type of deal. We have to quickly sense
-    //      that its the empty namespace.
-    //
-    //  fUnknownNamespaceId
-    //      This is the id of the namespace URI which is assigned to the
-    //      global namespace. Its for debug purposes only, since there is no
-    //      real global namespace URI. Its set by the derived class.
-    //
-    //  fXMLNamespaceId
-    //  fXMLNSNamespaceId
-    //      These are the ids of the namespace URIs which are assigned to the
-    //      'xml' and 'xmlns' special prefixes. The former is officially
-    //      defined but the latter is not, so we just provide one for debug
-    //      purposes.
-    //
-    //  fSchemaNamespaceId
-    //      This is the id of the schema namespace URI.
-    //
-    //  fGrammarResolver
-    //      Grammar Pool that stores all the grammars. Key is namespace for
-    //      schema and system id for external DTD. When caching a grammar, if
-    //      a grammar is already in the pool, it will be replaced with the
-    //      new parsed one.
-    //
-    //  fGrammar
-    //      Current Grammar used by the Scanner and Validator
-    //
-    //  fRootGrammar
-    //      The grammar where the root element is declared.
-    //
-    //  fGrammarType
-    //      Current Grammar Type.  Store this value instead of calling getGrammarType
-    //      all the time for faster performance.
-    //
-    //  fURIStringPool
-    //      This is a pool for URIs with unique ids assigned. We use a standard
-    //      string pool class.  This pool is going to be shared by all Grammar.
-    //      Use only if namespace is turned on.
-    //
-    //  fRootElemName
-    //      No matter we are using DTD or Schema Grammar, if a DOCTYPE exists,
-    //      we need to verify the root element name.  So store the rootElement
-    //      that is used in the DOCTYPE in the Scanner instead of in the DTDGrammar
-    //      where it used to
-    //
-    //  fExternalSchemaLocation
-    //      The list of Namespace/SchemaLocation that was specified externally
-    //      using setExternalSchemaLocation.
-    //
-    //  fExternalNoNamespaceSchemaLocation
-    //      The no target namespace XML Schema Location that was specified
-    //      externally using setExternalNoNamespaceSchemaLocation.
-    //
-    //  fSecurityManager
-    //      The SecurityManager instance; as and when set by the application.
-    //
-    //  fEntityExpansionLimit
-    //      The number of entity expansions to be permitted while processing this document
-    //      Only meaningful when fSecurityManager != 0
-    //
-    //  fEntityExpansionCount
-    //      The number of general entities expanded so far in this document.
-    //      Only meaningful when fSecurityManager != null
-    //
-    //  fLoadExternalDTD
-    //      This flag indicates whether the external DTD be loaded or not
-    //
-    //  fNormalizeData
-    //      This flag indicates whether the parser should perform datatype
-    //      normalization that is defined in the schema.
-    //
-    //  fCalculateSrcOfs
-    //      This flag indicates the parser should calculate the source offset.
-    //      Turning this on may impact performance.
-    //
-    //  fStandardUriConformant
-    //      This flag controls whether we force conformant URI
-    //
-    //  fXMLVersion
-    //      Enum to indicate if the main doc is XML 1.1 or XML 1.0 conformant    
-    //  fUIntPool
-    //      pool of unsigned integers to help with duplicate attribute
-    //      detection and filling in default/fixed attributes
-    //  fUIntPoolRow
-    //      current row in fUIntPool
-    //  fUIntPoolCol
-    //      current column i row
-    //  fUIntPoolRowTotal
-    //      total number of rows in table
-    //
-    //  fMemoryManager
-    //      Pluggable memory manager for dynamic allocation/deallocation.
-    //
-    // -----------------------------------------------------------------------
-    size_t                      fBufferSize;
-    bool                        fStandardUriConformant;
-    bool                        fCalculateSrcOfs;
-    bool                        fDoNamespaces;
-    bool                        fExitOnFirstFatal;
-    bool                        fValidationConstraintFatal;
-    bool                        fInException;
-    bool                        fStandalone;
-    bool                        fHasNoDTD;
-    bool                        fValidate;
-    bool                        fValidatorFromUser;
-    bool                        fDoSchema;
-    bool                        fSchemaFullChecking;
-    bool                        fIdentityConstraintChecking;
-    bool                        fToCacheGrammar;
-    bool                        fUseCachedGrammar;
-    bool                        fLoadExternalDTD;
-    bool                        fNormalizeData;
-    bool                        fGenerateSyntheticAnnotations;
-    bool                        fValidateAnnotations;
-    bool                        fIgnoreCachedDTD;
-    bool                        fIgnoreAnnotations;
-    bool                        fDisableDefaultEntityResolution;
-    bool                        fSkipDTDValidation;
-    int                         fErrorCount;
-    unsigned int                fEntityExpansionLimit;
-    unsigned int                fEntityExpansionCount;
-    unsigned int                fEmptyNamespaceId;
-    unsigned int                fUnknownNamespaceId;
-    unsigned int                fXMLNamespaceId;
-    unsigned int                fXMLNSNamespaceId;
-    unsigned int                fSchemaNamespaceId;
-    unsigned int **             fUIntPool;
-    unsigned int                fUIntPoolRow;
-    unsigned int                fUIntPoolCol;
-    unsigned int                fUIntPoolRowTotal;
-    XMLUInt32                   fScannerId;
-    XMLUInt32                   fSequenceId;
-    RefVectorOf<XMLAttr>*       fAttrList;
-    RefHash2KeysTableOf<XMLAttr>*  fAttrDupChkRegistry;    
-    XMLDocumentHandler*         fDocHandler;
-    DocTypeHandler*             fDocTypeHandler;
-    XMLEntityHandler*           fEntityHandler;
-    XMLErrorReporter*           fErrorReporter;
-    ErrorHandler*               fErrorHandler;
-    PSVIHandler*                fPSVIHandler;
-    ValidationContext           *fValidationContext;
-    bool                        fEntityDeclPoolRetrieved;
-    ReaderMgr                   fReaderMgr;
-    XMLValidator*               fValidator;
-    ValSchemes                  fValScheme;
-    GrammarResolver* const      fGrammarResolver;
-    MemoryManager* const        fGrammarPoolMemoryManager;
-    Grammar*                    fGrammar;
-    Grammar*                    fRootGrammar;
-    XMLStringPool*              fURIStringPool;
-    XMLCh*                      fRootElemName;
-    XMLCh*                      fExternalSchemaLocation;
-    XMLCh*                      fExternalNoNamespaceSchemaLocation;
-    SecurityManager*            fSecurityManager;
-    XMLReader::XMLVersion       fXMLVersion;
-    MemoryManager*              fMemoryManager;
-    XMLBufferMgr                fBufMgr;
-    XMLBuffer                   fAttNameBuf;
-    XMLBuffer                   fAttValueBuf;
-    XMLBuffer                   fCDataBuf;
-    XMLBuffer                   fQNameBuf;
-    XMLBuffer                   fPrefixBuf;
-    XMLBuffer                   fURIBuf;
-    XMLBuffer                   fWSNormalizeBuf;
-    ElemStack                   fElemStack;
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    XMLScanner();
-    XMLScanner(const XMLScanner&);
-    XMLScanner& operator=(const XMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void commonInit();
-    void cleanUp();
-
-    // -----------------------------------------------------------------------
-    //  Private scanning methods
-    // -----------------------------------------------------------------------
-    bool getQuotedString(XMLBuffer& toFill);
-    unsigned int scanUpToWSOr
-    (
-                XMLBuffer&  toFill
-        , const XMLCh       chEndChar
-    );
-};
-
-// ---------------------------------------------------------------------------
-//  XMLScanner: Getter methods
-// ---------------------------------------------------------------------------
-inline const XMLDocumentHandler* XMLScanner::getDocHandler() const
-{
-    return fDocHandler;
-}
-
-inline XMLDocumentHandler* XMLScanner::getDocHandler()
-{
-    return fDocHandler;
-}
-
-inline const DocTypeHandler* XMLScanner::getDocTypeHandler() const
-{
-    return fDocTypeHandler;
-}
-
-inline DocTypeHandler* XMLScanner::getDocTypeHandler()
-{
-    return fDocTypeHandler;
-}
-
-inline bool XMLScanner::getDoNamespaces() const
-{
-    return fDoNamespaces;
-}
-
-inline const XMLEntityHandler* XMLScanner::getEntityHandler() const
-{
-    return fEntityHandler;
-}
-
-inline XMLEntityHandler* XMLScanner::getEntityHandler()
-{
-    return fEntityHandler;
-}
-
-inline const XMLErrorReporter* XMLScanner::getErrorReporter() const
-{
-    return fErrorReporter;
-}
-
-inline XMLErrorReporter* XMLScanner::getErrorReporter()
-{
-    return fErrorReporter;
-}
-
-inline const ErrorHandler* XMLScanner::getErrorHandler() const
-{
-    return fErrorHandler;
-}
-
-inline ErrorHandler* XMLScanner::getErrorHandler()
-{
-    return fErrorHandler;
-}
-
-inline const PSVIHandler* XMLScanner::getPSVIHandler() const
-{
-    return fPSVIHandler;
-}
-
-inline PSVIHandler* XMLScanner::getPSVIHandler()
-{
-    return fPSVIHandler;
-}
-
-inline bool XMLScanner::getExitOnFirstFatal() const
-{
-    return fExitOnFirstFatal;
-}
-
-inline bool XMLScanner::getValidationConstraintFatal() const
-{
-    return fValidationConstraintFatal;
-}
-
-inline bool XMLScanner::getInException() const
-{
-    return fInException;
-}
-
-inline RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList()
-{
-    return fValidationContext->getIdRefList();
-}
-
-inline const RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList() const
-{
-    return fValidationContext->getIdRefList();
-}
-
-inline ValidationContext*  XMLScanner::getValidationContext()
-{
-    if (!fEntityDeclPoolRetrieved)
-    {
-        fValidationContext->setEntityDeclPool(getEntityDeclPool());
-        fEntityDeclPoolRetrieved = true;
-    }
-
-    return fValidationContext;
-}
-
-inline const Locator* XMLScanner::getLocator() const
-{
-    return &fReaderMgr;
-}
-
-inline const ReaderMgr* XMLScanner::getReaderMgr() const
-{
-    return &fReaderMgr;
-}
-
-inline unsigned int XMLScanner::getSrcOffset() const
-{
-    return fReaderMgr.getSrcOffset();
-}
-
-inline bool XMLScanner::getStandalone() const
-{
-    return fStandalone;
-}
-
-inline XMLScanner::ValSchemes XMLScanner::getValidationScheme() const
-{
-    return fValScheme;
-}
-
-inline const XMLValidator* XMLScanner::getValidator() const
-{
-    return fValidator;
-}
-
-inline XMLValidator* XMLScanner::getValidator()
-{
-    return fValidator;
-}
-
-inline bool XMLScanner::getDoSchema() const
-{
-    return fDoSchema;
-}
-
-inline bool XMLScanner::getValidationSchemaFullChecking() const
-{
-    return fSchemaFullChecking;
-}
-
-inline bool XMLScanner::getIdentityConstraintChecking() const
-{
-    return fIdentityConstraintChecking;
-}
-
-inline int XMLScanner::getErrorCount()
-{
-    return fErrorCount;
-}
-
-inline bool XMLScanner::isValidatorFromUser()
-{
-    return fValidatorFromUser;
-}
-
-inline unsigned int XMLScanner::getEmptyNamespaceId() const
-{
-    return fEmptyNamespaceId;
-}
-
-inline unsigned int XMLScanner::getUnknownNamespaceId() const
-{
-    return fUnknownNamespaceId;
-}
-
-inline unsigned int XMLScanner::getXMLNamespaceId() const
-{
-    return fXMLNamespaceId;
-}
-
-inline unsigned int XMLScanner::getXMLNSNamespaceId() const
-{
-    return fXMLNSNamespaceId;
-}
-
-inline const XMLStringPool* XMLScanner::getURIStringPool() const
-{
-    return fURIStringPool;
-}
-
-inline XMLStringPool* XMLScanner::getURIStringPool()
-{
-    return fURIStringPool;
-}
-
-inline bool XMLScanner::getHasNoDTD() const
-{
-    return fHasNoDTD;
-}
-
-inline XMLCh* XMLScanner::getExternalSchemaLocation() const
-{
-    return fExternalSchemaLocation;
-}
-
-inline XMLCh* XMLScanner::getExternalNoNamespaceSchemaLocation() const
-{
-    return fExternalNoNamespaceSchemaLocation;
-}
-
-inline SecurityManager* XMLScanner::getSecurityManager() const
-{
-    return fSecurityManager;
-}
-
-inline bool XMLScanner::getLoadExternalDTD() const
-{
-    return fLoadExternalDTD;
-}
-
-inline bool XMLScanner::getNormalizeData() const
-{
-    return fNormalizeData;
-}
-
-inline bool XMLScanner::isCachingGrammarFromParse() const
-{
-    return fToCacheGrammar;
-}
-
-inline bool XMLScanner::isUsingCachedGrammarInParse() const
-{
-    return fUseCachedGrammar;
-}
-
-inline bool XMLScanner::getCalculateSrcOfs() const
-{
-    return fCalculateSrcOfs;
-}
-
-inline Grammar* XMLScanner::getRootGrammar() const
-{
-    return fRootGrammar;
-}
-
-inline bool XMLScanner::getStandardUriConformant() const
-{
-    return fStandardUriConformant;
-}
-
-inline XMLReader::XMLVersion XMLScanner::getXMLVersion() const
-{
-	return fXMLVersion;
-}
-
-inline MemoryManager* XMLScanner::getMemoryManager() const
-{
-    return fMemoryManager;
-}
-
-inline ValueVectorOf<PrefMapElem*>* XMLScanner::getNamespaceContext() const
-{
-    return fElemStack.getNamespaceMap();
-}
-
-inline unsigned int XMLScanner::getPrefixId(const XMLCh* const prefix) const
-{
-    return fElemStack.getPrefixId(prefix);
-}
-
-inline const XMLCh* XMLScanner::getPrefixForId(unsigned int prefId) const
-{
-    return fElemStack.getPrefixForId(prefId);
-}
-
-inline bool XMLScanner::getGenerateSyntheticAnnotations() const
-{
-    return fGenerateSyntheticAnnotations;
-}
-
-inline bool XMLScanner::getValidateAnnotations() const
-{
-    return fValidateAnnotations;
-}
-
-inline bool XMLScanner::getIgnoreCachedDTD() const
-{
-    return fIgnoreCachedDTD;
-}
-
-inline bool XMLScanner::getIgnoreAnnotations() const
-{
-    return fIgnoreAnnotations;
-}
-
-inline bool XMLScanner::getDisableDefaultEntityResolution() const
-{
-    return fDisableDefaultEntityResolution;
-}
-
-inline bool XMLScanner::getSkipDTDValidation() const
-{
-    return fSkipDTDValidation;
-}
-
-// ---------------------------------------------------------------------------
-//  XMLScanner: Setter methods
-// ---------------------------------------------------------------------------
-inline void XMLScanner::setDocHandler(XMLDocumentHandler* const docHandler)
-{
-    fDocHandler = docHandler;
-}
-
-inline void XMLScanner::setDocTypeHandler(DocTypeHandler* const docTypeHandler)
-{
-    fDocTypeHandler = docTypeHandler;
-}
-
-inline void XMLScanner::setErrorHandler(ErrorHandler* const handler)
-{
-    fErrorHandler = handler;
-}
-
-inline void XMLScanner::setPSVIHandler(PSVIHandler* const handler)
-{
-    fPSVIHandler = handler;
-}
-
-inline void XMLScanner::setEntityHandler(XMLEntityHandler* const entityHandler)
-{
-    fEntityHandler = entityHandler;
-    fReaderMgr.setEntityHandler(entityHandler);
-}
-
-inline void XMLScanner::setErrorReporter(XMLErrorReporter* const errHandler)
-{
-    fErrorReporter = errHandler;
-}
-
-inline void XMLScanner::setExitOnFirstFatal(const bool newValue)
-{
-    fExitOnFirstFatal = newValue;
-}
-
-
-inline void XMLScanner::setValidationConstraintFatal(const bool newValue)
-{
-    fValidationConstraintFatal = newValue;
-}
-
-inline void XMLScanner::setValidationScheme(const ValSchemes newScheme)
-{
-    fValScheme = newScheme;
-
-    // validation flag for Val_Auto is set to false by default,
-    //   and will be turned to true if a grammar is seen
-    if (fValScheme == Val_Always)
-        fValidate = true;
-    else
-        fValidate = false;
-}
-
-inline void XMLScanner::setDoSchema(const bool doSchema)
-{
-    fDoSchema = doSchema;
-}
-
-inline void XMLScanner::setDoNamespaces(const bool doNamespaces)
-{
-    fDoNamespaces = doNamespaces;
-}
-
-inline void XMLScanner::setValidationSchemaFullChecking(const bool schemaFullChecking)
-{
-    fSchemaFullChecking = schemaFullChecking;
-}
-
-inline void XMLScanner::setIdentityConstraintChecking(const bool identityConstraintChecking)
-{
-    fIdentityConstraintChecking = identityConstraintChecking;
-}
-
-inline void XMLScanner::setHasNoDTD(const bool hasNoDTD)
-{
-    fHasNoDTD = hasNoDTD;
-}
-
-inline void XMLScanner::setRootElemName(XMLCh* rootElemName)
-{
-    fMemoryManager->deallocate(fRootElemName);//delete [] fRootElemName;
-    fRootElemName = XMLString::replicate(rootElemName, fMemoryManager);
-}
-
-inline void XMLScanner::setExternalSchemaLocation(const XMLCh* const schemaLocation)
-{
-    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
-    fExternalSchemaLocation = XMLString::replicate(schemaLocation, fMemoryManager);
-}
-
-inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation)
-{
-    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
-    fExternalNoNamespaceSchemaLocation = XMLString::replicate(noNamespaceSchemaLocation, fMemoryManager);
-}
-
-inline void XMLScanner::setExternalSchemaLocation(const char* const schemaLocation)
-{
-    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
-    fExternalSchemaLocation = XMLString::transcode(schemaLocation, fMemoryManager);
-}
-
-inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)
-{
-    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
-    fExternalNoNamespaceSchemaLocation = XMLString::transcode(noNamespaceSchemaLocation, fMemoryManager);
-}
-
-inline void XMLScanner::setSecurityManager(SecurityManager* const securityManager)
-{
-    fSecurityManager = securityManager;
-    if(securityManager != 0) 
-    {
-        fEntityExpansionLimit = securityManager->getEntityExpansionLimit();
-        fEntityExpansionCount = 0;
-    }
-}
-
-inline void XMLScanner::setLoadExternalDTD(const bool loadDTD)
-{
-    fLoadExternalDTD = loadDTD;
-}
-
-inline void XMLScanner::setNormalizeData(const bool normalizeData)
-{
-    fNormalizeData = normalizeData;
-}
-
-inline void XMLScanner::cacheGrammarFromParse(const bool newValue)
-{
-    fToCacheGrammar = newValue;
-}
-
-inline void XMLScanner::useCachedGrammarInParse(const bool newValue)
-{
-    fUseCachedGrammar = newValue;
-}
-
-inline void XMLScanner::setCalculateSrcOfs(const bool newValue)
-{
-    fCalculateSrcOfs = newValue;
-}
-
-inline void XMLScanner::setStandardUriConformant(const bool newValue)
-{
-    fStandardUriConformant = newValue;
-    fReaderMgr.setStandardUriConformant(newValue);
-}
-
-inline void XMLScanner::setGenerateSyntheticAnnotations(const bool newValue)
-{
-    fGenerateSyntheticAnnotations = newValue;
-}
-
-inline void XMLScanner::setValidateAnnotations(const bool newValue)
-{
-    fValidateAnnotations = newValue;
-}
-
-inline void XMLScanner::setInputBufferSize(const size_t bufferSize)
-{
-    fBufferSize = bufferSize;
-    fCDataBuf.setFullHandler(this, (unsigned int)fBufferSize);
-}
-
-inline void XMLScanner::setIgnoredCachedDTD(const bool newValue)
-{
-    fIgnoreCachedDTD = newValue;
-}
-
-inline void XMLScanner::setIgnoreAnnotations(const bool newValue)
-{
-    fIgnoreAnnotations = newValue;
-}
-
-inline void XMLScanner::setDisableDefaultEntityResolution(const bool newValue)
-{
-    fDisableDefaultEntityResolution = newValue;
-}
-
-inline void XMLScanner::setSkipDTDValidation(const bool newValue)
-{
-    fSkipDTDValidation = newValue;
-}
-
-// ---------------------------------------------------------------------------
-//  XMLScanner: Mutator methods
-// ---------------------------------------------------------------------------
-inline void XMLScanner::incrementErrorCount()
-{
-    ++fErrorCount;
-}
-
-// ---------------------------------------------------------------------------
-//  XMLScanner: Deprecated methods
-// ---------------------------------------------------------------------------
-inline bool XMLScanner::getDoValidation() const
-{
-    return fValidate;
-}
-
-inline void XMLScanner::setDoValidation(const bool validate)
-{
-    fValidate = validate;
-    if (fValidate)
-        fValScheme = Val_Always;
-    else
-        fValScheme = Val_Never;
-}
-
-inline void XMLScanner::resetValidationContext()
-{
-    fValidationContext->clearIdRefList();
-    fValidationContext->setEntityDeclPool(0);
-    fEntityDeclPoolRetrieved = false;
-}
-
-inline void XMLScanner::setAttrDupChkRegistry(const unsigned int &attrNumber
-                                            ,       bool         &toUseHashTable)
-{
-   // once the attribute exceed 100, we use hash table to check duplication
-    if (attrNumber > 100)
-   {
-        toUseHashTable = true;
-
-        if (!fAttrDupChkRegistry)
-        {
-            fAttrDupChkRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLAttr>
-            (
-              2*attrNumber+1, false, new (fMemoryManager)HashXMLCh(), fMemoryManager
-            );
-        }
-        else
-        {
-            fAttrDupChkRegistry->removeAll();
-        }
-    }
-
-}
-
-inline Grammar::GrammarType XMLScanner::getCurrentGrammarType() const
-{
-    return Grammar::UnKnown;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
-
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScannerResolver.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XMLScannerResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLSCANNERRESOLVER_HPP)
-#define XMLSCANNERRESOLVER_HPP
-
-#include <xercesc/internal/XMLScanner.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLValidator;
-class XMLDocumentHandler;
-class XMLErrorReporter;
-class DocTypeHandler;
-class XMLEntityHandler;
-
-class XMLPARSER_EXPORT XMLScannerResolver
-{
-public:
-    // -----------------------------------------------------------------------
-    //  Public class methods
-    // -----------------------------------------------------------------------
-    static XMLScanner* resolveScanner
-    (
-          const XMLCh* const   scannerName
-        , XMLValidator* const  valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    static XMLScanner* resolveScanner
-    (
-          const XMLCh* const        scannerName
-        , XMLDocumentHandler* const docHandler
-        , DocTypeHandler* const     docTypeHandler
-        , XMLEntityHandler* const   entityHandler
-        , XMLErrorReporter* const   errReporter
-        , XMLValidator* const       valToAdopt
-        , GrammarResolver* const    grammarResolver
-        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-    static XMLScanner* getDefaultScanner
-    (
-          XMLValidator* const  valToAdopt
-        , GrammarResolver* const grammarResolver
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-    );
-
-private :
-
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructor and destructor
-    // -----------------------------------------------------------------------
-    XMLScannerResolver();
-    ~XMLScannerResolver();
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XProtoType.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(XPROTOTYPE_HPP)
-#define XPROTOTYPE_HPP
-
-#include <xercesc/util/PlatformUtils.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XSerializeEngine;
-class XSerializable;
-
-class XMLUTIL_EXPORT XProtoType
-{
-public:
-
-           void       store(XSerializeEngine& serEng) const;
-
-    static void        load(XSerializeEngine&          serEng
-                          , XMLByte*          const    name
-                          , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
-                          );
-
-    // -------------------------------------------------------------------------------
-    //  data
-    //
-    //  fClassName: 
-    //            name of the XSerializable derivatives
-    //
-    //  fCreateObject:
-    //            pointer to the factory method (createObject()) 
-    //            of the XSerializable derivatives
-    //
-    // -------------------------------------------------------------------------------
-
-    XMLByte*          fClassName;
-
-    XSerializable*    (*fCreateObject)(MemoryManager*);
-
-};
-
-#define DECL_XPROTOTYPE(class_name) \
-static  XProtoType        class##class_name;                   \
-static  XSerializable*    createObject(MemoryManager* manager);
-
-/***
- * For non-abstract class
- ***/
-#define IMPL_XPROTOTYPE_TOCREATE(class_name) \
-IMPL_XPROTOTYPE_INSTANCE(class_name) \
-XSerializable* class_name::createObject(MemoryManager* manager) \
-{return new (manager) class_name(manager);}
-
-/***
-* For abstract class
- ***/
-#define IMPL_XPROTOTYPE_NOCREATE(class_name) \
-IMPL_XPROTOTYPE_INSTANCE(class_name) \
-XSerializable* class_name::createObject(MemoryManager*) \
-{return 0;}
-
-
-/***
- * Helper Macro 
- ***/
-#define XPROTOTYPE_CLASS(class_name) ((XProtoType*)(&class_name::class##class_name))
-
-#define IMPL_XPROTOTYPE_INSTANCE(class_name) \
-XProtoType class_name::class##class_name = \
-{(XMLByte*) #class_name, class_name::createObject };
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSAXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XSAXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(XSAXMLSCANNER_HPP)
-#define XSAXMLSCANNER_HPP
-
-#include <xercesc/internal/SGXMLScanner.hpp>
-
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-//
-//  This is a scanner class, which processes/validates contents of XML Schema
-//  Annotations. It's intended for internal use only.
-//
-class XMLPARSER_EXPORT XSAXMLScanner : public SGXMLScanner
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Destructor
-    // -----------------------------------------------------------------------
-    virtual ~XSAXMLScanner();
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner public virtual methods
-    // -----------------------------------------------------------------------
-    virtual const XMLCh* getName() const;
-
-protected:
-    // -----------------------------------------------------------------------
-    //  Constructors
-    // -----------------------------------------------------------------------
-    /**
-     * The grammar representing the XML Schema annotation (xsaGrammar) is
-     * passed in by the caller. The scanner will own it and is responsible
-     * for deleting it.
-     */
-    XSAXMLScanner
-    (
-        GrammarResolver* const grammarResolver
-        , XMLStringPool* const   uriStringPool
-        , SchemaGrammar* const   xsaGrammar
-        , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
-    );
-    friend class TraverseSchema;
-
-    // -----------------------------------------------------------------------
-    //  XMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual void scanReset(const InputSource& src);
-
-    // -----------------------------------------------------------------------
-    //  SGXMLScanner virtual methods
-    // -----------------------------------------------------------------------
-    virtual bool scanStartTag(bool& gotData);
-    virtual void scanEndTag(bool& gotData);
-
-private :
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-    XSAXMLScanner();
-    XSAXMLScanner(const XSAXMLScanner&);
-    XSAXMLScanner& operator=(const XSAXMLScanner&);
-
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-    void scanRawAttrListforNameSpaces(int attCount);
-    void switchGrammar(const XMLCh* const newGrammarNameSpace, bool laxValidate);
-};
-
-inline const XMLCh* XSAXMLScanner::getName() const
-{
-    return XMLUni::fgXSAXMLScanner;
-}
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSObjectFactory.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XSObjectFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XSOBJECTFACTORY_HPP)
-#define XSOBJECTFACTORY_HPP
-
-#include <xercesc/framework/psvi/XSConstants.hpp>
-#include <xercesc/util/RefHashTableOf.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XSObject;
-class XSAttributeUse;
-class XSAttributeDeclaration;
-class XSModel;
-class XSElementDeclaration;
-class XSSimpleTypeDefinition;
-class XSComplexTypeDefinition;
-class XSModelGroupDefinition;
-class XSAttributeGroupDefinition;
-class XSWildcard;
-class XSParticle;
-class XSAnnotation;
-class XSNamespaceItem;
-class XSNotationDeclaration;
-class SchemaAttDef;
-class SchemaElementDecl;
-class DatatypeValidator;
-class ContentSpecNode;
-class ComplexTypeInfo;
-class XercesGroupInfo;
-class XercesAttGroupInfo;
-class XSIDCDefinition;
-class IdentityConstraint;
-class XMLNotationDecl;
-
-/**
- * Factory class to create various XSObject(s)
- * Used by XSModel
- */
-class XMLPARSER_EXPORT XSObjectFactory : public XMemory
-{
-public:
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    XSObjectFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-    ~XSObjectFactory();
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and destructor
-    // -----------------------------------------------------------------------
-    XSObjectFactory(const XSObjectFactory&);
-    XSObjectFactory& operator=(const XSObjectFactory&);
-
-    // -----------------------------------------------------------------------
-    //  factory methods
-    // -----------------------------------------------------------------------
-    XSParticle* createModelGroupParticle
-    (
-        const ContentSpecNode* const node
-        , XSModel* const             xsModel
-    );
-
-    XSAttributeDeclaration* addOrFind
-    (
-        SchemaAttDef* const attDef
-        , XSModel* const xsModel
-        , XSComplexTypeDefinition* const enclosingTypeDef = 0
-    );
-
-    XSSimpleTypeDefinition* addOrFind
-    (
-        DatatypeValidator* const validator
-        , XSModel* const xsModel
-        , bool isAnySimpleType = false
-    );
-
-    XSElementDeclaration* addOrFind
-    (
-        SchemaElementDecl* const elemDecl
-        , XSModel* const xsModel
-        , XSComplexTypeDefinition* const enclosingTypeDef = 0
-    );
-
-    XSComplexTypeDefinition* addOrFind
-    (
-        ComplexTypeInfo* const typeInfo
-        , XSModel* const xsModel
-    );
-
-    XSIDCDefinition* addOrFind
-    (
-        IdentityConstraint* const ic
-        , XSModel* const xsModel
-    );
-
-    XSNotationDeclaration* addOrFind
-    (
-        XMLNotationDecl* const notDecl
-        , XSModel* const xsModel
-    );
-
-    XSAttributeUse* createXSAttributeUse
-    (
-        XSAttributeDeclaration* const xsAttDecl
-        , XSModel* const xsModel
-    );
-    XSWildcard* createXSWildcard
-    (
-        SchemaAttDef* const attDef
-        , XSModel* const xsModel
-    );
-
-    XSWildcard* createXSWildcard
-    (
-        const ContentSpecNode* const rootNode
-        , XSModel* const xsModel
-    );
-
-    XSModelGroupDefinition* createXSModelGroupDefinition
-    (
-        XercesGroupInfo* const groupInfo
-        , XSModel* const xsModel
-    );
-
-    XSAttributeGroupDefinition* createXSAttGroupDefinition
-    (
-        XercesAttGroupInfo* const attGroupInfo
-        , XSModel* const xsModel
-    );
-
-    // -----------------------------------------------------------------------
-    //  Helper methods
-    // -----------------------------------------------------------------------
-    // creates a particle corresponding to an element
-    XSParticle* createElementParticle
-    (
-        const ContentSpecNode* const rootNode
-        , XSModel* const             xsModel
-    );
-
-    // creates a particle corresponding to a wildcard
-    XSParticle* createWildcardParticle
-    (
-        const ContentSpecNode* const rootNode
-        , XSModel* const             xsModel
-    );
-
-    XSAnnotation* getAnnotationFromModel
-    (
-        XSModel* const xsModel
-        , const void* const key
-    );
-
-    void buildAllParticles
-    (
-        const ContentSpecNode* const rootNode
-        , XSParticleList* const particleList
-        , XSModel* const xsModel
-    );
-
-    void buildChoiceSequenceParticles
-    (
-        const ContentSpecNode* const rootNode
-        , XSParticleList* const particleList
-        , XSModel* const xsModel
-    );
-
-    void putObjectInMap
-    (
-        void* key
-        , XSObject* const object
-    );
-
-    XSObject* getObjectFromMap
-    (
-        void* key
-    );
-
-    void processFacets
-    (
-        DatatypeValidator* const dv
-        , XSModel* const xsModel
-        , XSSimpleTypeDefinition* const xsST
-    );
-
-    void processAttUse
-    (
-        SchemaAttDef* const attDef
-        , XSAttributeUse* const xsAttUse
-    );
-
-    bool isMultiValueFacetDefined(DatatypeValidator* const dv);
-
-    // make XSModel our friend
-    friend class XSModel;
-
-    // -----------------------------------------------------------------------
-    //  Private Data Members
-    //
-    //  fMemoryManager
-    //      The memory manager used to create various XSObject(s).
-    // -----------------------------------------------------------------------
-    MemoryManager*            fMemoryManager;
-    RefHashTableOf<XSObject>* fXercesToXSMap;
-    RefVectorOf<XSObject>*    fDeleteVector;
-};
-
-inline XSObject* XSObjectFactory::getObjectFromMap(void* key)
-{
-    return fXercesToXSMap->get(key);
-}
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializable.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XSerializable.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XSERIALIZABLE_HPP)
-#define XSERIALIZABLE_HPP
-
-#include <xercesc/internal/XSerializeEngine.hpp>
-#include <xercesc/internal/XProtoType.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLUTIL_EXPORT XSerializable
-{
-public :
-
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-    virtual ~XSerializable() {} ;
-
-    // -----------------------------------------------------------------------
-    //  Serialization Interface
-    // -----------------------------------------------------------------------   
-    virtual bool        isSerializable()               const = 0;
-
-    virtual void        serialize(XSerializeEngine& )        = 0;
-
-    virtual XProtoType* getProtoType()                 const = 0;
-
-protected:
-    XSerializable() {}
-    XSerializable(const XSerializable& ) {}             
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented assignment operator
-    // -----------------------------------------------------------------------
-	XSerializable& operator=(const XSerializable&);
-
-};
-
-inline void XSerializable::serialize(XSerializeEngine& )
-{
-}
-
-/***
- * Macro to be included in XSerializable derivatives'
- * declaration's public section
- ***/
-#define DECL_XSERIALIZABLE(class_name) \
-public: \
-\
-DECL_XPROTOTYPE(class_name) \
-\
-virtual bool                    isSerializable()                  const ;  \
-virtual XProtoType*             getProtoType()                    const;   \
-virtual void                    serialize(XSerializeEngine&); \
-\
-inline friend XSerializeEngine& operator>>(XSerializeEngine& serEng  \
-                                         , class_name*&      objPtr) \
-{objPtr = (class_name*) serEng.read(XPROTOTYPE_CLASS(class_name));   \
- return serEng; \
-};
-	
-/***
- * Macro to be included in the implementation file
- * of XSerializable derivatives' which is instantiable
- ***/
-#define IMPL_XSERIALIZABLE_TOCREATE(class_name) \
-IMPL_XPROTOTYPE_TOCREATE(class_name) \
-IMPL_XSERIAL(class_name)
-
-/***
- * Macro to be included in the implementation file
- * of XSerializable derivatives' which is UN-instantiable
- ***/
-#define IMPL_XSERIALIZABLE_NOCREATE(class_name) \
-IMPL_XPROTOTYPE_NOCREATE(class_name) \
-IMPL_XSERIAL(class_name)
-
-/***
- * Helper Macro 
- ***/
-#define IMPL_XSERIAL(class_name) \
-bool        class_name::isSerializable() const \
-{return true; } \
-XProtoType* class_name::getProtoType()   const \
-{return XPROTOTYPE_CLASS(class_name); } 
-
-#define IS_EQUIVALENT(lptr, rptr) \
-    if (lptr == rptr)             \
-        return true;              \
-    if (( lptr && !rptr) || (!lptr &&  rptr))  \
-        return false;
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
-
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializationException.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XSerializationException.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-
-#if !defined(XSERIALIZATION_EXCEPTION_HPP)
-#define XSERIALIZATION_EXCEPTION_HPP
-
-#include <xercesc/util/XercesDefs.hpp>
-#include <xercesc/util/XMLException.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-MakeXMLException(XSerializationException, XMLUTIL_EXPORT)
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializeEngine.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,873 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XSerializeEngine.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XSERIALIZE_ENGINE_HPP)
-#define XSERIALIZE_ENGINE_HPP
-
-#include <xercesc/util/RefHashTableOf.hpp>
-#include <xercesc/util/ValueVectorOf.hpp>
-#include <xercesc/util/XMLExceptMsgs.hpp>
-
-#include <xercesc/internal/XSerializationException.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XSerializable;
-class XProtoType;
-class MemoryManager;
-class XSerializedObjectId;
-class BinOutputStream;
-class BinInputStream;
-class XMLGrammarPool;
-class XMLGrammarPoolImpl;
-class XMLStringPool;
-
-class XMLUTIL_EXPORT XSerializeEngine
-{
-public:
-
-    enum { mode_Store
-         , mode_Load 
-    };
-    
-
-    static const bool toReadBufferLen;
-
-    typedef unsigned int   XSerializedObjectId_t;
-
-    /***
-      *
-      *  Destructor 
-      *
-      ***/
-    ~XSerializeEngine();
-
-    /***
-      *
-      *  Constructor for de-serialization(loading)
-      *
-      *  Application needs to make sure that the instance of
-      *  BinInputStream, persists beyond the life of this
-      *  SerializeEngine.
-      *
-      *  Param
-      *     inStream         input stream
-      *     gramPool         Grammar Pool
-      *     bufSize          the size of the internal buffer
-      *
-      ***/
-    XSerializeEngine(BinInputStream*         inStream
-                   , XMLGrammarPool* const   gramPool
-                   , unsigned long           bufSize = 8192 );
-
-
-    /***
-      *
-      *  Constructor for serialization(storing)
-      *
-      *  Application needs to make sure that the instance of
-      *  BinOutputStream, persists beyond the life of this
-      *  SerializeEngine.
-      *
-      *  Param
-      *     outStream        output stream
-      *     gramPool         Grammar Pool
-      *     bufSize          the size of the internal buffer
-      *
-      ***/
-    XSerializeEngine(BinOutputStream*        outStream
-                   , XMLGrammarPool* const   gramPool
-                   , unsigned long           bufSize = 8192 );
-
-
-    /***
-      *
-      *  Deprecated
-      *
-      *  Constructor for de-serialization(loading)
-      *
-      *  Application needs to make sure that the instance of
-      *  BinInputStream, persists beyond the life of this
-      *  SerializeEngine.
-      *
-      *  Param
-      *     inStream         input stream
-      *     manager          MemoryManager
-      *     bufSize          the size of the internal buffer
-      *
-      ***/
-    XSerializeEngine(BinInputStream*         inStream
-                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-                   , unsigned long           bufSize = 8192 );
-
-    
-    /***
-      *
-      *  Deprecated
-      *
-      *  Constructor for serialization(storing)
-      *
-      *  Application needs to make sure that the instance of
-      *  BinOutputStream, persists beyond the life of this
-      *  SerializeEngine.
-      *
-      *  Param
-      *     outStream        output stream
-      *     manager          MemoryManager
-      *     bufSize          the size of the internal buffer
-      *
-      ***/
-    XSerializeEngine(BinOutputStream*        outStream
-                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
-                   , unsigned long           bufSize = 8192 );
-
-    /***
-      *
-      *  When serialization, flush out the internal buffer
-      *
-      *  Return: 
-      *
-      ***/
-    void flush();
-
-    /***
-      *
-      *  Checking if the serialize engine is doing serialization(storing)
-      *
-      *  Return: true, if it is 
-      *          false, otherwise
-      *
-      ***/
-    inline bool isStoring() const;
-
-    /***
-      *
-      *  Checking if the serialize engine is doing de-serialization(loading)
-      *
-      *  Return: true, if it is 
-      *          false, otherwise
-      *
-      ***/
-    inline bool isLoading() const;
-
-    /***
-      *
-      *  Get the GrammarPool
-      *
-      *  Return: XMLGrammarPool
-      *
-      ***/
-    XMLGrammarPool* getGrammarPool() const;
-
-    /***
-      *
-      *  Get the StringPool
-      *
-      *  Return: XMLStringPool
-      *
-      ***/
-    XMLStringPool* getStringPool() const;
-
-    /***
-      *
-      *  Get the embeded Memory Manager
-      *
-      *  Return: MemoryManager
-      *
-      ***/
-    MemoryManager* getMemoryManager() const;
-
-    /***
-      *
-      *  Get the storer level (the level of the serialize engine
-      *  which created the binary stream that this serialize engine
-      *  is loading).
-      *
-      *  The level returned is meaningful only when
-      *  the engine isLoading.
-      *
-      *  Return: level
-      *
-      ***/
-    inline unsigned short getStorerLevel() const;
-
-    /***
-      *
-      *  Write object to the internal buffer.
-      *
-      *  Param
-      *     objectToWrite:    the object to be serialized
-      *
-      *  Return:
-      *
-      ***/
-           void           write(XSerializable* const objectToWrite);
-
-    /***
-      *
-      *  Write prototype info to the internal buffer.
-      *
-      *  Param
-      *     protoType:    instance of prototype
-      *
-      *  Return:
-      *
-      ***/
-           void           write(XProtoType* const protoType);
-
-    /***
-      *
-      *  Write a stream of XMLByte to the internal buffer.
-      *
-      *  Param
-      *     toWrite:   the stream of XMLByte to write
-      *     writeLen:  the length of the stream
-      *
-      *  Return:
-      *
-      ***/
-           void           write(const XMLByte* const toWrite
-                               ,      int            writeLen);
-
-    /***
-      *
-      *  Write a stream of XMLCh to the internal buffer.
-      *
-      *  Param
-      *     toWrite:   the stream of XMLCh to write
-      *     writeLen:  the length of the stream
-      *
-      *  Return:
-      *
-      ***/
-           void           write(const XMLCh* const toWrite
-                               ,      int          writeLen);
-
-    /***
-      *
-      *  Write a stream of XMLCh to the internal buffer.
-      *
-      *  Write the bufferLen first if requested, then the length
-      *  of the stream followed by the stream.
-      *
-      *  Param
-      *     toWrite:        the stream of XMLCh to write
-      *     bufferLen:      the maximum size of the buffer
-      *     toWriteBufLen:  specify if the bufferLen need to be written or not
-      *
-      *  Return:
-      *
-      ***/
-           void           writeString(const XMLCh* const toWrite
-                                    , const int          bufferLen = 0
-                                    , bool               toWriteBufLen = false);
-
-    /***
-      *
-      *  Write a stream of XMLByte to the internal buffer.
-      *
-      *  Write the bufferLen first if requested, then the length
-      *  of the stream followed by the stream.
-      *
-      *  Param
-      *     toWrite:        the stream of XMLByte to write
-      *     bufferLen:      the maximum size of the buffer
-      *     toWriteBufLen:  specify if the bufferLen need to be written or not
-      *
-      *  Return:
-      *
-      ***/
-           void           writeString(const XMLByte* const toWrite
-                                    , const int            bufferLen = 0
-                                    , bool                 toWriteBufLen = false);
-
-    static const bool toWriteBufferLen;
-
-    /***
-      *
-      *  Read/Create object from the internal buffer.
-      *
-      *  Param
-      *     protoType:    an instance of prototype of the object anticipated
-      *
-      *  Return:          to object read/created
-      *
-      ***/
-	       XSerializable* read(XProtoType* const protoType);
-
-    /***
-      *
-      *  Read prototype object from the internal buffer.
-      *  Verify if the same prototype object found in buffer.
-      *
-      *  Param
-      *     protoType:    an instance of prototype of the object anticipated
-      *     objTag:       the object Tag to an existing object
-      *
-      *  Return:          true  : if matching found
-      *                   false : otherwise
-      *
-      ***/
-           bool           read(XProtoType* const    protoType
-		                     , XSerializedObjectId_t*       objTag);
-
-    /***
-      *
-      *  Read XMLByte stream from the internal buffer.
-      *
-      *  Param
-      *     toRead:   the buffer to hold the XMLByte stream
-      *     readLen:  the length of the XMLByte to read in
-      *
-      *  Return:
-      *
-      ***/
-           void           read(XMLByte* const toRead
-                             , int            readLen);
-
-    /***
-      *
-      *  Read XMLCh stream from the internal buffer.
-      *
-      *  Param
-      *     toRead:   the buffer to hold the XMLCh stream
-      *     readLen:  the length of the XMLCh to read in
-      *
-      *  Return:
-      *
-      ***/
-           void           read(XMLCh* const toRead
-                             , int          readLen);
-
-    /***
-      *
-      *  Read a stream of XMLCh from the internal buffer.
-      *
-      *  Read the bufferLen first if requested, then the length
-      *  of the stream followed by the stream.
-      *
-      *  Param
-      *     toRead:       the pointer to the buffer to hold the XMLCh stream
-      *     bufferLen:    the size of the buffer created
-      *     dataLen:       the length of the stream
-      *     toReadBufLen: specify if the bufferLen need to be read or not
-      *
-      *  Return:
-      *
-      ***/
-           void           readString(XMLCh*&        toRead
-                                   , int&           bufferLen
-                                   , int&           dataLen
-                                   , bool           toReadBufLen = false);
-
-     /***
-       *
-       *  Read a stream of XMLCh from the internal buffer.
-       *
-       *  Read the bufferLen first if requested, then the length
-       *  of the stream followed by the stream.
-       *
-       *  Param
-       *     toRead:       the pointer to the buffer to hold the XMLCh stream
-       *     bufferLen:    the size of the buffer created
-       *
-       *  Return:
-       *
-       ***/
-            inline void     readString(XMLCh*&        toRead
-                                    , int&            bufferLen);
- 
-     /***
-       *
-       *  Read a stream of XMLCh from the internal buffer.
-       *
-       *  Param
-       *     toRead:       the pointer to the buffer to hold the XMLCh stream
-       *
-       *  Return:
-       *
-       ***/
-            inline void      readString(XMLCh*&        toRead);
-
-    /***
-      *
-      *  Read a stream of XMLByte from the internal buffer.
-      *
-      *  Read the bufferLen first if requested, then the length
-      *  of the stream followed by the stream.
-      *
-      *  Param
-      *     toRead:       the pointer to the buffer to hold the XMLByte stream
-      *     bufferLen:    the size of the buffer created
-      *     dataLen:       the length of the stream
-      *     toReadBufLen: specify if the bufferLen need to be read or not
-      *
-      *  Return:
-      *
-      ***/
-           void           readString(XMLByte*&      toRead
-                                   , int&           bufferLen
-                                   , int&           dataLen
-                                   , bool           toReadBufLen = false);
-
-
-     /***
-       *
-       *  Read a stream of XMLByte from the internal buffer.
-       *
-       *  Read the bufferLen first if requested, then the length
-       *  of the stream followed by the stream.
-       *
-       *  Param
-       *     toRead:       the pointer to the buffer to hold the XMLByte stream
-       *     bufferLen:    the size of the buffer created
-       *
-       *  Return:
-       *
-       ***/
-            inline void       readString(XMLByte*&      toRead
-                                       , int&           bufferLen);
- 
-     /***
-       *
-       *  Read a stream of XMLByte from the internal buffer.
-       *
-       *  Read the bufferLen first if requested, then the length
-       *  of the stream followed by the stream.
-       *
-       *  Param
-       *     toRead:       the pointer to the buffer to hold the XMLByte stream
-       *     bufferLen:    the size of the buffer created
-       *     dataLen:       the length of the stream
-       *     toReadBufLen: specify if the bufferLen need to be read or not
-       *
-       *  Return:
-       *
-       ***/
-            inline void       readString(XMLByte*&      toRead);
-
-    /***
-      *
-      *  Check if the template object has been stored or not
-      *
-      *  Param
-      *    objectPtr:     the template object pointer
-      *
-      *  Return:          true  : the object has NOT been stored yet
-      *                   false : otherwise
-      *
-      ***/
-           bool           needToStoreObject(void* const templateObjectToWrite);
-
-    /***
-      *
-      *  Check if the template object has been loaded or not
-      *
-      *  Param
-      *    objectPtr:     the address of the template object pointer
-      *
-      *  Return:          true  : the object has NOT been loaded yet
-      *                   false : otherwise
-      *
-      ***/
-           bool           needToLoadObject(void**       templateObjectToRead);
-
-    /***
-      *
-      *  In the case of needToLoadObject() return true, the client
-      *  application needs to instantiate an expected template object, and
-      *  register the address to the engine.
-      *
-      *  Param
-      *    objectPtr:     the template object pointer newly instantiated
-      *
-      *  Return:  
-      *
-      ***/
-           void           registerObject(void* const templateObjectToRegister);
-
-    /***
-      *
-      *  Insertion operator for serializable classes
-      *
-      ***/
-
-	friend XSerializeEngine& operator<<(XSerializeEngine&
-                                      , XSerializable* const );
-
-    /***
-      *
-      *  Insertion operators for 
-      *     . basic Xerces data types
-      *     . built-in types 
-      *
-      ***/
-           XSerializeEngine& operator<<(XMLByte);
-           XSerializeEngine& operator<<(XMLCh);
-
-           XSerializeEngine& operator<<(char);
-           XSerializeEngine& operator<<(short);
-           XSerializeEngine& operator<<(int);
-           XSerializeEngine& operator<<(unsigned int);
-           XSerializeEngine& operator<<(long);
-           XSerializeEngine& operator<<(unsigned long);
-           XSerializeEngine& operator<<(float);
-           XSerializeEngine& operator<<(double);
-           XSerializeEngine& operator<<(bool);
-
-    /***
-      *
-      *  Extraction operators for 
-      *     . basic Xerces data types
-      *     . built-in types 
-      *
-      ***/
-           XSerializeEngine& operator>>(XMLByte&);
-           XSerializeEngine& operator>>(XMLCh&);
-
-           XSerializeEngine& operator>>(char&);
-           XSerializeEngine& operator>>(short&);
-           XSerializeEngine& operator>>(int&);
-           XSerializeEngine& operator>>(unsigned int&);
-           XSerializeEngine& operator>>(long&);
-           XSerializeEngine& operator>>(unsigned long&);
-           XSerializeEngine& operator>>(float&);
-           XSerializeEngine& operator>>(double&);
-           XSerializeEngine& operator>>(bool&);
-
-    /***
-      *
-      *  Getters
-      *
-      ***/
-    inline 
-    XMLSize_t   getBufSize()    const;
-
-    inline 
-    XMLSize_t   getBufCur()     const;
-
-    inline 
-    XMLSize_t   getBufCurAccumulated()     const;
-
-    inline 
-    XMLSize_t   getBufCount()    const;
-
-    void                  trace(char*)     const;
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-	XSerializeEngine();
-    XSerializeEngine(const XSerializeEngine&);
-	XSerializeEngine& operator=(const XSerializeEngine&);
-
-    /***
-      *
-      *   Store Pool Opertions
-      *
-      ***/
-           XSerializedObjectId_t  lookupStorePool(void* const objectPtr) const;
-           void                   addStorePool(void* const objectPtr);
-
-    /***
-      *
-      *   Load Pool Opertions
-      *
-      ***/
-           XSerializable* lookupLoadPool(XSerializedObjectId_t objectTag) const;
-           void           addLoadPool(void* const objectPtr);
-   
-    /***
-      *   
-      *    Intenal Buffer Operations
-      *
-      ***/
-    inline void           checkAndFillBuffer(int bytesNeedToRead);
-
-    inline void           checkAndFlushBuffer(int bytesNeedToWrite);
-
-           void           fillBuffer();
-
-           void           flushBuffer();
-
-           void           pumpCount();
-
-    inline void           resetBuffer();
-
-    /***
-      *   
-      *    Helper
-      *
-      ***/
-    inline void            ensureStoring()                          const;
-
-    inline void            ensureLoading()                          const;
-
-    inline void            ensureStoreBuffer()                      const;
-
-    inline void            ensureLoadBuffer()                       const;
-
-    inline void            ensurePointer(void* const)               const;
-
-    inline void            ensureBufferLen(int  bufferLen)          const;
-
-    inline void            Assert(bool  toEval
-                                , const XMLExcepts::Codes toThrow)  const;
-
-
-    inline XMLSize_t          calBytesNeeded(XMLSize_t)  const;
-
-    inline XMLSize_t          alignAdjust(XMLSize_t)     const;
-
-    inline void            alignBufCur(XMLSize_t);
-
-    // Make XTemplateSerializer friend of XSerializeEngine so that
-    // we can call lookupStorePool and lookupLoadPool in the case of
-    // annotations.
-    friend class XTemplateSerializer;
-
-    // -------------------------------------------------------------------------------
-    //  data
-    //
-    //  fStoreLoad: 
-    //               Indicator: storing(serialization) or loading(de-serialization)
-    //
-    //  fStorerLevel:
-    //              The level of the serialize engine which created the binary 
-    //              stream that this serialize engine is loading
-    //
-    //              It is set by GrammarPool when loading
-    //
-    //  fGrammarPool:
-    //               Thw owning GrammarPool which instantiate this SerializeEngine 
-    //               instance
-    //
-    //  fInputStream:
-    //               Binary stream to read from (de-serialization), provided
-    //               by client application, not owned.
-    //
-    //  fOutputStream:
-    //               Binary stream to write to (serialization), provided 
-    //               by client application, not owned.
-    //
-    //  fBufSize:
-    //               The size of the internal buffer
-    //
-    //  fBufStart/fBufEnd:
-    //               
-    //               The internal buffer.
-    //  fBufEnd:
-    //               one beyond the last valid cell
-    //               fBufEnd === (fBufStart + fBufSize)
-    //
-    //  fBufCur:
-    //               The cursor of the buffer
-    //
-    //  fBufLoadMax:
-    //               Indicating the end of the valid content in the buffer
-    //
-    //  fStorePool:
-    //                Object collection for storing
-    //
-    //  fLoadPool:
-    //                Object collection for loading
-    //
-    //  fMapCount:
-    // -------------------------------------------------------------------------------
-    const short                            fStoreLoad;
-    short                                  fStorerLevel;
-
-    XMLGrammarPool*  const                 fGrammarPool;
-    BinInputStream*  const                 fInputStream;
-    BinOutputStream* const                 fOutputStream;
-
-    XMLSize_t                              fBufCount;
-
-    //buffer
-    const XMLSize_t                        fBufSize;
-	XMLByte* const                         fBufStart;
-	XMLByte* const                         fBufEnd; 
-    XMLByte*                               fBufCur;
-    XMLByte*                               fBufLoadMax; 
-
-
-
-    /***
-     *   Map for storing object
-     *
-     *   key:   XSerializable*
-     *          XProtoType*
-     *
-     *   value: XMLInteger*, owned
-     *
-     ***/
-    RefHashTableOf<XSerializedObjectId>*   fStorePool;  
-
-    /***
-     *   Vector for loading object, objects are NOT owned
-     *
-     *   data:   XSerializable*
-     *           XProtoType*
-     *
-     ***/
-    ValueVectorOf<void*>*                  fLoadPool;    
-
-    /***
-     *   object counter
-     ***/
-	XSerializedObjectId_t                  fObjectCount;
-
-    //to allow grammar pool to set storer level when loading
-    friend class XMLGrammarPoolImpl;
-};
-
-inline bool XSerializeEngine::isStoring() const
-{
-    return (fStoreLoad == mode_Store);
-}
-
-inline bool XSerializeEngine::isLoading() const
-{
-    return (fStoreLoad == mode_Load);
-}
-
-inline XSerializeEngine& operator<<(XSerializeEngine&       serEng
-                                  , XSerializable* const    serObj)
-{
-	serEng.write(serObj); 
-    return serEng; 
-}
-
-inline void XSerializeEngine::ensureStoring() const
-{
-	Assert(isStoring(), XMLExcepts::XSer_Storing_Violation);
-}
-
-inline void XSerializeEngine::ensureLoading() const
-{
-	Assert(isLoading(), XMLExcepts::XSer_Loading_Violation);
-}
-
-
-
-inline void XSerializeEngine::Assert(bool toEval
-                                   , const XMLExcepts::Codes toThrow) const
-{
-    if (!toEval)
-    {
-        ThrowXMLwithMemMgr(XSerializationException, toThrow, getMemoryManager());  
-    }
-
-}
-
-inline void XSerializeEngine::readString(XMLCh*&        toRead
-                                       , int&           bufferLen)
-{
-    int  dummyDataLen;                
-    readString(toRead, bufferLen, dummyDataLen);
-}
-
-inline void XSerializeEngine::readString(XMLCh*&        toRead)
-{
-    int  dummyBufferLen;
-    int  dummyDataLen;
-    readString(toRead, dummyBufferLen, dummyDataLen);
-}
-
-inline void XSerializeEngine::readString(XMLByte*&      toRead
-                                       , int&           bufferLen)
-{
-    int  dummyDataLen;
-    readString(toRead, bufferLen, dummyDataLen);
-}
-
-inline void XSerializeEngine::readString(XMLByte*&      toRead)
-{
-    int  dummyBufferLen;
-    int  dummyDataLen;
-    readString(toRead, dummyBufferLen, dummyDataLen);
-}
-
-inline 
-XMLSize_t XSerializeEngine::getBufSize() const
-{
-    return fBufSize;
-}
-
-inline 
-XMLSize_t XSerializeEngine::getBufCur() const
-{
-    return XMLSize_t (fBufCur-fBufStart);
-}
-
-inline 
-XMLSize_t XSerializeEngine::getBufCurAccumulated() const
-{
-    return (fBufCount - (isStoring() ? 0: 1)) * fBufSize + (fBufCur-fBufStart);
-}
-
-inline 
-XMLSize_t XSerializeEngine::getBufCount() const
-{
-    return fBufCount;
-}
-
-inline 
-unsigned short XSerializeEngine::getStorerLevel() const
-{
-    return fStorerLevel;
-}
-
-/***
- *  Ought to be nested class
- ***/
-class XSerializedObjectId : public XMemory
-{
-public:
-
-    ~XSerializedObjectId(){};
-
-private:
-
-    inline XSerializedObjectId(XSerializeEngine::XSerializedObjectId_t val):
-        fData(val) { };
-
-    inline XSerializeEngine::XSerializedObjectId_t getValue() const {return fData; };
-
-    friend class XSerializeEngine;
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-	XSerializedObjectId();
-    XSerializedObjectId(const XSerializedObjectId&);
-	XSerializedObjectId& operator=(const XSerializedObjectId&);
-
-    XSerializeEngine::XSerializedObjectId_t    fData;
-
-};
-
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XTemplateSerializer.hpp	Thu May 27 12:58:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * $Id: XTemplateSerializer.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XTEMPLATE_SERIALIZER_HPP)
-#define XTEMPLATE_SERIALIZER_HPP
-
-#include <xercesc/util/ValueVectorOf.hpp>
-#include <xercesc/util/RefArrayVectorOf.hpp>
-#include <xercesc/util/RefVectorOf.hpp>
-#include <xercesc/util/RefHashTableOf.hpp>
-#include <xercesc/util/RefHash2KeysTableOf.hpp>
-#include <xercesc/util/RefHash3KeysIdPool.hpp>
-#include <xercesc/util/NameIdPool.hpp>
-
-#include <xercesc/framework/XMLNotationDecl.hpp>
-#include <xercesc/framework/XMLRefInfo.hpp>
-#include <xercesc/util/XMLNumber.hpp>
-#include <xercesc/validators/common/ContentSpecNode.hpp>
-#include <xercesc/validators/DTD/DTDAttDef.hpp>
-#include <xercesc/validators/DTD/DTDElementDecl.hpp>
-#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
-#include <xercesc/validators/schema/SchemaAttDef.hpp>
-#include <xercesc/validators/schema/SchemaElementDecl.hpp>
-#include <xercesc/validators/schema/XercesGroupInfo.hpp>
-#include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
-#include <xercesc/validators/schema/SchemaGrammar.hpp>
-#include <xercesc/validators/schema/identity/IC_Field.hpp>
-#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
-#include <xercesc/validators/schema/identity/XercesXPath.hpp>
-#include <xercesc/framework/psvi/XSAnnotation.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLUTIL_EXPORT XTemplateSerializer
-{
-public:
-
-    /**********************************************************
-     *
-     * ValueVectorOf
-     *
-     *   SchemaElementDecl*
-     *   unsigned int
-     *
-     ***********************************************************/   
-    static void           storeObject(ValueVectorOf<SchemaElementDecl*>* const tempObjToWrite
-                                    , XSerializeEngine&                        serEng);
-
-    static void           loadObject(ValueVectorOf<SchemaElementDecl*>**       tempObjToRead
-                                   , int                                       initSize
-                                   , bool                                      toCallDestructor
-                                   , XSerializeEngine&                         serEng);
-
-    static void           storeObject(ValueVectorOf<unsigned int>* const tempObjToWrite
-                                    , XSerializeEngine&                  serEng);
-
-    static void           loadObject(ValueVectorOf<unsigned int>**       tempObjToRead
-                                   , int                                 initSize
-                                   , bool                                toCallDestructor
-                                   , XSerializeEngine&                   serEng);
-
-    /**********************************************************
-     *
-     * RefArrayVectorOf
-     *
-     *   XMLCh
-     *
-     ***********************************************************/   
-    static void           storeObject(RefArrayVectorOf<XMLCh>* const tempObjToWrite
-                                    , XSerializeEngine&              serEng);
-
-    static void           loadObject(RefArrayVectorOf<XMLCh>**       tempObjToRead
-                                   , int                             initSize
-                                   , bool                            toAdopt
-                                   , XSerializeEngine&               serEng);
-
-    /**********************************************************
-     *
-     * RefVectorOf
-     *
-     *   SchemaAttDef
-     *   SchemaElementDecl
-     *   ContentSpecNode
-     *   IC_Field
-     *   DatatypeValidator
-     *   IdentityConstraint
-     *   XMLNumber
-     *   XercesLocationPath
-     *   XercesStep
-     *
-     ***********************************************************/
-    static void           storeObject(RefVectorOf<SchemaAttDef>* const tempObjToWrite
-                                    , XSerializeEngine&                serEng);
-
-    static void           loadObject(RefVectorOf<SchemaAttDef>**       tempObjToRead
-                                   , int                               initSize
-                                   , bool                              toAdopt
-                                   , XSerializeEngine&                 serEng);
-
-    static void           storeObject(RefVectorOf<SchemaElementDecl>* const tempObjToWrite
-                                    , XSerializeEngine&                     serEng);
-
-    static void           loadObject(RefVectorOf<SchemaElementDecl>**       tempObjToRead
-                                   , int                                    initSize
-                                   , bool                                   toAdopt
-                                   , XSerializeEngine&                      serEng);
-
-    static void           storeObject(RefVectorOf<ContentSpecNode>* const tempObjToWrite
-                                    , XSerializeEngine&                   serEng);
-
-    static void           loadObject(RefVectorOf<ContentSpecNode>**       tempObjToRead
-                                   , int                                  initSize
-                                   , bool                                 toAdopt
-                                   , XSerializeEngine&                    serEng);
-
-    static void           storeObject(RefVectorOf<IC_Field>* const tempObjToWrite
-                                    , XSerializeEngine&            serEng);
-
-    static void           loadObject(RefVectorOf<IC_Field>**       tempObjToRead
-                                   , int                           initSize
-                                   , bool                          toAdopt
-                                   , XSerializeEngine&             serEng);
-
-    static void           storeObject(RefVectorOf<DatatypeValidator>* const tempObjToWrite
-                                    , XSerializeEngine&                     serEng);
-
-    static void           loadObject(RefVectorOf<DatatypeValidator>**       tempObjToRead
-                                   , int                                    initSize
-                                   , bool                                   toAdopt
-                                   , XSerializeEngine&                      serEng);
- 
-    static void           storeObject(RefVectorOf<IdentityConstraint>* const tempObjToWrite
-                                    , XSerializeEngine&                      serEng);
-
-    static void           loadObject(RefVectorOf<IdentityConstraint>**       tempObjToRead
-                                   , int                                     initSize
-                                   , bool                                    toAdopt
-                                   , XSerializeEngine&                       serEng);
-
-    static void           storeObject(RefVectorOf<XMLNumber>* const tempObjToWrite
-                                    , XSerializeEngine&             serEng);
-
-    static void           loadObject(RefVectorOf<XMLNumber>**       tempObjToRead
-                                   , int                            initSize
-                                   , bool                           toAdopt
-                                   , XMLNumber::NumberType          numType
-                                   , XSerializeEngine&              serEng);
-
-    static void           storeObject(RefVectorOf<XercesLocationPath>* const tempObjToWrite
-                                    , XSerializeEngine&                      serEng);
-
-    static void           loadObject(RefVectorOf<XercesLocationPath>**       tempObjToRead
-                                   , int                                     initSize
-                                   , bool                                    toAdopt
-                                   , XSerializeEngine&                       serEng);
-
-    static void           storeObject(RefVectorOf<XercesStep>* const tempObjToWrite
-                                    , XSerializeEngine&              serEng);
-
-    static void           loadObject(RefVectorOf<XercesStep>**       tempObjToRead
-                                   , int                             initSize
-                                   , bool                            toAdopt
-                                   , XSerializeEngine&               serEng);
-
-    /**********************************************************
-     *
-     * RefHashTableOf
-     *
-     *   KVStringPair
-     *   XMLAttDef
-     *   DTDAttDef
-     *   ComplexTypeInfo
-     *   XercesGroupInfo
-     *   XercesAttGroupInfo
-     *   XMLRefInfo
-     *   DatatypeValidator
-     *   Grammar
-     *   XSAnnotation
-     *
-     ***********************************************************/
-    static void           storeObject(RefHashTableOf<KVStringPair>* const tempObjToWrite
-                                    , XSerializeEngine&                   serEng);
-
-    static void           loadObject(RefHashTableOf<KVStringPair>**       tempObjToRead
-                                   , int                                  initSize
-                                   , bool                                 toAdopt
-                                   , XSerializeEngine&                    serEng);
-
-    static void           storeObject(RefHashTableOf<XMLAttDef>* const tempObjToWrite
-                                    , XSerializeEngine&                serEng);
-
-    static void           loadObject(RefHashTableOf<XMLAttDef>**       tempObjToRead
-                                   , int                               initSize
-                                   , bool                              toAdopt
-                                   , XSerializeEngine&                 serEng);
-
-    static void           storeObject(RefHashTableOf<DTDAttDef>* const tempObjToWrite
-                                    , XSerializeEngine&                serEng);
-
-    static void           loadObject(RefHashTableOf<DTDAttDef>**       tempObjToRead
-                                   , int                               initSize
-                                   , bool                              toAdopt
-                                   , XSerializeEngine&                 serEng);
-
-    static void           storeObject(RefHashTableOf<ComplexTypeInfo>* const tempObjToWrite
-                                    , XSerializeEngine&                      serEng);
-
-    static void           loadObject(RefHashTableOf<ComplexTypeInfo>**       tempObjToRead
-                                   , int                                     initSize
-                                   , bool                                    toAdopt
-                                   , XSerializeEngine&                       serEng);
-
-    static void           storeObject(RefHashTableOf<XercesGroupInfo>* const tempObjToWrite
-                                    , XSerializeEngine&                      serEng);
-
-    static void           loadObject(RefHashTableOf<XercesGroupInfo>**       tempObjToRead
-                                   , int                                     initSize
-                                   , bool                                    toAdopt
-                                   , XSerializeEngine&                       serEng);
-
-    static void           storeObject(RefHashTableOf<XercesAttGroupInfo>* const tempObjToWrite
-                                    , XSerializeEngine&                         serEng);
-
-    static void           loadObject(RefHashTableOf<XercesAttGroupInfo>**       tempObjToRead
-                                   , int                                        initSize
-                                   , bool                                       toAdopt
-                                   , XSerializeEngine&                          serEng);
-
-    static void           storeObject(RefHashTableOf<XMLRefInfo>* const tempObjToWrite
-                                    , XSerializeEngine&                 serEng);
-
-    static void           loadObject(RefHashTableOf<XMLRefInfo>**       tempObjToRead
-                                   , int                                initSize
-                                   , bool                               toAdopt
-                                   , XSerializeEngine&                  serEng);
-
-    static void           storeObject(RefHashTableOf<DatatypeValidator>* const tempObjToWrite
-                                    , XSerializeEngine&                        serEng);
-
-    static void           loadObject(RefHashTableOf<DatatypeValidator>**       tempObjToRead
-                                   , int                                       initSize
-                                   , bool                                      toAdopt
-                                   , XSerializeEngine&                         serEng);
-
-    static void           storeObject(RefHashTableOf<Grammar>* const tempObjToWrite
-                                    , XSerializeEngine&              serEng);
-
-    static void           loadObject(RefHashTableOf<Grammar>**       tempObjToRead
-                                   , int                             initSize
-                                   , bool                            toAdopt
-                                   , XSerializeEngine&               serEng);
-
-    static void           storeObject(RefHashTableOf<XSAnnotation>* const tempObjToWrite
-                                    , XSerializeEngine&                   serEng);
-
-    static void           loadObject(RefHashTableOf<XSAnnotation>**  tempObjToRead
-                                   , int                             initSize
-                                   , bool                            toAdopt
-                                   , XSerializeEngine&               serEng);
-
-    /**********************************************************
-     *
-     * RefHash2KeysTableOf
-     *
-     *   SchemaAttDef
-     *   ElemVector
-     *
-     ***********************************************************/
-    static void           storeObject(RefHash2KeysTableOf<SchemaAttDef>* const tempObjToWrite
-                                    , XSerializeEngine&                        serEng);
-
-    static void           loadObject(RefHash2KeysTableOf<SchemaAttDef>**       tempObjToRead
-                                   , int                                       initSize
-                                   , bool                                      toAdopt
-                                   , XSerializeEngine&                         serEng);
-
-    static void           storeObject(RefHash2KeysTableOf<ElemVector>* const tempObjToWrite
-                                    , XSerializeEngine&                      serEng);
-
-    static void           loadObject(RefHash2KeysTableOf<ElemVector>**       tempObjToRead
-                                   , int                                     initSize
-                                   , bool                                    toAdopt
-                                   , XSerializeEngine&                       serEng);
-
-    /**********************************************************
-     *
-     * RefHash3KeysIdPool
-     *
-     *   SchemaElementDecl
-     *
-     ***********************************************************/
-    static void           storeObject(RefHash3KeysIdPool<SchemaElementDecl>* const tempObjToWrite
-                                    , XSerializeEngine&                            serEng);
-
-    static void           loadObject(RefHash3KeysIdPool<SchemaElementDecl>**       tempObjToRead
-                                   , int                                           initSize
-                                   , bool                                          toAdopt
-                                   , int                                           initSize2
-                                   , XSerializeEngine&                             serEng);
-
-    /**********************************************************
-     *
-     * NameIdPool
-     *
-     *   DTDElementDecl
-     *   DTDEntityDecl
-     *   XMLNotationDecl
-     *
-     ***********************************************************/
-    static void           storeObject(NameIdPool<DTDElementDecl>* const tempObjToWrite
-                                    , XSerializeEngine&                 serEng);
-
-    static void           loadObject(NameIdPool<DTDElementDecl>**       tempObjToRead
-                                   , int                                initSize
-                                   , int                                initSize2
-                                   , XSerializeEngine&                  serEng);
-
-    static void           storeObject(NameIdPool<DTDEntityDecl>* const tempObjToWrite
-                                    , XSerializeEngine&                serEng);
-
-    static void           loadObject(NameIdPool<DTDEntityDecl>**       tempObjToRead
-                                   , int                               initSize
-                                   , int                               initSize2
-                                   , XSerializeEngine&                 serEng);
-
-    static void           storeObject(NameIdPool<XMLNotationDecl>* const tempObjToWrite
-                                    , XSerializeEngine&                  serEng);
-
-    static void           loadObject(NameIdPool<XMLNotationDecl>**      tempObjToRead
-                                   , int                                initSize
-                                   , int                                initSize2
-                                   , XSerializeEngine&                  serEng);
-
-private:
-    // -----------------------------------------------------------------------
-    //  Unimplemented constructors and operators
-    // -----------------------------------------------------------------------
-	~XTemplateSerializer();
-    XTemplateSerializer();
-    XTemplateSerializer(const XTemplateSerializer&);
-	XTemplateSerializer& operator=(const XTemplateSerializer&);
-
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/TestElseIfData/TestElseIf.pkg	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,22 @@
+&EN
+
+#{"TestElseIf"}, (0x2002cccf), 1, 0, 0, TYPE=SA
+%{"SJ"}
+:"SJ"
+
+IF (0)
+	"\epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\file0"-"c:\data\First_first.txt"
+
+ELSEIF (0) 
+	"\epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\file0"-"c:\data\First_second.txt"
+
+ELSEIF (0) 
+	"\epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\file0"-"c:\data\First_third.txt"
+
+ELSEIF (1)
+	"\epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\file0"-"c:\data\First_fourth.txt"
+
+ELSE
+	"\epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\file0"-"c:\data\First_fifth.txt"
+
+ENDIF
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/TestElseIfData/file0	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,1 @@
+Some data
\ No newline at end of file
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_01
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-01_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_01
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_02
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-02_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_02
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_03
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-03_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_03
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_04
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-04_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_04
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_05
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-05_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_05
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_06
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-06_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_06
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_07
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-07_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_07
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_08
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-08_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_08
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_09
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-09_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_09
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_10
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-10_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_10
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_11
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-11_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_11
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_12
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-12_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_12
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_13
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-13_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_13
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_14
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-14_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_14
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_15
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-15_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_15
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_16
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-16_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_16
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_17
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-17_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_17
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_18
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-18_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_18
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_19
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-19_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_19
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_20
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-20_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_20
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_21
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-21_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_21
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_22
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-22_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_22
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_23
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-23_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_23
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_24
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-24_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_24
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_25
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-25_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_25
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_26
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-26_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_26
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_27
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-27_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_27
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_28
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-28_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_28
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_29
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-29_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_29
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_30
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-30_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_30
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_31
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-31_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_31
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_32
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-32_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_32
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_33
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-33_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_33
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_34
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-34_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_34
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_35
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-35_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_35
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_36
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-36_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_36
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_36
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-37_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_36
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_38
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-38_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_38
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_39
--- a/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/int_nr_option-39_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2,16 +2,16 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
+@rem under the terms of the License "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 @rem
 @rem Initial Contributors:
 @rem Nokia Corporation - initial contribution.
 @rem
 @rem Contributors:
 @rem
-@rem Description: 
+@rem Description:
 @rem
 @ECHO OFF
 REM int_nr_option_39
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/interpretsism001a_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,26 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+:: This batch file test if SCR DB is created when SCR DB is not present in System Drive. Error is thrown in case DB creation fails.
+@ECHO OFF
+REM testcaseM001a
+call interpretsis -s \epoc32\winscw\c\tswi\tinterpretsisinteg\sisfiles\interpretsism001.sis -t .\romdrive\system\install\ -c .\cdrive -r \epoc32\winscw\c\tswi\tinterpretsisinteg\testdatam001\rombld.log -w info -l /epoc32/winscw/c/interpretsis_test_harness_db.txt
+IF NOT %errorlevel%==0 GOTO LAST
+ECHO ***ERRORCODE*** %errorlevel% PASS>>/epoc32/winscw/c/interpretsis_test_harness_db.txt
+GOTO END
+:LAST
+ECHO ***ERRORCODE*** %errorlevel% FAIL>>/epoc32/winscw/c/interpretsis_test_harness_db.txt
+:END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/makesism001a_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -0,0 +1,26 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+:: This batch file creates sis file/files
+@ECHO OFF
+REM testcaseM001a
+if not exist .\cdrive mkdir .\cdrive > NUL
+if not exist .\romdrive mkdir .\romdrive > NUL
+IF NOT EXIST .\romdrive\system\install\ mkdir .\romdrive\system\install\ > NUL
+IF NOT EXIST .\cdrive\sys\install\scr\ mkdir .\cdrive\sys\install\scr\ > NUL
+call makesis \epoc32\winscw\c\tswi\tinterpretsisinteg\testdatam001\interpretsism001.pkg \epoc32\winscw\c\tswi\tinterpretsisinteg\sisfiles\interpretsism001.sis > NUL
+call /epoc32/winscw/c/tswi/tinterpretsisinteg/interpretsism001a_db.bat > NUL
+:END
\ No newline at end of file
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-01.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-01.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-02.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-02.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-03.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-03.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-05.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-05.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-06.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-06.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-07.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-07.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-08.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-08.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-09.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-09.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-10.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-10.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-11.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-11.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-12.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-12.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-13.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-13.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-14.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-14.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-15.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-15.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-16.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-16.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-17.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-17.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-18.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-18.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-19.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-19.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-20.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-20.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-21.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-21.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-22.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-22.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-23.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-23.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-24.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-24.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-25.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-25.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-26.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-26.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-27.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-27.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-28.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-28.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-29.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-29.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-30.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-30.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-31.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-31.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-32.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-32.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-33.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-33.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-34.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-34.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-35.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-35.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-36.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-36.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-37.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-37.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-38.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-38.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-39.script	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/scripts/int_nr_option-39.script	Fri Jun 11 13:45:18 2010 +0300
@@ -1,17 +1,17 @@
-//
 // Copyright (c) 2005-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"
+// 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".
+// at the URL "http://www.eclipse.org/legal/sfl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
 //
-// Description: 
+// Description:
+//
 //
 
 // Load Suite
--- a/secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis_db.bat	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis_db.bat	Fri Jun 11 13:45:18 2010 +0300
@@ -2745,6 +2745,28 @@
 if not %errorlevel%==0 GOTO LAST
 GOTO PASS_CLEAN
 
+:TestElseIF
+call makesis \epoc32\winscw\c\tswi\tinterpretsisinteg\TestElseIfData\TestElseIf.pkg \epoc32\winscw\c\tswi\tinterpretsisinteg\sisfiles\TestElseIf.sis > NUL
+call interpretsis -z .\romdrive -c .\cdrive  -s /epoc32/winscw/c/tswi/tinterpretsisinteg/sisfiles/TestElseIf.sis -w info -l /epoc32/winscw/c/interpretsis_test_harness_db.txt 
+if not %errorlevel%==0 GOTO LAST
+
+set exist_file=.\cdrive\data\First_first.txt
+if exist %exist_file% GOTO FAIL_FOUND
+
+set exist_file=.\cdrive\data\First_second.txt
+if exist %exist_file% GOTO FAIL_FOUND
+
+set exist_file=.\cdrive\data\First_third.txt
+if exist %exist_file% GOTO FAIL_FOUND
+
+set exist_file=.\cdrive\data\First_fifth.txt
+if exist %exist_file% GOTO FAIL_FOUND
+
+set exist_file=.\cdrive\data\First_fourth.txt
+if not exist %exist_file% GOTO FAIL_NOT_FOUND
+GOTO PASS_CLEAN
+
+
 REM Tests for native registry > NUL
 
 :PASS_CLEAN
--- a/secureswitools/swisistools/test/tinterpretsisinteg/testlistdb.xml	Thu May 27 12:58:35 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testlistdb.xml	Fri Jun 11 13:45:18 2010 +0300
@@ -489,6 +489,11 @@
 	<command log="no">\epoc32\winscw\c\tswi\tinterpretsisinteg\makesisf006_db.bat B testdataF006Def</command>
 	<check type="program" name="perl \epoc32\winscw\c\tswi\tinterpretsisinteg\check.pl">testdataf006Def testcasef006Deffile.txt 1 "positive" "both" 0</check>
 	</test>	
+<test id="testdataM001a">
+	<title>testdataM001a</title>
+	<command log="no">\epoc32\winscw\c\tswi\tinterpretsisinteg\makesism001a_db.bat testdataM001a </command>
+	<check type="program" name="perl \epoc32\winscw\c\tswi\tinterpretsisinteg\check.pl">testdataM001a testcasem001file.txt 1 "positive" "both"</check>
+	</test>
 <test id="testdataM001">
 	<title>testdataM001</title>
 	<command log="no">\epoc32\winscw\c\tswi\tinterpretsisinteg\makesism001_db.bat testdataM001 </command>
@@ -1936,5 +1941,11 @@
 	<command log="no">\epoc32\winscw\c\tswi\tinterpretsisinteg\int_nr_option-39_db.bat  INT_NR_Option-39</command>
 	<check type="program" name="perl \epoc32\winscw\c\tswi\tinterpretsisinteg\swicheck.pl">INT_NR_Option-39  INT_NR_Option-39 3  "positive"  "both" "nouid" "nobatchfile" "int_nr_option-39.script" "int_nr_option-39.htm" "FAIL = 0" "FAIL = 0" </check>
 	</test>
-	
+
+<test id="Test_ELSEIF_Block">
+	<title>Test_ELSEIF_Block</title>
+	<command log="no">\epoc32\winscw\c\tswi\tinterpretsisinteg\testinterpretsis_db.bat TestElseIF</command>
+	<check type="result"/>
+	</test>
+
 </testlist>