Changeset 34

Show
Ignore:
Timestamp:
02/02/12 01:08:10 (9 years ago)
Author:
vsilva
Message:

Improving Performance, add pdf and print feature, Add Xades, SDK compatibility

Location:
middleware-offline/trunk
Files:
62 added
25 removed
132 modified

Legend:

Unmodified
Added
Removed
  • middleware-offline/trunk/_src/eDT/DiagLib/pteidlib.cpp

    r5 r34  
    252252                                { 
    253253                                        PTEID_CardType type = reader.getCardType(); 
    254                                         if(type == PTEID_CARDTYPE_EID || type == PTEID_CARDTYPE_KIDS || type == PTEID_CARDTYPE_FOREIGNER) 
     254                                        if(type == PTEID_CARDTYPE_IAS07 || type == PTEID_CARDTYPE_IAS101) 
    255255                                        { 
    256256                                                PTEID_EIDCard &card=reader.getEIDCard(); 
     
    365365 
    366366                PTEID_CardType type = reader.getCardType(); 
    367                 if(type != PTEID_CARDTYPE_EID && type != PTEID_CARDTYPE_KIDS && type != PTEID_CARDTYPE_FOREIGNER) 
     367                if(type != PTEID_CARDTYPE_IAS07 && type != PTEID_CARDTYPE_IAS101) 
    368368                { 
    369369                        PTEID_ReleaseSDK(); 
     
    465465 
    466466                PTEID_CardType type = reader.getCardType(); 
    467                 if(type != PTEID_CARDTYPE_EID && type != PTEID_CARDTYPE_KIDS && type != PTEID_CARDTYPE_FOREIGNER) 
     467                if(type != PTEID_CARDTYPE_IAS07 && type != PTEID_CARDTYPE_IAS101) 
    468468                { 
    469469                        PTEID_ReleaseSDK(); 
  • middleware-offline/trunk/_src/eidmw/CSP/pteidlib.def

    r5 r34  
    1 LIBRARY pteid35CSPLib 
     1LIBRARY beidCSPLib 
    22 
    33EXPORTS 
  • middleware-offline/trunk/_src/eidmw/SetPathOpenssl098g.bat

    r5 r34  
    11@echo [INFO] Define default value for PTEID_DIR_OPENSSL_098G if not defined yet 
    22@echo [INFO] Input PTEID_DIR_OPENSSL_098G=%PTEID_DIR_OPENSSL_098G% 
    3 @set FILE_TO_FIND="lib\libeay32_0_9_8g.dll" "lib\ssleay32_0_9_8g.dll" "lib\libeay32_0_9_8g.lib" "lib\ssleay32_0_9_8g.lib" 
     3@set FILE_TO_FIND="bin\libeay32.dll" "bin\ssleay32.dll" "lib\libeay32.lib" "lib\ssleay32.lib" 
    44@echo [INFO] Looking for files: %FILE_TO_FIND% 
    55 
  • middleware-offline/trunk/_src/eidmw/SetPathQt450_Dynamic.bat

    r5 r34  
    11@echo [INFO] Define default value for PTEID_DIR_QT_450_DYNAMIC if not defined yet 
    22@echo [INFO] Input PTEID_DIR_QT_450_DYNAMIC=%PTEID_DIR_QT_450_DYNAMIC% 
    3 @set FILE_TO_FIND="lib\qtmain.lib" "lib\qtmaind.lib" "lib\QtCore4.lib" "lib\QtCored4.lib" "bin\QtCore4.dll" "bin\QtCored4.dll" "lib\QtGui4.lib" "bin\QtGuid4.dll" "bin\QtGui4.dll" "lib\QtGuid4.lib" "plugins\imageformats\qjpeg4.lib" "plugins\imageformats\qjpegd4.lib" "plugins\imageformats\qjpeg4.dll" "plugins\imageformats\qjpegd4.dll" 
     3@set FILE_TO_FIND="lib\qtmain.lib" "lib\QtCore4.lib" "bin\QtCore4.dll" "lib\QtGui4.lib"  "bin\QtGui4.dll" "plugins\imageformats\qjpeg4.lib" "plugins\imageformats\qjpeg4.dll" 
    44@echo [INFO] Looking for files: %FILE_TO_FIND% 
    55 
  • middleware-offline/trunk/_src/eidmw/_Builds/PteidEasyBuild.sln

    r25 r34  
    1111Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cardlayer", "..\cardlayer\pteid35cardlayer.vcproj", "{C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}" 
    1212        ProjectSection(ProjectDependencies) = postProject 
     13                {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
    1314                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     15        EndProjectSection 
     16EndProject 
     17Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "applayer", "..\applayer\pteid35applayer.vcproj", "{DC41E34B-8251-41DE-8065-D56B022F5755}" 
     18        ProjectSection(ProjectDependencies) = postProject 
     19                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1} = {D5B5A007-E873-4D12-B4AF-60811AFD9EF1} 
     20                {B39ED2B3-D53A-4077-B957-930979A3577D} = {B39ED2B3-D53A-4077-B957-930979A3577D} 
    1421                {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
    15         EndProjectSection 
    16 EndProject 
    17 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "applayer", "..\applayer\pteid35applayer.vcproj", "{DC41E34B-8251-41DE-8065-D56B022F5755}" 
    18         ProjectSection(ProjectDependencies) = postProject 
     22                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    1923                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
     24        EndProjectSection 
     25EndProject 
     26Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCpp", "..\eidlib\pteid35lib.vcproj", "{3A09DD63-945E-40EB-9053-5FE50F74B7C1}" 
     27        ProjectSection(ProjectDependencies) = postProject 
    2028                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     29                {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
     30        EndProjectSection 
     31EndProject 
     32Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gui", "..\eidgui\pteid35gui.vcproj", "{8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}" 
     33        ProjectSection(ProjectDependencies) = postProject 
     34                {3A09DD63-945E-40EB-9053-5FE50F74B7C1} = {3A09DD63-945E-40EB-9053-5FE50F74B7C1} 
     35        EndProjectSection 
     36EndProject 
     37Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libCS_35", "..\eidlibCS\libCS_35.csproj", "{99AB14F6-976E-4FEA-A07D-78479B55163A}" 
     38        ProjectSection(ProjectDependencies) = postProject 
     39                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A} = {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A} 
     40        EndProjectSection 
     41EndProject 
     42Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCS_Wrapper", "..\eidlibCS_Wrapper\pteid35libCS_Wrapper.vcproj", "{ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}" 
     43        ProjectSection(ProjectDependencies) = postProject 
     44                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     45                {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
     46        EndProjectSection 
     47EndProject 
     48Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJava", "..\eidlibJava\pteid35libJava.vcproj", "{F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}" 
     49        ProjectSection(ProjectDependencies) = postProject 
     50                {4066E21F-5A62-4581-A3B3-47A083396D0C} = {4066E21F-5A62-4581-A3B3-47A083396D0C} 
     51        EndProjectSection 
     52EndProject 
     53Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJava_Wrapper", "..\eidlibJava_Wrapper\pteid35libJava_Wrapper.vcproj", "{4066E21F-5A62-4581-A3B3-47A083396D0C}" 
     54        ProjectSection(ProjectDependencies) = postProject 
     55                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     56                {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
     57        EndProjectSection 
     58EndProject 
     59Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CSP", "..\CSP\pteid35CSP.vcproj", "{D0076DE3-8E35-4129-A682-2E9F8E72A152}" 
     60        ProjectSection(ProjectDependencies) = postProject 
    2161                {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
    22         EndProjectSection 
    23 EndProject 
    24 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCpp", "..\eidlib\pteid35lib.vcproj", "{3A09DD63-945E-40EB-9053-5FE50F74B7C1}" 
    25         ProjectSection(ProjectDependencies) = postProject 
    26                 {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
    2762                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    28         EndProjectSection 
    29 EndProject 
    30 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gui", "..\eidgui\pteid35gui.vcproj", "{8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}" 
    31         ProjectSection(ProjectDependencies) = postProject 
     63                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
     64        EndProjectSection 
     65EndProject 
     66Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkcs11", "..\pkcs11\pteid35pkcs11.vcproj", "{12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}" 
     67        ProjectSection(ProjectDependencies) = postProject 
     68                {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
     69                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     70                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
     71        EndProjectSection 
     72EndProject 
     73Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pteidcleanup", "..\misc\Wix_MW35\pteidcleanup\pteidcleanup.vcproj", "{2B51FB14-B250-47C6-BC93-AA13CF7D4747}" 
     74        ProjectSection(ProjectDependencies) = postProject 
     75                {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
     76        EndProjectSection 
     77EndProject 
     78Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MarkHidden", "..\misc\Wix_MW35\MarkHidden\MarkHidden.vcproj", "{5154523E-FDCF-41E7-8845-A5ACC92672B0}" 
     79EndProject 
     80Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_de", "..\misc\Wix_MW35\MW35Wix\PteidMW35_de.wixproj", "{49962208-2A65-41A4-9EC2-ABB95DC041F4}" 
     81        ProjectSection(ProjectDependencies) = postProject 
     82                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
     83        EndProjectSection 
     84EndProject 
     85Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_en", "..\misc\Wix_MW35\MW35Wix\PteidMW35_en.wixproj", "{65FE7CF6-CAF6-4104-8320-58801209E5DA}" 
     86        ProjectSection(ProjectDependencies) = postProject 
     87                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} = {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} 
    3288                {3A09DD63-945E-40EB-9053-5FE50F74B7C1} = {3A09DD63-945E-40EB-9053-5FE50F74B7C1} 
    33         EndProjectSection 
    34 EndProject 
    35 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libCS_35", "..\eidlibCS\libCS_35.csproj", "{99AB14F6-976E-4FEA-A07D-78479B55163A}" 
    36         ProjectSection(ProjectDependencies) = postProject 
    37                 {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A} = {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A} 
    38         EndProjectSection 
    39 EndProject 
    40 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCS_Wrapper", "..\eidlibCS_Wrapper\pteid35libCS_Wrapper.vcproj", "{ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}" 
    41         ProjectSection(ProjectDependencies) = postProject 
    42                 {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
    43                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    44         EndProjectSection 
    45 EndProject 
    46 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJava", "..\eidlibJava\pteid35libJava.vcproj", "{F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}" 
    47         ProjectSection(ProjectDependencies) = postProject 
    48                 {4066E21F-5A62-4581-A3B3-47A083396D0C} = {4066E21F-5A62-4581-A3B3-47A083396D0C} 
    49         EndProjectSection 
    50 EndProject 
    51 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJava_Wrapper", "..\eidlibJava_Wrapper\pteid35libJava_Wrapper.vcproj", "{4066E21F-5A62-4581-A3B3-47A083396D0C}" 
    52         ProjectSection(ProjectDependencies) = postProject 
    53                 {DC41E34B-8251-41DE-8065-D56B022F5755} = {DC41E34B-8251-41DE-8065-D56B022F5755} 
    54                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    55         EndProjectSection 
    56 EndProject 
    57 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CSP", "..\CSP\pteid35CSP.vcproj", "{D0076DE3-8E35-4129-A682-2E9F8E72A152}" 
    58         ProjectSection(ProjectDependencies) = postProject 
    59                 {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
    60                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    61                 {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
    62         EndProjectSection 
    63 EndProject 
    64 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkcs11", "..\pkcs11\pteid35pkcs11.vcproj", "{12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}" 
    65         ProjectSection(ProjectDependencies) = postProject 
    66                 {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
    67                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    68                 {E27CF8F7-E472-4966-B7D6-448B1427A0D6} = {E27CF8F7-E472-4966-B7D6-448B1427A0D6} 
    69         EndProjectSection 
    70 EndProject 
    71 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cardpluginSIS_ACR38U", "..\cardlayer\cardpluginSIS_ACR38U\cardpluginSIS_ACR38U.vcproj", "{6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}" 
    72         ProjectSection(ProjectDependencies) = postProject 
    73                 {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} = {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE} 
    74                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    75         EndProjectSection 
    76 EndProject 
    77 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pteidcleanup", "..\misc\Wix_MW35\pteidcleanup\pteidcleanup.vcproj", "{2B51FB14-B250-47C6-BC93-AA13CF7D4747}" 
    78         ProjectSection(ProjectDependencies) = postProject 
    79                 {39710980-B40E-4B06-B8E8-D86B125007F3} = {39710980-B40E-4B06-B8E8-D86B125007F3} 
    80         EndProjectSection 
    81 EndProject 
    82 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MarkHidden", "..\misc\Wix_MW35\MarkHidden\MarkHidden.vcproj", "{5154523E-FDCF-41E7-8845-A5ACC92672B0}" 
    83 EndProject 
    84 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_de", "..\misc\Wix_MW35\MW35Wix\PteidMW35_de.wixproj", "{49962208-2A65-41A4-9EC2-ABB95DC041F4}" 
    85         ProjectSection(ProjectDependencies) = postProject 
    86                 {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
    87         EndProjectSection 
    88 EndProject 
    89 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_en", "..\misc\Wix_MW35\MW35Wix\PteidMW35_en.wixproj", "{65FE7CF6-CAF6-4104-8320-58801209E5DA}" 
    90         ProjectSection(ProjectDependencies) = postProject 
    91                 {49962208-2A65-41A4-9EC2-ABB95DC041F4} = {49962208-2A65-41A4-9EC2-ABB95DC041F4} 
    92                 {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
    93                 {62481BE6-49B5-48EA-A11E-BC77761ED0E2} = {62481BE6-49B5-48EA-A11E-BC77761ED0E2} 
    94         EndProjectSection 
    95 EndProject 
    96 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_pt", "..\misc\Wix_MW35\MW35Wix\PteidMW35_pt.wixproj", "{DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}" 
    97         ProjectSection(ProjectDependencies) = postProject 
    98                 {49962208-2A65-41A4-9EC2-ABB95DC041F4} = {49962208-2A65-41A4-9EC2-ABB95DC041F4} 
    99                 {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
    100                 {62481BE6-49B5-48EA-A11E-BC77761ED0E2} = {62481BE6-49B5-48EA-A11E-BC77761ED0E2} 
    101         EndProjectSection 
    102 EndProject 
    103 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_fr", "..\misc\Wix_MW35\MW35Wix\PteidMW35_fr.wixproj", "{62481BE6-49B5-48EA-A11E-BC77761ED0E2}" 
    104         ProjectSection(ProjectDependencies) = postProject 
    105                 {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
    106         EndProjectSection 
    107 EndProject 
    108 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_nl", "..\misc\Wix_MW35\MW35Wix\PteidMW35_nl.wixproj", "{7B4D3F36-6FB1-423D-A71F-822AF8DA3036}" 
    109         ProjectSection(ProjectDependencies) = postProject 
    110                 {2B51FB14-B250-47C6-BC93-AA13CF7D4747} = {2B51FB14-B250-47C6-BC93-AA13CF7D4747} 
    111                 {5154523E-FDCF-41E7-8845-A5ACC92672B0} = {5154523E-FDCF-41E7-8845-A5ACC92672B0} 
    11289                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE} = {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE} 
    11390                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} = {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} 
     91                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65} = {E2B4AED5-9A0C-4556-90AB-4CF69743FB65} 
     92                {23467FC4-F95A-46C0-A33B-1D5D78C94E21} = {23467FC4-F95A-46C0-A33B-1D5D78C94E21} 
     93        EndProjectSection 
     94EndProject 
     95Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_pt", "..\misc\Wix_MW35\MW35Wix\PteidMW35_pt.wixproj", "{DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}" 
     96        ProjectSection(ProjectDependencies) = postProject 
     97                {62481BE6-49B5-48EA-A11E-BC77761ED0E2} = {62481BE6-49B5-48EA-A11E-BC77761ED0E2} 
     98                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
     99                {49962208-2A65-41A4-9EC2-ABB95DC041F4} = {49962208-2A65-41A4-9EC2-ABB95DC041F4} 
     100        EndProjectSection 
     101EndProject 
     102Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_fr", "..\misc\Wix_MW35\MW35Wix\PteidMW35_fr.wixproj", "{62481BE6-49B5-48EA-A11E-BC77761ED0E2}" 
     103        ProjectSection(ProjectDependencies) = postProject 
     104                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} = {7B4D3F36-6FB1-423D-A71F-822AF8DA3036} 
     105        EndProjectSection 
     106EndProject 
     107Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_nl", "..\misc\Wix_MW35\MW35Wix\PteidMW35_nl.wixproj", "{7B4D3F36-6FB1-423D-A71F-822AF8DA3036}" 
     108        ProjectSection(ProjectDependencies) = postProject 
    114109                {99AB14F6-976E-4FEA-A07D-78479B55163A} = {99AB14F6-976E-4FEA-A07D-78479B55163A} 
    115         EndProjectSection 
    116 EndProject 
    117 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "diaglib", "..\..\eID-Quickinstaller\EIKDiag\diaglib\diaglib.vcproj", "{5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}" 
    118 EndProject 
    119 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QtZipper", "..\..\eID-Quickinstaller\QtZipper\QtZipper.vcproj", "{97933455-D2FB-4AEE-B142-CA3915A695C3}" 
    120         ProjectSection(ProjectDependencies) = postProject 
    121                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D} = {1EB5A37B-AECC-4568-A10E-764096ADEC8D} 
    122         EndProjectSection 
    123 EndProject 
    124 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zrclib", "..\..\eID-Quickinstaller\zrc\zrclib\zrclib.vcproj", "{1EB5A37B-AECC-4568-A10E-764096ADEC8D}" 
    125 EndProject 
    126 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eID-EZinstaller", "..\..\eID-Quickinstaller\eID-EZinstaller\eID-EZinstaller.vcproj", "{BAB79918-56AD-3780-B337-0F4B72B50291}" 
    127         ProjectSection(ProjectDependencies) = postProject 
    128                 {97933455-D2FB-4AEE-B142-CA3915A695C3} = {97933455-D2FB-4AEE-B142-CA3915A695C3} 
    129                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB} = {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB} 
    130                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D} = {1EB5A37B-AECC-4568-A10E-764096ADEC8D} 
    131                 {65FE7CF6-CAF6-4104-8320-58801209E5DA} = {65FE7CF6-CAF6-4104-8320-58801209E5DA} 
     110                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} = {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} 
     111                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE} = {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE} 
     112                {5154523E-FDCF-41E7-8845-A5ACC92672B0} = {5154523E-FDCF-41E7-8845-A5ACC92672B0} 
     113                {2B51FB14-B250-47C6-BC93-AA13CF7D4747} = {2B51FB14-B250-47C6-BC93-AA13CF7D4747} 
    132114        EndProjectSection 
    133115EndProject 
     
    139121Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_64_en", "..\misc\Wix_MW35\MW35Wix\PteidMW35_64_en.wixproj", "{D886321A-0F49-40CD-98A0-A6359D6DA851}" 
    140122        ProjectSection(ProjectDependencies) = postProject 
     123                {3A09DD63-945E-40EB-9053-5FE50F74B7C1} = {3A09DD63-945E-40EB-9053-5FE50F74B7C1} 
     124                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} = {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5} 
     125                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65} = {E2B4AED5-9A0C-4556-90AB-4CF69743FB65} 
     126                {23467FC4-F95A-46C0-A33B-1D5D78C94E21} = {23467FC4-F95A-46C0-A33B-1D5D78C94E21} 
     127                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} = {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} 
     128        EndProjectSection 
     129EndProject 
     130Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_64_fr", "..\misc\Wix_MW35\MW35Wix\PteidMW35_64_fr.wixproj", "{0F3667C2-F355-4289-8AA4-50085CD9AAA7}" 
     131        ProjectSection(ProjectDependencies) = postProject 
    141132                {13BA0068-A852-4123-84D8-ED786D196991} = {13BA0068-A852-4123-84D8-ED786D196991} 
    142                 {D6701E6C-933D-4DCF-AEC7-EE61AEB78804} = {D6701E6C-933D-4DCF-AEC7-EE61AEB78804} 
    143                 {0F3667C2-F355-4289-8AA4-50085CD9AAA7} = {0F3667C2-F355-4289-8AA4-50085CD9AAA7} 
    144         EndProjectSection 
    145 EndProject 
    146 Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_64_fr", "..\misc\Wix_MW35\MW35Wix\PteidMW35_64_fr.wixproj", "{0F3667C2-F355-4289-8AA4-50085CD9AAA7}" 
    147         ProjectSection(ProjectDependencies) = postProject 
    148                 {13BA0068-A852-4123-84D8-ED786D196991} = {13BA0068-A852-4123-84D8-ED786D196991} 
    149133        EndProjectSection 
    150134EndProject 
    151135Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PteidMW35_64_nl", "..\misc\Wix_MW35\MW35Wix\PteidMW35_64_nl.wixproj", "{13BA0068-A852-4123-84D8-ED786D196991}" 
    152136        ProjectSection(ProjectDependencies) = postProject 
     137                {D0076DE3-8E35-4129-A682-2E9F8E72A152} = {D0076DE3-8E35-4129-A682-2E9F8E72A152} 
    153138                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} = {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE} 
    154                 {D0076DE3-8E35-4129-A682-2E9F8E72A152} = {D0076DE3-8E35-4129-A682-2E9F8E72A152} 
    155139        EndProjectSection 
    156140EndProject 
    157141Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ppgempc-plugin", "..\cardlayer\ppgempc-plugin\ppgempc-plugin.vcproj", "{23467FC4-F95A-46C0-A33B-1D5D78C94E21}" 
     142EndProject 
     143Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTeIDWin32CertificateImport", "..\PTeIDWin32CertificateImport\PTeIDWin32CertificateImport\PTeIDWin32CertificateImport.vcproj", "{E2B4AED5-9A0C-4556-90AB-4CF69743FB65}" 
     144EndProject 
     145Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeImage", "..\FreeImagePTEiD\FreeImage.2005.vcproj", "{B39ED2B3-D53A-4077-B957-930979A3577D}" 
     146        ProjectSection(ProjectDependencies) = postProject 
     147                {33134F61-C1AD-4B6F-9CEA-503A9F140C52} = {33134F61-C1AD-4B6F-9CEA-503A9F140C52} 
     148                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB} = {7DB10B50-CE00-4D7A-B322-6824F05D2FCB} 
     149                {E3536C28-A7F1-4B53-8E52-7D2232F9E098} = {E3536C28-A7F1-4B53-8E52-7D2232F9E098} 
     150        EndProjectSection 
     151EndProject 
     152Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibOpenJPEG", "..\FreeImagePTEiD\Source\LibOpenJPEG\LibOpenJPEG.2005.vcproj", "{E3536C28-A7F1-4B53-8E52-7D2232F9E098}" 
     153EndProject 
     154Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibPNG", "..\FreeImagePTEiD\Source\LibPNG\LibPNG.2005.vcproj", "{7DB10B50-CE00-4D7A-B322-6824F05D2FCB}" 
     155EndProject 
     156Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZLib", "..\FreeImagePTEiD\Source\ZLib\ZLib.2005.vcproj", "{33134F61-C1AD-4B6F-9CEA-503A9F140C52}" 
     157EndProject 
     158Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xsec_lib", "..\xml-security-c-1.6.1\Projects\VC8.0\xsec\xsec_lib\xsec_lib.vcproj", "{D5B5A007-E873-4D12-B4AF-60811AFD9EF1}" 
    158159EndProject 
    159160Global 
    160161        GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     162                Debug No Xalan|Any CPU = Debug No Xalan|Any CPU 
     163                Debug No Xalan|Mixed Platforms = Debug No Xalan|Mixed Platforms 
     164                Debug No Xalan|Win32 = Debug No Xalan|Win32 
     165                Debug No Xalan|x64 = Debug No Xalan|x64 
     166                Debug No Xalan|x86 = Debug No Xalan|x86 
    161167                Debug|Any CPU = Debug|Any CPU 
    162168                Debug|Mixed Platforms = Debug|Mixed Platforms 
     
    164170                Debug|x64 = Debug|x64 
    165171                Debug|x86 = Debug|x86 
     172                Release No Xalan|Any CPU = Release No Xalan|Any CPU 
     173                Release No Xalan|Mixed Platforms = Release No Xalan|Mixed Platforms 
     174                Release No Xalan|Win32 = Release No Xalan|Win32 
     175                Release No Xalan|x64 = Release No Xalan|x64 
     176                Release No Xalan|x86 = Release No Xalan|x86 
    166177                Release|Any CPU = Release|Any CPU 
    167178                Release|Mixed Platforms = Release|Mixed Platforms 
     
    171182        EndGlobalSection 
    172183        GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     184                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     185                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     186                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     187                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     188                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     189                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|x64.Build.0 = Debug|x64 
     190                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    173191                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    174192                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    180198                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug|x64.Build.0 = Debug|x64 
    181199                {39710980-B40E-4B06-B8E8-D86B125007F3}.Debug|x86.ActiveCfg = Debug|Win32 
     200                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     201                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     202                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     203                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     204                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|x64.ActiveCfg = Release|x64 
     205                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|x64.Build.0 = Release|x64 
     206                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release No Xalan|x86.ActiveCfg = Release|x64 
    182207                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release|Any CPU.ActiveCfg = Release|Win32 
    183208                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release|Any CPU.Build.0 = Release|Win32 
     
    189214                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release|x64.Build.0 = Release|x64 
    190215                {39710980-B40E-4B06-B8E8-D86B125007F3}.Release|x86.ActiveCfg = Release|Win32 
     216                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     217                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     218                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     219                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     220                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     221                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|x64.Build.0 = Debug|x64 
     222                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    191223                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    192224                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    198230                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug|x64.Build.0 = Debug|x64 
    199231                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Debug|x86.ActiveCfg = Debug|Win32 
     232                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     233                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     234                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     235                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     236                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|x64.ActiveCfg = Release|x64 
     237                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|x64.Build.0 = Release|x64 
     238                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release No Xalan|x86.ActiveCfg = Release|x64 
    200239                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release|Any CPU.ActiveCfg = Release|Win32 
    201240                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release|Any CPU.Build.0 = Release|Win32 
     
    207246                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release|x64.Build.0 = Release|x64 
    208247                {E27CF8F7-E472-4966-B7D6-448B1427A0D6}.Release|x86.ActiveCfg = Release|Win32 
     248                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     249                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     250                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     251                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     252                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     253                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|x64.Build.0 = Debug|x64 
     254                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    209255                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    210256                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    216262                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug|x64.Build.0 = Debug|x64 
    217263                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Debug|x86.ActiveCfg = Debug|Win32 
     264                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     265                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     266                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     267                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     268                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|x64.ActiveCfg = Release|x64 
     269                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|x64.Build.0 = Release|x64 
     270                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release No Xalan|x86.ActiveCfg = Release|x64 
    218271                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release|Any CPU.ActiveCfg = Release|Win32 
    219272                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release|Any CPU.Build.0 = Release|Win32 
     
    225278                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release|x64.Build.0 = Release|x64 
    226279                {C7DE2B79-F890-4ACB-804A-BDD14E1A9CAE}.Release|x86.ActiveCfg = Release|Win32 
     280                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     281                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     282                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     283                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     284                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     285                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     286                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    227287                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    228288                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    232292                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|Win32.Build.0 = Debug|Win32 
    233293                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|x64.ActiveCfg = Debug|Win32 
     294                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|x64.Build.0 = Debug|Win32 
    234295                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|x86.ActiveCfg = Debug|Win32 
     296                {DC41E34B-8251-41DE-8065-D56B022F5755}.Debug|x86.Build.0 = Debug|Win32 
     297                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     298                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     299                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     300                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     301                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|x64.ActiveCfg = Release|x64 
     302                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|x64.Build.0 = Release|x64 
     303                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release No Xalan|x86.ActiveCfg = Release|x64 
    235304                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|Any CPU.ActiveCfg = Release|Win32 
    236305                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|Any CPU.Build.0 = Release|Win32 
     
    239308                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|Win32.ActiveCfg = Release|Win32 
    240309                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|Win32.Build.0 = Release|Win32 
    241                 {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x64.ActiveCfg = Release|Win32 
    242                 {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x86.ActiveCfg = Release|Win32 
     310                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x64.ActiveCfg = Release|x64 
     311                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x64.Build.0 = Release|x64 
     312                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x86.ActiveCfg = Release|x64 
     313                {DC41E34B-8251-41DE-8065-D56B022F5755}.Release|x86.Build.0 = Release|x64 
     314                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     315                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     316                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     317                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     318                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     319                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     320                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    243321                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    244322                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    249327                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug|x64.ActiveCfg = Debug|Win32 
    250328                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Debug|x86.ActiveCfg = Debug|Win32 
     329                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     330                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     331                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     332                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     333                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|x64.ActiveCfg = Release|x64 
     334                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|x64.Build.0 = Release|x64 
     335                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release No Xalan|x86.ActiveCfg = Release|x64 
    251336                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|Any CPU.ActiveCfg = Release|Win32 
    252337                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|Any CPU.Build.0 = Release|Win32 
     
    255340                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|Win32.ActiveCfg = Release|Win32 
    256341                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|Win32.Build.0 = Release|Win32 
    257                 {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|x64.ActiveCfg = Release|Win32 
     342                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|x64.ActiveCfg = Release|x64 
     343                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|x64.Build.0 = Release|x64 
    258344                {3A09DD63-945E-40EB-9053-5FE50F74B7C1}.Release|x86.ActiveCfg = Release|Win32 
     345                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     346                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     347                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     348                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     349                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     350                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     351                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    259352                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    260353                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    265358                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug|x64.ActiveCfg = Debug|Win32 
    266359                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Debug|x86.ActiveCfg = Debug|Win32 
     360                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     361                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     362                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     363                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     364                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|x64.ActiveCfg = Release|x64 
     365                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|x64.Build.0 = Release|x64 
     366                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release No Xalan|x86.ActiveCfg = Release|x64 
    267367                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|Any CPU.ActiveCfg = Release|Win32 
    268368                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|Any CPU.Build.0 = Release|Win32 
     
    271371                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|Win32.ActiveCfg = Release|Win32 
    272372                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|Win32.Build.0 = Release|Win32 
    273                 {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|x64.ActiveCfg = Release|Win32 
     373                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|x64.ActiveCfg = Release|x64 
     374                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|x64.Build.0 = Release|x64 
    274375                {8D2DFD77-6396-4507-9CBC-97D91C7CFDD5}.Release|x86.ActiveCfg = Release|Win32 
     376                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Any CPU 
     377                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|Any CPU.Build.0 = Debug|Any CPU 
     378                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     379                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Any CPU 
     380                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|Win32.ActiveCfg = Debug|Any CPU 
     381                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|x64.ActiveCfg = Debug|Any CPU 
     382                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug No Xalan|x86.ActiveCfg = Debug|Any CPU 
    275383                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
    276384                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     
    281389                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug|x64.ActiveCfg = Debug|Any CPU 
    282390                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Debug|x86.ActiveCfg = Debug|Any CPU 
     391                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|Any CPU.ActiveCfg = Release|Any CPU 
     392                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|Any CPU.Build.0 = Release|Any CPU 
     393                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|Any CPU 
     394                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|Mixed Platforms.Build.0 = Release|Any CPU 
     395                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|Win32.ActiveCfg = Release|Any CPU 
     396                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|x64.ActiveCfg = Release|Any CPU 
     397                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release No Xalan|x86.ActiveCfg = Release|Any CPU 
    283398                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release|Any CPU.ActiveCfg = Release|Any CPU 
    284399                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release|Any CPU.Build.0 = Release|Any CPU 
     
    289404                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release|x64.ActiveCfg = Release|Any CPU 
    290405                {99AB14F6-976E-4FEA-A07D-78479B55163A}.Release|x86.ActiveCfg = Release|Any CPU 
     406                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     407                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     408                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     409                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     410                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     411                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     412                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    291413                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    292414                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    297419                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug|x64.ActiveCfg = Debug|Win32 
    298420                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Debug|x86.ActiveCfg = Debug|Win32 
     421                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|Any CPU.ActiveCfg = Release|Win32 
     422                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|Win32 
     423                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|Mixed Platforms.Build.0 = Release|Win32 
     424                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|Win32.ActiveCfg = Release|Win32 
     425                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|Win32.Build.0 = Release|Win32 
     426                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|x64.ActiveCfg = Release|Win32 
     427                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release No Xalan|x86.ActiveCfg = Release|Win32 
    299428                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release|Any CPU.ActiveCfg = Release|Win32 
    300429                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release|Any CPU.Build.0 = Release|Win32 
     
    305434                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release|x64.ActiveCfg = Release|Win32 
    306435                {ECBD0A9D-DED9-452F-B5AF-818C2E1EE32A}.Release|x86.ActiveCfg = Release|Win32 
     436                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     437                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     438                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     439                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     440                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     441                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     442                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    307443                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    308444                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    313449                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug|x64.ActiveCfg = Debug|Win32 
    314450                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Debug|x86.ActiveCfg = Debug|Win32 
     451                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     452                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     453                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     454                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     455                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|x64.ActiveCfg = Release|x64 
     456                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|x64.Build.0 = Release|x64 
     457                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release No Xalan|x86.ActiveCfg = Release|x64 
    315458                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|Any CPU.ActiveCfg = Release|Win32 
    316459                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|Any CPU.Build.0 = Release|Win32 
     
    319462                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|Win32.ActiveCfg = Release|Win32 
    320463                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|Win32.Build.0 = Release|Win32 
    321                 {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|x64.ActiveCfg = Release|Win32 
     464                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|x64.ActiveCfg = Release|x64 
     465                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|x64.Build.0 = Release|x64 
    322466                {F810EA71-3A5A-4C86-BCFF-EC47017CF9CE}.Release|x86.ActiveCfg = Release|Win32 
     467                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     468                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     469                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     470                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     471                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     472                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     473                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    323474                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    324475                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    329480                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug|x64.ActiveCfg = Debug|Win32 
    330481                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Debug|x86.ActiveCfg = Debug|Win32 
     482                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     483                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     484                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     485                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     486                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|x64.ActiveCfg = Release|x64 
     487                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|x64.Build.0 = Release|x64 
     488                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release No Xalan|x86.ActiveCfg = Release|x64 
    331489                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|Any CPU.ActiveCfg = Release|Win32 
    332490                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|Any CPU.Build.0 = Release|Win32 
     
    335493                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|Win32.ActiveCfg = Release|Win32 
    336494                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|Win32.Build.0 = Release|Win32 
    337                 {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|x64.ActiveCfg = Release|Win32 
     495                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|x64.ActiveCfg = Release|x64 
     496                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|x64.Build.0 = Release|x64 
    338497                {4066E21F-5A62-4581-A3B3-47A083396D0C}.Release|x86.ActiveCfg = Release|Win32 
     498                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     499                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     500                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     501                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     502                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     503                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|x64.Build.0 = Debug|x64 
     504                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    339505                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    340506                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    346512                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug|x64.Build.0 = Debug|x64 
    347513                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Debug|x86.ActiveCfg = Debug|Win32 
     514                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     515                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     516                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     517                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     518                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|x64.ActiveCfg = Release|x64 
     519                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|x64.Build.0 = Release|x64 
     520                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release No Xalan|x86.ActiveCfg = Release|x64 
    348521                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release|Any CPU.ActiveCfg = Release|Win32 
    349522                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release|Any CPU.Build.0 = Release|Win32 
     
    355528                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release|x64.Build.0 = Release|x64 
    356529                {D0076DE3-8E35-4129-A682-2E9F8E72A152}.Release|x86.ActiveCfg = Release|Win32 
     530                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     531                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     532                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     533                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     534                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     535                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|x64.Build.0 = Debug|x64 
     536                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    357537                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    358538                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    364544                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug|x64.Build.0 = Debug|x64 
    365545                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Debug|x86.ActiveCfg = Debug|Win32 
     546                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     547                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     548                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     549                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     550                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|x64.ActiveCfg = Release|x64 
     551                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|x64.Build.0 = Release|x64 
     552                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release No Xalan|x86.ActiveCfg = Release|x64 
    366553                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release|Any CPU.ActiveCfg = Release|Win32 
    367554                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release|Any CPU.Build.0 = Release|Win32 
     
    373560                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release|x64.Build.0 = Release|x64 
    374561                {12F6CD4F-FC01-4E0A-AE06-F7A315094DFE}.Release|x86.ActiveCfg = Release|Win32 
    375                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    376                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Any CPU.Build.0 = Debug|Win32 
    377                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
    378                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
    379                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Win32.ActiveCfg = Debug|Win32 
    380                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|Win32.Build.0 = Debug|Win32 
    381                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|x64.ActiveCfg = Debug|Win32 
    382                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Debug|x86.ActiveCfg = Debug|Win32 
    383                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Any CPU.ActiveCfg = Release|Win32 
    384                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Any CPU.Build.0 = Release|Win32 
    385                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
    386                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Mixed Platforms.Build.0 = Release|Win32 
    387                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Win32.ActiveCfg = Release|Win32 
    388                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|Win32.Build.0 = Release|Win32 
    389                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|x64.ActiveCfg = Release|Win32 
    390                 {6BF2F2B1-5115-4465-B5C5-D8ED1A12A690}.Release|x86.ActiveCfg = Release|Win32 
     562                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     563                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     564                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     565                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     566                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     567                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     568                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    391569                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    392570                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    397575                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug|x64.ActiveCfg = Debug|Win32 
    398576                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Debug|x86.ActiveCfg = Debug|Win32 
     577                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|Any CPU.ActiveCfg = Release|Win32 
     578                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|Win32 
     579                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|Mixed Platforms.Build.0 = Release|Win32 
     580                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|Win32.ActiveCfg = Release|Win32 
     581                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|Win32.Build.0 = Release|Win32 
     582                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|x64.ActiveCfg = Release|Win32 
     583                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release No Xalan|x86.ActiveCfg = Release|Win32 
    399584                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release|Any CPU.ActiveCfg = Release|Win32 
    400585                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release|Any CPU.Build.0 = Release|Win32 
     
    405590                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release|x64.ActiveCfg = Release|Win32 
    406591                {2B51FB14-B250-47C6-BC93-AA13CF7D4747}.Release|x86.ActiveCfg = Release|Win32 
     592                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     593                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     594                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     595                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     596                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     597                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     598                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    407599                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    408600                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug|Any CPU.Build.0 = Debug|Win32 
     
    413605                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug|x64.ActiveCfg = Debug|Win32 
    414606                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Debug|x86.ActiveCfg = Debug|Win32 
     607                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|Any CPU.ActiveCfg = Release|Win32 
     608                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|Win32 
     609                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|Mixed Platforms.Build.0 = Release|Win32 
     610                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|Win32.ActiveCfg = Release|Win32 
     611                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|Win32.Build.0 = Release|Win32 
     612                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|x64.ActiveCfg = Release|Win32 
     613                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release No Xalan|x86.ActiveCfg = Release|Win32 
    415614                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release|Any CPU.ActiveCfg = Release|Win32 
    416615                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release|Any CPU.Build.0 = Release|Win32 
     
    421620                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release|x64.ActiveCfg = Release|Win32 
    422621                {5154523E-FDCF-41E7-8845-A5ACC92672B0}.Release|x86.ActiveCfg = Release|Win32 
     622                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x86 
     623                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x86 
     624                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x86 
     625                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|Win32.ActiveCfg = Debug|x86 
     626                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|x64.ActiveCfg = Debug|x86 
     627                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|x86.ActiveCfg = Debug|x86 
     628                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug No Xalan|x86.Build.0 = Debug|x86 
    423629                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug|Any CPU.ActiveCfg = Debug|x86 
    424630                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug|Any CPU.Build.0 = Debug|x86 
     
    430636                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug|x86.ActiveCfg = Debug|x86 
    431637                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Debug|x86.Build.0 = Debug|x86 
     638                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|Any CPU.ActiveCfg = Release|x86 
     639                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x86 
     640                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|Mixed Platforms.Build.0 = Release|x86 
     641                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|Win32.ActiveCfg = Release|x86 
     642                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|x64.ActiveCfg = Release|x86 
     643                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|x86.ActiveCfg = Release|x86 
     644                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release No Xalan|x86.Build.0 = Release|x86 
    432645                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|Any CPU.ActiveCfg = Release|x86 
    433646                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|Any CPU.Build.0 = Release|x86 
     
    435648                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|Mixed Platforms.Build.0 = Release|x86 
    436649                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|Win32.ActiveCfg = Release|x86 
    437                 {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|Win32.Build.0 = Release|x86 
    438650                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|x64.ActiveCfg = Release|x86 
    439651                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|x86.ActiveCfg = Release|x86 
    440652                {49962208-2A65-41A4-9EC2-ABB95DC041F4}.Release|x86.Build.0 = Release|x86 
     653                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x86 
     654                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x86 
     655                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x86 
     656                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|Win32.ActiveCfg = Debug|x86 
     657                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|x64.ActiveCfg = Debug|x86 
     658                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|x86.ActiveCfg = Debug|x86 
     659                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug No Xalan|x86.Build.0 = Debug|x86 
    441660                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug|Any CPU.ActiveCfg = Debug|x86 
    442661                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug|Any CPU.Build.0 = Debug|x86 
     
    448667                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug|x86.ActiveCfg = Debug|x86 
    449668                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Debug|x86.Build.0 = Debug|x86 
     669                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|Any CPU.ActiveCfg = Release|x86 
     670                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x86 
     671                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|Mixed Platforms.Build.0 = Release|x86 
     672                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|Win32.ActiveCfg = Release|x86 
     673                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|x64.ActiveCfg = Release|x86 
     674                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|x86.ActiveCfg = Release|x86 
     675                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release No Xalan|x86.Build.0 = Release|x86 
    450676                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release|Any CPU.ActiveCfg = Release|x86 
    451677                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release|Any CPU.Build.0 = Release|x86 
     
    457683                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release|x86.ActiveCfg = Release|x86 
    458684                {65FE7CF6-CAF6-4104-8320-58801209E5DA}.Release|x86.Build.0 = Release|x86 
     685                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x86 
     686                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x86 
     687                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x86 
     688                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|Win32.ActiveCfg = Debug|x86 
     689                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|x64.ActiveCfg = Debug|x86 
     690                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|x86.ActiveCfg = Debug|x86 
     691                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug No Xalan|x86.Build.0 = Debug|x86 
    459692                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug|Any CPU.ActiveCfg = Debug|x86 
    460693                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 
     
    464697                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug|x86.ActiveCfg = Debug|x86 
    465698                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Debug|x86.Build.0 = Debug|x86 
     699                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|Any CPU.ActiveCfg = Release|x86 
     700                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x86 
     701                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|Mixed Platforms.Build.0 = Release|x86 
     702                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|Win32.ActiveCfg = Release|x86 
     703                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|x64.ActiveCfg = Release|x86 
     704                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|x86.ActiveCfg = Release|x86 
     705                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release No Xalan|x86.Build.0 = Release|x86 
    466706                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release|Any CPU.ActiveCfg = Release|x86 
    467707                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release|Mixed Platforms.ActiveCfg = Release|x86 
     
    471711                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release|x86.ActiveCfg = Release|x86 
    472712                {DF6E1CDC-9689-4A91-B60A-863E3BAF5A57}.Release|x86.Build.0 = Release|x86 
     713                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x86 
     714                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x86 
     715                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x86 
     716                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|Win32.ActiveCfg = Debug|x86 
     717                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|x64.ActiveCfg = Debug|x86 
     718                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|x86.ActiveCfg = Debug|x86 
     719                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug No Xalan|x86.Build.0 = Debug|x86 
    473720                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug|Any CPU.ActiveCfg = Debug|x86 
    474721                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug|Any CPU.Build.0 = Debug|x86 
     
    480727                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug|x86.ActiveCfg = Debug|x86 
    481728                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Debug|x86.Build.0 = Debug|x86 
     729                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|Any CPU.ActiveCfg = Release|x86 
     730                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x86 
     731                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|Mixed Platforms.Build.0 = Release|x86 
     732                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|Win32.ActiveCfg = Release|x86 
     733                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|x64.ActiveCfg = Release|x86 
     734                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|x86.ActiveCfg = Release|x86 
     735                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release No Xalan|x86.Build.0 = Release|x86 
    482736                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|Any CPU.ActiveCfg = Release|x86 
    483737                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|Any CPU.Build.0 = Release|x86 
     
    485739                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|Mixed Platforms.Build.0 = Release|x86 
    486740                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|Win32.ActiveCfg = Release|x86 
    487                 {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|Win32.Build.0 = Release|x86 
    488741                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|x64.ActiveCfg = Release|x86 
    489742                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|x86.ActiveCfg = Release|x86 
    490743                {62481BE6-49B5-48EA-A11E-BC77761ED0E2}.Release|x86.Build.0 = Release|x86 
     744                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x86 
     745                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x86 
     746                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x86 
     747                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|Win32.ActiveCfg = Debug|x86 
     748                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|x64.ActiveCfg = Debug|x86 
     749                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|x86.ActiveCfg = Debug|x86 
     750                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug No Xalan|x86.Build.0 = Debug|x86 
    491751                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug|Any CPU.ActiveCfg = Debug|x86 
    492752                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug|Any CPU.Build.0 = Debug|x86 
     
    498758                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug|x86.ActiveCfg = Debug|x86 
    499759                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Debug|x86.Build.0 = Debug|x86 
     760                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|Any CPU.ActiveCfg = Release|x86 
     761                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x86 
     762                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|Mixed Platforms.Build.0 = Release|x86 
     763                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|Win32.ActiveCfg = Release|x86 
     764                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|x64.ActiveCfg = Release|x86 
     765                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|x86.ActiveCfg = Release|x86 
     766                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release No Xalan|x86.Build.0 = Release|x86 
    500767                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|Any CPU.ActiveCfg = Release|x86 
    501768                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|Any CPU.Build.0 = Release|x86 
     
    503770                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|Mixed Platforms.Build.0 = Release|x86 
    504771                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|Win32.ActiveCfg = Release|x86 
    505                 {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|Win32.Build.0 = Release|x86 
    506772                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|x64.ActiveCfg = Release|x86 
    507773                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|x86.ActiveCfg = Release|x86 
    508774                {7B4D3F36-6FB1-423D-A71F-822AF8DA3036}.Release|x86.Build.0 = Release|x86 
    509                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    510                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Any CPU.Build.0 = Debug|Win32 
    511                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
    512                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
    513                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Win32.ActiveCfg = Debug|Win32 
    514                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|Win32.Build.0 = Debug|Win32 
    515                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|x64.ActiveCfg = Debug|Win32 
    516                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Debug|x86.ActiveCfg = Debug|Win32 
    517                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Any CPU.ActiveCfg = Release|Win32 
    518                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Any CPU.Build.0 = Release|Win32 
    519                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
    520                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Mixed Platforms.Build.0 = Release|Win32 
    521                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Win32.ActiveCfg = Release|Win32 
    522                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|Win32.Build.0 = Release|Win32 
    523                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|x64.ActiveCfg = Release|Win32 
    524                 {5F3DCF78-5A47-4CFD-844D-F3FEFB4E5CAB}.Release|x86.ActiveCfg = Release|Win32 
    525                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    526                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Any CPU.Build.0 = Debug|Win32 
    527                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
    528                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
    529                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Win32.ActiveCfg = Debug|Win32 
    530                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|Win32.Build.0 = Debug|Win32 
    531                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|x64.ActiveCfg = Debug|Win32 
    532                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Debug|x86.ActiveCfg = Debug|Win32 
    533                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Any CPU.ActiveCfg = Release|Win32 
    534                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Any CPU.Build.0 = Release|Win32 
    535                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
    536                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Mixed Platforms.Build.0 = Release|Win32 
    537                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Win32.ActiveCfg = Release|Win32 
    538                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|Win32.Build.0 = Release|Win32 
    539                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|x64.ActiveCfg = Release|Win32 
    540                 {97933455-D2FB-4AEE-B142-CA3915A695C3}.Release|x86.ActiveCfg = Release|Win32 
    541                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    542                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Any CPU.Build.0 = Debug|Win32 
    543                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
    544                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
    545                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Win32.ActiveCfg = Debug|Win32 
    546                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|Win32.Build.0 = Debug|Win32 
    547                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|x64.ActiveCfg = Debug|Win32 
    548                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Debug|x86.ActiveCfg = Debug|Win32 
    549                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Any CPU.ActiveCfg = Release|Win32 
    550                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Any CPU.Build.0 = Release|Win32 
    551                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
    552                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Mixed Platforms.Build.0 = Release|Win32 
    553                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Win32.ActiveCfg = Release|Win32 
    554                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|Win32.Build.0 = Release|Win32 
    555                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|x64.ActiveCfg = Release|Win32 
    556                 {1EB5A37B-AECC-4568-A10E-764096ADEC8D}.Release|x86.ActiveCfg = Release|Win32 
    557                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    558                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Any CPU.Build.0 = Debug|Win32 
    559                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
    560                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
    561                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Win32.ActiveCfg = Debug|Win32 
    562                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|Win32.Build.0 = Debug|Win32 
    563                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|x64.ActiveCfg = Debug|Win32 
    564                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Debug|x86.ActiveCfg = Debug|Win32 
    565                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Any CPU.ActiveCfg = Release|Win32 
    566                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Any CPU.Build.0 = Release|Win32 
    567                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
    568                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Mixed Platforms.Build.0 = Release|Win32 
    569                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Win32.ActiveCfg = Release|Win32 
    570                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|Win32.Build.0 = Release|Win32 
    571                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|x64.ActiveCfg = Release|Win32 
    572                 {BAB79918-56AD-3780-B337-0F4B72B50291}.Release|x86.ActiveCfg = Release|Win32 
     775                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     776                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     777                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     778                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     779                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     780                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|x64.Build.0 = Debug|x64 
     781                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    573782                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug|Any CPU.ActiveCfg = Debug|x86 
    574783                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 
     
    579788                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug|x86.ActiveCfg = Debug|x86 
    580789                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Debug|x86.Build.0 = Debug|x86 
     790                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     791                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     792                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     793                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     794                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|x64.ActiveCfg = Release|x64 
     795                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|x64.Build.0 = Release|x64 
     796                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release No Xalan|x86.ActiveCfg = Release|x64 
    581797                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|Any CPU.ActiveCfg = Release|x86 
    582798                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|Mixed Platforms.ActiveCfg = Release|x86 
     
    584800                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|Win32.ActiveCfg = Release|x86 
    585801                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|x64.ActiveCfg = Release|x86 
    586                 {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|x64.Build.0 = Release|x86 
    587802                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|x86.ActiveCfg = Release|x86 
    588803                {D6701E6C-933D-4DCF-AEC7-EE61AEB78804}.Release|x86.Build.0 = Release|x86 
     804                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     805                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     806                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     807                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     808                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     809                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|x64.Build.0 = Debug|x64 
     810                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    589811                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug|Any CPU.ActiveCfg = Debug|x86 
    590812                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 
     
    595817                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug|x86.ActiveCfg = Debug|x86 
    596818                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Debug|x86.Build.0 = Debug|x86 
     819                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     820                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     821                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     822                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     823                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|x64.ActiveCfg = Release|x64 
     824                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|x64.Build.0 = Release|x64 
     825                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release No Xalan|x86.ActiveCfg = Release|x64 
    597826                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|Any CPU.ActiveCfg = Release|x86 
    598827                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|Mixed Platforms.ActiveCfg = Release|x86 
    599828                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|Mixed Platforms.Build.0 = Release|x86 
    600829                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|Win32.ActiveCfg = Release|x86 
    601                 {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x64.ActiveCfg = Release|x86 
    602                 {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x64.Build.0 = Release|x86 
     830                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x64.ActiveCfg = Release|x64 
     831                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x64.Build.0 = Release|x64 
    603832                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x86.ActiveCfg = Release|x86 
    604833                {D886321A-0F49-40CD-98A0-A6359D6DA851}.Release|x86.Build.0 = Release|x86 
     834                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     835                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     836                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     837                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     838                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     839                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|x64.Build.0 = Debug|x64 
     840                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    605841                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug|Any CPU.ActiveCfg = Debug|x86 
    606842                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 
     
    611847                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug|x86.ActiveCfg = Debug|x86 
    612848                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Debug|x86.Build.0 = Debug|x86 
     849                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     850                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     851                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     852                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     853                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|x64.ActiveCfg = Release|x64 
     854                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|x64.Build.0 = Release|x64 
     855                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release No Xalan|x86.ActiveCfg = Release|x64 
    613856                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|Any CPU.ActiveCfg = Release|x86 
    614857                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|Mixed Platforms.ActiveCfg = Release|x86 
     
    616859                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|Win32.ActiveCfg = Release|x86 
    617860                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|x64.ActiveCfg = Release|x86 
    618                 {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|x64.Build.0 = Release|x86 
    619861                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|x86.ActiveCfg = Release|x86 
    620862                {0F3667C2-F355-4289-8AA4-50085CD9AAA7}.Release|x86.Build.0 = Release|x86 
     863                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     864                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     865                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     866                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     867                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     868                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|x64.Build.0 = Debug|x64 
     869                {13BA0068-A852-4123-84D8-ED786D196991}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
    621870                {13BA0068-A852-4123-84D8-ED786D196991}.Debug|Any CPU.ActiveCfg = Debug|x86 
    622871                {13BA0068-A852-4123-84D8-ED786D196991}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 
     
    627876                {13BA0068-A852-4123-84D8-ED786D196991}.Debug|x86.ActiveCfg = Debug|x86 
    628877                {13BA0068-A852-4123-84D8-ED786D196991}.Debug|x86.Build.0 = Debug|x86 
     878                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     879                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     880                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     881                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     882                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|x64.ActiveCfg = Release|x64 
     883                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|x64.Build.0 = Release|x64 
     884                {13BA0068-A852-4123-84D8-ED786D196991}.Release No Xalan|x86.ActiveCfg = Release|x64 
    629885                {13BA0068-A852-4123-84D8-ED786D196991}.Release|Any CPU.ActiveCfg = Release|x86 
    630886                {13BA0068-A852-4123-84D8-ED786D196991}.Release|Mixed Platforms.ActiveCfg = Release|x86 
     
    632888                {13BA0068-A852-4123-84D8-ED786D196991}.Release|Win32.ActiveCfg = Release|x86 
    633889                {13BA0068-A852-4123-84D8-ED786D196991}.Release|x64.ActiveCfg = Release|x86 
    634                 {13BA0068-A852-4123-84D8-ED786D196991}.Release|x64.Build.0 = Release|x86 
    635890                {13BA0068-A852-4123-84D8-ED786D196991}.Release|x86.ActiveCfg = Release|x86 
    636891                {13BA0068-A852-4123-84D8-ED786D196991}.Release|x86.Build.0 = Release|x86 
     892                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     893                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     894                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     895                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     896                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     897                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     898                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
    637899                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug|Any CPU.ActiveCfg = Debug|Win32 
    638900                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
     
    642904                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug|x64.ActiveCfg = Debug|Win32 
    643905                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Debug|x86.ActiveCfg = Debug|Win32 
     906                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     907                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     908                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     909                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     910                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|x64.ActiveCfg = Release|x64 
     911                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|x64.Build.0 = Release|x64 
     912                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release No Xalan|x86.ActiveCfg = Release|x64 
    644913                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|Any CPU.ActiveCfg = Release|Win32 
    645914                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
     
    647916                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|Win32.ActiveCfg = Release|Win32 
    648917                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|Win32.Build.0 = Release|Win32 
    649                 {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|x64.ActiveCfg = Release|Win32 
     918                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|x64.ActiveCfg = Release|x64 
     919                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|x64.Build.0 = Release|x64 
    650920                {23467FC4-F95A-46C0-A33B-1D5D78C94E21}.Release|x86.ActiveCfg = Release|Win32 
     921                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|Any CPU.ActiveCfg = Debug|Win32 
     922                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|Win32 
     923                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|Win32 
     924                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|Win32.ActiveCfg = Debug|Win32 
     925                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|Win32.Build.0 = Debug|Win32 
     926                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|x64.ActiveCfg = Debug|Win32 
     927                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug No Xalan|x86.ActiveCfg = Debug|Win32 
     928                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|Any CPU.ActiveCfg = Debug|Win32 
     929                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
     930                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
     931                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|Win32.ActiveCfg = Debug|Win32 
     932                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|Win32.Build.0 = Debug|Win32 
     933                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|x64.ActiveCfg = Debug|Win32 
     934                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Debug|x86.ActiveCfg = Debug|Win32 
     935                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     936                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     937                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     938                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     939                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|x64.ActiveCfg = Release|x64 
     940                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|x64.Build.0 = Release|x64 
     941                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release No Xalan|x86.ActiveCfg = Release|x64 
     942                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|Any CPU.ActiveCfg = Release|Win32 
     943                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
     944                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|Mixed Platforms.Build.0 = Release|Win32 
     945                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|Win32.ActiveCfg = Release|Win32 
     946                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|Win32.Build.0 = Release|Win32 
     947                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|x64.ActiveCfg = Release|x64 
     948                {E2B4AED5-9A0C-4556-90AB-4CF69743FB65}.Release|x86.ActiveCfg = Release|Win32 
     949                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     950                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     951                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     952                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     953                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     954                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|x64.Build.0 = Debug|x64 
     955                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
     956                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|Any CPU.ActiveCfg = Debug|x64 
     957                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 
     958                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|Mixed Platforms.Build.0 = Debug|x64 
     959                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|Win32.ActiveCfg = Debug|Win32 
     960                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|Win32.Build.0 = Debug|Win32 
     961                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|x64.ActiveCfg = Debug|x64 
     962                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|x64.Build.0 = Debug|x64 
     963                {B39ED2B3-D53A-4077-B957-930979A3577D}.Debug|x86.ActiveCfg = Debug|x64 
     964                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     965                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     966                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     967                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     968                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|x64.ActiveCfg = Release|x64 
     969                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|x64.Build.0 = Release|x64 
     970                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release No Xalan|x86.ActiveCfg = Release|x64 
     971                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|Any CPU.ActiveCfg = Release|x64 
     972                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|Mixed Platforms.ActiveCfg = Release|x64 
     973                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|Mixed Platforms.Build.0 = Release|x64 
     974                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|Win32.ActiveCfg = Release|Win32 
     975                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|Win32.Build.0 = Release|Win32 
     976                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|x64.ActiveCfg = Release|x64 
     977                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|x64.Build.0 = Release|x64 
     978                {B39ED2B3-D53A-4077-B957-930979A3577D}.Release|x86.ActiveCfg = Release|x64 
     979                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     980                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     981                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     982                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     983                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     984                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|x64.Build.0 = Debug|x64 
     985                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
     986                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|Any CPU.ActiveCfg = Debug|x64 
     987                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 
     988                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|Mixed Platforms.Build.0 = Debug|x64 
     989                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|Win32.ActiveCfg = Debug|Win32 
     990                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|Win32.Build.0 = Debug|Win32 
     991                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|x64.ActiveCfg = Debug|x64 
     992                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|x64.Build.0 = Debug|x64 
     993                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Debug|x86.ActiveCfg = Debug|x64 
     994                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     995                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     996                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     997                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     998                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|x64.ActiveCfg = Release|x64 
     999                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|x64.Build.0 = Release|x64 
     1000                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release No Xalan|x86.ActiveCfg = Release|x64 
     1001                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|Any CPU.ActiveCfg = Release|x64 
     1002                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|Mixed Platforms.ActiveCfg = Release|x64 
     1003                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|Mixed Platforms.Build.0 = Release|x64 
     1004                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|Win32.ActiveCfg = Release|Win32 
     1005                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|Win32.Build.0 = Release|Win32 
     1006                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|x64.ActiveCfg = Release|x64 
     1007                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|x64.Build.0 = Release|x64 
     1008                {E3536C28-A7F1-4B53-8E52-7D2232F9E098}.Release|x86.ActiveCfg = Release|x64 
     1009                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     1010                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     1011                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     1012                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     1013                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     1014                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|x64.Build.0 = Debug|x64 
     1015                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
     1016                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|Any CPU.ActiveCfg = Debug|x64 
     1017                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 
     1018                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|Mixed Platforms.Build.0 = Debug|x64 
     1019                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|Win32.ActiveCfg = Debug|Win32 
     1020                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|Win32.Build.0 = Debug|Win32 
     1021                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|x64.ActiveCfg = Debug|x64 
     1022                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|x64.Build.0 = Debug|x64 
     1023                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Debug|x86.ActiveCfg = Debug|x64 
     1024                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     1025                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     1026                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     1027                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     1028                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|x64.ActiveCfg = Release|x64 
     1029                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|x64.Build.0 = Release|x64 
     1030                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release No Xalan|x86.ActiveCfg = Release|x64 
     1031                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|Any CPU.ActiveCfg = Release|x64 
     1032                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|Mixed Platforms.ActiveCfg = Release|x64 
     1033                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|Mixed Platforms.Build.0 = Release|x64 
     1034                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|Win32.ActiveCfg = Release|Win32 
     1035                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|Win32.Build.0 = Release|Win32 
     1036                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|x64.ActiveCfg = Release|x64 
     1037                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|x64.Build.0 = Release|x64 
     1038                {7DB10B50-CE00-4D7A-B322-6824F05D2FCB}.Release|x86.ActiveCfg = Release|x64 
     1039                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|Any CPU.ActiveCfg = Debug|x64 
     1040                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug|x64 
     1041                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|Mixed Platforms.Build.0 = Debug|x64 
     1042                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|Win32.ActiveCfg = Debug|x64 
     1043                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|x64.ActiveCfg = Debug|x64 
     1044                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|x64.Build.0 = Debug|x64 
     1045                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug No Xalan|x86.ActiveCfg = Debug|x64 
     1046                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|Any CPU.ActiveCfg = Debug|x64 
     1047                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 
     1048                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|Mixed Platforms.Build.0 = Debug|x64 
     1049                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|Win32.ActiveCfg = Debug|Win32 
     1050                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|Win32.Build.0 = Debug|Win32 
     1051                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|x64.ActiveCfg = Debug|x64 
     1052                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|x64.Build.0 = Debug|x64 
     1053                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Debug|x86.ActiveCfg = Debug|x64 
     1054                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|Any CPU.ActiveCfg = Release|x64 
     1055                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|Mixed Platforms.ActiveCfg = Release|x64 
     1056                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|Mixed Platforms.Build.0 = Release|x64 
     1057                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|Win32.ActiveCfg = Release|x64 
     1058                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|x64.ActiveCfg = Release|x64 
     1059                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|x64.Build.0 = Release|x64 
     1060                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release No Xalan|x86.ActiveCfg = Release|x64 
     1061                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|Any CPU.ActiveCfg = Release|x64 
     1062                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|Mixed Platforms.ActiveCfg = Release|x64 
     1063                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|Mixed Platforms.Build.0 = Release|x64 
     1064                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|Win32.ActiveCfg = Release|Win32 
     1065                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|Win32.Build.0 = Release|Win32 
     1066                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|x64.ActiveCfg = Release|x64 
     1067                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|x64.Build.0 = Release|x64 
     1068                {33134F61-C1AD-4B6F-9CEA-503A9F140C52}.Release|x86.ActiveCfg = Release|x64 
     1069                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|Any CPU.ActiveCfg = Debug No Xalan|Win32 
     1070                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|Mixed Platforms.ActiveCfg = Debug No Xalan|Win32 
     1071                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|Mixed Platforms.Build.0 = Debug No Xalan|Win32 
     1072                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|Win32.ActiveCfg = Debug No Xalan|Win32 
     1073                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|Win32.Build.0 = Debug No Xalan|Win32 
     1074                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|x64.ActiveCfg = Debug No Xalan|Win32 
     1075                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug No Xalan|x86.ActiveCfg = Debug No Xalan|Win32 
     1076                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|Any CPU.ActiveCfg = Debug|Win32 
     1077                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 
     1078                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|Mixed Platforms.Build.0 = Debug|Win32 
     1079                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|Win32.ActiveCfg = Debug|Win32 
     1080                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|Win32.Build.0 = Debug|Win32 
     1081                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|x64.ActiveCfg = Debug|Win32 
     1082                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Debug|x86.ActiveCfg = Debug|Win32 
     1083                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|Any CPU.ActiveCfg = Release No Xalan|Win32 
     1084                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|Mixed Platforms.ActiveCfg = Release No Xalan|Win32 
     1085                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|Mixed Platforms.Build.0 = Release No Xalan|Win32 
     1086                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|Win32.ActiveCfg = Release No Xalan|Win32 
     1087                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|Win32.Build.0 = Release No Xalan|Win32 
     1088                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|x64.ActiveCfg = Release No Xalan|Win32 
     1089                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release No Xalan|x86.ActiveCfg = Release No Xalan|Win32 
     1090                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|Any CPU.ActiveCfg = Release|Win32 
     1091                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 
     1092                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|Mixed Platforms.Build.0 = Release|Win32 
     1093                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|Win32.ActiveCfg = Release|Win32 
     1094                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|Win32.Build.0 = Release|Win32 
     1095                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|x64.ActiveCfg = Release|Win32 
     1096                {D5B5A007-E873-4D12-B4AF-60811AFD9EF1}.Release|x86.ActiveCfg = Release|Win32 
    6511097        EndGlobalSection 
    6521098        GlobalSection(SolutionProperties) = preSolution 
  • middleware-offline/trunk/_src/eidmw/_Builds/eidcommon.mak

    r5 r34  
    2727INSTALL_DIR_BIN = $${PREFIX_DIR}/bin 
    2828INSTALL_DIR_LIB = $${PREFIX_DIR}/lib 
     29INSTALL_DIR_INCLUDE = $${PREFIX_DIR}/include 
     30 
    2931 
    3032isEmpty(JDK_INCLUDE_DIR){ 
  • middleware-offline/trunk/_src/eidmw/_Builds/pteidversions.mak

    r5 r34  
    66REL_MIN=5 
    77REL_REV=5 
     8 
     9###### version nr of custom FreeImage (FreeImagePTEiD) 
     10FREEIMGLIB=FreeImagePTEiD 
     11FREEIMGLIB_MAJ=1 
     12FREEIMGLIB_MIN=0 
     13FREEIMGLIB_REV=0 
    814 
    915###### version nr of GUI 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCard.cpp

    r25 r34  
    2727#include "cryptoFwkPteid.h" 
    2828#include "CardPteidDef.h" 
     29#include "XadesSignature.h" 
    2930 
    3031#include <time.h> 
     
    116117} 
    117118 
    118 CByteArray APL_Card::Sign(const CByteArray & oData) 
     119CByteArray APL_Card::Sign(const CByteArray & oData, bool signatureKey) 
    119120{ 
    120121        if(m_reader->isVirtualReader()) //Virtual Reader 
     
    122123 
    123124        CByteArray out; 
    124         /*CHash *oHash = new CHash(); 
    125         oHash->Init(ALGO_SHA1); 
    126         oHash->Update(oData);*/ 
    127  
    128         BEGIN_CAL_OPERATION(m_reader) 
    129         out = m_reader->getCalReader()->Sign(m_reader->getCalReader()->GetPrivKeyByID(0x45), SIGN_ALGO_RSA_PKCS, oData); 
     125        BEGIN_CAL_OPERATION(m_reader) 
     126        tPrivKey signing_key; 
     127    //Private key IDs can be found with pkcs15-tool --list-keys from OpenSC package 
     128        if (signatureKey) 
     129                signing_key = m_reader->getCalReader()->GetPrivKeyByID(0x46);  
     130        else 
     131                signing_key = m_reader->getCalReader()->GetPrivKeyByID(0x45); 
     132 
     133        out = m_reader->getCalReader()->Sign(signing_key, SIGN_ALGO_RSA_PKCS, oData); 
    130134        END_CAL_OPERATION(m_reader) 
    131135 
    132136        return out; 
    133137} 
     138 
     139 
     140CByteArray &APL_Card::SignXades(const char ** path, unsigned int n_paths) 
     141{ 
     142        if (path == NULL || n_paths < 1) 
     143           throw CMWEXCEPTION(EIDMW_ERR_CHECK); 
     144 
     145        XadesSignature sig(this); 
     146 
     147        return sig.SignXades(path,n_paths); 
     148 
     149} 
     150 
     151CByteArray &APL_Card::SignXades(CByteArray content, const char *URL) 
     152{ 
     153        CByteArray * ba = new CByteArray(); 
     154        //TODO 
     155        return *ba; 
     156} 
     157 
     158CByteArray &APL_Card::SignXadesT(CByteArray content, const char *URL) 
     159{ 
     160        CByteArray * ba = new CByteArray(); 
     161        //TODO 
     162        return *ba; 
     163} 
     164 
     165CByteArray &APL_Card::SignXadesT(const char ** path, unsigned int n_paths) 
     166{ 
     167        CByteArray * ba = new CByteArray(); 
     168        //TODO 
     169        return *ba; 
     170} 
     171 
     172bool APL_Card::ValidateSignature(const CByteArray &signature, char * errors, unsigned long* error_len) 
     173{ 
     174        if (signature.Size() == 0) 
     175                throw CMWEXCEPTION(EIDMW_ERR_CHECK); 
     176         
     177        XadesSignature sig(this); 
     178         
     179        return sig.ValidateXades(signature, errors, error_len); 
     180} 
     181 
     182 
    134183 
    135184/***************************************************************************************** 
     
    162211        m_challenge=NULL; 
    163212        m_challengeResponse=NULL; 
     213        m_RootCAPubKey = NULL; 
    164214 
    165215        m_certificateCount=COUNT_UNDEF; 
     
    197247                delete m_challengeResponse; 
    198248                m_challengeResponse=NULL; 
     249        } 
     250 
     251        if (m_RootCAPubKey) 
     252        { 
     253                delete m_RootCAPubKey; 
     254                m_RootCAPubKey = NULL; 
    199255        } 
    200256 
     
    260316{ 
    261317        unsigned long lRemaining=0; 
    262         if(!pin) 
    263                 if(strlen(csPinCode)>0) 
     318        if(pin) 
     319                if(csPinCode != NULL) 
    264320                        pin->verifyPin(csPinCode,lRemaining); 
    265321 
     322 
    266323        return readFile(fileID,in,0UL,0UL); 
    267324} 
     
    270327{ 
    271328        unsigned long lRemaining=0; 
    272         if(!pin) 
    273                 if(strlen(csPinCode)>0) 
     329 
     330        if(pin) 
     331                if(csPinCode != NULL) 
    274332                        pin->verifyPin(csPinCode,lRemaining); 
    275333 
     
    304362        { 
    305363                CAutoMutex autoMutex(&m_Mutex);         //We lock for unly one instanciation 
    306                 if (!m_pins)                                            //We test again to be sure it isn't instanciated between the first if and the lock 
     364                if (!m_pins)                            //We test again to be sure it isn't instanciated between the first if and the lock 
    307365                { 
    308366                        m_pins=new APL_Pins(this); 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCard.h

    r25 r34  
    2828#include "P15Objects.h" 
    2929#include "APLReader.h" 
     30#include "APLPublicKey.h" 
    3031 
    3132#define BEGIN_CAL_OPERATION(obj) \ 
     
    106107    EIDMW_APL_API virtual CByteArray sendAPDU(const CByteArray& cmd); 
    107108 
    108     EIDMW_APL_API virtual CByteArray Sign(const CByteArray & oData); 
     109    EIDMW_APL_API virtual CByteArray Sign(const CByteArray & oData, bool signatureKey=false); 
     110 
     111        /* XADeS Signature Methods  */ 
     112 
     113        EIDMW_APL_API CByteArray &SignXades(CByteArray ba, const char *URL); 
     114 
     115        EIDMW_APL_API CByteArray &SignXadesT(CByteArray ba, const char *URL); 
     116 
     117        EIDMW_APL_API CByteArray &SignXades(const char ** path, unsigned int n_paths); 
     118 
     119        EIDMW_APL_API CByteArray &SignXadesT(const char ** path, unsigned int n_paths); 
     120         
     121        EIDMW_APL_API bool ValidateSignature(const CByteArray &signature, char * errors, unsigned long* error_len); 
     122 
    109123 
    110124        /** 
     
    232246        EIDMW_APL_API virtual unsigned long pinStatus(const tPin & Pin); 
    233247 
     248        /* Get the CVC CA public key that 
     249         * this card uses to verify the CVC key; */ 
     250        EIDMW_APL_API virtual APLPublicKey *getRootCAPubKey()=0; 
     251 
    234252        /** 
    235253          * Execute a pin command from the CAL 
     
    323341        CByteArray *m_challenge; 
    324342        CByteArray *m_challengeResponse; 
     343        APLPublicKey *m_RootCAPubKey; 
    325344}; 
    326345 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCardPteid.cpp

    r25 r34  
    2929#include "CardLayer.h" 
    3030#include "MiscUtil.h" 
     31#include "StringOps.h" 
     32 
     33using namespace std; 
    3134 
    3235namespace eIDMW 
     
    3639---------------------------------------- APL_EIDCard ----------------------------------------- 
    3740*****************************************************************************************/ 
    38  
    3941APL_AccessWarningLevel APL_EIDCard::m_lWarningLevel=APL_ACCESSWARNINGLEVEL_TO_ASK; 
    4042 
    41 APL_EIDCard::APL_EIDCard(APL_ReaderContext *reader):APL_SmartCard(reader) 
    42 { 
     43APL_EIDCard::APL_EIDCard(APL_ReaderContext *reader, APL_CardType cardType):APL_SmartCard(reader) 
     44{ 
     45        m_cardType = cardType; 
    4346        m_docfull=NULL; 
    4447        m_CCcustomDoc=NULL; 
    4548        m_docid=NULL; 
     49        m_personal=NULL; 
    4650        m_address=NULL; 
    4751        m_sod=NULL; 
     
    8387                m_docid=NULL; 
    8488        } 
     89        if(m_personal) 
     90        { 
     91                delete m_personal; 
     92                m_personal=NULL; 
     93        } 
    8594        if(m_address) 
    8695        { 
     
    195204bool APL_EIDCard::initVirtualReader() 
    196205{ 
    197         printf("QQ Here start!\n"); 
    198206        bool bRet = true; 
    199207 
     
    724732                if(!m_FileID) 
    725733                { 
    726                         std::cout << " APL_EidFile_ID " << std::endl; 
    727734                        m_FileID=new APL_EidFile_ID(this); 
    728735                } 
     
    815822APL_CardType APL_EIDCard::getType() const 
    816823{ 
    817         return APL_CARDTYPE_PTEID_EID; 
     824        return m_cardType; 
    818825} 
    819826 
     
    10031010        return *m_docid; 
    10041011} 
     1012 
     1013 
     1014APL_PersonalNotesEId& APL_EIDCard::getPersonalNotes() 
     1015{ 
     1016        if(!m_personal) 
     1017                { 
     1018                        CAutoMutex autoMutex(&m_Mutex);         //We lock for only one instanciation 
     1019                        if(!m_personal) 
     1020                        { 
     1021                                m_personal=new APL_PersonalNotesEId(this); 
     1022                        } 
     1023                } 
     1024 
     1025                return *m_personal; 
     1026} 
     1027 
    10051028 
    10061029APL_AddrEId& APL_EIDCard::getAddr() 
     
    11221145const CByteArray& APL_EIDCard::getRawData_Addr() 
    11231146{ 
    1124         printf("getRawData_Addr\n"); 
    11251147        return getFileAddress()->getData(); 
    11261148} 
     
    12331255        return (m_lWarningLevel==1); 
    12341256} 
    1235 /***************************************************************************************** 
    1236 ---------------------------------------- APL_KidsCard --------------------------------------- 
    1237 *****************************************************************************************/ 
    1238 APL_KidsCard::APL_KidsCard(APL_ReaderContext *reader):APL_EIDCard(reader) 
    1239 { 
    1240 } 
    1241  
    1242 APL_KidsCard::~APL_KidsCard() 
    1243 { 
    1244 } 
    1245  
    1246 APL_CardType APL_KidsCard::getType() const 
    1247 { 
    1248         return APL_CARDTYPE_PTEID_KIDS; 
    1249 } 
    1250  
    1251 /***************************************************************************************** 
    1252 ---------------------------------------- CForeignerCard ---------------------------------- 
    1253 *****************************************************************************************/ 
    1254 APL_ForeignerCard::APL_ForeignerCard(APL_ReaderContext *reader):APL_EIDCard(reader) 
    1255 { 
    1256 } 
    1257  
    1258 APL_ForeignerCard::~APL_ForeignerCard() 
    1259 { 
    1260 } 
    1261  
    1262 APL_CardType APL_ForeignerCard::getType() const 
    1263 { 
    1264         return APL_CARDTYPE_PTEID_FOREIGNER; 
    1265 } 
     1257 
     1258APLPublicKey *APL_EIDCard::getRootCAPubKey(){ 
     1259 
     1260        if (!m_RootCAPubKey){ 
     1261                CByteArray out; 
     1262 
     1263                BEGIN_CAL_OPERATION(m_reader) 
     1264                out = m_reader->getCalReader()->RootCAPubKey(); 
     1265                END_CAL_OPERATION(m_reader) 
     1266 
     1267                CByteArray modulus = out.GetBytes(PTEIDNG_FIELD_ROOTCA_PK_POS_MODULUS, PTEIDNG_FIELD_ROOTCA_PK_LEN_MODULUS); 
     1268                CByteArray exponent = out.GetBytes(PTEIDNG_FIELD_ROOTCA_PK_POS_EXPONENT, PTEIDNG_FIELD_ROOTCA_PK_LEN_EXPONENT); 
     1269 
     1270                m_RootCAPubKey = new APLPublicKey(modulus,exponent); 
     1271        } 
     1272 
     1273        return m_RootCAPubKey; 
     1274} 
     1275 
     1276bool APL_EIDCard::isActive() 
     1277{ 
     1278        return getFileTrace()->isActive(); 
     1279} 
     1280 
     1281bool APL_EIDCard::Activate(const char *pinCode, CByteArray &BCDDate){ 
     1282        bool out = false; 
     1283 
     1284        BEGIN_CAL_OPERATION(m_reader) 
     1285        out = m_reader->getCalReader()->Activate(pinCode,BCDDate); 
     1286        END_CAL_OPERATION(m_reader) 
     1287 
     1288        return out; 
     1289} 
     1290 
    12661291 
    12671292/***************************************************************************************** 
     
    13331358        switch(m_card->getType()) 
    13341359        { 
    1335         case APL_CARDTYPE_PTEID_EID: 
     1360        case APL_CARDTYPE_PTEID_IAS07: 
     1361        case APL_CARDTYPE_PTEID_IAS101: 
    13361362                xml+=CARDTYPE_NAME_PTEID_EID; 
    1337                 break; 
    1338         case APL_CARDTYPE_PTEID_KIDS: 
    1339                 xml+=CARDTYPE_NAME_PTEID_KIDS; 
    1340                 break; 
    1341         case APL_CARDTYPE_PTEID_FOREIGNER: 
    1342                 xml+=CARDTYPE_NAME_PTEID_FOREIGNER; 
    13431363                break; 
    13441364        default: 
     
    13871407        switch(m_card->getType()) 
    13881408        { 
    1389         case APL_CARDTYPE_PTEID_EID: 
     1409        case APL_CARDTYPE_PTEID_IAS07: 
     1410        case APL_CARDTYPE_PTEID_IAS101: 
    13901411                csv+=CARDTYPE_NAME_PTEID_EID; 
    1391                 break; 
    1392         case APL_CARDTYPE_PTEID_KIDS: 
    1393                 csv+=CARDTYPE_NAME_PTEID_KIDS; 
    1394                 break; 
    1395         case APL_CARDTYPE_PTEID_FOREIGNER: 
    1396                 csv+=CARDTYPE_NAME_PTEID_FOREIGNER; 
    13971412                break; 
    13981413        default: 
     
    14311446        switch(m_card->getType()) 
    14321447        { 
    1433         case APL_CARDTYPE_PTEID_EID: 
     1448        case APL_CARDTYPE_PTEID_IAS07: 
     1449        case APL_CARDTYPE_PTEID_IAS101: 
    14341450                baCardType.Append(CARDTYPE_NAME_PTEID_EID); 
    1435                 break; 
    1436         case APL_CARDTYPE_PTEID_KIDS: 
    1437                 baCardType.Append(CARDTYPE_NAME_PTEID_KIDS); 
    1438                 break; 
    1439         case APL_CARDTYPE_PTEID_FOREIGNER: 
    1440                 baCardType.Append(CARDTYPE_NAME_PTEID_FOREIGNER); 
    14411451                break; 
    14421452        default: 
     
    14981508{ 
    14991509        CByteArray xml; 
     1510        string *ts, *sn, *sa; 
     1511        string rootATTRS; 
     1512 
     1513        ts = m_xmlUserRequestedInfo->getTimeStamp(); 
     1514        sn = m_xmlUserRequestedInfo->getServerName(); 
     1515        sa = m_xmlUserRequestedInfo->getServerAddress(); 
    15001516 
    15011517        if(!bNoHeader) 
    15021518                xml+="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
    1503  
    1504         if (!m_xmlUserRequestedInfo->isEmpty()){ 
    1505                 xml+="<ccpt>\n"; 
    1506                 xml+=m_card->getID().getXML(true,*m_xmlUserRequestedInfo); 
    1507                 xml+=m_card->getAddr().getXML(true, *m_xmlUserRequestedInfo); 
    1508                 //xml+=m_card->getPersonalData().getXML(true, *m_xmlUserRequestedInfo); 
    1509                 xml+="</ccpt>\n"; 
    1510         } 
    1511         if (m_xmlUserRequestedInfo->contains(XML_NIC)) 
    1512                 cout << "NIC ENCONTRADO!!!!!!!" << endl; 
    1513  
    1514         /*xml+=m_card->getSod().getXML(true); 
    1515         xml+=m_card->getDocInfo().getXML(true); 
    1516  
    1517         CByteArray baFileB64; 
    1518         xml+="  <challenge_response>\n"; 
    1519         if(m_cryptoFwk->b64Encode(m_card->getChallenge(),baFileB64)) 
    1520         { 
    1521                 xml+="  <challenge encoding=\"base64\">\n"; 
    1522                 xml+=           baFileB64; 
    1523                 xml+="  </challenge>\n"; 
    1524         } 
    1525         if(m_cryptoFwk->b64Encode(m_card->getChallengeResponse(),baFileB64)) 
    1526         { 
    1527                 xml+="  <response encoding=\"base64\">\n"; 
    1528                 xml+=           baFileB64; 
    1529                 xml+="  </response>\n"; 
    1530         } 
    1531         xml+="  </challenge_response>\n"; 
    1532  
    1533         xml+="  <cryptographic>\n"; 
    1534         xml+=m_card->getCertificates()->getXML(true); 
    1535         xml+=m_card->getPins()->getXML(true); 
    1536         xml+="  </cryptographic>\n"; 
    1537         xml+="</pteid_card>\n"; 
    1538 */ 
     1519        if (ts && sn && sa){ 
     1520                xml+=XML_ROOT_S; 
     1521                XML_ATTRIBUTE(xml,XML_ROOT_ELEMENT_ATTR_TIMESTAMP,ts->c_str()); 
     1522                XML_ATTRIBUTE(xml,XML_ROOT_ELEMENT_ATTR_SERVERNAME,sn->c_str()); 
     1523                XML_ATTRIBUTE(xml,XML_ROOT_ELEMENT_ATTR_SERVERADDRESS,sa->c_str()); 
     1524                xml+=XML_ROOT_E; 
     1525        } else 
     1526                xml+=XML_OPEN_TAG_NEWLINE(XML_ROOT_ELEMENT); 
     1527        xml+=m_card->getID().getXML(true,*m_xmlUserRequestedInfo); 
     1528        xml+=m_card->getAddr().getXML(true, *m_xmlUserRequestedInfo); 
     1529        xml+=m_card->getPersonalNotes().getXML(true, *m_xmlUserRequestedInfo); 
     1530        xml+=XML_CLOSE_TAG(XML_ROOT_ELEMENT); 
     1531 
    15391532        return xml; 
    15401533} 
     
    15591552{ 
    15601553        xmlSet = new set<enum XMLUserData>; 
     1554        _serverName = NULL; 
     1555        _serverAddress = NULL; 
     1556        _timeStamp = NULL; 
     1557} 
     1558 
     1559APL_XmlUserRequestedInfo::APL_XmlUserRequestedInfo(const char *timeStamp, const char *serverName, const char *serverAddress) 
     1560{ 
     1561        xmlSet = new set<enum XMLUserData>; 
     1562        _timeStamp = new string(timeStamp); 
     1563        _serverName = new string(serverName); 
     1564        _serverAddress = new string(serverAddress); 
    15611565} 
    15621566 
     
    15651569        if (xmlSet) 
    15661570                delete xmlSet; 
     1571        if (_timeStamp) 
     1572                delete _timeStamp; 
     1573        if (_serverAddress) 
     1574                delete _serverAddress; 
     1575        if (_serverName) 
     1576                delete _serverName; 
    15671577} 
    15681578 
     
    15951605bool APL_XmlUserRequestedInfo::isEmpty(){ 
    15961606        return xmlSet->empty(); 
     1607} 
     1608 
     1609std::string* APL_XmlUserRequestedInfo::getTimeStamp(){ 
     1610        return _timeStamp; 
     1611} 
     1612 
     1613std::string* APL_XmlUserRequestedInfo::getServerName(){ 
     1614        return _serverName; 
     1615} 
     1616 
     1617std::string* APL_XmlUserRequestedInfo::getServerAddress(){ 
     1618        return _serverAddress; 
    15971619} 
    15981620 
     
    16351657 
    16361658        CByteArray ca; 
     1659 
    16371660        _xmlUInfo = &xmlUInfo; 
    16381661        ca = getXML(bNoHeader); 
     
    16451668{ 
    16461669        CByteArray xml; 
    1647         //APL_CryptoFwk *crypto = new APL_CryptoFwkPteid(); 
    1648  
    1649         //crypto->b64Encode() 
    1650         xml+="<photo>\n"; 
    1651         //xml+=crypto->getPhoto() 
    1652         xml+="</photo>\n"; 
    1653  
    1654         /* 
    1655         if(!bNoHeader) 
    1656                 xml+="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
    1657  
    1658         xml+="<biographic>\n"; 
    1659         xml+=" <document>\n"; 
    1660         xml+="          <version>"; 
    1661         xml+=                   getDocumentVersion(); 
    1662         xml+=           "</version>\n"; 
    1663         xml+="          <type>"; 
    1664         xml+=                   getDocumentType(); 
    1665         xml+=           "</type>\n"; 
    1666         xml+="  <id>\n"; 
    1667         xml+="          <name>"; 
    1668         xml+=                           getFirstName1(); 
    1669         xml+=                   "</name>\n"; 
    1670         xml+="          <surname>"; 
    1671         xml+=                           getSurname(); 
    1672         xml+=                   "</surname>\n"; 
    1673         xml+="  <country>"; 
    1674         xml+=                   getCountry(); 
    1675         xml+=           "</country>\n"; 
    1676         xml+="          <gender>"; 
    1677         xml+=                           getGender(); 
    1678         xml+=                   "</gender>\n"; 
    1679         xml+="          <date_of_birth>"; 
    1680         xml+=                           getDateOfBirth(); 
    1681         xml+=                   "</date_of_birth>\n"; 
    1682         xml+="          <location_of_birth>"; 
    1683         xml+=                           getLocationOfBirth(); 
    1684         xml+=                   "</location_of_birth>\n"; 
    1685         xml+="          <nationality>"; 
    1686         xml+=                           getNationality(); 
    1687         xml+=                   "</nationality>\n"; 
    1688         xml+="          <national_nr>"; 
    1689         xml+=                           getCivilianIdNumber(); 
    1690         xml+=                   "</national_nr>\n"; 
    1691         xml+="          <duplicata>"; 
    1692         xml+=                           getDuplicata(); 
    1693         xml+=                   "</duplicata>\n"; 
    1694         xml+="          <special_organization>"; 
    1695         xml+=                           getSpecialOrganization(); 
    1696         xml+=                   "</special_organization>\n"; 
    1697         xml+="          <member_of_family>"; 
    1698         xml+=                           getMemberOfFamily(); 
    1699         xml+=                   "</member_of_family>\n"; 
    1700         xml+="          <special_status>"; 
    1701         xml+=                           getSpecialStatus(); 
    1702         xml+=                   "</special_status>\n"; 
    1703         // MARTINHO: não está na posição certa, mas o documento tb n está correcto, fica aqui para n ficar esquecido 
    1704         xml+="          <mrz1>"; 
    1705         xml+=                   getMRZ1(); 
    1706         xml+="          </mrz1>"; 
    1707         xml+="          <mrz2>"; 
    1708         xml+=                   getMRZ2(); 
    1709         xml+="          </mrz2>"; 
    1710         xml+="          <mrz3>"; 
    1711         xml+=                   getMRZ3(); 
    1712         xml+="          </mrz3>"; 
    1713         xml+="          </id>\n"; 
    1714         xml+="  <card>\n"; 
    1715         xml+="          <logical_nr>"; 
    1716         xml+=                           getLogicalNumber(); 
    1717         xml+=                   "</logical_nr>\n"; 
    1718         xml+="          <chip_nr>"; 
    1719         xml+=                           getDocumentPAN(); 
    1720         xml+=                   "</chip_nr>\n"; 
    1721         xml+="          <validity>\n"; 
    1722         xml+="                  <date_begin>"; 
    1723         xml+=                                   getValidityBeginDate(); 
    1724         xml+=                   "</date_begin>\n"; 
    1725         xml+="                  <date_end>"; 
    1726         xml+=                                   getValidityEndDate(); 
    1727         xml+=                   "</date_end>\n"; 
    1728         xml+="          </validity>\n"; 
    1729         xml+="   </card>\n"; 
    1730         xml+=" </document>\n"; 
    1731         xml+="  <files>\n"; 
    1732 /* MARTINHO TEMPORARIO 
    1733         CByteArray baFileB64; 
    1734         if(m_cryptoFwk->b64Encode(m_card->getFileID()->getData(),baFileB64)) 
    1735         { 
    1736                 xml+="          <file_id encoding=\"base64\">\n"; 
    1737                 xml+=           baFileB64; 
    1738                 xml+="          </file_id>\n"; 
    1739         } 
    1740         if(m_cryptoFwk->b64Encode(m_card->getFileIDSign()->getData(),baFileB64)) 
    1741         { 
    1742                 xml+="          <file_id_sign encoding=\"base64\">\n"; 
    1743                 xml+=           baFileB64; 
    1744                 xml+="          </file_id_sign>\n"; 
    1745         } 
    1746         xml+="  </files>\n"; 
    1747         xml+="</biographic>\n"; 
    1748 */ 
     1670        CByteArray basicInfo; 
     1671        CByteArray civilInfo; 
     1672        CByteArray idNum; 
     1673        CByteArray cardValues; 
     1674        CByteArray b64photo; 
     1675        CByteArray *photo; 
     1676        bool addBasicInfo = false; 
     1677        bool addIdNum = false; 
     1678        bool addCardValues = false; 
     1679        bool addCivilInfo = false; 
     1680        string temp; 
     1681 
     1682        // provide all the id fields 
     1683        if(_xmlUInfo->isEmpty()) 
     1684                _xmlUInfo = NULL; 
     1685 
     1686        // photo 
     1687        if (!_xmlUInfo || _xmlUInfo->contains(XML_PHOTO)){ 
     1688                photo = getPhotoObj()->getPhotoPNG(); 
     1689                m_cryptoFwk->b64Encode(*photo,b64photo); 
     1690                BUILD_XML_ELEMENT(xml, XML_PHOTO_ELEMENT, b64photo); 
     1691        } 
     1692 
     1693        // basicInformation 
     1694        if (!_xmlUInfo || _xmlUInfo->contains(XML_NAME)){ 
     1695                string s; 
     1696                s+= getGivenName(); 
     1697                s+=" "; 
     1698                s+=getSurname(); 
     1699                BUILD_XML_ELEMENT(basicInfo, XML_NAME_ELEMENT, s.c_str()); 
     1700                addBasicInfo = true; 
     1701        } 
     1702        if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME)){ 
     1703                BUILD_XML_ELEMENT(basicInfo,XML_GIVEN_NAME_ELEMENT,getGivenName()); 
     1704                addBasicInfo = true; 
     1705        } 
     1706        if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME)){ 
     1707                BUILD_XML_ELEMENT(basicInfo,XML_SURNAME_ELEMENT,getSurname()); 
     1708                addBasicInfo = true; 
     1709        } 
     1710        if (!_xmlUInfo || _xmlUInfo->contains(XML_NIC)){ 
     1711                BUILD_XML_ELEMENT(basicInfo,XML_NIC_ELEMENT,getCivilianIdNumber()); 
     1712                addBasicInfo = true; 
     1713        } 
     1714        if (!_xmlUInfo || _xmlUInfo->contains(XML_EXPIRY_DATE)){ 
     1715                BUILD_XML_ELEMENT(basicInfo,XML_EXPIRY_DATE_ELEMENT, getValidityEndDate()); 
     1716                addBasicInfo = true; 
     1717        } 
     1718        if (addBasicInfo){ 
     1719                BUILD_XML_ELEMENT_NEWLINE(xml, XML_BASIC_INFO_ELEMENT, basicInfo); 
     1720        } 
     1721 
     1722        // CivilInformation 
     1723        if (!_xmlUInfo || _xmlUInfo->contains(XML_GENDER)){ 
     1724                BUILD_XML_ELEMENT(civilInfo, XML_GENDER_ELEMENT, getGender()); 
     1725                addCivilInfo = true; 
     1726        } 
     1727        if (!_xmlUInfo || _xmlUInfo->contains(XML_HEIGHT)){ 
     1728                BUILD_XML_ELEMENT(civilInfo, XML_HEIGHT_ELEMENT, getHeight()); 
     1729                addCivilInfo = true; 
     1730        } 
     1731        if (!_xmlUInfo || _xmlUInfo->contains(XML_NATIONALITY)){ 
     1732                BUILD_XML_ELEMENT(civilInfo, XML_NATIONALITY_ELEMENT, getNationality()); 
     1733                addCivilInfo = true; 
     1734        } 
     1735        if (!_xmlUInfo || _xmlUInfo->contains(XML_DATE_OF_BIRTH)){ 
     1736                BUILD_XML_ELEMENT(civilInfo, XML_DATE_OF_BIRTH_ELEMENT, getDateOfBirth()); 
     1737                addCivilInfo = true; 
     1738        } 
     1739        if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME_FATHER)){ 
     1740                BUILD_XML_ELEMENT(civilInfo, XML_GIVEN_NAME_FATHER_ELEMENT, getGivenNameFather()); 
     1741                addCivilInfo = true; 
     1742        } 
     1743        if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME_FATHER)){ 
     1744                BUILD_XML_ELEMENT(civilInfo, XML_SURNAME_FATHER_ELEMENT, getSurnameFather()); 
     1745                addCivilInfo = true; 
     1746        } 
     1747        if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME_MOTHER)){ 
     1748                BUILD_XML_ELEMENT(civilInfo, XML_GIVEN_NAME_MOTHER_ELEMENT, getGivenNameMother()); 
     1749                addCivilInfo = true; 
     1750        } 
     1751        if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME_MOTHER)){ 
     1752                BUILD_XML_ELEMENT(civilInfo, XML_SURNAME_MOTHER_ELEMENT, getSurnameMother()); 
     1753                addCivilInfo = true; 
     1754        } 
     1755        if (!_xmlUInfo || _xmlUInfo->contains(XML_ACCIDENTAL_INDICATIONS)){ 
     1756                BUILD_XML_ELEMENT(civilInfo, XML_ACCIDENTAL_INDICATIONS_ELEMENT, getAccidentalIndications()); 
     1757                addCivilInfo = true; 
     1758        } 
     1759        if (addCivilInfo){ 
     1760                BUILD_XML_ELEMENT_NEWLINE(xml,XML_CIVIL_INFO_ELEMENT, civilInfo); 
     1761        } 
     1762 
     1763        // IdentificationNumbers 
     1764        if (!_xmlUInfo || _xmlUInfo->contains(XML_DOCUMENT_NO)){ 
     1765                BUILD_XML_ELEMENT(idNum, XML_DOCUMENT_NO_ELEMENT, getDocumentNumber()); 
     1766                addIdNum = true; 
     1767        } 
     1768        if (!_xmlUInfo || _xmlUInfo->contains(XML_TAX_NO)){ 
     1769                BUILD_XML_ELEMENT(idNum, XML_TAX_NO_ELEMENT, getTaxNo()); 
     1770                addIdNum = true; 
     1771        } 
     1772        if (!_xmlUInfo || _xmlUInfo->contains(XML_SOCIAL_SECURITY_NO)){ 
     1773                BUILD_XML_ELEMENT(idNum, XML_SOCIAL_SECURITY_NO_ELEMENT, getTaxNo()); 
     1774                addIdNum = true; 
     1775        } 
     1776        if (!_xmlUInfo || _xmlUInfo->contains(XML_HEALTH_NO)){ 
     1777                BUILD_XML_ELEMENT(idNum, XML_HEALTH_NO_ELEMENT, getHealthNumber()); 
     1778                addIdNum = true; 
     1779        } 
     1780        if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ1)){ 
     1781                temp = getMRZ1(); 
     1782                replace(temp,XML_ESCAPE_LT); 
     1783                BUILD_XML_ELEMENT(idNum, XML_MRZ1_ELEMENT, temp); 
     1784                addIdNum = true; 
     1785        } 
     1786 
     1787        if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ2)){ 
     1788                temp = getMRZ2(); 
     1789                replace(temp,XML_ESCAPE_LT); 
     1790                BUILD_XML_ELEMENT(idNum, XML_MRZ2_ELEMENT, temp); 
     1791                addIdNum = true; 
     1792        } 
     1793        if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ3)){ 
     1794                temp = getMRZ3(); 
     1795                replace(temp,XML_ESCAPE_LT); 
     1796                BUILD_XML_ELEMENT(idNum, XML_MRZ3_ELEMENT, temp); 
     1797                addIdNum = true; 
     1798        } 
     1799        if (addIdNum){ 
     1800                BUILD_XML_ELEMENT_NEWLINE(xml,XML_IDENTIFICATION_NUMBERS_ELEMENT, idNum); 
     1801        } 
     1802 
     1803        // CardValues 
     1804        if (!_xmlUInfo || _xmlUInfo->contains(XML_CARD_VERSION)){ 
     1805                BUILD_XML_ELEMENT(cardValues, XML_CARD_VERSION_ELEMENT, getDocumentVersion()); 
     1806                addCardValues = true; 
     1807        } 
     1808        if (!_xmlUInfo || _xmlUInfo->contains(XML_CARD_NUMBER_PAN)){ 
     1809                BUILD_XML_ELEMENT(cardValues, XML_CARD_NUMBER_PAN_ELEMENT, getDocumentPAN()); 
     1810                addCardValues = true; 
     1811        } 
     1812        if (!_xmlUInfo || _xmlUInfo->contains(XML_ISSUING_DATE)){ 
     1813                BUILD_XML_ELEMENT(cardValues, XML_ISSUING_DATE_ELEMENT, getValidityBeginDate()); 
     1814                addCardValues = true; 
     1815        } 
     1816        if (!_xmlUInfo || _xmlUInfo->contains(XML_ISSUING_ENTITY)){ 
     1817                BUILD_XML_ELEMENT(cardValues, XML_ISSUING_ENTITY_ELEMENT, getIssuingEntity()); 
     1818                addCardValues = true; 
     1819        } 
     1820        if (!_xmlUInfo || _xmlUInfo->contains(XML_DOCUMENT_TYPE)){ 
     1821                BUILD_XML_ELEMENT(cardValues, XML_DOCUMENT_TYPE_ELEMENT, getDocumentType()); 
     1822                addCardValues = true; 
     1823        } 
     1824        if (!_xmlUInfo || _xmlUInfo->contains(XML_LOCAL_OF_REQUEST)){ 
     1825                BUILD_XML_ELEMENT(cardValues, XML_LOCAL_OF_REQUEST_ELEMENT, getLocalofRequest()); 
     1826                addCardValues = true; 
     1827        } 
     1828        if (!_xmlUInfo || _xmlUInfo->contains(XML_VERSION)){ 
     1829                BUILD_XML_ELEMENT(cardValues, XML_VERSION_ELEMENT, "0"); 
     1830                addCardValues = true; 
     1831        } 
     1832        if (addCardValues){ 
     1833                BUILD_XML_ELEMENT_NEWLINE(xml, XML_CARD_VALUES_ELEMENT, cardValues); 
     1834        }; 
     1835 
    17491836        return xml; 
    17501837} 
     
    17651852        csv+=getDocumentType(); 
    17661853        csv+=CSV_SEPARATOR; 
    1767         csv+=getFirstName1(); 
     1854        csv+=getGivenName(); 
    17681855        csv+=CSV_SEPARATOR; 
    17691856        csv+=getSurname(); 
     
    18531940} 
    18541941 
    1855 const char *APL_DocEId::getFirstName1() 
    1856 { 
    1857         return m_card->getFileID()->getFirstName1(); 
     1942const char *APL_DocEId::getGivenName() 
     1943{ 
     1944        return m_card->getFileID()->getGivenName(); 
    18581945} 
    18591946 
     
    19842071} 
    19852072 
    1986 const char *APL_DocEId::getPhoto() 
    1987 { 
    1988         return m_card->getFileID()->getPhoto(); 
     2073PhotoPteid *APL_DocEId::getPhotoObj() 
     2074{ 
     2075        return m_card->getFileID()->getPhotoObj(); 
     2076} 
     2077 
     2078APLPublicKey *APL_DocEId::getCardAuthKeyObj(){ 
     2079        return m_card->getFileID()->getCardAuthKeyObj(); 
    19892080} 
    19902081 
     
    20102101 
    20112102const char *APL_DocEId::getPersoData() 
     2103{ 
     2104        return m_card->getFilePersoData()->getPersoData(); 
     2105} 
     2106 
     2107/***************************************************************************************** 
     2108----------------------------------- APL_PersonalNotesEid ---------------------------------------- 
     2109*****************************************************************************************/ 
     2110APL_PersonalNotesEId::APL_PersonalNotesEId(APL_EIDCard *card) 
     2111{ 
     2112        m_card=card; 
     2113} 
     2114 
     2115APL_PersonalNotesEId::~APL_PersonalNotesEId() 
     2116{ 
     2117} 
     2118 
     2119bool APL_PersonalNotesEId::isAllowed() 
     2120{ 
     2121        try 
     2122        { 
     2123                if(m_card->getFilePersoData()->getStatus(true)==CARDFILESTATUS_OK) 
     2124                        return true; 
     2125        } 
     2126        catch(CMWException& e) 
     2127        { 
     2128                if (e.GetError() == EIDMW_ERR_NOT_ALLOW_BY_USER) 
     2129                        return false; 
     2130                else 
     2131                        throw; 
     2132        } 
     2133        return false; 
     2134} 
     2135 
     2136CByteArray APL_PersonalNotesEId::getXML(bool bNoHeader, APL_XmlUserRequestedInfo &xmlUInfo){ 
     2137        CByteArray ca; 
     2138 
     2139        _xmlUInfo = &xmlUInfo; 
     2140        ca = getXML(bNoHeader); 
     2141        _xmlUInfo = NULL; 
     2142 
     2143        return ca; 
     2144} 
     2145 
     2146CByteArray APL_PersonalNotesEId::getXML(bool bNoHeader) 
     2147{ 
     2148        CByteArray xml; 
     2149        string str; 
     2150 
     2151 
     2152        if (_xmlUInfo->isEmpty()) 
     2153                _xmlUInfo = NULL; 
     2154 
     2155        if (!_xmlUInfo || _xmlUInfo->contains(XML_PERSONAL_NOTES)){ 
     2156                str = getPersonalNotes(); 
     2157                replace(str,XML_ESCAPE_AMP); 
     2158                replace(str,XML_ESCAPE_APOS); 
     2159                replace(str,XML_ESCAPE_GT); 
     2160                replace(str,XML_ESCAPE_LT); 
     2161                replace(str,XML_ESCAPE_QUOTE); 
     2162 
     2163                BUILD_XML_ELEMENT(xml, XML_PERSONAL_NOTES_ELEMENT, str.c_str()); 
     2164        } 
     2165 
     2166        return xml; 
     2167} 
     2168 
     2169CByteArray APL_PersonalNotesEId::getCSV() 
     2170{ 
     2171        CByteArray csv; 
     2172 
     2173        return csv; 
     2174} 
     2175 
     2176CByteArray APL_PersonalNotesEId::getTLV() 
     2177{ 
     2178        CTLVBuffer tlv; 
     2179        CByteArray ba; 
     2180 
     2181        return ba; 
     2182} 
     2183 
     2184const char *APL_PersonalNotesEId::getPersonalNotes() 
    20122185{ 
    20132186        return m_card->getFilePersoData()->getPersoData(); 
     
    20552228CByteArray APL_AddrEId::getXML(bool bNoHeader) 
    20562229{ 
    2057 /* MISSING Fields from PTeid 
    2058         <biographic> 
    2059                 <document> 
    2060                         <version></version> 
    2061                         <type></type> 
    2062                         <id> 
    2063                                 <name></name> 
    2064                                 <surname></surname> 
    2065                                 <gender></gender> 
    2066                                 <date_of_birth></date_of_birth> 
    2067                                 <location_of_birth></location_of_birth> 
    2068                                 <nobility></nobility> 
    2069                                 <nationality></nationality> 
    2070                                 <national_nr></national_nr> 
    2071                                 <special_organization></special_organization> 
    2072                                 <member_of_family></member_of_family> 
    2073                                 <special_status></special_status> 
    2074                         </id> 
    2075                         <card> 
    2076                                 <logical_nr></logical_nr> 
    2077                                 <chip_nr></chip_nr> 
    2078                                 <validity> 
    2079                                         <date_begin></date_begin> 
    2080                                         <date_end></date_end> 
    2081                                 </validity> 
    2082                                 <issuing_municipality></issuing_municipality> 
    2083                         </card> 
    2084                 </document> 
    2085                 <address> 
    2086                         <version></version> 
    2087                         <street></street> 
    2088                         <zip></zip> 
    2089                         <municipality></municipality> 
    2090                         <country></country> 
    2091                 </address> 
    2092                 <files> 
    2093                         <file_id encoding="base64"> 
    2094                         </file_id> 
    2095                         <file_id_sign encoding="base64"> 
    2096                         </file_id_sign> 
    2097                         <file_address encoding="base64"> 
    2098                         </file_address> 
    2099                         <file_address_sign encoding="base64"> 
    2100                         </file_address_sign> 
    2101                 </files> 
    2102         </biographic> 
    2103 */ 
    2104  
    21052230        CByteArray xml; 
    2106  
    2107         xml+="MORADA morada MORADA"; 
    2108         if(!bNoHeader) 
    2109                 xml+="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
    2110 /* 
    2111         xml+="<biographic>\n"; 
    2112         xml+=" <address>\n"; 
    2113         xml+="  <version>"; 
    2114         xml+=                   getAddressVersion(); 
    2115         xml+=           "</version>\n"; 
    2116         xml+="  <street>"; 
    2117         xml+=                   getStreet(); 
    2118         xml+=           "</street>\n"; 
    2119         xml+="  <zip>"; 
    2120         xml+=                   getZipCode(); 
    2121         xml+=           "</zip>\n"; 
    2122         xml+="  <municipality>"; 
    2123         xml+=                   getMunicipality(); 
    2124         xml+=           "</municipality>\n"; 
    2125         xml+=" </address>\n"; 
    2126         xml+="  <files>\n"; 
    2127  
    2128         CByteArray baFileB64; 
    2129         if(m_cryptoFwk->b64Encode(m_card->getFileAddress()->getData(),baFileB64)) 
    2130         { 
    2131                 xml+="          <file_address encoding=\"base64\">\n"; 
    2132                 xml+=           baFileB64; 
    2133                 xml+="          </file_address>\n"; 
    2134         } 
    2135         if(m_cryptoFwk->b64Encode(m_card->getFileAddressSign()->getData(),baFileB64)) 
    2136         { 
    2137                 xml+="          <file_address_sign encoding=\"base64\">\n"; 
    2138                 xml+=           baFileB64; 
    2139                 xml+="          </file_address_sign>\n"; 
    2140         } 
    2141         xml+="  </files>\n"; 
    2142         xml+="</biographic>\n"; 
    2143 */ 
     2231        CByteArray address; 
     2232        bool addAddress = false; 
     2233 
     2234        // provide all the address fields 
     2235        if(_xmlUInfo->isEmpty()) 
     2236                _xmlUInfo = NULL; 
     2237 
     2238        if (isNationalAddress()){ 
     2239                if (!_xmlUInfo || _xmlUInfo->contains(XML_DISTRICT)){ 
     2240                        BUILD_XML_ELEMENT(address, XML_DISTRICT_ELEMENT, getDistrict()); 
     2241                        addAddress = true; 
     2242                } 
     2243                if (!_xmlUInfo || _xmlUInfo->contains(XML_MUNICIPALITY)){ 
     2244                        BUILD_XML_ELEMENT(address, XML_MUNICIPALITY_ELEMENT, getMunicipality()); 
     2245                        addAddress = true; 
     2246                } 
     2247                if (!_xmlUInfo || _xmlUInfo->contains(XML_CIVIL_PARISH)){ 
     2248                        BUILD_XML_ELEMENT(address, XML_CIVIL_PARISH_ELEMENT, getCivilParish()); 
     2249                        addAddress = true; 
     2250                } 
     2251                if (!_xmlUInfo || _xmlUInfo->contains(XML_ABBR_STREET_TYPE)){ 
     2252                        BUILD_XML_ELEMENT(address, XML_ABBR_STREET_TYPE_ELEMENT, getAbbrStreetType()); 
     2253                        addAddress = true; 
     2254                } 
     2255                if (!_xmlUInfo || _xmlUInfo->contains(XML_STREET_TYPE)){ 
     2256                        BUILD_XML_ELEMENT(address, XML_STREET_TYPE_ELEMENT, getStreetType()); 
     2257                        addAddress = true; 
     2258                } 
     2259                if (!_xmlUInfo || _xmlUInfo->contains(XML_STREET_NAME)){ 
     2260                        BUILD_XML_ELEMENT(address, XML_STREET_NAME_ELEMENT, getStreetName()); 
     2261                        addAddress = true; 
     2262                } 
     2263                if (!_xmlUInfo || _xmlUInfo->contains(XML_ABBR_BUILDING_TYPE)){ 
     2264                        BUILD_XML_ELEMENT(address, XML_ABBR_BUILDING_TYPE_ELEMENT, getAbbrBuildingType()); 
     2265                        addAddress = true; 
     2266                } 
     2267                if (!_xmlUInfo || _xmlUInfo->contains(XML_BUILDING_TYPE)){ 
     2268                        BUILD_XML_ELEMENT(address, XML_BUILDING_TYPE_ELEMENT, getBuildingType()); 
     2269                        addAddress = true; 
     2270                } 
     2271                if (!_xmlUInfo || _xmlUInfo->contains(XML_DOOR_NO)){ 
     2272                        BUILD_XML_ELEMENT(address, XML_DOOR_NO_ELEMENT, getDoorNo()); 
     2273                        addAddress = true; 
     2274                } 
     2275                if (!_xmlUInfo || _xmlUInfo->contains(XML_FLOOR)){ 
     2276                        BUILD_XML_ELEMENT(address, XML_FLOOR_ELEMENT, getFloor()); 
     2277                        addAddress = true; 
     2278                } 
     2279                if (!_xmlUInfo || _xmlUInfo->contains(XML_SIDE)){ 
     2280                        BUILD_XML_ELEMENT(address, XML_SIDE_ELEMENT, getSide()); 
     2281                        addAddress = true; 
     2282                } 
     2283                if (!_xmlUInfo || _xmlUInfo->contains(XML_PLACE)){ 
     2284                        BUILD_XML_ELEMENT(address, XML_PLACE_ELEMENT, getPlace()); 
     2285                        addAddress = true; 
     2286                } 
     2287                if (!_xmlUInfo || _xmlUInfo->contains(XML_LOCALITY)){ 
     2288                        BUILD_XML_ELEMENT(address, XML_LOCALITY_ELEMENT, getLocality()); 
     2289                        addAddress = true; 
     2290                } 
     2291                if (!_xmlUInfo || _xmlUInfo->contains(XML_ZIP4)){ 
     2292                        BUILD_XML_ELEMENT(address, XML_ZIP4_ELEMENT, getZip4()); 
     2293                        addAddress = true; 
     2294                } 
     2295                if (!_xmlUInfo || _xmlUInfo->contains(XML_ZIP3)){ 
     2296                        BUILD_XML_ELEMENT(address, XML_ZIP3_ELEMENT, getZip3()); 
     2297                        addAddress = true; 
     2298                } 
     2299                if (!_xmlUInfo || _xmlUInfo->contains(XML_POSTAL_LOCALITY)){ 
     2300                        BUILD_XML_ELEMENT(address, XML_POSTAL_LOCALITY_ELEMENT, getPostalLocality()); 
     2301                        addAddress = true; 
     2302                } 
     2303                if (addAddress){ 
     2304                        BUILD_XML_ELEMENT_NEWLINE(xml,XML_ADDRESS_ELEMENT, address); 
     2305                } 
     2306        } else { 
     2307                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_COUNTRY)){ 
     2308                        BUILD_XML_ELEMENT(address, XML_FOREIGN_COUNTRY_ELEMENT, getForeignCountry()); 
     2309                        addAddress = true; 
     2310                } 
     2311                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_ADDRESS)){ 
     2312                        BUILD_XML_ELEMENT(address, XML_FOREIGN_ADDRESS_ELEMENT, getForeignAddress()); 
     2313                        addAddress = true; 
     2314                } 
     2315                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_CITY)){ 
     2316                        BUILD_XML_ELEMENT(address, XML_FOREIGN_CITY_ELEMENT, getForeignCity()); 
     2317                        addAddress = true; 
     2318                } 
     2319                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_REGION)){ 
     2320                        BUILD_XML_ELEMENT(address, XML_FOREIGN_REGION_ELEMENT, getForeignRegion()); 
     2321                        addAddress = true; 
     2322                } 
     2323                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_LOCALITY)){ 
     2324                        BUILD_XML_ELEMENT(address, XML_FOREIGN_LOCALITY_ELEMENT, getForeignLocality()); 
     2325                        addAddress = true; 
     2326                } 
     2327                if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_POSTAL_CODE)){ 
     2328                        BUILD_XML_ELEMENT(address, XML_FOREIGN_POSTAL_CODE_ELEMENT, getForeignPostalCode()); 
     2329                        addAddress = true; 
     2330                } 
     2331        } 
     2332 
    21442333        return xml; 
    21452334} 
     
    21472336CByteArray APL_AddrEId::getCSV() 
    21482337{ 
    2149 /* 
    2150 version;type;name;surname;gender;date_of_birth;location_of_birth;nobility;nationality; 
    2151         national_nr;special_organization;member_of_family;special_status;logical_nr;chip_nr; 
    2152         date_begin;date_end;issuing_municipality;version;street;zip;municipality;country; 
    2153         file_id;file_id_sign;file_address;file_address_sign; 
    2154 */ 
    2155  
    21562338        CByteArray csv; 
    21572339 
    2158         csv+=getAddressVersion(); 
    2159         csv+=CSV_SEPARATOR; 
    2160         csv+=getStreet(); 
    2161         csv+=CSV_SEPARATOR; 
    2162         csv+=getZipCode(); 
    2163         csv+=CSV_SEPARATOR; 
    2164         csv+=getMunicipality(); 
    2165         csv+=CSV_SEPARATOR; 
    2166  
     2340        /* 
    21672341        CByteArray baFileB64; 
    21682342        if(m_cryptoFwk->b64Encode(m_card->getFileAddress()->getData(),baFileB64,false)) 
    21692343                csv+=baFileB64; 
    2170         csv+=CSV_SEPARATOR; 
    2171         if(m_cryptoFwk->b64Encode(m_card->getFileAddressSign()->getData(),baFileB64,false)) 
    2172                 csv+=baFileB64; 
    2173         csv+=CSV_SEPARATOR; 
    2174  
     2344        */ 
    21752345        return csv; 
    21762346} 
     
    21932363} 
    21942364 
    2195 const char *APL_AddrEId::getAddressVersion() 
    2196 { 
    2197         return m_card->getFileAddress()->getAddressVersion(); 
    2198 } 
    2199  
    2200 const char *APL_AddrEId::getStreet() 
    2201 { 
    2202         return m_card->getFileAddress()->getStreet(); 
    2203 } 
    2204  
    2205 const char *APL_AddrEId::getZipCode() 
    2206 { 
    2207         return m_card->getFileAddress()->getZipCode(); 
    2208 } 
    2209  
    22102365const char *APL_AddrEId::getMunicipality() 
    22112366{ 
     
    22132368} 
    22142369 
     2370const char *APL_AddrEId::getMunicipalityCode() 
     2371{ 
     2372        return m_card->getFileAddress()->getMunicipalityCode(); 
     2373} 
     2374 
    22152375const char *APL_AddrEId::getPlace() 
    22162376{ 
     
    22232383} 
    22242384 
     2385const char *APL_AddrEId::getCivilParishCode() 
     2386{ 
     2387        return m_card->getFileAddress()->getCivilParishCode(); 
     2388} 
     2389 
    22252390const char *APL_AddrEId::getStreetName() 
    22262391{ 
     
    22282393} 
    22292394 
    2230 const char *APL_AddrEId::getStreetType1() 
    2231 { 
    2232         return m_card->getFileAddress()->getStreetType1(); 
    2233 } 
    2234  
    2235 const char *APL_AddrEId::getStreetType2() 
    2236 { 
    2237         return m_card->getFileAddress()->getStreetType2(); 
    2238 } 
    2239  
    2240 const char *APL_AddrEId::getBuildingType1() 
    2241 { 
    2242         return m_card->getFileAddress()->getBuildingType1(); 
    2243 } 
    2244  
    2245 const char *APL_AddrEId::getBuildingType2() 
    2246 { 
    2247         return m_card->getFileAddress()->getBuildingType2(); 
     2395const char *APL_AddrEId::getAbbrStreetType() 
     2396{ 
     2397        return m_card->getFileAddress()->getAbbrStreetType(); 
     2398} 
     2399 
     2400const char *APL_AddrEId::getStreetType() 
     2401{ 
     2402        return m_card->getFileAddress()->getStreetType(); 
     2403} 
     2404 
     2405const char *APL_AddrEId::getAbbrBuildingType() 
     2406{ 
     2407        return m_card->getFileAddress()->getAbbrBuildingType(); 
     2408} 
     2409 
     2410const char *APL_AddrEId::getBuildingType() 
     2411{ 
     2412        return m_card->getFileAddress()->getBuildingType(); 
    22482413} 
    22492414 
     
    22832448} 
    22842449 
     2450const char *APL_AddrEId::getGeneratedAddressCode() 
     2451{ 
     2452        return m_card->getFileAddress()->getGeneratedAddressCode(); 
     2453} 
     2454 
    22852455const char *APL_AddrEId::getDistrict() 
    22862456{ 
    22872457        return m_card->getFileAddress()->getDistrict(); 
     2458} 
     2459 
     2460const char *APL_AddrEId::getDistrictCode() 
     2461{ 
     2462        return m_card->getFileAddress()->getDistrictCode(); 
     2463} 
     2464 
     2465const char *APL_AddrEId::getCountryCode() 
     2466{ 
     2467        return m_card->getFileAddress()->getCountryCode(); 
     2468} 
     2469 
     2470bool APL_AddrEId::isNationalAddress() 
     2471{ 
     2472        return m_card->getFileAddress()->isNationalAddress(); 
     2473} 
     2474 
     2475const char *APL_AddrEId::getForeignCountry() 
     2476{ 
     2477        return m_card->getFileAddress()->getForeignCountry(); 
     2478} 
     2479 
     2480const char *APL_AddrEId::getForeignAddress() 
     2481{ 
     2482        return m_card->getFileAddress()->getForeignAddress(); 
     2483} 
     2484 
     2485const char *APL_AddrEId::getForeignCity() 
     2486{ 
     2487        return m_card->getFileAddress()->getForeignCity(); 
     2488} 
     2489 
     2490const char *APL_AddrEId::getForeignRegion() 
     2491{ 
     2492        return m_card->getFileAddress()->getForeignRegion(); 
     2493} 
     2494 
     2495const char *APL_AddrEId::getForeignLocality() 
     2496{ 
     2497        return m_card->getFileAddress()->getForeignLocality(); 
     2498} 
     2499 
     2500const char *APL_AddrEId::getForeignPostalCode() 
     2501{ 
     2502        return m_card->getFileAddress()->getForeignPostalCode(); 
    22882503} 
    22892504 
     
    25752790const char *APL_DocVersionInfo::getSerialNumber() 
    25762791{ 
    2577         return m_card->getFileInfo()->getSerialNumber(); 
     2792        return m_card->getFileTokenInfo()->getTokenSerialNumber(); 
     2793} 
     2794 
     2795const char * APL_DocVersionInfo::getTokenLabel(){ 
     2796        return m_card->getFileTokenInfo()->getTokenLabel(); 
    25782797} 
    25792798 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCardPteid.h

    r25 r34  
    3131#include "APLDoc.h" 
    3232#include "ByteArray.h" 
    33 #include "../common/xmlUserDataEnum.h" 
     33#include "xmlUserData.h" 
     34#include "PhotoPteid.h" 
     35#include "APLPublicKey.h" 
    3436 
    3537namespace eIDMW 
     
    5456class APL_SodEid; 
    5557class APL_DocVersionInfo; 
     58class APL_XmlUserRequestedInfo; 
     59class APL_PersonalNotesEId; 
    5660 
    5761enum APL_AccessWarningLevel 
     
    6367}; 
    6468 
    65 class APL_CCXML_Doc; 
    66 class APL_XmlUserRequestedInfo; 
    6769/******************************************************************************//** 
    6870  * Class that represent a PTEID card 
     
    8183 
    8284        /** 
    83           * Return the type of the card (PTEID_CARDTYPE_EID) 
     85          * Return the type of the card (APL_CARDTYPE_EID_IAS*) 
    8486          */ 
    8587        EIDMW_APL_API virtual APL_CardType getType() const; 
     
    130132          */ 
    131133        EIDMW_APL_API APL_DocEId& getID(); 
     134 
     135 
     136        /** 
     137          * Return a reference to the document personal notes 
     138          * 
     139          * It is based upon the personal notes file 
     140          */ 
     141        EIDMW_APL_API APL_PersonalNotesEId& getPersonalNotes(); 
    132142 
    133143        /** 
     
    174184        APL_EidFile_PersoData *getFilePersoData();                              /**< Return a pointer to the file PersoData (NOT EXPORTED) */ 
    175185        APL_EidFile_TokenInfo *getFileTokenInfo();              /**< Return a pointer to the file Token Info (NOT EXPORTED) */ 
     186        APLPublicKey *getRootCAPubKey();                                                /**< Get the CVC CA public key that this card uses to verify the CVC key (NOT EXPORTED)*/ 
     187        bool isActive(); 
     188        bool Activate(const char *pinCode, CByteArray &BCDDate);                                                /**< Activate the pteid card (NOT EXPORTED)*/ 
     189 
    176190 
    177191        static void askWarningLevel(); 
     
    184198          *             Used only in APL_ReaderContext::connectCard 
    185199          */     
    186         APL_EIDCard(APL_ReaderContext *reader); 
     200        //MARTINHO: APL_EIDCard(APL_ReaderContext *reader); 
     201        APL_EIDCard(APL_ReaderContext *reader, APL_CardType cardType); 
    187202 
    188203        virtual bool initVirtualReader(); 
     
    205220 
    206221        CByteArray *m_cardinfosign; 
    207  
     222        APL_CardType    m_cardType; 
    208223        APL_EIdFullDoc *m_docfull;                                                      /**< Pointer to the document FULL */ 
    209224        APL_CCXML_Doc *m_CCcustomDoc;                                           /**< Pointer to the custom document */ 
    210225        APL_DocEId *m_docid;                                                            /**< Pointer to the document ID */ 
     226        APL_PersonalNotesEId *m_personal;                                       /**< Pointer to the personal notes document*/ 
    211227        APL_AddrEId *m_address;                                                         /**< Pointer to the document Address */ 
    212228        APL_SodEid *m_sod;                                                              /**< Pointer to the document sod */ 
     
    235251 
    236252/******************************************************************************//** 
    237   * Class that represent a PTEID Kids card 
    238   * 
    239   * To get APL_KidsCard object, we have to ask it from APL_ReaderContext  
    240   *********************************************************************************/ 
    241 class APL_KidsCard : public APL_EIDCard 
    242 { 
    243 public: 
    244         /** 
    245           * Destructor 
    246           */ 
    247         EIDMW_APL_API virtual ~APL_KidsCard(); 
    248  
    249         /** 
    250           * Return the type of the card (PTEID_CARDTYPE_KIDS) 
    251           */ 
    252         EIDMW_APL_API virtual APL_CardType getType() const; 
    253  
    254 protected: 
    255         /** 
    256           * Constructor 
    257           *             Used only in APL_ReaderContext::connectCard 
    258           */     
    259         APL_KidsCard(APL_ReaderContext *reader); 
    260  
    261 private: 
    262         APL_KidsCard(const APL_KidsCard& card);                         /**< Copy not allowed - not implemented */ 
    263         APL_KidsCard &operator= (const APL_KidsCard& card);     /**< Copy not allowed - not implemented */ 
    264  
    265 friend bool APL_ReaderContext::connectCard();   /**< This method must access protected constructor */ 
    266 }; 
    267  
    268 /******************************************************************************//** 
    269   * Class that represent a PTEID Foreigner card ( 
    270   * 
    271   * To get APL_ForeignerCard object, we have to ask it from APL_ReaderContext  
    272   *********************************************************************************/ 
    273 class APL_ForeignerCard : public APL_EIDCard 
    274 { 
    275 public: 
    276         /** 
    277           * Destructor 
    278           */ 
    279         EIDMW_APL_API virtual ~APL_ForeignerCard(); 
    280  
    281         /** 
    282           * Return the type of the card (PTEID_CARDTYPE_FOREIGNER) 
    283           */ 
    284         EIDMW_APL_API virtual APL_CardType getType() const; 
    285  
    286 protected: 
    287         /** 
    288           * Constructor 
    289           *             Used only in APL_ReaderContext::connectCard 
    290           */     
    291         APL_ForeignerCard(APL_ReaderContext *reader); 
    292  
    293 private: 
    294         APL_ForeignerCard(const APL_ForeignerCard& card);                               /**< Copy not allowed - not implemented */ 
    295         APL_ForeignerCard &operator= (const APL_ForeignerCard& card);   /**< Copy not allowed - not implemented */ 
    296  
    297 friend bool APL_ReaderContext::connectCard();   /**< This method must access protected constructor */ 
    298 }; 
    299  
    300 /******************************************************************************//** 
    301253  * Class that represent the FULL document on a PTEID card 
    302254  * To get APL_DocEIdFull object, we have to ask it from APL_EIDCard  
     
    366318friend APL_CCXML_Doc& APL_EIDCard::getXmlCCDoc(APL_XmlUserRequestedInfo& userRequestedInfo);    /**< This method must access protected constructor */ 
    367319}; 
    368  
    369  
    370 class APL_XmlUserRequestedInfo 
    371 { 
    372 public: 
    373         EIDMW_APL_API APL_XmlUserRequestedInfo(); 
    374         EIDMW_APL_API ~APL_XmlUserRequestedInfo(); 
    375         EIDMW_APL_API void add(XMLUserData xmlUData); 
    376  
    377 protected: 
    378         bool contains(XMLUserData xmlUData); 
    379         void remove(XMLUserData xmlUData); 
    380         bool checkAndRemove(XMLUserData xmlUData); 
    381         bool isEmpty(); 
    382 friend CByteArray APL_CCXML_Doc::getXML(bool bNoHeader); 
    383  
    384 private: 
    385         std::set<enum XMLUserData> *xmlSet; 
    386 }; 
    387  
    388320 
    389321/******************************************************************************//** 
     
    412344        EIDMW_APL_API const char *getDocumentType();            /**< Return field DocumentType from the ID file */ 
    413345        EIDMW_APL_API const char *getCountry();                         /**< Return field Country from the ID file */ 
    414         EIDMW_APL_API const char *getFirstName1();                      /**< Return field FirstName1 from the ID file */ 
     346        EIDMW_APL_API const char *getGivenName();                       /**< Return field GivenName from the ID file */ 
    415347        EIDMW_APL_API const char *getSurname();                         /**< Return field Surname from the ID file */ 
    416348        EIDMW_APL_API const char *getGender();                          /**< Return field Gender from the ID file */ 
     
    440372        EIDMW_APL_API const char *getSurnameMother();           /**< Return field SurnameMother */ 
    441373        EIDMW_APL_API const char *getParents();                         /**< Return field Parents */ 
    442         EIDMW_APL_API const char *getPhoto();                           /**< Return field Photo */ 
     374        EIDMW_APL_API PhotoPteid *getPhotoObj();                        /**< Return photo object*/ 
     375        EIDMW_APL_API APLPublicKey *getCardAuthKeyObj(); 
    443376        EIDMW_APL_API const char *getMRZ1();                            /**< Return field MRZ block 1 */ 
    444377        EIDMW_APL_API const char *getMRZ2();                            /**< Return field MRZ block 2 */ 
     
    492425        EIDMW_APL_API virtual CByteArray getTLV();                                              /**< Build the TLV document */ 
    493426 
    494         EIDMW_APL_API const char *getAddressVersion();          /**< Return field AddressVersion from the Address file */ 
    495         EIDMW_APL_API const char *getStreet();                          /**< Return field Street from the Address file */ 
    496         EIDMW_APL_API const char *getZipCode();                         /**< Return field ZipCode from the Address file */ 
    497         EIDMW_APL_API const char *getMunicipality();            /**< Return field Municipality from the Address file */ 
    498         EIDMW_APL_API const char *getCivilParish();                     /**< Return field CivilParish from the Address file */ 
    499         EIDMW_APL_API const char *getStreetName();                      /**< Return field StreetName from the Address file */ 
    500         EIDMW_APL_API const char *getStreetType1();                     /**< Return field StreetType1 from the Address file */ 
    501         EIDMW_APL_API const char *getStreetType2();                     /**< Return field StreetType2 from the Address file */ 
    502         EIDMW_APL_API const char *getBuildingType1();           /**< Return field BuildingType1 from the Address file */ 
    503         EIDMW_APL_API const char *getBuildingType2();           /**< Return field BuildingType2 from the Address file */ 
    504         EIDMW_APL_API const char *getDoorNo();                          /**< Return field DoorNo from the Address file */ 
    505         EIDMW_APL_API const char *getFloor();                           /**< Return field Floor from the Address file */ 
    506         EIDMW_APL_API const char *getSide();                            /**< Return field Side from the Address file */ 
    507         EIDMW_APL_API const char *getLocality();                        /**< Return field Locality from the Address file */ 
    508         EIDMW_APL_API const char *getPlace();                   /**< Return field Locality from the Address file */ 
    509         EIDMW_APL_API const char *getZip4();                            /**< Return field Zip4 from the Address file */ 
    510         EIDMW_APL_API const char *getZip3();                            /**< Return field Zip3 from the Address file */ 
    511         EIDMW_APL_API const char *getPostalLocality();          /**< Return field PostalLocality from the Address file */ 
    512         EIDMW_APL_API const char *getDistrict();                        /**< Return field District from the Address file */ 
     427        EIDMW_APL_API bool isNationalAddress();                         /**<is the address a portuguese address? */ 
     428        EIDMW_APL_API const char *getCountryCode();                             /**<residence country */ 
     429 
     430        EIDMW_APL_API const char *getMunicipality();                    /**< Return field Municipality from the Address file */ 
     431        EIDMW_APL_API const char *getMunicipalityCode();                /**< Return field Municipality Code from the Address file */ 
     432        EIDMW_APL_API const char *getCivilParish();                             /**< Return field CivilParish from the Address file */ 
     433        EIDMW_APL_API const char *getCivilParishCode();                 /**< Return field CivilParish Code from the Address file */ 
     434        EIDMW_APL_API const char *getStreetName();                              /**< Return field StreetName from the Address file */ 
     435        EIDMW_APL_API const char *getAbbrStreetType();                  /**< Return field AbbrStreetType from the Address file */ 
     436        EIDMW_APL_API const char *getStreetType();                              /**< Return field StreetType from the Address file */ 
     437        EIDMW_APL_API const char *getAbbrBuildingType();                /**< Return field AbbrBuildingType from the Address file */ 
     438        EIDMW_APL_API const char *getBuildingType();                    /**< Return field BuildingType from the Address file */ 
     439        EIDMW_APL_API const char *getDoorNo();                                  /**< Return field DoorNo from the Address file */ 
     440        EIDMW_APL_API const char *getFloor();                                   /**< Return field Floor from the Address file */ 
     441        EIDMW_APL_API const char *getSide();                                    /**< Return field Side from the Address file */ 
     442        EIDMW_APL_API const char *getLocality();                                /**< Return field Locality from the Address file */ 
     443        EIDMW_APL_API const char *getPlace();                                   /**< Return field Locality from the Address file */ 
     444        EIDMW_APL_API const char *getZip4();                                    /**< Return field Zip4 from the Address file */ 
     445        EIDMW_APL_API const char *getZip3();                                    /**< Return field Zip3 from the Address file */ 
     446        EIDMW_APL_API const char *getPostalLocality();                  /**< Return field PostalLocality from the Address file */ 
     447        EIDMW_APL_API const char *getGeneratedAddressCode();    /**< Return field Address Code from the Address file */ 
     448        EIDMW_APL_API const char *getDistrict();                                /**< Return field District from the Address file */ 
     449        EIDMW_APL_API const char *getDistrictCode();                    /**< Return field District Code from the Address file */ 
     450 
     451        EIDMW_APL_API const char *getForeignCountry(); 
     452        EIDMW_APL_API const char *getForeignAddress(); 
     453        EIDMW_APL_API const char *getForeignCity(); 
     454        EIDMW_APL_API const char *getForeignRegion(); 
     455        EIDMW_APL_API const char *getForeignLocality(); 
     456        EIDMW_APL_API const char *getForeignPostalCode(); 
     457 
    513458 
    514459protected: 
     
    531476friend APL_AddrEId& APL_EIDCard::getAddr();     /**< This method must access protected constructor */ 
    532477friend CByteArray APL_CCXML_Doc::getXML(bool bNoHeader); /* this method accesses getxml(,) */ 
     478}; 
     479 
     480 
     481class APL_PersonalNotesEId : public APL_XMLDoc{ 
     482public: 
     483        EIDMW_APL_API virtual ~APL_PersonalNotesEId(); 
     484 
     485        EIDMW_APL_API virtual bool isAllowed();                                                 /**< The document is allowed*/ 
     486 
     487        EIDMW_APL_API virtual CByteArray getXML(bool bNoHeader=false);  /**< Build the XML document */ 
     488        EIDMW_APL_API virtual CByteArray getCSV();                                              /**< Build the CSV document */ 
     489        EIDMW_APL_API virtual CByteArray getTLV();                                              /**< Build the TLV document */ 
     490 
     491        EIDMW_APL_API const char *getPersonalNotes();                                   /**< Return field AddressVersion from the Address file */ 
     492 
     493protected: 
     494        /** 
     495          * Constructor 
     496          *             Used only in APL_EIDCard::getPersonalNotes() 
     497          */ 
     498        APL_PersonalNotesEId(APL_EIDCard *card); 
     499        CByteArray getXML(bool bNoHeader, APL_XmlUserRequestedInfo &xmlUInfo); 
     500 
     501private: 
     502        APL_PersonalNotesEId(const APL_PersonalNotesEId& doc);                          /**< Copy not allowed - not implemented */ 
     503        APL_PersonalNotesEId &operator= (const APL_PersonalNotesEId& doc);      /**< Copy not allowed - not implemented */ 
     504 
     505        APL_EIDCard *m_card;                                                    /**< Pointer to the card that construct this object*/ 
     506        APL_XmlUserRequestedInfo *_xmlUInfo; 
     507 
     508friend APL_PersonalNotesEId& APL_EIDCard::getPersonalNotes();   /**< This method must access protected constructor */ 
     509friend CByteArray APL_CCXML_Doc::getXML(bool bNoHeader); /* this method accesses getxml(,) */ 
     510 
     511 
     512}; 
     513 
     514class APL_XmlUserRequestedInfo 
     515{ 
     516public: 
     517        EIDMW_APL_API APL_XmlUserRequestedInfo(); 
     518        EIDMW_APL_API APL_XmlUserRequestedInfo(const char *timeStamp, const char *serverName, const char *serverAddress); 
     519        EIDMW_APL_API ~APL_XmlUserRequestedInfo(); 
     520        EIDMW_APL_API void add(XMLUserData xmlUData); 
     521 
     522protected: 
     523        bool contains(XMLUserData xmlUData); 
     524        void remove(XMLUserData xmlUData); 
     525        bool checkAndRemove(XMLUserData xmlUData); 
     526        bool isEmpty(); 
     527        std::string *getTimeStamp(); 
     528        std::string *getServerName(); 
     529        std::string *getServerAddress(); 
     530friend CByteArray APL_CCXML_Doc::getXML(bool bNoHeader); 
     531friend CByteArray APL_DocEId::getXML(bool bNoHeader); 
     532friend CByteArray APL_AddrEId::getXML(bool bNoHeader); 
     533friend CByteArray APL_PersonalNotesEId::getXML(bool bNoHeader); 
     534 
     535private: 
     536        std::set<enum XMLUserData> *xmlSet; 
     537        std::string *_timeStamp; 
     538        std::string *_serverName; 
     539        std::string *_serverAddress; 
    533540}; 
    534541 
     
    592599 
    593600        EIDMW_APL_API const char *getSerialNumber();            /**< Return field SerialNumber from the Info file */ 
     601        EIDMW_APL_API const char *getTokenLabel();                      /**< Return field Label from the EFCIA (5032) file */ 
    594602        EIDMW_APL_API const char *getComponentCode();           /**< Return field ComponentCode from the Info file */ 
    595603        EIDMW_APL_API const char *getOsNumber();                        /**< Return field OsNumber from the Info file */ 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCertif.cpp

    r25 r34  
    2020 
    2121#include <time.h> 
     22#include <fstream> 
    2223 
    2324#include "openssl/evp.h" 
    2425#include "openssl/x509.h" 
    2526#include "openssl/x509v3.h" 
    26  
     27#include "cryptoFwkPteid.h" 
    2728#include "APLCertif.h" 
     29#include "APLReader.h" 
    2830#include "APLConfig.h" 
    2931#include "CardFile.h" 
    30 #include "cryptoFwkPteid.h" 
    3132#include "eidErrors.h" 
    3233#include "Util.h" 
     
    278279 
    279280                cert = new APL_Certif(m_card,this,ulIndex); 
     281 
     282                ////////////////////////////Cert CACHE////////////////////////// 
     283                /*CByteArray certfilecache; 
     284                certfilecache.Append(cert->getData()); 
     285                try 
     286                { 
     287                        ofstream myfile; 
     288                        APL_Config conf_dir(CConfig::EIDMW_CONFIG_PARAM_GENERAL_PTEID_CACHEDIR); 
     289                        std::string     m_cachedirpath = conf_dir.getString(); 
     290                        std::string pteidfile = m_cachedirpath; 
     291                        pteidfile.append("/pteidng-"); 
     292                        pteidfile.append(m_InitSerialNumber); 
     293                        pteidfile.append("-"); 
     294                        if (ulIndex == 0) 
     295                        { 
     296                                pteidfile.append(PTEID_FILE_CERT_AUTHENTICATION); 
     297                        } 
     298                        else if (ulIndex == 1) 
     299                        { 
     300                                pteidfile.append(PTEID_FILE_CERT_SIGNATURE); 
     301                        } 
     302                        else if (ulIndex == 2) 
     303                        { 
     304                                pteidfile.append(PTEID_FILE_CERT_ROOT_SIGN); 
     305                        } 
     306                        else if (ulIndex == 3) 
     307                        { 
     308                                pteidfile.append(PTEID_FILE_CERT_ROOT_AUTH); 
     309                        } 
     310                        else if (ulIndex == 4) 
     311                        { 
     312                                pteidfile.append(PTEID_FILE_CERT_ROOT); 
     313                        } 
     314                        pteidfile.append(".bin"); 
     315                        myfile.open (pteidfile.c_str(), ios::binary); 
     316                        std::string certFile; 
     317                        certFile.assign((char*)certfilecache.GetBytes(), certfilecache.Size()); 
     318                        myfile << certFile; 
     319                        myfile.close(); 
     320                } 
     321                catch(CMWException& e) 
     322                { 
     323                        MWLOG(LEV_INFO, MOD_APL, L"Write cache certificate file %d on disk failed", ulIndex); 
     324                }*/ 
     325                //////////////////////////////////////////////////////////////// 
    280326 
    281327                unsigned long ulUniqueId=cert->getUniqueId(); 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCrypto.cpp

    r25 r34  
    589589} 
    590590 
     591unsigned long APL_Pin::getPinRef(){ 
     592        return m_pinP15.ulPinRef; 
     593} 
     594 
    591595unsigned long APL_Pin::getType() 
    592596{ 
     
    725729 
    726730 
    727 } 
     731bool APL_Pin::unlockPin(const char *pszPuk, const char *pszNewPin, unsigned long *triesLeft){ 
     732 
     733        if (m_card->getType() == APL_CARDTYPE_PTEID_IAS07){ //gemsafe 
     734                return m_card->getCalReader()->unlockPIN(m_pinP15, NULL, pszPuk, pszNewPin, triesLeft); 
     735 
     736        } else if (m_card->getType() == APL_CARDTYPE_PTEID_IAS101){ //ias 
     737                tPin puk; 
     738                for (unsigned long idx=0; idx < m_card->pinCount(); idx++){ 
     739                        puk = m_card->getPin(idx); // get the puk for this pin 
     740                        if (((puk.ulPinRef & 0x0F) == (m_pinP15.ulPinRef & 0x0F)) && puk.ulPinRef > m_pinP15.ulPinRef){ 
     741                                return m_card->getCalReader()->unlockPIN(m_pinP15, &puk, pszPuk, pszNewPin, triesLeft); 
     742                        } 
     743                } 
     744        } 
     745 
     746        return true; 
     747} 
     748 
     749 
     750} 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCrypto.h

    r25 r34  
    138138        EIDMW_APL_API long getTriesLeft();                       
    139139        EIDMW_APL_API unsigned long getIndex();         /**< Return m_ulIndex */ 
     140        EIDMW_APL_API unsigned long getPinRef(); 
    140141        EIDMW_APL_API unsigned long getType();          /**< Return P15 Type */  
    141142        EIDMW_APL_API unsigned long getId();            /**< Return P15 ID */ 
     
    169170          */ 
    170171        EIDMW_APL_API bool changePin(const char *csPin1,const char *csPin2,unsigned long &ulRemaining, const char *PinName,bool bShowDlg=true); 
     172        EIDMW_APL_API bool unlockPin(const char *pszPuk, const char *pszNewPin, unsigned long *triesLeft); 
    171173 
    172174protected: 
  • middleware-offline/trunk/_src/eidmw/applayer/APLReader.cpp

    r5 r34  
    3535#include "TLVBuffer.h" 
    3636#include "CardPteidDef.h" 
    37 #include "CardSISDef.h" 
    3837#include "APLCard.h" 
    3938#include "APLCardPteid.h" 
    40 #include "APLCardSIS.h" 
    4139#include "eidErrors.h" 
    4240#include "MWException.h" 
     
    5452{ 
    5553 
     54APL_CardType ConvertCardType(tCardType cardType); 
     55 
    5656/***************************************************************************************** 
    5757------------------------------------ APL_ReaderContext --------------------------------------- 
     
    130130} 
    131131 
    132 APL_ReaderContext::APL_ReaderContext(const APL_RawData_Sis &data) 
    133 { 
    134         m_calreader=NULL; 
    135         m_card=NULL; 
    136         m_cardid=0; 
    137  
    138         m_cal_lock=false; 
    139         m_transaction_lock=false; 
    140  
    141         m_virtual=true; 
    142  
    143         m_status=CARD_NOT_PRESENT; 
    144  
    145         m_parser=new APL_SuperParser(data); 
    146  
    147         connectVirtualCard(); 
    148  
    149 } 
    150132APL_ReaderContext::~APL_ReaderContext() 
    151133{ 
     
    292274        switch(CalCarType) 
    293275        { 
    294         case CARD_PTEID: 
     276        case CARD_PTEID_IAS07: 
     277        case CARD_PTEID_IAS101: 
    295278        { 
    296279                //Check the document type in the ID file 
     
    312295                        oTLVBuffer.FillLongData(PTEID_FIELD_TAG_ID_DocumentType, &lDocType);*/ 
    313296 
    314                         //////////////////////////////////////////////////////////// READ SOD INIT 
    315                         /*std::cout << "MAPFIELDS Address " << std::endl; 
    316                         CByteArray pteidngSodBuffer; 
     297                        /////////READ SOD INIT as a possible fallback for Identify Citizens 
     298                        /*CByteArray pteidngSodBuffer; 
    317299                        ofstream myfile; 
    318300                        std::string m_sodfile; 
     
    341323                CalUnlock(); 
    342324                 
    343                 if(lDocType==PTEID_CARDTYPE_KIDS_CODE) 
    344                         ret=APL_CARDTYPE_PTEID_KIDS; 
    345  
    346                 else if(lDocType>=PTEID_CARDTYPE_FOREIGNER_CODE_MIN  
    347                         && lDocType<=PTEID_CARDTYPE_FOREIGNER_CODE_MAX) 
    348                         ret=APL_CARDTYPE_PTEID_FOREIGNER; 
    349  
    350                 else 
    351                         ret=APL_CARDTYPE_PTEID_EID; 
     325                ret=ConvertCardType(CalCarType); 
    352326 
    353327                break; 
    354328        } 
    355         case CARD_SIS: 
    356                 ret=APL_CARDTYPE_PTEID_SIS; 
    357                 break; 
    358329        case CARD_UNKNOWN: 
    359330        default: 
     
    421392        switch(cardType) 
    422393        { 
    423         case APL_CARDTYPE_PTEID_EID: 
    424                 m_card = new APL_EIDCard(this); 
    425                 break; 
    426         case APL_CARDTYPE_PTEID_KIDS: 
    427                 m_card = new APL_KidsCard(this); 
    428                 break; 
    429         case APL_CARDTYPE_PTEID_FOREIGNER: 
    430                 m_card = new APL_ForeignerCard(this); 
    431                 break; 
    432         case APL_CARDTYPE_PTEID_SIS: 
    433                 m_card = new APL_SISCard(this); 
     394        case APL_CARDTYPE_PTEID_IAS07: 
     395        case APL_CARDTYPE_PTEID_IAS101: 
     396                m_card = new APL_EIDCard(this, cardType); 
    434397                break; 
    435398        default: 
     
    466429        connectCard(); 
    467430 
    468         if(m_card != NULL && m_card->getType()==APL_CARDTYPE_PTEID_EID) 
     431        if(m_card != NULL && m_card->getType()!=APL_CARDTYPE_UNKNOWN) 
    469432                return dynamic_cast<APL_EIDCard *>(m_card); 
    470          
    471         return NULL; 
    472 } 
    473  
    474 APL_KidsCard *APL_ReaderContext::getKidsCard() 
    475 { 
    476         connectCard(); 
    477  
    478         if(m_card->getType()==APL_CARDTYPE_PTEID_KIDS) 
    479                 return dynamic_cast<APL_KidsCard *>(m_card); 
    480          
    481         return NULL; 
    482 } 
    483  
    484 APL_ForeignerCard *APL_ReaderContext::getForeignerCard() 
    485 { 
    486         connectCard(); 
    487  
    488         if(m_card->getType()==APL_CARDTYPE_PTEID_FOREIGNER) 
    489                 return dynamic_cast<APL_ForeignerCard *>(m_card); 
    490          
    491         return NULL; 
    492 } 
    493  
    494 APL_SISCard *APL_ReaderContext::getSISCard() 
    495 { 
    496         connectCard(); 
    497  
    498         if(m_card->getType()==APL_CARDTYPE_PTEID_SIS) 
    499                 return dynamic_cast<APL_SISCard *>(m_card); 
    500433         
    501434        return NULL; 
     
    637570                if(!m_ReleaseOk) 
    638571                { 
    639                         printf("ERROR : Please do not forget to release the SDK\n"); 
     572                        printf("ERRORere : Please do not forget to release the SDK\n"); 
    640573                        throw CMWEXCEPTION(EIDMW_ERR_RELEASE_NEEDED); 
    641574                } 
     
    11081041 
    11091042        m_rawdata_eid=NULL; 
    1110         m_rawdata_sis=NULL; 
    11111043 
    11121044        m_fctReadDataRAW=NULL; 
     
    11481080 
    11491081        m_rawdata_eid=NULL; 
    1150         m_rawdata_sis=NULL; 
    11511082 
    11521083        m_fctReadDataRAW=NULL; 
     
    11891120 
    11901121        m_rawdata_eid=NULL; 
    1191         m_rawdata_sis=NULL; 
    11921122 
    11931123        m_fctReadDataRAW=NULL; 
     
    12131143                return; 
    12141144        } 
    1215          
    1216         if(lDocType==PTEID_CARDTYPE_KIDS_CODE) 
    1217                 m_cardType=APL_CARDTYPE_PTEID_KIDS; 
    1218  
    1219         else if(lDocType>=PTEID_CARDTYPE_FOREIGNER_CODE_MIN  
    1220                 && lDocType<=PTEID_CARDTYPE_FOREIGNER_CODE_MAX) 
    1221                 m_cardType=APL_CARDTYPE_PTEID_FOREIGNER; 
    1222  
    1223         else 
    1224                 m_cardType=APL_CARDTYPE_PTEID_EID; 
    1225  
    1226 } 
    1227  
    1228 APL_SuperParser::APL_SuperParser(const APL_RawData_Sis &data) 
    1229 { 
    1230         m_cardType=APL_CARDTYPE_UNKNOWN; 
    1231  
    1232         m_fileType=APL_SAVEFILETYPE_RAWDATA; 
    1233         m_fileName="Raw data"; 
    1234  
    1235         m_fileData=NULL; 
    1236  
    1237         m_parserTlv=NULL; 
    1238         m_parserCsv=NULL; 
    1239         m_parserXml=NULL; 
    1240  
    1241         m_rawdata_eid=NULL; 
    1242         m_rawdata_sis=NULL; 
    1243  
    1244         m_fctReadDataRAW=NULL; 
    1245         m_fctReadDataTLV=NULL; 
    1246         m_fctReadDataCSV=NULL; 
    1247         m_fctReadDataXML=NULL; 
    1248  
    1249         m_rawdata_sis= new APL_RawData_Sis(data);; 
    1250  
    1251         m_version=m_rawdata_sis->version; 
    1252         m_cardType=APL_CARDTYPE_PTEID_SIS; 
     1145                // MARTINHO: one type had to be chosen 
     1146        m_cardType=APL_CARDTYPE_PTEID_IAS101; 
     1147 
    12531148} 
    12541149 
     
    12801175                delete m_rawdata_eid; 
    12811176                m_rawdata_eid=NULL; 
    1282         } 
    1283         if(m_rawdata_sis) 
    1284         { 
    1285                 delete m_rawdata_sis; 
    1286                 m_rawdata_sis=NULL; 
    12871177        } 
    12881178} 
     
    14551345 
    14561346        if(strcmp(type,CARDTYPE_NAME_PTEID_EID)==0) 
    1457                 m_cardType=APL_CARDTYPE_PTEID_EID; 
    1458         else if(strcmp(type,CARDTYPE_NAME_PTEID_KIDS)==0) 
    1459                 m_cardType=APL_CARDTYPE_PTEID_KIDS; 
    1460         else if(strcmp(type,CARDTYPE_NAME_PTEID_FOREIGNER)==0) 
    1461                 m_cardType=APL_CARDTYPE_PTEID_FOREIGNER; 
    1462         else if(strcmp(type,CARDTYPE_NAME_PTEID_SIS)==0) 
    1463                 m_cardType=APL_CARDTYPE_PTEID_SIS; 
     1347                // MARTINHO one type had to be chosen 
     1348                m_cardType=APL_CARDTYPE_PTEID_IAS101; 
    14641349 
    14651350        if(type) 
     
    14951380{ 
    14961381        return m_rawdata_eid; 
    1497 } 
    1498  
    1499 APL_RawData_Sis *APL_SuperParser::getRawDataSis() 
    1500 { 
    1501         return m_rawdata_sis; 
    15021382} 
    15031383 
     
    15191399        { 
    15201400        case APL_SAVEFILETYPE_RAWDATA: 
    1521                 if((m_cardType==APL_CARDTYPE_PTEID_SIS && !m_rawdata_sis) 
    1522                         || ((m_cardType==APL_CARDTYPE_PTEID_EID || m_cardType==APL_CARDTYPE_PTEID_KIDS || m_cardType==APL_CARDTYPE_PTEID_FOREIGNER) && !m_rawdata_eid) 
    1523                         || m_cardType==APL_CARDTYPE_UNKNOWN) 
     1401                        //MARTINHO: one type had to be chosen 
     1402                if(((m_cardType==APL_CARDTYPE_PTEID_IAS101) && !m_rawdata_eid) || m_cardType==APL_CARDTYPE_UNKNOWN) 
    15241403                        throw CMWEXCEPTION(EIDMW_ERR_CHECK); 
    15251404 
     
    16391518        return in.Size(); 
    16401519} 
    1641 } 
     1520 
     1521APL_CardType ConvertCardType(tCardType cardType) 
     1522{ 
     1523        switch(cardType) 
     1524        { 
     1525        case CARD_PTEID_IAS07: 
     1526                return APL_CARDTYPE_PTEID_IAS07; 
     1527        case CARD_PTEID_IAS101: 
     1528                return APL_CARDTYPE_PTEID_IAS101; 
     1529        default: 
     1530                return APL_CARDTYPE_UNKNOWN; 
     1531        } 
     1532} 
     1533 
     1534} 
  • middleware-offline/trunk/_src/eidmw/applayer/APLReader.h

    r5 r34  
    4040{ 
    4141        APL_CARDTYPE_UNKNOWN=0, 
    42         APL_CARDTYPE_PTEID_EID, 
    43         APL_CARDTYPE_PTEID_KIDS, 
    44         APL_CARDTYPE_PTEID_FOREIGNER, 
    45         APL_CARDTYPE_PTEID_SIS 
     42        APL_CARDTYPE_PTEID_IAS07, 
     43        APL_CARDTYPE_PTEID_IAS101 
    4644}; 
    4745 
     
    7270}; 
    7371 
    74 struct APL_RawData_Sis 
    75 { 
    76         unsigned long version; 
    77         CByteArray idData; 
    78 }; 
    79  
    8072/** 
    8173  * Easy access to singleton (no declaration/instantiation is needed) 
     
    288280class APL_Card; 
    289281class APL_EIDCard; 
    290 class APL_KidsCard; 
    291 class APL_ForeignerCard; 
    292 class APL_SISCard; 
    293282 
    294283class APL_SuperParser; 
     
    306295          * Construct using a fileType and fileName 
    307296          *             No reader are connected (m_reader=NULL) 
    308           */     
     297          */ 
    309298        EIDMW_APL_API APL_ReaderContext(APL_SaveFileType fileType,const char *fileName); 
    310299 
     
    312301          * Construct using a fileType and its content 
    313302          *             No reader are connected (m_reader=NULL) 
    314           */     
     303          */ 
    315304        EIDMW_APL_API APL_ReaderContext(APL_SaveFileType fileType,const CByteArray &data); 
    316305 
     
    318307          * Construct using Raw data for Eid 
    319308          *             No reader are connected (m_reader=NULL) 
    320           */     
     309          */ 
    321310        EIDMW_APL_API APL_ReaderContext(const APL_RawData_Eid &data); 
    322  
    323         /** 
    324           * Construct using Raw data for Sis 
    325           *             No reader are connected (m_reader=NULL) 
    326           */     
    327         EIDMW_APL_API APL_ReaderContext(const APL_RawData_Sis &data); 
    328311 
    329312        /** 
     
    342325          *             Then check if a card is present 
    343326          *             If yes, instanciated regarding the card type 
    344           *                     APL_EIDCard, APL_KidsCard, APL_ForeignCard or APL_SISCard 
     327          *                     APL_EIDCard 
    345328          * 
    346329          * @return true if a new connection has been made 
     
    383366          */     
    384367    EIDMW_APL_API APL_EIDCard *getEIDCard(); 
    385  
    386         /** 
    387           * Get the Kidscard in the reader 
    388           * If there is no Kidscard in the reader NULL is return 
    389           */     
    390         EIDMW_APL_API APL_KidsCard *getKidsCard(); 
    391  
    392         /** 
    393           * Get the ForeignerCard in the reader 
    394           * If there is no ForeignerCard in the reader NULL is return 
    395           */     
    396         EIDMW_APL_API APL_ForeignerCard *getForeignerCard(); 
    397  
    398         /** 
    399           * Get the SISCard in the reader 
    400           * If there is no SISCard in the reader NULL is return 
    401           */     
    402         EIDMW_APL_API APL_SISCard *getSISCard(); 
    403368 
    404369        /**  
     
    488453        APL_SuperParser(const CByteArray &data, APL_SaveFileType fileType); 
    489454        APL_SuperParser(const APL_RawData_Eid &data); 
    490         APL_SuperParser(const APL_RawData_Sis &data); 
    491455 
    492456        virtual ~APL_SuperParser(); 
     
    505469 
    506470        APL_RawData_Eid *getRawDataEid(); 
    507         APL_RawData_Sis *getRawDataSis(); 
    508471 
    509472        unsigned long readData(const char *fileID, CByteArray &in,unsigned long idx=0); 
     
    540503 
    541504        APL_RawData_Eid *m_rawdata_eid; 
    542         APL_RawData_Sis *m_rawdata_sis; 
    543505}; 
    544506 
  • middleware-offline/trunk/_src/eidmw/applayer/CardFile.cpp

    r5 r34  
    5252{ 
    5353        m_cryptoFwk=AppLayer.getCryptoFwk(); 
    54  
     54        m_mappedFields = false; 
    5555        m_card=card; 
    5656 
    57         APL_Config conf_dir(CConfig::EIDMW_CONFIG_PARAM_GENERAL_PTEID_CACHEDIR); 
     57        /* File Caching at Applayer Level 
     58         * APL_Config conf_dir(CConfig::EIDMW_CONFIG_PARAM_GENERAL_PTEID_CACHEDIR); 
    5859        std::string     m_cachedirpath = conf_dir.getString(); 
    5960 
     
    121122        { 
    122123                MWLOG(LEV_INFO, MOD_APL, L"LoadData: File cache failed %ls", csPath); 
     124        }*/ 
     125 
     126        if(csPath) 
     127                m_path=csPath; 
     128        else 
     129                m_path=""; 
     130 
     131        if(file) 
     132        { 
     133                m_data=*file; 
     134                m_keepdata=true; 
     135        } 
     136        else 
     137        { 
     138                m_keepdata=false; 
    123139        } 
    124140 
  • middleware-offline/trunk/_src/eidmw/applayer/CardFile.h

    r5 r34  
    120120 
    121121        CMutex m_Mutex;                                 /**< Mutex */ 
     122        bool m_mappedFields;                    /**< are the fields mapped already? */ 
     123 
    122124 
    123125private: 
  • middleware-offline/trunk/_src/eidmw/applayer/CardPteid.cpp

    r5 r34  
    3131#include "eidErrors.h" 
    3232#include "APLConfig.h" 
     33#include "PhotoPteid.h" 
     34#include "APLPublicKey.h" 
    3335 
    3436#include "Log.h" 
     
    108110{ 
    109111        m_Validation.clear(); 
     112        m_mappedFields = false; 
    110113} 
    111114 
    112115bool APL_EidFile_Trace::MapFields() 
    113116{ 
     117        if (m_mappedFields) 
     118                return true; 
     119 
    114120        CByteArray pteidngtraceBuffer; 
    115121        char cBuffer[15500]; 
     
    118124        CTLVBuffer oTLVBuffer; 
    119125    oTLVBuffer.ParseTLV(m_data.GetBytes(), m_data.Size()); 
     126    CByteArray Validation; 
    120127 
    121128        //Card Validation 
    122129    pteidngtraceBuffer = m_data.GetBytes(PTEIDNG_FIELD_TRACE_POS_VALIDATION, PTEIDNG_FIELD_TRACE_LEN_VALIDATION); 
    123     pteidngtraceBuffer.TrimRight(' '); 
    124     m_Validation.assign((char*)(pteidngtraceBuffer.GetBytes()), pteidngtraceBuffer.Size()); 
    125  
    126     if (m_Validation == "$") 
     130 
     131    Validation = pteidngtraceBuffer; 
     132    if (Validation.ToString() == "01") 
    127133        m_Validation = "O Cartão de Cidadão encontra-se activo"; 
    128134    else 
    129135        m_Validation = "O Cartão de Cidadão não encontra-se activo"; 
    130136 
     137 
     138    isCardActive = (pteidngtraceBuffer.GetByte(0) == PTEIDNG_ACTIVE_CARD); 
     139 
     140    m_mappedFields = true; 
     141 
    131142    return true; 
    132143} 
     
    161172 
    162173        return ""; 
     174} 
     175 
     176bool APL_EidFile_Trace::isActive(){ 
     177        if(ShowData()) 
     178                return isCardActive; 
     179        return false; 
    163180} 
    164181 
     
    168185APL_EidFile_ID::APL_EidFile_ID(APL_EIDCard *card):APL_CardFile(card,PTEID_FILE_ID,NULL) 
    169186{ 
     187        photo = NULL; 
    170188} 
    171189 
     
    240258        m_CivilianIdNumber.clear(); 
    241259        m_Surname.clear(); 
    242         m_FirstName1.clear(); 
     260        m_GivenName.clear(); 
    243261        m_Nationality.clear(); 
    244262        m_LocationOfBirth.clear(); 
     
    257275        m_GivenNameMother.clear(); 
    258276        m_SurnameMother.clear(); 
    259         m_Photo.clear(); 
     277        if (photo){ 
     278                delete photo; 
     279                photo = NULL; 
     280        } 
    260281        m_PhotoHash.ClearContents(); 
     282        if (cardKey){ 
     283                delete cardKey; 
     284                cardKey = NULL; 
     285        } 
     286        m_mappedFields = false; 
    261287} 
    262288 
    263289bool APL_EidFile_ID::MapFields() 
    264290{ 
     291        // we dont want to read the fields every time 
     292        if (m_mappedFields) 
     293                return true; 
     294 
    265295        CByteArray pteidngidBuffer; 
    266296        char cBuffer[15500]; 
     
    314344        pteidngidBuffer = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_Name, PTEIDNG_FIELD_ID_LEN_Name); 
    315345        pteidngidBuffer.TrimRight(' '); 
    316         m_FirstName1.assign((char*)(pteidngidBuffer.GetBytes()), pteidngidBuffer.Size()); 
     346        m_GivenName.assign((char*)(pteidngidBuffer.GetBytes()), pteidngidBuffer.Size()); 
    317347        /*std::string in_utf8; 
    318348        in_utf8 = IBM850_toUtf8(m_FirstName1); 
     
    421451 
    422452        //Photo 
    423         pteidngidBuffer = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_Photo, PTEIDNG_FIELD_ID_LEN_Photo); 
    424         pteidngidBuffer.TrimRight(' '); 
    425         m_Photo.assign((char*)(pteidngidBuffer.GetBytes()), pteidngidBuffer.Size()); 
    426  
     453        { 
     454                CByteArray cbeff; 
     455                CByteArray facialrechdr; 
     456                CByteArray facialinfo; 
     457                CByteArray imageinfo; 
     458                CByteArray photoRAW; 
     459 
     460                photoRAW = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_Photo, PTEIDNG_FIELD_ID_LEN_Photo); 
     461                photoRAW.TrimRight(0); 
     462                cbeff = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_CBEFF, PTEIDNG_FIELD_ID_LEN_CBEFF); 
     463                facialrechdr = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_FACIALRECHDR, PTEIDNG_FIELD_ID_LEN_FACIALRECHDR); 
     464                facialinfo = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_FACIALINFO, PTEIDNG_FIELD_ID_LEN_FACIALINFO); 
     465                imageinfo = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_IMAGEINFO, PTEIDNG_FIELD_ID_LEN_IMAGEINFO); 
     466                photo = new PhotoPteid(photoRAW, cbeff, facialrechdr, facialinfo, imageinfo); 
     467        } 
     468 
     469        //Card Authentication Key (modulus + exponent) 
     470        { 
     471                CByteArray modulus = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_MODULUS, PTEIDNG_FIELD_ID_LEN_MODULUS); 
     472                CByteArray exponent = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_EXPONENT, PTEIDNG_FIELD_ID_LEN_EXPONENT); 
     473 
     474                cardKey = new APLPublicKey(modulus,exponent); 
     475        } 
    427476        //MRZ1 
    428477        pteidngidBuffer = m_data.GetBytes(PTEIDNG_FIELD_ID_POS_Mrz1, PTEIDNG_FIELD_ID_LEN_Mrz1); 
     
    445494        m_AccidentalIndications.assign((char*)(pteidngidBuffer.GetBytes()), pteidngidBuffer.Size()); 
    446495 
    447         try 
     496        /* ID File Caching 
     497         * try 
    448498        { 
    449499                ofstream myfile; 
     
    465515        { 
    466516                MWLOG(LEV_INFO, MOD_APL, L"Write cache file %ls on disk failed", PTEID_FILE_ID); 
    467         } 
     517        }*/ 
    468518 
    469519        //MemberOfFamily - See if this segfaults in every platform 
    470520        //m_MemberOfFamily = m_GivenNameMother + " " + m_SurnameMother + " * " + m_GivenNameFather + " " + m_SurnameFather; 
     521 
     522        m_mappedFields = true; 
    471523 
    472524        return true; 
     
    483535        if(status==CARDFILESTATUS_OK) 
    484536                return true; 
    485  
    486537        //If the autorisation changed, we read the card again 
    487538        if((status==CARDFILESTATUS_ERROR_TEST && pcard->getAllowTestCard()) 
     
    520571} 
    521572 
    522 const char *APL_EidFile_ID::getFirstName1() 
    523 { 
    524         if(ShowData()) 
    525                 return m_FirstName1.c_str(); 
     573const char *APL_EidFile_ID::getGivenName() 
     574{ 
     575        if(ShowData()) 
     576                return m_GivenName.c_str(); 
    526577 
    527578        return ""; 
     
    731782} 
    732783 
    733 const char *APL_EidFile_ID::getPhoto() 
    734 { 
    735         if(ShowData()) 
    736                 return m_Photo.c_str(); 
    737  
    738         return ""; 
     784PhotoPteid *APL_EidFile_ID::getPhotoObj() 
     785{ 
     786 
     787        if(ShowData()) 
     788                return photo; 
     789 
     790        return NULL; 
     791} 
     792 
     793APLPublicKey *APL_EidFile_ID::getCardAuthKeyObj(){ 
     794        if(ShowData()) 
     795                return cardKey; 
     796 
     797        return NULL; 
    739798} 
    740799 
     
    812871---------------------------------------- APL_EidFile_Address ----------------------------------------- 
    813872*****************************************************************************************/ 
     873const string APL_EidFile_Address::m_NATIONAL = "N"; 
     874const string APL_EidFile_Address::m_FOREIGN = "I"; 
    814875APL_EidFile_Address::APL_EidFile_Address(APL_EIDCard *card):APL_CardFile(card,PTEID_FILE_ADDRESS,NULL) 
    815876{ 
     
    910971{ 
    911972        m_AddressFile.clear(); 
     973 
     974        // common address fields 
    912975        m_AddressType.clear(); 
    913         m_Country.clear(); 
    914         m_District.clear(); 
     976        m_CountryCode.clear(); 
     977        m_Generated_Address_Code.clear(); 
     978 
     979        // portuguese address fields 
     980        m_DistrictCode.clear(); 
     981        m_DistrictDescription.clear(); 
     982        m_MunicipalityCode.clear(); 
     983        m_MunicipalityDescription.clear(); 
     984        m_CivilParishCode.clear(); 
     985        m_CivilParishDescription.clear(); 
     986        m_AbbrStreetType.clear(); 
     987        m_StreetType.clear(); 
    915988        m_StreetName.clear(); 
    916         m_AddressVersion.clear(); 
    917         m_Street.clear(); 
    918         m_ZipCode.clear(); 
    919         m_Municipality.clear(); 
    920         m_CivilParish.clear(); 
    921         m_StreetType1.clear(); 
    922         m_StreetType2.clear(); 
    923         m_BuildingType1.clear(); 
    924         m_BuildingType2.clear(); 
     989        m_AbbrBuildingType.clear(); 
     990        m_BuildingType.clear(); 
    925991        m_DoorNo.clear(); 
    926992        m_Floor.clear(); 
    927993        m_Side.clear(); 
     994        m_Place.clear(); 
    928995        m_Locality.clear(); 
    929996        m_Zip4.clear(); 
    930997        m_Zip3.clear(); 
    931998        m_PostalLocality.clear(); 
    932         m_Place.clear(); 
     999 
     1000        // foreign address fields 
     1001        m_Foreign_Country.clear(); 
     1002        m_Foreign_Generic_Address.clear(); 
     1003        m_Foreign_City.clear(); 
     1004        m_Foreign_Region.clear(); 
     1005        m_Foreign_Locality.clear(); 
     1006        m_Foreign_Postal_Code.clear(); 
     1007 
     1008        m_mappedFields = false; 
    9331009} 
    9341010 
     
    9421018            oTLVBuffer.ParseTLV(m_data.GetBytes(), m_data.Size()); 
    9431019 
    944             //Country 
    945             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_COUNTRY, PTEIDNG_FIELD_ADDRESS_LEN_COUNTRY); 
    946             pteidngAddressBuffer.TrimRight(' '); 
    947             m_Country.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    948  
    949                 //District 
     1020                //District Code 
    9501021            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_DISTRICT, PTEIDNG_FIELD_ADDRESS_LEN_DISTRICT); 
    9511022            pteidngAddressBuffer.TrimRight(' '); 
    952             m_District.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    953  
    954             //Municipality 
     1023            m_DistrictCode.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1024 
     1025            //District Description 
     1026            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_DISTRICT_DESCRIPTION, PTEIDNG_FIELD_ADDRESS_LEN_DISTRICT_DESCRIPTION); 
     1027            pteidngAddressBuffer.TrimRight(' '); 
     1028            m_DistrictDescription.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1029 
     1030            //Municipality Code 
    9551031            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_MUNICIPALITY, PTEIDNG_FIELD_ADDRESS_LEN_MUNICIPALITY); 
    9561032            pteidngAddressBuffer.TrimRight(' '); 
    957             m_Municipality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    958  
    959                 //StreetName 
     1033            m_MunicipalityCode.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1034 
     1035            //Municipality Description 
     1036            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_MUNICIPALITY_DESCRIPTION, PTEIDNG_FIELD_ADDRESS_LEN_MUNICIPALITY_DESCRIPTION); 
     1037            pteidngAddressBuffer.TrimRight(' '); 
     1038            m_MunicipalityDescription.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1039 
     1040            //CivilParish Code 
     1041            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_CIVILPARISH, PTEIDNG_FIELD_ADDRESS_LEN_CIVILPARISH); 
     1042            pteidngAddressBuffer.TrimRight(' '); 
     1043            m_CivilParishCode.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1044 
     1045            //CivilParish Description 
     1046            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_CIVILPARISH_DESCRIPTION, PTEIDNG_FIELD_ADDRESS_LEN_CIVILPARISH_DESCRIPTION); 
     1047            pteidngAddressBuffer.TrimRight(' '); 
     1048            m_CivilParishDescription.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1049 
     1050            //Abbreviated Street Type 
     1051            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_ABBR_STREET_TYPE, PTEIDNG_FIELD_ADDRESS_LEN_ABBR_STREET_TYPE); 
     1052            pteidngAddressBuffer.TrimRight(' '); 
     1053            m_AbbrStreetType.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1054 
     1055            //Street Type 
     1056            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_STREET_TYPE, PTEIDNG_FIELD_ADDRESS_LEN_STREET_TYPE); 
     1057            pteidngAddressBuffer.TrimRight(' '); 
     1058            m_StreetType.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1059 
     1060            //Street Name 
    9601061            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_STREETNAME, PTEIDNG_FIELD_ADDRESS_LEN_STREETNAME); 
    9611062            pteidngAddressBuffer.TrimRight(' '); 
    9621063            m_StreetName.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    9631064 
    964             //CivilParish 
    965             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_CIVILPARISH, PTEIDNG_FIELD_ADDRESS_LEN_CIVILPARISH); 
     1065            //Abbreviated Building Type 
     1066            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_ABBR_BUILDING_TYPE, PTEIDNG_FIELD_ADDRESS_LEN_ABBR_BUILDING_TYPE); 
    9661067            pteidngAddressBuffer.TrimRight(' '); 
    967             m_CivilParish.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    968  
    969             //StreetType1 
    970             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_STREETTYPE1, PTEIDNG_FIELD_ADDRESS_LEN_STREETTYPE1); 
     1068            m_AbbrBuildingType.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1069 
     1070            //Building Type 
     1071            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_BUILDING_TYPE, PTEIDNG_FIELD_ADDRESS_LEN_BUILDING_TYPE); 
    9711072            pteidngAddressBuffer.TrimRight(' '); 
    972             m_StreetType1.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    973  
    974             //StreetType2 
    975             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_STREETTYPE2, PTEIDNG_FIELD_ADDRESS_LEN_STREETTYPE2); 
    976             pteidngAddressBuffer.TrimRight(' '); 
    977             m_StreetType2.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    978  
    979             //BuildingType1 
    980             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_BUILDINGTYPE1, PTEIDNG_FIELD_ADDRESS_LEN_BUILDINGTYPE1); 
    981             pteidngAddressBuffer.TrimRight(' '); 
    982             m_BuildingType1.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    983  
    984             //BuildingType2 
    985             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_BUILDINGTYPE2, PTEIDNG_FIELD_ADDRESS_LEN_BUILDINGTYPE2); 
    986             pteidngAddressBuffer.TrimRight(' '); 
    987             m_BuildingType2.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1073            m_BuildingType.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    9881074 
    9891075            //DoorNo 
     
    10021088            m_Side.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10031089 
     1090            //Place 
     1091            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_PLACE, PTEIDNG_FIELD_ADDRESS_LEN_PLACE); 
     1092            pteidngAddressBuffer.TrimRight(' '); 
     1093            m_Place.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1094 
    10041095            //Locality 
    10051096            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_LOCALITY, PTEIDNG_FIELD_ADDRESS_LEN_LOCALITY); 
     
    10071098            m_Locality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10081099 
    1009             //Zip3 
    1010             pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_PLACE, PTEIDNG_FIELD_ADDRESS_LEN_PLACE); 
    1011             pteidngAddressBuffer.TrimRight(' '); 
    1012             m_Place.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1013  
    10141100            //Zip4 
    10151101            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_ZIP4, PTEIDNG_FIELD_ADDRESS_LEN_ZIP4); 
     
    10221108            m_Zip3.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10231109 
    1024             //PostalLocality 
     1110            //Postal Locality 
    10251111            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_POSTALLOCALITY, PTEIDNG_FIELD_ADDRESS_LEN_POSTALLOCALITY); 
    10261112            pteidngAddressBuffer.TrimRight(' '); 
    10271113            m_PostalLocality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10281114 
    1029                 //ZipCode 
    1030             /*ulLen = sizeof(cBuffer); 
    1031                 memset(cBuffer,0,ulLen); 
    1032                 oTLVBuffer.FillASCIIData(PTEID_FIELD_TAG_ADDR_ZipCode, cBuffer, &ulLen); 
    1033                 m_ZipCode.assign(cBuffer, 0, ulLen);*/ 
    1034  
     1115            //Generated Address Code 
     1116            pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_GENADDRESS_NUM, PTEIDNG_FIELD_ADDRESS_LEN_GENADDRESS_NUM); 
     1117            pteidngAddressBuffer.TrimRight('\0'); 
     1118            m_Generated_Address_Code.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10351119 
    10361120            /* lmedinas: Address File caching */ 
     
    10491133            myfile << m_AddressFile; 
    10501134            myfile.close();*/ 
    1051  
    10521135} 
    10531136 
     
    10611144    oTLVBuffer.ParseTLV(m_data.GetBytes(), m_data.Size()); 
    10621145 
    1063         //Country Type 
    1064         pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_COUNTRYTYPE, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_COUNTRYTYPE); 
     1146        //Foreign Country 
     1147        pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_COUNTRY_DESCRIPTION, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_COUNTRY_DESCRIPTION); 
    10651148        pteidngAddressBuffer.TrimRight(' '); 
    1066         m_Country.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1067  
    1068         //District 
    1069         pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_ADDRESS, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_ADDRESS); 
     1149        m_Foreign_Country.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1150 
     1151        //Foreign Generic Address 
     1152        pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_ADDRESS, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_ADDRESS); 
    10701153        pteidngAddressBuffer.TrimRight(' '); 
    1071         m_District.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1072  
    1073         //Municipality 
    1074         pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_CITY, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_CITY); 
     1154        m_Foreign_Generic_Address.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1155 
     1156        //Foreign City 
     1157        pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_CITY, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_CITY); 
    10751158        pteidngAddressBuffer.TrimRight(' '); 
    1076         m_Municipality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1077  
    1078     //Locality 
    1079     pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_LOCALITY, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_LOCALITY); 
     1159        m_Foreign_City.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1160 
     1161    //Foreign Region 
     1162    pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_REGION, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_REGION); 
    10801163    pteidngAddressBuffer.TrimRight(' '); 
    1081     m_Locality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1082  
    1083     //Zip4 
    1084     pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_POSTAL_CODE, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_POSTAL_CODE); 
     1164    m_Foreign_Region.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1165 
     1166    //Foreign Locality 
     1167    pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_LOCALITY, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_LOCALITY); 
    10851168    pteidngAddressBuffer.TrimRight(' '); 
    1086     m_Zip4.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    1087  
    1088     //DoorNo 
    1089     pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_FOREIGNER_ADDRESS_NUMBER, PTEIDNG_FIELD_ADDRESS_LEN_FOREIGNER_ADDRESS_NUMBER); 
     1169    m_Foreign_Locality.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1170 
     1171    //Foreign Postal Code 
     1172    pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_POSTAL_CODE, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_POSTAL_CODE); 
    10901173    pteidngAddressBuffer.TrimRight(' '); 
    1091     m_DoorNo.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1174    m_Foreign_Postal_Code.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1175 
     1176    //Foreign Generated Address Code 
     1177    pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_FOREIGN_ADDRESS_POS_GENADDRESS_NUM, PTEIDNG_FIELD_FOREIGN_ADDRESS_LEN_GENADDRESS_NUM); 
     1178    pteidngAddressBuffer.TrimRight(' '); 
     1179    m_Generated_Address_Code.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    10921180 
    10931181    /* martinho - do not cache the address file 
     
    11111199bool APL_EidFile_Address::MapFields() 
    11121200{ 
     1201        // MARTINHO: have we mapped the fields yet? 
     1202        if (m_mappedFields) 
     1203                return true; 
     1204 
    11131205        CByteArray pteidngAddressBuffer; 
    11141206        char cBuffer[1200]; 
     
    11181210        oTLVBuffer.ParseTLV(m_data.GetBytes(), m_data.Size()); 
    11191211 
    1120         //Address Type 
    1121         pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_ADDRESSTYPE, PTEIDNG_FIELD_ADDRESS_LEN_ADDRESSTYPE); 
     1212        // Address Type 
     1213        pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_TYPE, PTEIDNG_FIELD_ADDRESS_LEN_TYPE); 
    11221214        pteidngAddressBuffer.TrimRight(' '); 
    11231215        m_AddressType.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
    11241216 
    1125         if (m_AddressType == "I") 
     1217        // Country code 
     1218        pteidngAddressBuffer = m_data.GetBytes(PTEIDNG_FIELD_ADDRESS_POS_COUNTRY, PTEIDNG_FIELD_ADDRESS_LEN_COUNTRY); 
     1219        pteidngAddressBuffer.TrimRight('\0'); 
     1220        m_CountryCode.assign((char*)(pteidngAddressBuffer.GetBytes()), pteidngAddressBuffer.Size()); 
     1221 
     1222        if (m_AddressType == m_FOREIGN) 
    11261223                ForeignerAddressFields(); 
    11271224        else 
    11281225                AddressFields(); 
    11291226 
     1227        // MARTINHO: so we've mapped the fields no need to map them again 
     1228        m_mappedFields = true; 
     1229 
    11301230        return true; 
    11311231} 
    11321232 
    1133 const char *APL_EidFile_Address::getAddressVersion() 
    1134 { 
    1135         if(ShowData()) 
    1136                 return m_AddressVersion.c_str(); 
    1137  
    1138         return ""; 
    1139 } 
    1140  
    1141 const char *APL_EidFile_Address::getStreet() 
    1142 { 
    1143         if(ShowData()) 
    1144                 return m_Street.c_str(); 
    1145  
    1146         return ""; 
    1147 } 
    1148  
    1149 const char *APL_EidFile_Address::getZipCode() 
    1150 { 
    1151         if(ShowData()) 
    1152                 return m_ZipCode.c_str(); 
    1153  
    1154         return ""; 
    1155 } 
    1156  
    11571233const char *APL_EidFile_Address::getMunicipality() 
    11581234{ 
    11591235        if(ShowData()) 
    1160                 return m_Municipality.c_str(); 
    1161  
    1162         return ""; 
    1163 } 
     1236                return m_MunicipalityDescription.c_str(); 
     1237 
     1238        return ""; 
     1239} 
     1240 
     1241const char *APL_EidFile_Address::getMunicipalityCode() 
     1242{ 
     1243        if(ShowData()) 
     1244                return m_MunicipalityCode.c_str(); 
     1245 
     1246        return ""; 
     1247} 
     1248 
    11641249 
    11651250const char *APL_EidFile_Address::getDistrict() 
    11661251{ 
    11671252        if(ShowData()) 
    1168                 return m_District.c_str(); 
     1253                return m_DistrictDescription.c_str(); 
     1254 
     1255        return ""; 
     1256} 
     1257 
     1258const char *APL_EidFile_Address::getDistrictCode() 
     1259{ 
     1260        if(ShowData()) 
     1261                return m_DistrictCode.c_str(); 
     1262 
     1263        return ""; 
     1264} 
     1265 
     1266const char *APL_EidFile_Address::getCivilParish() 
     1267{ 
     1268        if(ShowData()) 
     1269                return m_CivilParishDescription.c_str(); 
     1270 
     1271        return ""; 
     1272} 
     1273 
     1274const char *APL_EidFile_Address::getCivilParishCode() 
     1275{ 
     1276        if(ShowData()) 
     1277                return m_CivilParishCode.c_str(); 
    11691278 
    11701279        return ""; 
     
    11791288} 
    11801289 
    1181 const char *APL_EidFile_Address::getCivilParish() 
    1182 { 
    1183         if(ShowData()) 
    1184                 return m_CivilParish.c_str(); 
    1185  
    1186         return ""; 
    1187 } 
    1188  
    1189 const char *APL_EidFile_Address::getStreetType1() 
    1190 { 
    1191         if(ShowData()) 
    1192                 return m_StreetType1.c_str(); 
    1193  
    1194         return ""; 
    1195 } 
    1196  
    1197 const char *APL_EidFile_Address::getStreetType2() 
    1198 { 
    1199         if(ShowData()) 
    1200                 return m_StreetType2.c_str(); 
    1201  
    1202         return ""; 
    1203 } 
    1204  
    1205 const char *APL_EidFile_Address::getBuildingType1() 
    1206 { 
    1207         if(ShowData()) 
    1208                 return m_BuildingType1.c_str(); 
    1209  
    1210         return ""; 
    1211 } 
    1212  
    1213 const char *APL_EidFile_Address::getBuildingType2() 
    1214 { 
    1215         if(ShowData()) 
    1216                 return m_BuildingType2.c_str(); 
     1290const char *APL_EidFile_Address::getAbbrStreetType() 
     1291{ 
     1292        if(ShowData()) 
     1293                return m_AbbrStreetType.c_str(); 
     1294 
     1295        return ""; 
     1296} 
     1297 
     1298const char *APL_EidFile_Address::getStreetType() 
     1299{ 
     1300        if(ShowData()) 
     1301                return m_StreetType.c_str(); 
     1302 
     1303        return ""; 
     1304} 
     1305 
     1306const char *APL_EidFile_Address::getAbbrBuildingType() 
     1307{ 
     1308        if(ShowData()) 
     1309                return m_AbbrBuildingType.c_str(); 
     1310 
     1311        return ""; 
     1312} 
     1313 
     1314const char *APL_EidFile_Address::getBuildingType() 
     1315{ 
     1316        if(ShowData()) 
     1317                return m_BuildingType.c_str(); 
    12171318 
    12181319        return ""; 
     
    12811382 
    12821383        return ""; 
     1384} 
     1385 
     1386const char *APL_EidFile_Address::getGeneratedAddressCode() 
     1387{ 
     1388        if(ShowData()) 
     1389                return m_Generated_Address_Code.c_str(); 
     1390 
     1391        return ""; 
     1392} 
     1393 
     1394const char * APL_EidFile_Address::getCountryCode() 
     1395{ 
     1396        if(ShowData()) 
     1397                        return m_CountryCode.c_str(); 
     1398 
     1399                return ""; 
     1400} 
     1401 
     1402bool APL_EidFile_Address::isNationalAddress(){ 
     1403        return (m_AddressType.compare(m_NATIONAL)); 
     1404} 
     1405 
     1406const char *APL_EidFile_Address::getForeignCountry() 
     1407{ 
     1408        if(ShowData()) 
     1409                return m_Foreign_Country.c_str(); 
     1410 
     1411        return ""; 
     1412} 
     1413 
     1414const char * APL_EidFile_Address::getForeignAddress() 
     1415{ 
     1416        if(ShowData()) 
     1417                        return m_Foreign_Generic_Address.c_str(); 
     1418 
     1419                return ""; 
     1420} 
     1421 
     1422const char *APL_EidFile_Address::getForeignCity() 
     1423{ 
     1424        if(ShowData()) 
     1425                return m_Foreign_City.c_str(); 
     1426 
     1427        return ""; 
     1428} 
     1429 
     1430const char * APL_EidFile_Address::getForeignRegion() 
     1431{ 
     1432        if(ShowData()) 
     1433                        return m_Foreign_Region.c_str(); 
     1434 
     1435                return ""; 
     1436} 
     1437 
     1438const char *APL_EidFile_Address::getForeignLocality() 
     1439{ 
     1440        if(ShowData()) 
     1441                return m_Foreign_Locality.c_str(); 
     1442 
     1443        return ""; 
     1444} 
     1445 
     1446const char * APL_EidFile_Address::getForeignPostalCode() 
     1447{ 
     1448        if(ShowData()) 
     1449                        return m_Foreign_Postal_Code.c_str(); 
     1450 
     1451                return ""; 
    12831452} 
    12841453 
     
    13651534{ 
    13661535        m_Sod.clear(); 
     1536        m_mappedFields = false; 
    13671537} 
    13681538 
    13691539bool APL_EidFile_Sod::MapFields() 
    13701540{ 
     1541        if (m_mappedFields) 
     1542                return true; 
     1543 
    13711544        CByteArray pteidngSodBuffer; 
    13721545    char cBuffer[1200]; 
     
    13811554    m_Sod.assign((char*)(pteidngSodBuffer.GetBytes()), pteidngSodBuffer.Size()); 
    13821555 
    1383     try 
     1556    /* File Caching 
     1557     * try 
    13841558    { 
    13851559        ofstream myfile; 
     
    14011575    { 
    14021576        MWLOG(LEV_INFO, MOD_APL, L"Write cache file %ls on disk failed", PTEID_FILE_SOD); 
    1403     } 
     1577    }*/ 
     1578 
     1579    m_mappedFields = true; 
     1580 
    14041581    return true; 
    14051582} 
     
    14741651{ 
    14751652        m_PersoData.clear(); 
     1653        m_mappedFields = false; 
    14761654} 
    14771655 
    14781656bool APL_EidFile_PersoData::MapFields() 
    14791657{ 
     1658        if (m_mappedFields) 
     1659                return true; 
     1660 
    14801661        CByteArray pteidngPersoDataBuffer; 
    14811662    char cBuffer[1200]; 
     
    14861667 
    14871668    //PersoData 
    1488     pteidngPersoDataBuffer = m_data.GetBytes(0, 50); 
     1669    pteidngPersoDataBuffer = m_data.GetBytes(PTEIDNG_FIELD_PERSODATA_POS_FILE, PTEIDNG_FIELD_PERSODATA_LEN_FILE); 
    14891670    pteidngPersoDataBuffer.TrimRight(' '); 
    14901671    m_PersoData.assign((char*)(pteidngPersoDataBuffer.GetBytes()), pteidngPersoDataBuffer.Size()); 
     1672 
     1673    m_mappedFields = true; 
    14911674 
    14921675    return true; 
     
    15221705        m_ElectricalPersonalisation.clear(); 
    15231706        m_ElectricalPersonalisationInterface.clear(); 
     1707        m_mappedFields = false; 
    15241708} 
    15251709 
    15261710bool APL_EidFile_TokenInfo::MapFields() 
    15271711{ 
     1712        if (m_mappedFields) 
     1713                return true; 
     1714 
     1715        CByteArray temp; 
     1716        char *ascii; 
     1717 
     1718        /*      martinho: yes it is an asn1 file but we only need 2 fields, so lets extract them. 
     1719                TODO: read the file as asn1, this might be useful with the asn1c compiler. 
     1720 
     1721                EFCIAFILE DEFINITIONS ::= 
     1722                BEGIN 
     1723 
     1724                        EFCIA ::= SEQUENCE { 
     1725                                value           INTEGER, 
     1726                                number          OCTET STRING, 
     1727                                applet          UTF8String, 
     1728                                text  [0] IMPLICIT IA5String, 
     1729                                whatever        BIT STRING 
     1730                        } 
     1731                END 
     1732        */ 
     1733 
     1734        temp = m_data.GetBytes(PTEID_FIELD_TOKENINFO_POS_LABEL, PTEID_FIELD_TOKENINFO_LEN_LABEL); 
     1735        temp.TrimRight('\0'); 
     1736        m_label.assign((char*)(temp.GetBytes()), temp.Size()); 
     1737 
     1738        temp = m_data.GetBytes(PTEID_FIELD_TOKENINFO_POS_SERIAL, PTEID_FIELD_TOKENINFO_LEN_SERIAL); 
     1739        temp.TrimRight('\0'); 
     1740        //martinho: no need to create a bcd2ascii, this one works fine 
     1741        ascii = bin2AsciiHex(temp.GetBytes(),temp.Size()); 
     1742        m_TokenSerialNumber.assign(ascii); 
     1743 
     1744 
     1745 
     1746 
     1747 
    15281748        char buffer[50]; 
    15291749 
     
    15401760        m_ElectricalPersonalisationInterface=buffer; 
    15411761 
     1762        m_mappedFields = true; 
     1763 
    15421764        return true; 
    15431765 
    15441766} 
    15451767 
     1768 
     1769const char *APL_EidFile_TokenInfo::getTokenLabel(){ 
     1770        if(ShowData()) 
     1771                        return m_label.c_str(); 
     1772 
     1773                return ""; 
     1774} 
     1775 
     1776const char *APL_EidFile_TokenInfo::getTokenSerialNumber(){ 
     1777        if(ShowData()) 
     1778                        return m_TokenSerialNumber.c_str(); 
     1779 
     1780                return ""; 
     1781} 
     1782 
    15461783const char *APL_EidFile_TokenInfo::getGraphicalPersonalisation() 
    15471784{ 
  • middleware-offline/trunk/_src/eidmw/applayer/CardPteid.h

    r5 r34  
    3030#include "CardFile.h" 
    3131#include "ByteArray.h" 
     32#include "PhotoPteid.h" 
     33#include "APLPublicKey.h" 
    3234 
    3335namespace eIDMW 
     
    5153        virtual ~APL_EidFile_Trace(); 
    5254        const char *getValidation();                            /**< Return field Validation */ 
     55        bool isActive();                                                        /**< Return the card activation state (true = active) */ 
    5356 
    5457protected: 
     
    8891 
    8992        std::string m_Validation;                                                       /**< Field Validation */ 
     93        bool isCardActive; 
    9094 
    9195        friend  APL_EidFile_Trace *APL_EIDCard::getFileTrace(); /**< This method must access protected constructor */ 
     
    110114        const char *getCountry();                                               /**< Return field Country */ 
    111115        const char *getDocumentType();                                  /**< Return field DocumentType */ 
    112         const char *getFirstName1();                                    /**< Return field FirstName1 */ 
     116        const char *getGivenName();                                             /**< Return field GivenName */ 
    113117        const char *getSurname();                                               /**< Return field Surname */ 
    114118        const char *getGender();                                                /**< Return field Gender */ 
     
    138142        const char *getSurnameMother();                                 /**< Return field SurnameMother */ 
    139143        const char *getParents();                                               /**< Return field Parents */ 
    140         const char *getPhoto();                                                 /**< Return field Photo */ 
     144        PhotoPteid *getPhotoObj();                                              /**< Return object Photo */ 
     145        APLPublicKey *getCardAuthKeyObj();                              /**< Return object Authentication Key */ 
    141146        const char *getMRZ1();                                                  /**< Return field MRZ block 1*/ 
    142147        const char *getMRZ2();                                                  /**< Return field MRZ block 2*/ 
     
    184189        std::string m_Country;                                                                  /**< Field Country */ 
    185190        std::string m_DocumentType;                                                             /**< Field DocumentType */ 
    186         std::string m_FirstName1;                                                               /**< Field FirstName1 */ 
     191        std::string m_GivenName;                                                                /**< Field GivenName */ 
    187192        std::string m_Surname;                                                                  /**< Field Surname */ 
    188193        std::string m_Gender;                                                                   /**< Field Gender */ 
     
    211216        std::string m_SurnameMother;                                                    /**< Field SurnameMother */ 
    212217        std::string m_AccidentalIndications;                                    /**< Field AccidentalIndications */ 
    213         std::string m_Photo;                                                                    /**< Field Photo */ 
     218        PhotoPteid* photo;                                                                              /**< object photo */ 
    214219        std::string m_MRZ1;                                                                             /**< Field MRZ block 1 */ 
    215220        std::string m_MRZ2;                                                                             /**< Field MRZ block 2 */ 
    216221        std::string m_MRZ3;                                                                             /**< Field MRZ block 3 */ 
    217222        CByteArray m_PhotoHash;                                                                 /**< Field PhotoHash */  
     223        APLPublicKey* cardKey; 
    218224 
    219225friend  APL_EidFile_ID *APL_EIDCard::getFileID();       /**< This method must access protected constructor */ 
     
    274280 
    275281        /*New status for PTeid-ng */ 
     282        bool isNationalAddress();                                                       /**<is the address a portuguese address? */ 
     283        const char *getCountryCode();                                           /**<residence country */ 
     284 
     285        const char *getDistrict(); 
     286        const char *getDistrictCode(); 
    276287        const char *getMunicipality();                                          /**< Return field Municipality */ 
    277         const char *getDistrict(); 
     288        const char *getMunicipalityCode(); 
     289        const char *getCivilParish(); 
     290        const char *getCivilParishCode(); 
     291        const char *getAbbrStreetType(); 
     292        const char *getStreetType(); 
    278293        const char *getStreetName(); 
    279         const char *getCivilParish(); 
    280         const char *getStreetType1(); 
    281         const char *getStreetType2(); 
    282         const char *getBuildingType1(); 
    283         const char *getBuildingType2(); 
     294        const char *getAbbrBuildingType(); 
     295        const char *getBuildingType(); 
    284296        const char *getDoorNo(); 
    285297        const char *getFloor(); 
     
    290302        const char *getPlace(); 
    291303        const char *getPostalLocality(); 
    292         const char *getAddressVersion();                                        /**< Return field AddressVersion */ 
    293         const char *getStreet();                                                        /**< Return field Street */ 
    294         const char *getZipCode();                                                       /**< Return field ZipCode */ 
    295  
     304        const char *getGeneratedAddressCode(); 
     305 
     306        const char *getForeignCountry(); 
     307        const char *getForeignAddress(); 
     308        const char *getForeignCity(); 
     309        const char *getForeignRegion(); 
     310        const char *getForeignLocality(); 
     311        const char *getForeignPostalCode(); 
    296312 
    297313protected: 
     
    328344        virtual bool ShowData(); 
    329345 
     346 
    330347        std::string m_AddressFile; 
     348 
    331349        std::string m_AddressType;                                                              /**< Field Address type */ 
    332         std::string m_Country;                                                                  /**< Field Country*/ 
    333         std::string m_District;                                                                 /**< Field District */ 
    334         std::string m_StreetName;                                                               /**< Field StreetName */ 
    335         std::string m_AddressVersion;                                                   /**< Field AddressVersion */ 
    336         std::string m_Street;                                                                   /**< Field Street */ 
    337         std::string m_ZipCode;                                                                  /**< Field ZipCode */ 
    338         std::string m_Municipality;                                                             /**< Field Municipality */ 
    339         std::string m_CivilParish; 
    340         std::string m_StreetType1; 
    341         std::string m_StreetType2; 
    342         std::string m_BuildingType1; 
    343         std::string m_BuildingType2; 
     350        std::string m_CountryCode;                                                              /**< Field Country code*/ 
     351 
     352        std::string m_DistrictCode;                                                             /**< Field District Code*/ 
     353        std::string m_DistrictDescription;                                              /**< Field District Description*/ 
     354        std::string m_MunicipalityCode;                                                 /**< Field Municipality Code*/ 
     355        std::string m_MunicipalityDescription;                                  /**< Field Municipality Description*/ 
     356        std::string m_CivilParishCode;                                                  /**< Field Civil Parish Code*/ 
     357        std::string m_CivilParishDescription;                                   /**< Field Civil Parish Description*/ 
     358        std::string m_AbbrStreetType;                                                   /**< Field Abbreviated Street Type*/ 
     359        std::string m_StreetType;                                                               /**< Field Street Type*/ 
     360        std::string m_StreetName;                                                               /**< Field Street Name*/ 
     361        std::string m_AbbrBuildingType; 
     362        std::string m_BuildingType; 
    344363        std::string m_DoorNo; 
    345364        std::string m_Floor; 
     
    351370        std::string m_Place; 
    352371 
     372        std::string m_Foreign_Country; 
     373        std::string m_Foreign_Generic_Address; 
     374        std::string m_Foreign_City; 
     375        std::string m_Foreign_Region; 
     376        std::string m_Foreign_Locality; 
     377        std::string m_Foreign_Postal_Code; 
     378 
     379        std::string m_Generated_Address_Code; 
     380 
     381        static const std::string m_NATIONAL;                    /**< portuguese addresses 'N' in the address type field*/ 
     382        static const std::string m_FOREIGN;                             /**< foreign addresses have 'I' in the address type field*/ 
     383 
    353384friend  APL_EidFile_Address *APL_EIDCard::getFileAddress();     /**< This method must access protected constructor */ 
    354385 
     
    508539        const char *getElectricalPersonalisation();                             /**< Return the Electrical Personalisation of the file */ 
    509540        const char *getElectricalPersonalisationInterface();    /**< Return the Electrical Personalisation Interface of the file */ 
     541        const char *getTokenLabel(); 
     542        const char *getTokenSerialNumber(); 
    510543 
    511544protected: 
     
    527560        std::string m_ElectricalPersonalisation;                        /**< The Electrical Personalisation of the file */ 
    528561        std::string m_ElectricalPersonalisationInterface;       /**< The Electrical Personalisation Interface of the file */ 
     562        std::string m_label; 
     563        std::string m_TokenSerialNumber; 
    529564 
    530565friend  APL_EidFile_TokenInfo *APL_EIDCard::getFileTokenInfo(); /**< This method must access protected constructor */ 
  • middleware-offline/trunk/_src/eidmw/applayer/CardPteidDef.h

    r11 r34  
    5555#define PTEID_FILE_CHALLENGE_RESPONSE   "CHALLENGE_RESPONSE"    //pseudo file 
    5656 
    57 #define PTEID_CARDTYPE_KIDS_CODE                                6 
    5857#define PTEID_CARDTYPE_FOREIGNER_CODE_MIN       11 
    5958#define PTEID_CARDTYPE_FOREIGNER_CODE_MAX       18 
    6059 
    6160//Add PTeID-ng Trace defines 
    62 #define PTEIDNG_FIELD_TRACE_POS_VALIDATION                              0 
     61#define PTEIDNG_FIELD_TRACE_POS_VALIDATION                              5 
    6362#define PTEIDNG_FIELD_TRACE_LEN_VALIDATION                              1 
    64  
    65 //Add PTeid-ng ID defines 
     63#define PTEIDNG_ACTIVE_CARD                                                             1 
     64 
     65//Add PTeid-ng ID defines - ok 
    6666#define PTEIDNG_FIELD_ID_POS_FILE                                               0 
    6767#define PTEIDNG_FIELD_ID_LEN_FILE                                               15500 
     
    122122#define PTEIDNG_FIELD_ID_LEN_Mrz3                                               30 
    123123 
    124 // photo data 
     124// martinho - ok 
     125#define PTEIDNG_FIELD_ID_POS_MODULUS                                    1372 
     126#define PTEIDNG_FIELD_ID_LEN_MODULUS                                    128 
     127#define PTEIDNG_FIELD_ID_POS_EXPONENT                                   1500 
     128#define PTEIDNG_FIELD_ID_LEN_EXPONENT                                   3 
     129 
     130 
     131// photo data - ok 
    125132#define PTEIDNG_FIELD_ID_POS_CBEFF                                              1503 
    126133#define PTEIDNG_FIELD_ID_LEN_CBEFF                                              34